home *** CD-ROM | disk | FTP | other *** search
/ mail.altrad.com / 2015.02.mail.altrad.com.tar / mail.altrad.com / TEST / Altrad_PREZI2 / content / data / modules / layout.module / layout
Text File  |  2014-01-29  |  4MB  |  66,136 lines

  1. // Define console for IE7 and IE8
  2. if (!window.console) {
  3.     window.console = {
  4.         "log": function() {
  5.             // Do nothing
  6.         },
  7.         "debug": function() {
  8.             // Do nothing
  9.         }
  10.     };
  11. }
  12.  
  13. // Define Date.now() for IE7-IE8
  14. // https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now#Description
  15. if (!Date.now) {
  16.     Date.now = function now() {
  17.         return +(new Date);
  18.     };
  19. }
  20.  
  21.     
  22. // Define Date.now() for IE7-IE8
  23. // https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf#Compatibility
  24. if (!Array.prototype.indexOf) {
  25.     Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
  26.         "use strict";
  27.         if (this == null) {
  28.             throw new TypeError();
  29.         }
  30.         var t = Object(this);
  31.         var len = t.length >>> 0;
  32.         if (len === 0) {
  33.             return -1;
  34.         }
  35.         var n = 0;
  36.         if (arguments.length > 1) {
  37.             n = Number(arguments[1]);
  38.             if (n != n) { // shortcut for verifying if it's NaN
  39.                 n = 0;
  40.             } else if (n != 0 && n != Infinity && n != -Infinity) {
  41.                 n = (n > 0 || -1) * Math.floor(Math.abs(n));
  42.             }
  43.         }
  44.         if (n >= len) {
  45.             return -1;
  46.         }
  47.         var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
  48.         for (; k < len; k++) {
  49.             if (k in t && t[k] === searchElement) {
  50.                 return k;
  51.             }
  52.         }
  53.         return -1;
  54.     }
  55. }
  56.  
  57. // filter is a JavaScript extension to the ECMA-262 standard; as such it may
  58. // not be present in other implementations of the standard. You can work
  59. // around this by inserting the following code at the beginning of your
  60. // scripts, allowing use of filter in ECMA-262 implementations which do not
  61. // natively support it. This algorithm is exactly the one specified in
  62. // ECMA-262, 5th edition, assuming Object and TypeError have their original
  63. // values, that fun.call evaluates to the original value of
  64. // Function.prototype.call, and that Array.prototype.push has its original
  65. // value.
  66. // https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter
  67. if (!Array.prototype.filter)
  68. {
  69.   Array.prototype.filter = function(fun /*, thisp */)
  70.   {
  71.     "use strict";
  72.  
  73.     if (this == null)
  74.       throw new TypeError();
  75.  
  76.     var t = Object(this);
  77.     var len = t.length >>> 0;
  78.     if (typeof fun != "function")
  79.       throw new TypeError();
  80.  
  81.     var res = [];
  82.     var thisp = arguments[1];
  83.     for (var i = 0; i < len; i++)
  84.     {
  85.       if (i in t)
  86.       {
  87.         var val = t[i]; // in case fun mutates this
  88.         if (fun.call(thisp, val, i, t))
  89.           res.push(val);
  90.       }
  91.     }
  92.  
  93.     return res;
  94.   };
  95. }
  96.  
  97. // Production steps of ECMA-262, Edition 5, 15.4.4.18
  98. // Reference: http://es5.github.com/#x15.4.4.18
  99. if ( !Array.prototype.forEach ) {
  100.  
  101.   Array.prototype.forEach = function forEach( callback, thisArg ) {
  102.  
  103.     var T, k;
  104.  
  105.     if ( this == null ) {
  106.       throw new TypeError( "this is null or not defined" );
  107.     }
  108.  
  109.     // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
  110.     var O = Object(this);
  111.  
  112.     // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
  113.     // 3. Let len be ToUint32(lenValue).
  114.     var len = O.length >>> 0; // Hack to convert O.length to a UInt32
  115.  
  116.     // 4. If IsCallable(callback) is false, throw a TypeError exception.
  117.     // See: http://es5.github.com/#x9.11
  118.     if ( {}.toString.call(callback) !== "[object Function]" ) {
  119.       throw new TypeError( callback + " is not a function" );
  120.     }
  121.  
  122.     // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
  123.     if ( thisArg ) {
  124.       T = thisArg;
  125.     }
  126.  
  127.     // 6. Let k be 0
  128.     k = 0;
  129.  
  130.     // 7. Repeat, while k < len
  131.     while( k < len ) {
  132.  
  133.       var kValue;
  134.  
  135.       // a. Let Pk be ToString(k).
  136.       //   This is implicit for LHS operands of the in operator
  137.       // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
  138.       //   This step can be combined with c
  139.       // c. If kPresent is true, then
  140.       if ( Object.prototype.hasOwnProperty.call(O, k) ) {
  141.  
  142.         // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
  143.         kValue = O[ k ];
  144.  
  145.         // ii. Call the Call internal method of callback with T as the this value and
  146.         // argument list containing kValue, k, and O.
  147.         callback.call( T, kValue, k, O );
  148.       }
  149.       // d. Increase k by 1.
  150.       k++;
  151.     }
  152.     // 8. return undefined
  153.   };
  154. }
  155.  
  156. // Production steps of ECMA-262, Edition 5, 15.4.4.19
  157. // Reference: http://es5.github.com/#x15.4.4.19
  158. if (!Array.prototype.map) {
  159.   Array.prototype.map = function(callback, thisArg) {
  160.  
  161.     var T, A, k;
  162.  
  163.     if (this == null) {
  164.       throw new TypeError(" this is null or not defined");
  165.     }
  166.  
  167.     // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
  168.     var O = Object(this);
  169.  
  170.     // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
  171.     // 3. Let len be ToUint32(lenValue).
  172.     var len = O.length >>> 0;
  173.  
  174.     // 4. If IsCallable(callback) is false, throw a TypeError exception.
  175.     // See: http://es5.github.com/#x9.11
  176.     if (typeof callback !== "function") {
  177.       throw new TypeError(callback + " is not a function");
  178.     }
  179.  
  180.     // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
  181.     if (thisArg) {
  182.       T = thisArg;
  183.     }
  184.  
  185.     // 6. Let A be a new array created as if by the expression new Array(len) where Array is
  186.     // the standard built-in constructor with that name and len is the value of len.
  187.     A = new Array(len);
  188.  
  189.     // 7. Let k be 0
  190.     k = 0;
  191.  
  192.     // 8. Repeat, while k < len
  193.     while(k < len) {
  194.  
  195.       var kValue, mappedValue;
  196.  
  197.       // a. Let Pk be ToString(k).
  198.       //   This is implicit for LHS operands of the in operator
  199.       // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
  200.       //   This step can be combined with c
  201.       // c. If kPresent is true, then
  202.       if (k in O) {
  203.  
  204.         // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
  205.         kValue = O[ k ];
  206.  
  207.         // ii. Let mappedValue be the result of calling the Call internal method of callback
  208.         // with T as the this value and argument list containing kValue, k, and O.
  209.         mappedValue = callback.call(T, kValue, k, O);
  210.  
  211.         // iii. Call the DefineOwnProperty internal method of A with arguments
  212.         // Pk, Property Descriptor {Value: mappedValue, : true, Enumerable: true, Configurable: true},
  213.         // and false.
  214.  
  215.         // In browsers that support Object.defineProperty, use the following:
  216.         // Object.defineProperty(A, Pk, { value: mappedValue, writable: true, enumerable: true, configurable: true });
  217.  
  218.         // For best browser support, use the following:
  219.         A[ k ] = mappedValue;
  220.       }
  221.       // d. Increase k by 1.
  222.       k++;
  223.     }
  224.  
  225.     // 9. return A
  226.     return A;
  227.   };      
  228. }
  229. (function () { "use strict";
  230. var $hxClasses = {},$estr = function() { return js.Boot.__string_rec(this,''); };
  231. function $extend(from, fields) {
  232.     function inherit() {}; inherit.prototype = from; var proto = new inherit();
  233.     for (var name in fields) proto[name] = fields[name];
  234.     if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString;
  235.     return proto;
  236. }
  237. var HxOverrides = function() { }
  238. $hxClasses["HxOverrides"] = HxOverrides;
  239. HxOverrides.__name__ = ["HxOverrides"];
  240. HxOverrides.dateStr = function(date) {
  241.     var m = date.getMonth() + 1;
  242.     var d = date.getDate();
  243.     var h = date.getHours();
  244.     var mi = date.getMinutes();
  245.     var s = date.getSeconds();
  246.     return date.getFullYear() + "-" + (m < 10?"0" + m:"" + m) + "-" + (d < 10?"0" + d:"" + d) + " " + (h < 10?"0" + h:"" + h) + ":" + (mi < 10?"0" + mi:"" + mi) + ":" + (s < 10?"0" + s:"" + s);
  247. }
  248. HxOverrides.strDate = function(s) {
  249.     switch(s.length) {
  250.     case 8:
  251.         var k = s.split(":");
  252.         var d = new Date();
  253.         d.setTime(0);
  254.         d.setUTCHours(k[0]);
  255.         d.setUTCMinutes(k[1]);
  256.         d.setUTCSeconds(k[2]);
  257.         return d;
  258.     case 10:
  259.         var k = s.split("-");
  260.         return new Date(k[0],k[1] - 1,k[2],0,0,0);
  261.     case 19:
  262.         var k = s.split(" ");
  263.         var y = k[0].split("-");
  264.         var t = k[1].split(":");
  265.         return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]);
  266.     default:
  267.         throw "Invalid date format : " + s;
  268.     }
  269. }
  270. HxOverrides.cca = function(s,index) {
  271.     var x = s.charCodeAt(index);
  272.     if(x != x) return undefined;
  273.     return x;
  274. }
  275. HxOverrides.substr = function(s,pos,len) {
  276.     if(pos != null && pos != 0 && len != null && len < 0) return "";
  277.     if(len == null) len = s.length;
  278.     if(pos < 0) {
  279.         pos = s.length + pos;
  280.         if(pos < 0) pos = 0;
  281.     } else if(len < 0) len = s.length + len - pos;
  282.     return s.substr(pos,len);
  283. }
  284. HxOverrides.iter = function(a) {
  285.     return { cur : 0, arr : a, hasNext : function() {
  286.         return this.cur < this.arr.length;
  287.     }, next : function() {
  288.         return this.arr[this.cur++];
  289.     }};
  290. }
  291. var List = function() {
  292.     this.length = 0;
  293. };
  294. $hxClasses["List"] = List;
  295. List.__name__ = ["List"];
  296. List.prototype = {
  297.     iterator: function() {
  298.         return { h : this.h, hasNext : function() {
  299.             return this.h != null;
  300.         }, next : function() {
  301.             if(this.h == null) return null;
  302.             var x = this.h[0];
  303.             this.h = this.h[1];
  304.             return x;
  305.         }};
  306.     }
  307.     ,add: function(item) {
  308.         var x = [item];
  309.         if(this.h == null) this.h = x; else this.q[1] = x;
  310.         this.q = x;
  311.         this.length++;
  312.     }
  313.     ,__class__: List
  314. }
  315. var IMap = function() { }
  316. $hxClasses["IMap"] = IMap;
  317. IMap.__name__ = ["IMap"];
  318. var Reflect = function() { }
  319. $hxClasses["Reflect"] = Reflect;
  320. Reflect.__name__ = ["Reflect"];
  321. Reflect.hasField = function(o,field) {
  322.     return Object.prototype.hasOwnProperty.call(o,field);
  323. }
  324. Reflect.field = function(o,field) {
  325.     var v = null;
  326.     try {
  327.         v = o[field];
  328.     } catch( e ) {
  329.     }
  330.     return v;
  331. }
  332. Reflect.fields = function(o) {
  333.     var a = [];
  334.     if(o != null) {
  335.         var hasOwnProperty = Object.prototype.hasOwnProperty;
  336.         for( var f in o ) {
  337.         if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) a.push(f);
  338.         }
  339.     }
  340.     return a;
  341. }
  342. Reflect.isFunction = function(f) {
  343.     return typeof(f) == "function" && !(f.__name__ || f.__ename__);
  344. }
  345. Reflect.deleteField = function(o,field) {
  346.     if(!Reflect.hasField(o,field)) return false;
  347.     delete(o[field]);
  348.     return true;
  349. }
  350. var Std = function() { }
  351. $hxClasses["Std"] = Std;
  352. Std.__name__ = ["Std"];
  353. Std.string = function(s) {
  354.     return js.Boot.__string_rec(s,"");
  355. }
  356. Std.parseInt = function(x) {
  357.     var v = parseInt(x,10);
  358.     if(v == 0 && (HxOverrides.cca(x,1) == 120 || HxOverrides.cca(x,1) == 88)) v = parseInt(x);
  359.     if(isNaN(v)) return null;
  360.     return v;
  361. }
  362. Std.parseFloat = function(x) {
  363.     return parseFloat(x);
  364. }
  365. Std.random = function(x) {
  366.     return x <= 0?0:Math.floor(Math.random() * x);
  367. }
  368. var StringBuf = function() {
  369.     this.b = "";
  370. };
  371. $hxClasses["StringBuf"] = StringBuf;
  372. StringBuf.__name__ = ["StringBuf"];
  373. StringBuf.prototype = {
  374.     addSub: function(s,pos,len) {
  375.         this.b += len == null?HxOverrides.substr(s,pos,null):HxOverrides.substr(s,pos,len);
  376.     }
  377.     ,__class__: StringBuf
  378. }
  379. var StringTools = function() { }
  380. $hxClasses["StringTools"] = StringTools;
  381. StringTools.__name__ = ["StringTools"];
  382. StringTools.urlEncode = function(s) {
  383.     return encodeURIComponent(s);
  384. }
  385. StringTools.urlDecode = function(s) {
  386.     return decodeURIComponent(s.split("+").join(" "));
  387. }
  388. var ValueType = $hxClasses["ValueType"] = { __ename__ : ["ValueType"], __constructs__ : ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"] }
  389. ValueType.TNull = ["TNull",0];
  390. ValueType.TNull.toString = $estr;
  391. ValueType.TNull.__enum__ = ValueType;
  392. ValueType.TInt = ["TInt",1];
  393. ValueType.TInt.toString = $estr;
  394. ValueType.TInt.__enum__ = ValueType;
  395. ValueType.TFloat = ["TFloat",2];
  396. ValueType.TFloat.toString = $estr;
  397. ValueType.TFloat.__enum__ = ValueType;
  398. ValueType.TBool = ["TBool",3];
  399. ValueType.TBool.toString = $estr;
  400. ValueType.TBool.__enum__ = ValueType;
  401. ValueType.TObject = ["TObject",4];
  402. ValueType.TObject.toString = $estr;
  403. ValueType.TObject.__enum__ = ValueType;
  404. ValueType.TFunction = ["TFunction",5];
  405. ValueType.TFunction.toString = $estr;
  406. ValueType.TFunction.__enum__ = ValueType;
  407. ValueType.TClass = function(c) { var $x = ["TClass",6,c]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
  408. ValueType.TEnum = function(e) { var $x = ["TEnum",7,e]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
  409. ValueType.TUnknown = ["TUnknown",8];
  410. ValueType.TUnknown.toString = $estr;
  411. ValueType.TUnknown.__enum__ = ValueType;
  412. var Type = function() { }
  413. $hxClasses["Type"] = Type;
  414. Type.__name__ = ["Type"];
  415. Type.getClassName = function(c) {
  416.     var a = c.__name__;
  417.     return a.join(".");
  418. }
  419. Type.getEnumName = function(e) {
  420.     var a = e.__ename__;
  421.     return a.join(".");
  422. }
  423. Type.resolveClass = function(name) {
  424.     var cl = $hxClasses[name];
  425.     if(cl == null || !cl.__name__) return null;
  426.     return cl;
  427. }
  428. Type.resolveEnum = function(name) {
  429.     var e = $hxClasses[name];
  430.     if(e == null || !e.__ename__) return null;
  431.     return e;
  432. }
  433. Type.createEmptyInstance = function(cl) {
  434.     function empty() {}; empty.prototype = cl.prototype;
  435.     return new empty();
  436. }
  437. Type.createEnum = function(e,constr,params) {
  438.     var f = Reflect.field(e,constr);
  439.     if(f == null) throw "No such constructor " + constr;
  440.     if(Reflect.isFunction(f)) {
  441.         if(params == null) throw "Constructor " + constr + " need parameters";
  442.         return f.apply(e,params);
  443.     }
  444.     if(params != null && params.length != 0) throw "Constructor " + constr + " does not need parameters";
  445.     return f;
  446. }
  447. Type.getEnumConstructs = function(e) {
  448.     var a = e.__constructs__;
  449.     return a.slice();
  450. }
  451. Type["typeof"] = function(v) {
  452.     var _g = typeof(v);
  453.     switch(_g) {
  454.     case "boolean":
  455.         return ValueType.TBool;
  456.     case "string":
  457.         return ValueType.TClass(String);
  458.     case "number":
  459.         if(Math.ceil(v) == v % 2147483648.0) return ValueType.TInt;
  460.         return ValueType.TFloat;
  461.     case "object":
  462.         if(v == null) return ValueType.TNull;
  463.         var e = v.__enum__;
  464.         if(e != null) return ValueType.TEnum(e);
  465.         var c = v.__class__;
  466.         if(c != null) return ValueType.TClass(c);
  467.         return ValueType.TObject;
  468.     case "function":
  469.         if(v.__name__ || v.__ename__) return ValueType.TObject;
  470.         return ValueType.TFunction;
  471.     case "undefined":
  472.         return ValueType.TNull;
  473.     default:
  474.         return ValueType.TUnknown;
  475.     }
  476. }
  477. var events = {}
  478. events.EventObserver = function() { }
  479. $hxClasses["events.EventObserver"] = events.EventObserver;
  480. events.EventObserver.__name__ = ["events","EventObserver"];
  481. events.EventObserver.prototype = {
  482.     dispose: function() {
  483.         throw "Abstract method.";
  484.     }
  485.     ,isEnabled: function() {
  486.         return (this._flags & 2) > 0;
  487.     }
  488.     ,disable: function() {
  489.         this._flags &= -3;
  490.     }
  491.     ,enable: function() {
  492.         this._flags |= 2;
  493.     }
  494.     ,_clrFlag: function(flag) {
  495.         this._flags &= ~flag;
  496.     }
  497.     ,_setFlag: function(flag) {
  498.         this._flags |= flag;
  499.     }
  500.     ,_hasFlag: function(flag) {
  501.         return (this._flags & flag) > 0;
  502.     }
  503.     ,__class__: events.EventObserver
  504. }
  505. events.Events = function() { }
  506. $hxClasses["events.Events"] = events.Events;
  507. events.Events.__name__ = ["events","Events"];
  508. events.Events.prototype = {
  509.     __class__: events.Events
  510. }
  511. events.EventSource = function() {
  512.     this._head = null;
  513.     this._nextNode = null;
  514.     this._enabled = true;
  515.     this._dispatching = false;
  516.     this._data = null;
  517.     this._stack = null;
  518. };
  519. $hxClasses["events.EventSource"] = events.EventSource;
  520. events.EventSource.__name__ = ["events","EventSource"];
  521. events.EventSource.__interfaces__ = [events.Events];
  522. events.EventSource.prototype = {
  523.     hasListener: function() {
  524.         return this._head != null;
  525.     }
  526.     ,isEnabled: function() {
  527.         return this._enabled;
  528.     }
  529.     ,disable: function() {
  530.         this._enabled = false;
  531.     }
  532.     ,enable: function() {
  533.         this._enabled = true;
  534.     }
  535.     ,_dispatch: function(node,data) {
  536.         while(node != null) {
  537.             this._nextNode = node.next;
  538.             node.execute(data);
  539.             node = this._nextNode;
  540.         }
  541.     }
  542.     ,dispatch: function(data) {
  543.         if(this._enabled) {
  544.             if(this._dispatching) {
  545.                 if(this._stack == null) this._stack = new Array();
  546.                 this._stack.push({ node : this._nextNode, data : this._data});
  547.                 this._data = data;
  548.                 this._dispatch(this._head,data);
  549.             } else {
  550.                 this._dispatching = true;
  551.                 this._data = data;
  552.                 this._dispatch(this._head,data);
  553.                 if(this._stack != null) while(this._stack.length > 0) {
  554.                     var item = this._stack.pop();
  555.                     if(item.node == null || item.node.listener == null) continue;
  556.                     this._dispatch(item.node,item.data);
  557.                 }
  558.                 this._dispatching = false;
  559.             }
  560.         }
  561.     }
  562.     ,_find: function(listener) {
  563.         if(this._head == null) return null;
  564.         var p = this._head;
  565.         while(p != null) {
  566.             if(p.equalsListener(listener)) return p;
  567.             p = p.next;
  568.         }
  569.         return null;
  570.     }
  571.     ,find: function(listener) {
  572.         return this._find(listener);
  573.     }
  574.     ,removeAll: function() {
  575.         this._head = null;
  576.     }
  577.     ,remove: function(listener) {
  578.         var node = this._find(listener);
  579.         if(node == null) return;
  580.         if(node.next != null) node.next.prev = node.prev;
  581.         if(node.prev != null) node.prev.next = node.next;
  582.         if(node == this._head) this._head = node.next;
  583.         if(node == this._nextNode) this._nextNode = node.next;
  584.         node.source = null;
  585.         node.listener = null;
  586.         node.next = null;
  587.         node.prev = null;
  588.     }
  589.     ,registerListener: function(listener,flags) {
  590.         var existing = this.find(listener);
  591.         if(existing != null) return existing;
  592.         var node = new events._EventSource.EventObserverNode(this,listener,flags);
  593.         node.next = null;
  594.         if(this._head == null) {
  595.             this._head = node;
  596.             node.prev = null;
  597.         } else {
  598.             var last = this._head;
  599.             while(last.next != null) last = last.next;
  600.             last.next = node;
  601.             node.prev = last;
  602.         }
  603.         return node;
  604.     }
  605.     ,addVoidOnce: function(listener) {
  606.         return this.registerListener(listener,7);
  607.     }
  608.     ,addVoid: function(listener) {
  609.         return this.registerListener(listener,6);
  610.     }
  611.     ,addOnce: function(listener) {
  612.         return this.registerListener(listener,3);
  613.     }
  614.     ,add: function(listener) {
  615.         return this.registerListener(listener,2);
  616.     }
  617.     ,__class__: events.EventSource
  618. }
  619. events._EventSource = {}
  620. events._EventSource.EventObserverNode = function(source,listener,flags) {
  621.     this.source = source;
  622.     this.listener = listener;
  623.     this._flags = flags;
  624. };
  625. $hxClasses["events._EventSource.EventObserverNode"] = events._EventSource.EventObserverNode;
  626. events._EventSource.EventObserverNode.__name__ = ["events","_EventSource","EventObserverNode"];
  627. events._EventSource.EventObserverNode.__super__ = events.EventObserver;
  628. events._EventSource.EventObserverNode.prototype = $extend(events.EventObserver.prototype,{
  629.     equalsListener: function(listener) {
  630.         var thisListener = this.listener;
  631.         
  632.             if (listener.hasOwnProperty('method') && 
  633.                     thisListener.hasOwnProperty('method') &&
  634.                     listener.hasOwnProperty('scope') &&
  635.                     thisListener.hasOwnProperty('scope')) { 
  636.                 return (listener.method == thisListener.method &&
  637.                         listener.scope == thisListener.scope);
  638.             }
  639.         return listener == this.listener;
  640.     }
  641.     ,dispose: function() {
  642.         if(this.source == null) return;
  643.         this.source.remove(this.listener);
  644.     }
  645.     ,execute: function(data) {
  646.         if((this._flags & 2) > 0) {
  647.             var savedListener = this.listener;
  648.             if((this._flags & 1) > 0) this.dispose();
  649.             if((this._flags & 4) > 0) savedListener(); else savedListener(data);
  650.         }
  651.     }
  652.     ,free: function() {
  653.         this.source = null;
  654.         this.listener = null;
  655.         this.next = null;
  656.         this.prev = null;
  657.     }
  658.     ,__class__: events._EventSource.EventObserverNode
  659. });
  660. var haxe = {}
  661. haxe.Json = function() {
  662. };
  663. $hxClasses["haxe.Json"] = haxe.Json;
  664. haxe.Json.__name__ = ["haxe","Json"];
  665. haxe.Json.parse = function(text) {
  666.     return new haxe.Json().doParse(text);
  667. }
  668. haxe.Json.prototype = {
  669.     parseNumber: function(c) {
  670.         var start = this.pos - 1;
  671.         var minus = c == 45, digit = !minus, zero = c == 48;
  672.         var point = false, e = false, pm = false, end = false;
  673.         while(true) {
  674.             c = this.str.charCodeAt(this.pos++);
  675.             switch(c) {
  676.             case 48:
  677.                 if(zero && !point) this.invalidNumber(start);
  678.                 if(minus) {
  679.                     minus = false;
  680.                     zero = true;
  681.                 }
  682.                 digit = true;
  683.                 break;
  684.             case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:
  685.                 if(zero && !point) this.invalidNumber(start);
  686.                 if(minus) minus = false;
  687.                 digit = true;
  688.                 zero = false;
  689.                 break;
  690.             case 46:
  691.                 if(minus || point) this.invalidNumber(start);
  692.                 digit = false;
  693.                 point = true;
  694.                 break;
  695.             case 101:case 69:
  696.                 if(minus || zero || e) this.invalidNumber(start);
  697.                 digit = false;
  698.                 e = true;
  699.                 break;
  700.             case 43:case 45:
  701.                 if(!e || pm) this.invalidNumber(start);
  702.                 digit = false;
  703.                 pm = true;
  704.                 break;
  705.             default:
  706.                 if(!digit) this.invalidNumber(start);
  707.                 this.pos--;
  708.                 end = true;
  709.             }
  710.             if(end) break;
  711.         }
  712.         var f = Std.parseFloat(HxOverrides.substr(this.str,start,this.pos - start));
  713.         var i = f | 0;
  714.         return i == f?i:f;
  715.     }
  716.     ,invalidNumber: function(start) {
  717.         throw "Invalid number at position " + start + ": " + HxOverrides.substr(this.str,start,this.pos - start);
  718.     }
  719.     ,parseString: function() {
  720.         var start = this.pos;
  721.         var buf = new StringBuf();
  722.         while(true) {
  723.             var c = this.str.charCodeAt(this.pos++);
  724.             if(c == 34) break;
  725.             if(c == 92) {
  726.                 buf.addSub(this.str,start,this.pos - start - 1);
  727.                 c = this.str.charCodeAt(this.pos++);
  728.                 switch(c) {
  729.                 case 114:
  730.                     buf.b += "\r";
  731.                     break;
  732.                 case 110:
  733.                     buf.b += "\n";
  734.                     break;
  735.                 case 116:
  736.                     buf.b += "\t";
  737.                     break;
  738.                 case 98:
  739.                     buf.b += "";
  740.                     break;
  741.                 case 102:
  742.                     buf.b += " ";
  743.                     break;
  744.                 case 47:case 92:case 34:
  745.                     buf.b += String.fromCharCode(c);
  746.                     break;
  747.                 case 117:
  748.                     var uc = Std.parseInt("0x" + HxOverrides.substr(this.str,this.pos,4));
  749.                     this.pos += 4;
  750.                     buf.b += String.fromCharCode(uc);
  751.                     break;
  752.                 default:
  753.                     throw "Invalid escape sequence \\" + String.fromCharCode(c) + " at position " + (this.pos - 1);
  754.                 }
  755.                 start = this.pos;
  756.             } else if(c != c) throw "Unclosed string";
  757.         }
  758.         buf.addSub(this.str,start,this.pos - start - 1);
  759.         return buf.b;
  760.     }
  761.     ,parseRec: function() {
  762.         while(true) {
  763.             var c = this.str.charCodeAt(this.pos++);
  764.             switch(c) {
  765.             case 32:case 13:case 10:case 9:
  766.                 break;
  767.             case 123:
  768.                 var obj = { }, field = null, comma = null;
  769.                 while(true) {
  770.                     var c1 = this.str.charCodeAt(this.pos++);
  771.                     switch(c1) {
  772.                     case 32:case 13:case 10:case 9:
  773.                         break;
  774.                     case 125:
  775.                         if(field != null || comma == false) this.invalidChar();
  776.                         return obj;
  777.                     case 58:
  778.                         if(field == null) this.invalidChar();
  779.                         obj[field] = this.parseRec();
  780.                         field = null;
  781.                         comma = true;
  782.                         break;
  783.                     case 44:
  784.                         if(comma) comma = false; else this.invalidChar();
  785.                         break;
  786.                     case 34:
  787.                         if(comma) this.invalidChar();
  788.                         field = this.parseString();
  789.                         break;
  790.                     default:
  791.                         this.invalidChar();
  792.                     }
  793.                 }
  794.                 break;
  795.             case 91:
  796.                 var arr = [], comma = null;
  797.                 while(true) {
  798.                     var c1 = this.str.charCodeAt(this.pos++);
  799.                     switch(c1) {
  800.                     case 32:case 13:case 10:case 9:
  801.                         break;
  802.                     case 93:
  803.                         if(comma == false) this.invalidChar();
  804.                         return arr;
  805.                     case 44:
  806.                         if(comma) comma = false; else this.invalidChar();
  807.                         break;
  808.                     default:
  809.                         if(comma) this.invalidChar();
  810.                         this.pos--;
  811.                         arr.push(this.parseRec());
  812.                         comma = true;
  813.                     }
  814.                 }
  815.                 break;
  816.             case 116:
  817.                 var save = this.pos;
  818.                 if(this.str.charCodeAt(this.pos++) != 114 || this.str.charCodeAt(this.pos++) != 117 || this.str.charCodeAt(this.pos++) != 101) {
  819.                     this.pos = save;
  820.                     this.invalidChar();
  821.                 }
  822.                 return true;
  823.             case 102:
  824.                 var save = this.pos;
  825.                 if(this.str.charCodeAt(this.pos++) != 97 || this.str.charCodeAt(this.pos++) != 108 || this.str.charCodeAt(this.pos++) != 115 || this.str.charCodeAt(this.pos++) != 101) {
  826.                     this.pos = save;
  827.                     this.invalidChar();
  828.                 }
  829.                 return false;
  830.             case 110:
  831.                 var save = this.pos;
  832.                 if(this.str.charCodeAt(this.pos++) != 117 || this.str.charCodeAt(this.pos++) != 108 || this.str.charCodeAt(this.pos++) != 108) {
  833.                     this.pos = save;
  834.                     this.invalidChar();
  835.                 }
  836.                 return null;
  837.             case 34:
  838.                 return this.parseString();
  839.             case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 45:
  840.                 return this.parseNumber(c);
  841.             default:
  842.                 this.invalidChar();
  843.             }
  844.         }
  845.     }
  846.     ,invalidChar: function() {
  847.         this.pos--;
  848.         throw "Invalid char " + this.str.charCodeAt(this.pos) + " at position " + this.pos;
  849.     }
  850.     ,doParse: function(str) {
  851.         this.str = str;
  852.         this.pos = 0;
  853.         return this.parseRec();
  854.     }
  855.     ,__class__: haxe.Json
  856. }
  857. haxe.Serializer = function() {
  858.     this.buf = new StringBuf();
  859.     this.cache = new Array();
  860.     this.useCache = haxe.Serializer.USE_CACHE;
  861.     this.useEnumIndex = haxe.Serializer.USE_ENUM_INDEX;
  862.     this.shash = new haxe.ds.StringMap();
  863.     this.scount = 0;
  864. };
  865. $hxClasses["haxe.Serializer"] = haxe.Serializer;
  866. haxe.Serializer.__name__ = ["haxe","Serializer"];
  867. haxe.Serializer.prototype = {
  868.     serializeException: function(e) {
  869.         this.buf.b += "x";
  870.         this.serialize(e);
  871.     }
  872.     ,serialize: function(v) {
  873.         var _g = Type["typeof"](v);
  874.         var $e = (_g);
  875.         switch( $e[1] ) {
  876.         case 0:
  877.             this.buf.b += "n";
  878.             break;
  879.         case 1:
  880.             if(v == 0) {
  881.                 this.buf.b += "z";
  882.                 return;
  883.             }
  884.             this.buf.b += "i";
  885.             this.buf.b += Std.string(v);
  886.             break;
  887.         case 2:
  888.             if(Math.isNaN(v)) this.buf.b += "k"; else if(!Math.isFinite(v)) this.buf.b += Std.string(v < 0?"m":"p"); else {
  889.                 this.buf.b += "d";
  890.                 this.buf.b += Std.string(v);
  891.             }
  892.             break;
  893.         case 3:
  894.             this.buf.b += Std.string(v?"t":"f");
  895.             break;
  896.         case 6:
  897.             var c = $e[2];
  898.             if(c == String) {
  899.                 this.serializeString(v);
  900.                 return;
  901.             }
  902.             if(this.useCache && this.serializeRef(v)) return;
  903.             switch(c) {
  904.             case Array:
  905.                 var ucount = 0;
  906.                 this.buf.b += "a";
  907.                 var l = v.length;
  908.                 var _g1 = 0;
  909.                 while(_g1 < l) {
  910.                     var i = _g1++;
  911.                     if(v[i] == null) ucount++; else {
  912.                         if(ucount > 0) {
  913.                             if(ucount == 1) this.buf.b += "n"; else {
  914.                                 this.buf.b += "u";
  915.                                 this.buf.b += Std.string(ucount);
  916.                             }
  917.                             ucount = 0;
  918.                         }
  919.                         this.serialize(v[i]);
  920.                     }
  921.                 }
  922.                 if(ucount > 0) {
  923.                     if(ucount == 1) this.buf.b += "n"; else {
  924.                         this.buf.b += "u";
  925.                         this.buf.b += Std.string(ucount);
  926.                     }
  927.                 }
  928.                 this.buf.b += "h";
  929.                 break;
  930.             case List:
  931.                 this.buf.b += "l";
  932.                 var v1 = v;
  933.                 var $it0 = v1.iterator();
  934.                 while( $it0.hasNext() ) {
  935.                     var i = $it0.next();
  936.                     this.serialize(i);
  937.                 }
  938.                 this.buf.b += "h";
  939.                 break;
  940.             case Date:
  941.                 var d = v;
  942.                 this.buf.b += "v";
  943.                 this.buf.b += Std.string(HxOverrides.dateStr(d));
  944.                 break;
  945.             case haxe.ds.StringMap:
  946.                 this.buf.b += "b";
  947.                 var v1 = v;
  948.                 var $it1 = v1.keys();
  949.                 while( $it1.hasNext() ) {
  950.                     var k = $it1.next();
  951.                     this.serializeString(k);
  952.                     this.serialize(v1.get(k));
  953.                 }
  954.                 this.buf.b += "h";
  955.                 break;
  956.             case haxe.ds.IntMap:
  957.                 this.buf.b += "q";
  958.                 var v1 = v;
  959.                 var $it2 = v1.keys();
  960.                 while( $it2.hasNext() ) {
  961.                     var k = $it2.next();
  962.                     this.buf.b += ":";
  963.                     this.buf.b += Std.string(k);
  964.                     this.serialize(v1.get(k));
  965.                 }
  966.                 this.buf.b += "h";
  967.                 break;
  968.             case haxe.ds.ObjectMap:
  969.                 this.buf.b += "M";
  970.                 var v1 = v;
  971.                 var $it3 = v1.keys();
  972.                 while( $it3.hasNext() ) {
  973.                     var k = $it3.next();
  974.                     var id = Reflect.field(k,"__id__");
  975.                     Reflect.deleteField(k,"__id__");
  976.                     this.serialize(k);
  977.                     k.__id__ = id;
  978.                     this.serialize(v1.h[k.__id__]);
  979.                 }
  980.                 this.buf.b += "h";
  981.                 break;
  982.             case haxe.io.Bytes:
  983.                 var v1 = v;
  984.                 var i = 0;
  985.                 var max = v1.length - 2;
  986.                 var charsBuf = new StringBuf();
  987.                 var b64 = haxe.Serializer.BASE64;
  988.                 while(i < max) {
  989.                     var b1 = v1.b[i++];
  990.                     var b2 = v1.b[i++];
  991.                     var b3 = v1.b[i++];
  992.                     charsBuf.b += Std.string(b64.charAt(b1 >> 2));
  993.                     charsBuf.b += Std.string(b64.charAt((b1 << 4 | b2 >> 4) & 63));
  994.                     charsBuf.b += Std.string(b64.charAt((b2 << 2 | b3 >> 6) & 63));
  995.                     charsBuf.b += Std.string(b64.charAt(b3 & 63));
  996.                 }
  997.                 if(i == max) {
  998.                     var b1 = v1.b[i++];
  999.                     var b2 = v1.b[i++];
  1000.                     charsBuf.b += Std.string(b64.charAt(b1 >> 2));
  1001.                     charsBuf.b += Std.string(b64.charAt((b1 << 4 | b2 >> 4) & 63));
  1002.                     charsBuf.b += Std.string(b64.charAt(b2 << 2 & 63));
  1003.                 } else if(i == max + 1) {
  1004.                     var b1 = v1.b[i++];
  1005.                     charsBuf.b += Std.string(b64.charAt(b1 >> 2));
  1006.                     charsBuf.b += Std.string(b64.charAt(b1 << 4 & 63));
  1007.                 }
  1008.                 var chars = charsBuf.b;
  1009.                 this.buf.b += "s";
  1010.                 this.buf.b += Std.string(chars.length);
  1011.                 this.buf.b += ":";
  1012.                 this.buf.b += Std.string(chars);
  1013.                 break;
  1014.             default:
  1015.                 this.cache.pop();
  1016.                 if(v.hxSerialize != null) {
  1017.                     this.buf.b += "C";
  1018.                     this.serializeString(Type.getClassName(c));
  1019.                     this.cache.push(v);
  1020.                     v.hxSerialize(this);
  1021.                     this.buf.b += "g";
  1022.                 } else {
  1023.                     this.buf.b += "c";
  1024.                     this.serializeString(Type.getClassName(c));
  1025.                     this.cache.push(v);
  1026.                     this.serializeFields(v);
  1027.                 }
  1028.             }
  1029.             break;
  1030.         case 4:
  1031.             if(this.useCache && this.serializeRef(v)) return;
  1032.             this.buf.b += "o";
  1033.             this.serializeFields(v);
  1034.             break;
  1035.         case 7:
  1036.             var e = $e[2];
  1037.             if(this.useCache && this.serializeRef(v)) return;
  1038.             this.cache.pop();
  1039.             this.buf.b += Std.string(this.useEnumIndex?"j":"w");
  1040.             this.serializeString(Type.getEnumName(e));
  1041.             if(this.useEnumIndex) {
  1042.                 this.buf.b += ":";
  1043.                 this.buf.b += Std.string(v[1]);
  1044.             } else this.serializeString(v[0]);
  1045.             this.buf.b += ":";
  1046.             var l = v.length;
  1047.             this.buf.b += Std.string(l - 2);
  1048.             var _g1 = 2;
  1049.             while(_g1 < l) {
  1050.                 var i = _g1++;
  1051.                 this.serialize(v[i]);
  1052.             }
  1053.             this.cache.push(v);
  1054.             break;
  1055.         case 5:
  1056.             throw "Cannot serialize function";
  1057.             break;
  1058.         default:
  1059.             throw "Cannot serialize " + Std.string(v);
  1060.         }
  1061.     }
  1062.     ,serializeFields: function(v) {
  1063.         var _g = 0, _g1 = Reflect.fields(v);
  1064.         while(_g < _g1.length) {
  1065.             var f = _g1[_g];
  1066.             ++_g;
  1067.             this.serializeString(f);
  1068.             this.serialize(Reflect.field(v,f));
  1069.         }
  1070.         this.buf.b += "g";
  1071.     }
  1072.     ,serializeRef: function(v) {
  1073.         var vt = typeof(v);
  1074.         var _g1 = 0, _g = this.cache.length;
  1075.         while(_g1 < _g) {
  1076.             var i = _g1++;
  1077.             var ci = this.cache[i];
  1078.             if(typeof(ci) == vt && ci == v) {
  1079.                 this.buf.b += "r";
  1080.                 this.buf.b += Std.string(i);
  1081.                 return true;
  1082.             }
  1083.         }
  1084.         this.cache.push(v);
  1085.         return false;
  1086.     }
  1087.     ,serializeString: function(s) {
  1088.         var x = this.shash.get(s);
  1089.         if(x != null) {
  1090.             this.buf.b += "R";
  1091.             this.buf.b += Std.string(x);
  1092.             return;
  1093.         }
  1094.         this.shash.set(s,this.scount++);
  1095.         this.buf.b += "y";
  1096.         s = StringTools.urlEncode(s);
  1097.         this.buf.b += Std.string(s.length);
  1098.         this.buf.b += ":";
  1099.         this.buf.b += Std.string(s);
  1100.     }
  1101.     ,toString: function() {
  1102.         return this.buf.b;
  1103.     }
  1104.     ,__class__: haxe.Serializer
  1105. }
  1106. haxe.Timer = function(time_ms) {
  1107.     var me = this;
  1108.     this.id = setInterval(function() {
  1109.         me.run();
  1110.     },time_ms);
  1111. };
  1112. $hxClasses["haxe.Timer"] = haxe.Timer;
  1113. haxe.Timer.__name__ = ["haxe","Timer"];
  1114. haxe.Timer.delay = function(f,time_ms) {
  1115.     var t = new haxe.Timer(time_ms);
  1116.     t.run = function() {
  1117.         t.stop();
  1118.         f();
  1119.     };
  1120.     return t;
  1121. }
  1122. haxe.Timer.prototype = {
  1123.     run: function() {
  1124.         null;
  1125.     }
  1126.     ,stop: function() {
  1127.         if(this.id == null) return;
  1128.         clearInterval(this.id);
  1129.         this.id = null;
  1130.     }
  1131.     ,__class__: haxe.Timer
  1132. }
  1133. haxe.Unserializer = function(buf) {
  1134.     this.buf = buf;
  1135.     this.length = buf.length;
  1136.     this.pos = 0;
  1137.     this.scache = new Array();
  1138.     this.cache = new Array();
  1139.     var r = haxe.Unserializer.DEFAULT_RESOLVER;
  1140.     if(r == null) {
  1141.         r = Type;
  1142.         haxe.Unserializer.DEFAULT_RESOLVER = r;
  1143.     }
  1144.     this.setResolver(r);
  1145. };
  1146. $hxClasses["haxe.Unserializer"] = haxe.Unserializer;
  1147. haxe.Unserializer.__name__ = ["haxe","Unserializer"];
  1148. haxe.Unserializer.initCodes = function() {
  1149.     var codes = new Array();
  1150.     var _g1 = 0, _g = haxe.Unserializer.BASE64.length;
  1151.     while(_g1 < _g) {
  1152.         var i = _g1++;
  1153.         codes[haxe.Unserializer.BASE64.charCodeAt(i)] = i;
  1154.     }
  1155.     return codes;
  1156. }
  1157. haxe.Unserializer.prototype = {
  1158.     unserialize: function() {
  1159.         var _g = this.buf.charCodeAt(this.pos++);
  1160.         switch(_g) {
  1161.         case 110:
  1162.             return null;
  1163.         case 116:
  1164.             return true;
  1165.         case 102:
  1166.             return false;
  1167.         case 122:
  1168.             return 0;
  1169.         case 105:
  1170.             return this.readDigits();
  1171.         case 100:
  1172.             var p1 = this.pos;
  1173.             while(true) {
  1174.                 var c = this.buf.charCodeAt(this.pos);
  1175.                 if(c >= 43 && c < 58 || c == 101 || c == 69) this.pos++; else break;
  1176.             }
  1177.             return Std.parseFloat(HxOverrides.substr(this.buf,p1,this.pos - p1));
  1178.         case 121:
  1179.             var len = this.readDigits();
  1180.             if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) throw "Invalid string length";
  1181.             var s = HxOverrides.substr(this.buf,this.pos,len);
  1182.             this.pos += len;
  1183.             s = StringTools.urlDecode(s);
  1184.             this.scache.push(s);
  1185.             return s;
  1186.         case 107:
  1187.             return Math.NaN;
  1188.         case 109:
  1189.             return Math.NEGATIVE_INFINITY;
  1190.         case 112:
  1191.             return Math.POSITIVE_INFINITY;
  1192.         case 97:
  1193.             var buf = this.buf;
  1194.             var a = new Array();
  1195.             this.cache.push(a);
  1196.             while(true) {
  1197.                 var c = this.buf.charCodeAt(this.pos);
  1198.                 if(c == 104) {
  1199.                     this.pos++;
  1200.                     break;
  1201.                 }
  1202.                 if(c == 117) {
  1203.                     this.pos++;
  1204.                     var n = this.readDigits();
  1205.                     a[a.length + n - 1] = null;
  1206.                 } else a.push(this.unserialize());
  1207.             }
  1208.             return a;
  1209.         case 111:
  1210.             var o = { };
  1211.             this.cache.push(o);
  1212.             this.unserializeObject(o);
  1213.             return o;
  1214.         case 114:
  1215.             var n = this.readDigits();
  1216.             if(n < 0 || n >= this.cache.length) throw "Invalid reference";
  1217.             return this.cache[n];
  1218.         case 82:
  1219.             var n = this.readDigits();
  1220.             if(n < 0 || n >= this.scache.length) throw "Invalid string reference";
  1221.             return this.scache[n];
  1222.         case 120:
  1223.             throw this.unserialize();
  1224.             break;
  1225.         case 99:
  1226.             var name = this.unserialize();
  1227.             var cl = this.resolver.resolveClass(name);
  1228.             if(cl == null) throw "Class not found " + name;
  1229.             var o = Type.createEmptyInstance(cl);
  1230.             this.cache.push(o);
  1231.             this.unserializeObject(o);
  1232.             return o;
  1233.         case 119:
  1234.             var name = this.unserialize();
  1235.             var edecl = this.resolver.resolveEnum(name);
  1236.             if(edecl == null) throw "Enum not found " + name;
  1237.             var e = this.unserializeEnum(edecl,this.unserialize());
  1238.             this.cache.push(e);
  1239.             return e;
  1240.         case 106:
  1241.             var name = this.unserialize();
  1242.             var edecl = this.resolver.resolveEnum(name);
  1243.             if(edecl == null) throw "Enum not found " + name;
  1244.             this.pos++;
  1245.             var index = this.readDigits();
  1246.             var tag = Type.getEnumConstructs(edecl)[index];
  1247.             if(tag == null) throw "Unknown enum index " + name + "@" + index;
  1248.             var e = this.unserializeEnum(edecl,tag);
  1249.             this.cache.push(e);
  1250.             return e;
  1251.         case 108:
  1252.             var l = new List();
  1253.             this.cache.push(l);
  1254.             var buf = this.buf;
  1255.             while(this.buf.charCodeAt(this.pos) != 104) l.add(this.unserialize());
  1256.             this.pos++;
  1257.             return l;
  1258.         case 98:
  1259.             var h = new haxe.ds.StringMap();
  1260.             this.cache.push(h);
  1261.             var buf = this.buf;
  1262.             while(this.buf.charCodeAt(this.pos) != 104) {
  1263.                 var s = this.unserialize();
  1264.                 h.set(s,this.unserialize());
  1265.             }
  1266.             this.pos++;
  1267.             return h;
  1268.         case 113:
  1269.             var h = new haxe.ds.IntMap();
  1270.             this.cache.push(h);
  1271.             var buf = this.buf;
  1272.             var c = this.buf.charCodeAt(this.pos++);
  1273.             while(c == 58) {
  1274.                 var i = this.readDigits();
  1275.                 h.set(i,this.unserialize());
  1276.                 c = this.buf.charCodeAt(this.pos++);
  1277.             }
  1278.             if(c != 104) throw "Invalid IntMap format";
  1279.             return h;
  1280.         case 77:
  1281.             var h = new haxe.ds.ObjectMap();
  1282.             this.cache.push(h);
  1283.             var buf = this.buf;
  1284.             while(this.buf.charCodeAt(this.pos) != 104) {
  1285.                 var s = this.unserialize();
  1286.                 h.set(s,this.unserialize());
  1287.             }
  1288.             this.pos++;
  1289.             return h;
  1290.         case 118:
  1291.             var d = HxOverrides.strDate(HxOverrides.substr(this.buf,this.pos,19));
  1292.             this.cache.push(d);
  1293.             this.pos += 19;
  1294.             return d;
  1295.         case 115:
  1296.             var len = this.readDigits();
  1297.             var buf = this.buf;
  1298.             if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) throw "Invalid bytes length";
  1299.             var codes = haxe.Unserializer.CODES;
  1300.             if(codes == null) {
  1301.                 codes = haxe.Unserializer.initCodes();
  1302.                 haxe.Unserializer.CODES = codes;
  1303.             }
  1304.             var i = this.pos;
  1305.             var rest = len & 3;
  1306.             var size = (len >> 2) * 3 + (rest >= 2?rest - 1:0);
  1307.             var max = i + (len - rest);
  1308.             var bytes = haxe.io.Bytes.alloc(size);
  1309.             var bpos = 0;
  1310.             while(i < max) {
  1311.                 var c1 = codes[buf.charCodeAt(i++)];
  1312.                 var c2 = codes[buf.charCodeAt(i++)];
  1313.                 bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255;
  1314.                 var c3 = codes[buf.charCodeAt(i++)];
  1315.                 bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255;
  1316.                 var c4 = codes[buf.charCodeAt(i++)];
  1317.                 bytes.b[bpos++] = (c3 << 6 | c4) & 255;
  1318.             }
  1319.             if(rest >= 2) {
  1320.                 var c1 = codes[buf.charCodeAt(i++)];
  1321.                 var c2 = codes[buf.charCodeAt(i++)];
  1322.                 bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255;
  1323.                 if(rest == 3) {
  1324.                     var c3 = codes[buf.charCodeAt(i++)];
  1325.                     bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255;
  1326.                 }
  1327.             }
  1328.             this.pos += len;
  1329.             this.cache.push(bytes);
  1330.             return bytes;
  1331.         case 67:
  1332.             var name = this.unserialize();
  1333.             var cl = this.resolver.resolveClass(name);
  1334.             if(cl == null) throw "Class not found " + name;
  1335.             var o = Type.createEmptyInstance(cl);
  1336.             this.cache.push(o);
  1337.             o.hxUnserialize(this);
  1338.             if(this.buf.charCodeAt(this.pos++) != 103) throw "Invalid custom data";
  1339.             return o;
  1340.         default:
  1341.         }
  1342.         this.pos--;
  1343.         throw "Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos;
  1344.     }
  1345.     ,unserializeEnum: function(edecl,tag) {
  1346.         if(this.buf.charCodeAt(this.pos++) != 58) throw "Invalid enum format";
  1347.         var nargs = this.readDigits();
  1348.         if(nargs == 0) return Type.createEnum(edecl,tag);
  1349.         var args = new Array();
  1350.         while(nargs-- > 0) args.push(this.unserialize());
  1351.         return Type.createEnum(edecl,tag,args);
  1352.     }
  1353.     ,unserializeObject: function(o) {
  1354.         while(true) {
  1355.             if(this.pos >= this.length) throw "Invalid object";
  1356.             if(this.buf.charCodeAt(this.pos) == 103) break;
  1357.             var k = this.unserialize();
  1358.             if(!js.Boot.__instanceof(k,String)) throw "Invalid object key";
  1359.             var v = this.unserialize();
  1360.             o[k] = v;
  1361.         }
  1362.         this.pos++;
  1363.     }
  1364.     ,readDigits: function() {
  1365.         var k = 0;
  1366.         var s = false;
  1367.         var fpos = this.pos;
  1368.         while(true) {
  1369.             var c = this.buf.charCodeAt(this.pos);
  1370.             if(c != c) break;
  1371.             if(c == 45) {
  1372.                 if(this.pos != fpos) break;
  1373.                 s = true;
  1374.                 this.pos++;
  1375.                 continue;
  1376.             }
  1377.             if(c < 48 || c > 57) break;
  1378.             k = k * 10 + (c - 48);
  1379.             this.pos++;
  1380.         }
  1381.         if(s) k *= -1;
  1382.         return k;
  1383.     }
  1384.     ,setResolver: function(r) {
  1385.         if(r == null) this.resolver = { resolveClass : function(_) {
  1386.             return null;
  1387.         }, resolveEnum : function(_) {
  1388.             return null;
  1389.         }}; else this.resolver = r;
  1390.     }
  1391.     ,__class__: haxe.Unserializer
  1392. }
  1393. haxe.ds = {}
  1394. haxe.ds.IntMap = function() {
  1395.     this.h = { };
  1396. };
  1397. $hxClasses["haxe.ds.IntMap"] = haxe.ds.IntMap;
  1398. haxe.ds.IntMap.__name__ = ["haxe","ds","IntMap"];
  1399. haxe.ds.IntMap.__interfaces__ = [IMap];
  1400. haxe.ds.IntMap.prototype = {
  1401.     keys: function() {
  1402.         var a = [];
  1403.         for( var key in this.h ) {
  1404.         if(this.h.hasOwnProperty(key)) a.push(key | 0);
  1405.         }
  1406.         return HxOverrides.iter(a);
  1407.     }
  1408.     ,get: function(key) {
  1409.         return this.h[key];
  1410.     }
  1411.     ,set: function(key,value) {
  1412.         this.h[key] = value;
  1413.     }
  1414.     ,__class__: haxe.ds.IntMap
  1415. }
  1416. haxe.ds.ObjectMap = function() {
  1417.     this.h = { };
  1418.     this.h.__keys__ = { };
  1419. };
  1420. $hxClasses["haxe.ds.ObjectMap"] = haxe.ds.ObjectMap;
  1421. haxe.ds.ObjectMap.__name__ = ["haxe","ds","ObjectMap"];
  1422. haxe.ds.ObjectMap.__interfaces__ = [IMap];
  1423. haxe.ds.ObjectMap.prototype = {
  1424.     keys: function() {
  1425.         var a = [];
  1426.         for( var key in this.h.__keys__ ) {
  1427.         if(this.h.hasOwnProperty(key)) a.push(this.h.__keys__[key]);
  1428.         }
  1429.         return HxOverrides.iter(a);
  1430.     }
  1431.     ,set: function(key,value) {
  1432.         var id = key.__id__ != null?key.__id__:key.__id__ = ++haxe.ds.ObjectMap.count;
  1433.         this.h[id] = value;
  1434.         this.h.__keys__[id] = key;
  1435.     }
  1436.     ,__class__: haxe.ds.ObjectMap
  1437. }
  1438. haxe.ds.StringMap = function() {
  1439.     this.h = { };
  1440. };
  1441. $hxClasses["haxe.ds.StringMap"] = haxe.ds.StringMap;
  1442. haxe.ds.StringMap.__name__ = ["haxe","ds","StringMap"];
  1443. haxe.ds.StringMap.__interfaces__ = [IMap];
  1444. haxe.ds.StringMap.prototype = {
  1445.     toString: function() {
  1446.         var s = new StringBuf();
  1447.         s.b += "{";
  1448.         var it = this.keys();
  1449.         while( it.hasNext() ) {
  1450.             var i = it.next();
  1451.             s.b += Std.string(i);
  1452.             s.b += " => ";
  1453.             s.b += Std.string(Std.string(this.get(i)));
  1454.             if(it.hasNext()) s.b += ", ";
  1455.         }
  1456.         s.b += "}";
  1457.         return s.b;
  1458.     }
  1459.     ,iterator: function() {
  1460.         return { ref : this.h, it : this.keys(), hasNext : function() {
  1461.             return this.it.hasNext();
  1462.         }, next : function() {
  1463.             var i = this.it.next();
  1464.             return this.ref["$" + i];
  1465.         }};
  1466.     }
  1467.     ,keys: function() {
  1468.         var a = [];
  1469.         for( var key in this.h ) {
  1470.         if(this.h.hasOwnProperty(key)) a.push(key.substr(1));
  1471.         }
  1472.         return HxOverrides.iter(a);
  1473.     }
  1474.     ,remove: function(key) {
  1475.         key = "$" + key;
  1476.         if(!this.h.hasOwnProperty(key)) return false;
  1477.         delete(this.h[key]);
  1478.         return true;
  1479.     }
  1480.     ,exists: function(key) {
  1481.         return this.h.hasOwnProperty("$" + key);
  1482.     }
  1483.     ,get: function(key) {
  1484.         return this.h["$" + key];
  1485.     }
  1486.     ,set: function(key,value) {
  1487.         this.h["$" + key] = value;
  1488.     }
  1489.     ,__class__: haxe.ds.StringMap
  1490. }
  1491. haxe.io = {}
  1492. haxe.io.Bytes = function(length,b) {
  1493.     this.length = length;
  1494.     this.b = b;
  1495. };
  1496. $hxClasses["haxe.io.Bytes"] = haxe.io.Bytes;
  1497. haxe.io.Bytes.__name__ = ["haxe","io","Bytes"];
  1498. haxe.io.Bytes.alloc = function(length) {
  1499.     var a = new Array();
  1500.     var _g = 0;
  1501.     while(_g < length) {
  1502.         var i = _g++;
  1503.         a.push(0);
  1504.     }
  1505.     return new haxe.io.Bytes(length,a);
  1506. }
  1507. haxe.io.Bytes.ofData = function(b) {
  1508.     return new haxe.io.Bytes(b.length,b);
  1509. }
  1510. haxe.io.Bytes.prototype = {
  1511.     __class__: haxe.io.Bytes
  1512. }
  1513. haxe.io.BytesBuffer = function() {
  1514.     this.b = new Array();
  1515. };
  1516. $hxClasses["haxe.io.BytesBuffer"] = haxe.io.BytesBuffer;
  1517. haxe.io.BytesBuffer.__name__ = ["haxe","io","BytesBuffer"];
  1518. haxe.io.BytesBuffer.prototype = {
  1519.     getBytes: function() {
  1520.         var bytes = new haxe.io.Bytes(this.b.length,this.b);
  1521.         this.b = null;
  1522.         return bytes;
  1523.     }
  1524.     ,__class__: haxe.io.BytesBuffer
  1525. }
  1526. haxe.remoting = {}
  1527. haxe.remoting.Connection = function() { }
  1528. $hxClasses["haxe.remoting.Connection"] = haxe.remoting.Connection;
  1529. haxe.remoting.Connection.__name__ = ["haxe","remoting","Connection"];
  1530. haxe.remoting.Connection.prototype = {
  1531.     __class__: haxe.remoting.Connection
  1532. }
  1533. haxe.remoting.Context = function() {
  1534.     this.objects = new haxe.ds.StringMap();
  1535. };
  1536. $hxClasses["haxe.remoting.Context"] = haxe.remoting.Context;
  1537. haxe.remoting.Context.__name__ = ["haxe","remoting","Context"];
  1538. haxe.remoting.Context.prototype = {
  1539.     call: function(path,params) {
  1540.         if(path.length < 2) throw "Invalid path '" + path.join(".") + "'";
  1541.         var inf = this.objects.get(path[0]);
  1542.         if(inf == null) throw "No such object " + path[0];
  1543.         var o = inf.obj;
  1544.         var m = Reflect.field(o,path[1]);
  1545.         if(path.length > 2) {
  1546.             if(!inf.rec) throw "Can't access " + path.join(".");
  1547.             var _g1 = 2, _g = path.length;
  1548.             while(_g1 < _g) {
  1549.                 var i = _g1++;
  1550.                 o = m;
  1551.                 m = Reflect.field(o,path[i]);
  1552.             }
  1553.         }
  1554.         if(!Reflect.isFunction(m)) throw "No such method " + path.join(".");
  1555.         return m.apply(o,params);
  1556.     }
  1557.     ,addObject: function(name,obj,recursive) {
  1558.         this.objects.set(name,{ obj : obj, rec : recursive});
  1559.     }
  1560.     ,__class__: haxe.remoting.Context
  1561. }
  1562. var js = {}
  1563. js.Boot = function() { }
  1564. $hxClasses["js.Boot"] = js.Boot;
  1565. js.Boot.__name__ = ["js","Boot"];
  1566. js.Boot.__string_rec = function(o,s) {
  1567.     if(o == null) return "null";
  1568.     if(s.length >= 5) return "<...>";
  1569.     var t = typeof(o);
  1570.     if(t == "function" && (o.__name__ || o.__ename__)) t = "object";
  1571.     switch(t) {
  1572.     case "object":
  1573.         if(o instanceof Array) {
  1574.             if(o.__enum__) {
  1575.                 if(o.length == 2) return o[0];
  1576.                 var str = o[0] + "(";
  1577.                 s += "\t";
  1578.                 var _g1 = 2, _g = o.length;
  1579.                 while(_g1 < _g) {
  1580.                     var i = _g1++;
  1581.                     if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
  1582.                 }
  1583.                 return str + ")";
  1584.             }
  1585.             var l = o.length;
  1586.             var i;
  1587.             var str = "[";
  1588.             s += "\t";
  1589.             var _g = 0;
  1590.             while(_g < l) {
  1591.                 var i1 = _g++;
  1592.                 str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
  1593.             }
  1594.             str += "]";
  1595.             return str;
  1596.         }
  1597.         var tostr;
  1598.         try {
  1599.             tostr = o.toString;
  1600.         } catch( e ) {
  1601.             return "???";
  1602.         }
  1603.         if(tostr != null && tostr != Object.toString) {
  1604.             var s2 = o.toString();
  1605.             if(s2 != "[object Object]") return s2;
  1606.         }
  1607.         var k = null;
  1608.         var str = "{\n";
  1609.         s += "\t";
  1610.         var hasp = o.hasOwnProperty != null;
  1611.         for( var k in o ) { ;
  1612.         if(hasp && !o.hasOwnProperty(k)) {
  1613.             continue;
  1614.         }
  1615.         if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
  1616.             continue;
  1617.         }
  1618.         if(str.length != 2) str += ", \n";
  1619.         str += s + k + " : " + js.Boot.__string_rec(o[k],s);
  1620.         }
  1621.         s = s.substring(1);
  1622.         str += "\n" + s + "}";
  1623.         return str;
  1624.     case "function":
  1625.         return "<function>";
  1626.     case "string":
  1627.         return o;
  1628.     default:
  1629.         return String(o);
  1630.     }
  1631. }
  1632. js.Boot.__interfLoop = function(cc,cl) {
  1633.     if(cc == null) return false;
  1634.     if(cc == cl) return true;
  1635.     var intf = cc.__interfaces__;
  1636.     if(intf != null) {
  1637.         var _g1 = 0, _g = intf.length;
  1638.         while(_g1 < _g) {
  1639.             var i = _g1++;
  1640.             var i1 = intf[i];
  1641.             if(i1 == cl || js.Boot.__interfLoop(i1,cl)) return true;
  1642.         }
  1643.     }
  1644.     return js.Boot.__interfLoop(cc.__super__,cl);
  1645. }
  1646. js.Boot.__instanceof = function(o,cl) {
  1647.     if(cl == null) return false;
  1648.     switch(cl) {
  1649.     case Int:
  1650.         return (o|0) === o;
  1651.     case Float:
  1652.         return typeof(o) == "number";
  1653.     case Bool:
  1654.         return typeof(o) == "boolean";
  1655.     case String:
  1656.         return typeof(o) == "string";
  1657.     case Dynamic:
  1658.         return true;
  1659.     default:
  1660.         if(o != null) {
  1661.             if(typeof(cl) == "function") {
  1662.                 if(o instanceof cl) {
  1663.                     if(cl == Array) return o.__enum__ == null;
  1664.                     return true;
  1665.                 }
  1666.                 if(js.Boot.__interfLoop(o.__class__,cl)) return true;
  1667.             }
  1668.         } else return false;
  1669.         if(cl == Class && o.__name__ != null) return true;
  1670.         if(cl == Enum && o.__ename__ != null) return true;
  1671.         return o.__enum__ == cl;
  1672.     }
  1673. }
  1674. js.Boot.__cast = function(o,t) {
  1675.     if(js.Boot.__instanceof(o,t)) return o; else throw "Cannot cast " + Std.string(o) + " to " + Std.string(t);
  1676. }
  1677. js.Browser = function() { }
  1678. $hxClasses["js.Browser"] = js.Browser;
  1679. js.Browser.__name__ = ["js","Browser"];
  1680. var prezi = {}
  1681. prezi.core = {}
  1682. prezi.core.Cloneable = function() { }
  1683. $hxClasses["prezi.core.Cloneable"] = prezi.core.Cloneable;
  1684. prezi.core.Cloneable.__name__ = ["prezi","core","Cloneable"];
  1685. prezi.core.Cloneable.prototype = {
  1686.     __class__: prezi.core.Cloneable
  1687. }
  1688. prezi.core.errors = {}
  1689. prezi.core.errors.Err = function(message,posInfo) {
  1690.     this.message = message;
  1691.     this.posInfo = posInfo;
  1692. };
  1693. $hxClasses["prezi.core.errors.Err"] = prezi.core.errors.Err;
  1694. prezi.core.errors.Err.__name__ = ["prezi","core","errors","Err"];
  1695. prezi.core.errors.Err.prototype = {
  1696.     infoToString: function() {
  1697.         var str = "";
  1698.         if(this.message != null) str += " '" + Std.string(this.message) + "'";
  1699.         if(this.posInfo != null) {
  1700.             str += " - " + this.posInfo.fileName + ":" + this.posInfo.lineNumber;
  1701.             str += " / " + this.posInfo.className + "." + this.posInfo.methodName;
  1702.         }
  1703.         return str;
  1704.     }
  1705.     ,getMessage: function() {
  1706.         return this.message;
  1707.     }
  1708.     ,toString: function() {
  1709.         var str = "Error";
  1710.         str += this.infoToString();
  1711.         return str;
  1712.     }
  1713.     ,__class__: prezi.core.errors.Err
  1714. }
  1715. prezi.core.errors.ArgumentError = function(reason,posInfo) {
  1716.     prezi.core.errors.Err.call(this,reason,posInfo);
  1717. };
  1718. $hxClasses["prezi.core.errors.ArgumentError"] = prezi.core.errors.ArgumentError;
  1719. prezi.core.errors.ArgumentError.__name__ = ["prezi","core","errors","ArgumentError"];
  1720. prezi.core.errors.ArgumentError.__super__ = prezi.core.errors.Err;
  1721. prezi.core.errors.ArgumentError.prototype = $extend(prezi.core.errors.Err.prototype,{
  1722.     toString: function() {
  1723.         var str = "ArgumentError";
  1724.         str += this.infoToString();
  1725.         return str;
  1726.     }
  1727.     ,__class__: prezi.core.errors.ArgumentError
  1728. });
  1729. prezi.core.errors.NotImplementedError = function(message,posInfo) {
  1730.     prezi.core.errors.Err.call(this,message,posInfo);
  1731. };
  1732. $hxClasses["prezi.core.errors.NotImplementedError"] = prezi.core.errors.NotImplementedError;
  1733. prezi.core.errors.NotImplementedError.__name__ = ["prezi","core","errors","NotImplementedError"];
  1734. prezi.core.errors.NotImplementedError.__super__ = prezi.core.errors.Err;
  1735. prezi.core.errors.NotImplementedError.prototype = $extend(prezi.core.errors.Err.prototype,{
  1736.     toString: function() {
  1737.         var str = "NotImplementedError";
  1738.         str += this.infoToString();
  1739.         return str;
  1740.     }
  1741.     ,__class__: prezi.core.errors.NotImplementedError
  1742. });
  1743. prezi.graphics = {}
  1744. prezi.graphics.text = {}
  1745. prezi.graphics.text.FontFaceHash = function() {
  1746.     this.delegate = new haxe.ds.StringMap();
  1747. };
  1748. $hxClasses["prezi.graphics.text.FontFaceHash"] = prezi.graphics.text.FontFaceHash;
  1749. prezi.graphics.text.FontFaceHash.__name__ = ["prezi","graphics","text","FontFaceHash"];
  1750. prezi.graphics.text.FontFaceHash.prototype = {
  1751.     toString: function() {
  1752.         return this.delegate.toString();
  1753.     }
  1754.     ,toKey: function(fontFaceId) {
  1755.         return fontFaceId.toString();
  1756.     }
  1757.     ,set: function(key,value) {
  1758.         this.delegate.set(key.toString(),value);
  1759.     }
  1760.     ,remove: function(key) {
  1761.         return this.delegate.remove(key.toString());
  1762.     }
  1763.     ,keys: function() {
  1764.         return new prezi.graphics.text.FontFaceHashIterator(this.delegate.keys());
  1765.     }
  1766.     ,iterator: function() {
  1767.         return this.delegate.iterator();
  1768.     }
  1769.     ,get: function(key) {
  1770.         return this.delegate.get(key.toString());
  1771.     }
  1772.     ,exists: function(key) {
  1773.         return this.delegate.exists(key.toString());
  1774.     }
  1775.     ,__class__: prezi.graphics.text.FontFaceHash
  1776. }
  1777. prezi.graphics.text.FontFaceHashIterator = function(delegate) {
  1778.     this.delegate = delegate;
  1779. };
  1780. $hxClasses["prezi.graphics.text.FontFaceHashIterator"] = prezi.graphics.text.FontFaceHashIterator;
  1781. prezi.graphics.text.FontFaceHashIterator.__name__ = ["prezi","graphics","text","FontFaceHashIterator"];
  1782. prezi.graphics.text.FontFaceHashIterator.prototype = {
  1783.     next: function() {
  1784.         return prezi.graphics.text.FontFaceId.fromString(this.delegate.next());
  1785.     }
  1786.     ,hasNext: function() {
  1787.         return this.delegate.hasNext();
  1788.     }
  1789.     ,__class__: prezi.graphics.text.FontFaceHashIterator
  1790. }
  1791. prezi.graphics.text.FontFaceId = function(id,family,weight,style) {
  1792.     this.id = id;
  1793.     this.family = family;
  1794.     this.weight = weight;
  1795.     this.style = style;
  1796. };
  1797. $hxClasses["prezi.graphics.text.FontFaceId"] = prezi.graphics.text.FontFaceId;
  1798. $hxExpose(prezi.graphics.text.FontFaceId, "prezi.graphics.text.FontFaceId");
  1799. prezi.graphics.text.FontFaceId.__name__ = ["prezi","graphics","text","FontFaceId"];
  1800. prezi.graphics.text.FontFaceId.__interfaces__ = [prezi.core.Cloneable];
  1801. prezi.graphics.text.FontFaceId.get = function(family,weight,style) {
  1802.     if(family == null) throw "" + "family" + " should not be null";
  1803.     family;
  1804.     if(weight == null) weight = "normal";
  1805.     if(style == null) style = "normal";
  1806.     var id = family + ":" + weight + ":" + style;
  1807.     var result = prezi.graphics.text.FontFaceId.interned.get(id);
  1808.     if(result == null) {
  1809.         result = new prezi.graphics.text.FontFaceId(id,family,weight,style);
  1810.         prezi.graphics.text.FontFaceId.interned.set(id,result);
  1811.     }
  1812.     return result;
  1813. }
  1814. prezi.graphics.text.FontFaceId.fromString = function(fontFaceId) {
  1815.     if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  1816.     fontFaceId;
  1817.     var parts = fontFaceId.split(":");
  1818.     if(parts.length > 3) throw "Invalid FontFaceId format: \"" + fontFaceId + "\"";
  1819.     return prezi.graphics.text.FontFaceId.get(parts[0],parts[1],parts[2]);
  1820. }
  1821. prezi.graphics.text.FontFaceId.prototype = {
  1822.     toString: function() {
  1823.         return this.id;
  1824.     }
  1825.     ,equals: function(other) {
  1826.         if(!js.Boot.__instanceof(other,prezi.graphics.text.FontFaceId)) return false;
  1827.         var o = js.Boot.__cast(other , prezi.graphics.text.FontFaceId);
  1828.         return this.family == o.family && this.weight == o.weight && this.style == o.style;
  1829.     }
  1830.     ,clone: function() {
  1831.         return this;
  1832.     }
  1833.     ,__class__: prezi.graphics.text.FontFaceId
  1834. }
  1835. prezi.graphics.text.FontInfo = function(fontFaceId,unitsPerEm,ascent,descent,lineGap,italicAngle,underlinePosition,underlineThickness) {
  1836.     this.id = (function($this) {
  1837.         var $r;
  1838.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  1839.         $r = fontFaceId;
  1840.         return $r;
  1841.     }(this));
  1842.     this.unitsPerEm = unitsPerEm;
  1843.     this.ascent = ascent;
  1844.     this.descent = descent;
  1845.     this.lineGap = lineGap;
  1846.     this.italicAngle = italicAngle;
  1847.     this.underlinePosition = underlinePosition;
  1848.     this.underlineThickness = underlineThickness;
  1849. };
  1850. $hxClasses["prezi.graphics.text.FontInfo"] = prezi.graphics.text.FontInfo;
  1851. $hxExpose(prezi.graphics.text.FontInfo, "prezi.graphics.text.FontInfo");
  1852. prezi.graphics.text.FontInfo.__name__ = ["prezi","graphics","text","FontInfo"];
  1853. prezi.graphics.text.FontInfo.prototype = {
  1854.     toString: function() {
  1855.         return prezi.graphics.text.ToStringUtils.toString(this,["id","unitsPerEm","ascent","descent","lineGap","italicAngle","underlinePosition","underlineThickness"]);
  1856.     }
  1857.     ,hxUnserialize: function(s) {
  1858.         this.id = s.unserialize();
  1859.         this.unitsPerEm = s.unserialize();
  1860.         this.ascent = s.unserialize();
  1861.         this.descent = s.unserialize();
  1862.         this.lineGap = s.unserialize();
  1863.         this.italicAngle = s.unserialize();
  1864.         this.underlinePosition = s.unserialize();
  1865.         this.underlineThickness = s.unserialize();
  1866.     }
  1867.     ,hxSerialize: function(s) {
  1868.         s.serialize(this.id);
  1869.         s.serialize(this.unitsPerEm);
  1870.         s.serialize(this.ascent);
  1871.         s.serialize(this.descent);
  1872.         s.serialize(this.lineGap);
  1873.         s.serialize(this.italicAngle);
  1874.         s.serialize(this.underlinePosition);
  1875.         s.serialize(this.underlineThickness);
  1876.     }
  1877.     ,__class__: prezi.graphics.text.FontInfo
  1878. }
  1879. prezi.graphics.text.OtfConstants = function() { }
  1880. $hxClasses["prezi.graphics.text.OtfConstants"] = prezi.graphics.text.OtfConstants;
  1881. prezi.graphics.text.OtfConstants.__name__ = ["prezi","graphics","text","OtfConstants"];
  1882. prezi.graphics.text.Preconditions = function() { }
  1883. $hxClasses["prezi.graphics.text.Preconditions"] = prezi.graphics.text.Preconditions;
  1884. prezi.graphics.text.Preconditions.__name__ = ["prezi","graphics","text","Preconditions"];
  1885. prezi.graphics.text.Preconditions.checkNotNull = function(value,name) {
  1886.     if(name == null) name = "parameter";
  1887.     if(value == null) throw "" + name + " should not be null";
  1888.     return value;
  1889. }
  1890. prezi.graphics.text.Shape = function(codepoint,cluster,x_advance,y_advance,x_offset,y_offset) {
  1891.     this.codepoint = codepoint;
  1892.     this.cluster = cluster;
  1893.     this.x_advance = x_advance;
  1894.     this.y_advance = y_advance;
  1895.     this.x_offset = x_offset;
  1896.     this.y_offset = y_offset;
  1897. };
  1898. $hxClasses["prezi.graphics.text.Shape"] = prezi.graphics.text.Shape;
  1899. $hxExpose(prezi.graphics.text.Shape, "prezi.graphics.text.Shape");
  1900. prezi.graphics.text.Shape.__name__ = ["prezi","graphics","text","Shape"];
  1901. prezi.graphics.text.Shape.prototype = {
  1902.     hxUnserialize: function(s) {
  1903.         this.codepoint = s.unserialize();
  1904.         this.cluster = s.unserialize();
  1905.         this.x_advance = s.unserialize();
  1906.         this.y_advance = s.unserialize();
  1907.         this.x_offset = s.unserialize();
  1908.         this.y_offset = s.unserialize();
  1909.     }
  1910.     ,hxSerialize: function(s) {
  1911.         s.serialize(this.codepoint);
  1912.         s.serialize(this.cluster);
  1913.         s.serialize(this.x_advance);
  1914.         s.serialize(this.y_advance);
  1915.         s.serialize(this.x_offset);
  1916.         s.serialize(this.y_offset);
  1917.     }
  1918.     ,__class__: prezi.graphics.text.Shape
  1919. }
  1920. prezi.graphics.text.ToStringUtils = function() { }
  1921. $hxClasses["prezi.graphics.text.ToStringUtils"] = prezi.graphics.text.ToStringUtils;
  1922. prezi.graphics.text.ToStringUtils.__name__ = ["prezi","graphics","text","ToStringUtils"];
  1923. prezi.graphics.text.ToStringUtils.toString = function(object,fields) {
  1924.     var result = "";
  1925.     var _g = 0;
  1926.     while(_g < fields.length) {
  1927.         var f = fields[_g];
  1928.         ++_g;
  1929.         result += f + "=" + Std.string(Reflect.field(object,f)) + "; ";
  1930.     }
  1931.     return result;
  1932. }
  1933. prezi.graphics.text.backend = {}
  1934. prezi.graphics.text.backend.IHarfBuzzFont = function() { }
  1935. $hxClasses["prezi.graphics.text.backend.IHarfBuzzFont"] = prezi.graphics.text.backend.IHarfBuzzFont;
  1936. prezi.graphics.text.backend.IHarfBuzzFont.__name__ = ["prezi","graphics","text","backend","IHarfBuzzFont"];
  1937. prezi.graphics.text.backend.IHarfBuzzFont.prototype = {
  1938.     __class__: prezi.graphics.text.backend.IHarfBuzzFont
  1939. }
  1940. prezi.graphics.text.backend.AbstractHarfBuzzFont = function(harfbuzz,fontId,otfFont,overrideLineMetrics) {
  1941.     this.harfbuzz = harfbuzz;
  1942.     this.fontId = fontId;
  1943.     this.otfFont = otfFont;
  1944.     this.overrideLineMetrics = overrideLineMetrics;
  1945. };
  1946. $hxClasses["prezi.graphics.text.backend.AbstractHarfBuzzFont"] = prezi.graphics.text.backend.AbstractHarfBuzzFont;
  1947. prezi.graphics.text.backend.AbstractHarfBuzzFont.__name__ = ["prezi","graphics","text","backend","AbstractHarfBuzzFont"];
  1948. prezi.graphics.text.backend.AbstractHarfBuzzFont.__interfaces__ = [prezi.graphics.text.backend.IHarfBuzzFont];
  1949. prezi.graphics.text.backend.AbstractHarfBuzzFont.isKegFile = function(fileData) {
  1950.     if(js.Boot.__cast(fileData.length , Int) < prezi.graphics.text.backend.AbstractHarfBuzzFont.KEG_HEADER.length) return false;
  1951.     var _g1 = 0, _g = prezi.graphics.text.backend.AbstractHarfBuzzFont.KEG_HEADER.length;
  1952.     while(_g1 < _g) {
  1953.         var i = _g1++;
  1954.         if(fileData[i] != prezi.graphics.text.backend.AbstractHarfBuzzFont.KEG_HEADER[i]) return false;
  1955.     }
  1956.     return true;
  1957. }
  1958. prezi.graphics.text.backend.AbstractHarfBuzzFont.prototype = {
  1959.     outline: function(glyphCode) {
  1960.         return this.otfFont.glyphOutline(glyphCode);
  1961.     }
  1962.     ,shapeRun: function(textRun,startCluster,shapes,hb_features,hb_feature_count) {
  1963.         throw "Not implemented";
  1964.     }
  1965.     ,getUcdnScript: function(unicode) {
  1966.         throw "Not implemented";
  1967.         return 0;
  1968.     }
  1969.     ,makeFeatures: function(features) {
  1970.         throw "Not implemented";
  1971.         return null;
  1972.     }
  1973.     ,shape: function(text,features) {
  1974.         if(text.length == 0) return [];
  1975.         if(this.overrideLineMetrics != null) features = features.concat(["-kern","-liga"]);
  1976.         var hb_features = this.makeFeatures(features);
  1977.         var start = 0;
  1978.         var end = 0;
  1979.         var currentScript = -1;
  1980.         var shapes = [];
  1981.         while(start < text.length) {
  1982.             var needsBreak = end == text.length;
  1983.             if(!needsBreak) {
  1984.                 var script = this.getUcdnScript(HxOverrides.cca(text,end));
  1985.                 if(script != 0 && script != 40) {
  1986.                     if(currentScript != -1 && currentScript != script) needsBreak = true;
  1987.                     currentScript = script;
  1988.                 }
  1989.             }
  1990.             if(needsBreak) {
  1991.                 this.shapeRun(text.substring(start,end),start,shapes,hb_features,features.length);
  1992.                 start = end;
  1993.             }
  1994.             end++;
  1995.         }
  1996.         return shapes;
  1997.     }
  1998.     ,info: function() {
  1999.         var ascent;
  2000.         var descent;
  2001.         var lineGap;
  2002.         if(this.overrideLineMetrics != null) {
  2003.             ascent = Math.floor(this.overrideLineMetrics.ascent * this.otfFont.unitsPerEm);
  2004.             descent = Math.floor(this.overrideLineMetrics.descent * this.otfFont.unitsPerEm);
  2005.             lineGap = Math.floor(this.overrideLineMetrics.lineGap * this.otfFont.unitsPerEm);
  2006.         } else {
  2007.             ascent = this.otfFont.ascent;
  2008.             descent = this.otfFont.descent;
  2009.             lineGap = this.otfFont.lineGap;
  2010.         }
  2011.         return new prezi.graphics.text.FontInfo(this.fontId,this.otfFont.unitsPerEm,ascent,descent,lineGap,this.otfFont.italicAngle,this.otfFont.underlinePosition,this.otfFont.underlineThickness);
  2012.     }
  2013.     ,getId: function() {
  2014.         return this.fontId;
  2015.     }
  2016.     ,destroy: function() {
  2017.     }
  2018.     ,__class__: prezi.graphics.text.backend.AbstractHarfBuzzFont
  2019. }
  2020. prezi.graphics.text.otf = {}
  2021. prezi.graphics.text.otf.IFontFileReader = function() { }
  2022. $hxClasses["prezi.graphics.text.otf.IFontFileReader"] = prezi.graphics.text.otf.IFontFileReader;
  2023. prezi.graphics.text.otf.IFontFileReader.__name__ = ["prezi","graphics","text","otf","IFontFileReader"];
  2024. prezi.graphics.text.otf.IFontFileReader.prototype = {
  2025.     __class__: prezi.graphics.text.otf.IFontFileReader
  2026. }
  2027. prezi.graphics.text.backend.EmscriptenFontFileReader = function(harfbuzz,heapOffset) {
  2028.     this.harfbuzz = harfbuzz.raw;
  2029.     this.heapName = harfbuzz.heapName;
  2030.     this.heapOffset = heapOffset;
  2031.     this.pos = 0;
  2032. };
  2033. $hxClasses["prezi.graphics.text.backend.EmscriptenFontFileReader"] = prezi.graphics.text.backend.EmscriptenFontFileReader;
  2034. prezi.graphics.text.backend.EmscriptenFontFileReader.__name__ = ["prezi","graphics","text","backend","EmscriptenFontFileReader"];
  2035. prezi.graphics.text.backend.EmscriptenFontFileReader.__interfaces__ = [prezi.graphics.text.otf.IFontFileReader];
  2036. prezi.graphics.text.backend.EmscriptenFontFileReader.prototype = {
  2037.     heap: function() {
  2038.         return this.harfbuzz[this.heapName];
  2039.     }
  2040.     ,readLongDateTime: function() {
  2041.         this.pos += 8;
  2042.         return 0;
  2043.     }
  2044.     ,readUFWord: function() {
  2045.         return this.readUShort();
  2046.     }
  2047.     ,peekUFWord: function(offset) {
  2048.         return this.peekUShort(offset);
  2049.     }
  2050.     ,readFWord: function() {
  2051.         return this.readShort();
  2052.     }
  2053.     ,peekFWord: function(offset) {
  2054.         return this.peekShort(offset);
  2055.     }
  2056.     ,readF2Dot14: function() {
  2057.         var val;
  2058.         val = this.peekF2Dot14(this.pos);
  2059.         this.pos += 2;
  2060.         return val;
  2061.     }
  2062.     ,peekF2Dot14: function(offset) {
  2063.         var frac;
  2064.         var mantissa;
  2065.         var val;
  2066.         val = this.peekShort(offset);
  2067.         mantissa = val >> 14 & 3;
  2068.         frac = (val & 16383) / 16384;
  2069.         if(mantissa >= 2) mantissa -= 4;
  2070.         return mantissa + frac;
  2071.     }
  2072.     ,readFixed: function() {
  2073.         var val;
  2074.         val = this.peekFixed(this.pos);
  2075.         this.pos += 4;
  2076.         return val;
  2077.     }
  2078.     ,peekFixed: function(offset) {
  2079.         return this.peekLong(offset) / 65536;
  2080.     }
  2081.     ,readLong: function() {
  2082.         var val;
  2083.         val = this.peekLong(this.pos);
  2084.         this.pos += 4;
  2085.         return val;
  2086.     }
  2087.     ,peekLong: function(offset) {
  2088.         var u32;
  2089.         u32 = this.peekULong(offset);
  2090.         if(u32 < -2147483648) return u32; else return u32 - 0x100000000;
  2091.     }
  2092.     ,readULong: function() {
  2093.         var val;
  2094.         val = this.peekULong(this.pos);
  2095.         this.pos += 4;
  2096.         return val;
  2097.     }
  2098.     ,peekULong: function(offset) {
  2099.         return (this.harfbuzz[this.heapName][this.heapOffset + offset] & 255) << 24 | (this.harfbuzz[this.heapName][this.heapOffset + offset + 1] & 255) << 16 | (this.harfbuzz[this.heapName][this.heapOffset + offset + 2] & 255) << 8 | this.harfbuzz[this.heapName][this.heapOffset + offset + 3] & 255;
  2100.     }
  2101.     ,readUInt24: function() {
  2102.         var val;
  2103.         val = this.peekUInt24(this.pos);
  2104.         this.pos += 3;
  2105.         return val;
  2106.     }
  2107.     ,peekUInt24: function(offset) {
  2108.         return (this.harfbuzz[this.heapName][this.heapOffset + offset] & 255) << 16 | (this.harfbuzz[this.heapName][this.heapOffset + offset + 1] & 255) << 8 | this.harfbuzz[this.heapName][this.heapOffset + offset + 2] & 255;
  2109.     }
  2110.     ,readShort: function() {
  2111.         var val;
  2112.         val = this.peekShort(this.pos);
  2113.         this.pos += 2;
  2114.         return val;
  2115.     }
  2116.     ,peekShort: function(offset) {
  2117.         var u16;
  2118.         u16 = this.peekUShort(offset);
  2119.         if(u16 < 32768) return u16; else return u16 - 65536;
  2120.     }
  2121.     ,readUShort: function() {
  2122.         var val;
  2123.         val = this.peekUShort(this.pos);
  2124.         this.pos += 2;
  2125.         return val;
  2126.     }
  2127.     ,peekUShort: function(offset) {
  2128.         return (this.harfbuzz[this.heapName][this.heapOffset + offset] & 255) << 8 | this.harfbuzz[this.heapName][this.heapOffset + offset + 1] & 255;
  2129.     }
  2130.     ,readChar: function() {
  2131.         return this.peekChar(this.pos++);
  2132.     }
  2133.     ,peekChar: function(offset) {
  2134.         var u8;
  2135.         u8 = this.peekByte(offset);
  2136.         if(u8 < 128) return u8; else return u8 - 256;
  2137.     }
  2138.     ,readByte: function() {
  2139.         return this.peekByte(this.pos++);
  2140.     }
  2141.     ,peekByte: function(offset) {
  2142.         return this.harfbuzz[this.heapName][this.heapOffset + offset] & 255;
  2143.     }
  2144.     ,position: function() {
  2145.         return this.pos;
  2146.     }
  2147.     ,skip: function(count) {
  2148.         this.pos += count;
  2149.         return this.pos;
  2150.     }
  2151.     ,seek: function(pos) {
  2152.         this.pos = pos;
  2153.     }
  2154.     ,__class__: prezi.graphics.text.backend.EmscriptenFontFileReader
  2155. }
  2156. prezi.graphics.text.backend.IFontManagerBackend = function() { }
  2157. $hxClasses["prezi.graphics.text.backend.IFontManagerBackend"] = prezi.graphics.text.backend.IFontManagerBackend;
  2158. prezi.graphics.text.backend.IFontManagerBackend.__name__ = ["prezi","graphics","text","backend","IFontManagerBackend"];
  2159. prezi.graphics.text.backend.IFontManagerBackend.prototype = {
  2160.     __class__: prezi.graphics.text.backend.IFontManagerBackend
  2161. }
  2162. prezi.graphics.text.backend.FontManagerBackend = function(harfbuzz,defaultFontData,fontInstalled,fontInstallationFailed) {
  2163.     this.harfbuzz = (function($this) {
  2164.         var $r;
  2165.         if(harfbuzz == null) throw "" + "harfbuzz" + " should not be null";
  2166.         $r = harfbuzz;
  2167.         return $r;
  2168.     }(this));
  2169.     if(defaultFontData == null) throw "" + "defaultFontData" + " should not be null";
  2170.     defaultFontData;
  2171.     this.defaultFont = harfbuzz.createFont(prezi.graphics.text.FontFaceId.DEFAULT,defaultFontData.b,null);
  2172.     this.fonts = new prezi.graphics.text.FontFaceHash();
  2173.     this.fonts.set(prezi.graphics.text.FontFaceId.DEFAULT,this.defaultFont);
  2174.     this.fontInstalled = (function($this) {
  2175.         var $r;
  2176.         if(fontInstalled == null) throw "" + "fontInstalled" + " should not be null";
  2177.         $r = fontInstalled;
  2178.         return $r;
  2179.     }(this));
  2180.     this.fontInstallationFailed = (function($this) {
  2181.         var $r;
  2182.         if(fontInstallationFailed == null) throw "" + "fontInstallationFailed" + " should not be null";
  2183.         $r = fontInstallationFailed;
  2184.         return $r;
  2185.     }(this));
  2186.     this.httpService = new prezi.service.HttpService();
  2187. };
  2188. $hxClasses["prezi.graphics.text.backend.FontManagerBackend"] = prezi.graphics.text.backend.FontManagerBackend;
  2189. prezi.graphics.text.backend.FontManagerBackend.__name__ = ["prezi","graphics","text","backend","FontManagerBackend"];
  2190. prezi.graphics.text.backend.FontManagerBackend.__interfaces__ = [prezi.graphics.text.backend.IFontManagerBackend];
  2191. prezi.graphics.text.backend.FontManagerBackend.prototype = {
  2192.     getFont: function(fontFaceId) {
  2193.         var font = this.fonts.get(fontFaceId);
  2194.         if(font == null) {
  2195.             if(fontFaceId.style != "normal" && fontFaceId.weight != "normal") {
  2196.                 font = this.fonts.get(prezi.graphics.text.FontFaceId.get(fontFaceId.family,fontFaceId.weight,"normal"));
  2197.                 if(font == null) font = this.fonts.get(prezi.graphics.text.FontFaceId.get(fontFaceId.family,"normal",fontFaceId.style));
  2198.             }
  2199.             if(font == null && (fontFaceId.style != "normal" || fontFaceId.weight != "normal")) font = this.fonts.get(prezi.graphics.text.FontFaceId.get(fontFaceId.family,"normal","normal"));
  2200.             if(font == null) font = this.defaultFont;
  2201.             this.fonts.set(fontFaceId,font);
  2202.         }
  2203.         return font;
  2204.     }
  2205.     ,outline: function(fontFaceId,glyphCode) {
  2206.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2207.         fontFaceId;
  2208.         return this.getFont(fontFaceId).outline(glyphCode);
  2209.     }
  2210.     ,shape: function(fontFaceId,text,features) {
  2211.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2212.         fontFaceId;
  2213.         if(text == null) throw "" + "text" + " should not be null";
  2214.         text;
  2215.         return this.getFont(fontFaceId).shape(text,features);
  2216.     }
  2217.     ,info: function(fontFaceId) {
  2218.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2219.         fontFaceId;
  2220.         return this.getFont(fontFaceId).info();
  2221.     }
  2222.     ,uninstall: function(fontFaceId) {
  2223.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2224.         fontFaceId;
  2225.         var font = this.fonts.get(fontFaceId);
  2226.         if(font != null) {
  2227.             if(fontFaceId.equals(font.getId())) font.destroy();
  2228.             this.fonts.remove(fontFaceId);
  2229.         }
  2230.     }
  2231.     ,reportInstallationError: function(fontFaceId,url,e,loc) {
  2232.         if(loc == null) loc = "";
  2233.         if(this.fontInstallationFailed != null) {
  2234.             var message = Std.string(e);
  2235.             if(e != null && !js.Boot.__instanceof(e,String)) {
  2236.                 var _g = 0, _g1 = Reflect.fields(e);
  2237.                 while(_g < _g1.length) {
  2238.                     var property = _g1[_g];
  2239.                     ++_g;
  2240.                     message += "; " + property + " = " + Std.string(Reflect.field(e,property));
  2241.                     if(property == "target" && e.target != null && !js.Boot.__instanceof(e.target,String)) {
  2242.                         message += "(";
  2243.                         var _g2 = 0, _g3 = Reflect.fields(e.target);
  2244.                         while(_g2 < _g3.length) {
  2245.                             var property1 = _g3[_g2];
  2246.                             ++_g2;
  2247.                             message += "; " + property1 + " = " + Std.string(Reflect.field(e.target,property1));
  2248.                         }
  2249.                         message += ")";
  2250.                     }
  2251.                 }
  2252.             }
  2253.             this.fontInstallationFailed(fontFaceId,url,message + " at " + loc);
  2254.         }
  2255.     }
  2256.     ,installFromFileSync: function(fontFaceId,filePath,overrideLineMetrics) {
  2257.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2258.         fontFaceId;
  2259.         if(filePath == null) throw "" + "filePath" + " should not be null";
  2260.         filePath;
  2261.         var bytes = js.Browser.window.nativeFileRead(filePath);
  2262.         return this.install(fontFaceId,haxe.io.Bytes.ofData(bytes),overrideLineMetrics,filePath);
  2263.     }
  2264.     ,installFromFileSyncIsAvailable: function() {
  2265.         return js.Browser.window != null && js.Browser.window.nativeFileRead != null;
  2266.     }
  2267.     ,installFromUrl: function(fontFaceId,url,overrideLineMetrics,attempt) {
  2268.         if(attempt == null) attempt = 0;
  2269.         var _g = this;
  2270.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2271.         fontFaceId;
  2272.         if(url == null) throw "" + "url" + " should not be null";
  2273.         url;
  2274.         var request = this.httpService.newHttpRequest(url);
  2275.         request.setGetMethod();
  2276.         var onError = function(error,lacation) {
  2277.             if(attempt < 10) haxe.Timer.delay(function() {
  2278.                 var random = Std.string(Std.random(1000000)) + "_" + Std.string(attempt);
  2279.                 if(url.indexOf("?") == -1) url += "?rnd=" + random; else url = HxOverrides.substr(url,0,url.indexOf("rnd=") + 4) + random;
  2280.                 _g.installFromUrl(fontFaceId,url,overrideLineMetrics,attempt + 1);
  2281.             },10); else _g.reportInstallationError(fontFaceId,url,error,"installFromUrl " + lacation + " (url:" + url + ") (Maximum retry count reached (" + Std.string(attempt) + "))");
  2282.         };
  2283.         request.setBinaryResultListener(function(response) {
  2284.             _g.install(fontFaceId,haxe.io.Bytes.ofData(response),overrideLineMetrics,url,attempt);
  2285.         });
  2286.         request.setErrorListener(function(errorMessage) {
  2287.             onError(errorMessage,"at error handler");
  2288.         });
  2289.         try {
  2290.             request.load();
  2291.         } catch( e ) {
  2292.             onError(e,"at load");
  2293.         }
  2294.     }
  2295.     ,install: function(fontFaceId,fontData,overrideLineMetrics,origin,attempt) {
  2296.         if(attempt == null) attempt = 0;
  2297.         if(fontFaceId == null) throw "" + "fontFaceId" + " should not be null";
  2298.         fontFaceId;
  2299.         if(fontData == null) throw "" + "fontData" + " should not be null";
  2300.         fontData;
  2301.         var font;
  2302.         try {
  2303.             font = this.harfbuzz.createFont(fontFaceId,fontData.b,overrideLineMetrics);
  2304.             this.fonts.set(fontFaceId,font);
  2305.         } catch( e ) {
  2306.             this.reportInstallationError(fontFaceId,origin,e,"install");
  2307.             throw e;
  2308.         }
  2309.         if(this.fontInstalled != null) this.fontInstalled(fontFaceId,origin,attempt);
  2310.         return font.info();
  2311.     }
  2312.     ,__class__: prezi.graphics.text.backend.FontManagerBackend
  2313. }
  2314. prezi.graphics.text.backend.HarfBuzzFontJs = function(harfBuzzJs,fontId,fileData,overrideLineMetrics) {
  2315.     var harfbuzz = harfBuzzJs.raw;
  2316.     var skipHeaderBytes = prezi.graphics.text.backend.AbstractHarfBuzzFont.isKegFile(fileData)?prezi.graphics.text.backend.AbstractHarfBuzzFont.KEG_HEADER.length:0;
  2317.     this.fontData = new (harfbuzz.array(harfbuzz.Char, fileData.length - skipHeaderBytes))();
  2318.     if(harfBuzzJs.heapName == "HEAP8") {
  2319.         var fileDataArray = new Uint8Array(fileData);
  2320.         if(skipHeaderBytes > 0) fileDataArray = fileDataArray.subarray(skipHeaderBytes);
  2321.         harfbuzz['HEAP8'].set(fileDataArray, this.fontData.$ptr);
  2322.     } else {
  2323.         var modern = Array.prototype.splice && Array.prototype.unshift && fileData.slice && fileData.unshift;
  2324.         if(modern) {
  2325.             var copyOffset = skipHeaderBytes;
  2326.             while(copyOffset < fileData.length) {
  2327.                 var copyLength = Math.min(fileData.length - copyOffset,32768) | 0;
  2328.                 var args = fileData.slice(copyOffset, copyOffset + copyLength);
  2329.                 args.unshift(this.fontData.$ptr + copyOffset - skipHeaderBytes, copyLength);
  2330.                 Array.prototype.splice.apply(harfbuzz['HEAP'], args);
  2331.                 copyOffset += copyLength;
  2332.             }
  2333.         } else {
  2334.             var _g1 = 0, _g = fileData.length - skipHeaderBytes;
  2335.             while(_g1 < _g) {
  2336.                 var idx = _g1++;
  2337.                 harfbuzz['HEAP'][this.fontData.$ptr + idx] = fileData[skipHeaderBytes + idx];
  2338.             }
  2339.         }
  2340.     }
  2341.     prezi.graphics.text.backend.AbstractHarfBuzzFont.call(this,harfBuzzJs,fontId,new prezi.graphics.text.otf.OtfFont(new prezi.graphics.text.backend.EmscriptenFontFileReader(harfBuzzJs,this.fontData.$ptr)),overrideLineMetrics);
  2342.     var blob = harfbuzz.hb_blob_create(this.fontData,fileData.length - skipHeaderBytes,1,null,null);
  2343.     var face = harfbuzz.hb_face_create(blob,0);
  2344.     harfbuzz.hb_blob_destroy(blob);
  2345.     this.hbFont = harfbuzz.hb_font_create(face);
  2346.     harfbuzz.hb_face_destroy(face);
  2347.     harfbuzz.hb_font_set_scale(this.hbFont,this.otfFont.unitsPerEm,this.otfFont.unitsPerEm);
  2348.     this.glyphHAdvanceFunction = this.createGlyphHAdvanceFunction(this.otfFont);
  2349.     this.glyphFunction = this.createGlyphFunction(this.otfFont);
  2350.     var ffuncs = harfbuzz.hb_font_funcs_create();
  2351.     harfbuzz.hb_font_funcs_set_glyph_h_advance_func(ffuncs,this.glyphHAdvanceFunction,null,null);
  2352.     harfbuzz.hb_font_funcs_set_glyph_func(ffuncs,this.glyphFunction,null,null);
  2353.     harfbuzz.hb_font_set_funcs(this.hbFont,ffuncs,null,null);
  2354.     harfbuzz.hb_font_funcs_destroy(ffuncs);
  2355.     this.buffer = harfbuzz.hb_buffer_create();
  2356. };
  2357. $hxClasses["prezi.graphics.text.backend.HarfBuzzFontJs"] = prezi.graphics.text.backend.HarfBuzzFontJs;
  2358. prezi.graphics.text.backend.HarfBuzzFontJs.__name__ = ["prezi","graphics","text","backend","HarfBuzzFontJs"];
  2359. prezi.graphics.text.backend.HarfBuzzFontJs.__super__ = prezi.graphics.text.backend.AbstractHarfBuzzFont;
  2360. prezi.graphics.text.backend.HarfBuzzFontJs.prototype = $extend(prezi.graphics.text.backend.AbstractHarfBuzzFont.prototype,{
  2361.     createGlyphFunction: function(otfFont) {
  2362.         var harfbuzz = (js.Boot.__cast(this.harfbuzz , prezi.graphics.text.backend.HarfBuzzJs)).raw;
  2363.         return harfbuzz.callback(harfbuzz.Bool,null,{ font : harfbuzz.ptr(harfbuzz.hb_font_t), font_data : harfbuzz.ptr(harfbuzz.Void), unicode : harfbuzz.hb_codepoint_t, variant_selector : harfbuzz.hb_codepoint_t, glyph : harfbuzz.ptr(harfbuzz.hb_codepoint_t), user_data : harfbuzz.ptr(harfbuzz.Void)},function(font,font_data,unicode,variant_selector,glyph,user_data) {
  2364.             var glyphIndex = otfFont.unicodeToGlyphCode(unicode);
  2365.             glyph.set(glyphIndex);
  2366.             return glyphIndex != 0;
  2367.         });
  2368.     }
  2369.     ,createGlyphHAdvanceFunction: function(otfFont) {
  2370.         var harfbuzz = (js.Boot.__cast(this.harfbuzz , prezi.graphics.text.backend.HarfBuzzJs)).raw;
  2371.         return harfbuzz.callback(harfbuzz.hb_position_t,null,{ font : harfbuzz.ptr(harfbuzz.hb_font_t), font_data : harfbuzz.ptr(harfbuzz.Void), glyph : harfbuzz.hb_codepoint_t, user_data : harfbuzz.ptr(harfbuzz.Void)},function(font,font_data,glyph,user_data) {
  2372.             return otfFont.advanceWidth(glyph);
  2373.         });
  2374.     }
  2375.     ,shapeRun: function(textRun,startCluster,shapes,hb_features,hb_feature_count) {
  2376.         var harfbuzz = (js.Boot.__cast(this.harfbuzz , prezi.graphics.text.backend.HarfBuzzJs)).raw;
  2377.         var string = new harfbuzz.string(textRun, harfbuzz.ALLOC_STACK);
  2378.         harfbuzz.hb_buffer_reset(this.buffer);
  2379.         harfbuzz.hb_buffer_add_utf8(this.buffer,string,-1,0,-1);
  2380.         harfbuzz.hb_buffer_guess_segment_properties(this.buffer);
  2381.         harfbuzz.hb_buffer_set_direction(this.buffer,harfbuzz.HB_DIRECTION_LTR);
  2382.         var len = harfbuzz.hb_buffer_get_length(this.buffer);
  2383.         var glyph = harfbuzz.hb_buffer_get_glyph_infos(this.buffer,null);
  2384.         var _g = 0;
  2385.         while(_g < len) {
  2386.             var i = _g++;
  2387.             glyph.set("cluster",startCluster + i);
  2388.             glyph = glyph.$next();
  2389.         }
  2390.         harfbuzz.hb_shape(this.hbFont,this.buffer,hb_features,hb_feature_count);
  2391.         len = harfbuzz.hb_buffer_get_length(this.buffer);
  2392.         glyph = harfbuzz.hb_buffer_get_glyph_infos(this.buffer,null);
  2393.         var pos = harfbuzz.hb_buffer_get_glyph_positions(this.buffer,null);
  2394.         var _g = 0;
  2395.         while(_g < len) {
  2396.             var i = _g++;
  2397.             shapes.push(new prezi.graphics.text.Shape(glyph.get("codepoint"),glyph.get("cluster"),pos.get("x_advance"),pos.get("y_advance"),pos.get("x_offset"),pos.get("y_offset")));
  2398.             glyph = glyph.$next();
  2399.             pos = pos.$next();
  2400.         }
  2401.     }
  2402.     ,getUcdnScript: function(unicode) {
  2403.         return (js.Boot.__cast(this.harfbuzz , prezi.graphics.text.backend.HarfBuzzJs)).raw.ucdn_get_script(unicode);
  2404.     }
  2405.     ,makeFeatures: function(features) {
  2406.         var harfbuzz = (js.Boot.__cast(this.harfbuzz , prezi.graphics.text.backend.HarfBuzzJs)).raw;
  2407.         var hb_features = null;
  2408.         if(features.length > 0) {
  2409.             hb_features = new (harfbuzz.array(harfbuzz.hb_feature_t, features.length))();
  2410.             var _g1 = 0, _g = features.length;
  2411.             while(_g1 < _g) {
  2412.                 var i = _g1++;
  2413.                 var feature = features[i];
  2414.                 var featureString = new harfbuzz.string(feature, harfbuzz.ALLOC_STACK);
  2415.                 harfbuzz.hb_feature_from_string(featureString,-1,hb_features.ptr(i));
  2416.             }
  2417.         }
  2418.         return hb_features;
  2419.     }
  2420.     ,destroy: function() {
  2421.         var harfbuzz = (js.Boot.__cast(this.harfbuzz , prezi.graphics.text.backend.HarfBuzzJs)).raw;
  2422.         harfbuzz.hb_buffer_destroy(this.buffer);
  2423.         harfbuzz.hb_font_destroy(this.hbFont);
  2424.         harfbuzz.free(this.fontData);
  2425.         harfbuzz.unregisterCallback(this.glyphHAdvanceFunction);
  2426.         harfbuzz.unregisterCallback(this.glyphFunction);
  2427.     }
  2428.     ,__class__: prezi.graphics.text.backend.HarfBuzzFontJs
  2429. });
  2430. prezi.graphics.text.backend.IHarfBuzz = function() { }
  2431. $hxClasses["prezi.graphics.text.backend.IHarfBuzz"] = prezi.graphics.text.backend.IHarfBuzz;
  2432. prezi.graphics.text.backend.IHarfBuzz.__name__ = ["prezi","graphics","text","backend","IHarfBuzz"];
  2433. prezi.graphics.text.backend.IHarfBuzz.prototype = {
  2434.     __class__: prezi.graphics.text.backend.IHarfBuzz
  2435. }
  2436. prezi.graphics.text.backend.HarfBuzzJs = function() {
  2437.     this.raw = (function($) {
  2438.             var Module={};
  2439.             Module["FAST_MEMORY"]=1;
  2440.             // Use 32 MB of memory by default -- Korean fonts can be big
  2441.             Module["TOTAL_MEMORY"] = 32 * 1024 * 1024;
  2442.     Module['version'] = '0.9.15-125-g5bfa9e9-untyped-debug';
  2443. Module['emccVersion'] = 'emcc (Emscripten GCC-like replacement) 1.4.3 (commit 7dd278baf74a4e4d763d9c6040ca4c6d03125209)';
  2444. // Note: For maximum-speed code, see "Optimizing Code" on the Emscripten wiki, https://github.com/kripken/emscripten/wiki/Optimizing-Code
  2445. // Note: Some Emscripten settings may limit the speed of the generated code.
  2446. try {
  2447.   this['Module'] = Module;
  2448. } catch(e) {
  2449.   this['Module'] = Module = {};
  2450. }
  2451. // The environment setup code below is customized to use Module.
  2452. // *** Environment setup code ***
  2453. var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function';
  2454. var ENVIRONMENT_IS_WEB = typeof window === 'object';
  2455. var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
  2456. var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
  2457. if (ENVIRONMENT_IS_NODE) {
  2458.   // Expose functionality in the same simple way that the shells work
  2459.   // Note that we pollute the global namespace here, otherwise we break in node
  2460.   Module['print'] = function(x) {
  2461.     process['stdout'].write(x + '\n');
  2462.   };
  2463.   Module['printErr'] = function(x) {
  2464.     process['stderr'].write(x + '\n');
  2465.   };
  2466.   var nodeFS = require('fs');
  2467.   var nodePath = require('path');
  2468.   Module['read'] = function(filename, binary) {
  2469.     filename = nodePath['normalize'](filename);
  2470.     var ret = nodeFS['readFileSync'](filename);
  2471.     // The path is absolute if the normalized version is the same as the resolved.
  2472.     if (!ret && filename != nodePath['resolve'](filename)) {
  2473.       filename = path.join(__dirname, '..', 'src', filename);
  2474.       ret = nodeFS['readFileSync'](filename);
  2475.     }
  2476.     if (ret && !binary) ret = ret.toString();
  2477.     return ret;
  2478.   };
  2479.   Module['readBinary'] = function(filename) { return Module['read'](filename, true) };
  2480.   Module['load'] = function(f) {
  2481.     globalEval(read(f));
  2482.   };
  2483.   if (!Module['arguments']) {
  2484.     Module['arguments'] = process['argv'].slice(2);
  2485.   }
  2486. }
  2487. if (ENVIRONMENT_IS_SHELL) {
  2488.   Module['print'] = print;
  2489.   if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
  2490.   Module['read'] = read;
  2491.   Module['readBinary'] = function(f) {
  2492.     return read(f, 'binary');
  2493.   };
  2494.   if (!Module['arguments']) {
  2495.     if (typeof scriptArgs != 'undefined') {
  2496.       Module['arguments'] = scriptArgs;
  2497.     } else if (typeof arguments != 'undefined') {
  2498.       Module['arguments'] = arguments;
  2499.     }
  2500.   }
  2501. }
  2502. if (ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER) {
  2503.   if (!Module['print']) {
  2504.     Module['print'] = function(x) {
  2505.       console.log(x);
  2506.     };
  2507.   }
  2508.   if (!Module['printErr']) {
  2509.     Module['printErr'] = function(x) {
  2510.       console.log(x);
  2511.     };
  2512.   }
  2513. }
  2514. if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
  2515.   Module['read'] = function(url) {
  2516.     var xhr = new XMLHttpRequest();
  2517.     xhr.open('GET', url, false);
  2518.     xhr.send(null);
  2519.     return xhr.responseText;
  2520.   };
  2521.   if (!Module['arguments']) {
  2522.     if (typeof arguments != 'undefined') {
  2523.       Module['arguments'] = arguments;
  2524.     }
  2525.   }
  2526. }
  2527. if (ENVIRONMENT_IS_WORKER) {
  2528.   // We can do very little here...
  2529.   var TRY_USE_DUMP = false;
  2530.   if (!Module['print']) {
  2531.     Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
  2532.       dump(x);
  2533.     }) : (function(x) {
  2534.       // self.postMessage(x); // enable this if you want stdout to be sent as messages
  2535.     }));
  2536.   }
  2537.   Module['load'] = importScripts;
  2538. }
  2539. if (!ENVIRONMENT_IS_WORKER && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_SHELL) {
  2540.   // Unreachable because SHELL is dependant on the others
  2541.   throw 'Unknown runtime environment. Where are we?';
  2542. }
  2543. function globalEval(x) {
  2544.   eval.call(null, x);
  2545. }
  2546. if (!Module['load'] == 'undefined' && Module['read']) {
  2547.   Module['load'] = function(f) {
  2548.     globalEval(Module['read'](f));
  2549.   };
  2550. }
  2551. if (!Module['print']) {
  2552.   Module['print'] = function(){};
  2553. }
  2554. if (!Module['printErr']) {
  2555.   Module['printErr'] = Module['print'];
  2556. }
  2557. if (!Module['arguments']) {
  2558.   Module['arguments'] = [];
  2559. }
  2560. // *** Environment setup code ***
  2561. // Closure helpers
  2562. Module.print = Module['print'];
  2563. Module.printErr = Module['printErr'];
  2564. // Callbacks
  2565. if (!Module['preRun']) Module['preRun'] = [];
  2566. if (!Module['postRun']) Module['postRun'] = [];
  2567. // === Auto-generated preamble library stuff ===
  2568. //========================================
  2569. // Runtime code shared with compiler
  2570. //========================================
  2571. var Runtime = {
  2572.   stackSave: function () {
  2573.     return STACKTOP;
  2574.   },
  2575.   stackRestore: function (stackTop) {
  2576.     STACKTOP = stackTop;
  2577.   },
  2578.   forceAlign: function (target, quantum) {
  2579.     quantum = quantum || 4;
  2580.     if (quantum == 1) return target;
  2581.     if (isNumber(target) && isNumber(quantum)) {
  2582.       return Math.ceil(target/quantum)*quantum;
  2583.     } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
  2584.       var logg = log2(quantum);
  2585.       return '((((' +target + ')+' + (quantum-1) + ')>>' + logg + ')<<' + logg + ')';
  2586.     }
  2587.     return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
  2588.   },
  2589.   isNumberType: function (type) {
  2590.     return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
  2591.   },
  2592.   isPointerType: function isPointerType(type) {
  2593.   return type[type.length-1] == '*';
  2594. },
  2595.   isStructType: function isStructType(type) {
  2596.   if (isPointerType(type)) return false;
  2597.   if (/^\[\d+\ x\ (.*)\]/.test(type)) return true; // [15 x ?] blocks. Like structs
  2598.   if (/<?{ ?[^}]* ?}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
  2599.   // See comment in isStructPointerType()
  2600.   return type[0] == '%';
  2601. },
  2602.   INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
  2603.   FLOAT_TYPES: {"float":0,"double":0},
  2604.   or64: function (x, y) {
  2605.     var l = (x | 0) | (y | 0);
  2606.     var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
  2607.     return l + h;
  2608.   },
  2609.   and64: function (x, y) {
  2610.     var l = (x | 0) & (y | 0);
  2611.     var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
  2612.     return l + h;
  2613.   },
  2614.   xor64: function (x, y) {
  2615.     var l = (x | 0) ^ (y | 0);
  2616.     var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
  2617.     return l + h;
  2618.   },
  2619.   getNativeTypeSize: function (type, quantumSize) {
  2620.     if (Runtime.QUANTUM_SIZE == 1) return 1;
  2621.     var size = {
  2622.       '%i1': 1,
  2623.       '%i8': 1,
  2624.       '%i16': 2,
  2625.       '%i32': 4,
  2626.       '%i64': 8,
  2627.       "%float": 4,
  2628.       "%double": 8
  2629.     }['%'+type]; // add '%' since float and double confuse Closure compiler as keys, and also spidermonkey as a compiler will remove 's from '_i8' etc
  2630.     if (!size) {
  2631.       if (type.charAt(type.length-1) == '*') {
  2632.         size = Runtime.QUANTUM_SIZE; // A pointer
  2633.       } else if (type[0] == 'i') {
  2634.         var bits = parseInt(type.substr(1));
  2635.         assert(bits % 8 == 0);
  2636.         size = bits/8;
  2637.       }
  2638.     }
  2639.     return size;
  2640.   },
  2641.   getNativeFieldSize: function (type) {
  2642.     return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
  2643.   },
  2644.   dedup: function dedup(items, ident) {
  2645.   var seen = {};
  2646.   if (ident) {
  2647.     return items.filter(function(item) {
  2648.       if (seen[item[ident]]) return false;
  2649.       seen[item[ident]] = true;
  2650.       return true;
  2651.     });
  2652.   } else {
  2653.     return items.filter(function(item) {
  2654.       if (seen[item]) return false;
  2655.       seen[item] = true;
  2656.       return true;
  2657.     });
  2658.   }
  2659. },
  2660.   set: function set() {
  2661.   var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
  2662.   var ret = {};
  2663.   for (var i = 0; i < args.length; i++) {
  2664.     ret[args[i]] = 0;
  2665.   }
  2666.   return ret;
  2667. },
  2668.   STACK_ALIGN: 8,
  2669.   getAlignSize: function (type, size, vararg) {
  2670.     // we align i64s and doubles on 64-bit boundaries, unlike x86
  2671.     if (type == 'i64' || type == 'double' || vararg) return 8;
  2672.     if (!type) return Math.min(size, 8); // align structures internally to 64 bits
  2673.     return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
  2674.   },
  2675.   calculateStructAlignment: function calculateStructAlignment(type) {
  2676.     type.flatSize = 0;
  2677.     type.alignSize = 0;
  2678.     var diffs = [];
  2679.     var prev = -1;
  2680.     type.flatIndexes = type.fields.map(function(field) {
  2681.       var size, alignSize;
  2682.       if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
  2683.         size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
  2684.         alignSize = Runtime.getAlignSize(field, size);
  2685.       } else if (Runtime.isStructType(field)) {
  2686.         size = Types.types[field].flatSize;
  2687.         alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
  2688.       } else if (field[0] == 'b') {
  2689.         // bN, large number field, like a [N x i8]
  2690.         size = field.substr(1)|0;
  2691.         alignSize = 1;
  2692.       } else {
  2693.         throw 'Unclear type in struct: ' + field + ', in ' + type.name_ + ' :: ' + dump(Types.types[type.name_]);
  2694.       }
  2695.       if (type.packed) alignSize = 1;
  2696.       type.alignSize = Math.max(type.alignSize, alignSize);
  2697.       var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
  2698.       type.flatSize = curr + size;
  2699.       if (prev >= 0) {
  2700.         diffs.push(curr-prev);
  2701.       }
  2702.       prev = curr;
  2703.       return curr;
  2704.     });
  2705.     type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
  2706.     if (diffs.length == 0) {
  2707.       type.flatFactor = type.flatSize;
  2708.     } else if (Runtime.dedup(diffs).length == 1) {
  2709.       type.flatFactor = diffs[0];
  2710.     }
  2711.     type.needsFlattening = (type.flatFactor != 1);
  2712.     return type.flatIndexes;
  2713.   },
  2714.   generateStructInfo: function (struct, typeName, offset) {
  2715.     var type, alignment;
  2716.     if (typeName) {
  2717.       offset = offset || 0;
  2718.       type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
  2719.       if (!type) return null;
  2720.       if (type.fields.length != struct.length) {
  2721.         printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
  2722.         return null;
  2723.       }
  2724.       alignment = type.flatIndexes;
  2725.     } else {
  2726.       var type = { fields: struct.map(function(item) { return item[0] }) };
  2727.       alignment = Runtime.calculateStructAlignment(type);
  2728.     }
  2729.     var ret = {
  2730.       __size__: type.flatSize
  2731.     };
  2732.     if (typeName) {
  2733.       struct.forEach(function(item, i) {
  2734.         if (typeof item === 'string') {
  2735.           ret[item] = alignment[i] + offset;
  2736.         } else {
  2737.           // embedded struct
  2738.           var key;
  2739.           for (var k in item) key = k;
  2740.           ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
  2741.         }
  2742.       });
  2743.     } else {
  2744.       struct.forEach(function(item, i) {
  2745.         ret[item[1]] = alignment[i];
  2746.       });
  2747.     }
  2748.     return ret;
  2749.   },
  2750.   dynCall: function (sig, ptr, args) {
  2751.     if (args && args.length) {
  2752.       return FUNCTION_TABLE[ptr].apply(null, args);
  2753.     } else {
  2754.       return FUNCTION_TABLE[ptr]();
  2755.     }
  2756.   },
  2757.   addFunction: function (func) {
  2758.     var table = FUNCTION_TABLE;
  2759.     var ret = table.length;
  2760.     table.push(func);
  2761.     table.push(0);
  2762.     return ret;
  2763.   },
  2764.   removeFunction: function (index) {
  2765.     var table = FUNCTION_TABLE;
  2766.     table[index] = null;
  2767.   },
  2768.   warnOnce: function (text) {
  2769.     if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
  2770.     if (!Runtime.warnOnce.shown[text]) {
  2771.       Runtime.warnOnce.shown[text] = 1;
  2772.       Module.printErr(text);
  2773.     }
  2774.   },
  2775.   funcWrappers: {},
  2776.   getFuncWrapper: function (func, sig) {
  2777.     assert(sig);
  2778.     if (!Runtime.funcWrappers[func]) {
  2779.       Runtime.funcWrappers[func] = function() {
  2780.         return Runtime.dynCall(sig, func, arguments);
  2781.       };
  2782.     }
  2783.     return Runtime.funcWrappers[func];
  2784.   },
  2785.   UTF8Processor: function () {
  2786.     var buffer = [];
  2787.     var needed = 0;
  2788.     this.processCChar = function (code) {
  2789.       code = code & 0xff;
  2790.       if (needed) {
  2791.         buffer.push(code);
  2792.         needed--;
  2793.       }
  2794.       if (buffer.length == 0) {
  2795.         if (code < 128) return String.fromCharCode(code);
  2796.         buffer.push(code);
  2797.         if (code > 191 && code < 224) {
  2798.           needed = 1;
  2799.         } else {
  2800.           needed = 2;
  2801.         }
  2802.         return '';
  2803.       }
  2804.       if (needed > 0) return '';
  2805.       var c1 = buffer[0];
  2806.       var c2 = buffer[1];
  2807.       var c3 = buffer[2];
  2808.       var ret;
  2809.       if (c1 > 191 && c1 < 224) {
  2810.         ret = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
  2811.       } else {
  2812.         ret = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
  2813.       }
  2814.       buffer.length = 0;
  2815.       return ret;
  2816.     }
  2817.     this.processJSString = function(string) {
  2818.       string = unescape(encodeURIComponent(string));
  2819.       var ret = [];
  2820.       for (var i = 0; i < string.length; i++) {
  2821.         ret.push(string.charCodeAt(i));
  2822.       }
  2823.       return ret;
  2824.     }
  2825.   },
  2826.   stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0; return ret; },
  2827.   staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = ((((STATICTOP)+7)>>3)<<3); return ret; },
  2828.   dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = ((((DYNAMICTOP)+7)>>3)<<3); return ret; },
  2829.   alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; },
  2830.   makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? (((low)>>>(0))+(((high)>>>(0))*4294967296)) : (((low)>>>(0))+(((high)|(0))*4294967296))); return ret; },
  2831.   GLOBAL_BASE: 8,
  2832.   QUANTUM_SIZE: 4,
  2833.   __dummy__: 0
  2834. }
  2835. //========================================
  2836. // Runtime essentials
  2837. //========================================
  2838. var __THREW__ = 0; // Used in checking for thrown exceptions.
  2839. var setjmpId = 1; // Used in setjmp/longjmp
  2840. var setjmpLabels = {};
  2841. var ABORT = false;
  2842. var undef = 0;
  2843. // tempInt is used for 32-bit signed values or smaller. tempBigInt is used
  2844. // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
  2845. var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD;
  2846. function abort(text) {
  2847.   Module.print(text + ':\n' + (new Error).stack);
  2848.   ABORT = true;
  2849.   throw "Assertion: " + text;
  2850. }
  2851. function assert(condition, text) {
  2852.   if (!condition) {
  2853.     abort('Assertion failed: ' + text);
  2854.   }
  2855. }
  2856. var globalScope = this;
  2857. // C calling interface. A convenient way to call C functions (in C files, or
  2858. // defined with extern "C").
  2859. //
  2860. // Note: LLVM optimizations can inline and remove functions, after which you will not be
  2861. //       able to call them. Closure can also do so. To avoid that, add your function to
  2862. //       the exports using something like
  2863. //
  2864. //         -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
  2865. //
  2866. // @param ident      The name of the C function (note that C++ functions will be name-mangled - use extern "C")
  2867. // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
  2868. //                   'array' for JavaScript arrays and typed arrays).
  2869. // @param argTypes   An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
  2870. //                   except that 'array' is not possible (there is no way for us to know the length of the array)
  2871. // @param args       An array of the arguments to the function, as native JS values (as in returnType)
  2872. //                   Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
  2873. // @return           The return value, as a native JS value (as in returnType)
  2874. function ccall(ident, returnType, argTypes, args) {
  2875.   return ccallFunc(getCFunc(ident), returnType, argTypes, args);
  2876. }
  2877. Module["ccall"] = ccall;
  2878. // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
  2879. function getCFunc(ident) {
  2880.   try {
  2881.     var func = globalScope['Module']['_' + ident]; // closure exported function
  2882.     if (!func) func = eval('_' + ident); // explicit lookup
  2883.   } catch(e) {
  2884.   }
  2885.   assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
  2886.   return func;
  2887. }
  2888. // Internal function that does a C call using a function, not an identifier
  2889. function ccallFunc(func, returnType, argTypes, args) {
  2890.   var stack = 0;
  2891.   function toC(value, type) {
  2892.     if (type == 'string') {
  2893.       if (value === null || value === undefined || value === 0) return 0; // null string
  2894.       if (!stack) stack = Runtime.stackSave();
  2895.       var ret = Runtime.stackAlloc(value.length+1);
  2896.       writeStringToMemory(value, ret);
  2897.       return ret;
  2898.     } else if (type == 'array') {
  2899.       if (!stack) stack = Runtime.stackSave();
  2900.       var ret = Runtime.stackAlloc(value.length);
  2901.       writeArrayToMemory(value, ret);
  2902.       return ret;
  2903.     }
  2904.     return value;
  2905.   }
  2906.   function fromC(value, type) {
  2907.     if (type == 'string') {
  2908.       return Pointer_stringify(value);
  2909.     }
  2910.     assert(type != 'array');
  2911.     return value;
  2912.   }
  2913.   var i = 0;
  2914.   var cArgs = args ? args.map(function(arg) {
  2915.     return toC(arg, argTypes[i++]);
  2916.   }) : [];
  2917.   var ret = fromC(func.apply(null, cArgs), returnType);
  2918.   if (stack) Runtime.stackRestore(stack);
  2919.   return ret;
  2920. }
  2921. // Returns a native JS wrapper for a C function. This is similar to ccall, but
  2922. // returns a function you can call repeatedly in a normal way. For example:
  2923. //
  2924. //   var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
  2925. //   alert(my_function(5, 22));
  2926. //   alert(my_function(99, 12));
  2927. //
  2928. function cwrap(ident, returnType, argTypes) {
  2929.   var func = getCFunc(ident);
  2930.   return function() {
  2931.     return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
  2932.   }
  2933. }
  2934. Module["cwrap"] = cwrap;
  2935. // Sets a value in memory in a dynamic way at run-time. Uses the
  2936. // type data. This is the same as makeSetValue, except that
  2937. // makeSetValue is done at compile-time and generates the needed
  2938. // code then, whereas this function picks the right code at
  2939. // run-time.
  2940. // Note that setValue and getValue only do *aligned* writes and reads!
  2941. // Note that ccall uses JS types as for defining types, while setValue and
  2942. // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
  2943. function setValue(ptr, value, type, noSafe) {
  2944.   type = type || 'i8';
  2945.   if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
  2946.     switch(type) {
  2947.       case 'i1': HEAP[ptr]=value; break;
  2948.       case 'i8': HEAP[ptr]=value; break;
  2949.       case 'i16': HEAP[ptr]=value; break;
  2950.       case 'i32': HEAP[ptr]=value; break;
  2951.       case 'i64': HEAP[ptr]=value; break;
  2952.       case 'float': HEAP[ptr]=value; break;
  2953.       case 'double': HEAP[ptr]=value; break;
  2954.       default: abort('invalid type for setValue: ' + type);
  2955.     }
  2956. }
  2957. Module['setValue'] = setValue;
  2958. // Parallel to setValue.
  2959. function getValue(ptr, type, noSafe) {
  2960.   type = type || 'i8';
  2961.   if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
  2962.     switch(type) {
  2963.       case 'i1': return HEAP[ptr];
  2964.       case 'i8': return HEAP[ptr];
  2965.       case 'i16': return HEAP[ptr];
  2966.       case 'i32': return HEAP[ptr];
  2967.       case 'i64': return HEAP[ptr];
  2968.       case 'float': return HEAP[ptr];
  2969.       case 'double': return HEAP[ptr];
  2970.       default: abort('invalid type for setValue: ' + type);
  2971.     }
  2972.   return null;
  2973. }
  2974. Module['getValue'] = getValue;
  2975. var ALLOC_NORMAL = 0; // Tries to use _malloc()
  2976. var ALLOC_STACK = 1; // Lives for the duration of the current function call
  2977. var ALLOC_STATIC = 2; // Cannot be freed
  2978. var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
  2979. var ALLOC_NONE = 4; // Do not allocate
  2980. Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
  2981. Module['ALLOC_STACK'] = ALLOC_STACK;
  2982. Module['ALLOC_STATIC'] = ALLOC_STATIC;
  2983. Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC;
  2984. Module['ALLOC_NONE'] = ALLOC_NONE;
  2985. // allocate(): This is for internal use. You can use it yourself as well, but the interface
  2986. //             is a little tricky (see docs right below). The reason is that it is optimized
  2987. //             for multiple syntaxes to save space in generated code. So you should
  2988. //             normally not use allocate(), and instead allocate memory using _malloc(),
  2989. //             initialize it with setValue(), and so forth.
  2990. // @slab: An array of data, or a number. If a number, then the size of the block to allocate,
  2991. //        in *bytes* (note that this is sometimes confusing: the next parameter does not
  2992. //        affect this!)
  2993. // @types: Either an array of types, one for each byte (or 0 if no type at that position),
  2994. //         or a single type which is used for the entire block. This only matters if there
  2995. //         is initial data - if @slab is a number, then this does not matter at all and is
  2996. //         ignored.
  2997. // @allocator: How to allocate memory, see ALLOC_*
  2998. function allocate(slab, types, allocator, ptr) {
  2999.   var zeroinit, size;
  3000.   if (typeof slab === 'number') {
  3001.     zeroinit = true;
  3002.     size = slab;
  3003.   } else {
  3004.     zeroinit = false;
  3005.     size = slab.length;
  3006.   }
  3007.   var singleType = typeof types === 'string' ? types : null;
  3008.   var ret;
  3009.   if (allocator == ALLOC_NONE) {
  3010.     ret = ptr;
  3011.   } else {
  3012.     ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
  3013.   }
  3014.   if (zeroinit) {
  3015.     if (Module['NO_ZERO_INIT'] === true) {
  3016.       return ret;
  3017.     }
  3018.     var ptr = ret, stop;
  3019.     stop = ret + size;
  3020.     while (ptr < stop) {
  3021.       HEAP[ptr++]=0;
  3022.     }
  3023.     return ret;
  3024.   }
  3025.   var i = 0, type, typeSize, previousType;
  3026.   while (i < size) {
  3027.     var curr = slab[i];
  3028.     if (typeof curr === 'function') {
  3029.       curr = Runtime.getFunctionIndex(curr);
  3030.     }
  3031.     type = singleType || types[i];
  3032.     if (type === 0) {
  3033.       i++;
  3034.       continue;
  3035.     }
  3036.     setValue(ret+i, curr, type);
  3037.     // no need to look up size unless type changes, so cache it
  3038.     if (previousType !== type) {
  3039.       typeSize = Runtime.getNativeTypeSize(type);
  3040.       previousType = type;
  3041.     }
  3042.     i += typeSize;
  3043.   }
  3044.   return ret;
  3045. }
  3046. Module['allocate'] = allocate;
  3047. function Pointer_stringify(ptr, /* optional */ length) {
  3048.   // Find the length, and check for UTF while doing so
  3049.   var hasUtf = false;
  3050.   var t;
  3051.   var i = 0;
  3052.   while (1) {
  3053.     t = HEAP[(ptr)+(i)];
  3054.     if (t >= 128) hasUtf = true;
  3055.     else if (t == 0 && !length) break;
  3056.     i++;
  3057.     if (length && i == length) break;
  3058.   }
  3059.   if (!length) length = i;
  3060.   var ret = '';
  3061.   var utf8 = new Runtime.UTF8Processor();
  3062.   for (i = 0; i < length; i++) {
  3063.     t = HEAP[(ptr)+(i)];
  3064.     ret += utf8.processCChar(t);
  3065.   }
  3066.   return ret;
  3067. }
  3068. Module['Pointer_stringify'] = Pointer_stringify;
  3069. // Memory management
  3070. var PAGE_SIZE = 4096;
  3071. function alignMemoryPage(x) {
  3072.   return ((x+4095)>>12)<<12;
  3073. }
  3074. var HEAP;
  3075. var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
  3076. var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
  3077. var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
  3078. var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
  3079. var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
  3080. var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
  3081. // Initialize the runtime's memory
  3082. // Make sure that our HEAP is implemented as a flat array.
  3083.  // Hinting at the size with |new Array(TOTAL_MEMORY)| should help in theory but makes v8 much slower
  3084.  // Still we are going to use this for old IE -- newert browsers should use TypedArrays anyway
  3085. HEAP = new Array(TOTAL_MEMORY);
  3086. for (var i = 0; i < FAST_MEMORY; i++) {
  3087.   HEAP[i] = 0; // XXX We do *not* use {{| makeSetValue(0, 'i', 0, 'null') |}} here, since this is done just to optimize runtime speed
  3088. }
  3089. Module['HEAP'] = HEAP;
  3090. function callRuntimeCallbacks(callbacks) {
  3091.   while(callbacks.length > 0) {
  3092.     var callback = callbacks.shift();
  3093.     if (typeof callback == 'function') {
  3094.       callback();
  3095.       continue;
  3096.     }
  3097.     var func = callback.func;
  3098.     if (typeof func === 'number') {
  3099.       if (callback.arg === undefined) {
  3100.         Runtime.dynCall('v', func);
  3101.       } else {
  3102.         Runtime.dynCall('vi', func, [callback.arg]);
  3103.       }
  3104.     } else {
  3105.       func(callback.arg === undefined ? null : callback.arg);
  3106.     }
  3107.   }
  3108. }
  3109. var __ATINIT__ = []; // functions called during startup
  3110. var __ATMAIN__ = []; // functions called when main() is to be run
  3111. var __ATEXIT__ = []; // functions called during shutdown
  3112. var runtimeInitialized = false;
  3113. function ensureInitRuntime() {
  3114.   if (runtimeInitialized) return;
  3115.   runtimeInitialized = true;
  3116.   callRuntimeCallbacks(__ATINIT__);
  3117. }
  3118. function preMain() {
  3119.   callRuntimeCallbacks(__ATMAIN__);
  3120. }
  3121. function exitRuntime() {
  3122.   callRuntimeCallbacks(__ATEXIT__);
  3123. }
  3124. // Tools
  3125. // This processes a JS string into a C-line array of numbers, 0-terminated.
  3126. // For LLVM-originating strings, see parser.js:parseLLVMString function
  3127. function intArrayFromString(stringy, dontAddNull, length /* optional */) {
  3128.   var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
  3129.   if (length) {
  3130.     ret.length = length;
  3131.   }
  3132.   if (!dontAddNull) {
  3133.     ret.push(0);
  3134.   }
  3135.   return ret;
  3136. }
  3137. Module['intArrayFromString'] = intArrayFromString;
  3138. function intArrayToString(array) {
  3139.   var ret = [];
  3140.   for (var i = 0; i < array.length; i++) {
  3141.     var chr = array[i];
  3142.     if (chr > 0xFF) {
  3143.       chr &= 0xFF;
  3144.     }
  3145.     ret.push(String.fromCharCode(chr));
  3146.   }
  3147.   return ret.join('');
  3148. }
  3149. Module['intArrayToString'] = intArrayToString;
  3150. // Write a Javascript array to somewhere in the heap
  3151. function writeStringToMemory(string, buffer, dontAddNull) {
  3152.   var array = intArrayFromString(string, dontAddNull);
  3153.   var i = 0;
  3154.   while (i < array.length) {
  3155.     var chr = array[i];
  3156.     HEAP[(buffer)+(i)]=chr
  3157.     i = i + 1;
  3158.   }
  3159. }
  3160. Module['writeStringToMemory'] = writeStringToMemory;
  3161. function writeArrayToMemory(array, buffer) {
  3162.   for (var i = 0; i < array.length; i++) {
  3163.     HEAP[(buffer)+(i)]=array[i];
  3164.   }
  3165. }
  3166. Module['writeArrayToMemory'] = writeArrayToMemory;
  3167. function unSign(value, bits, ignore, sig) {
  3168.   if (value >= 0) {
  3169.     return value;
  3170.   }
  3171.   return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
  3172.                     : Math.pow(2, bits)         + value;
  3173. }
  3174. function reSign(value, bits, ignore, sig) {
  3175.   if (value <= 0) {
  3176.     return value;
  3177.   }
  3178.   var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
  3179.                         : Math.pow(2, bits-1);
  3180.   if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
  3181.                                                        // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
  3182.                                                        // TODO: In i64 mode 1, resign the two parts separately and safely
  3183.     value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
  3184.   }
  3185.   return value;
  3186. }
  3187. if (!Math.imul) Math.imul = function(a, b) {
  3188.   var ah  = a >>> 16;
  3189.   var al = a & 0xffff;
  3190.   var bh  = b >>> 16;
  3191.   var bl = b & 0xffff;
  3192.   return (al*bl + ((ah*bl + al*bh) << 16))|0;
  3193. };
  3194. // A counter of dependencies for calling run(). If we need to
  3195. // do asynchronous work before running, increment this and
  3196. // decrement it. Incrementing must happen in a place like
  3197. // PRE_RUN_ADDITIONS (used by emcc to add file preloading).
  3198. // Note that you can add dependencies in preRun, even though
  3199. // it happens right before run - run will be postponed until
  3200. // the dependencies are met.
  3201. var runDependencies = 0;
  3202. var runDependencyTracking = {};
  3203. var calledInit = false, calledRun = false;
  3204. var runDependencyWatcher = null;
  3205. function addRunDependency(id) {
  3206.   runDependencies++;
  3207.   if (Module['monitorRunDependencies']) {
  3208.     Module['monitorRunDependencies'](runDependencies);
  3209.   }
  3210.   if (id) {
  3211.     assert(!runDependencyTracking[id]);
  3212.     runDependencyTracking[id] = 1;
  3213.     if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
  3214.       // Check for missing dependencies every few seconds
  3215.       runDependencyWatcher = setInterval(function() {
  3216.         var shown = false;
  3217.         for (var dep in runDependencyTracking) {
  3218.           if (!shown) {
  3219.             shown = true;
  3220.             Module.printErr('still waiting on run dependencies:');
  3221.           }
  3222.           Module.printErr('dependency: ' + dep);
  3223.         }
  3224.         if (shown) {
  3225.           Module.printErr('(end of list)');
  3226.         }
  3227.       }, 6000);
  3228.     }
  3229.   } else {
  3230.     Module.printErr('warning: run dependency added without ID');
  3231.   }
  3232. }
  3233. Module['addRunDependency'] = addRunDependency;
  3234. function removeRunDependency(id) {
  3235.   runDependencies--;
  3236.   if (Module['monitorRunDependencies']) {
  3237.     Module['monitorRunDependencies'](runDependencies);
  3238.   }
  3239.   if (id) {
  3240.     assert(runDependencyTracking[id]);
  3241.     delete runDependencyTracking[id];
  3242.   } else {
  3243.     Module.printErr('warning: run dependency removed without ID');
  3244.   }
  3245.   if (runDependencies == 0) {
  3246.     if (runDependencyWatcher !== null) {
  3247.       clearInterval(runDependencyWatcher);
  3248.       runDependencyWatcher = null;
  3249.     } 
  3250.     // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
  3251.     if (!calledRun && shouldRunNow) run();
  3252.   }
  3253. }
  3254. Module['removeRunDependency'] = removeRunDependency;
  3255. Module["preloadedImages"] = {}; // maps url to image data
  3256. Module["preloadedAudios"] = {}; // maps url to audio data
  3257. function addPreRun(func) {
  3258.   if (!Module['preRun']) Module['preRun'] = [];
  3259.   else if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
  3260.   Module['preRun'].push(func);
  3261. }
  3262. var awaitingMemoryInitializer = false;
  3263. function loadMemoryInitializer(filename) {
  3264.   function applyData(data) {
  3265.     allocate(data, 'i8', ALLOC_NONE, STATIC_BASE);
  3266.     runPostSets();
  3267.   }
  3268.   // always do this asynchronously, to keep shell and web as similar as possible
  3269.   addPreRun(function() {
  3270.     if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
  3271.       applyData(Module['readBinary'](filename));
  3272.     } else {
  3273.       Browser.asyncLoad(filename, function(data) {
  3274.         applyData(data);
  3275.       }, function(data) {
  3276.         throw 'could not load memory initializer ' + filename;
  3277.       });
  3278.     }
  3279.   });
  3280.   awaitingMemoryInitializer = false;
  3281. }
  3282. // === Body ===
  3283. STATIC_BASE = 8;
  3284. STATICTOP = STATIC_BASE + 148032;
  3285. allocate([2,0,18,0,5,0,102,0,0,14,0,5,0,0,0,0,16,0,5,0,0,0,0,15,0,5,0,0,0,0,17,0,5,0,0,29,0,17,0,3,0,0,21,0,18,0,3,0,0,21,0,10,0,3,0,0,23,0,10,0,3,0,0,22,0,18,1,3,0,0,18,0,18,1,3,0,0,25,0,9,0,3,0,0,21,0,12,0,3,0,0,17,0,9,0,3,0,0,13,0,8,0,3,0,0,25,0,18,1,3,0,0,25,0,18,0,3,0,0,9,0,0,0,3,0,1,24,0,18,0,3,0,0,16,0,18,0,3,0,0,5,0,0,0,3,0,1,29,0,12,0,5,0,0,21,0,18,0,4,0,0,23,0,10,0,4,0,0,26,0,18,0,3,0,0,24,0,18,0,4,0,0,26,0,18,0,5,0,0,7,0,0,0,4,0,1,20,0,18,1,5,0,0,1,0,14,0,4,0,0,26,0,18,0,4,0,0,26,0,10,0,4,0,0,25,0,10,0,4,0,0,15,0,8,0,4,0,0,5,0,0,0,5,0,0,19,0,18,1,5,0,0,15,0,18,0,4,0,0,9,0,0,0,5,0,1,9,0,0,0,4,0,1,25,0,18,0,4,0,0,5,0,0,0,4,0,1,5,0,0,0,5,0,1,7,0,0,0,5,0,1,8,0,0,0,5,0,1,6,0,0,0,5,0,1,6,0,18,0,5,0,0,6,0,0,0,5,0,0,24,0,18,0,5,0,0,6,0,18,0,4,0,0,6,0,0,0,4,0,0,24,0,18,0,5,0,34,12,-26,13,0,4,0,40,12,-24,13,0,4,0,40,12,-36,13,0,4,0,40,12,-40,13,0,4,0,40,12,-54,13,0,4,0,40,12,1,13,0,4,0,40,12,-16,13,0,4,0,40,12,0,13,0,4,0,40,12,-23,13,0,4,0,40,12,-22,13,0,4,0,40,9,0,0,0,5,0,2,5,0,0,0,5,0,2,24,0,18,0,5,0,2,2,0,18,0,5,0,102,6,0,0,0,5,0,2,21,0,18,0,5,0,0,9,0,0,0,4,0,2,5,0,0,0,4,0,2,9,0,0,0,5,0,54,5,0,0,0,5,0,54,25,0,18,0,5,0,2,9,0,0,0,5,0,3,9,0,0,0,4,0,3,5,0,0,0,4,0,3,5,0,0,0,5,0,3,26,0,0,0,5,0,3,12,-26,13,0,5,0,3,12,-26,13,0,5,0,40,11,0,13,0,5,0,3,9,0,0,0,5,0,4,6,0,0,0,5,0,4,21,0,0,0,5,0,4,5,0,0,0,5,0,4,21,0,0,0,5,0,0,17,0,18,0,5,0,4,23,0,10,0,5,0,4,12,-36,13,0,5,0,5,12,-26,13,0,5,0,5,12,-34,13,0,5,0,5,12,-28,13,0,5,0,5,12,10,13,0,5,0,5,12,11,13,0,5,0,5,12,12,13,0,5,0,5,12,13,13,0,5,0,5,12,14,13,0,5,0,5,12,15,13,0,5,0,5,12,16,13,0,5,0,5,12,17,13,0,5,0,5,12,18,13,0,5,0,5,12,19,13,0,5,0,5,12,20,13,0,5,0,5,12,21,13,0,5,0,5,12,22,13,0,5,0,5,17,0,3,0,5,0,5,12,23,13,0,5,0,5,21,0,3,0,5,0,5,12,24,13,0,5,0,5,12,25,13,0,5,0,5,7,0,3,0,5,0,5,1,0,11,0,5,0,6,25,0,18,0,5,0,6,25,0,4,0,5,0,6,21,0,10,0,5,0,6,23,0,4,0,5,0,6,21,0,12,0,5,0,0,21,0,4,0,5,0,6,26,0,18,0,5,0,6,12,-26,13,0,5,0,6,12,30,13,0,5,0,6,12,31,13,0,5,0,6,12,32,13,0,5,0,6,21,0,4,0,5,0,0,7,0,4,0,5,0,6,6,0,4,0,5,0,0,12,27,13,0,5,0,40,12,28,13,0,5,0,40,12,29,13,0,5,0,40,12,30,13,0,5,0,40,12,31,13,0,5,0,40,12,32,13,0,5,0,40,12,33,13,0,5,0,40,12,34,13,0,5,0,40,12,-36,13,0,5,0,40,12,-36,13,0,5,0,6,13,0,11,0,5,0,0,21,0,11,0,5,0,6,12,35,13,0,5,0,40,1,0,11,0,5,0,0,6,0,4,0,5,0,6,13,0,8,0,5,0,6,26,0,4,0,5,0,6,21,0,4,0,5,0,7,1,0,4,0,5,0,7,7,0,4,0,5,0,7,12,36,13,0,5,0,7,12,-26,13,0,5,0,7,12,-36,13,0,5,0,7,7,0,4,0,5,0,8,12,0,13,0,5,0,8,13,0,3,0,5,0,65,7,0,3,0,5,0,65,12,-26,13,0,5,0,65,12,-36,13,0,5,0,65,6,0,3,0,5,0,65,26,0,18,0,5,0,65,21,0,18,0,5,0,65,7,0,3,0,5,0,81,12,-26,13,0,5,0,81,6,0,3,0,5,0,81,21,0,3,0,5,0,81,7,0,3,0,5,0,94,12,-36,13,0,5,0,94,21,0,3,0,5,0,94,12,27,13,0,5,0,6,12,28,13,0,5,0,6,12,29,13,0,5,0,6,12,0,13,0,5,0,9,10,0,0,0,5,0,9,7,0,0,0,5,0,9,12,7,13,0,5,0,9,12,9,13,0,5,0,9,12,-26,13,0,5,0,9,13,0,0,0,5,0,9,21,0,0,0,5,0,9,6,0,0,0,5,0,9,12,0,13,0,5,0,10,10,0,0,0,5,0,10,7,0,0,0,5,0,10,12,7,13,0,5,0,10,12,9,13,0,5,0,10,13,0,0,0,5,0,10,23,0,10,0,5,0,10,15,0,0,0,5,0,10,26,0,0,0,5,0,10,12,0,13,0,5,0,11,10,0,0,0,5,0,11,7,0,0,0,5,0,11,12,7,13,0,5,0,11,12,9,13,0,5,0,11,13,0,0,0,5,0,11,12,0,13,0,5,0,12,10,0,0,0,5,0,12,7,0,0,0,5,0,12,12,7,13,0,5,0,12,12,9,13,0,5,0,12,13,0,0,0,5,0,12,21,0,0,0,5,0,12,23,0,10,0,5,0,12,12,0,13,0,5,0,13,10,0,0,0,5,0,13,7,0,0,0,5,0,13,12,7,13,0,5,0,13,12,9,13,0,5,0,13,13,0,0,0,5,0,13,26,0,0,0,5,0,13,15,0,0,0,5,0,13,12,0,13,0,5,0,14,7,0,0,0,5,0,14,10,0,0,0,5,0,14,12,9,13,0,5,0,14,13,0,0,0,5,0,14,15,0,0,0,5,0,14,26,0,18,0,5,0,14,23,0,10,0,5,0,14,10,0,0,0,5,0,15,7,0,0,0,5,0,15,12,0,13,0,5,0,15,12,9,13,0,5,0,15,12,84,13,0,5,0,15,12,91,13,0,5,0,15,13,0,0,0,5,0,15,15,0,18,0,5,0,15,26,0,0,0,5,0,15,10,0,0,0,5,0,16,7,0,0,0,5,0,16,12,7,13,0,5,0,16,12,0,0,0,5,0,16,12,0,13,0,5,0,16,12,9,13,0,5,0,16,13,0,0,0,5,0,16,10,0,0,0,5,0,17,7,0,0,0,5,0,17,12,0,13,0,5,0,17,12,9,13,0,5,0,17,13,0,0,0,5,0,17,15,0,0,0,5,0,17,26,0,0,0,5,0,17,10,0,0,0,5,0,18,7,0,0,0,5,0,18,12,9,13,0,5,0,18,12,0,13,0,5,0,18,21,0,0,0,5,0,18,7,0,0,0,5,0,19,12,0,13,0,5,0,19,12,103,13,0,5,0,19,12,9,13,0,5,0,19,23,0,10,0,5,0,0,6,0,0,0,5,0,19,12,107,13,0,5,0,19,21,0,0,0,5,0,19,13,0,0,0,5,0,19,7,0,0,0,5,0,20,12,0,13,0,5,0,20,12,118,13,0,5,0,20,6,0,0,0,5,0,20,12,122,13,0,5,0,20,13,0,0,0,5,0,20,7,0,0,0,5,0,21,26,0,0,0,5,0,21,21,0,0,0,5,0,21,12,-36,13,0,5,0,21,13,0,0,0,5,0,21,15,0,0,0,5,0,21,12,-40,13,0,5,0,21,22,0,18,1,5,0,21,18,0,18,1,5,0,21,10,0,0,0,5,0,21,12,-127,13,0,5,0,21,12,-126,13,0,5,0,21,12,0,13,0,5,0,21,12,-124,13,0,5,0,21,12,-26,13,0,5,0,21,12,9,13,0,5,0,21,26,0,0,0,5,0,0,7,0,0,0,5,0,22,10,0,0,0,5,0,22,12,0,13,0,5,0,22,12,7,13,0,5,0,22,12,9,13,0,5,0,22,13,0,0,0,5,0,22,21,0,0,0,5,0,22,12,-36,13,0,5,0,22,26,0,0,0,5,0,22,9,0,0,0,5,0,23,7,0,0,0,5,0,23,6,0,0,0,5,0,23,7,0,0,0,2,0,24,7,0,0,0,5,0,24,7,0,0,0,5,0,25,12,-26,13,0,5,0,25,21,0,0,0,5,0,25,15,0,0,0,5,0,25,26,0,18,0,5,0,25,7,0,0,0,5,0,26,17,0,18,0,5,0,27,7,0,0,0,5,0,27,21,0,0,0,5,0,27,29,0,17,0,5,0,28,7,0,0,0,5,0,28,22,0,18,1,5,0,28,18,0,18,1,5,0,28,7,0,0,0,5,0,29,14,0,0,0,5,0,29,7,0,0,0,5,0,41,12,0,13,0,5,0,41,12,9,13,0,5,0,41,7,0,0,0,5,0,42,12,0,13,0,5,0,42,12,9,13,0,5,0,42,7,0,0,0,5,0,43,12,0,13,0,5,0,43,7,0,0,0,5,0,44,12,0,13,0,5,0,44,7,0,0,0,5,0,30,12,0,13,0,5,0,30,10,0,0,0,5,0,30,12,9,13,0,5,0,30,21,0,0,0,5,0,30,6,0,0,0,5,0,30,23,0,10,0,5,0,30,12,-26,13,0,5,0,30,13,0,0,0,5,0,30,15,0,18,0,5,0,30,21,0,18,0,5,0,31,17,0,18,0,5,0,31,12,0,13,0,5,0,31,29,0,17,0,5,0,31,13,0,0,0,5,0,31,7,0,0,0,5,0,31,6,0,0,0,5,0,31,12,-28,13,0,5,0,31,7,0,0,0,5,0,45,12,0,13,0,5,0,45,10,0,0,0,5,0,45,12,-34,13,0,5,0,45,12,-26,13,0,5,0,45,12,-36,13,0,5,0,45,26,0,18,0,5,0,45,21,0,18,0,5,0,45,13,0,0,0,5,0,45,7,0,0,0,5,0,46,7,0,0,0,5,0,55,10,0,0,0,5,0,55,13,0,0,0,5,0,55,15,0,0,0,5,0,55,26,0,18,0,5,0,55,26,0,18,0,5,0,30,7,0,0,0,5,0,53,12,-26,13,0,5,0,53,12,-36,13,0,5,0,53,10,0,0,0,5,0,53,21,0,0,0,5,0,53,7,0,0,0,5,0,77,10,0,0,0,5,0,77,12,0,13,0,5,0,77,12,9,13,0,5,0,77,12,-26,13,0,5,0,77,12,-36,13,0,5,0,77,13,0,0,0,5,0,77,21,0,0,0,5,0,77,6,0,0,0,5,0,77,12,0,13,0,5,0,61,10,0,0,0,5,0,61,7,0,0,0,5,0,61,12,7,13,0,5,0,61,10,9,0,0,5,0,61,13,0,0,0,5,0,61,21,0,0,0,5,0,61,26,0,0,0,5,0,61,12,-26,13,0,5,0,61,12,-36,13,0,5,0,61,12,0,13,0,5,0,66,10,0,0,0,5,0,66,7,0,0,0,5,0,66,10,9,0,0,5,0,66,12,9,13,0,5,0,66,13,0,0,0,5,0,66,7,0,0,0,5,0,92,12,7,13,0,5,0,92,10,0,0,0,5,0,92,12,0,13,0,5,0,92,10,9,0,0,5,0,92,21,0,0,0,5,0,92,7,0,0,0,5,0,67,10,0,0,0,5,0,67,12,0,13,0,5,0,67,12,7,13,0,5,0,67,21,0,0,0,5,0,67,13,0,0,0,5,0,67,13,0,0,0,5,0,68,7,0,0,0,5,0,68,6,0,0,0,5,0,68,21,0,0,0,5,0,68,21,0,0,0,5,0,66,12,1,13,0,5,0,40,10,0,0,0,5,0,0,7,0,0,0,5,0,0,6,0,0,0,5,0,3,12,-22,13,0,5,0,40,12,-42,13,0,5,0,40,12,-54,13,0,5,0,40,12,-23,13,0,5,0,40,8,0,0,0,5,0,2,29,0,17,0,5,0,0,1,0,14,0,5,0,0,1,0,14,0,5,0,40,1,0,0,0,5,0,0,1,0,3,0,5,0,0,17,0,18,0,4,0,0,17,0,18,0,5,0,0,20,0,18,0,4,0,0,19,0,18,0,4,0,0,22,0,18,0,5,0,0,20,0,18,0,5,0,0,27,0,17,0,5,0,0,28,0,15,0,5,0,0,1,0,1,0,5,0,0,1,0,5,0,5,0,0,1,0,7,0,5,0,0,1,0,2,0,5,0,0,1,0,6,0,5,0,0,21,0,10,0,4,0,0,21,0,10,0,5,0,0,16,0,18,0,5,0,0,25,0,12,0,5,0,0,22,0,18,1,5,0,0,18,0,18,1,5,0,0,25,0,18,0,5,0,0,15,0,8,0,5,0,0,25,0,9,0,5,0,0,6,0,0,0,4,0,1,23,0,10,0,1,0,0,11,0,13,0,5,0,40,9,0,0,0,5,0,0,5,0,0,0,4,0,0,26,0,10,0,5,0,0,25,0,18,1,5,0,0,15,0,18,0,5,0,0,14,0,0,0,4,0,1,14,0,0,0,5,0,1,25,0,18,1,4,0,0,25,0,10,0,5,0,0,22,0,18,1,2,0,0,18,0,18,1,2,0,0,26,0,0,0,4,0,0,26,0,0,0,5,0,52,9,0,0,0,5,0,56,5,0,0,0,5,0,56,26,0,18,0,5,0,54,12,-26,13,0,5,0,54,21,0,18,0,5,0,54,15,0,18,0,5,0,54,5,0,0,0,5,0,23,7,0,0,0,5,0,57,6,0,0,0,5,0,57,21,0,0,0,5,0,57,12,9,13,0,5,0,57,26,0,18,0,2,0,35,26,0,18,0,2,0,0,29,0,17,0,0,0,0,21,0,18,0,2,0,0,6,0,0,0,2,0,35,7,0,0,0,2,0,0,14,0,0,0,2,0,35,17,0,18,0,2,0,0,22,0,18,0,2,0,0,18,0,18,0,2,0,0,12,-38,13,0,2,0,40,12,-28,13,0,2,0,40,12,-24,13,0,2,0,40,12,-34,13,0,2,0,40,10,-32,0,0,2,0,24,6,0,0,0,2,0,0,7,0,0,0,2,0,32,12,8,13,0,2,0,40,24,0,18,0,2,0,0,6,0,0,0,2,0,32,7,0,0,0,2,0,33,6,0,0,0,2,0,33,7,0,0,0,2,0,34,26,0,0,0,2,0,0,15,0,0,0,2,0,0,26,0,0,0,2,0,24,26,0,18,0,2,0,24,15,0,0,0,4,0,0,15,0,18,0,2,0,0,26,0,0,0,2,0,33,7,0,0,0,2,0,35,2,0,18,0,2,0,35,2,0,18,0,2,0,102,7,0,0,0,2,0,36,6,0,0,0,2,0,36,26,0,18,0,2,0,36,7,0,0,0,5,0,82,6,0,0,0,5,0,82,21,0,0,0,5,0,82,7,0,0,0,5,0,69,6,0,0,0,5,0,69,21,0,18,0,5,0,69,13,0,0,0,5,0,69,7,0,0,0,5,0,3,21,0,18,0,5,0,3,6,0,18,0,5,0,3,7,0,0,0,5,0,83,14,0,0,0,5,0,83,12,-26,13,0,5,0,83,21,0,0,0,5,0,83,24,0,0,0,5,0,0,7,0,0,0,5,0,58,12,0,13,0,5,0,58,12,9,13,0,5,0,58,10,0,0,0,5,0,58,26,0,18,0,5,0,58,15,0,0,0,5,0,0,7,0,0,0,5,0,64,21,0,18,0,5,0,64,10,0,0,0,5,0,70,7,0,0,0,5,0,70,12,9,13,0,5,0,70,21,0,0,0,5,0,70,13,0,0,0,5,0,70,13,0,0,0,5,0,71,7,0,0,0,5,0,71,12,0,13,0,5,0,71,12,-36,13,0,5,0,71,21,0,0,0,5,0,71,7,0,0,0,5,0,72,12,0,13,0,5,0,72,10,0,0,0,5,0,72,10,9,0,0,5,0,72,21,0,0,0,5,0,72,12,0,13,0,5,0,84,10,0,0,0,5,0,84,7,0,0,0,5,0,84,12,7,13,0,5,0,84,10,9,0,0,5,0,84,21,0,0,0,5,0,84,6,0,0,0,5,0,84,13,0,0,0,5,0,84,7,0,0,0,5,0,76,12,0,13,0,5,0,76,10,0,0,0,5,0,76,13,0,0,0,5,0,76,21,0,0,0,5,0,76,6,0,0,0,5,0,22,7,0,0,0,5,0,78,12,-26,13,0,5,0,78,12,-36,13,0,5,0,78,6,0,0,0,5,0,78,21,0,0,0,5,0,78,7,0,0,0,5,0,85,10,0,0,0,5,0,85,12,0,13,0,5,0,85,21,0,0,0,5,0,85,6,0,0,0,5,0,85,12,9,13,0,5,0,85,13,0,0,0,5,0,85,2,0,18,0,2,0,24,4,0,0,0,5,0,102,3,0,0,0,4,0,102,2,0,18,0,4,0,102,12,26,13,0,5,0,5,25,0,9,0,5,0,5,24,0,4,0,5,0,6,18,0,18,0,5,0,0,16,0,18,0,2,0,0,21,0,12,0,2,0,0,21,0,10,0,2,0,0,25,0,9,0,2,0,0,17,0,9,0,2,0,0,25,0,18,1,2,0,0,25,0,18,0,2,0,0,23,0,10,0,2,0,0,21,0,18,0,0,0,0,21,0,10,0,0,0,0,23,0,10,0,0,0,0,22,0,18,1,0,0,0,18,0,18,1,0,0,0,25,0,9,0,0,0,0,21,0,12,0,0,0,0,17,0,9,0,0,0,0,13,0,8,0,0,0,0,25,0,18,1,0,0,0,25,0,18,0,0,0,0,9,0,0,0,0,0,1,24,0,18,0,0,0,0,16,0,18,0,0,0,0,5,0,0,0,0,0,1,21,0,18,0,1,0,0,22,0,18,1,1,0,0,18,0,18,1,1,0,0,7,0,0,0,1,0,33,6,0,0,0,1,0,0,7,0,0,0,1,0,24,26,0,18,0,0,0,0,26,0,18,0,1,0,0,25,0,18,0,1,0,0,1,0,18,0,5,0,0,7,0,0,0,5,0,47,14,0,18,0,5,0,2,15,0,18,0,5,0,2,26,0,18,0,5,0,2,7,0,0,0,5,0,73,7,0,0,0,5,0,74,7,0,0,0,5,0,37,15,0,0,0,5,0,37,7,0,0,0,5,0,38,14,0,0,0,5,0,38,7,0,0,0,5,0,48,21,0,0,0,5,0,48,7,0,0,0,5,0,59,21,0,0,0,5,0,59,14,0,0,0,5,0,59,9,0,0,0,5,0,39,5,0,0,0,5,0,39,7,0,0,0,5,0,49,7,0,0,0,5,0,50,13,0,0,0,5,0,50,7,0,3,0,5,0,51,7,0,3,0,5,0,86,21,0,3,0,5,0,86,15,0,3,0,5,0,86,7,0,3,0,5,0,63,15,0,3,0,5,0,63,21,0,18,0,5,0,63,7,0,3,0,5,0,75,21,0,3,0,5,0,75,7,0,3,0,5,0,97,7,0,3,0,5,0,96,7,0,3,0,5,0,60,12,0,13,0,5,0,60,12,-36,13,0,5,0,60,12,-26,13,0,5,0,60,12,1,13,0,5,0,60,12,9,13,0,5,0,60,15,0,3,0,5,0,60,21,0,3,0,5,0,60,7,0,3,0,5,0,87,15,0,3,0,5,0,87,21,0,3,0,5,0,87,7,0,3,0,5,0,79,21,0,18,0,5,0,79,7,0,3,0,5,0,88,15,0,3,0,5,0,88,7,0,3,0,5,0,89,15,0,3,0,5,0,89,7,0,3,0,5,0,90,15,0,11,0,5,0,6,10,0,0,0,5,0,93,12,0,13,0,5,0,93,7,0,0,0,5,0,93,12,9,13,0,5,0,93,21,0,0,0,5,0,93,15,0,18,0,5,0,93,13,0,0,0,5,0,93,12,0,13,0,5,0,91,10,0,0,0,5,0,91,7,0,0,0,5,0,91,12,9,13,0,5,0,91,12,7,13,0,5,0,91,21,0,0,0,5,0,91,1,0,0,0,5,0,91,7,0,0,0,5,0,100,13,0,0,0,5,0,100,12,-26,13,0,5,0,95,7,0,0,0,5,0,95,12,0,13,0,5,0,95,10,0,0,0,5,0,95,12,9,13,0,5,0,95,13,0,0,0,5,0,95,21,0,0,0,5,0,95,12,0,13,0,5,0,99,10,0,0,0,5,0,99,7,0,0,0,5,0,99,10,9,0,0,5,0,99,21,0,0,0,5,0,99,13,0,0,0,5,0,99,7,0,0,0,5,0,101,12,0,13,0,5,0,101,10,0,0,0,5,0,101,10,9,0,0,5,0,101,12,7,13,0,5,0,101,13,0,0,0,5,0,101,7,0,0,0,5,0,62,14,0,0,0,5,0,62,21,0,0,0,5,0,62,7,0,0,0,5,0,80,7,0,0,0,5,0,98,10,0,0,0,5,0,98,12,0,13,0,5,0,98,6,0,0,0,5,0,98,10,-40,0,0,5,0,0,10,-30,0,0,5,0,0,12,-26,13,0,5,0,2,25,0,0,0,5,0,0,13,0,8,0,5,0,0,26,0,0,0,2,0,32,0,0], "i8", ALLOC_NONE, 8);
  3286. allocate([768,0,0,0,4,0,0,0,774,0,0,0,6,0,5,0,783,0,0,0,0,0,12,0,785,0,0,0,0,0,13,0,787,0,0,0,1,0,14,0,795,0,0,0,0,0,16,0,803,0,0,0,5,0,17,0,813,0,0,0,1,0,23,0,816,0,0,0,1,0,25,0,824,0,0,0,0,0,27,0,834,0,0,0,0,0,28,0,837,0,0,0,0,0,29,0,1619,0,0,0,2,0,30,0,2364,0,0,0,0,0,33,0,2494,0,0,0,0,0,34,0,2519,0,0,0,0,0,35,0,2878,0,0,0,0,0,36,0,2902,0,0,0,1,0,37,0,3006,0,0,0,0,0,39,0,3031,0,0,0,0,0,40,0,3158,0,0,0,0,0,41,0,3266,0,0,0,0,0,42,0,3285,0,0,0,1,0,43,0,3390,0,0,0,0,0,45,0,3415,0,0,0,0,0,46,0,3530,0,0,0,0,0,47,0,3535,0,0,0,0,0,48,0,3551,0,0,0,0,0,49,0,4142,0,0,0,0,0,50,0,6965,0,0,0,0,0,51,0,12441,0,0,0,1,0,52,0,69818,0,0,0,0,0,54,0,69927,0,0,0,0,0,55,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0], ALLOC_NONE, 4896);
  3287. allocate([60,0,0,0,2,0,0,0,65,0,0,0,15,0,3,0,82,0,0,0,8,0,19,0,97,0,0,0,15,0,28,0,114,0,0,0,8,0,44,0,168,0,0,0,0,0,53,0,194,0,0,0,0,0,54,0,196,0,0,0,3,0,55,0,202,0,0,0,0,0,59,0,207,0,0,0,0,0,60,0,212,0,0,0,2,0,61,0,216,0,0,0,0,0,64,0,220,0,0,0,0,0,65,0,226,0,0,0,0,0,66,0,228,0,0,0,3,0,67,0,234,0,0,0,0,0,71,0,239,0,0,0,0,0,72,0,244,0,0,0,2,0,73,0,248,0,0,0,0,0,76,0,252,0,0,0,0,0,77,0,258,0,0,0,1,0,78,0,274,0,0,0,1,0,80,0,332,0,0,0,1,0,82,0,346,0,0,0,1,0,84,0,352,0,0,0,1,0,86,0,360,0,0,0,3,0,88,0,383,0,0,0,0,0,92,0,416,0,0,0,1,0,93,0,431,0,0,0,1,0,95,0,439,0,0,0,0,0,97,0,490,0,0,0,1,0,98,0,550,0,0,0,3,0,100,0,558,0,0,0,1,0,104,0,658,0,0,0,0,0,106,0,913,0,0,0,0,0,107,0,917,0,0,0,0,0,108,0,919,0,0,0,0,0,109,0,921,0,0,0,0,0,110,0,927,0,0,0,0,0,111,0,929,0,0,0,0,0,112,0,933,0,0,0,0,0,113,0,937,0,0,0,0,0,114,0,940,0,0,0,0,0,115,0,942,0,0,0,0,0,116,0,945,0,0,0,0,0,117,0,949,0,0,0,0,0,118,0,951,0,0,0,0,0,119,0,953,0,0,0,0,0,120,0,959,0,0,0,0,0,121,0,961,0,0,0,0,0,122,0,965,0,0,0,0,0,123,0,969,0,0,0,2,0,124,0,974,0,0,0,0,0,127,0,978,0,0,0,0,0,128,0,1030,0,0,0,0,0,129,0,1040,0,0,0,0,0,130,0,1043,0,0,0,0,0,131,0,1045,0,0,0,3,0,132,0,1050,0,0,0,0,0,136,0,1054,0,0,0,0,0,137,0,1059,0,0,0,0,0,138,0,1063,0,0,0,0,0,139,0,1067,0,0,0,0,0,140,0,1069,0,0,0,0,0,141,0,1072,0,0,0,0,0,142,0,1075,0,0,0,0,0,143,0,1077,0,0,0,3,0,144,0,1082,0,0,0,0,0,148,0,1086,0,0,0,0,0,149,0,1091,0,0,0,0,0,150,0,1095,0,0,0,0,0,151,0,1099,0,0,0,0,0,152,0,1101,0,0,0,0,0,153,0,1110,0,0,0,0,0,154,0,1140,0,0,0,1,0,155,0,1240,0,0,0,1,0,157,0,1256,0,0,0,1,0,159,0,1575,0,0,0,0,0,161,0,1608,0,0,0,0,0,162,0,1610,0,0,0,0,0,163,0,1729,0,0,0,0,0,164,0,1746,0,0,0,0,0,165,0,1749,0,0,0,0,0,166,0,2344,0,0,0,0,0,167,0,2352,0,0,0,0,0,168,0,2355,0,0,0,0,0,169,0,2503,0,0,0,0,0,170,0,2887,0,0,0,0,0,171,0,2962,0,0,0,0,0,172,0,3014,0,0,0,1,0,173,0,3142,0,0,0,0,0,175,0,3263,0,0,0,0,0,176,0,3270,0,0,0,0,0,177,0,3274,0,0,0,0,0,178,0,3398,0,0,0,1,0,179,0,3545,0,0,0,0,0,181,0,3548,0,0,0,0,0,182,0,4133,0,0,0,0,0,183,0,6917,0,0,0,0,0,184,0,6919,0,0,0,0,0,185,0,6921,0,0,0,0,0,186,0,6923,0,0,0,0,0,187,0,6925,0,0,0,0,0,188,0,6929,0,0,0,0,0,189,0,6970,0,0,0,0,0,190,0,6972,0,0,0,0,0,191,0,6974,0,0,0,1,0,192,0,6978,0,0,0,0,0,194,0,7734,0,0,0,1,0,195,0,7770,0,0,0,1,0,197,0,7778,0,0,0,1,0,199,0,7840,0,0,0,1,0,201,0,7864,0,0,0,1,0,203,0,7884,0,0,0,1,0,205,0,7936,0,0,0,17,0,207,0,7960,0,0,0,1,0,225,0,7968,0,0,0,17,0,227,0,7992,0,0,0,1,0,245,0,8000,0,0,0,1,0,247,0,8008,0,0,0,1,0,249,0,8016,0,0,0,1,0,251,0,8025,0,0,0,0,0,253,0,8032,0,0,0,16,0,254,0,8052,0,0,0,0,0,271,0,8060,0,0,0,0,0,272,0,8118,0,0,0,0,0,273,0,8127,0,0,0,0,0,274,0,8134,0,0,0,0,0,275,0,8182,0,0,0,0,0,276,0,8190,0,0,0,0,0,277,0,8592,0,0,0,0,0,278,0,8594,0,0,0,0,0,279,0,8596,0,0,0,0,0,280,0,8656,0,0,0,0,0,281,0,8658,0,0,0,0,0,282,0,8660,0,0,0,0,0,283,0,8707,0,0,0,0,0,284,0,8712,0,0,0,0,0,285,0,8715,0,0,0,0,0,286,0,8739,0,0,0,0,0,287,0,8741,0,0,0,0,0,288,0,8764,0,0,0,0,0,289,0,8771,0,0,0,0,0,290,0,8773,0,0,0,0,0,291,0,8776,0,0,0,0,0,292,0,8781,0,0,0,0,0,293,0,8801,0,0,0,0,0,294,0,8804,0,0,0,1,0,295,0,8818,0,0,0,1,0,297,0,8822,0,0,0,1,0,299,0,8826,0,0,0,3,0,301,0,8834,0,0,0,1,0,305,0,8838,0,0,0,1,0,307,0,8849,0,0,0,1,0,309,0,8866,0,0,0,0,0,311,0,8872,0,0,0,1,0,312,0,8875,0,0,0,0,0,314,0,8882,0,0,0,3,0,315,0,12358,0,0,0,0,0,319,0,12363,0,0,0,0,0,320,0,12365,0,0,0,0,0,321,0,12367,0,0,0,0,0,322,0,12369,0,0,0,0,0,323,0,12371,0,0,0,0,0,324,0,12373,0,0,0,0,0,325,0,12375,0,0,0,0,0,326,0,12377,0,0,0,0,0,327,0,12379,0,0,0,0,0,328,0,12381,0,0,0,0,0,329,0,12383,0,0,0,0,0,330,0,12385,0,0,0,0,0,331,0,12388,0,0,0,0,0,332,0,12390,0,0,0,0,0,333,0,12392,0,0,0,0,0,334,0,12399,0,0,0,0,0,335,0,12402,0,0,0,0,0,336,0,12405,0,0,0,0,0,337,0,12408,0,0,0,0,0,338,0,12411,0,0,0,0,0,339,0,12445,0,0,0,0,0,340,0,12454,0,0,0,0,0,341,0,12459,0,0,0,0,0,342,0,12461,0,0,0,0,0,343,0,12463,0,0,0,0,0,344,0,12465,0,0,0,0,0,345,0,12467,0,0,0,0,0,346,0,12469,0,0,0,0,0,347,0,12471,0,0,0,0,0,348,0,12473,0,0,0,0,0,349,0,12475,0,0,0,0,0,350,0,12477,0,0,0,0,0,351,0,12479,0,0,0,0,0,352,0,12481,0,0,0,0,0,353,0,12484,0,0,0,0,0,354,0,12486,0,0,0,0,0,355,0,12488,0,0,0,0,0,356,0,12495,0,0,0,0,0,357,0,12498,0,0,0,0,0,358,0,12501,0,0,0,0,0,359,0,12504,0,0,0,0,0,360,0,12507,0,0,0,0,0,361,0,12527,0,0,0,3,0,362,0,12541,0,0,0,0,0,366,0,69785,0,0,0,0,0,367,0,69787,0,0,0,0,0,368,0,69797,0,0,0,0,0,369,0,69937,0,0,0,1,0,370,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0,"i32",0,0,0,"i16",0,"i16",0], ALLOC_NONE, 5168);
  3288. allocate(24, "i32", ALLOC_NONE, 6832);
  3289. allocate([40,0,41,0,41,0,40,0,60,0,62,0,62,0,60,0,91,0,93,0,93,0,91,0,123,0,125,0,125,0,123,0,171,0,187,0,187,0,171,0,3898,0,3899,0,3899,0,3898,0,3900,0,3901,0,3901,0,3900,0,5787,0,5788,0,5788,0,5787,0,8249,0,8250,0,8250,0,8249,0,8261,0,8262,0,8262,0,8261,0,8317,0,8318,0,8318,0,8317,0,8333,0,8334,0,8334,0,8333,0,8712,0,8715,0,8713,0,8716,0,8714,0,8717,0,8715,0,8712,0,8716,0,8713,0,8717,0,8714,0,8725,0,10741,0,8764,0,8765,0,8765,0,8764,0,8771,0,8909,0,8786,0,8787,0,8787,0,8786,0,8788,0,8789,0,8789,0,8788,0,8804,0,8805,0,8805,0,8804,0,8806,0,8807,0,8807,0,8806,0,8808,0,8809,0,8809,0,8808,0,8810,0,8811,0,8811,0,8810,0,8814,0,8815,0,8815,0,8814,0,8816,0,8817,0,8817,0,8816,0,8818,0,8819,0,8819,0,8818,0,8820,0,8821,0,8821,0,8820,0,8822,0,8823,0,8823,0,8822,0,8824,0,8825,0,8825,0,8824,0,8826,0,8827,0,8827,0,8826,0,8828,0,8829,0,8829,0,8828,0,8830,0,8831,0,8831,0,8830,0,8832,0,8833,0,8833,0,8832,0,8834,0,8835,0,8835,0,8834,0,8836,0,8837,0,8837,0,8836,0,8838,0,8839,0,8839,0,8838,0,8840,0,8841,0,8841,0,8840,0,8842,0,8843,0,8843,0,8842,0,8847,0,8848,0,8848,0,8847,0,8849,0,8850,0,8850,0,8849,0,8856,0,10680,0,8866,0,8867,0,8867,0,8866,0,8870,0,10974,0,8872,0,10980,0,8873,0,10979,0,8875,0,10981,0,8880,0,8881,0,8881,0,8880,0,8882,0,8883,0,8883,0,8882,0,8884,0,8885,0,8885,0,8884,0,8886,0,8887,0,8887,0,8886,0,8905,0,8906,0,8906,0,8905,0,8907,0,8908,0,8908,0,8907,0,8909,0,8771,0,8912,0,8913,0,8913,0,8912,0,8918,0,8919,0,8919,0,8918,0,8920,0,8921,0,8921,0,8920,0,8922,0,8923,0,8923,0,8922,0,8924,0,8925,0,8925,0,8924,0,8926,0,8927,0,8927,0,8926,0,8928,0,8929,0,8929,0,8928,0,8930,0,8931,0,8931,0,8930,0,8932,0,8933,0,8933,0,8932,0,8934,0,8935,0,8935,0,8934,0,8936,0,8937,0,8937,0,8936,0,8938,0,8939,0,8939,0,8938,0,8940,0,8941,0,8941,0,8940,0,8944,0,8945,0,8945,0,8944,0,8946,0,8954,0,8947,0,8955,0,8948,0,8956,0,8950,0,8957,0,8951,0,8958,0,8954,0,8946,0,8955,0,8947,0,8956,0,8948,0,8957,0,8950,0,8958,0,8951,0,8968,0,8969,0,8969,0,8968,0,8970,0,8971,0,8971,0,8970,0,9001,0,9002,0,9002,0,9001,0,10088,0,10089,0,10089,0,10088,0,10090,0,10091,0,10091,0,10090,0,10092,0,10093,0,10093,0,10092,0,10094,0,10095,0,10095,0,10094,0,10096,0,10097,0,10097,0,10096,0,10098,0,10099,0,10099,0,10098,0,10100,0,10101,0,10101,0,10100,0,10179,0,10180,0,10180,0,10179,0,10181,0,10182,0,10182,0,10181,0,10184,0,10185,0,10185,0,10184,0,10187,0,10189,0,10189,0,10187,0,10197,0,10198,0,10198,0,10197,0,10205,0,10206,0,10206,0,10205,0,10210,0,10211,0,10211,0,10210,0,10212,0,10213,0,10213,0,10212,0,10214,0,10215,0,10215,0,10214,0,10216,0,10217,0,10217,0,10216,0,10218,0,10219,0,10219,0,10218,0,10220,0,10221,0,10221,0,10220,0,10222,0,10223,0,10223,0,10222,0,10627,0,10628,0,10628,0,10627,0,10629,0,10630,0,10630,0,10629,0,10631,0,10632,0,10632,0,10631,0,10633,0,10634,0,10634,0,10633,0,10635,0,10636,0,10636,0,10635,0,10637,0,10640,0,10638,0,10639,0,10639,0,10638,0,10640,0,10637,0,10641,0,10642,0,10642,0,10641,0,10643,0,10644,0,10644,0,10643,0,10645,0,10646,0,10646,0,10645,0,10647,0,10648,0,10648,0,10647,0,10680,0,8856,0,10688,0,10689,0,10689,0,10688,0,10692,0,10693,0,10693,0,10692,0,10703,0,10704,0,10704,0,10703,0,10705,0,10706,0,10706,0,10705,0,10708,0,10709,0,10709,0,10708,0,10712,0,10713,0,10713,0,10712,0,10714,0,10715,0,10715,0,10714,0,10741,0,8725,0,10744,0,10745,0,10745,0,10744,0,10748,0,10749,0,10749,0,10748,0,10795,0,10796,0,10796,0,10795,0,10797,0,10798,0,10798,0,10797,0,10804,0,10805,0,10805,0,10804,0,10812,0,10813,0,10813,0,10812,0,10852,0,10853,0,10853,0,10852,0,10873,0,10874,0,10874,0,10873,0,10877,0,10878,0,10878,0,10877,0,10879,0,10880,0,10880,0,10879,0,10881,0,10882,0,10882,0,10881,0,10883,0,10884,0,10884,0,10883,0,10891,0,10892,0,10892,0,10891,0,10897,0,10898,0,10898,0,10897,0,10899,0,10900,0,10900,0,10899,0,10901,0,10902,0,10902,0,10901,0,10903,0,10904,0,10904,0,10903,0,10905,0,10906,0,10906,0,10905,0,10907,0,10908,0,10908,0,10907,0,10913,0,10914,0,10914,0,10913,0,10918,0,10919,0,10919,0,10918,0,10920,0,10921,0,10921,0,10920,0,10922,0,10923,0,10923,0,10922,0,10924,0,10925,0,10925,0,10924,0,10927,0,10928,0,10928,0,10927,0,10931,0,10932,0,10932,0,10931,0,10939,0,10940,0,10940,0,10939,0,10941,0,10942,0,10942,0,10941,0,10943,0,10944,0,10944,0,10943,0,10945,0,10946,0,10946,0,10945,0,10947,0,10948,0,10948,0,10947,0,10949,0,10950,0,10950,0,10949,0,10957,0,10958,0,10958,0,10957,0,10959,0,10960,0,10960,0,10959,0,10961,0,10962,0,10962,0,10961,0,10963,0,10964,0,10964,0,10963,0,10965,0,10966,0,10966,0,10965,0,10974,0,8870,0,10979,0,8873,0,10980,0,8872,0,10981,0,8875,0,10988,0,10989,0,10989,0,10988,0,10999,0,11000,0,11000,0,10999,0,11001,0,11002,0,11002,0,11001,0,11778,0,11779,0,11779,0,11778,0,11780,0,11781,0,11781,0,11780,0,11785,0,11786,0,11786,0,11785,0,11788,0,11789,0,11789,0,11788,0,11804,0,11805,0,11805,0,11804,0,11808,0,11809,0,11809,0,11808,0,11810,0,11811,0,11811,0,11810,0,11812,0,11813,0,11813,0,11812,0,11814,0,11815,0,11815,0,11814,0,11816,0,11817,0,11817,0,11816,0,12296,0,12297,0,12297,0,12296,0,12298,0,12299,0,12299,0,12298,0,12300,0,12301,0,12301,0,12300,0,12302,0,12303,0,12303,0,12302,0,12304,0,12305,0,12305,0,12304,0,12308,0,12309,0,12309,0,12308,0,12310,0,12311,0,12311,0,12310,0,12312,0,12313,0,12313,0,12312,0,12314,0,12315,0,12315,0,12314,0,-423,0,-422,0,-422,0,-423,0,-421,0,-420,0,-420,0,-421,0,-419,0,-418,0,-418,0,-419,0,-412,0,-411,0,-411,0,-412,0,-248,0,-247,0,-247,0,-248,0,-228,0,-226,0,-226,0,-228,0,-197,0,-195,0,-195,0,-197,0,-165,0,-163,0,-163,0,-165,0,-161,0,-160,0,-160,0,-161,0,-158,0,-157,0,-157,0,-158,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 6856);
  3290. allocate([1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,2,0,4,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,3,0,3,0,2,0,5,0,6,0,6,0,7,0,8,0,7,0,6,0,6,0,9,0,10,0,6,0,11,0,12,0,13,0,12,0,12,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,0,6,0,15,0,16,0,15,0,6,0,6,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,9,0,6,0,10,0,18,0,19,0,18,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,9,0,16,0,10,0,16,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1,0,1,0,21,0,22,0,8,0,8,0,23,0,8,0,24,0,22,0,25,0,26,0,27,0,28,0,16,0,29,0,30,0,18,0,31,0,32,0,33,0,33,0,25,0,34,0,22,0,22,0,25,0,33,0,27,0,35,0,36,0,36,0,36,0,22,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,37,0,38,0,37,0,37,0,37,0,37,0,37,0,37,0,39,0,38,0,37,0,37,0,37,0,37,0,37,0,38,0,40,0,40,0,40,0,41,0,41,0,41,0,41,0,40,0,41,0,40,0,40,0,40,0,41,0,40,0,40,0,41,0,41,0,40,0,41,0,40,0,40,0,41,0,41,0,41,0,39,0,40,0,40,0,40,0,41,0,40,0,41,0,40,0,41,0,37,0,40,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,40,0,37,0,40,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,40,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,38,0,40,0,37,0,40,0,38,0,40,0,37,0,41,0,37,0,41,0,40,0,37,0,41,0,37,0,41,0,37,0,41,0,38,0,40,0,38,0,40,0,37,0,40,0,37,0,41,0,37,0,40,0,40,0,38,0,40,0,37,0,40,0,37,0,41,0,37,0,41,0,38,0,40,0,37,0,41,0,37,0,41,0,37,0,37,0,41,0,37,0,41,0,37,0,41,0,41,0,41,0,37,0,37,0,41,0,37,0,41,0,37,0,37,0,41,0,37,0,37,0,37,0,41,0,41,0,37,0,37,0,37,0,37,0,41,0,37,0,37,0,41,0,37,0,37,0,37,0,41,0,41,0,41,0,37,0,37,0,41,0,37,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,37,0,41,0,37,0,41,0,41,0,37,0,41,0,37,0,37,0,41,0,37,0,37,0,37,0,41,0,37,0,41,0,37,0,37,0,41,0,41,0,42,0,37,0,41,0,41,0,41,0,42,0,42,0,42,0,42,0,37,0,43,0,41,0,37,0,43,0,41,0,37,0,43,0,41,0,37,0,40,0,37,0,40,0,37,0,40,0,37,0,40,0,37,0,40,0,37,0,40,0,37,0,40,0,37,0,40,0,41,0,37,0,41,0,41,0,37,0,43,0,41,0,37,0,41,0,37,0,37,0,37,0,41,0,37,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,37,0,37,0,41,0,37,0,37,0,41,0,41,0,37,0,41,0,37,0,37,0,37,0,37,0,41,0,41,0,40,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,42,0,41,0,41,0,41,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,45,0,45,0,46,0,46,0,46,0,46,0,46,0,46,0,46,0,47,0,47,0,25,0,47,0,45,0,48,0,45,0,48,0,48,0,48,0,45,0,48,0,45,0,45,0,49,0,46,0,47,0,47,0,47,0,47,0,47,0,47,0,25,0,25,0,25,0,25,0,47,0,25,0,47,0,25,0,44,0,44,0,44,0,44,0,44,0,47,0,47,0,47,0,47,0,47,0,50,0,50,0,45,0,47,0,46,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,52,0,53,0,53,0,53,0,53,0,52,0,54,0,53,0,53,0,53,0,53,0,53,0,55,0,55,0,53,0,53,0,53,0,53,0,55,0,55,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,53,0,56,0,56,0,56,0,56,0,56,0,53,0,53,0,53,0,53,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,51,0,57,0,51,0,53,0,53,0,53,0,51,0,51,0,51,0,53,0,53,0,58,0,51,0,51,0,51,0,53,0,53,0,53,0,53,0,51,0,52,0,53,0,53,0,51,0,59,0,60,0,60,0,59,0,60,0,60,0,59,0,51,0,51,0,51,0,51,0,51,0,61,0,62,0,61,0,62,0,45,0,63,0,61,0,62,0,64,0,64,0,65,0,62,0,62,0,62,0,66,0,64,0,64,0,64,0,64,0,64,0,63,0,47,0,61,0,66,0,61,0,61,0,61,0,64,0,61,0,64,0,61,0,61,0,62,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,64,0,67,0,67,0,67,0,67,0,67,0,67,0,67,0,61,0,61,0,62,0,62,0,62,0,62,0,62,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,62,0,68,0,68,0,68,0,68,0,68,0,68,0,68,0,62,0,62,0,62,0,62,0,62,0,61,0,62,0,62,0,61,0,61,0,61,0,62,0,62,0,62,0,61,0,62,0,61,0,62,0,61,0,62,0,61,0,62,0,61,0,62,0,69,0,70,0,69,0,70,0,69,0,70,0,69,0,70,0,69,0,70,0,69,0,70,0,69,0,70,0,62,0,62,0,62,0,62,0,61,0,62,0,71,0,61,0,62,0,61,0,61,0,62,0,62,0,61,0,61,0,61,0,72,0,73,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,72,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,73,0,74,0,74,0,74,0,74,0,74,0,74,0,74,0,74,0,75,0,74,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,76,0,77,0,77,0,78,0,78,0,77,0,79,0,79,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,72,0,75,0,75,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,64,0,64,0,81,0,82,0,82,0,82,0,82,0,82,0,82,0,64,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,83,0,64,0,84,0,85,0,64,0,64,0,64,0,64,0,86,0,64,0,87,0,88,0,88,0,88,0,88,0,87,0,88,0,88,0,88,0,89,0,87,0,88,0,88,0,88,0,88,0,88,0,88,0,87,0,87,0,87,0,87,0,87,0,87,0,88,0,88,0,87,0,88,0,88,0,89,0,90,0,88,0,91,0,92,0,93,0,94,0,95,0,96,0,97,0,98,0,99,0,100,0,100,0,101,0,102,0,103,0,104,0,105,0,106,0,107,0,108,0,106,0,88,0,87,0,106,0,99,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,64,0,64,0,64,0,64,0,64,0,109,0,109,0,109,0,106,0,106,0,64,0,64,0,64,0,110,0,110,0,110,0,110,0,110,0,64,0,111,0,111,0,112,0,113,0,113,0,114,0,115,0,116,0,117,0,117,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,119,0,120,0,121,0,122,0,64,0,64,0,116,0,122,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,124,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,125,0,126,0,127,0,128,0,129,0,130,0,131,0,132,0,78,0,78,0,133,0,134,0,118,0,118,0,118,0,118,0,118,0,134,0,118,0,118,0,134,0,135,0,135,0,135,0,135,0,135,0,135,0,135,0,135,0,135,0,135,0,113,0,136,0,136,0,116,0,123,0,123,0,137,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,116,0,123,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,138,0,117,0,118,0,118,0,118,0,118,0,134,0,118,0,139,0,139,0,118,0,118,0,117,0,134,0,118,0,118,0,134,0,123,0,123,0,140,0,140,0,140,0,140,0,140,0,140,0,140,0,140,0,140,0,140,0,123,0,123,0,123,0,141,0,141,0,123,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,64,0,143,0,144,0,145,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,146,0,147,0,146,0,146,0,147,0,146,0,146,0,147,0,147,0,147,0,146,0,147,0,147,0,146,0,147,0,146,0,146,0,146,0,147,0,146,0,147,0,146,0,147,0,146,0,147,0,146,0,146,0,64,0,64,0,144,0,144,0,144,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,148,0,64,0,64,0,64,0,64,0,64,0,64,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,153,0,152,0,154,0,154,0,155,0,156,0,156,0,156,0,154,0,64,0,64,0,64,0,64,0,64,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,158,0,158,0,158,0,158,0,159,0,158,0,158,0,158,0,158,0,158,0,158,0,158,0,158,0,158,0,159,0,158,0,158,0,158,0,159,0,158,0,158,0,158,0,158,0,158,0,64,0,64,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,64,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,162,0,162,0,162,0,64,0,64,0,163,0,64,0,123,0,64,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,118,0,118,0,134,0,118,0,118,0,134,0,118,0,118,0,118,0,134,0,134,0,134,0,164,0,165,0,166,0,118,0,118,0,118,0,134,0,118,0,118,0,134,0,134,0,118,0,118,0,118,0,118,0,64,0,167,0,167,0,167,0,168,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,167,0,168,0,170,0,169,0,168,0,168,0,168,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,168,0,168,0,168,0,168,0,171,0,168,0,168,0,169,0,78,0,133,0,172,0,172,0,167,0,167,0,167,0,169,0,169,0,167,0,167,0,84,0,84,0,173,0,173,0,173,0,173,0,173,0,173,0,173,0,173,0,173,0,173,0,174,0,175,0,169,0,169,0,169,0,169,0,169,0,169,0,64,0,169,0,169,0,169,0,169,0,169,0,169,0,169,0,64,0,176,0,177,0,177,0,64,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,64,0,64,0,178,0,178,0,64,0,64,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,64,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,64,0,178,0,64,0,64,0,64,0,178,0,178,0,178,0,178,0,64,0,64,0,179,0,178,0,177,0,177,0,177,0,176,0,176,0,176,0,176,0,64,0,64,0,177,0,177,0,64,0,64,0,177,0,177,0,180,0,178,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,177,0,64,0,64,0,64,0,64,0,178,0,178,0,64,0,178,0,178,0,178,0,176,0,176,0,64,0,64,0,181,0,181,0,181,0,181,0,181,0,181,0,181,0,181,0,181,0,181,0,178,0,178,0,182,0,182,0,183,0,183,0,183,0,183,0,183,0,183,0,184,0,182,0,64,0,64,0,64,0,64,0,64,0,185,0,185,0,186,0,64,0,187,0,187,0,187,0,187,0,187,0,187,0,64,0,64,0,64,0,64,0,187,0,187,0,64,0,64,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,64,0,187,0,187,0,187,0,187,0,187,0,187,0,187,0,64,0,187,0,187,0,64,0,187,0,187,0,64,0,187,0,187,0,64,0,64,0,188,0,64,0,186,0,186,0,186,0,185,0,185,0,64,0,64,0,64,0,64,0,185,0,185,0,64,0,64,0,185,0,185,0,189,0,64,0,64,0,64,0,185,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,187,0,187,0,187,0,187,0,64,0,187,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,190,0,190,0,190,0,190,0,190,0,190,0,190,0,190,0,190,0,190,0,185,0,185,0,187,0,187,0,187,0,185,0,64,0,64,0,64,0,191,0,191,0,192,0,64,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,64,0,193,0,193,0,193,0,64,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,64,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,64,0,193,0,193,0,64,0,193,0,193,0,193,0,193,0,193,0,64,0,64,0,194,0,193,0,192,0,192,0,192,0,191,0,191,0,191,0,191,0,191,0,64,0,191,0,191,0,192,0,64,0,192,0,192,0,195,0,64,0,64,0,193,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,193,0,193,0,191,0,191,0,64,0,64,0,196,0,196,0,196,0,196,0,196,0,196,0,196,0,196,0,196,0,196,0,197,0,198,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,199,0,200,0,200,0,64,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,64,0,64,0,201,0,201,0,64,0,64,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,64,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,64,0,201,0,201,0,64,0,201,0,201,0,201,0,201,0,201,0,64,0,64,0,202,0,201,0,200,0,199,0,200,0,199,0,199,0,199,0,199,0,64,0,64,0,200,0,200,0,64,0,64,0,200,0,200,0,203,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,199,0,200,0,64,0,64,0,64,0,64,0,201,0,201,0,64,0,201,0,201,0,201,0,199,0,199,0,64,0,64,0,204,0,204,0,204,0,204,0,204,0,204,0,204,0,204,0,204,0,204,0,205,0,201,0,206,0,206,0,206,0,206,0,206,0,206,0,64,0,64,0,207,0,208,0,64,0,208,0,208,0,208,0,208,0,208,0,208,0,64,0,64,0,64,0,208,0,208,0,208,0,64,0,208,0,208,0,208,0,208,0,64,0,64,0,64,0,208,0,208,0,64,0,208,0,64,0,208,0,208,0,64,0,64,0,64,0,208,0,208,0,64,0,64,0,64,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,64,0,64,0,64,0,64,0,209,0,209,0,207,0,209,0,209,0,64,0,64,0,64,0,209,0,209,0,209,0,64,0,209,0,209,0,209,0,210,0,64,0,64,0,208,0,64,0,64,0,64,0,64,0,64,0,64,0,209,0,64,0,64,0,64,0,64,0,64,0,64,0,211,0,211,0,211,0,211,0,211,0,211,0,211,0,211,0,211,0,211,0,212,0,212,0,212,0,213,0,213,0,213,0,213,0,213,0,213,0,214,0,213,0,64,0,64,0,64,0,64,0,64,0,64,0,215,0,215,0,215,0,64,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,64,0,216,0,216,0,216,0,64,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0,64,0,216,0,216,0,216,0,216,0,216,0,64,0,64,0,64,0,216,0,217,0,217,0,217,0,215,0,215,0,215,0,215,0,64,0,217,0,217,0,217,0,64,0,217,0,217,0,217,0,218,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,219,0,220,0,64,0,216,0,216,0,64,0,64,0,64,0,64,0,64,0,64,0,216,0,216,0,217,0,217,0,64,0,64,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,223,0,64,0,64,0,224,0,224,0,64,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,64,0,225,0,225,0,225,0,64,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,225,0,64,0,225,0,225,0,225,0,225,0,225,0,64,0,64,0,226,0,225,0,224,0,227,0,224,0,224,0,224,0,224,0,224,0,64,0,227,0,224,0,224,0,64,0,224,0,224,0,228,0,229,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,224,0,224,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,225,0,64,0,225,0,225,0,228,0,228,0,64,0,64,0,230,0,230,0,230,0,230,0,230,0,230,0,230,0,230,0,230,0,230,0,64,0,225,0,225,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,231,0,231,0,64,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,64,0,232,0,232,0,232,0,64,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,64,0,64,0,232,0,231,0,231,0,231,0,233,0,233,0,233,0,233,0,64,0,231,0,231,0,231,0,64,0,231,0,231,0,231,0,234,0,232,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,231,0,232,0,232,0,233,0,233,0,64,0,64,0,235,0,235,0,235,0,235,0,235,0,235,0,235,0,235,0,235,0,235,0,236,0,236,0,236,0,236,0,236,0,236,0,64,0,64,0,64,0,237,0,232,0,232,0,232,0,232,0,232,0,232,0,64,0,64,0,238,0,238,0,64,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,64,0,64,0,64,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,64,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,64,0,239,0,64,0,64,0,64,0,64,0,240,0,64,0,64,0,64,0,64,0,238,0,238,0,238,0,241,0,241,0,241,0,64,0,241,0,64,0,238,0,238,0,238,0,238,0,238,0,238,0,238,0,238,0,64,0,64,0,238,0,238,0,242,0,64,0,64,0,64,0,64,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,244,0,243,0,243,0,244,0,244,0,244,0,244,0,245,0,245,0,246,0,64,0,64,0,64,0,64,0,247,0,243,0,243,0,243,0,243,0,243,0,243,0,248,0,244,0,249,0,249,0,249,0,249,0,244,0,244,0,244,0,250,0,251,0,251,0,251,0,251,0,251,0,251,0,251,0,251,0,251,0,251,0,250,0,250,0,64,0,64,0,64,0,64,0,64,0,252,0,252,0,64,0,252,0,64,0,64,0,252,0,252,0,64,0,252,0,64,0,64,0,252,0,64,0,64,0,64,0,64,0,64,0,64,0,252,0,252,0,252,0,252,0,64,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,64,0,252,0,252,0,252,0,64,0,252,0,64,0,252,0,64,0,64,0,252,0,252,0,64,0,252,0,252,0,252,0,252,0,253,0,252,0,252,0,253,0,253,0,253,0,253,0,254,0,254,0,64,0,253,0,253,0,252,0,64,0,64,0,252,0,252,0,252,0,252,0,252,0,64,0,255,0,64,0,256,0,256,0,256,0,256,0,253,0,253,0,64,0,64,0,257,0,257,0,257,0,257,0,257,0,257,0,257,0,257,0,257,0,257,0,64,0,64,0,252,0,252,0,252,0,252,0,258,0,259,0,259,0,259,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,260,0,259,0,260,0,259,0,259,0,259,0,261,0,261,0,259,0,259,0,259,0,259,0,259,0,259,0,262,0,262,0,262,0,262,0,262,0,262,0,262,0,262,0,262,0,262,0,263,0,263,0,263,0,263,0,263,0,263,0,263,0,263,0,263,0,263,0,259,0,261,0,259,0,261,0,259,0,264,0,265,0,266,0,265,0,266,0,267,0,267,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,64,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,258,0,64,0,64,0,64,0,64,0,268,0,269,0,270,0,271,0,270,0,270,0,270,0,270,0,270,0,269,0,269,0,269,0,269,0,270,0,267,0,269,0,270,0,272,0,272,0,273,0,260,0,272,0,272,0,258,0,258,0,258,0,258,0,258,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,64,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,270,0,64,0,259,0,259,0,259,0,259,0,259,0,259,0,259,0,259,0,261,0,259,0,259,0,259,0,259,0,259,0,259,0,64,0,259,0,259,0,260,0,260,0,260,0,260,0,260,0,274,0,274,0,274,0,274,0,260,0,260,0,64,0,64,0,64,0,64,0,64,0,275,0,275,0,275,0,275,0,275,0,275,0,275,0,275,0,275,0,275,0,275,0,276,0,276,0,277,0,277,0,277,0,277,0,276,0,277,0,277,0,277,0,277,0,277,0,278,0,276,0,279,0,279,0,276,0,276,0,277,0,277,0,275,0,280,0,280,0,280,0,280,0,280,0,280,0,280,0,280,0,280,0,280,0,281,0,281,0,281,0,281,0,281,0,281,0,275,0,275,0,275,0,275,0,275,0,275,0,276,0,276,0,277,0,277,0,275,0,275,0,275,0,275,0,277,0,277,0,277,0,275,0,276,0,276,0,276,0,275,0,275,0,276,0,276,0,276,0,276,0,276,0,276,0,276,0,275,0,275,0,275,0,277,0,277,0,277,0,277,0,275,0,275,0,275,0,275,0,275,0,277,0,276,0,276,0,277,0,277,0,276,0,276,0,276,0,276,0,276,0,276,0,282,0,275,0,276,0,280,0,280,0,276,0,276,0,276,0,277,0,283,0,283,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,284,0,64,0,284,0,64,0,64,0,64,0,64,0,64,0,284,0,64,0,64,0,285,0,285,0,285,0,285,0,285,0,285,0,285,0,285,0,285,0,285,0,285,0,84,0,286,0,285,0,285,0,285,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,288,0,288,0,288,0,288,0,288,0,288,0,288,0,288,0,289,0,289,0,289,0,289,0,289,0,289,0,289,0,289,0,289,0,64,0,289,0,289,0,289,0,289,0,64,0,64,0,289,0,289,0,289,0,289,0,289,0,289,0,289,0,64,0,289,0,289,0,289,0,64,0,64,0,290,0,290,0,290,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,292,0,64,0,64,0,64,0,293,0,293,0,293,0,293,0,293,0,293,0,293,0,293,0,293,0,293,0,64,0,64,0,64,0,64,0,64,0,64,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,294,0,64,0,64,0,64,0,295,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,296,0,297,0,297,0,296,0,298,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,299,0,300,0,301,0,64,0,64,0,64,0,302,0,302,0,302,0,302,0,302,0,302,0,302,0,302,0,302,0,302,0,302,0,84,0,84,0,84,0,303,0,303,0,303,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,304,0,64,0,304,0,304,0,304,0,304,0,305,0,305,0,306,0,64,0,64,0,64,0,307,0,307,0,307,0,307,0,307,0,307,0,307,0,307,0,307,0,307,0,308,0,308,0,309,0,84,0,84,0,64,0,310,0,310,0,310,0,310,0,310,0,310,0,310,0,310,0,310,0,310,0,311,0,311,0,64,0,64,0,64,0,64,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,312,0,64,0,312,0,312,0,312,0,64,0,313,0,313,0,64,0,64,0,64,0,64,0,314,0,314,0,314,0,314,0,314,0,314,0,314,0,314,0,314,0,314,0,314,0,314,0,315,0,315,0,316,0,315,0,315,0,315,0,315,0,315,0,315,0,315,0,316,0,316,0,316,0,316,0,316,0,316,0,316,0,316,0,315,0,316,0,316,0,315,0,315,0,315,0,315,0,315,0,315,0,315,0,315,0,315,0,317,0,315,0,318,0,318,0,318,0,319,0,318,0,318,0,318,0,320,0,314,0,321,0,64,0,64,0,322,0,322,0,322,0,322,0,322,0,322,0,322,0,322,0,322,0,322,0,64,0,64,0,64,0,64,0,64,0,64,0,323,0,323,0,323,0,323,0,323,0,323,0,323,0,323,0,323,0,323,0,64,0,64,0,64,0,64,0,64,0,64,0,324,0,324,0,66,0,66,0,324,0,66,0,325,0,324,0,324,0,324,0,324,0,326,0,326,0,326,0,327,0,64,0,328,0,328,0,328,0,328,0,328,0,328,0,328,0,328,0,328,0,328,0,64,0,64,0,64,0,64,0,64,0,64,0,329,0,329,0,329,0,329,0,329,0,329,0,329,0,329,0,329,0,329,0,329,0,330,0,329,0,329,0,329,0,329,0,329,0,331,0,329,0,64,0,64,0,64,0,64,0,64,0,296,0,296,0,296,0,296,0,296,0,296,0,64,0,64,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,332,0,64,0,64,0,64,0,333,0,333,0,333,0,334,0,334,0,334,0,334,0,333,0,333,0,334,0,334,0,334,0,64,0,64,0,64,0,64,0,334,0,334,0,333,0,334,0,334,0,334,0,334,0,334,0,334,0,335,0,336,0,337,0,64,0,64,0,64,0,64,0,338,0,64,0,64,0,64,0,339,0,339,0,340,0,340,0,340,0,340,0,340,0,340,0,340,0,340,0,340,0,340,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,341,0,64,0,64,0,341,0,341,0,341,0,341,0,341,0,64,0,64,0,64,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,64,0,64,0,64,0,64,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,342,0,342,0,342,0,342,0,342,0,342,0,342,0,343,0,343,0,64,0,64,0,64,0,64,0,64,0,64,0,344,0,344,0,344,0,344,0,344,0,344,0,344,0,344,0,344,0,344,0,345,0,64,0,64,0,64,0,346,0,346,0,347,0,347,0,347,0,347,0,347,0,347,0,347,0,347,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,348,0,349,0,350,0,351,0,351,0,351,0,64,0,64,0,352,0,352,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,353,0,354,0,355,0,354,0,355,0,355,0,355,0,355,0,355,0,355,0,355,0,64,0,356,0,354,0,355,0,354,0,354,0,355,0,355,0,355,0,355,0,355,0,355,0,355,0,355,0,354,0,354,0,354,0,354,0,354,0,354,0,355,0,355,0,357,0,357,0,357,0,357,0,357,0,357,0,357,0,357,0,64,0,64,0,358,0,359,0,359,0,359,0,359,0,359,0,359,0,359,0,359,0,359,0,359,0,64,0,64,0,64,0,64,0,64,0,64,0,360,0,360,0,360,0,360,0,360,0,360,0,360,0,361,0,360,0,360,0,360,0,360,0,360,0,360,0,64,0,64,0,362,0,362,0,362,0,362,0,363,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,365,0,363,0,362,0,362,0,362,0,362,0,362,0,363,0,362,0,363,0,363,0,363,0,363,0,363,0,362,0,363,0,366,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,64,0,64,0,64,0,64,0,367,0,367,0,367,0,367,0,367,0,367,0,367,0,367,0,367,0,367,0,368,0,368,0,368,0,368,0,368,0,368,0,368,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,370,0,371,0,370,0,370,0,370,0,370,0,370,0,370,0,370,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,369,0,64,0,64,0,64,0,372,0,372,0,373,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,374,0,373,0,372,0,372,0,372,0,372,0,373,0,373,0,372,0,372,0,375,0,376,0,373,0,373,0,374,0,374,0,377,0,377,0,377,0,377,0,377,0,377,0,377,0,377,0,377,0,377,0,374,0,374,0,374,0,374,0,374,0,374,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,378,0,379,0,380,0,381,0,381,0,380,0,380,0,380,0,381,0,380,0,381,0,381,0,381,0,382,0,382,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,383,0,383,0,383,0,383,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,385,0,385,0,385,0,385,0,385,0,385,0,385,0,385,0,386,0,386,0,386,0,386,0,386,0,386,0,386,0,386,0,385,0,385,0,386,0,387,0,64,0,64,0,64,0,388,0,388,0,388,0,388,0,388,0,389,0,389,0,389,0,389,0,389,0,389,0,389,0,389,0,389,0,389,0,64,0,64,0,64,0,384,0,384,0,384,0,390,0,390,0,390,0,390,0,390,0,390,0,390,0,390,0,390,0,390,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,391,0,392,0,392,0,392,0,392,0,392,0,392,0,393,0,393,0,394,0,394,0,394,0,394,0,394,0,394,0,394,0,394,0,78,0,78,0,78,0,84,0,395,0,133,0,133,0,133,0,133,0,133,0,78,0,78,0,133,0,133,0,133,0,133,0,78,0,396,0,395,0,395,0,395,0,395,0,395,0,395,0,395,0,397,0,397,0,397,0,397,0,133,0,397,0,397,0,397,0,397,0,396,0,396,0,78,0,397,0,397,0,64,0,41,0,41,0,41,0,41,0,41,0,41,0,62,0,62,0,62,0,62,0,62,0,75,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,65,0,65,0,65,0,65,0,65,0,44,0,44,0,44,0,44,0,65,0,65,0,65,0,65,0,65,0,41,0,41,0,41,0,41,0,41,0,398,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,44,0,65,0,78,0,78,0,133,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,133,0,78,0,78,0,399,0,400,0,133,0,401,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,78,0,64,0,64,0,64,0,64,0,64,0,402,0,133,0,78,0,133,0,37,0,41,0,37,0,41,0,37,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,37,0,41,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,61,0,61,0,61,0,61,0,61,0,61,0,61,0,61,0,62,0,62,0,62,0,62,0,62,0,62,0,64,0,64,0,61,0,61,0,61,0,61,0,61,0,61,0,64,0,64,0,64,0,61,0,64,0,61,0,64,0,61,0,64,0,61,0,403,0,403,0,403,0,403,0,403,0,403,0,403,0,403,0,62,0,62,0,62,0,62,0,62,0,64,0,62,0,62,0,61,0,61,0,61,0,61,0,403,0,63,0,62,0,63,0,63,0,63,0,62,0,62,0,62,0,64,0,62,0,62,0,61,0,61,0,61,0,61,0,403,0,63,0,63,0,63,0,62,0,62,0,62,0,62,0,64,0,64,0,62,0,62,0,61,0,61,0,61,0,61,0,64,0,63,0,63,0,63,0,61,0,61,0,61,0,61,0,61,0,63,0,63,0,63,0,64,0,64,0,62,0,62,0,62,0,64,0,62,0,62,0,61,0,61,0,61,0,61,0,403,0,63,0,63,0,64,0,404,0,404,0,404,0,404,0,404,0,404,0,404,0,404,0,404,0,404,0,404,0,405,0,406,0,406,0,407,0,408,0,409,0,410,0,410,0,409,0,409,0,409,0,22,0,66,0,411,0,412,0,413,0,414,0,411,0,412,0,413,0,414,0,22,0,22,0,22,0,66,0,22,0,22,0,22,0,22,0,415,0,416,0,417,0,418,0,419,0,420,0,421,0,21,0,422,0,423,0,422,0,422,0,423,0,22,0,66,0,66,0,66,0,28,0,35,0,22,0,66,0,66,0,22,0,424,0,424,0,66,0,66,0,66,0,425,0,426,0,427,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,428,0,66,0,424,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,404,0,405,0,405,0,405,0,405,0,405,0,64,0,64,0,64,0,64,0,64,0,405,0,405,0,405,0,405,0,405,0,405,0,429,0,44,0,64,0,64,0,33,0,429,0,429,0,429,0,429,0,429,0,430,0,430,0,428,0,426,0,427,0,431,0,429,0,33,0,33,0,33,0,33,0,429,0,429,0,429,0,429,0,429,0,430,0,430,0,428,0,426,0,427,0,64,0,44,0,44,0,44,0,44,0,44,0,64,0,64,0,64,0,247,0,247,0,247,0,247,0,247,0,247,0,247,0,247,0,247,0,432,0,247,0,247,0,23,0,247,0,247,0,247,0,247,0,247,0,247,0,64,0,64,0,64,0,64,0,64,0,78,0,78,0,395,0,395,0,78,0,78,0,78,0,78,0,395,0,395,0,395,0,78,0,78,0,433,0,433,0,433,0,433,0,78,0,433,0,433,0,433,0,395,0,395,0,78,0,133,0,78,0,395,0,395,0,133,0,133,0,133,0,133,0,78,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,26,0,26,0,434,0,30,0,26,0,30,0,26,0,434,0,26,0,30,0,34,0,434,0,434,0,434,0,34,0,34,0,434,0,434,0,434,0,435,0,26,0,434,0,30,0,26,0,428,0,434,0,434,0,434,0,434,0,434,0,26,0,26,0,26,0,30,0,30,0,26,0,434,0,26,0,67,0,26,0,434,0,26,0,37,0,38,0,434,0,434,0,436,0,34,0,434,0,434,0,37,0,434,0,34,0,397,0,397,0,397,0,397,0,34,0,26,0,26,0,34,0,34,0,434,0,434,0,437,0,428,0,428,0,428,0,428,0,434,0,34,0,34,0,34,0,34,0,26,0,428,0,26,0,26,0,41,0,274,0,438,0,438,0,438,0,36,0,36,0,438,0,438,0,438,0,438,0,438,0,438,0,36,0,36,0,36,0,36,0,438,0,439,0,439,0,439,0,439,0,439,0,439,0,439,0,439,0,439,0,439,0,439,0,439,0,440,0,440,0,440,0,440,0,439,0,439,0,440,0,440,0,440,0,440,0,440,0,440,0,440,0,440,0,440,0,37,0,41,0,440,0,440,0,440,0,440,0,36,0,64,0,64,0,64,0,64,0,64,0,64,0,39,0,39,0,39,0,39,0,39,0,30,0,30,0,30,0,30,0,30,0,428,0,428,0,26,0,26,0,26,0,26,0,428,0,26,0,26,0,428,0,26,0,26,0,428,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,428,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,428,0,428,0,26,0,26,0,39,0,26,0,39,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,26,0,26,0,26,0,26,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,39,0,437,0,441,0,441,0,437,0,428,0,428,0,39,0,441,0,437,0,437,0,441,0,437,0,437,0,428,0,39,0,428,0,441,0,430,0,442,0,428,0,441,0,437,0,428,0,428,0,428,0,441,0,437,0,437,0,441,0,39,0,441,0,441,0,437,0,437,0,39,0,437,0,39,0,437,0,39,0,39,0,39,0,39,0,441,0,441,0,437,0,441,0,437,0,437,0,437,0,437,0,437,0,39,0,39,0,39,0,39,0,428,0,437,0,428,0,437,0,441,0,441,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,441,0,437,0,437,0,437,0,441,0,428,0,428,0,428,0,428,0,428,0,441,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,437,0,441,0,39,0,437,0,428,0,441,0,441,0,441,0,441,0,437,0,437,0,441,0,441,0,428,0,428,0,441,0,441,0,437,0,437,0,441,0,441,0,437,0,437,0,441,0,441,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,437,0,437,0,437,0,437,0,428,0,428,0,39,0,428,0,428,0,437,0,39,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,437,0,437,0,428,0,39,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,437,0,441,0,428,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,437,0,437,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,437,0,437,0,437,0,437,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,26,0,26,0,26,0,26,0,26,0,437,0,437,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,443,0,444,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,26,0,428,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,274,0,26,0,26,0,26,0,26,0,26,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,26,0,26,0,26,0,26,0,428,0,428,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,64,0,64,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,26,0,26,0,26,0,64,0,64,0,64,0,64,0,64,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,36,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,33,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,445,0,438,0,36,0,36,0,36,0,36,0,36,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,30,0,30,0,26,0,26,0,30,0,30,0,26,0,30,0,30,0,30,0,30,0,30,0,26,0,26,0,30,0,30,0,26,0,26,0,30,0,39,0,26,0,26,0,26,0,26,0,30,0,30,0,26,0,26,0,30,0,39,0,26,0,26,0,26,0,26,0,30,0,30,0,30,0,26,0,26,0,30,0,26,0,26,0,30,0,30,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,26,0,26,0,30,0,26,0,26,0,26,0,26,0,30,0,30,0,26,0,26,0,26,0,26,0,30,0,26,0,30,0,26,0,30,0,26,0,30,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,26,0,30,0,30,0,30,0,26,0,30,0,30,0,30,0,30,0,26,0,30,0,30,0,26,0,39,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,26,0,26,0,26,0,26,0,274,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,26,0,30,0,30,0,30,0,26,0,30,0,26,0,26,0,26,0,26,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,30,0,26,0,26,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,36,0,36,0].concat([438,0,438,0,438,0,438,0,438,0,438,0,438,0,438,0,438,0,438,0,438,0,438,0,26,0,26,0,26,0,26,0,437,0,428,0,428,0,437,0,437,0,426,0,427,0,428,0,437,0,437,0,428,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,9,0,10,0,9,0,10,0,9,0,10,0,9,0,10,0,426,0,427,0,446,0,446,0,446,0,446,0,446,0,446,0,446,0,446,0,428,0,428,0,428,0,426,0,427,0,9,0,10,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,437,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,428,0,437,0,437,0,428,0,428,0,426,0,427,0,426,0,427,0,437,0,428,0,428,0,428,0,428,0,437,0,428,0,437,0,437,0,437,0,428,0,428,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,426,0,427,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,437,0,437,0,437,0,437,0,428,0,428,0,437,0,428,0,437,0,428,0,428,0,437,0,428,0,437,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,437,0,437,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,428,0,437,0,437,0,428,0,428,0,437,0,437,0,428,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,428,0,437,0,428,0,437,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,428,0,428,0,428,0,428,0,437,0,428,0,428,0,428,0,437,0,437,0,437,0,437,0,437,0,428,0,437,0,428,0,428,0,428,0,428,0,428,0,428,0,428,0,26,0,26,0,428,0,428,0,428,0,428,0,428,0,428,0,64,0,64,0,64,0,26,0,26,0,26,0,26,0,26,0,30,0,30,0,30,0,30,0,30,0,64,0,64,0,64,0,64,0,64,0,64,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,447,0,64,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,448,0,64,0,37,0,41,0,37,0,37,0,37,0,41,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,37,0,37,0,37,0,37,0,41,0,37,0,41,0,41,0,37,0,41,0,41,0,41,0,41,0,41,0,41,0,44,0,44,0,37,0,37,0,69,0,70,0,69,0,70,0,70,0,449,0,449,0,449,0,449,0,449,0,449,0,69,0,70,0,69,0,70,0,450,0,450,0,450,0,69,0,70,0,64,0,64,0,64,0,64,0,64,0,451,0,451,0,451,0,451,0,452,0,451,0,451,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,453,0,64,0,453,0,64,0,64,0,64,0,64,0,64,0,453,0,64,0,64,0,454,0,454,0,454,0,454,0,454,0,454,0,454,0,454,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,455,0,456,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,457,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,66,0,66,0,28,0,35,0,28,0,35,0,66,0,66,0,66,0,28,0,35,0,66,0,28,0,35,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,66,0,410,0,66,0,66,0,410,0,66,0,28,0,35,0,66,0,66,0,28,0,35,0,426,0,427,0,426,0,427,0,426,0,427,0,426,0,427,0,66,0,66,0,66,0,66,0,66,0,45,0,66,0,66,0,410,0,410,0,64,0,64,0,64,0,64,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,64,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,458,0,64,0,64,0,64,0,64,0,458,0,458,0,458,0,458,0,458,0,458,0,64,0,64,0,459,0,459,0,459,0,459,0,459,0,459,0,459,0,459,0,459,0,459,0,459,0,459,0,64,0,64,0,64,0,64,0,460,0,461,0,461,0,461,0,459,0,462,0,463,0,464,0,443,0,444,0,443,0,444,0,443,0,444,0,443,0,444,0,443,0,444,0,459,0,459,0,443,0,444,0,443,0,444,0,443,0,444,0,443,0,444,0,465,0,466,0,467,0,467,0,459,0,464,0,464,0,464,0,464,0,464,0,464,0,464,0,464,0,464,0,468,0,469,0,470,0,471,0,472,0,472,0,465,0,473,0,473,0,473,0,473,0,473,0,459,0,459,0,464,0,464,0,464,0,462,0,463,0,461,0,459,0,26,0,64,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,474,0,64,0,64,0,475,0,475,0,476,0,476,0,477,0,477,0,474,0,465,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,478,0,461,0,473,0,479,0,479,0,478,0,64,0,64,0,64,0,64,0,64,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,480,0,64,0,64,0,64,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,287,0,64,0,481,0,481,0,482,0,482,0,482,0,482,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,480,0,480,0,480,0,64,0,64,0,64,0,64,0,64,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,483,0,484,0,484,0,64,0,482,0,482,0,482,0,482,0,482,0,482,0,482,0,482,0,482,0,482,0,481,0,481,0,481,0,481,0,481,0,481,0,485,0,485,0,485,0,485,0,485,0,485,0,485,0,485,0,459,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,483,0,483,0,483,0,483,0,484,0,484,0,484,0,481,0,481,0,486,0,486,0,486,0,486,0,486,0,486,0,486,0,481,0,481,0,481,0,481,0,459,0,459,0,459,0,459,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,487,0,64,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,459,0,459,0,459,0,459,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,481,0,459,0,459,0,488,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,489,0,488,0,490,0,490,0,490,0,490,0,490,0,490,0,490,0,490,0,490,0,490,0,489,0,489,0,489,0,489,0,488,0,490,0,490,0,490,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,492,0,491,0,491,0,491,0,491,0,491,0,491,0,491,0,64,0,64,0,64,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,493,0,64,0,494,0,494,0,494,0,494,0,494,0,494,0,494,0,494,0,495,0,495,0,495,0,495,0,495,0,495,0,496,0,496,0,497,0,497,0,497,0,497,0,497,0,497,0,497,0,497,0,497,0,497,0,497,0,497,0,498,0,499,0,499,0,499,0,500,0,500,0,500,0,500,0,500,0,500,0,500,0,500,0,500,0,500,0,497,0,497,0,64,0,64,0,64,0,64,0,72,0,75,0,72,0,75,0,72,0,75,0,501,0,77,0,79,0,79,0,79,0,502,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,502,0,503,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,77,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,504,0,505,0,505,0,505,0,505,0,505,0,505,0,505,0,505,0,505,0,505,0,506,0,506,0,507,0,507,0,507,0,507,0,507,0,507,0,47,0,47,0,47,0,47,0,47,0,47,0,47,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,45,0,47,0,47,0,37,0,41,0,37,0,41,0,37,0,41,0,41,0,41,0,37,0,41,0,37,0,41,0,37,0,41,0,44,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,37,0,41,0,37,0,41,0,37,0,37,0,41,0,45,0,508,0,508,0,37,0,41,0,37,0,41,0,64,0,37,0,41,0,37,0,41,0,64,0,64,0,64,0,64,0,37,0,41,0,37,0,64,0,64,0,64,0,64,0,64,0,44,0,44,0,41,0,42,0,42,0,42,0,42,0,42,0,509,0,509,0,510,0,509,0,509,0,509,0,511,0,509,0,509,0,509,0,509,0,510,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,509,0,512,0,512,0,510,0,510,0,512,0,513,0,513,0,513,0,513,0,64,0,64,0,64,0,64,0,514,0,514,0,514,0,514,0,514,0,514,0,274,0,274,0,247,0,436,0,64,0,64,0,64,0,64,0,64,0,64,0,515,0,515,0,515,0,515,0,515,0,515,0,515,0,515,0,515,0,515,0,515,0,515,0,516,0,516,0,516,0,516,0,517,0,517,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,518,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,517,0,519,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,520,0,520,0,521,0,521,0,521,0,521,0,521,0,521,0,521,0,521,0,521,0,521,0,64,0,64,0,64,0,64,0,64,0,64,0,172,0,172,0,172,0,172,0,172,0,172,0,172,0,172,0,172,0,172,0,169,0,169,0,169,0,169,0,169,0,169,0,174,0,174,0,174,0,169,0,64,0,64,0,64,0,64,0,522,0,522,0,522,0,522,0,522,0,522,0,522,0,522,0,522,0,522,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,523,0,524,0,524,0,524,0,524,0,524,0,525,0,525,0,525,0,526,0,526,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,527,0,528,0,528,0,528,0,528,0,528,0,528,0,528,0,528,0,528,0,528,0,528,0,529,0,530,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,531,0,287,0,287,0,287,0,287,0,287,0,64,0,64,0,64,0,532,0,532,0,532,0,533,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,534,0,535,0,533,0,533,0,532,0,532,0,532,0,532,0,533,0,533,0,532,0,533,0,533,0,533,0,536,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,537,0,64,0,538,0,539,0,539,0,539,0,539,0,539,0,539,0,539,0,539,0,539,0,539,0,64,0,64,0,64,0,64,0,537,0,537,0,540,0,540,0,540,0,540,0,540,0,540,0,540,0,540,0,540,0,541,0,541,0,541,0,541,0,541,0,541,0,542,0,542,0,541,0,541,0,542,0,542,0,541,0,541,0,64,0,540,0,540,0,540,0,541,0,540,0,540,0,540,0,540,0,540,0,540,0,540,0,540,0,541,0,542,0,64,0,64,0,543,0,543,0,543,0,543,0,543,0,543,0,543,0,543,0,543,0,543,0,64,0,64,0,544,0,544,0,544,0,544,0,545,0,275,0,275,0,275,0,275,0,275,0,275,0,283,0,283,0,283,0,275,0,276,0,64,0,64,0,64,0,64,0,546,0,546,0,546,0,546,0,546,0,546,0,546,0,546,0,547,0,546,0,547,0,547,0,548,0,546,0,546,0,547,0,547,0,546,0,546,0,546,0,546,0,546,0,547,0,547,0,546,0,547,0,546,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,546,0,546,0,549,0,550,0,550,0,551,0,551,0,551,0,551,0,551,0,551,0,551,0,551,0,551,0,551,0,551,0,552,0,553,0,553,0,552,0,552,0,554,0,554,0,551,0,555,0,555,0,552,0,556,0,64,0,64,0,289,0,289,0,289,0,289,0,289,0,289,0,64,0,551,0,551,0,551,0,552,0,552,0,553,0,552,0,552,0,553,0,552,0,552,0,554,0,552,0,556,0,64,0,64,0,557,0,557,0,557,0,557,0,557,0,557,0,557,0,557,0,557,0,557,0,64,0,64,0,64,0,64,0,64,0,64,0,287,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,558,0,287,0,64,0,64,0,64,0,64,0,288,0,288,0,288,0,288,0,288,0,288,0,288,0,64,0,64,0,64,0,64,0,288,0,288,0,288,0,288,0,288,0,288,0,288,0,288,0,288,0,64,0,64,0,64,0,64,0,559,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,559,0,560,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,561,0,560,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,488,0,490,0,490,0,488,0,488,0,490,0,490,0,490,0,490,0,490,0,490,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,64,0,64,0,64,0,64,0,83,0,83,0,83,0,83,0,83,0,64,0,64,0,64,0,64,0,64,0,109,0,562,0,109,0,109,0,563,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,109,0,64,0,109,0,109,0,109,0,109,0,109,0,64,0,109,0,64,0,109,0,109,0,64,0,109,0,109,0,64,0,109,0,109,0,123,0,123,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,564,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,413,0,565,0,64,0,64,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,114,0,26,0,64,0,64,0,58,0,58,0,58,0,58,0,58,0,58,0,58,0,58,0,461,0,461,0,461,0,461,0,461,0,461,0,461,0,466,0,467,0,461,0,64,0,64,0,64,0,64,0,64,0,64,0,461,0,465,0,465,0,566,0,566,0,466,0,467,0,466,0,467,0,466,0,467,0,466,0,467,0,466,0,467,0,466,0,467,0,466,0,467,0,466,0,467,0,461,0,461,0,466,0,467,0,461,0,461,0,461,0,461,0,566,0,566,0,566,0,567,0,461,0,567,0,64,0,461,0,567,0,461,0,461,0,465,0,443,0,444,0,443,0,444,0,443,0,444,0,568,0,461,0,461,0,569,0,570,0,571,0,571,0,572,0,64,0,461,0,573,0,568,0,461,0,64,0,64,0,64,0,64,0,123,0,123,0,123,0,123,0,123,0,64,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,64,0,64,0,405,0,64,0,574,0,574,0,575,0,576,0,575,0,574,0,574,0,577,0,578,0,574,0,579,0,580,0,581,0,580,0,580,0,582,0,582,0,582,0,582,0,582,0,582,0,582,0,582,0,582,0,582,0,580,0,574,0,583,0,584,0,583,0,574,0,574,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,585,0,577,0,574,0,578,0,586,0,587,0,586,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,588,0,577,0,584,0,578,0,584,0,577,0,578,0,589,0,590,0,591,0,589,0,589,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,593,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,592,0,593,0,593,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,594,0,64,0,64,0,64,0,594,0,594,0,594,0,594,0,594,0,594,0,64,0,64,0,594,0,594,0,594,0,64,0,64,0,64,0,576,0,576,0,584,0,586,0,595,0,576,0,576,0,64,0,596,0,597,0,597,0,597,0,597,0,596,0,596,0,64,0,64,0,598,0,598,0,598,0,26,0,30,0,64,0,64,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,64,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,64,0,599,0,599,0,599,0,64,0,599,0,599,0,64,0,599,0,599,0,599,0,599,0,599,0,599,0,599,0,64,0,64,0,599,0,599,0,599,0,64,0,64,0,64,0,64,0,64,0,84,0,66,0,84,0,64,0,64,0,64,0,64,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,514,0,64,0,64,0,64,0,274,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,600,0,601,0,601,0,601,0,601,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,602,0,601,0,64,0,64,0,64,0,64,0,64,0,274,0,274,0,274,0,274,0,274,0,133,0,64,0,64,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,64,0,64,0,64,0,604,0,604,0,604,0,604,0,604,0,604,0,604,0,604,0,604,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,605,0,64,0,606,0,606,0,606,0,606,0,64,0,64,0,64,0,64,0,607,0,607,0,607,0,607,0,607,0,607,0,607,0,607,0,607,0,608,0,607,0,607,0,607,0,607,0,607,0,607,0,607,0,607,0,608,0,64,0,64,0,64,0,64,0,64,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,609,0,64,0,610,0,611,0,611,0,611,0,611,0,611,0,611,0,611,0,611,0,611,0,611,0,611,0,611,0,64,0,64,0,64,0,64,0,612,0,613,0,613,0,613,0,613,0,613,0,64,0,64,0,614,0,614,0,614,0,614,0,614,0,614,0,614,0,614,0,615,0,615,0,615,0,615,0,615,0,615,0,615,0,615,0,616,0,616,0,616,0,616,0,616,0,616,0,616,0,616,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,64,0,64,0,618,0,618,0,618,0,618,0,618,0,618,0,618,0,618,0,618,0,618,0,64,0,64,0,64,0,64,0,64,0,64,0,619,0,619,0,619,0,619,0,619,0,619,0,64,0,64,0,619,0,64,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,619,0,64,0,619,0,619,0,64,0,64,0,64,0,619,0,64,0,64,0,619,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,620,0,64,0,621,0,622,0,622,0,622,0,622,0,622,0,622,0,622,0,622,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,623,0,624,0,624,0,624,0,624,0,624,0,624,0,64,0,64,0,64,0,625,0,626,0,626,0,626,0,626,0,626,0,626,0,626,0,626,0,626,0,626,0,64,0,64,0,64,0,64,0,64,0,627,0,628,0,628,0,628,0,628,0,628,0,628,0,628,0,628,0,629,0,629,0,629,0,629,0,629,0,629,0,629,0,629,0,64,0,64,0,64,0,64,0,64,0,64,0,629,0,629,0,630,0,631,0,631,0,631,0,64,0,631,0,631,0,64,0,64,0,64,0,64,0,64,0,631,0,632,0,631,0,633,0,630,0,630,0,630,0,630,0,64,0,630,0,630,0,630,0,64,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,630,0,64,0,64,0,64,0,64,0,633,0,634,0,632,0,64,0,64,0,64,0,64,0,635,0,636,0,636,0,636,0,636,0,636,0,636,0,636,0,636,0,637,0,637,0,637,0,637,0,637,0,637,0,637,0,637,0,637,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,638,0,639,0,639,0,640,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,641,0,64,0,64,0,64,0,642,0,642,0,642,0,642,0,642,0,642,0,642,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,643,0,64,0,64,0,644,0,644,0,644,0,644,0,644,0,644,0,644,0,644,0,645,0,645,0,645,0,645,0,645,0,645,0,645,0,645,0,645,0,645,0,645,0,64,0,64,0,64,0,64,0,64,0,646,0,646,0,646,0,646,0,646,0,646,0,646,0,646,0,647,0,647,0,647,0,647,0,647,0,647,0,647,0,647,0,647,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,64,0,649,0,650,0,649,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,651,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,650,0,652,0,653,0,653,0,653,0,653,0,653,0,653,0,653,0,64,0,64,0,64,0,64,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,654,0,655,0,655,0,655,0,655,0,655,0,655,0,655,0,655,0,655,0,655,0,656,0,656,0,657,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,658,0,657,0,657,0,657,0,656,0,656,0,656,0,656,0,657,0,657,0,659,0,660,0,661,0,661,0,662,0,661,0,661,0,661,0,661,0,64,0,64,0,64,0,64,0,64,0,64,0,663,0,663,0,663,0,663,0,663,0,663,0,663,0,663,0,663,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,664,0,664,0,664,0,664,0,664,0,664,0,664,0,664,0,664,0,664,0,64,0,64,0,64,0,64,0,64,0,64,0,665,0,665,0,665,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,666,0,667,0,667,0,667,0,667,0,667,0,668,0,667,0,667,0,667,0,667,0,667,0,667,0,669,0,669,0,64,0,670,0,670,0,670,0,670,0,670,0,670,0,670,0,670,0,670,0,670,0,671,0,671,0,671,0,671,0,64,0,64,0,64,0,64,0,672,0,672,0,673,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,674,0,673,0,673,0,673,0,672,0,672,0,672,0,672,0,672,0,672,0,672,0,672,0,672,0,673,0,675,0,674,0,674,0,674,0,674,0,676,0,676,0,676,0,676,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,677,0,677,0,677,0,677,0,677,0,677,0,677,0,677,0,677,0,677,0,64,0,64,0,64,0,64,0,64,0,64,0,678,0,678,0,678,0,678,0,678,0,678,0,678,0,678,0,678,0,678,0,678,0,679,0,680,0,679,0,680,0,680,0,679,0,679,0,679,0,679,0,679,0,679,0,681,0,682,0,683,0,683,0,683,0,683,0,683,0,683,0,683,0,683,0,683,0,683,0,64,0,64,0,64,0,64,0,64,0,64,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,684,0,64,0,685,0,685,0,685,0,685,0,685,0,685,0,685,0,685,0,685,0,685,0,685,0,64,0,64,0,64,0,64,0,64,0,686,0,686,0,686,0,686,0,64,0,64,0,64,0,64,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,687,0,64,0,504,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,688,0,64,0,64,0,64,0,688,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,689,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,690,0,690,0,690,0,690,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,691,0,478,0,474,0,64,0,64,0,64,0,64,0,64,0,64,0,274,0,274,0,274,0,274,0,274,0,274,0,64,0,64,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,64,0,64,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,274,0,692,0,692,0,395,0,395,0,395,0,274,0,274,0,274,0,693,0,692,0,692,0,692,0,692,0,692,0,405,0,405,0,405,0,405,0,405,0,405,0,405,0,405,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,274,0,274,0,78,0,78,0,78,0,78,0,78,0,133,0,133,0,274,0,274,0,274,0,274,0,274,0,274,0,78,0,78,0,78,0,78,0,274,0,274,0,602,0,602,0,694,0,694,0,694,0,602,0,64,0,64,0,514,0,514,0,64,0,64,0,64,0,64,0,64,0,64,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,64,0,34,0,34,0,34,0,34,0,34,0,34,0,434,0,64,0,434,0,434,0,64,0,64,0,434,0,64,0,64,0,434,0,434,0,64,0,64,0,434,0,434,0,434,0,434,0,64,0,434,0,434,0,34,0,34,0,64,0,34,0,64,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,64,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,434,0,434,0,64,0,434,0,434,0,434,0,434,0,64,0,64,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,64,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,64,0,34,0,34,0,434,0,434,0,64,0,434,0,434,0,434,0,434,0,64,0,434,0,434,0,434,0,434,0,434,0,64,0,434,0,64,0,64,0,64,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,64,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,64,0,64,0,434,0,695,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,437,0,34,0,34,0,34,0,34,0,34,0,34,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,695,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,437,0,34,0,34,0,434,0,434,0,434,0,434,0,434,0,695,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,437,0,34,0,34,0,34,0,34,0,34,0,34,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,434,0,695,0,34,0,437,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,434,0,34,0,64,0,64,0,696,0,696,0,696,0,696,0,696,0,696,0,696,0,696,0,696,0,696,0,123,0,123,0,123,0,123,0,64,0,123,0,123,0,123,0,64,0,123,0,123,0,64,0,123,0,64,0,64,0,123,0,64,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,64,0,123,0,123,0,123,0,123,0,64,0,123,0,64,0,123,0,64,0,64,0,64,0,64,0,64,0,64,0,123,0,64,0,64,0,64,0,64,0,123,0,64,0,123,0,64,0,123,0,64,0,123,0,123,0,123,0,64,0,123,0,64,0,123,0,64,0,123,0,64,0,123,0,64,0,123,0,123,0,123,0,123,0,64,0,123,0,64,0,123,0,123,0,64,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,64,0,64,0,64,0,64,0,64,0,123,0,123,0,123,0,64,0,123,0,123,0,123,0,111,0,111,0,64,0,64,0,64,0,64,0,64,0,64,0,33,0,33,0,33,0,64,0,64,0,64,0,64,0,64,0,445,0,445,0,445,0,445,0,445,0,445,0,274,0,64,0,445,0,445,0,26,0,26,0,64,0,64,0,64,0,64,0,445,0,445,0,445,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,274,0,274,0,697,0,481,0,481,0,64,0,64,0,64,0,64,0,64,0,481,0,481,0,481,0,64,0,64,0,64,0,64,0,64,0,481,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,481,0,481,0,64,0,64,0,64,0,64,0,64,0,64,0,26,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,64,0,64,0,26,0,26,0,26,0,26,0,26,0,64,0,26,0,26,0,26,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,26,0,26,0,26,0,26,0,64,0,64,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,64,0,64,0,64,0,64,0,26,0,26,0,26,0,26,0,26,0,26,0,64,0,64,0,64,0,64,0,26,0,26,0,26,0,489,0,489,0,489,0,489,0,489,0,489,0,488,0,490,0,490,0,490,0,490,0,490,0,490,0,490,0,64,0,64,0,64,0,405,0,64,0,64,0,64,0,64,0,64,0,64,0,405,0,405,0,405,0,405,0,405,0,405,0,405,0,405,0,561,0,561,0,561,0,561,0,561,0,560,0,64,0,64,0])
  3291. , ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0].concat(["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3292. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3293. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3294. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3295. , ALLOC_NONE, 8312);
  3296. allocate([0,0,1,0,0,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,8,0,9,0,10,0,11,0,11,0,12,0,13,0,0,0,0,0,0,0,14,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,27,0,28,0,29,0,30,0,29,0,31,0,32,0,33,0,34,0,35,0,27,0,30,0,29,0,27,0,36,0,37,0,38,0,39,0,40,0,41,0,42,0,43,0,44,0,45,0,46,0,47,0,48,0,27,0,27,0,49,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,50,0,51,0,52,0,27,0,53,0,54,0,53,0,54,0,54,0,54,0,54,0,54,0,55,0,54,0,54,0,54,0,56,0,57,0,58,0,59,0,60,0,61,0,62,0,63,0,64,0,64,0,65,0,65,0,66,0,67,0,68,0,69,0,70,0,71,0,72,0,73,0,74,0,75,0,76,0,65,0,77,0,78,0,79,0,80,0,81,0,82,0,83,0,84,0,85,0,86,0,87,0,88,0,89,0,90,0,91,0,92,0,93,0,94,0,95,0,96,0,97,0,97,0,97,0,97,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,101,0,101,0,101,0,102,0,103,0,101,0,101,0,101,0,101,0,101,0,101,0,104,0,105,0,101,0,101,0,101,0,101,0,101,0,101,0,101,0,101,0,101,0,101,0,101,0,106,0,107,0,108,0,108,0,108,0,109,0,110,0,111,0,112,0,112,0,112,0,112,0,113,0,114,0,115,0,116,0,117,0,118,0,119,0,120,0,106,0,121,0,121,0,121,0,122,0,123,0,106,0,124,0,125,0,126,0,127,0,128,0,128,0,128,0,128,0,129,0,130,0,131,0,132,0,133,0,134,0,135,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,136,0,137,0,138,0,139,0,140,0,141,0,142,0,143,0,144,0,145,0,145,0,145,0,146,0,147,0,148,0,149,0,128,0,128,0,128,0,128,0,128,0,128,0,150,0,150,0,150,0,150,0,151,0,152,0,153,0,106,0,154,0,155,0,156,0,156,0,156,0,157,0,158,0,159,0,160,0,160,0,161,0,162,0,163,0,164,0,165,0,166,0,167,0,167,0,167,0,168,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,169,0,170,0,106,0,106,0,106,0,106,0,106,0,106,0,171,0,172,0,173,0,174,0,175,0,176,0,176,0,176,0,176,0,176,0,176,0,177,0,178,0,179,0,180,0,176,0,181,0,182,0,183,0,184,0,185,0,186,0,187,0,188,0,188,0,189,0,190,0,191,0,192,0,193,0,194,0,195,0,196,0,197,0,198,0,199,0,200,0,201,0,202,0,203,0,203,0,204,0,205,0,206,0,207,0,208,0,209,0,210,0,211,0,212,0,213,0,106,0,214,0,215,0,216,0,217,0,217,0,218,0,219,0,220,0,221,0,222,0,223,0,106,0,224,0,225,0,226,0,106,0,227,0,228,0,229,0,230,0,230,0,231,0,232,0,233,0,234,0,235,0,236,0,237,0,238,0,239,0,240,0,106,0,241,0,242,0,243,0,244,0,245,0,242,0,246,0,247,0,248,0,249,0,250,0,106,0,251,0,252,0,253,0,254,0,255,0,256,0,257,0,258,0,258,0,257,0,259,0,260,0,261,0,262,0,263,0,264,0,265,0,266,0,106,0,267,0,268,0,269,0,270,0,271,0,271,0,270,0,272,0,273,0,274,0,275,0,276,0,277,0,278,0,279,0,280,0,106,0,281,0,282,0,283,0,284,0,284,0,284,0,284,0,285,0,286,0,287,0,288,0,106,0,289,0,290,0,291,0,292,0,293,0,294,0,295,0,296,0,294,0,294,0,297,0,298,0,295,0,299,0,300,0,301,0,106,0,106,0,302,0,106,0,303,0,304,0,304,0,304,0,304,0,304,0,305,0,306,0,307,0,308,0,309,0,310,0,106,0,106,0,106,0,106,0,311,0,312,0,313,0,314,0,315,0,316,0,317,0,318,0,319,0,320,0,321,0,322,0,106,0,106,0,106,0,106,0,323,0,324,0,325,0,326,0,327,0,328,0,329,0,330,0,331,0,332,0,331,0,331,0,331,0,333,0,334,0,335,0,336,0,337,0,338,0,339,0,338,0,338,0,338,0,340,0,341,0,342,0,343,0,344,0,106,0,106,0,106,0,106,0,345,0,345,0,345,0,345,0,345,0,346,0,347,0,348,0,349,0,350,0,351,0,352,0,353,0,354,0,355,0,345,0,356,0,357,0,349,0,358,0,359,0,359,0,359,0,359,0,360,0,361,0,362,0,362,0,362,0,362,0,362,0,363,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,365,0,366,0,366,0,366,0,366,0,366,0,366,0,366,0,366,0,366,0,367,0,368,0,367,0,366,0,366,0,366,0,366,0,366,0,367,0,366,0,366,0,366,0,366,0,367,0,368,0,367,0,366,0,368,0,366,0,366,0,366,0,366,0,366,0,366,0,366,0,367,0,366,0,366,0,366,0,366,0,366,0,366,0,366,0,366,0,369,0,370,0,371,0,372,0,373,0,366,0,366,0,374,0,375,0,376,0,376,0,376,0,376,0,376,0,376,0,376,0,376,0,376,0,376,0,377,0,106,0,378,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,380,0,379,0,379,0,381,0,382,0,382,0,383,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,384,0,385,0,386,0,106,0,387,0,388,0,389,0,106,0,390,0,390,0,391,0,106,0,392,0,392,0,393,0,106,0,394,0,395,0,396,0,106,0,397,0,397,0,397,0,397,0,397,0,397,0,398,0,399,0,400,0,401,0,402,0,403,0,404,0,405,0,406,0,407,0,408,0,409,0,410,0,411,0,412,0,412,0,412,0,412,0,413,0,412,0,412,0,412,0,412,0,412,0,412,0,106,0,412,0,412,0,412,0,412,0,412,0,414,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,379,0,415,0,106,0,416,0,416,0,416,0,417,0,418,0,419,0,420,0,421,0,422,0,423,0,424,0,424,0,424,0,425,0,426,0,106,0,427,0,427,0,427,0,427,0,427,0,428,0,429,0,429,0,430,0,431,0,432,0,433,0,434,0,434,0,434,0,434,0,435,0,435,0,436,0,437,0,438,0,438,0,438,0,438,0,438,0,438,0,439,0,440,0,441,0,442,0,443,0,444,0,445,0,446,0,445,0,446,0,447,0,448,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,449,0,450,0,450,0,450,0,450,0,450,0,451,0,452,0,453,0,454,0,455,0,456,0,457,0,458,0,459,0,460,0,461,0,462,0,462,0,462,0,463,0,464,0,465,0,466,0,467,0,467,0,467,0,467,0,468,0,469,0,470,0,471,0,472,0,472,0,472,0,472,0,473,0,474,0,475,0,476,0,477,0,478,0,479,0,480,0,481,0,481,0,481,0,482,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,483,0,106,0,484,0,485,0,486,0,487,0,488,0,106,0,54,0,54,0,54,0,54,0,489,0,490,0,56,0,56,0,56,0,56,0,56,0,491,0,492,0,493,0,54,0,494,0,54,0,54,0,54,0,495,0,56,0,56,0,56,0,496,0,497,0,498,0,499,0,500,0,501,0,106,0,106,0,502,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,503,0,504,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,505,0,506,0,507,0,508,0,505,0,506,0,505,0,506,0,507,0,508,0,505,0,509,0,505,0,506,0,505,0,507,0,505,0,510,0,505,0,510,0,505,0,510,0,511,0,512,0,513,0,514,0,515,0,516,0,505,0,517,0,518,0,519,0,520,0,521,0,522,0,523,0,524,0,525,0,526,0,527,0,528,0,529,0,530,0,531,0,532,0,533,0,534,0,535,0,536,0,537,0,56,0,538,0,539,0,540,0,539,0,541,0,106,0,106,0,542,0,543,0,544,0,545,0,546,0,106,0,547,0,548,0,549,0,550,0,551,0,552,0,553,0,554,0,555,0,556,0,557,0,558,0,559,0,560,0,559,0,561,0,562,0,563,0,564,0,565,0,566,0,567,0,568,0,569,0,568,0,570,0,571,0,568,0,572,0,568,0,573,0,574,0,575,0,576,0,577,0,578,0,579,0,580,0,581,0,582,0,583,0,584,0,585,0,586,0,587,0,588,0,583,0,583,0,589,0,590,0,591,0,592,0,593,0,583,0,583,0,594,0,574,0,595,0,596,0,583,0,583,0,597,0,583,0,583,0,568,0,598,0,599,0,568,0,600,0,601,0,602,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,604,0,568,0,568,0,605,0,606,0,574,0,574,0,607,0,568,0,568,0,568,0,568,0,573,0,608,0,568,0,609,0,106,0,568,0,568,0,568,0,568,0,610,0,106,0,106,0,106,0,568,0,611,0,106,0,106,0,612,0,612,0,612,0,612,0,612,0,613,0,613,0,614,0,615,0,615,0,615,0,615,0,615,0,615,0,615,0,615,0,615,0,616,0,612,0,612,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,617,0,618,0,617,0,617,0,617,0,617,0,618,0,568,0,617,0,617,0,619,0,568,0,620,0,569,0,621,0,622,0,623,0,624,0,569,0,568,0,619,0,572,0,568,0,574,0,625,0,626,0,622,0,627,0,568,0,568,0,568,0,568,0,628,0,568,0,568,0,568,0,629,0,630,0,568,0,568,0,568,0,568,0,568,0,631,0,568,0,632,0,568,0,631,0,633,0,634,0,617,0,617,0,635,0,617,0,617,0,617,0,636,0,568,0,568,0,568,0,568,0,568,0,568,0,637,0,568,0,568,0,572,0,568,0,568,0,638,0,639,0,612,0,640,0,640,0,641,0,568,0,568,0,568,0,568,0,568,0,642,0,643,0,644,0,645,0,646,0,647,0,574,0,574,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,648,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,574,0,649,0,650,0,650,0,651,0,583,0,583,0,574,0,652,0,597,0,653,0,654,0,655,0,656,0,657,0,658,0,659,0,574,0,660,0,583,0,661,0,662,0,663,0,664,0,645,0,574,0,574,0,586,0,652,0,664,0,665,0,666,0,667,0,583,0,583,0,583,0,583,0,668,0,669,0,583,0,583,0,583,0,583,0,670,0,671,0,672,0,645,0,673,0,674,0,568,0,568,0,568,0,568,0,568,0,568,0,574,0,574,0,675,0,676,0,677,0,678,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,679,0,679,0,679,0,679,0,679,0,680,0,681,0,681,0,681,0,681,0,681,0,682,0,683,0,684,0,685,0,686,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,687,0,688,0,689,0,690,0,691,0,691,0,691,0,691,0,692,0,693,0,694,0,694,0,694,0,694,0,694,0,694,0,694,0,695,0,696,0,697,0,366,0,366,0,368,0,106,0,368,0,368,0,368,0,368,0,368,0,368,0,368,0,368,0,698,0,698,0,698,0,698,0,699,0,700,0,701,0,702,0,703,0,704,0,529,0,705,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,706,0,706,0,706,0,707,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,708,0,106,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,706,0,709,0,106,0,106,0,106,0,710,0,711,0,712,0,713,0,714,0,715,0,716,0,717,0,718,0,719,0,720,0,721,0,721,0,721,0,721,0,721,0,721,0,721,0,721,0,721,0,722,0,723,0,724,0,725,0,725,0,725,0,725,0,725,0,725,0,725,0,725,0,725,0,725,0,726,0,727,0,728,0,728,0,728,0,728,0,729,0,730,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,364,0,731,0,732,0,733,0,728,0,728,0,728,0,734,0,710,0,710,0,710,0,710,0,711,0,106,0,725,0,725,0,735,0,735,0,735,0,736,0,737,0,738,0,733,0,733,0,733,0,739,0,740,0,741,0,735,0,735,0,735,0,742,0,737,0,738,0,733,0,733,0,733,0,733,0,743,0,741,0,733,0,744,0,745,0,745,0,745,0,745,0,745,0,746,0,745,0,745,0,745,0,745,0,745,0,745,0,745,0,745,0,745,0,745,0,745,0,733,0,733,0,733,0,747,0,748,0,733,0,733,0,733,0,733,0,733,0,733,0,733,0,733,0,733,0,733,0,733,0,749,0,733,0,733,0,733,0,747,0,750,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,752,0,753,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,754,0,753,0,753,0,753,0,753,0,753,0,753,0,755,0,755,0,756,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,755,0,757,0,758,0,758,0,758,0,758,0,758,0,758,0,759,0,106,0,760,0,760,0,760,0,760,0,760,0,761,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,762,0,763,0,762,0,762,0,764,0,765,0,106,0,106,0,101,0,101,0,101,0,101,0,101,0,766,0,767,0,768,0,101,0,101,0,101,0,769,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,771,0,772,0,773,0,106,0,64,0,64,0,774,0,775,0,776,0,27,0,777,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,778,0,779,0,27,0,780,0,781,0,106,0,27,0,782,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,783,0,784,0,785,0,786,0,786,0,787,0,788,0,789,0,790,0,791,0,791,0,791,0,791,0,791,0,791,0,792,0,106,0,793,0,794,0,794,0,794,0,794,0,794,0,795,0,796,0,797,0,798,0,799,0,800,0,801,0,801,0,802,0,803,0,804,0,805,0,806,0,806,0,807,0,808,0,809,0,809,0,810,0,811,0,812,0,813,0,364,0,364,0,364,0,814,0,815,0,816,0,816,0,816,0,816,0,816,0,817,0,818,0,819,0,820,0,821,0,822,0,106,0,106,0,106,0,106,0,823,0,823,0,823,0,823,0,823,0,824,0,825,0,106,0,826,0,827,0,828,0,829,0,345,0,345,0,830,0,831,0,832,0,832,0,832,0,832,0,832,0,832,0,833,0,834,0,835,0,106,0,106,0,836,0,837,0,838,0,839,0,106,0,840,0,840,0,840,0,106,0,368,0,368,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,837,0,837,0,837,0,837,0,841,0,842,0,843,0,844,0,845,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,846,0,847,0,106,0,365,0,365,0,848,0,849,0,365,0,365,0,365,0,365,0,365,0,850,0,851,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,852,0,851,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,852,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,852,0,853,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,855,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,857,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,856,0,858,0,753,0,753,0,753,0,753,0,859,0,106,0,860,0,861,0,121,0,862,0,863,0,864,0,865,0,121,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,866,0,867,0,868,0,106,0,869,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,870,0,106,0,106,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,871,0,128,0,128,0,128,0,128,0,128,0,128,0,106,0,106,0,106,0,106,0,106,0,128,0,872,0,873,0,873,0,874,0,875,0,501,0,106,0,876,0,877,0,878,0,879,0,880,0,881,0,882,0,883,0,884,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,885,0,886,0,887,0,888,0,889,0,890,0,891,0,891,0,892,0,893,0,894,0,894,0,895,0,896,0,897,0,898,0,897,0,897,0,897,0,897,0,899,0,900,0,900,0,900,0,901,0,902,0,902,0,902,0,903,0,904,0,905,0,106,0,906,0,907,0,908,0,907,0,907,0,909,0,907,0,907,0,910,0,907,0,911,0,907,0,911,0,106,0,106,0,106,0,106,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,907,0,912,0,913,0,914,0,914,0,914,0,914,0,914,0,915,0,603,0,916,0,916,0,916,0,916,0,916,0,916,0,917,0,918,0,919,0,920,0,568,0,609,0,106,0,106,0,106,0,106,0,106,0,106,0,603,0,603,0,603,0,603,0,603,0,921,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,922,0,922,0,922,0,923,0,924,0,924,0,924,0,924,0,924,0,924,0,925,0,106,0,106,0,106,0,106,0,106,0,926,0,926,0,926,0,927,0,928,0,106,0,929,0,929,0,930,0,931,0,106,0,106,0,106,0,106,0,106,0,106,0,932,0,932,0,932,0,933,0,934,0,934,0,934,0,934,0,935,0,934,0,936,0,106,0,106,0,106,0,106,0,106,0,937,0,937,0,937,0,937,0,937,0,938,0,938,0,938,0,938,0,938,0,939,0,939,0,939,0,939,0,939,0,939,0,940,0,940,0,940,0,941,0,942,0,943,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,944,0,945,0,946,0,946,0,946,0,946,0,947,0,948,0,949,0,949,0,950,0,951,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,952,0,952,0,953,0,954,0,955,0,955,0,955,0,956,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,957,0,957,0,957,0,957,0,958,0,958,0,958,0,959,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,960,0,961,0,962,0,963,0,964,0,964,0,965,0,966,0,967,0,106,0,968,0,969,0,970,0,970,0,970,0,971,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,972,0,972,0,972,0,972,0,972,0,972,0,973,0,974,0,975,0,975,0,976,0,977,0,978,0,978,0,979,0,980,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,981,0,981,0,981,0,981,0,981,0,981,0,981,0,981,0,981,0,982,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,983,0,983,0,983,0,984,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,985,0,986,0,986,0,986,0,986,0,986,0,986,0,987,0,988,0,989,0,990,0,991,0,992,0,993,0,106,0,106,0,994,0,995,0,995,0,995,0,995,0,995,0,996,0,997,0,998,0,106,0,999,0,999,0,999,0,1000,0,1001,0,1002,0,1003,0,1004,0,1004,0,1004,0,1005,0,1006,0,1007,0,1008,0,1009,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1010,0,1011,0,1011,0,1011,0,1011,0,1011,0,1012,0,1013,0,1014,0,1015,0,1016,0,1017,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1018,0,1018,0,1018,0,1018,0,1018,0,1019,0,1020,0,106,0,1021,0,1022,0,106,0,106,0,106,0,106,0,106,0,106,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1023,0,1024,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1025,0,1026,0,106,0,1027,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1028,0,1029,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,770,0,1030,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1031,0,1031,0,1031,0,1031,0,1031,0,1031,0,1031,0,1031,0,1032,0,106,0,1033,0,1034,0,1034,0,1034,0,1034,0,1035,0,106,0,1036,0,1037,0,1038,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1039,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,603,0,1040,0,106,0,603,0,603,0,603,0,603,0,1041,0,1042,0,603,0,603,0,603,0,603,0,603,0,603,0,1043,0,1044,0,1045,0,1046,0,1047,0,1048,0,603,0,603,0,603,0,1049,0,603,0,603,0,603,0,603,0,603,0,1040,0,106,0,106,0,106,0,106,0,919,0,919,0,919,0,919,0,919,0,919,0,919,0,919,0,1050,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,610,0,106,0,914,0,914,0,1051,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1052,0,1052,0,1052,0,1053,0,1054,0,1054,0,1055,0,1052,0,1052,0,1056,0,1057,0,1054,0,1054,0,1052,0,1052,0,1052,0,1053,0,1054,0,1054,0,1058,0,1059,0,1060,0,1056,0,1061,0,1062,0,1054,0,1052,0,1052,0,1052,0,1053,0,1054,0,1054,0,1063,0,1064,0,1065,0,1066,0,1054,0,1054,0,1054,0,1067,0,1068,0,1069,0,1070,0,1054,0,1054,0,1055,0,1052,0,1052,0,1056,0,1054,0,1054,0,1054,0,1052,0,1052,0,1052,0,1053,0,1054,0,1054,0,1055,0,1052,0,1052,0,1056,0,1054,0,1054,0,1054,0,1052,0,1052,0,1052,0,1053,0,1054,0,1054,0,1055,0,1052,0,1052,0,1056,0,1054,0,1054,0,1054,0,1052,0,1052,0,1052,0,1053,0,1054,0,1054,0,1071,0,1052,0,1052,0,1052,0,1072,0,1054,0,1054,0,1073,0,1074,0,1052,0,1052,0,1075,0,1054,0,1054,0,1076,0,1055,0,1052,0,1052,0,1077,0,1054,0,1054,0,1078,0,1079,0,1052,0,1052,0,1080,0,1054,0,1054,0,1054,0,1081,0,1052,0,1052,0,1052,0,1072,0,1054,0,1054,0,1073,0,1082,0,1083,0,1083,0,1083,0,1083,0,1083,0,1083,0,1084,0,128,0,128,0,128,0,1085,0,1086,0,1087,0,1088,0,1089,0,1090,0,1085,0,1091,0,1085,0,1087,0,1087,0,1092,0,128,0,1093,0,128,0,1094,0,1095,0,1093,0,128,0,1094,0,106,0,106,0,106,0,106,0,106,0,106,0,1096,0,106,0,568,0,568,0,568,0,568,0,568,0,609,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,609,0,106,0,568,0,610,0,636,0,610,0,636,0,568,0,636,0,568,0,106,0,106,0,106,0,106,0,613,0,1097,0,615,0,615,0,615,0,1098,0,615,0,615,0,615,0,615,0,615,0,615,0,615,0,1099,0,615,0,615,0,615,0,615,0,615,0,1100,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1101,0,603,0,603,0,603,0,1102,0,106,0,733,0,733,0,733,0,733,0,733,0,1103,0,733,0,1104,0,1105,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,568,0,568,0,568,0,568,0,1106,0,106,0,1107,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,1108,0,568,0,568,0,609,0,106,0,568,0,568,0,568,0,568,0,1109,0,611,0,106,0,106,0,568,0,568,0,1106,0,106,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,610,0,1110,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,1111,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,1112,0,609,0,106,0,568,0,568,0,568,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,1113,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,1114,0,568,0,106,0,106,0,106,0,106,0,106,0,106,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,1112,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,568,0,609,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,1115,0,753,0,753,0,753,0,753,0,753,0,751,0,751,0,751,0,751,0,751,0,751,0,754,0,753,0,750,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,751,0,752,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,856,0,856,0,856,0,857,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,753,0,1116,0,1117,0,106,0,106,0,106,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,1118,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,873,0,106,0,106,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,854,0,1119,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 26232);
  3297. allocate([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,55,56,57,57,57,58,59,60,61,62,63,64,65,66,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,68,69,70,70,71,69,70,70,72,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,76,77,78,79,80,81,82,83,84,85,86,87,70,70,70,88,89,90,91,92,70,93,70,94,95,70,70,70,70,96,70,70,70,70,70,70,70,70,70,97,97,97,98,99,70,70,70,70,70,70,70,70,70,70,70,100,100,100,100,101,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,102,102,103,70,70,70,70,104,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,105,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,106,107,108,109,110,111,112,113,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,114,70,115,116,117,118,119,120,121,122,70,70,70,70,70,70,70,70,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,123,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,124,125,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,76,76,127,126,126,126,126,128,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,128,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,129,130,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,131,73,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,131], "i8", ALLOC_NONE, 34680);
  3298. allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,11,0,13,0,15,0,18,0,0,0,0,0,20,0,23,0,25,0,0,0,27,0,31,0,35,0,0,0,39,0,42,0,45,0,48,0,51,0,54,0,0,0,57,0,60,0,63,0,66,0,69,0,72,0,75,0,78,0,81,0,0,0,84,0,87,0,90,0,93,0,96,0,99,0,0,0,0,0,102,0,105,0,108,0,111,0,114,0,0,0,0,0,117,0,120,0,123,0,126,0,129,0,132,0,0,0,135,0,138,0,141,0,144,0,147,0,150,0,153,0,156,0,159,0,0,0,162,0,165,0,168,0,171,0,174,0,177,0,0,0,0,0,180,0,183,0,186,0,189,0,192,0,0,0,195,0,198,0,201,0,204,0,207,0,210,0,213,0,216,0,219,0,222,0,225,0,228,0,231,0,234,0,237,0,240,0,243,0,0,0,0,0,246,0,249,0,252,0,255,0,258,0,261,0,264,0,267,0,270,0,273,0,276,0,279,0,282,0,285,0,288,0,291,0,294,0,297,0,300,0,303,0,0,0,0,0,306,0,309,0,312,0,315,0,318,0,321,0,324,0,327,0,330,0,0,0,333,0,336,0,339,0,342,0,345,0,348,0,0,0,351,0,354,0,357,0,360,0,363,0,366,0,369,0,372,0,0,0,0,0,375,0,378,0,381,0,384,0,387,0,390,0,393,0,0,0,0,0,396,0,399,0,402,0,405,0,408,0,411,0,0,0,0,0,414,0,417,0,420,0,423,0,426,0,429,0,432,0,435,0,438,0,441,0,444,0,447,0,450,0,453,0,456,0,459,0,462,0,465,0,0,0,0,0,468,0,471,0,474,0,477,0,480,0,483,0,486,0,489,0,492,0,495,0,498,0,501,0,504,0,507,0,510,0,513,0,516,0,519,0,522,0,525,0,528,0,531,0,534,0,537,0,539,0,542,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,545,0,548,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,551,0,554,0,557,0,560,0,563,0,566,0,569,0,572,0,575,0,578,0,581,0,584,0,587,0,590,0,593,0,596,0,599,0,602,0,605,0,608,0,611,0,614,0,617,0,620,0,623,0,0,0,626,0,629,0,632,0,635,0,638,0,641,0,0,0,0,0,644,0,647,0,650,0,653,0,656,0,659,0,662,0,665,0,668,0,671,0,674,0,677,0,680,0,683,0,686,0,689,0,0,0,0,0,692,0,695,0,698,0,701,0,704,0,707,0,710,0,713,0,716,0,719,0,722,0,725,0,728,0,731,0,734,0,737,0,740,0,743,0,746,0,749,0,752,0,755,0,758,0,761,0,764,0,767,0,770,0,773,0,776,0,779,0,782,0,785,0,788,0,791,0,794,0,797,0,0,0,0,0,800,0,803,0,0,0,0,0,0,0,0,0,0,0,0,0,806,0,809,0,812,0,815,0,818,0,821,0,824,0,827,0,830,0,833,0,836,0,839,0,842,0,845,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,848,0,850,0,852,0,854,0,856,0,858,0,860,0,862,0,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,866,0,869,0,872,0,875,0,878,0,881,0,0,0,0,0,884,0,886,0,888,0,890,0,892,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,894,0,896,0,0,0,898,0,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,903,0,0,0,0,0,0,0,0,0,0,0,905,0,0,0,0,0,0,0,908,0,0,0,0,0,0,0,0,0,0,0,910,0,913,0,916,0,919,0,921,0,924,0,927,0,0,0,930,0,0,0,933,0,936,0,939,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,942,0,945,0,948,0,951,0,954,0,957,0,960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,963,0,966,0,969,0,972,0,975,0,0,0,978,0,980,0,982,0,984,0,987,0,990,0,992,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,994,0,996,0,998,0,0,0,1000,0,1002,0,0,0,0,0,0,0,1004,0,0,0,0,0,0,0,0,0,0,0,0,0,1006,0,1009,0,0,0,1012,0,0,0,0,0,0,0,1015,0,0,0,0,0,0,0,0,0,1018,0,1021,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1030,0,0,0,0,0,0,0,0,0,0,0,0,0,1033,0,1036,0,0,0,1039,0,0,0,0,0,0,0,1042,0,0,0,0,0,0,0,0,0,1045,0,1048,0,1051,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1054,0,1057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1060,0,1063,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1066,0,1069,0,1072,0,1075,0,0,0,0,0,1078,0,1081,0,0,0,0,0,1084,0,1087,0,1090,0,1093,0,1096,0,1099,0,0,0,0,0,1102,0,1105,0,1108,0,1111,0,1114,0,1117,0,0,0,0,0,1120,0,1123,0,1126,0,1129,0,1132,0,1135,0,1138,0,1141,0,1144,0,1147,0,1150,0,1153,0,0,0,0,0,1156,0,1159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1165,0,1168,0,1171,0,1174,0,1177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1180,0,1183,0,1186,0,1189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1192,0,0,0,1195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1204,0,0,0,0,0,1207,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1210,0,1213,0,1216,0,1219,0,1222,0,1225,0,1228,0,1231,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1234,0,1237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1240,0,1243,0,0,0,1246,0,0,0,0,0,0,0,1249,0,0,0,0,0,1252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1255,0,1258,0,1261,0,0,0,0,0,1264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1267,0,0,0,0,0,1270,0,1273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1276,0,1279,0,0,0,0,0,0,0,0,0,0,0,0,0,1282,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1285,0,1288,0,1291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1297,0,0,0,0,0,0,0,0,0,0,0,0,0,1300,0,1303,0,0,0,1306,0,1309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1312,0,1315,0,1318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1321,0,0,0,1324,0,1327,0,1330,0,0,0,0,0,0,0,0,0,1333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1336,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1339,0,1342,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1345,0,0,0,0,0,0,0,0,0,0,0,0,0,1347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1350,0,0,0,0,0,0,0,0,0,1353,0,0,0,0,0,0,0,0,0,1356,0,0,0,0,0,0,0,0,0,1359,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1362,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1365,0,0,0,1368,0,1371,0,1374,0,1377,0,1380,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1386,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1389,0,0,0,0,0,0,0,0,0,1392,0,0,0,0,0,0,0,0,0,1395,0,0,0,0,0,0,0,0,0,1398,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1401,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1404,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1409,0,0,0,1412,0,0,0,1415,0,0,0,1418,0,0,0,1421,0,0,0,0,0,0,0,1424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1427,0,0,0,1430,0,0,0,0,0,1433,0,1436,0,0,0,1439,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1442,0,1444,0,1446,0,0,0,1448,0,1450,0,1452,0,1454,0,1456,0,1458,0,1460,0,1462,0,1464,0,1466,0,1468,0,0,0,1470,0,1472,0,1474,0,1476,0,1478,0,1480,0,1482,0,1484,0,1486,0,1488,0,1490,0,1492,0,1494,0,1496,0,1498,0,1500,0,1502,0,1504,0,0,0,1506,0,1508,0,1510,0,1512,0,1514,0,1516,0,1518,0,1520,0,1522,0,1524,0,1526,0,1528,0,1530,0,1532,0,1534,0,1536,0,1538,0,1540,0,1542,0,1544,0,1546,0,1548,0,1550,0,1552,0,1554,0,1556,0,1558,0,1560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1562,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1564,0,1566,0,1568,0,1570,0,1572,0,1574,0,1576,0,1578,0,1580,0,1582,0,1584,0,1586,0,1588,0,1590,0,1592,0,1594,0,1596,0,1598,0,1600,0,1602,0,1604,0,1606,0,1608,0,1610,0,1612,0,1614,0,1616,0,1618,0,1620,0,1622,0,1624,0,1626,0,1628,0,1630,0,1632,0,1634,0,1636,0,1638,0,1641,0,1644,0,1647,0,1650,0,1653,0,1656,0,1659,0,1662,0,1665,0,1668,0,1671,0,1674,0,1677,0,1680,0,1683,0,1686,0,1689,0,1692,0,1695,0,1698,0,1701,0,1704,0,1707,0,1710,0,1713,0,1716,0,1719,0,1722,0,1725,0,1728,0,1731,0,1734,0,1737,0,1740,0,1743,0,1746,0,1749,0,1752,0,1755,0,1758,0,1761,0,1764,0,1767,0,1770,0,1773,0,1776,0,1779,0,1782,0,1785,0,1788,0,1791,0,1794,0,1797,0,1800,0,1803,0,1806,0,1809,0,1812,0,1815,0,1818,0,1821,0,1824,0,1827,0,1830,0,1833,0,1836,0,1839,0,1842,0,1845,0,1848,0,1851,0,1854,0,1857,0,1860,0,1863,0,1866,0,1869,0,1872,0,1875,0,1878,0,1881,0,1884,0,1887,0,1890,0,1893,0,1896,0,1899,0,1902,0,1905,0,1908,0,1911,0,1914,0,1917,0,1920,0,1923,0,1926,0,1929,0,1932,0,1935,0,1938,0,1941,0,1944,0,1947,0,1950,0,1953,0,1956,0,1959,0,1962,0,1965,0,1968,0,1971,0,1974,0,1977,0,1980,0,1983,0,1986,0,1989,0,1992,0,1995,0,1998,0,2001,0,2004,0,2007,0,2010,0,2013,0,2016,0,2019,0,2022,0,2025,0,2028,0,2031,0,2034,0,2037,0,2040,0,2043,0,2046,0,2049,0,2052,0,2055,0,2058,0,2061,0,2064,0,2067,0,2070,0,2073,0,2076,0,2079,0,2082,0,2085,0,2088,0,2091,0,2094,0,2097,0,2100,0,2103,0,0,0,0,0,0,0,0,0,2106,0,2109,0,2112,0,2115,0,2118,0,2121,0,2124,0,2127,0,2130,0,2133,0,2136,0,2139,0,2142,0,2145,0,2148,0,2151,0,2154,0,2157,0,2160,0,2163,0,2166,0,2169,0,2172,0,2175,0,2178,0,2181,0,2184,0,2187,0,2190,0,2193,0,2196,0,2199,0,2202,0,2205,0,2208,0,2211,0,2214,0,2217,0,2220,0,2223,0,2226,0,2229,0,2232,0,2235,0,2238,0,2241,0,2244,0,2247,0,2250,0,2253,0,2256,0,2259,0,2262,0,2265,0,2268,0,2271,0,2274,0,2277,0,2280,0,2283,0,2286,0,2289,0,2292,0,2295,0,2298,0,2301,0,2304,0,2307,0,2310,0,2313,0,2316,0,2319,0,2322,0,2325,0,2328,0,2331,0,2334,0,2337,0,2340,0,2343,0,2346,0,2349,0,2352,0,2355,0,2358,0,2361,0,2364,0,2367,0,2370,0,2373,0,0,0,0,0,0,0,0,0,0,0,0,0,2376,0,2379,0,2382,0,2385,0,2388,0,2391,0,2394,0,2397,0,2400,0,2403,0,2406,0,2409,0,2412,0,2415,0,2418,0,2421,0,2424,0,2427,0,2430,0,2433,0,2436,0,2439,0,0,0,0,0,2442,0,2445,0,2448,0,2451,0,2454,0,2457,0,0,0,0,0,2460,0,2463,0,2466,0,2469,0,2472,0,2475,0,2478,0,2481,0,2484,0,2487,0,2490,0,2493,0,2496,0,2499,0,2502,0,2505,0,2508,0,2511,0,2514,0,2517,0,2520,0,2523,0,2526,0,2529,0,2532,0,2535,0,2538,0,2541,0,2544,0,2547,0,2550,0,2553,0,2556,0,2559,0,2562,0,2565,0,2568,0,2571,0,0,0,0,0,2574,0,2577,0,2580,0,2583,0,2586,0,2589,0,0,0,0,0,2592,0,2595,0,2598,0,2601,0,2604,0,2607,0,2610,0,2613,0,0,0,2616,0,0,0,2619,0,0,0,2622,0,0,0,2625,0,2628,0,2631,0,2634,0,2637,0,2640,0,2643,0,2646,0,2649,0,2652,0,2655,0,2658,0,2661,0,2664,0,2667,0,2670,0,2673,0,2676,0,2679,0,2681,0,2684,0,2686,0,2689,0,2691,0,2694,0,2696,0,2699,0,2701,0,2704,0,2706,0,2709,0,0,0,0,0,2711,0,2714,0,2717,0,2720,0,2723,0,2726,0,2729,0,2732,0,2735,0,2738,0,2741,0,2744,0,2747,0,2750,0,2753,0,2756,0,2759,0,2762,0,2765,0,2768,0,2771,0,2774,0,2777,0,2780,0,2783,0,2786,0,2789,0,2792,0,2795,0,2798,0,2801,0,2804,0,2807,0,2810,0,2813,0,2816,0,2819,0,2822,0,2825,0,2828,0,2831,0,2834,0,2837,0,2840,0,2843,0,2846,0,2849,0,2852,0,2855,0,2858,0,2861,0,2864,0,2867,0,0,0,2870,0,2873,0,2876,0,2879,0,2882,0,2885,0,2887,0,2890,0,2893,0,2895,0,2898,0,2901,0,2904,0,2907,0,2910,0,0,0,2913,0,2916,0,2919,0,2922,0,2924,0,2927,0,2929,0,2932,0,2935,0,2938,0,2941,0,2944,0,2947,0,2950,0,0,0,0,0,2952,0,2955,0,2958,0,2961,0,2964,0,2967,0,0,0,2969,0,2972,0,2975,0,2978,0,2981,0,2984,0,2987,0,2989,0,2992,0,2995,0,2998,0,3001,0,3004,0,3007,0,3010,0,3012,0,3015,0,3018,0,3020,0,0,0,0,0,3022,0,3025,0,3028,0,0,0,3031,0,3034,0,3037,0,3040,0,3042,0,3045,0,3047,0,3050,0,3052,0,0,0,3055,0,3057,0,3059,0,3061,0,3063,0,3065,0,3067,0,3069,0,3071,0,3073,0,3075,0,0,0,0,0,0,0,0,0,0,0,0,0,3077,0,0,0,0,0,0,0,0,0,0,0,3079,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3082,0,3084,0,3087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3091,0,0,0,0,0,0,0,3093,0,3096,0,0,0,3100,0,3103,0,0,0,0,0,0,0,0,0,3107,0,0,0,3110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3113,0,3116,0,3119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3127,0,3129,0,3131,0,0,0,0,0,3133,0,3135,0,3137,0,3139,0,3141,0,3143,0,3145,0,3147,0,3149,0,3151,0,3153,0,3155,0,3157,0,3159,0,3161,0,3163,0,3165,0,3167,0,3169,0,3171,0,3173,0,3175,0,3177,0,3179,0,3181,0,3183,0,3185,0,0,0,3187,0,3189,0,3191,0,3193,0,3195,0,3197,0,3199,0,3201,0,3203,0,3205,0,3207,0,3209,0,3211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3213,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3216,0,3220,0,3224,0,3226,0,0,0,3229,0,3233,0,3237,0,0,0,3239,0,3242,0,3244,0,3246,0,3248,0,3250,0,3252,0,3254,0,3256,0,3258,0,3260,0,0,0,3262,0,3264,0,0,0,0,0,3267,0,3269,0,3271,0,3273,0,3275,0,0,0,0,0,3277,0,3280,0,3284,0,0,0,3287,0,0,0,3289,0,0,0,3291,0,0,0,3293,0,3295,0,3297,0,3299,0,0,0,3301,0,3303,0,3305,0,0,0,3307,0,3309,0,3311,0,3313,0,3315,0,3317,0,3319,0,0,0,3321,0,3325,0,3327,0,3329,0,3331,0,3333,0,0,0,0,0,0,0,0,0,3335,0,3337,0,3339,0,3341,0,3343,0,0,0,0,0,0,0,0,0,0,0,0,0,3345,0,3349,0,3353,0,3358,0,3362,0,3366,0,3370,0,3374,0,3378,0,3382,0,3386,0,3390,0,3394,0,3398,0,3402,0,3406,0,3409,0,3411,0,3414,0,3418,0,3421,0,3423,0,3426,0,3430,0,3435,0,3438,0,3440,0,3443,0,3447,0,3449,0,3451,0,3453,0,3455,0,3457,0,3460,0,3464,0,3467,0,3469,0,3472,0,3476,0,3481,0,3484,0,3486,0,3489,0,3493,0,3495,0,3497,0,3499,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3501,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3505,0,3508,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3511,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3514,0,3517,0,3520,0,0,0,0,0,0,0,0,0,3523,0,0,0,0,0,0,0,0,0,3526,0,0,0,0,0,3529,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3532,0,0,0,3535,0,0,0,0,0,0,0,0,0,0,0,3538,0,3541,0,0,0,3545,0,3548,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3552,0,0,0,0,0,3555,0,0,0,0,0,3558,0,0,0,3561,0,0,0,0,0,0,0,0,0,0,0,0,0,3564,0,0,0,3567,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3570,0,3573,0,3576,0,3579,0,3582,0,0,0,0,0,3585,0,3588,0,0,0,0,0,3591,0,3594,0,0,0,0,0,0,0,0,0,0,0,0,0,3597,0,3600,0,0,0,0,0,3603,0,3606,0,0,0,0,0,3609,0,3612,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3615,0,3618,0,3621,0,3624,0,3627,0,3630,0,3633,0,3636,0,0,0,0,0,0,0,0,0,0,0,0,0,3639,0,3642,0,3645,0,3648,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3651,0,3653,0,0,0,0,0,0,0,0,0,0,0,3655,0,3657,0,3659,0,3661,0,3663,0,3665,0,3667,0,3669,0,3671,0,3673,0,3676,0,3679,0,3682,0,3685,0,3688,0,3691,0,3694,0,3697,0,3700,0,3703,0,3706,0,3710,0,3714,0,3718,0,3722,0,3726,0,3730,0,3734,0,3738,0,3742,0,3747,0,3752,0,3757,0,3762,0,3767,0,3772,0,3777,0,3782,0,3787,0,3792,0,3797,0,3800,0,3803,0,3806,0,3809,0,3812,0,3815,0,3818,0,3821,0,3824,0,3828,0,3832,0,3836,0,3840,0,3844,0,3848,0,3852,0,3856,0,3860,0,3864,0,3868,0,3872,0,3876,0,3880,0,3884,0,3888,0,3892,0,3896,0,3900,0,3904,0,3908,0,3912,0,3916,0,3920,0,3924,0,3928,0,3932,0,3936,0,3940,0,3944,0,3948,0,3952,0,3956,0,3960,0,3964,0,3968,0,3972,0,3974,0,3976,0,3978,0,3980,0,3982,0,3984,0,3986,0,3988,0,3990,0,3992,0,3994,0,3996,0,3998,0,4000,0,4002,0,4004,0,4006,0,4008,0,4010,0,4012,0,4014,0,4016,0,4018,0,4020,0,4022,0,4024,0,4026,0,4028,0,4030,0,4032,0,4034,0,4036,0,4038,0,4040,0,4042,0,4044,0,4046,0,4048,0,4050,0,4052,0,4054,0,4056,0,4058,0,4060,0,4062,0,4064,0,4066,0,4068,0,4070,0,4072,0,4074,0,4076,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4083,0,4087,0,4090,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4094,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4097,0,4099,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4103,0,0,0,0,0,0,0,4105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4107,0,4109,0,4111,0,4113,0,4115,0,4117,0,4119,0,4121,0,4123,0,4125,0,4127,0,4129,0,4131,0,4133,0,4135,0,4137,0,4139,0,4141,0,4143,0,4145,0,4147,0,4149,0,4151,0,4153,0,4155,0,4157,0,4159,0,4161,0,4163,0,4165,0,4167,0,4169,0,4171,0,4173,0,4175,0,4177,0,4179,0,4181,0,4183,0,4185,0,4187,0,4189,0,4191,0,4193,0,4195,0,4197,0,4199,0,4201,0,4203,0,4205,0,4207,0,4209,0,4211,0,4213,0,4215,0,4217,0,4219,0,4221,0,4223,0,4225,0,4227,0,4229,0,4231,0,4233,0,4235,0,4237,0,4239,0,4241,0,4243,0,4245,0,4247,0,4249,0,4251,0,4253,0,4255,0,4257,0,4259,0,4261,0,4263,0,4265,0,4267,0,4269,0,4271,0,4273,0,4275,0,4277,0,4279,0,4281,0,4283,0,4285,0,4287,0,4289,0,4291,0,4293,0,4295,0,4297,0,4299,0,4301,0,4303,0,4305,0,4307,0,4309,0,4311,0,4313,0,4315,0,4317,0,4319,0,4321,0,4323,0,4325,0,4327,0,4329,0,4331,0,4333,0,4335,0,4337,0,4339,0,4341,0,4343,0,4345,0,4347,0,4349,0,4351,0,4353,0,4355,0,4357,0,4359,0,4361,0,4363,0,4365,0,4367,0,4369,0,4371,0,4373,0,4375,0,4377,0,4379,0,4381,0,4383,0,4385,0,4387,0,4389,0,4391,0,4393,0,4395,0,4397,0,4399,0,4401,0,4403,0,4405,0,4407,0,4409,0,4411,0,4413,0,4415,0,4417,0,4419,0,4421,0,4423,0,4425,0,4427,0,4429,0,4431,0,4433,0,4435,0,4437,0,4439,0,4441,0,4443,0,4445,0,4447,0,4449,0,4451,0,4453,0,4455,0,4457,0,4459,0,4461,0,4463,0,4465,0,4467,0,4469,0,4471,0,4473,0,4475,0,4477,0,4479,0,4481,0,4483,0,4485,0,4487,0,4489,0,4491,0,4493,0,4495,0,4497,0,4499,0,4501,0,4503,0,4505,0,4507,0,4509,0,4511,0,4513,0,4515,0,4517,0,4519,0,4521,0,4523,0,4525,0,4527,0,4529,0,4531,0,4533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4537,0,0,0,4539,0,4541,0,4543,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4545,0,0,0,4548,0,0,0,4551,0,0,0,4554,0,0,0,4557,0,0,0,4560,0,0,0,4563,0,0,0,4566,0,0,0,4569,0,0,0,4572,0,0,0,4575,0,0,0,4578,0,0,0,0,0,4581,0,0,0,4584,0,0,0,4587,0,0,0,0,0,0,0,0,0,0,0,0,0,4590,0,4593,0,0,0,4596,0,4599,0,0,0,4602,0,4605,0,0,0,4608,0,4611,0,0,0,4614,0,4617,0,0,0,0,0,0,0,0,0,0,0,0,0,4620,0,0,0,0,0,0,0,0,0,0,0,0,0,4623,0,4626,0,0,0,4629,0,4632,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4635,0,0,0,4638,0,0,0,4641,0,0,0,4644,0,0,0,4647,0,0,0,4650,0,0,0,4653,0,0,0,4656,0,0,0,4659,0,0,0,4662,0,0,0,4665,0,0,0,4668,0,0,0,0,0,4671,0,0,0,4674,0,0,0,4677,0,0,0,0,0,0,0,0,0,0,0,0,0,4680,0,4683,0,0,0,4686,0,4689,0,0,0,4692,0,4695,0,0,0,4698,0,4701,0,0,0,4704,0,4707,0,0,0,0,0,0,0,0,0,0,0,0,0,4710,0,0,0,0,0,4713,0,4716,0,4719,0,4722,0,0,0,0,0,0,0,4725,0,4728,0,0,0,4731,0,4733,0,4735,0,4737,0,4739,0,4741,0,4743,0,4745,0,4747,0,4749,0,4751,0,4753,0,4755,0,4757,0,4759,0,4761,0,4763,0,4765,0,4767,0,4769,0,4771,0,4773,0,4775,0,4777,0,4779,0,4781,0,4783,0,4785,0,4787,0,4789,0,4791,0,4793,0,4795,0,4797,0,4799,0,4801,0,4803,0,4805,0,4807,0,4809,0,4811,0,4813,0,4815,0,4817,0,4819,0,4821,0,4823,0,4825,0,4827,0,4829,0,4831,0,4833,0,4835,0,4837,0,4839,0,4841,0,4843,0,4845,0,4847,0,4849,0,4851,0,4853,0,4855,0,4857,0,4859,0,4861,0,4863,0,4865,0,4867,0,4869,0,4871,0,4873,0,4875,0,4877,0,4879,0,4881,0,4883,0,4885,0,4887,0,4889,0,4891,0,4893,0,4895,0,4897,0,4899,0,4901,0,4903,0,4905,0,4907,0,4909,0,4911,0,4913,0,4915,0,4917,0,0,0,0,0,0,0,4919,0,4921,0,4923,0,4925,0,4927,0,4929,0,4931,0,4933,0,4935,0,4937,0,4939,0,4941,0,4943,0,4945,0,4947,0,4951,0,4955,0,4959,0,4963,0,4967,0,4971,0,4975,0,4979,0,4983,0,4987,0,4991,0,4995,0,4999,0,5003,0,5008,0,5013,0,5018,0,5023,0,5028,0,5033,0,5038,0,5043,0,5048,0,5053,0,5058,0,5063,0,5068,0,5073,0,5078,0,5086,0,0,0,5093,0,5097,0,5101,0,5105,0,5109,0,5113,0,5117,0,5121,0,5125,0,5129,0,5133,0,5137,0,5141,0,5145,0,5149,0,5153,0,5157,0,5161,0,5165,0,5169,0,5173,0,5177,0,5181,0,5185,0,5189,0,5193,0,5197,0,5201,0,5205,0,5209,0,5213,0,5217,0,5221,0,5225,0,5229,0,5233,0,5237,0,5239,0,5241,0,5243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5245,0,5249,0,5252,0,5255,0,5258,0,5261,0,5264,0,5267,0,5270,0,5273,0,5276,0,5279,0,5282,0,5285,0,5288,0,5291,0,5294,0,5296,0,5298,0,5300,0,5302,0,5304,0,5306,0,5308,0,5310,0,5312,0,5314,0,5316,0,5318,0,5320,0,5322,0,5325,0,5328,0,5331,0,5334,0,5337,0,5340,0,5343,0,5346,0,5349,0,5352,0,5355,0,5358,0,5361,0,5364,0,5370,0,5375,0,0,0,5378,0,5380,0,5382,0,5384,0,5386,0,5388,0,5390,0,5392,0,5394,0,5396,0,5398,0,5400,0,5402,0,5404,0,5406,0,5408,0,5410,0,5412,0,5414,0,5416,0,5418,0,5420,0,5422,0,5424,0,5426,0,5428,0,5430,0,5432,0,5434,0,5436,0,5438,0,5440,0,5442,0,5444,0,5446,0,5448,0,5450,0,5452,0,5454,0,5456,0,5458,0,5460,0,5462,0,5464,0,5466,0,5468,0,5470,0,5472,0,5474,0,5476,0,5479,0,5482,0,5485,0,5488,0,5491,0,5494,0,5497,0,5500,0,5503,0,5506,0,5509,0,5512,0,5515,0,5518,0,5521,0,5524,0,5527,0,5530,0,5533,0,5536,0,5539,0,5542,0,5545,0,5548,0,5552,0,5556,0,5560,0,5563,0,5567,0,5570,0,5574,0,5576,0,5578,0,5580,0,5582,0,5584,0,5586,0,5588,0,5590,0,5592,0,5594,0,5596,0,5598,0,5600,0,5602,0,5604,0,5606,0,5608,0,5610,0,5612,0,5614,0,5616,0,5618,0,5620,0,5622,0,5624,0,5626,0,5628,0,5630,0,5632,0,5634,0,5636,0,5638,0,5640,0,5642,0,5644,0,5646,0,5648,0,5650,0,5652,0,5654,0,5656,0,5658,0,5660,0,5662,0,5664,0,5666,0,0,0,5668,0,5673,0,5678,0,5683,0,5687,0,5692,0,5696,0,5700,0,5706,0,5711,0,5715,0,5719,0,5723,0,5728,0,5733,0,5737,0,5741,0,5744,0,5748,0,5753,0,5758,0,5761,0,5767,0,5774,0,5780,0,5784,0,5790,0,5796,0,5801,0,5805,0,5809,0,5813,0,5818,0,5824,0,5829,0,5833,0,5837,0,5841,0,5844,0,5847,0,5850,0,5853,0,5857,0,5861,0,5867,0,5871,0,5876,0,5882,0,5886,0,5889,0,5892,0,5898,0,5903,0,5909,0,5913,0,5919,0,5922,0,5926,0,5930,0,5934,0,5938,0,5942,0,5947,0,5951,0,5954,0,5958,0,5962,0,5966,0,5971,0,5975,0,5979,0,5983,0,5989,0,5994,0,5997,0,6003,0,6006,0,6011,0,6016,0,6020,0,6024,0,6028,0,6033,0,6036,0,6040,0,6045,0,6048,0,6054,0,6058,0,6061,0,6064,0,6067,0,6070,0,6073,0,6076,0,6079,0,6082,0,6085,0,6088,0,6092,0,6096,0,6100,0,6104,0,6108,0,6112,0,6116,0,6120,0,6124,0,6128,0,6132,0,6136,0,6140,0,6144,0,6148,0,6152,0,6155,0,6158,0,6162,0,6165,0,6168,0,6171,0,6175,0,6179,0,6182,0,6185,0,6188,0,6191,0,6194,0,6199,0,6202,0,6205,0,6208,0,6211,0,6214,0,6217,0,6220,0,6223,0,6227,0,6232,0,6235,0,6238,0,6241,0,6244,0,6247,0,6250,0,6253,0,6257,0,6261,0,6265,0,6269,0,6272,0,6275,0,6278,0,6281,0,6284,0,6287,0,6290,0,6293,0,6296,0,6299,0,6303,0,6307,0,6310,0,6314,0,6318,0,6322,0,6325,0,6329,0,6333,0,6338,0,6341,0,6345,0,6349,0,6353,0,6357,0,6363,0,6370,0,6373,0,6376,0,6379,0,6382,0,6385,0,6388,0,6391,0,6394,0,6397,0,6400,0,6403,0,6406,0,6409,0,6412,0,6415,0,6418,0,6421,0,6424,0,6429,0,6432,0,6435,0,6438,0,6443,0,6447,0,6450,0,6453,0,6456,0,6459,0,6462,0,6465,0,6468,0,6471,0,6474,0,6477,0,6481,0,6484,0,6487,0,6491,0,6495,0,6498,0,6503,0,6507,0,6510,0,6513,0,6516,0,6519,0,6523,0,6527,0,6530,0,6533,0,6536,0,6539,0,6542,0,6545,0,6548,0,6551,0,6554,0,6558,0,6562,0,6566,0,6570,0,6574,0,6578,0,6582,0,6586,0,6590,0,6594,0,6598,0,6602,0,6606,0,6610,0,6614,0,6618,0,6622,0,6626,0,6630,0,6634,0,6638,0,6642,0,6646,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6648,0,6650,0,0,0,0,0,0,0,0,0,0,0,0,0,6652,0,6654,0,6656,0,6658,0,6660,0,6662,0,6664,0,6666,0,6668,0,6670,0,6672,0,6674,0,6676,0,6678,0,6680,0,6682,0,6684,0,6686,0,6688,0,6690,0,6692,0,6694,0,6696,0,6698,0,6700,0,6702,0,6704,0,6706,0,6708,0,6710,0,6712,0,6714,0,6716,0,6718,0,6720,0,6722,0,6724,0,6726,0,6728,0,6730,0,6732,0,6734,0,6736,0,6738,0,6740,0,6742,0,6744,0,6746,0,6748,0,6750,0,6752,0,6754,0,6756,0,6758,0,6760,0,6762,0,6764,0,6766,0,6768,0,6770,0,6772,0,6774,0,6776,0,6778,0,6780,0,6782,0,6784,0,6786,0,6788,0,6790,0,6792,0,6794,0,6796,0,6798,0,6800,0,6802,0,6804,0,6806,0,6808,0,6810,0,6812,0,6814,0,6816,0,6818,0,6820,0,6822,0,6824,0,6826,0,6828,0,6830,0,6832,0,6834,0,6836,0,6838,0,6840,0,6842,0,6844,0,6846,0,6848,0,6850,0,6852,0,6854,0,6856,0,6858,0,6860,0,6862,0,6864,0,6866,0,6868,0,6870,0,6872,0,6874,0,6876,0,6878,0,6880,0,6882,0,6884,0,6886,0,6888,0,6890,0,6892,0,6894,0,6896,0,6898,0,6900,0,6902,0,6904,0,6906,0,6908,0,6910,0,6912,0,6914,0,6916,0,6918,0,6920,0,6922,0,6924,0,6926,0,6928,0,6930,0,6932,0,6934,0,6936,0,6938,0,6940,0,6942,0,6944,0,6946,0,6948,0,6950,0,6952,0,6954,0,6956,0,6958,0,6960,0,6962,0,6964,0,6966,0,6968,0,6970,0,6972,0,6974,0,6976,0,6978,0,6980,0,6982,0,6984,0,6986,0,6988,0,6990,0,6992,0,6994,0,6996,0,6998,0,7000,0,7002,0,7004,0,7006,0,7008,0,7010,0,7012,0,7014,0,7016,0,7018,0,7020,0,7022,0,7024,0,7026,0,7028,0,7030,0,7032,0,7034,0,7036,0,7038,0,7040,0,7042,0,7044,0,7046,0,7048,0,7050,0,7052,0,7054,0,7056,0,7058,0,7060,0,7062,0,7064,0,7066,0,7068,0,7070,0,7072,0,7074,0,7076,0,7078,0,7080,0,7082,0,7084,0,7086,0,7088,0,7090,0,7092,0,7094,0,7096,0,7098,0,7100,0,7102,0,7104,0,7106,0,7108,0,7110,0,7112,0,7114,0,7116,0,7118,0,7120,0,7122,0,7124,0,7126,0,7128,0,7130,0,7132,0,7134,0,7136,0,7138,0,7140,0,7142,0,7144,0,7146,0,7148,0,7150,0,7152,0,7154,0,7156,0,7158,0,7160,0,7162,0,7164,0,7166,0,7168,0,7170,0,7172,0,7174,0,7176,0,7178,0,7180,0,7182,0,7184,0,7186,0,7188,0,7190,0,0,0,0,0,7192,0,0,0,7194,0,0,0,0,0,7196,0,7198,0,7200,0,7202,0,7204,0,7206,0,7208,0,7210,0,7212,0,7214,0,0,0,7216,0,0,0,7218,0,0,0,0,0,7220,0,7222,0,0,0,0,0,0,0,7224,0,7226,0,7228,0,7230,0,7232,0,7234,0,7236,0,7238,0,7240,0,7242,0,7244,0,7246,0,7248,0,7250,0,7252,0,7254,0,7256,0,7258,0,7260,0,7262,0,7264,0,7266,0,7268,0,7270,0,7272,0,7274,0,7276,0,7278,0,7280,0,7282,0,7284,0,7286,0,7288,0,7290,0,7292,0,7294,0,7296,0,7298,0,7300,0,7302,0,7304,0,7306,0,7308,0,7310,0,7312,0,7314,0,7316,0,7318,0,7320,0,7322,0,7324,0,7326,0,7328,0,7330,0,7332,0,7334,0,7336,0,7338,0,7340,0,7342,0,7344,0,7346,0,7348,0,7350,0,7352,0,7354,0,7356,0,7359,0,0,0,0,0,7361,0,7363,0,7365,0,7367,0,7369,0,7371,0,7373,0,7375,0,7377,0,7379,0,7381,0,7383,0,7385,0,7387,0,7389,0,7391,0,7393,0,7395,0,7397,0,7399,0,7401,0,7403,0,7405,0,7407,0,7409,0,7411,0,7413,0,7415,0,7417,0,7419,0,7421,0,7423,0,7425,0,7427,0,7429,0,7431,0,7433,0,7435,0,7437,0,7439,0,7441,0,7443,0,7445,0,7447,0,7449,0,7451,0,7453,0,7455,0,7457,0,7459,0,7461,0,7463,0,7465,0,7467,0,7469,0,7471,0,7473,0,7475,0,7477,0,7479,0,7481,0,7483,0,7485,0,7487,0,7489,0,7491,0,7493,0,7495,0,7497,0,7499,0,7501,0,7503,0,7505,0,7507,0,7509,0,7511,0,7513,0,7515,0,7517,0,7519,0,7521,0,7523,0,7525,0,7527,0,7529,0,7531,0,7533,0,7535,0,7537,0,7539,0,7541,0,7543,0,7545,0,7547,0,7549,0,7551,0,7554,0,7557,0,7560,0,7562,0,7564,0,7566,0,7569,0,7572,0,7575,0,7577,0,0,0,0,0,0,0,0,0,0,0,0,0,7579,0,7582,0,7585,0,7588,0,7592,0,7596,0,7599,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7602,0,7605,0,7608,0,7611,0,7614,0,0,0,0,0,0,0,0,0,0,0,7617,0,0,0,7620,0,7623,0,7625,0,7627,0,7629,0,7631,0,7633,0,7635,0,7637,0,7639,0,7641,0,7643,0,7646,0,7649,0,7652,0,7655,0,7658,0,7661,0,7664,0,7667,0,7670,0,7673,0,7676,0,7679,0,0,0,7682,0,7685,0,7688,0,7691,0,7694,0,0,0,7697,0,0,0,7700,0,7703,0,0,0,7706,0,7709,0,0,0,7712,0,7715,0,7718,0,7721,0,7724,0,7727,0,7730,0,7733,0,7736,0,7739,0,7742,0,7744,0,7746,0,7748,0,7750,0,7752,0,7754,0,7756,0,7758,0,7760,0,7762,0,7764,0,7766,0,7768,0,7770,0,7772,0,7774,0,7776,0,7778,0,7780,0,7782,0,7784,0,7786,0,7788,0,7790,0,7792,0,7794,0,7796,0,7798,0,7800,0,7802,0,7804,0,7806,0,7808,0,7810,0,7812,0,7814,0,7816,0,7818,0,7820,0,7822,0,7824,0,7826,0,7828,0,7830,0,7832,0,7834,0,7836,0,7838,0,7840,0,7842,0,7844,0,7846,0,7848,0,7850,0,7852,0,7854,0,7856,0,7858,0,7860,0,7862,0,7864,0,7866,0,7868,0,7870,0,7872,0,7874,0,7876,0,7878,0,7880,0,7882,0,7884,0,7886,0,7888,0,7890,0,7892,0,7894,0,7896,0,7898,0,7900,0,7902,0,7904,0,7906,0,7908,0,7910,0,7912,0,7914,0,7916,0,7918,0,7920,0,7922,0,7924,0,7926,0,7928,0,7930,0,7932,0,7934,0,7936,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7938,0,7940,0,7942,0,7944,0,7946,0,7948,0,7950,0,7952,0,7954,0,7956,0,7958,0,7960,0,7962,0,7964,0,7966,0,7968,0,7970,0,7972,0,7974,0,7976,0,7978,0,7980,0,7982,0,7984,0,7987,0,7990,0,7993,0,7996,0,7999,0,8002,0,8005,0,8008,0,8011,0,8014,0,8017,0,8020,0,8023,0,8026,0,8029,0,8032,0,8035,0,8038,0,8040,0,8042,0,8044,0,8046,0,8049,0,8052,0,8055,0,8058,0,8061,0,8064,0,8067,0,8070,0,8073,0,8076,0,8079,0,8082,0,8085,0,8088,0,8091,0,8094,0,8097,0,8100,0,8103,0,8106,0,8109,0,8112,0,8115,0,8118,0,8121,0,8124,0,8127,0,8130,0,8133,0,8136,0,8139,0,8142,0,8145,0,8148,0,8151,0,8154,0,8157,0,8160,0,8163,0,8166,0,8169,0,8172,0,8175,0,8178,0,8181,0,8184,0,8187,0,8190,0,8193,0,8196,0,8199,0,8202,0,8205,0,8208,0,8211,0,8214,0,8217,0,8220,0,8223,0,8226,0,8229,0,8232,0,8235,0,8238,0,8241,0,8244,0,8247,0,8250,0,8253,0,8256,0,8259,0,8262,0,8265,0,8268,0,8271,0,8274,0,8277,0,8280,0,8283,0,8286,0,8289,0,8292,0,8295,0,8298,0,8301,0,8304,0,8307,0,8310,0,8313,0,8316,0,8319,0,8322,0,8325,0,8328,0,8332,0,8336,0,8340,0,8344,0,8348,0,8352,0,8355,0,8358,0,8361,0,8364,0,8367,0,8370,0,8373,0,8376,0,8379,0,8382,0,8385,0,8388,0,8391,0,8394,0,8397,0,8400,0,8403,0,8406,0,8409,0,8412,0,8415,0,8418,0,8421,0,8424,0,8427,0,8430,0,8433,0,8436,0,8439,0,8442,0,8445,0,8448,0,8451,0,8454,0,8457,0,8460,0,8463,0,8466,0,8469,0,8472,0,8475,0,8478,0,8481,0,8484,0,8487,0,8490,0,8493,0,8496,0,8499,0,8502,0,8505,0,8508,0,8511,0,8514,0,8517,0,8520,0,8523,0,8526,0,8529,0,8532,0,8535,0,8538,0,8541,0,8544,0,8547,0,8550,0,8553,0,8556,0,8559,0,8562,0,8565,0,8568,0,8571,0,8574,0,8577,0,8580,0,8583,0,8586,0,8589,0,8592,0,8595,0,8598,0,8601,0,8604,0,8607,0,8610,0,8613,0,8616,0,8619,0,8622,0,8625,0,8628,0,8631,0,8634,0,8637,0,8640,0,8643,0,8646,0,8649,0,8652,0,8655,0,8658,0,8661,0,8664,0,8667,0,8670,0,8673,0,8676,0,8679,0,8682,0,8685,0,8688,0,8691,0,8694,0,8697,0,8700,0,8703,0,8706,0,8709,0,8712,0,8715,0,8718,0,8721,0,8724,0,8727,0,8730,0,8733,0,8736,0,8739,0,8742,0,8745,0,8748,0,8751,0,8754,0,8757,0,8760,0,8763,0,8766,0,8769,0,8772,0,8775,0,8778,0,8782,0,8786,0,8790,0,8793,0,8796,0,8799,0,8802,0,8805,0,8808,0,8811,0,8814,0,8817,0,8820,0,8823,0,8826,0,8829,0,8832,0,8835,0,8838,0,8841,0,8844,0,8847,0,8850,0,8853,0,8856,0,8859,0,8862,0,8865,0,8868,0,8871,0,8874,0,8877,0,8880,0,8883,0,8886,0,8889,0,8892,0,8895,0,8898,0,8901,0,8904,0,8907,0,8910,0,8913,0,8916,0,8919,0,8922,0,8925,0,8928,0,8931,0,8934,0,8937,0,8940,0,8943,0,8946,0,8949,0,8952,0,8955,0,8958,0,8961,0,8964,0,8967,0,8970,0,8973,0,8976,0,8979,0,8982,0,8985,0,8988,0,8991,0,8994,0,8997,0,9000,0,9003,0,9006,0,0,0,0,0,9009,0,9013,0,9017,0,9021,0,9025,0,9029,0,9033,0,9037,0,9041,0,9045,0,9049,0,9053,0,9057,0,9061,0,9065,0,9069,0,9073,0,9077,0,9081,0,9085,0,9089,0,9093,0,9097,0,9101,0,9105,0,9109,0,9113,0,9117,0,9121,0,9125,0,9129,0,9133,0,9137,0,9141,0,9145,0,9149,0,9153,0,9157,0,9161,0,9165,0,9169,0,9173,0,9177,0,9181,0,9185,0,9189,0,9193,0,9197,0,9201,0,9205,0,9209,0,9213,0,9217,0,9221,0,9225,0,9229,0,9233,0,9237,0,9241,0,9245,0,9249,0,9253,0,9257,0,9261,0,0,0,0,0,9265,0,9269,0,9273,0,9277,0,9281,0,9285,0,9289,0,9293,0,9297,0,9301,0,9305,0,9309,0,9313,0,9317,0,9321,0,9325,0,9329,0,9333,0,9337,0,9341,0,9345,0,9349,0,9353,0,9357,0,9361,0,9365,0,9369,0,9373,0,9377,0,9381,0,9385,0,9389,0,9393,0,9397,0,9401,0,9405,0,9409,0,9413,0,9417,0,9421,0,9425,0,9429,0,9433,0,9437,0,9441,0,9445,0,9449,0,9453,0,9457,0,9461,0,9465,0,9469,0,9473,0,9477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9481,0,9485,0,9489,0,9494,0,9499,0,9504,0,9509,0,9514,0,9519,0,9524,0,9528,0,9547,0,9556,0,0,0,0,0,0,0,9561,0,9563,0,9565,0,9567,0,9569,0,9571,0,9573,0,9575,0,9577,0,9579,0,0,0,0,0,0,0,0,0,0,0,0,0,9581,0,9583,0,9585,0,9587,0,9589,0,9591,0,9593,0,9595,0,9597,0,9599,0,9601,0,9603,0,9605,0,9607,0,9609,0,9611,0,9613,0,9615,0,9617,0,9619,0,9621,0,0,0,0,0,9623,0,9625,0,9627,0,9629,0,9631,0,9633,0,9635,0,9637,0,9639,0,9641,0,9643,0,9645,0,0,0,9647,0,9649,0,9651,0,9653,0,9655,0,9657,0,9659,0,9661,0,9663,0,9665,0,9667,0,9669,0,9671,0,9673,0,9675,0,9677,0,9679,0,9681,0,9683,0,0,0,9685,0,9687,0,9689,0,9691,0,0,0,0,0,0,0,0,0,9693,0,9696,0,9699,0,0,0,9702,0,0,0,9705,0,9708,0,9711,0,9714,0,9717,0,9720,0,9723,0,9726,0,9729,0,9732,0].concat([9735,0,9737,0,9739,0,9741,0,9743,0,9745,0,9747,0,9749,0,9751,0,9753,0,9755,0,9757,0,9759,0,9761,0,9763,0,9765,0,9767,0,9769,0,9771,0,9773,0,9775,0,9777,0,9779,0,9781,0,9783,0,9785,0,9787,0,9789,0,9791,0,9793,0,9795,0,9797,0,9799,0,9801,0,9803,0,9805,0,9807,0,9809,0,9811,0,9813,0,9815,0,9817,0,9819,0,9821,0,9823,0,9825,0,9827,0,9829,0,9831,0,9833,0,9835,0,9837,0,9839,0,9841,0,9843,0,9845,0,9847,0,9849,0,9851,0,9853,0,9855,0,9857,0,9859,0,9861,0,9863,0,9865,0,9867,0,9869,0,9871,0,9873,0,9875,0,9877,0,9879,0,9881,0,9883,0,9885,0,9887,0,9889,0,9891,0,9893,0,9895,0,9897,0,9899,0,9901,0,9903,0,9905,0,9907,0,9909,0,9911,0,9913,0,9915,0,9917,0,9919,0,9921,0,9923,0,9925,0,9927,0,9929,0,9931,0,9933,0,9935,0,9937,0,9939,0,9941,0,9943,0,9945,0,9947,0,9949,0,9951,0,9953,0,9955,0,9957,0,9959,0,9961,0,9963,0,9965,0,9967,0,9969,0,9972,0,9975,0,9978,0,9981,0,9984,0,9987,0,9990,0,0,0,0,0,0,0,0,0,9993,0,9995,0,9997,0,9999,0,10001,0,10003,0,10005,0,10007,0,10009,0,10011,0,10013,0,10015,0,10017,0,10019,0,10021,0,10023,0,10025,0,10027,0,10029,0,10031,0,10033,0,10035,0,10037,0,10039,0,10041,0,10043,0,10045,0,10047,0,10049,0,10051,0,10053,0,10055,0,10057,0,10059,0,10061,0,10063,0,10065,0,10067,0,10069,0,10071,0,10073,0,10075,0,10077,0,10079,0,10081,0,10083,0,10085,0,10087,0,10089,0,10091,0,10093,0,10095,0,10097,0,10099,0,10101,0,10103,0,10105,0,10107,0,10109,0,10111,0,10113,0,10115,0,10117,0,10119,0,10121,0,10123,0,10125,0,10127,0,10129,0,10131,0,10133,0,10135,0,10137,0,10139,0,10141,0,10143,0,10145,0,10147,0,10149,0,10151,0,10153,0,10155,0,10157,0,10159,0,10161,0,10163,0,10165,0,10167,0,10169,0,10171,0,10173,0,10175,0,10177,0,10179,0,10181,0,10183,0,10185,0,10187,0,10189,0,10191,0,10193,0,10195,0,10197,0,10199,0,10201,0,10203,0,10205,0,10207,0,10209,0,10211,0,10213,0,10215,0,10217,0,10219,0,10221,0,10223,0,10225,0,10227,0,10229,0,10231,0,10233,0,10235,0,10237,0,10239,0,10241,0,10243,0,10245,0,10247,0,10249,0,10251,0,10253,0,10255,0,10257,0,10259,0,10261,0,10263,0,10265,0,10267,0,10269,0,10271,0,10273,0,10275,0,10277,0,10279,0,10281,0,10283,0,10285,0,10287,0,10289,0,10291,0,10293,0,10295,0,10297,0,10299,0,10301,0,10303,0,10305,0,10307,0,10309,0,10311,0,10313,0,10315,0,10317,0,10319,0,10321,0,10323,0,10325,0,10327,0,10329,0,10331,0,10333,0,10335,0,10337,0,10339,0,10341,0,10343,0,10345,0,10347,0,10349,0,10351,0,10353,0,10355,0,10357,0,10359,0,10361,0,10363,0,10365,0,10367,0,10369,0,10371,0,0,0,0,0,0,0,10373,0,10375,0,10377,0,10379,0,10381,0,10383,0,0,0,0,0,10385,0,10387,0,10389,0,10391,0,10393,0,10395,0,0,0,0,0,10397,0,10399,0,10401,0,10403,0,10405,0,10407,0,0,0,0,0,10409,0,10411,0,10413,0,0,0,0,0,0,0,10415,0,10417,0,10419,0,10421,0,10423,0,10425,0,10427,0,0,0,10429,0,10431,0,10433,0,10435,0,10437,0,10439,0,10441,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10443,0,0,0,10448,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10458,0,10463,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10468,0,10473,0,10478,0,10483,0,10488,0,10493,0,10498,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10503,0,10508,0,10513,0,10518,0,10523,0,10528,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10533,0,10535,0,10537,0,10539,0,10541,0,10543,0,10545,0,10547,0,10549,0,10551,0,10553,0,10555,0,10557,0,10559,0,10561,0,10563,0,10565,0,10567,0,10569,0,10571,0,10573,0,10575,0,10577,0,10579,0,10581,0,10583,0,10585,0,10587,0,10589,0,10591,0,10593,0,10595,0,10597,0,10599,0,10601,0,10603,0,10605,0,10607,0,10609,0,10611,0,10613,0,10615,0,10617,0,10619,0,10621,0,10623,0,10625,0,10627,0,10629,0,10631,0,10633,0,10635,0,10637,0,10639,0,10641,0,10643,0,10645,0,10647,0,10649,0,10651,0,10653,0,10655,0,10657,0,10659,0,10661,0,10663,0,10665,0,10667,0,10669,0,10671,0,10673,0,10675,0,10677,0,10679,0,10681,0,10683,0,10685,0,10687,0,10689,0,10691,0,10693,0,10695,0,10697,0,10699,0,10701,0,0,0,10703,0,10705,0,10707,0,10709,0,10711,0,10713,0,10715,0,10717,0,10719,0,10721,0,10723,0,10725,0,10727,0,10729,0,10731,0,10733,0,10735,0,10737,0,10739,0,10741,0,10743,0,10745,0,10747,0,10749,0,10751,0,10753,0,10755,0,10757,0,10759,0,10761,0,10763,0,10765,0,10767,0,10769,0,10771,0,10773,0,10775,0,10777,0,10779,0,10781,0,10783,0,10785,0,10787,0,10789,0,10791,0,10793,0,10795,0,10797,0,10799,0,10801,0,10803,0,10805,0,10807,0,10809,0,10811,0,10813,0,10815,0,10817,0,10819,0,10821,0,10823,0,10825,0,10827,0,10829,0,10831,0,10833,0,10835,0,10837,0,10839,0,10841,0,10843,0,0,0,10845,0,10847,0,0,0,0,0,10849,0,0,0,0,0,10851,0,10853,0,0,0,0,0,10855,0,10857,0,10859,0,10861,0,0,0,10863,0,10865,0,10867,0,10869,0,10871,0,10873,0,10875,0,10877,0,10879,0,10881,0,10883,0,10885,0,0,0,10887,0,0,0,10889,0,10891,0,10893,0,10895,0,10897,0,10899,0,10901,0,0,0,10903,0,10905,0,10907,0,10909,0,10911,0,10913,0,10915,0,10917,0,10919,0,10921,0,10923,0,10925,0,10927,0,10929,0,10931,0,10933,0,10935,0,10937,0,10939,0,10941,0,10943,0,10945,0,10947,0,10949,0,10951,0,10953,0,10955,0,10957,0,10959,0,10961,0,10963,0,10965,0,10967,0,10969,0,10971,0,10973,0,10975,0,10977,0,10979,0,10981,0,10983,0,10985,0,10987,0,10989,0,10991,0,10993,0,10995,0,10997,0,10999,0,11001,0,11003,0,11005,0,11007,0,11009,0,11011,0,11013,0,11015,0,11017,0,11019,0,11021,0,11023,0,11025,0,11027,0,11029,0,11031,0,0,0,11033,0,11035,0,11037,0,11039,0,0,0,0,0,11041,0,11043,0,11045,0,11047,0,11049,0,11051,0,11053,0,11055,0,0,0,11057,0,11059,0,11061,0,11063,0,11065,0,11067,0,11069,0,0,0,11071,0,11073,0,11075,0,11077,0,11079,0,11081,0,11083,0,11085,0,11087,0,11089,0,11091,0,11093,0,11095,0,11097,0,11099,0,11101,0,11103,0,11105,0,11107,0,11109,0,11111,0,11113,0,11115,0,11117,0,11119,0,11121,0,11123,0,11125,0,0,0,11127,0,11129,0,11131,0,11133,0,0,0,11135,0,11137,0,11139,0,11141,0,11143,0,0,0,11145,0,0,0,0,0,0,0,11147,0,11149,0,11151,0,11153,0,11155,0,11157,0,11159,0,0,0,11161,0,11163,0,11165,0,11167,0,11169,0,11171,0,11173,0,11175,0,11177,0,11179,0,11181,0,11183,0,11185,0,11187,0,11189,0,11191,0,11193,0,11195,0,11197,0,11199,0,11201,0,11203,0,11205,0,11207,0,11209,0,11211,0,11213,0,11215,0,11217,0,11219,0,11221,0,11223,0,11225,0,11227,0,11229,0,11231,0,11233,0,11235,0,11237,0,11239,0,11241,0,11243,0,11245,0,11247,0,11249,0,11251,0,11253,0,11255,0,11257,0,11259,0,11261,0,11263,0,11265,0,11267,0,11269,0,11271,0,11273,0,11275,0,11277,0,11279,0,11281,0,11283,0,11285,0,11287,0,11289,0,11291,0,11293,0,11295,0,11297,0,11299,0,11301,0,11303,0,11305,0,11307,0,11309,0,11311,0,11313,0,11315,0,11317,0,11319,0,11321,0,11323,0,11325,0,11327,0,11329,0,11331,0,11333,0,11335,0,11337,0,11339,0,11341,0,11343,0,11345,0,11347,0,11349,0,11351,0,11353,0,11355,0,11357,0,11359,0,11361,0,11363,0,11365,0,11367,0,11369,0,11371,0,11373,0,11375,0,11377,0,11379,0,11381,0,11383,0,11385,0,11387,0,11389,0,11391,0,11393,0,11395,0,11397,0,11399,0,11401,0,11403,0,11405,0,11407,0,11409,0,11411,0,11413,0,11415,0,11417,0,11419,0,11421,0,11423,0,11425,0,11427,0,11429,0,11431,0,11433,0,11435,0,11437,0,11439,0,11441,0,11443,0,11445,0,11447,0,11449,0,11451,0,11453,0,11455,0,11457,0,11459,0,11461,0,11463,0,11465,0,11467,0,11469,0,11471,0,11473,0,11475,0,11477,0,11479,0,11481,0,11483,0,11485,0,11487,0,11489,0,11491,0,11493,0,11495,0,11497,0,11499,0,11501,0,11503,0,11505,0,11507,0,11509,0,11511,0,11513,0,11515,0,11517,0,11519,0,11521,0,11523,0,11525,0,11527,0,11529,0,11531,0,11533,0,11535,0,11537,0,11539,0,11541,0,11543,0,11545,0,11547,0,11549,0,11551,0,11553,0,11555,0,11557,0,11559,0,11561,0,11563,0,11565,0,11567,0,11569,0,11571,0,11573,0,11575,0,11577,0,11579,0,11581,0,11583,0,11585,0,11587,0,11589,0,11591,0,11593,0,11595,0,11597,0,11599,0,11601,0,11603,0,11605,0,11607,0,11609,0,11611,0,11613,0,11615,0,11617,0,11619,0,11621,0,11623,0,11625,0,11627,0,11629,0,11631,0,11633,0,11635,0,11637,0,11639,0,11641,0,11643,0,11645,0,11647,0,11649,0,11651,0,11653,0,11655,0,11657,0,11659,0,11661,0,11663,0,11665,0,11667,0,11669,0,11671,0,11673,0,11675,0,11677,0,11679,0,11681,0,11683,0,11685,0,11687,0,11689,0,11691,0,11693,0,11695,0,11697,0,11699,0,11701,0,11703,0,11705,0,11707,0,11709,0,11711,0,11713,0,11715,0,11717,0,11719,0,11721,0,11723,0,11725,0,11727,0,11729,0,11731,0,11733,0,11735,0,11737,0,11739,0,11741,0,11743,0,11745,0,11747,0,11749,0,11751,0,11753,0,11755,0,11757,0,11759,0,11761,0,11763,0,11765,0,11767,0,11769,0,11771,0,11773,0,11775,0,11777,0,11779,0,11781,0,11783,0,11785,0,11787,0,11789,0,11791,0,11793,0,11795,0,11797,0,11799,0,11801,0,11803,0,11805,0,11807,0,11809,0,11811,0,11813,0,11815,0,11817,0,11819,0,11821,0,11823,0,11825,0,11827,0,11829,0,11831,0,11833,0,11835,0,11837,0,11839,0,0,0,0,0,11841,0,11843,0,11845,0,11847,0,11849,0,11851,0,11853,0,11855,0,11857,0,11859,0,11861,0,11863,0,11865,0,11867,0,11869,0,11871,0,11873,0,11875,0,11877,0,11879,0,11881,0,11883,0,11885,0,11887,0,11889,0,11891,0,11893,0,11895,0,11897,0,11899,0,11901,0,11903,0,11905,0,11907,0,11909,0,11911,0,11913,0,11915,0,11917,0,11919,0,11921,0,11923,0,11925,0,11927,0,11929,0,11931,0,11933,0,11935,0,11937,0,11939,0,11941,0,11943,0,11945,0,11947,0,11949,0,11951,0,11953,0,11955,0,11957,0,11959,0,11961,0,11963,0,11965,0,11967,0,11969,0,11971,0,11973,0,11975,0,11977,0,11979,0,11981,0,11983,0,11985,0,11987,0,11989,0,11991,0,11993,0,11995,0,11997,0,11999,0,12001,0,12003,0,12005,0,12007,0,12009,0,12011,0,12013,0,12015,0,12017,0,12019,0,12021,0,12023,0,12025,0,12027,0,12029,0,12031,0,12033,0,12035,0,12037,0,12039,0,12041,0,12043,0,12045,0,12047,0,12049,0,12051,0,12053,0,12055,0,12057,0,12059,0,12061,0,12063,0,12065,0,12067,0,12069,0,12071,0,12073,0,12075,0,12077,0,12079,0,12081,0,12083,0,12085,0,12087,0,12089,0,12091,0,12093,0,12095,0,12097,0,12099,0,12101,0,12103,0,12105,0,12107,0,12109,0,12111,0,12113,0,12115,0,12117,0,12119,0,12121,0,12123,0,12125,0,12127,0,12129,0,12131,0,12133,0,12135,0,12137,0,12139,0,12141,0,12143,0,12145,0,12147,0,12149,0,12151,0,12153,0,12155,0,12157,0,12159,0,12161,0,12163,0,12165,0,12167,0,12169,0,12171,0,12173,0,12175,0,12177,0,12179,0,12181,0,12183,0,12185,0,12187,0,12189,0,12191,0,12193,0,12195,0,12197,0,12199,0,12201,0,12203,0,12205,0,12207,0,12209,0,12211,0,12213,0,12215,0,12217,0,12219,0,12221,0,12223,0,12225,0,12227,0,12229,0,12231,0,12233,0,12235,0,12237,0,12239,0,12241,0,12243,0,12245,0,12247,0,12249,0,12251,0,12253,0,12255,0,12257,0,12259,0,12261,0,12263,0,12265,0,12267,0,12269,0,12271,0,12273,0,12275,0,12277,0,12279,0,12281,0,12283,0,12285,0,12287,0,12289,0,12291,0,12293,0,12295,0,12297,0,12299,0,12301,0,12303,0,12305,0,12307,0,12309,0,12311,0,12313,0,12315,0,12317,0,12319,0,12321,0,12323,0,12325,0,12327,0,12329,0,12331,0,12333,0,12335,0,12337,0,12339,0,12341,0,12343,0,12345,0,12347,0,12349,0,12351,0,12353,0,12355,0,12357,0,12359,0,12361,0,12363,0,12365,0,12367,0,12369,0,12371,0,12373,0,12375,0,12377,0,12379,0,12381,0,12383,0,12385,0,12387,0,12389,0,12391,0,12393,0,12395,0,12397,0,12399,0,12401,0,12403,0,12405,0,12407,0,12409,0,12411,0,12413,0,12415,0,12417,0,12419,0,12421,0,12423,0,0,0,0,0,12425,0,12427,0,12429,0,12431,0,12433,0,12435,0,12437,0,12439,0,12441,0,12443,0,12445,0,12447,0,12449,0,12451,0,12453,0,12455,0,12457,0,12459,0,12461,0,12463,0,12465,0,12467,0,12469,0,12471,0,12473,0,12475,0,12477,0,12479,0,12481,0,12483,0,12485,0,12487,0,12489,0,12491,0,12493,0,12495,0,12497,0,12499,0,12501,0,12503,0,12505,0,12507,0,12509,0,12511,0,12513,0,12515,0,12517,0,12519,0,12521,0,12523,0,12525,0,12527,0,12529,0,12531,0,0,0,12533,0,12535,0,12537,0,12539,0,12541,0,12543,0,12545,0,12547,0,12549,0,12551,0,12553,0,12555,0,12557,0,12559,0,12561,0,12563,0,12565,0,12567,0,12569,0,12571,0,12573,0,12575,0,12577,0,12579,0,12581,0,12583,0,12585,0,0,0,12587,0,12589,0,0,0,12591,0,0,0,0,0,12593,0,0,0,12595,0,12597,0,12599,0,12601,0,12603,0,12605,0,12607,0,12609,0,12611,0,12613,0,0,0,12615,0,12617,0,12619,0,12621,0,0,0,12623,0,0,0,12625,0,0,0,0,0,0,0,0,0,0,0,0,0,12627,0,0,0,0,0,0,0,0,0,12629,0,0,0,12631,0,0,0,12633,0,0,0,12635,0,12637,0,12639,0,0,0,12641,0,12643,0,0,0,12645,0,0,0,0,0,12647,0,0,0,12649,0,0,0,12651,0,0,0,12653,0,0,0,12655,0,0,0,12657,0,12659,0,0,0,12661,0,0,0,0,0,12663,0,12665,0,12667,0,12669,0,0,0,12671,0,12673,0,12675,0,12677,0,12679,0,12681,0,12683,0,0,0,12685,0,12687,0,12689,0,12691,0,0,0,12693,0,12695,0,12697,0,12699,0,0,0,12701,0,0,0,12703,0,12705,0,12707,0,12709,0,12711,0,12713,0,12715,0,12717,0,12719,0,12721,0,0,0,12723,0,12725,0,12727,0,12729,0,12731,0,12733,0,12735,0,12737,0,12739,0,12741,0,12743,0,12745,0,12747,0,12749,0,12751,0,12753,0,12755,0,0,0,0,0,0,0,0,0,0,0,12757,0,12759,0,12761,0,0,0,12763,0,12765,0,12767,0,12769,0,12771,0,0,0,12773,0,12775,0,12777,0,12779,0,12781,0,12783,0,12785,0,12787,0,12789,0,12791,0,12793,0,12795,0,12797,0,12799,0,12801,0,12803,0,12805,0,0,0,0,0,0,0,0,0,12807,0,12810,0,12813,0,12816,0,12819,0,12822,0,12825,0,12828,0,12831,0,12834,0,12837,0,0,0,0,0,0,0,0,0,0,0,12840,0,12844,0,12848,0,12852,0,12856,0,12860,0,12864,0,12868,0,12872,0,12876,0,12880,0,12884,0,12888,0,12892,0,12896,0,12900,0,12904,0,12908,0,12912,0,12916,0,12920,0,12924,0,12928,0,12932,0,12936,0,12940,0,12944,0,12948,0,12950,0,12952,0,12955,0,0,0,12958,0,12960,0,12962,0,12964,0,12966,0,12968,0,12970,0,12972,0,12974,0,12976,0,12978,0,12980,0,12982,0,12984,0,12986,0,12988,0,12990,0,12992,0,12994,0,12996,0,12998,0,13000,0,13002,0,13004,0,13006,0,13008,0,13010,0,13013,0,13016,0,13019,0,13022,0,13026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13029,0,13032,0,0,0,0,0,0,0,0,0,13035,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13038,0,13041,0,13044,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13046,0,13048,0,13050,0,13052,0,13054,0,13056,0,13058,0,13060,0,13062,0,13064,0,13066,0,13068,0,13070,0,13072,0,13074,0,13076,0,13078,0,13080,0,13082,0,13084,0,13086,0,13088,0,13090,0,13092,0,13094,0,13096,0,13098,0,13100,0,13102,0,13104,0,13106,0,13108,0,13110,0,13112,0,13114,0,13116,0,13118,0,13120,0,13122,0,13124,0,13126,0,13128,0,13130,0,0,0,0,0,0,0,0,0,0,0,13132,0,13136,0,13140,0,13144,0,13148,0,13152,0,13156,0,13160,0,13164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13168,0,13170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13172,0,13174,0,13176,0,13178,0,13181,0,13183,0,13185,0,13187,0,13189,0,13191,0,13193,0,13195,0,13197,0,13199,0,13202,0,13204,0,13206,0,13208,0,13210,0,13213,0,13215,0,13217,0,13219,0,13222,0,13224,0,13226,0,13228,0,13230,0,13232,0,13235,0,13237,0,13239,0,13241,0,13243,0,13245,0,13247,0,13249,0,13251,0,13253,0,13255,0,13257,0,13259,0,13261,0,13263,0,13265,0,13267,0,13269,0,13271,0,13273,0,13275,0,13277,0,13279,0,13281,0,13284,0,13286,0,13288,0,13290,0,13293,0,13295,0,13297,0,13299,0,13301,0,13303,0,13305,0,13307,0,13309,0,13311,0,13313,0,13315,0,13317,0,13319,0,13321,0,13323,0,13325,0,13327,0,13329,0,13331,0,13333,0,13335,0,13337,0,13339,0,13341,0,13343,0,13345,0,13347,0,13349,0,13351,0,13353,0,13355,0,13357,0,13360,0,13362,0,13364,0,13366,0,13368,0,13370,0,13372,0,13375,0,13378,0,13380,0,13382,0,13384,0,13386,0,13388,0,13390,0,13392,0,13394,0,13396,0,13398,0,13401,0,13403,0,13405,0,13407,0,13409,0,13412,0,13414,0,13416,0,13418,0,13420,0,13422,0,13424,0,13426,0,13428,0,13430,0,13433,0,13435,0,13438,0,13440,0,13442,0,13444,0,13446,0,13448,0,13450,0,13452,0,13454,0,13456,0,13458,0,13460,0,13463,0,13465,0,13467,0,13469,0,13471,0,13473,0,13476,0,13478,0,13481,0,13484,0,13486,0,13488,0,13490,0,13492,0,13495,0,13498,0,13500,0,13502,0,13504,0,13506,0,13508,0,13510,0,13512,0,13514,0,13516,0,13518,0,13520,0,13523,0,13525,0,13527,0,13529,0,13531,0,13533,0,13535,0,13537,0,13539,0,13541,0,13543,0,13545,0,13547,0,13549,0,13551,0,13553,0,13555,0,13557,0,13559,0,13561,0,13564,0,13566,0,13568,0,13570,0,13572,0,13574,0,13577,0,13579,0,13581,0,13583,0,13585,0,13587,0,13589,0,13591,0,13593,0,13595,0,13597,0,13599,0,13602,0,13604,0,13606,0,13608,0,13610,0,13612,0,13614,0,13616,0,13618,0,13620,0,13622,0,13624,0,13626,0,13628,0,13630,0,13632,0,13634,0,13636,0,13638,0,13641,0,13643,0,13645,0,13647,0,13649,0,13651,0,13654,0,13656,0,13658,0,13660,0,13662,0,13664,0,13666,0,13668,0,13670,0,13673,0,13675,0,13677,0,13679,0,13682,0,13684,0,13686,0,13688,0,13690,0,13692,0,13694,0,13697,0,13700,0,13703,0,13705,0,13708,0,13710,0,13712,0,13714,0,13716,0,13718,0,13720,0,13722,0,13724,0,13726,0,13728,0,13731,0,13733,0,13735,0,13737,0,13739,0,13741,0,13743,0,13746,0,13748,0,13750,0,13753,0,13756,0,13758,0,13760,0,13762,0,13764,0,13766,0,13768,0,13770,0,13772,0,13774,0,13777,0,13779,0,13782,0,13784,0,13787,0,13789,0,13791,0,13793,0,13796,0,13798,0,13800,0,13803,0,13806,0,13808,0,13810,0,13812,0,13814,0,13816,0,13818,0,13820,0,13822,0,13824,0,13826,0,13828,0,13830,0,13832,0,13835,0,13837,0,13840,0,13842,0,13845,0,13847,0,13850,0,13853,0,13856,0,13858,0,13860,0,13862,0,13865,0,13868,0,13871,0,13874,0,13876,0,13878,0,13880,0,13882,0,13884,0,13886,0,13888,0,13890,0,13893,0,13895,0,13897,0,13899,0,13901,0,13904,0,13906,0,13909,0,13912,0,13914,0,13916,0,13918,0,13920,0,13922,0,13924,0,13927,0,13930,0,13933,0,13935,0,13937,0,13940,0,13942,0,13944,0,13946,0,13949,0,13951,0,13953,0,13955,0,13957,0,13959,0,13962,0,13964,0,13966,0,13968,0,13970,0,13972,0,13974,0,13977,0,13980,0,13982,0,13985,0,13987,0,13990,0,13992,0,13994,0,13996,0,13999,0,14002,0,14004,0,14007,0,14009,0,14012,0,14014,0,14016,0,14018,0,14020,0,14022,0,14024,0,14027,0,14030,0,14033,0,14036,0,14038,0,14040,0,14042,0,14044,0,14046,0,14048,0,14050,0,14052,0,14054,0,14056,0,14058,0,14060,0,14063,0,14065,0,14067,0,14069,0,14071,0,14073,0,14075,0,14077,0,14079,0,14081,0,14083,0,14085,0,14087,0,14090,0,14093,0,14096,0,14098,0,14100,0,14102,0,14104,0,14107,0,14109,0,14112,0,14114,0,14116,0,14119,0,14122,0,14124,0,14126,0,14128,0,14130,0,14132,0,14134,0,14136,0,14138,0,14140,0,14142,0,14144,0,14146,0,14148,0,14150,0,14152,0,14154,0,14156,0,14158,0,14160,0,14163,0,14165,0,14167,0,14169,0,14171,0,14173,0,14176,0,14179,0,14181,0,14183,0,14185,0,14187,0,14189,0,14191,0,14194,0,14196,0,14198,0,14200,0,14202,0,14205,0,14208,0,14210,0,14212,0,14214,0,14217,0,14219,0,14221,0,14224,0,14227,0,14229,0,14231,0,14233,0,14236,0,14238,0,14240,0,14242,0,14244,0,14246,0,14248,0,14250,0,14253,0,14255,0,14257,0,14259,0,14262,0,14264,0,14266,0,14268,0,14270,0,14273,0,14276,0,14278,0,14280,0,14282,0,14285,0,14287,0,14290,0,14292,0,14294,0,14296,0,14299,0,14301,0,14303,0,14305,0,14307,0,14309,0,14311,0,14313,0,14316,0,14318,0,14320,0,14322,0,14324,0,14326,0,14328,0,14331,0,14333,0,14336,0,14339,0,14342,0,14344,0,14346,0,14348,0,14350,0,14352,0,14354,0,14356,0,14358,0,0,0,0,0])
  3299. , ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0].concat(["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3300. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3301. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3302. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3303. , ALLOC_NONE, 39032);
  3304. allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,0,0,0,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,26,0,27,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,29,0,30,0,31,0,32,0,33,0,34,0,35,0,0,0,36,0,37,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,0,0,0,0,0,0,42,0,43,0,44,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,49,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0,52,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,55,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,0,59,0,0,0,0,0,0,0,60,0,0,0,0,0,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,0,0,0,68,0,0,0,0,0,69,0,0,0,0,0,0,0,70,0,71,0,72,0,73,0,74,0,75,0,76,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,81,0,0,0,82,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,85,0,86,0,87,0,88,0,89,0,0,0,90,0,91,0,92,0,0,0,0,0,0,0,0,0,93,0,94,0,95,0,96,0,97,0,98,0,99,0,100,0,101,0,102,0,103,0,104,0,105,0,106,0,107,0,108,0,109,0,110,0,111,0,112,0,113,0,114,0,115,0,116,0,117,0,118,0,119,0,120,0,121,0,122,0,123,0,124,0,125,0,126,0,127,0,128,0,129,0,130,0,0,0,131,0,132,0,133,0,134,0,0,0,0,0,0,0,0,0,0,0,135,0,136,0,137,0,138,0,139,0,140,0,141,0,142,0,143,0,144,0,145,0,0,0,146,0,0,0,0,0,0,0,147,0,0,0,148,0,149,0,150,0,0,0,151,0,152,0,153,0,0,0,154,0,0,0,0,0,0,0,155,0,0,0,0,0,0,0,156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,158,0,159,0,160,0,161,0,162,0,163,0,164,0,165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,166,0,0,0,0,0,0,0,0,0,0,0,0,0,167,0,0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,0,0,0,0,172,0,173,0,174,0,175,0,176,0,177,0,178,0,179,0,180,0,181,0,182,0,183,0,184,0,185,0,186,0,0,0,0,0,187,0,0,0,0,0,188,0,189,0,190,0,191,0,192,0,0,0,193,0,194,0,195,0,196,0,197,0,0,0,198,0,0,0,0,0,0,0,199,0,200,0,201,0,202,0,203,0,204,0,205,0,0,0,0,0,0,0,0,0,0,0,0,0,206,0,207,0,208,0,209,0,210,0,211,0,212,0,213,0,214,0,215,0,216,0,217,0,218,0,219,0,220,0,221,0,222,0,223,0,224,0,225,0,226,0,227,0,228,0,229,0,230,0,231,0,232,0,233,0,234,0,235,0,236,0,237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,238,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,241,0,242,0,243,0,244,0,245,0,246,0,247,0,248,0,249,0,250,0,251,0,252,0,253,0,254,0,255,0,256,0,257,0,258,0,259,0,260,0,261,0,262,0,263,0,264,0,265,0,266,0,267,0,268,0,269,0,0,0,0,0,270,0,271,0,272,0,273,0,274,0,275,0,276,0,277,0,278,0,279,0,280,0,281,0,0,0,282,0,283,0,284,0,285,0,286,0,287,0,288,0,289,0,290,0,291,0,292,0,293,0,294,0,295,0,296,0,297,0,298,0,299,0,300,0,301,0,302,0,303,0,304,0,0,0,305,0,306,0,307,0,308,0,309,0,310,0,311,0,312,0,0,0,0,0,313,0,0,0,314,0,0,0,315,0,316,0,317,0,318,0,319,0,320,0,321,0,322,0,323,0,324,0,325,0,326,0,327,0,328,0,329,0,330,0,331,0,332,0,333,0,334,0,335,0,336,0,337,0,338,0,339,0,340,0,341,0,342,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,343,0,344,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,345,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,346,0,347,0,0,0,0,0,0,0,0,0,348,0,349,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,351,0,352,0,353,0,354,0,355,0,356,0,357,0,358,0,359,0,360,0,361,0,362,0,363,0,364,0,365,0,366,0,367,0,368,0,369,0,370,0,371,0,372,0,373,0,374,0,375,0,376,0,377,0,378,0,379,0,380,0,381,0,382,0,383,0,384,0,385,0,386,0,387,0,388,0,389,0,390,0,391,0,392,0,393,0,394,0,395,0,396,0,397,0,398,0,399,0,400,0,401,0,402,0,403,0,404,0,405,0,406,0,407,0,408,0,409,0,410,0,411,0,412,0,413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,415,0,416,0,417,0,418,0,419,0,420,0,421,0,422,0,423,0,424,0,425,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,426,0,427,0,428,0,429,0,430,0,0,0,431,0,0,0,0,0,432,0,0,0,0,0,0,0,0,0,0,0,0,0,433,0,434,0,435,0,436,0,437,0,438,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,440,0,441,0,442,0,443,0,444,0,445,0,446,0,447,0,448,0,449,0,450,0,451,0,452,0,453,0,454,0,455,0,456,0,457,0,458,0,459,0,460,0,461,0,462,0,463,0,464,0,465,0,466,0,467,0,468,0,469,0,470,0,471,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 54168);
  3305. allocate([0,1,2,3,4,5,6,7,8,9,10,11,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,13,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,15,5,5,5,5,16,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,17,18,5,5,5,5,5,19,20,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5], "i8", ALLOC_NONE, 56984);
  3306. allocate([0,0,257,0,32,0,514,0,32,0,776,0,259,0,97,0,514,0,32,0,772,0,259,0,50,0,259,0,51,0,514,0,32,0,769,0,258,0,956,0,514,0,32,0,807,0,259,0,49,0,259,0,111,0,772,0,49,0,8260,0,52,0,772,0,49,0,8260,0,50,0,772,0,51,0,8260,0,52,0,512,0,65,0,768,0,512,0,65,0,769,0,512,0,65,0,770,0,512,0,65,0,771,0,512,0,65,0,776,0,512,0,65,0,778,0,512,0,67,0,807,0,512,0,69,0,768,0,512,0,69,0,769,0,512,0,69,0,770,0,512,0,69,0,776,0,512,0,73,0,768,0,512,0,73,0,769,0,512,0,73,0,770,0,512,0,73,0,776,0,512,0,78,0,771,0,512,0,79,0,768,0,512,0,79,0,769,0,512,0,79,0,770,0,512,0,79,0,771,0,512,0,79,0,776,0,512,0,85,0,768,0,512,0,85,0,769,0,512,0,85,0,770,0,512,0,85,0,776,0,512,0,89,0,769,0,512,0,97,0,768,0,512,0,97,0,769,0,512,0,97,0,770,0,512,0,97,0,771,0,512,0,97,0,776,0,512,0,97,0,778,0,512,0,99,0,807,0,512,0,101,0,768,0,512,0,101,0,769,0,512,0,101,0,770,0,512,0,101,0,776,0,512,0,105,0,768,0,512,0,105,0,769,0,512,0,105,0,770,0,512,0,105,0,776,0,512,0,110,0,771,0,512,0,111,0,768,0,512,0,111,0,769,0,512,0,111,0,770,0,512,0,111,0,771,0,512,0,111,0,776,0,512,0,117,0,768,0,512,0,117,0,769,0,512,0,117,0,770,0,512,0,117,0,776,0,512,0,121,0,769,0,512,0,121,0,776,0,512,0,65,0,772,0,512,0,97,0,772,0,512,0,65,0,774,0,512,0,97,0,774,0,512,0,65,0,808,0,512,0,97,0,808,0,512,0,67,0,769,0,512,0,99,0,769,0,512,0,67,0,770,0,512,0,99,0,770,0,512,0,67,0,775,0,512,0,99,0,775,0,512,0,67,0,780,0,512,0,99,0,780,0,512,0,68,0,780,0,512,0,100,0,780,0,512,0,69,0,772,0,512,0,101,0,772,0,512,0,69,0,774,0,512,0,101,0,774,0,512,0,69,0,775,0,512,0,101,0,775,0,512,0,69,0,808,0,512,0,101,0,808,0,512,0,69,0,780,0,512,0,101,0,780,0,512,0,71,0,770,0,512,0,103,0,770,0,512,0,71,0,774,0,512,0,103,0,774,0,512,0,71,0,775,0,512,0,103,0,775,0,512,0,71,0,807,0,512,0,103,0,807,0,512,0,72,0,770,0,512,0,104,0,770,0,512,0,73,0,771,0,512,0,105,0,771,0,512,0,73,0,772,0,512,0,105,0,772,0,512,0,73,0,774,0,512,0,105,0,774,0,512,0,73,0,808,0,512,0,105,0,808,0,512,0,73,0,775,0,514,0,73,0,74,0,514,0,105,0,106,0,512,0,74,0,770,0,512,0,106,0,770,0,512,0,75,0,807,0,512,0,107,0,807,0,512,0,76,0,769,0,512,0,108,0,769,0,512,0,76,0,807,0,512,0,108,0,807,0,512,0,76,0,780,0,512,0,108,0,780,0,514,0,76,0,183,0,514,0,108,0,183,0,512,0,78,0,769,0,512,0,110,0,769,0,512,0,78,0,807,0,512,0,110,0,807,0,512,0,78,0,780,0,512,0,110,0,780,0,514,0,700,0,110,0,512,0,79,0,772,0,512,0,111,0,772,0,512,0,79,0,774,0,512,0,111,0,774,0,512,0,79,0,779,0,512,0,111,0,779,0,512,0,82,0,769,0,512,0,114,0,769,0,512,0,82,0,807,0,512,0,114,0,807,0,512,0,82,0,780,0,512,0,114,0,780,0,512,0,83,0,769,0,512,0,115,0,769,0,512,0,83,0,770,0,512,0,115,0,770,0,512,0,83,0,807,0,512,0,115,0,807,0,512,0,83,0,780,0,512,0,115,0,780,0,512,0,84,0,807,0,512,0,116,0,807,0,512,0,84,0,780,0,512,0,116,0,780,0,512,0,85,0,771,0,512,0,117,0,771,0,512,0,85,0,772,0,512,0,117,0,772,0,512,0,85,0,774,0,512,0,117,0,774,0,512,0,85,0,778,0,512,0,117,0,778,0,512,0,85,0,779,0,512,0,117,0,779,0,512,0,85,0,808,0,512,0,117,0,808,0,512,0,87,0,770,0,512,0,119,0,770,0,512,0,89,0,770,0,512,0,121,0,770,0,512,0,89,0,776,0,512,0,90,0,769,0,512,0,122,0,769,0,512,0,90,0,775,0,512,0,122,0,775,0,512,0,90,0,780,0,512,0,122,0,780,0,258,0,115,0,512,0,79,0,795,0,512,0,111,0,795,0,512,0,85,0,795,0,512,0,117,0,795,0,514,0,68,0,381,0,514,0,68,0,382,0,514,0,100,0,382,0,514,0,76,0,74,0,514,0,76,0,106,0,514,0,108,0,106,0,514,0,78,0,74,0,514,0,78,0,106,0,514,0,110,0,106,0,512,0,65,0,780,0,512,0,97,0,780,0,512,0,73,0,780,0,512,0,105,0,780,0,512,0,79,0,780,0,512,0,111,0,780,0,512,0,85,0,780,0,512,0,117,0,780,0,512,0,220,0,772,0,512,0,252,0,772,0,512,0,220,0,769,0,512,0,252,0,769,0,512,0,220,0,780,0,512,0,252,0,780,0,512,0,220,0,768,0,512,0,252,0,768,0,512,0,196,0,772,0,512,0,228,0,772,0,512,0,550,0,772,0,512,0,551,0,772,0,512,0,198,0,772,0,512,0,230,0,772,0,512,0,71,0,780,0,512,0,103,0,780,0,512,0,75,0,780,0,512,0,107,0,780,0,512,0,79,0,808,0,512,0,111,0,808,0,512,0,490,0,772,0,512,0,491,0,772,0,512,0,439,0,780,0,512,0,658,0,780,0,512,0,106,0,780,0,514,0,68,0,90,0,514,0,68,0,122,0,514,0,100,0,122,0,512,0,71,0,769,0,512,0,103,0,769,0,512,0,78,0,768,0,512,0,110,0,768,0,512,0,197,0,769,0,512,0,229,0,769,0,512,0,198,0,769,0,512,0,230,0,769,0,512,0,216,0,769,0,512,0,248,0,769,0,512,0,65,0,783,0,512,0,97,0,783,0,512,0,65,0,785,0,512,0,97,0,785,0,512,0,69,0,783,0,512,0,101,0,783,0,512,0,69,0,785,0,512,0,101,0,785,0,512,0,73,0,783,0,512,0,105,0,783,0,512,0,73,0,785,0,512,0,105,0,785,0,512,0,79,0,783,0,512,0,111,0,783,0,512,0,79,0,785,0,512,0,111,0,785,0,512,0,82,0,783,0,512,0,114,0,783,0,512,0,82,0,785,0,512,0,114,0,785,0,512,0,85,0,783,0,512,0,117,0,783,0,512,0,85,0,785,0,512,0,117,0,785,0,512,0,83,0,806,0,512,0,115,0,806,0,512,0,84,0,806,0,512,0,116,0,806,0,512,0,72,0,780,0,512,0,104,0,780,0,512,0,65,0,775,0,512,0,97,0,775,0,512,0,69,0,807,0,512,0,101,0,807,0,512,0,214,0,772,0,512,0,246,0,772,0,512,0,213,0,772,0,512,0,245,0,772,0,512,0,79,0,775,0,512,0,111,0,775,0,512,0,558,0,772,0,512,0,559,0,772,0,512,0,89,0,772,0,512,0,121,0,772,0,259,0,104,0,259,0,614,0,259,0,106,0,259,0,114,0,259,0,633,0,259,0,635,0,259,0,641,0,259,0,119,0,259,0,121,0,514,0,32,0,774,0,514,0,32,0,775,0,514,0,32,0,778,0,514,0,32,0,808,0,514,0,32,0,771,0,514,0,32,0,779,0,259,0,611,0,259,0,108,0,259,0,115,0,259,0,120,0,259,0,661,0,256,0,768,0,256,0,769,0,256,0,787,0,512,0,776,0,769,0,256,0,697,0,514,0,32,0,837,0,256,0,59,0,514,0,32,0,769,0,512,0,168,0,769,0,512,0,913,0,769,0,256,0,183,0,512,0,917,0,769,0,512,0,919,0,769,0,512,0,921,0,769,0,512,0,927,0,769,0,512,0,933,0,769,0,512,0,937,0,769,0,512,0,970,0,769,0,512,0,921,0,776,0,512,0,933,0,776,0,512,0,945,0,769,0,512,0,949,0,769,0,512,0,951,0,769,0,512,0,953,0,769,0,512,0,971,0,769,0,512,0,953,0,776,0,512,0,965,0,776,0,512,0,959,0,769,0,512,0,965,0,769,0,512,0,969,0,769,0,258,0,946,0,258,0,952,0,258,0,933,0,512,0,978,0,769,0,512,0,978,0,776,0,258,0,966,0,258,0,960,0,258,0,954,0,258,0,961,0,258,0,962,0,258,0,920,0,258,0,949,0,258,0,931,0,512,0,1045,0,768,0,512,0,1045,0,776,0,512,0,1043,0,769,0,512,0,1030,0,776,0,512,0,1050,0,769,0,512,0,1048,0,768,0,512,0,1059,0,774,0,512,0,1048,0,774,0,512,0,1080,0,774,0,512,0,1077,0,768,0,512,0,1077,0,776,0,512,0,1075,0,769,0,512,0,1110,0,776,0,512,0,1082,0,769,0,512,0,1080,0,768,0,512,0,1091,0,774,0,512,0,1140,0,783,0,512,0,1141,0,783,0,512,0,1046,0,774,0,512,0,1078,0,774,0,512,0,1040,0,774,0,512,0,1072,0,774,0,512,0,1040,0,776,0,512,0,1072,0,776,0,512,0,1045,0,774,0,512,0,1077,0,774,0,512,0,1240,0,776,0,512,0,1241,0,776,0,512,0,1046,0,776,0,512,0,1078,0,776,0,512,0,1047,0,776,0,512,0,1079,0,776,0,512,0,1048,0,772,0,512,0,1080,0,772,0,512,0,1048,0,776,0,512,0,1080,0,776,0,512,0,1054,0,776,0,512,0,1086,0,776,0,512,0,1256,0,776,0,512,0,1257,0,776,0,512,0,1069,0,776,0,512,0,1101,0,776,0,512,0,1059,0,772,0,512,0,1091,0,772,0,512,0,1059,0,776,0,512,0,1091,0,776,0,512,0,1059,0,779,0,512,0,1091,0,779,0,512,0,1063,0,776,0,512,0,1095,0,776,0,512,0,1067,0,776,0,512,0,1099,0,776,0,514,0,1381,0,1410,0,512,0,1575,0,1619,0,512,0,1575,0,1620,0,512,0,1608,0,1620,0,512,0,1575,0,1621,0,512,0,1610,0,1620,0,514,0,1575,0,1652,0,514,0,1608,0,1652,0,514,0,1735,0,1652,0,514,0,1610,0,1652,0,512,0,1749,0,1620,0,512,0,1729,0,1620,0,512,0,1746,0,1620,0,512,0,2344,0,2364,0,512,0,2352,0,2364,0,512,0,2355,0,2364,0,512,0,2325,0,2364,0,512,0,2326,0,2364,0,512,0,2327,0,2364,0,512,0,2332,0,2364,0,512,0,2337,0,2364,0,512,0,2338,0,2364,0,512,0,2347,0,2364,0,512,0,2351,0,2364,0,512,0,2503,0,2494,0,512,0,2503,0,2519,0,512,0,2465,0,2492,0,512,0,2466,0,2492,0,512,0,2479,0,2492,0,512,0,2610,0,2620,0,512,0,2616,0,2620,0,512,0,2582,0,2620,0,512,0,2583,0,2620,0,512,0,2588,0,2620,0,512,0,2603,0,2620,0,512,0,2887,0,2902,0,512,0,2887,0,2878,0,512,0,2887,0,2903,0,512,0,2849,0,2876,0,512,0,2850,0,2876,0,512,0,2962,0,3031,0,512,0,3014,0,3006,0,512,0,3015,0,3006,0,512,0,3014,0,3031,0,512,0,3142,0,3158,0,512,0,3263,0,3285,0,512,0,3270,0,3285,0,512,0,3270,0,3286,0,512,0,3270,0,3266,0,512,0,3274,0,3285,0,512,0,3398,0,3390,0,512,0,3399,0,3390,0,512,0,3398,0,3415,0,512,0,3545,0,3530,0,512,0,3545,0,3535,0,512,0,3548,0,3530,0,512,0,3545,0,3551,0,514,0,3661,0,3634,0,514,0,3789,0,3762,0,514,0,3755,0,3737,0,514,0,3755,0,3745,0,257,0,3851,0,512,0,3906,0,4023,0,512,0,3916,0,4023,0,512,0,3921,0,4023,0,512,0,3926,0,4023,0,512,0,3931,0,4023,0,512,0,3904,0,4021,0,512,0,3953,0,3954,0,512,0,3953,0,3956,0,512,0,4018,0,3968,0,514,0,4018,0,3969,0,512,0,4019,0,3968,0,514,0,4019,0,3969,0,512,0,3953,0,3968,0,512,0,3986,0,4023,0,512,0,3996,0,4023,0,512,0,4001,0,4023,0,512,0,4006,0,4023,0,512,0,4011,0,4023,0,512,0,3984,0,4021,0,512,0,4133,0,4142,0,259,0,4316,0,512,0,6917,0,6965,0,512,0,6919,0,6965,0,512,0,6921,0,6965,0,512,0,6923,0,6965,0,512,0,6925,0,6965,0,512,0,6929,0,6965,0,512,0,6970,0,6965,0,512,0,6972,0,6965,0,512,0,6974,0,6965,0,512,0,6975,0,6965,0,512,0,6978,0,6965,0,259,0,65,0,259,0,198,0,259,0,66,0,259,0,68,0,259,0,69,0,259,0,398,0,259,0,71,0,259,0,72,0,259,0,73,0,259,0,74,0,259,0,75,0,259,0,76,0,259,0,77,0,259,0,78,0,259,0,79,0,259,0,546,0,259,0,80,0,259,0,82,0,259,0,84,0,259,0,85,0,259,0,87,0,259,0,97,0,259,0,592,0,259,0,593,0,259,0,7426,0,259,0,98,0,259,0,100,0,259,0,101,0,259,0,601,0,259,0,603,0,259,0,604,0,259,0,103,0,259,0,107,0,259,0,109,0,259,0,331,0,259,0,111,0,259,0,596,0,259,0,7446,0,259,0,7447,0,259,0,112,0,259,0,116,0,259,0,117,0,259,0,7453,0,259,0,623,0,259,0,118,0,259,0,7461,0,259,0,946,0,259,0,947,0,259,0,948,0,259,0,966,0,259,0,967,0,261,0,105,0,261,0,114,0,261,0,117,0,261,0,118,0,261,0,946,0,261,0,947,0,261,0,961,0,261,0,966,0,261,0,967,0,259,0,1085,0,259,0,594,0,259,0,99,0,259,0,597,0,259,0,240,0,259,0,604,0,259,0,102,0,259,0,607,0,259,0,609,0,259,0,613,0,259,0,616,0,259,0,617,0,259,0,618,0,259,0,7547,0,259,0,669,0,259,0,621,0,259,0,7557,0,259,0,671,0,259,0,625,0,259,0,624,0,259,0,626,0,259,0,627,0,259,0,628,0,259,0,629,0,259,0,632,0,259,0,642,0,259,0,643,0,259,0,427,0,259,0,649,0,259,0,650,0,259,0,7452,0,259,0,651,0,259,0,652,0,259,0,122,0,259,0,656,0,259,0,657,0,259,0,658,0,259,0,952,0,512,0,65,0,805,0,512,0,97,0,805,0,512,0,66,0,775,0,512,0,98,0,775,0,512,0,66,0,803,0,512,0,98,0,803,0,512,0,66,0,817,0,512,0,98,0,817,0,512,0,199,0,769,0,512,0,231,0,769,0,512,0,68,0,775,0,512,0,100,0,775,0,512,0,68,0,803,0,512,0,100,0,803,0,512,0,68,0,817,0,512,0,100,0,817,0,512,0,68,0,807,0,512,0,100,0,807,0,512,0,68,0,813,0,512,0,100,0,813,0,512,0,274,0,768,0,512,0,275,0,768,0,512,0,274,0,769,0,512,0,275,0,769,0,512,0,69,0,813,0,512,0,101,0,813,0,512,0,69,0,816,0,512,0,101,0,816,0,512,0,552,0,774,0,512,0,553,0,774,0,512,0,70,0,775,0,512,0,102,0,775,0,512,0,71,0,772,0,512,0,103,0,772,0,512,0,72,0,775,0,512,0,104,0,775,0,512,0,72,0,803,0,512,0,104,0,803,0,512,0,72,0,776,0,512,0,104,0,776,0,512,0,72,0,807,0,512,0,104,0,807,0,512,0,72,0,814,0,512,0,104,0,814,0,512,0,73,0,816,0,512,0,105,0,816,0,512,0,207,0,769,0,512,0,239,0,769,0,512,0,75,0,769,0,512,0,107,0,769,0,512,0,75,0,803,0,512,0,107,0,803,0,512,0,75,0,817,0,512,0,107,0,817,0,512,0,76,0,803,0,512,0,108,0,803,0,512,0,7734,0,772,0,512,0,7735,0,772,0,512,0,76,0,817,0,512,0,108,0,817,0,512,0,76,0,813,0,512,0,108,0,813,0,512,0,77,0,769,0,512,0,109,0,769,0,512,0,77,0,775,0,512,0,109,0,775,0,512,0,77,0,803,0,512,0,109,0,803,0,512,0,78,0,775,0,512,0,110,0,775,0,512,0,78,0,803,0,512,0,110,0,803,0,512,0,78,0,817,0,512,0,110,0,817,0,512,0,78,0,813,0,512,0,110,0,813,0,512,0,213,0,769,0,512,0,245,0,769,0,512,0,213,0,776,0,512,0,245,0,776,0,512,0,332,0,768,0,512,0,333,0,768,0,512,0,332,0,769,0,512,0,333,0,769,0,512,0,80,0,769,0,512,0,112,0,769,0,512,0,80,0,775,0,512,0,112,0,775,0,512,0,82,0,775,0,512,0,114,0,775,0,512,0,82,0,803,0,512,0,114,0,803,0,512,0,7770,0,772,0,512,0,7771,0,772,0,512,0,82,0,817,0,512,0,114,0,817,0,512,0,83,0,775,0,512,0,115,0,775,0,512,0,83,0,803,0,512,0,115,0,803,0,512,0,346,0,775,0,512,0,347,0,775,0,512,0,352,0,775,0,512,0,353,0,775,0,512,0,7778,0,775,0,512,0,7779,0,775,0,512,0,84,0,775,0,512,0,116,0,775,0,512,0,84,0,803,0,512,0,116,0,803,0,512,0,84,0,817,0,512,0,116,0,817,0,512,0,84,0,813,0,512,0,116,0,813,0,512,0,85,0,804,0,512,0,117,0,804,0,512,0,85,0,816,0,512,0,117,0,816,0,512,0,85,0,813,0,512,0,117,0,813,0,512,0,360,0,769,0,512,0,361,0,769,0,512,0,362,0,776,0,512,0,363,0,776,0,512,0,86,0,771,0,512,0,118,0,771,0,512,0,86,0,803,0,512,0,118,0,803,0,512,0,87,0,768,0,512,0,119,0,768,0,512,0,87,0,769,0,512,0,119,0,769,0,512,0,87,0,776,0,512,0,119,0,776,0,512,0,87,0,775,0,512,0,119,0,775,0,512,0,87,0,803,0,512,0,119,0,803,0,512,0,88,0,775,0,512,0,120,0,775,0,512,0,88,0,776,0,512,0,120,0,776,0,512,0,89,0,775,0,512,0,121,0,775,0,512,0,90,0,770,0,512,0,122,0,770,0,512,0,90,0,803,0,512,0,122,0,803,0,512,0,90,0,817,0,512,0,122,0,817,0,512,0,104,0,817,0,512,0,116,0,776,0,512,0,119,0,778,0,512,0,121,0,778,0,514,0,97,0,702,0,512,0,383,0,775,0,512,0,65,0,803,0,512,0,97,0,803,0,512,0,65,0,777,0,512,0,97,0,777,0,512,0,194,0,769,0,512,0,226,0,769,0,512,0,194,0,768,0,512,0,226,0,768,0,512,0,194,0,777,0,512,0,226,0,777,0,512,0,194,0,771,0,512,0,226,0,771,0,512,0,7840,0,770,0,512,0,7841,0,770,0,512,0,258,0,769,0,512,0,259,0,769,0,512,0,258,0,768,0,512,0,259,0,768,0,512,0,258,0,777,0,512,0,259,0,777,0,512,0,258,0,771,0,512,0,259,0,771,0,512,0,7840,0,774,0,512,0,7841,0,774,0,512,0,69,0,803,0,512,0,101,0,803,0,512,0,69,0,777,0,512,0,101,0,777,0,512,0,69,0,771,0,512,0,101,0,771,0,512,0,202,0,769,0,512,0,234,0,769,0,512,0,202,0,768,0,512,0,234,0,768,0,512,0,202,0,777,0,512,0,234,0,777,0,512,0,202,0,771,0,512,0,234,0,771,0,512,0,7864,0,770,0,512,0,7865,0,770,0,512,0,73,0,777,0,512,0,105,0,777,0,512,0,73,0,803,0,512,0,105,0,803,0,512,0,79,0,803,0,512,0,111,0,803,0,512,0,79,0,777,0,512,0,111,0,777,0,512,0,212,0,769,0,512,0,244,0,769,0,512,0,212,0,768,0,512,0,244,0,768,0,512,0,212,0,777,0,512,0,244,0,777,0,512,0,212,0,771,0,512,0,244,0,771,0,512,0,7884,0,770,0,512,0,7885,0,770,0,512,0,416,0,769,0,512,0,417,0,769,0,512,0,416,0,768,0,512,0,417,0,768,0,512,0,416,0,777,0,512,0,417,0,777,0,512,0,416,0,771,0,512,0,417,0,771,0,512,0,416,0,803,0,512,0,417,0,803,0,512,0,85,0,803,0,512,0,117,0,803,0,512,0,85,0,777,0,512,0,117,0,777,0,512,0,431,0,769,0,512,0,432,0,769,0,512,0,431,0,768,0,512,0,432,0,768,0,512,0,431,0,777,0,512,0,432,0,777,0,512,0,431,0,771,0,512,0,432,0,771,0,512,0,431,0,803,0,512,0,432,0,803,0,512,0,89,0,768,0,512,0,121,0,768,0,512,0,89,0,803,0,512,0,121,0,803,0,512,0,89,0,777,0,512,0,121,0,777,0,512,0,89,0,771,0,512,0,121,0,771,0,512,0,945,0,787,0,512,0,945,0,788,0,512,0,7936,0,768,0,512,0,7937,0,768,0,512,0,7936,0,769,0,512,0,7937,0,769,0,512,0,7936,0,834,0,512,0,7937,0,834,0,512,0,913,0,787,0,512,0,913,0,788,0,512,0,7944,0,768,0,512,0,7945,0,768,0,512,0,7944,0,769,0,512,0,7945,0,769,0,512,0,7944,0,834,0,512,0,7945,0,834,0,512,0,949,0,787,0,512,0,949,0,788,0,512,0,7952,0,768,0,512,0,7953,0,768,0,512,0,7952,0,769,0,512,0,7953,0,769,0,512,0,917,0,787,0,512,0,917,0,788,0,512,0,7960,0,768,0,512,0,7961,0,768,0,512,0,7960,0,769,0,512,0,7961,0,769,0,512,0,951,0,787,0,512,0,951,0,788,0,512,0,7968,0,768,0,512,0,7969,0,768,0,512,0,7968,0,769,0,512,0,7969,0,769,0,512,0,7968,0,834,0,512,0,7969,0,834,0,512,0,919,0,787,0,512,0,919,0,788,0,512,0,7976,0,768,0,512,0,7977,0,768,0,512,0,7976,0,769,0,512,0,7977,0,769,0,512,0,7976,0,834,0,512,0,7977,0,834,0,512,0,953,0,787,0,512,0,953,0,788,0,512,0,7984,0,768,0,512,0,7985,0,768,0,512,0,7984,0,769,0,512,0,7985,0,769,0,512,0,7984,0,834,0,512,0,7985,0,834,0,512,0,921,0,787,0,512,0,921,0,788,0,512,0,7992,0,768,0,512,0,7993,0,768,0,512,0,7992,0,769,0,512,0,7993,0,769,0,512,0,7992,0,834,0,512,0,7993,0,834,0,512,0,959,0,787,0,512,0,959,0,788,0,512,0,8000,0,768,0,512,0,8001,0,768,0,512,0,8000,0,769,0,512,0,8001,0,769,0,512,0,927,0,787,0,512,0,927,0,788,0,512,0,8008,0,768,0,512,0,8009,0,768,0,512,0,8008,0,769,0,512,0,8009,0,769,0,512,0,965,0,787,0,512,0,965,0,788,0,512,0,8016,0,768,0,512,0,8017,0,768,0,512,0,8016,0,769,0,512,0,8017,0,769,0,512,0,8016,0,834,0,512,0,8017,0,834,0,512,0,933,0,788,0,512,0,8025,0,768,0,512,0,8025,0,769,0,512,0,8025,0,834,0,512,0,969,0,787,0,512,0,969,0,788,0,512,0,8032,0,768,0,512,0,8033,0,768,0,512,0,8032,0,769,0,512,0,8033,0,769,0,512,0,8032,0,834,0,512,0,8033,0,834,0,512,0,937,0,787,0,512,0,937,0,788,0,512,0,8040,0,768,0,512,0,8041,0,768,0,512,0,8040,0,769,0,512,0,8041,0,769,0,512,0,8040,0,834,0,512,0,8041,0,834,0,512,0,945,0,768,0,256,0,940,0,512,0,949,0,768,0,256,0,941,0,512,0,951,0,768,0,256,0,942,0,512,0,953,0,768,0,256,0,943,0,512,0,959,0,768,0,256,0,972,0,512,0,965,0,768,0,256,0,973,0,512,0,969,0,768,0,256,0,974,0,512,0,7936,0,837,0,512,0,7937,0,837,0,512,0,7938,0,837,0,512,0,7939,0,837,0,512,0,7940,0,837,0,512,0,7941,0,837,0,512,0,7942,0,837,0,512,0,7943,0,837,0,512,0,7944,0,837,0,512,0,7945,0,837,0,512,0,7946,0,837,0,512,0,7947,0,837,0,512,0,7948,0,837,0,512,0,7949,0,837,0,512,0,7950,0,837,0,512,0,7951,0,837,0,512,0,7968,0,837,0,512,0,7969,0,837,0,512,0,7970,0,837,0,512,0,7971,0,837,0,512,0,7972,0,837,0,512,0,7973,0,837,0,512,0,7974,0,837,0,512,0,7975,0,837,0,512,0,7976,0,837,0,512,0,7977,0,837,0,512,0,7978,0,837,0,512,0,7979,0,837,0,512,0,7980,0,837,0,512,0,7981,0,837,0,512,0,7982,0,837,0,512,0,7983,0,837,0,512,0,8032,0,837,0,512,0,8033,0,837,0,512,0,8034,0,837,0,512,0,8035,0,837,0,512,0,8036,0,837,0,512,0,8037,0,837,0,512,0,8038,0,837,0,512,0,8039,0,837,0,512,0,8040,0,837,0,512,0,8041,0,837,0,512,0,8042,0,837,0,512,0,8043,0,837,0,512,0,8044,0,837,0,512,0,8045,0,837,0,512,0,8046,0,837,0,512,0,8047,0,837,0,512,0,945,0,774,0,512,0,945,0,772,0,512,0,8048,0,837,0,512,0,945,0,837,0,512,0,940,0,837,0,512,0,945,0,834,0,512,0,8118,0,837,0,512,0,913,0,774,0,512,0,913,0,772,0,512,0,913,0,768,0,256,0,902,0,512,0,913,0,837,0,514,0,32,0,787,0,256,0,953,0,514,0,32,0,787,0,514,0,32,0,834,0,512,0,168,0,834,0,512,0,8052,0,837,0,512,0,951,0,837,0,512,0,942,0,837,0,512,0,951,0,834,0,512,0,8134,0,837,0,512,0,917,0,768,0,256,0,904,0,512,0,919,0,768,0,256,0,905,0,512,0,919,0,837,0,512,0,8127,0,768,0,512,0,8127,0,769,0,512,0,8127,0,834,0,512,0,953,0,774,0,512,0,953,0,772,0,512,0,970,0,768,0,256,0,912,0,512,0,953,0,834,0,512,0,970,0,834,0,512,0,921,0,774,0,512,0,921,0,772,0,512,0,921,0,768,0,256,0,906,0,512,0,8190,0,768,0,512,0,8190,0,769,0,512,0,8190,0,834,0,512,0,965,0,774,0,512,0,965,0,772,0,512,0,971,0,768,0,256,0,944,0,512,0,961,0,787,0,512,0,961,0,788,0,512,0,965,0,834,0,512,0,971,0,834,0,512,0,933,0,774,0,512,0,933,0,772,0,512,0,933,0,768,0,256,0,910,0,512,0,929,0,788,0,512,0,168,0,768,0,256,0,901,0,256,0,96,0,512,0,8060,0,837,0,512,0,969,0,837,0,512,0,974,0,837,0,512,0,969,0,834,0,512,0,8182,0,837,0,512,0,927,0,768,0,256,0,908,0,512,0,937,0,768,0,256,0,911,0,512,0,937,0,837,0,256,0,180,0,514,0,32,0,788,0,256,0,8194,0,256,0,8195,0,258,0,32,0,258,0,32,0,258,0,32,0,258,0,32,0,258,0,32,0,257,0,32,0,258,0,32,0,258,0,32,0,258,0,32,0,257,0,8208,0,514,0,32,0,819,0,258,0,46,0,514,0,46,0,46,0,770,0,46,0,46,0,46,0,257,0,32,0,514,0,8242,0,8242,0,770,0,8242,0,8242,0,8242,0,514,0,8245,0,8245,0,770,0,8245,0,8245,0,8245,0,514,0,33,0,33,0,514,0,32,0,773,0,514,0,63,0,63,0,514,0,63,0,33,0,514,0,33,0,63,0,1026,0,8242,0,8242,0,8242,0,8242,0,258,0,32,0,259,0,48,0,259,0,105,0,259,0,52,0,259,0,53,0,259,0,54,0,259,0,55,0,259,0,56,0,259,0,57,0,259,0,43,0,259,0,8722,0,259,0,61,0,259,0,40,0,259,0,41,0,259,0,110,0,261,0,48,0,261,0,49,0,261,0,50,0,261,0,51,0,261,0,52,0,261,0,53,0,261,0,54,0,261,0,55,0,261,0,56,0,261,0,57,0,261,0,43,0,261,0,8722,0,261,0,61,0,261,0,40,0,261,0,41,0,261,0,97,0,261,0,101,0,261,0,111,0,261,0,120,0,261,0,601,0,261,0,104,0,261,0,107,0,261,0,108,0,261,0,109,0,261,0,110,0,261,0,112,0,261,0,115,0,261,0,116,0,514,0,82,0,115,0,770,0,97,0,47,0,99,0,770,0,97,0,47,0,115,0,262,0,67,0,514,0,176,0,67,0,770,0,99,0,47,0,111,0,770,0,99,0,47,0,117,0,258,0,400,0,514,0,176,0,70,0,262,0,103,0,262,0,72,0,262,0,72,0,262,0,72,0,262,0,104,0,262,0,295,0,262,0,73,0,262,0,73,0,262,0,76,0,262,0,108,0,262,0,78,0,514,0,78,0,111,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,82,0,262,0,82,0,515,0,83,0,77,0,770,0,84,0,69,0,76,0,515,0,84,0,77,0,262,0,90,0,256,0,937,0,262,0,90,0,256,0,75,0,256,0,197,0,262,0,66,0,262,0,67,0,262,0,101,0,262,0,69,0,262,0,70,0,262,0,77,0,262,0,111,0,258,0,1488,0,258,0,1489,0,258,0,1490,0,258,0,1491,0,262,0,105,0,770,0,70,0,65,0,88,0,262,0,960,0,262,0,947,0,262,0,915,0,262,0,928,0,262,0,8721,0,262,0,68,0,262,0,100,0,262,0,101,0,262,0,105,0,262,0,106,0,772,0,49,0,8260,0,55,0,772,0,49,0,8260,0,57,0,1028,0,49,0,8260,0,49,0,48,0,772,0,49,0,8260,0,51,0,772,0,50,0,8260,0,51,0,772,0,49,0,8260,0,53,0,772,0,50,0,8260,0,53,0,772,0,51,0,8260,0,53,0,772,0,52,0,8260,0,53,0,772,0,49,0,8260,0,54,0,772,0,53,0,8260,0,54,0,772,0,49,0,8260,0,56,0,772,0,51,0,8260,0,56,0,772,0,53,0,8260,0,56,0,772,0,55,0,8260,0,56,0,516,0,49,0,8260,0,258,0,73,0,514,0,73,0,73,0,770,0,73,0,73,0,73,0,514,0,73,0,86,0,258,0,86,0,514,0,86,0,73,0,770,0,86,0,73,0,73,0,1026,0,86,0,73,0,73,0,73,0,514,0,73,0,88,0,258,0,88,0,514,0,88,0,73,0,770,0,88,0,73,0,73,0,258,0,76,0,258,0,67,0,258,0,68,0,258,0,77,0,258,0,105,0,514,0,105,0,105,0,770,0,105,0,105,0,105,0,514,0,105,0,118,0,258,0,118,0,514,0,118,0,105,0,770,0,118,0,105,0,105,0,1026,0,118,0,105,0,105,0,105,0,514,0,105,0,120,0,258,0,120,0,514,0,120,0,105,0,770,0,120,0,105,0,105,0,258,0,108,0,258,0,99,0,258,0,100,0,258,0,109,0,772,0,48,0,8260,0,51,0,512,0,8592,0,824,0,512,0,8594,0,824,0,512,0,8596,0,824,0,512,0,8656,0,824,0,512,0,8660,0,824,0,512,0,8658,0,824,0,512,0,8707,0,824,0,512,0,8712,0,824,0,512,0,8715,0,824,0,512,0,8739,0,824,0,512,0,8741,0,824,0,514,0,8747,0,8747,0,770,0,8747,0,8747,0,8747,0,514,0,8750,0,8750,0,770,0,8750,0,8750,0,8750,0,512,0,8764,0,824,0,512,0,8771,0,824,0,512,0,8773,0,824,0,512,0,8776,0,824,0,512,0,61,0,824,0,512,0,8801,0,824,0,512,0,8781,0,824,0,512,0,60,0,824,0,512,0,62,0,824,0,512,0,8804,0,824,0,512,0,8805,0,824,0,512,0,8818,0,824,0,512,0,8819,0,824,0,512,0,8822,0,824,0,512,0,8823,0,824,0,512,0,8826,0,824,0,512,0,8827,0,824,0,512,0,8834,0,824,0,512,0,8835,0,824,0,512,0,8838,0,824,0,512,0,8839,0,824,0,512,0,8866,0,824,0,512,0,8872,0,824,0,512,0,8873,0,824,0,512,0,8875,0,824,0,512,0,8828,0,824,0,512,0,8829,0,824,0,512,0,8849,0,824,0,512,0,8850,0,824,0,512,0,8882,0,824,0,512,0,8883,0,824,0,512,0,8884,0,824,0,512,0,8885,0,824,0,256,0,12296,0,256,0,12297,0,263,0,49,0,263,0,50,0,263,0,51,0,263,0,52,0,263,0,53,0,263,0,54,0,263,0,55,0,263,0,56,0,263,0,57,0,519,0,49,0,48,0,519,0,49,0,49,0,519,0,49,0,50,0,519,0,49,0,51,0,519,0,49,0,52,0,519,0,49,0,53,0,519,0,49,0,54,0,519,0,49,0,55,0,519,0,49,0,56,0,519,0,49,0,57,0,519,0,50,0,48,0,770,0,40,0,49,0,41,0,770,0,40,0,50,0,41,0,770,0,40,0,51,0,41,0,770,0,40,0,52,0,41,0,770,0,40,0,53,0,41,0,770,0,40,0,54,0,41,0,770,0,40,0,55,0,41,0,770,0,40,0,56,0,41,0,770,0,40,0,57,0,41,0,1026,0,40,0,49,0,48,0,41,0,1026,0,40,0,49,0,49,0,41,0,1026,0,40,0,49,0,50,0,41,0,1026,0,40,0,49,0,51,0,41,0,1026,0,40,0,49,0,52,0,41,0,1026,0,40,0,49,0,53,0,41,0,1026,0,40,0,49,0,54,0,41,0,1026,0,40,0,49,0,55,0,41,0,1026,0,40,0,49,0,56,0,41,0,1026,0,40,0,49,0,57,0,41,0,1026,0,40,0,50,0,48,0,41,0,514,0,49,0,46,0,514,0,50,0,46,0,514,0,51,0,46,0,514,0,52,0,46,0,514,0,53,0,46,0,514,0,54,0,46,0,514,0,55,0,46,0,514,0,56,0,46,0,514,0,57,0,46,0,770,0,49,0,48,0,46,0,770,0,49,0,49,0,46,0,770,0,49,0,50,0,46,0,770,0,49,0,51,0,46,0,770,0,49,0,52,0,46,0,770,0,49,0,53,0,46,0,770,0,49,0,54,0,46,0,770,0,49,0,55,0,46,0,770,0,49,0,56,0,46,0,770,0,49,0,57,0,46,0,770,0,50,0,48,0,46,0,770,0,40,0,97,0,41,0,770,0,40,0,98,0,41,0,770,0,40,0,99,0,41,0,770,0,40,0,100,0,41,0,770,0,40,0,101,0,41,0,770,0,40,0,102,0,41,0,770,0,40,0,103,0,41,0,770,0,40,0,104,0,41,0,770,0,40,0,105,0,41,0,770,0,40,0,106,0,41,0,770,0,40,0,107,0,41,0,770,0,40,0,108,0,41,0,770,0,40,0,109,0,41,0,770,0,40,0,110,0,41,0,770,0,40,0,111,0,41,0,770,0,40,0,112,0,41,0,770,0,40,0,113,0,41,0,770,0,40,0,114,0,41,0,770,0,40,0,115,0,41,0,770,0,40,0,116,0,41,0,770,0,40,0,117,0,41,0,770,0,40,0,118,0,41,0,770,0,40,0,119,0,41,0,770,0,40,0,120,0,41,0,770,0,40,0,121,0,41,0,770,0,40,0,122,0,41,0,263,0,65,0,263,0,66,0,263,0,67,0,263,0,68,0,263,0,69,0,263,0,70,0,263,0,71,0,263,0,72,0,263,0,73,0,263,0,74,0,263,0,75,0,263,0,76,0,263,0,77,0,263,0,78,0,263,0,79,0,263,0,80,0,263,0,81,0,263,0,82,0,263,0,83,0,263,0,84,0,263,0,85,0,263,0,86,0,263,0,87,0,263,0,88,0,263,0,89,0,263,0,90,0,263,0,97,0,263,0,98,0,263,0,99,0,263,0,100,0,263,0,101,0,263,0,102,0,263,0,103,0,263,0,104,0,263,0,105,0,263,0,106,0,263,0,107,0,263,0,108,0,263,0,109,0,263,0,110,0,263,0,111,0,263,0,112,0,263,0,113,0,263,0,114,0,263,0,115,0,263,0,116,0,263,0,117,0,263,0,118,0,263,0,119,0,263,0,120,0,263,0,121,0,263,0,122,0,263,0,48,0,1026,0,8747,0,8747,0,8747,0,8747,0,770,0,58,0,58,0,61,0,514,0,61,0,61,0,770,0,61,0,61,0,61,0,512,0,10973,0,824,0,261,0,106,0,259,0,86,0,259,0,11617,0,258,0,27597,0,258,0,-24673,0,258,0,19968,0,258,0,20008,0,258,0,20022,0,258,0,20031,0,258,0,20057,0,258,0,20101,0,258,0,20108,0,258,0,20128,0,258,0,20154,0,258,0,20799,0,258,0,20837,0,258,0,20843,0,258,0,20866,0,258,0,20886,0,258,0,20907,0,258,0,20960,0,258,0,20981,0,258,0,20992,0,258,0,21147,0,258,0,21241,0,258,0,21269,0,258,0,21274,0,258,0,21304,0,258,0,21313,0,258,0,21340,0,258,0,21353,0,258,0,21378,0,258,0,21430,0,258,0,21448,0,258,0,21475,0,258,0,22231,0,258,0,22303,0,258,0,22763,0,258,0,22786,0,258,0,22794,0,258,0,22805,0,258,0,22823,0,258,0,22899,0,258,0,23376,0,258,0,23424,0,258,0,23544,0,258,0,23567,0,258,0,23586,0,258,0,23608,0,258,0,23662,0,258,0,23665,0,258,0,24027,0,258,0,24037,0,258,0,24049,0,258,0,24062,0,258,0,24178,0,258,0,24186,0,258,0,24191,0,258,0,24308,0,258,0,24318,0,258,0,24331,0,258,0,24339,0,258,0,24400,0,258,0,24417,0,258,0,24435,0,258,0,24515,0,258,0,25096,0,258,0,25142,0,258,0,25163,0,258,0,25903,0,258,0,25908,0,258,0,25991,0,258,0,26007,0,258,0,26020,0,258,0,26041,0,258,0,26080,0,258,0,26085,0,258,0,26352,0,258,0,26376,0,258,0,26408,0,258,0,27424,0,258,0,27490,0,258,0,27513,0,258,0,27571,0,258,0,27595,0,258,0,27604,0,258,0,27611,0,258,0,27663,0,258,0,27668,0,258,0,27700,0,258,0,28779,0,258,0,29226,0,258,0,29238,0,258,0,29243,0,258,0,29247,0,258,0,29255,0,258,0,29273,0,258,0,29275,0,258,0,29356,0,258,0,29572,0,258,0,29577,0,258,0,29916,0,258,0,29926,0,258,0,29976,0,258,0,29983,0,258,0,29992,0,258,0,30000,0,258,0,30091,0,258,0,30098,0,258,0,30326,0,258,0,30333,0,258,0,30382,0,258,0,30399,0,258,0,30446,0,258,0,30683,0,258,0,30690,0,258,0,30707,0,258,0,31034,0,258,0,31160,0,258,0,31166,0,258,0,31348,0,258,0,31435,0,258,0,31481,0,258,0,31859,0,258,0,31992,0,258,0,32566,0,258,0,32593,0,258,0,32650,0,258,0,32701,0,258,0,-32767,0,258,0,-32756,0,258,0,-32750,0,258,0,-32717,0,258,0,-32641,0,258,0,-32631,0,258,0,-32285,0,258,0,-32278,0,258,0,-32269,0,258,0,-32260,0,258,0,-32244,0,258,0,-32229,0,258,0,-32225,0,258,0,-32146,0,258,0,-32142,0,258,0,-32136,0,258,0,-31155,0,258,0,-31125,0,258,0,-30656,0,258,0,-30644,0,258,0,-30621,0,258,0,-30338,0,258,0,-30325,0,258,0,-30254,0,258,0,-30208,0,258,0,-29641,0,258,0,-29626,0,258,0,-29611,0,258,0,-29576,0,258,0,-29539,0,258,0,-29340,0,258,0,-29328,0,258,0,-29261,0,258,0,-29013,0,258,0,-28982,0,258,0,-28773,0,258,0,-28752,0,258,0,-28747,0,258,0,-28527,0,258,0,-28343,0,258,0,-28218,0,258,0,-28212,0,258,0,-28207,0,258,0,-27273,0,258,0,-27264,0,258,0,-27108,0,258,0,-26954,0,258,0,-26951,0,258,0,-26904,0,258,0,-26799,0,258,0,-26786,0,258,0,-26782,0,258,0,-26775,0,258,0,-26677,0,258,0,-26643,0,258,0,-26637,0,258,0,-26623,0,258,0,-26456,0,258,0,-26405,0,258,0,-26401,0,258,0,-26218,0,258,0,-26215,0,258,0,-26196,0,258,0,-25944,0,258,0,-25896,0,258,0,-25889,0,258,0,-25819,0,258,0,-25809,0,258,0,-25806,0,258,0,-25796,0,258,0,-25766,0,258,0,-25371,0,258,0,-24971,0,258,0,-24961,0,258,0,-24923,0,258,0,-24901,0,258,0,-24893,0,258,0,-24883,0,258,0,-24879,0,258,0,-24839,0,258,0,-24835,0,258,0,-24818,0,258,0,-24813,0,258,0,-24800,0,258,0,-24773,0,258,0,-24758,0,258,0,-24750,0,258,0,-24691,0,258,0,-24676,0,258,0,-24672,0,264,0,32,0,258,0,12306,0,258,0,21313,0,258,0,21316,0,258,0,21317,0,512,0,12363,0,12441,0,512,0,12365,0,12441,0,512,0,12367,0,12441,0,512,0,12369,0,12441,0,512,0,12371,0,12441,0,512,0,12373,0,12441,0,512,0,12375,0,12441,0,512,0,12377,0,12441,0,512,0,12379,0,12441,0,512,0,12381,0,12441,0,512,0,12383,0,12441,0,512,0,12385,0,12441,0,512,0,12388,0,12441,0,512,0,12390,0,12441,0,512,0,12392,0,12441,0,512,0,12399,0,12441,0,512,0,12399,0,12442,0,512,0,12402,0,12441,0,512,0,12402,0,12442,0,512,0,12405,0,12441,0,512,0,12405,0,12442,0,512,0,12408,0,12441,0,512,0,12408,0,12442,0,512,0,12411,0,12441,0,512,0,12411,0,12442,0,512,0,12358,0,12441,0,514,0,32,0,12441,0,514,0,32,0,12442,0,512,0,12445,0,12441,0,521,0,12424,0,12426,0,512,0,12459,0,12441,0,512,0,12461,0,12441,0,512,0,12463,0,12441,0,512,0,12465,0,12441,0,512,0,12467,0,12441,0,512,0,12469,0,12441,0,512,0,12471,0,12441,0,512,0,12473,0,12441,0,512,0,12475,0,12441,0,512,0,12477,0,12441,0,512,0,12479,0,12441,0,512,0,12481,0,12441,0,512,0,12484,0,12441,0,512,0,12486,0,12441,0,512,0,12488,0,12441,0,512,0,12495,0,12441,0,512,0,12495,0,12442,0,512,0,12498,0,12441,0,512,0,12498,0,12442,0,512,0,12501,0,12441,0,512,0,12501,0,12442,0,512,0,12504,0,12441,0,512,0,12504,0,12442,0,512,0,12507,0,12441,0,512,0,12507,0,12442,0,512,0,12454,0,12441,0,512,0,12527,0,12441,0,512,0,12528,0,12441,0,512,0,12529,0,12441,0,512,0,12530,0,12441,0,512,0,12541,0,12441,0,521,0,12467,0,12488,0,258,0,4352,0,258,0,4353,0,258,0,4522,0,258,0,4354,0,258,0,4524,0,258,0,4525,0,258,0,4355,0,258,0,4356,0,258,0,4357,0,258,0,4528,0,258,0,4529,0,258,0,4530,0,258,0,4531,0,258,0,4532,0,258,0,4533,0,258,0,4378,0,258,0,4358,0,258,0,4359,0,258,0,4360,0,258,0,4385,0,258,0,4361,0,258,0,4362,0,258,0,4363,0,258,0,4364,0,258,0,4365,0,258,0,4366,0,258,0,4367,0,258,0,4368,0,258,0,4369,0,258,0,4370,0,258,0,4449,0,258,0,4450,0,258,0,4451,0,258,0,4452,0,258,0,4453,0,258,0,4454,0,258,0,4455,0,258,0,4456,0,258,0,4457,0,258,0,4458,0,258,0,4459,0,258,0,4460,0,258,0,4461,0,258,0,4462,0,258,0,4463,0,258,0,4464,0,258,0,4465,0,258,0,4466,0,258,0,4467,0,258,0,4468,0,258,0,4469,0,258,0,4448,0,258,0,4372,0,258,0,4373,0,258,0,4551,0,258,0,4552,0,258,0,4556,0,258,0,4558,0,258,0,4563,0,258,0,4567,0,258,0,4569,0,258,0,4380,0,258,0,4573,0,258,0,4575,0,258,0,4381,0,258,0,4382,0,258,0,4384,0,258,0,4386,0,258,0,4387,0,258,0,4391,0,258,0,4393,0,258,0,4395,0,258,0,4396,0,258,0,4397,0,258,0,4398,0,258,0,4399,0,258,0,4402,0,258,0,4406,0,258,0,4416,0,258,0,4423,0,258,0,4428,0,258,0,4593,0,258,0,4594,0,258,0,4439,0,258,0,4440,0,258,0,4441,0,258,0,4484,0,258,0,4485,0,258,0,4488,0,258,0,4497,0,258,0,4498,0,258,0,4500,0,258,0,4510,0,258,0,4513,0,259,0,19968,0,259,0,20108,0,259,0,19977,0,259,0,22235,0,259,0,19978,0,259,0,20013,0,259,0,19979,0,259,0,30002,0,259,0,20057,0,259,0,19993,0,259,0,19969,0,259,0,22825,0,259,0,22320,0,259,0,20154,0,770,0,40,0,4352,0,41,0,770,0,40,0,4354,0,41,0,770,0,40,0,4355,0,41,0,770,0,40,0,4357,0,41,0,770,0,40,0,4358,0,41,0,770,0,40,0,4359,0,41,0,770,0,40,0,4361,0,41,0,770,0,40,0,4363,0,41,0,770,0,40,0,4364,0,41,0,770,0,40,0,4366,0,41,0,770,0,40,0,4367,0,41,0,770,0,40,0,4368,0,41,0,770,0,40,0,4369,0,41,0,770,0,40,0,4370,0,41,0,1026,0,40,0,4352,0,4449,0,41,0,1026,0,40,0,4354,0,4449,0,41,0,1026,0,40,0,4355,0,4449,0,41,0,1026,0,40,0,4357,0,4449,0,41,0,1026,0,40,0,4358,0,4449,0,41,0,1026,0,40,0,4359,0,4449,0,41,0,1026,0,40,0,4361,0,4449,0,41,0,1026,0,40,0,4363,0,4449,0,41,0,1026,0,40,0,4364,0,4449,0,41,0,1026,0,40,0,4366,0,4449,0,41,0,1026,0,40,0,4367,0,4449,0,41,0,1026,0,40,0,4368,0,4449,0,41,0,1026,0,40,0,4369,0,4449,0,41,0,1026,0,40,0,4370,0,4449,0,41,0,1026,0,40,0,4364,0,4462,0,41,0,1794,0,40,0,4363,0,4457,0,4364,0,4453,0,4523,0,41,0,1538,0,40,0,4363,0,4457,0,4370,0,4462,0,41,0,770,0,40,0,19968,0,41,0,770,0,40,0,20108,0,41,0,770,0,40,0,19977,0,41,0,770,0,40,0,22235,0,41,0,770,0,40,0,20116,0,41,0,770,0,40,0,20845,0,41,0,770,0,40,0,19971,0].concat([41,0,770,0,40,0,20843,0,41,0,770,0,40,0,20061,0,41,0,770,0,40,0,21313,0,41,0,770,0,40,0,26376,0,41,0,770,0,40,0,28779,0,41,0,770,0,40,0,27700,0,41,0,770,0,40,0,26408,0,41,0,770,0,40,0,-28207,0,41,0,770,0,40,0,22303,0,41,0,770,0,40,0,26085,0,41,0,770,0,40,0,26666,0,41,0,770,0,40,0,26377,0,41,0,770,0,40,0,31038,0,41,0,770,0,40,0,21517,0,41,0,770,0,40,0,29305,0,41,0,770,0,40,0,-29535,0,41,0,770,0,40,0,31069,0,41,0,770,0,40,0,21172,0,41,0,770,0,40,0,20195,0,41,0,770,0,40,0,21628,0,41,0,770,0,40,0,23398,0,41,0,770,0,40,0,30435,0,41,0,770,0,40,0,20225,0,41,0,770,0,40,0,-29497,0,41,0,770,0,40,0,21332,0,41,0,770,0,40,0,31085,0,41,0,770,0,40,0,20241,0,41,0,770,0,40,0,-32278,0,41,0,770,0,40,0,-32269,0,41,0,263,0,21839,0,263,0,24188,0,263,0,25991,0,263,0,31631,0,778,0,80,0,84,0,69,0,519,0,50,0,49,0,519,0,50,0,50,0,519,0,50,0,51,0,519,0,50,0,52,0,519,0,50,0,53,0,519,0,50,0,54,0,519,0,50,0,55,0,519,0,50,0,56,0,519,0,50,0,57,0,519,0,51,0,48,0,519,0,51,0,49,0,519,0,51,0,50,0,519,0,51,0,51,0,519,0,51,0,52,0,519,0,51,0,53,0,263,0,4352,0,263,0,4354,0,263,0,4355,0,263,0,4357,0,263,0,4358,0,263,0,4359,0,263,0,4361,0,263,0,4363,0,263,0,4364,0,263,0,4366,0,263,0,4367,0,263,0,4368,0,263,0,4369,0,263,0,4370,0,519,0,4352,0,4449,0,519,0,4354,0,4449,0,519,0,4355,0,4449,0,519,0,4357,0,4449,0,519,0,4358,0,4449,0,519,0,4359,0,4449,0,519,0,4361,0,4449,0,519,0,4363,0,4449,0,519,0,4364,0,4449,0,519,0,4366,0,4449,0,519,0,4367,0,4449,0,519,0,4368,0,4449,0,519,0,4369,0,4449,0,519,0,4370,0,4449,0,1287,0,4366,0,4449,0,4535,0,4352,0,4457,0,1031,0,4364,0,4462,0,4363,0,4468,0,519,0,4363,0,4462,0,263,0,19968,0,263,0,20108,0,263,0,19977,0,263,0,22235,0,263,0,20116,0,263,0,20845,0,263,0,19971,0,263,0,20843,0,263,0,20061,0,263,0,21313,0,263,0,26376,0,263,0,28779,0,263,0,27700,0,263,0,26408,0,263,0,-28207,0,263,0,22303,0,263,0,26085,0,263,0,26666,0,263,0,26377,0,263,0,31038,0,263,0,21517,0,263,0,29305,0,263,0,-29535,0,263,0,31069,0,263,0,21172,0,263,0,31192,0,263,0,30007,0,263,0,22899,0,263,0,-28567,0,263,0,20778,0,263,0,21360,0,263,0,27880,0,263,0,-26619,0,263,0,20241,0,263,0,20889,0,263,0,27491,0,263,0,19978,0,263,0,20013,0,263,0,19979,0,263,0,24038,0,263,0,21491,0,263,0,21307,0,263,0,23447,0,263,0,23398,0,263,0,30435,0,263,0,20225,0,263,0,-29497,0,263,0,21332,0,263,0,22812,0,519,0,51,0,54,0,519,0,51,0,55,0,519,0,51,0,56,0,519,0,51,0,57,0,519,0,52,0,48,0,519,0,52,0,49,0,519,0,52,0,50,0,519,0,52,0,51,0,519,0,52,0,52,0,519,0,52,0,53,0,519,0,52,0,54,0,519,0,52,0,55,0,519,0,52,0,56,0,519,0,52,0,57,0,519,0,53,0,48,0,514,0,49,0,26376,0,514,0,50,0,26376,0,514,0,51,0,26376,0,514,0,52,0,26376,0,514,0,53,0,26376,0,514,0,54,0,26376,0,514,0,55,0,26376,0,514,0,56,0,26376,0,514,0,57,0,26376,0,770,0,49,0,48,0,26376,0,770,0,49,0,49,0,26376,0,770,0,49,0,50,0,26376,0,522,0,72,0,103,0,778,0,101,0,114,0,103,0,522,0,101,0,86,0,778,0,76,0,84,0,68,0,263,0,12450,0,263,0,12452,0,263,0,12454,0,263,0,12456,0,263,0,12458,0,263,0,12459,0,263,0,12461,0,263,0,12463,0,263,0,12465,0,263,0,12467,0,263,0,12469,0,263,0,12471,0,263,0,12473,0,263,0,12475,0,263,0,12477,0,263,0,12479,0,263,0,12481,0,263,0,12484,0,263,0,12486,0,263,0,12488,0,263,0,12490,0,263,0,12491,0,263,0,12492,0,263,0,12493,0,263,0,12494,0,263,0,12495,0,263,0,12498,0,263,0,12501,0,263,0,12504,0,263,0,12507,0,263,0,12510,0,263,0,12511,0,263,0,12512,0,263,0,12513,0,263,0,12514,0,263,0,12516,0,263,0,12518,0,263,0,12520,0,263,0,12521,0,263,0,12522,0,263,0,12523,0,263,0,12524,0,263,0,12525,0,263,0,12527,0,263,0,12528,0,263,0,12529,0,263,0,12530,0,1034,0,12450,0,12497,0,12540,0,12488,0,1034,0,12450,0,12523,0,12501,0,12449,0,1034,0,12450,0,12531,0,12506,0,12450,0,778,0,12450,0,12540,0,12523,0,1034,0,12452,0,12491,0,12531,0,12464,0,778,0,12452,0,12531,0,12481,0,778,0,12454,0,12457,0,12531,0,1290,0,12456,0,12473,0,12463,0,12540,0,12489,0,1034,0,12456,0,12540,0,12459,0,12540,0,778,0,12458,0,12531,0,12473,0,778,0,12458,0,12540,0,12512,0,778,0,12459,0,12452,0,12522,0,1034,0,12459,0,12521,0,12483,0,12488,0,1034,0,12459,0,12525,0,12522,0,12540,0,778,0,12460,0,12525,0,12531,0,778,0,12460,0,12531,0,12510,0,522,0,12462,0,12460,0,778,0,12462,0,12491,0,12540,0,1034,0,12461,0,12517,0,12522,0,12540,0,1034,0,12462,0,12523,0,12480,0,12540,0,522,0,12461,0,12525,0,1290,0,12461,0,12525,0,12464,0,12521,0,12512,0,1546,0,12461,0,12525,0,12513,0,12540,0,12488,0,12523,0,1290,0,12461,0,12525,0,12527,0,12483,0,12488,0,778,0,12464,0,12521,0,12512,0,1290,0,12464,0,12521,0,12512,0,12488,0,12531,0,1290,0,12463,0,12523,0,12476,0,12452,0,12525,0,1034,0,12463,0,12525,0,12540,0,12493,0,778,0,12465,0,12540,0,12473,0,778,0,12467,0,12523,0,12490,0,778,0,12467,0,12540,0,12509,0,1034,0,12469,0,12452,0,12463,0,12523,0,1290,0,12469,0,12531,0,12481,0,12540,0,12512,0,1034,0,12471,0,12522,0,12531,0,12464,0,778,0,12475,0,12531,0,12481,0,778,0,12475,0,12531,0,12488,0,778,0,12480,0,12540,0,12473,0,522,0,12487,0,12471,0,522,0,12489,0,12523,0,522,0,12488,0,12531,0,522,0,12490,0,12494,0,778,0,12494,0,12483,0,12488,0,778,0,12495,0,12452,0,12484,0,1290,0,12497,0,12540,0,12475,0,12531,0,12488,0,778,0,12497,0,12540,0,12484,0,1034,0,12496,0,12540,0,12524,0,12523,0,1290,0,12500,0,12450,0,12473,0,12488,0,12523,0,778,0,12500,0,12463,0,12523,0,522,0,12500,0,12467,0,522,0,12499,0,12523,0,1290,0,12501,0,12449,0,12521,0,12483,0,12489,0,1034,0,12501,0,12451,0,12540,0,12488,0,1290,0,12502,0,12483,0,12471,0,12455,0,12523,0,778,0,12501,0,12521,0,12531,0,1290,0,12504,0,12463,0,12479,0,12540,0,12523,0,522,0,12506,0,12477,0,778,0,12506,0,12491,0,12498,0,778,0,12504,0,12523,0,12484,0,778,0,12506,0,12531,0,12473,0,778,0,12506,0,12540,0,12472,0,778,0,12505,0,12540,0,12479,0,1034,0,12509,0,12452,0,12531,0,12488,0,778,0,12508,0,12523,0,12488,0,522,0,12507,0,12531,0,778,0,12509,0,12531,0,12489,0,778,0,12507,0,12540,0,12523,0,778,0,12507,0,12540,0,12531,0,1034,0,12510,0,12452,0,12463,0,12525,0,778,0,12510,0,12452,0,12523,0,778,0,12510,0,12483,0,12495,0,778,0,12510,0,12523,0,12463,0,1290,0,12510,0,12531,0,12471,0,12519,0,12531,0,1034,0,12511,0,12463,0,12525,0,12531,0,522,0,12511,0,12522,0,1290,0,12511,0,12522,0,12496,0,12540,0,12523,0,522,0,12513,0,12460,0,1034,0,12513,0,12460,0,12488,0,12531,0,1034,0,12513,0,12540,0,12488,0,12523,0,778,0,12516,0,12540,0,12489,0,778,0,12516,0,12540,0,12523,0,778,0,12518,0,12450,0,12531,0,1034,0,12522,0,12483,0,12488,0,12523,0,522,0,12522,0,12521,0,778,0,12523,0,12500,0,12540,0,1034,0,12523,0,12540,0,12502,0,12523,0,522,0,12524,0,12512,0,1290,0,12524,0,12531,0,12488,0,12466,0,12531,0,778,0,12527,0,12483,0,12488,0,514,0,48,0,28857,0,514,0,49,0,28857,0,514,0,50,0,28857,0,514,0,51,0,28857,0,514,0,52,0,28857,0,514,0,53,0,28857,0,514,0,54,0,28857,0,514,0,55,0,28857,0,514,0,56,0,28857,0,514,0,57,0,28857,0,770,0,49,0,48,0,28857,0,770,0,49,0,49,0,28857,0,770,0,49,0,50,0,28857,0,770,0,49,0,51,0,28857,0,770,0,49,0,52,0,28857,0,770,0,49,0,53,0,28857,0,770,0,49,0,54,0,28857,0,770,0,49,0,55,0,28857,0,770,0,49,0,56,0,28857,0,770,0,49,0,57,0,28857,0,770,0,50,0,48,0,28857,0,770,0,50,0,49,0,28857,0,770,0,50,0,50,0,28857,0,770,0,50,0,51,0,28857,0,770,0,50,0,52,0,28857,0,778,0,104,0,80,0,97,0,522,0,100,0,97,0,522,0,65,0,85,0,778,0,98,0,97,0,114,0,522,0,111,0,86,0,522,0,112,0,99,0,522,0,100,0,109,0,778,0,100,0,109,0,178,0,778,0,100,0,109,0,179,0,522,0,73,0,85,0,522,0,24179,0,25104,0,522,0,26157,0,21644,0,522,0,22823,0,27491,0,522,0,26126,0,27835,0,1034,0,26666,0,24335,0,20250,0,31038,0,522,0,112,0,65,0,522,0,110,0,65,0,522,0,956,0,65,0,522,0,109,0,65,0,522,0,107,0,65,0,522,0,75,0,66,0,522,0,77,0,66,0,522,0,71,0,66,0,778,0,99,0,97,0,108,0,1034,0,107,0,99,0,97,0,108,0,522,0,112,0,70,0,522,0,110,0,70,0,522,0,956,0,70,0,522,0,956,0,103,0,522,0,109,0,103,0,522,0,107,0,103,0,522,0,72,0,122,0,778,0,107,0,72,0,122,0,778,0,77,0,72,0,122,0,778,0,71,0,72,0,122,0,778,0,84,0,72,0,122,0,522,0,956,0,8467,0,522,0,109,0,8467,0,522,0,100,0,8467,0,522,0,107,0,8467,0,522,0,102,0,109,0,522,0,110,0,109,0,522,0,956,0,109,0,522,0,109,0,109,0,522,0,99,0,109,0,522,0,107,0,109,0,778,0,109,0,109,0,178,0,778,0,99,0,109,0,178,0,522,0,109,0,178,0,778,0,107,0,109,0,178,0,778,0,109,0,109,0,179,0,778,0,99,0,109,0,179,0,522,0,109,0,179,0,778,0,107,0,109,0,179,0,778,0,109,0,8725,0,115,0,1034,0,109,0,8725,0,115,0,178,0,522,0,80,0,97,0,778,0,107,0,80,0,97,0,778,0,77,0,80,0,97,0,778,0,71,0,80,0,97,0,778,0,114,0,97,0,100,0,1290,0,114,0,97,0,100,0,8725,0,115,0,1546,0,114,0,97,0,100,0,8725,0,115,0,178,0,522,0,112,0,115,0,522,0,110,0,115,0,522,0,956,0,115,0,522,0,109,0,115,0,522,0,112,0,86,0,522,0,110,0,86,0,522,0,956,0,86,0,522,0,109,0,86,0,522,0,107,0,86,0,522,0,77,0,86,0,522,0,112,0,87,0,522,0,110,0,87,0,522,0,956,0,87,0,522,0,109,0,87,0,522,0,107,0,87,0,522,0,77,0,87,0,522,0,107,0,937,0,522,0,77,0,937,0,1034,0,97,0,46,0,109,0,46,0,522,0,66,0,113,0,522,0,99,0,99,0,522,0,99,0,100,0,1034,0,67,0,8725,0,107,0,103,0,778,0,67,0,111,0,46,0,522,0,100,0,66,0,522,0,71,0,121,0,522,0,104,0,97,0,522,0,72,0,80,0,522,0,105,0,110,0,522,0,75,0,75,0,522,0,75,0,77,0,522,0,107,0,116,0,522,0,108,0,109,0,522,0,108,0,110,0,778,0,108,0,111,0,103,0,522,0,108,0,120,0,522,0,109,0,98,0,778,0,109,0,105,0,108,0,778,0,109,0,111,0,108,0,522,0,80,0,72,0,1034,0,112,0,46,0,109,0,46,0,778,0,80,0,80,0,77,0,522,0,80,0,82,0,522,0,115,0,114,0,522,0,83,0,118,0,522,0,87,0,98,0,778,0,86,0,8725,0,109,0,778,0,65,0,8725,0,109,0,514,0,49,0,26085,0,514,0,50,0,26085,0,514,0,51,0,26085,0,514,0,52,0,26085,0,514,0,53,0,26085,0,514,0,54,0,26085,0,514,0,55,0,26085,0,514,0,56,0,26085,0,514,0,57,0,26085,0,770,0,49,0,48,0,26085,0,770,0,49,0,49,0,26085,0,770,0,49,0,50,0,26085,0,770,0,49,0,51,0,26085,0,770,0,49,0,52,0,26085,0,770,0,49,0,53,0,26085,0,770,0,49,0,54,0,26085,0,770,0,49,0,55,0,26085,0,770,0,49,0,56,0,26085,0,770,0,49,0,57,0,26085,0,770,0,50,0,48,0,26085,0,770,0,50,0,49,0,26085,0,770,0,50,0,50,0,26085,0,770,0,50,0,51,0,26085,0,770,0,50,0,52,0,26085,0,770,0,50,0,53,0,26085,0,770,0,50,0,54,0,26085,0,770,0,50,0,55,0,26085,0,770,0,50,0,56,0,26085,0,770,0,50,0,57,0,26085,0,770,0,51,0,48,0,26085,0,770,0,51,0,49,0,26085,0,778,0,103,0,97,0,108,0,259,0,-22673,0,259,0,294,0,259,0,339,0,256,0,-29624,0,256,0,26356,0,256,0,-28982,0,256,0,-29496,0,256,0,28369,0,256,0,20018,0,256,0,21477,0,256,0,-24676,0,256,0,-24676,0,256,0,22865,0,256,0,-28207,0,256,0,21895,0,256,0,22856,0,256,0,25078,0,256,0,30313,0,256,0,32645,0,256,0,-31169,0,256,0,-30790,0,256,0,-30472,0,256,0,-28529,0,256,0,27138,0,256,0,27931,0,256,0,28889,0,256,0,29662,0,256,0,-31683,0,256,0,-28310,0,256,0,-26127,0,256,0,20098,0,256,0,21365,0,256,0,27396,0,256,0,29211,0,256,0,-31187,0,256,0,-25058,0,256,0,23888,0,256,0,28651,0,256,0,-31283,0,256,0,-30364,0,256,0,25289,0,256,0,-32296,0,256,0,-30689,0,256,0,24266,0,256,0,26391,0,256,0,28010,0,256,0,29436,0,256,0,-28466,0,256,0,20358,0,256,0,20919,0,256,0,21214,0,256,0,25796,0,256,0,27347,0,256,0,29200,0,256,0,30439,0,256,0,-32767,0,256,0,-31226,0,256,0,-31140,0,256,0,-29201,0,256,0,-26830,0,256,0,-25745,0,256,0,-25094,0,256,0,30860,0,256,0,31103,0,256,0,32160,0,256,0,-31799,0,256,0,-27900,0,256,0,-24961,0,256,0,-29994,0,256,0,22751,0,256,0,24324,0,256,0,31840,0,256,0,-32642,0,256,0,29282,0,256,0,30922,0,256,0,-29502,0,256,0,-26889,0,256,0,22744,0,256,0,23650,0,256,0,27155,0,256,0,28122,0,256,0,28431,0,256,0,32047,0,256,0,32311,0,256,0,-27061,0,256,0,21202,0,256,0,-32629,0,256,0,20956,0,256,0,20940,0,256,0,31260,0,256,0,32190,0,256,0,-31759,0,256,0,-27019,0,256,0,-29824,0,256,0,25295,0,256,0,27138,0,256,0,-29954,0,256,0,20025,0,256,0,23527,0,256,0,24594,0,256,0,29575,0,256,0,30064,0,256,0,21271,0,256,0,30971,0,256,0,20415,0,256,0,24489,0,256,0,19981,0,256,0,27852,0,256,0,25976,0,256,0,32034,0,256,0,21443,0,256,0,22622,0,256,0,30465,0,256,0,-31671,0,256,0,-30038,0,256,0,27578,0,256,0,-28752,0,256,0,27784,0,256,0,25342,0,256,0,-32027,0,256,0,25504,0,256,0,30053,0,256,0,20142,0,256,0,20841,0,256,0,20937,0,256,0,26753,0,256,0,31975,0,256,0,-32145,0,256,0,-29998,0,256,0,-28209,0,256,0,21237,0,256,0,21570,0,256,0,22899,0,256,0,24300,0,256,0,26053,0,256,0,28670,0,256,0,31018,0,256,0,-27219,0,256,0,-26006,0,256,0,-24937,0,256,0,-24882,0,256,0,21147,0,256,0,26310,0,256,0,27511,0,256,0,-28830,0,256,0,24180,0,256,0,24976,0,256,0,25088,0,256,0,25754,0,256,0,28451,0,256,0,29001,0,256,0,29833,0,256,0,31178,0,256,0,32244,0,256,0,-32657,0,256,0,-28890,0,256,0,-31506,0,256,0,-28637,0,256,0,-27830,0,256,0,21015,0,256,0,21155,0,256,0,21693,0,256,0,28872,0,256,0,-30526,0,256,0,-30038,0,256,0,24265,0,256,0,24565,0,256,0,25467,0,256,0,27566,0,256,0,31806,0,256,0,29557,0,256,0,20196,0,256,0,22265,0,256,0,23527,0,256,0,23994,0,256,0,24604,0,256,0,29618,0,256,0,29801,0,256,0,32666,0,256,0,-32698,0,256,0,-28108,0,256,0,-26890,0,256,0,-26808,0,256,0,-26600,0,256,0,20363,0,256,0,31150,0,256,0,-28236,0,256,0,-26952,0,256,0,24801,0,256,0,20102,0,256,0,20698,0,256,0,23534,0,256,0,23615,0,256,0,26009,0,256,0,27138,0,256,0,29134,0,256,0,30274,0,256,0,-31492,0,256,0,-28548,0,256,0,-24691,0,256,0,26248,0,256,0,-27090,0,256,0,21129,0,256,0,26491,0,256,0,26611,0,256,0,27969,0,256,0,28316,0,256,0,29705,0,256,0,30041,0,256,0,30827,0,256,0,32016,0,256,0,-26530,0,256,0,20845,0,256,0,25134,0,256,0,-27016,0,256,0,20523,0,256,0,23833,0,256,0,28138,0,256,0,-28886,0,256,0,24459,0,256,0,24900,0,256,0,26647,0,256,0,29575,0,256,0,-27002,0,256,0,21033,0,256,0,21519,0,256,0,23653,0,256,0,26131,0,256,0,26446,0,256,0,26792,0,256,0,27877,0,256,0,29702,0,256,0,30178,0,256,0,32633,0,256,0,-30513,0,256,0,-30495,0,256,0,-28212,0,256,0,-26910,0,256,0,21311,0,256,0,28346,0,256,0,21533,0,256,0,29136,0,256,0,29848,0,256,0,-31238,0,256,0,-26973,0,256,0,-25513,0,256,0,-24929,0,256,0,26519,0,256,0,28107,0,256,0,-32280,0,256,0,31435,0,256,0,31520,0,256,0,31890,0,256,0,29376,0,256,0,28825,0,256,0,-29864,0,256,0,20160,0,256,0,-31946,0,256,0,21050,0,256,0,20999,0,256,0,24230,0,256,0,25299,0,256,0,31958,0,256,0,23429,0,256,0,27934,0,256,0,26292,0,256,0,-28869,0,256,0,-30644,0,256,0,-27059,0,256,0,-30325,0,256,0,24275,0,256,0,20800,0,256,0,21952,0,256,0,22618,0,256,0,26228,0,256,0,20958,0,256,0,29482,0,256,0,30410,0,256,0,31036,0,256,0,31070,0,256,0,31077,0,256,0,31119,0,256,0,-26794,0,256,0,31934,0,256,0,32701,0,256,0,-31214,0,256,0,-29960,0,256,0,-28616,0,256,0,-28419,0,256,0,-26385,0,256,0,-26372,0,256,0,-26328,0,256,0,-25164,0,256,0,-28450,0,256,0,-26953,0,256,0,20398,0,256,0,20711,0,256,0,20813,0,256,0,21193,0,256,0,21220,0,256,0,21329,0,256,0,21917,0,256,0,22022,0,256,0,22120,0,256,0,22592,0,256,0,22696,0,256,0,23652,0,256,0,23662,0,256,0,24724,0,256,0,24936,0,256,0,24974,0,256,0,25074,0,256,0,25935,0,256,0,26082,0,256,0,26257,0,256,0,26757,0,256,0,28023,0,256,0,28186,0,256,0,28450,0,256,0,29038,0,256,0,29227,0,256,0,29730,0,256,0,30865,0,256,0,31038,0,256,0,31049,0,256,0,31048,0,256,0,31056,0,256,0,31062,0,256,0,31069,0,256,0,31117,0,256,0,31118,0,256,0,31296,0,256,0,31361,0,256,0,31680,0,256,0,32244,0,256,0,32265,0,256,0,32321,0,256,0,32626,0,256,0,-32763,0,256,0,-32275,0,256,0,-32135,0,256,0,-32135,0,256,0,-31657,0,256,0,-30448,0,256,0,-30314,0,256,0,-29951,0,256,0,-29895,0,256,0,-29485,0,256,0,-29432,0,256,0,-28746,0,256,0,-28616,0,256,0,-26909,0,256,0,-26625,0,256,0,-26565,0,256,0,24693,0,256,0,-10160,0,-8466,0,256,0,-32232,0,256,0,20006,0,256,0,20917,0,256,0,20840,0,256,0,20352,0,256,0,20805,0,256,0,20864,0,256,0,21191,0,256,0,21242,0,256,0,21917,0,256,0,21845,0,256,0,21913,0,256,0,21986,0,256,0,22618,0,256,0,22707,0,256,0,22852,0,256,0,22868,0,256,0,23138,0,256,0,23336,0,256,0,24274,0,256,0,24281,0,256,0,24425,0,256,0,24493,0,256,0,24792,0,256,0,24910,0,256,0,24840,0,256,0,24974,0,256,0,24928,0,256,0,25074,0,256,0,25140,0,256,0,25540,0,256,0,25628,0,256,0,25682,0,256,0,25942,0,256,0,26228,0,256,0,26391,0,256,0,26395,0,256,0,26454,0,256,0,27513,0,256,0,27578,0,256,0,27969,0,256,0,28379,0,256,0,28363,0,256,0,28450,0,256,0,28702,0,256,0,29038,0,256,0,30631,0,256,0,29237,0,256,0,29359,0,256,0,29482,0,256,0,29809,0,256,0,29958,0,256,0,30011,0,256,0,30237,0,256,0,30239,0,256,0,30410,0,256,0,30427,0,256,0,30452,0,256,0,30538,0,256,0,30528,0,256,0,30924,0,256,0,31409,0,256,0,31680,0,256,0,31867,0,256,0,32091,0,256,0,32244,0,256,0,32574,0,256,0,-32763,0,256,0,-31918,0,256,0,-31761,0,256,0,-30855,0,256,0,-30399,0,256,0,-30330,0,256,0,-30314,0,256,0,-30017,0,256,0,-29960,0,256,0,-30005,0,256,0,-29951,0,256,0,-29954,0,256,0,-29971,0,256,0,-29895,0,256,0,-29814,0,256,0,-29432,0,256,0,-28872,0,256,0,-28558,0,256,0,-28263,0,256,0,-28042,0,256,0,-27012,0,256,0,-26909,0,256,0,-26794,0,256,0,-26661,0,256,0,-26625,0,256,0,-26613,0,256,0,-26565,0,256,0,-25838,0,256,0,-24676,0,256,0,-10166,0,-9142,0,256,0,-10166,0,-9148,0,256,0,-10164,0,-8235,0,256,0,15261,0,256,0,16408,0,256,0,16441,0,256,0,-10156,0,-8631,0,256,0,-10153,0,-9008,0,256,0,-10145,0,-8493,0,256,0,-24765,0,256,0,-24690,0,514,0,102,0,102,0,514,0,102,0,105,0,514,0,102,0,108,0,770,0,102,0,102,0,105,0,770,0,102,0,102,0,108,0,514,0,383,0,116,0,514,0,115,0,116,0,514,0,1396,0,1398,0,514,0,1396,0,1381,0,514,0,1396,0,1387,0,514,0,1406,0,1398,0,514,0,1396,0,1389,0,512,0,1497,0,1460,0,512,0,1522,0,1463,0,262,0,1506,0,262,0,1488,0,262,0,1491,0,262,0,1492,0,262,0,1499,0,262,0,1500,0,262,0,1501,0,262,0,1512,0,262,0,1514,0,262,0,43,0,512,0,1513,0,1473,0,512,0,1513,0,1474,0,512,0,-1207,0,1473,0,512,0,-1207,0,1474,0,512,0,1488,0,1463,0,512,0,1488,0,1464,0,512,0,1488,0,1468,0,512,0,1489,0,1468,0,512,0,1490,0,1468,0,512,0,1491,0,1468,0,512,0,1492,0,1468,0,512,0,1493,0,1468,0,512,0,1494,0,1468,0,512,0,1496,0,1468,0,512,0,1497,0,1468,0,512,0,1498,0,1468,0,512,0,1499,0,1468,0,512,0,1500,0,1468,0,512,0,1502,0,1468,0,512,0,1504,0,1468,0,512,0,1505,0,1468,0,512,0,1507,0,1468,0,512,0,1508,0,1468,0,512,0,1510,0,1468,0,512,0,1511,0,1468,0,512,0,1512,0,1468,0,512,0,1513,0,1468,0,512,0,1514,0,1468,0,512,0,1493,0,1465,0,512,0,1489,0,1471,0,512,0,1499,0,1471,0,512,0,1508,0,1471,0,514,0,1488,0,1500,0,267,0,1649,0,268,0,1649,0,267,0,1659,0,268,0,1659,0,269,0,1659,0,270,0,1659,0,267,0,1662,0,268,0,1662,0,269,0,1662,0,270,0,1662,0,267,0,1664,0,268,0,1664,0,269,0,1664,0,270,0,1664,0,267,0,1658,0,268,0,1658,0,269,0,1658,0,270,0,1658,0,267,0,1663,0,268,0,1663,0,269,0,1663,0,270,0,1663,0,267,0,1657,0,268,0,1657,0,269,0,1657,0,270,0,1657,0,267,0,1700,0,268,0,1700,0,269,0,1700,0,270,0,1700,0,267,0,1702,0,268,0,1702,0,269,0,1702,0,270,0,1702,0,267,0,1668,0,268,0,1668,0,269,0,1668,0,270,0,1668,0,267,0,1667,0,268,0,1667,0,269,0,1667,0,270,0,1667,0,267,0,1670,0,268,0,1670,0,269,0,1670,0,270,0,1670,0,267,0,1671,0,268,0,1671,0,269,0,1671,0,270,0,1671,0,267,0,1677,0,268,0,1677,0,267,0,1676,0,268,0,1676,0,267,0,1678,0,268,0,1678,0,267,0,1672,0,268,0,1672,0,267,0,1688,0,268,0,1688,0,267,0,1681,0,268,0,1681,0,267,0,1705,0,268,0,1705,0,269,0,1705,0,270,0,1705,0,267,0,1711,0,268,0,1711,0,269,0,1711,0,270,0,1711,0,267,0,1715,0,268,0,1715,0,269,0,1715,0,270,0,1715,0,267,0,1713,0,268,0,1713,0,269,0,1713,0,270,0,1713,0,267,0,1722,0,268,0,1722,0,267,0,1723,0,268,0,1723,0,269,0,1723,0,270,0,1723,0,267,0,1728,0,268,0,1728,0,267,0,1729,0,268,0,1729,0,269,0,1729,0,270,0,1729,0,267,0,1726,0,268,0,1726,0,269,0,1726,0,270,0,1726,0,267,0,1746,0,268,0,1746,0,267,0,1747,0,268,0,1747,0,267,0,1709,0,268,0,1709,0,269,0,1709,0,270,0,1709,0,267,0,1735,0,268,0,1735,0,267,0,1734,0,268,0,1734,0,267,0,1736,0,268,0,1736,0,267,0,1655,0,267,0,1739,0,268,0,1739,0,267,0,1733,0,268,0,1733,0,267,0,1737,0,268,0,1737,0,267,0,1744,0,268,0,1744,0,269,0,1744,0,270,0,1744,0,269,0,1609,0,270,0,1609,0,523,0,1574,0,1575,0,524,0,1574,0,1575,0,523,0,1574,0,1749,0,524,0,1574,0,1749,0,523,0,1574,0,1608,0,524,0,1574,0,1608,0,523,0,1574,0,1735,0,524,0,1574,0,1735,0,523,0,1574,0,1734,0,524,0,1574,0,1734,0,523,0,1574,0,1736,0,524,0,1574,0,1736,0,523,0,1574,0,1744,0,524,0,1574,0,1744,0,525,0,1574,0,1744,0,523,0,1574,0,1609,0,524,0,1574,0,1609,0,525,0,1574,0,1609,0,267,0,1740,0,268,0,1740,0,269,0,1740,0,270,0,1740,0,523,0,1574,0,1580,0,523,0,1574,0,1581,0,523,0,1574,0,1605,0,523,0,1574,0,1609,0,523,0,1574,0,1610,0,523,0,1576,0,1580,0,523,0,1576,0,1581,0,523,0,1576,0,1582,0,523,0,1576,0,1605,0,523,0,1576,0,1609,0,523,0,1576,0,1610,0,523,0,1578,0,1580,0,523,0,1578,0,1581,0,523,0,1578,0,1582,0,523,0,1578,0,1605,0,523,0,1578,0,1609,0,523,0,1578,0,1610,0,523,0,1579,0,1580,0,523,0,1579,0,1605,0,523,0,1579,0,1609,0,523,0,1579,0,1610,0,523,0,1580,0,1581,0,523,0,1580,0,1605,0,523,0,1581,0,1580,0,523,0,1581,0,1605,0,523,0,1582,0,1580,0,523,0,1582,0,1581,0,523,0,1582,0,1605,0,523,0,1587,0,1580,0,523,0,1587,0,1581,0,523,0,1587,0,1582,0,523,0,1587,0,1605,0,523,0,1589,0,1581,0,523,0,1589,0,1605,0,523,0,1590,0,1580,0,523,0,1590,0,1581,0,523,0,1590,0,1582,0,523,0,1590,0,1605,0,523,0,1591,0,1581,0,523,0,1591,0,1605,0,523,0,1592,0,1605,0,523,0,1593,0,1580,0,523,0,1593,0,1605,0,523,0,1594,0,1580,0,523,0,1594,0,1605,0,523,0,1601,0,1580,0,523,0,1601,0,1581,0,523,0,1601,0,1582,0,523,0,1601,0,1605,0,523,0,1601,0,1609,0,523,0,1601,0,1610,0,523,0,1602,0,1581,0,523,0,1602,0,1605,0,523,0,1602,0,1609,0,523,0,1602,0,1610,0,523,0,1603,0,1575,0,523,0,1603,0,1580,0,523,0,1603,0,1581,0,523,0,1603,0,1582,0,523,0,1603,0,1604,0,523,0,1603,0,1605,0,523,0,1603,0,1609,0,523,0,1603,0,1610,0,523,0,1604,0,1580,0,523,0,1604,0,1581,0,523,0,1604,0,1582,0,523,0,1604,0,1605,0,523,0,1604,0,1609,0,523,0,1604,0,1610,0,523,0,1605,0,1580,0,523,0,1605,0,1581,0,523,0,1605,0,1582,0,523,0,1605,0,1605,0,523,0,1605,0,1609,0,523,0,1605,0,1610,0,523,0,1606,0,1580,0,523,0,1606,0,1581,0,523,0,1606,0,1582,0,523,0,1606,0,1605,0,523,0,1606,0,1609,0,523,0,1606,0,1610,0,523,0,1607,0,1580,0,523,0,1607,0,1605,0,523,0,1607,0,1609,0,523,0,1607,0,1610,0,523,0,1610,0,1580,0,523,0,1610,0,1581,0,523,0,1610,0,1582,0,523,0,1610,0,1605,0,523,0,1610,0,1609,0,523,0,1610,0,1610,0,523,0,1584,0,1648,0,523,0,1585,0,1648,0,523,0,1609,0,1648,0,779,0,32,0,1612,0,1617,0,779,0,32,0,1613,0,1617,0,779,0,32,0,1614,0,1617,0,779,0,32,0,1615,0,1617,0,779,0,32,0,1616,0,1617,0,779,0,32,0,1617,0,1648,0,524,0,1574,0,1585,0,524,0,1574,0,1586,0,524,0,1574,0,1605,0,524,0,1574,0,1606,0,524,0,1574,0,1609,0,524,0,1574,0,1610,0,524,0,1576,0,1585,0,524,0,1576,0,1586,0,524,0,1576,0,1605,0,524,0,1576,0,1606,0,524,0,1576,0,1609,0,524,0,1576,0,1610,0,524,0,1578,0,1585,0,524,0,1578,0,1586,0,524,0,1578,0,1605,0,524,0,1578,0,1606,0,524,0,1578,0,1609,0,524,0,1578,0,1610,0,524,0,1579,0,1585,0,524,0,1579,0,1586,0,524,0,1579,0,1605,0,524,0,1579,0,1606,0,524,0,1579,0,1609,0,524,0,1579,0,1610,0,524,0,1601,0,1609,0,524,0,1601,0,1610,0,524,0,1602,0,1609,0,524,0,1602,0,1610,0,524,0,1603,0,1575,0,524,0,1603,0,1604,0,524,0,1603,0,1605,0,524,0,1603,0,1609,0,524,0,1603,0,1610,0,524,0,1604,0,1605,0,524,0,1604,0,1609,0,524,0,1604,0,1610,0,524,0,1605,0,1575,0,524,0,1605,0,1605,0,524,0,1606,0,1585,0,524,0,1606,0,1586,0,524,0,1606,0,1605,0,524,0,1606,0,1606,0,524,0,1606,0,1609,0,524,0,1606,0,1610,0,524,0,1609,0,1648,0,524,0,1610,0,1585,0,524,0,1610,0,1586,0,524,0,1610,0,1605,0,524,0,1610,0,1606,0,524,0,1610,0,1609,0,524,0,1610,0,1610,0,525,0,1574,0,1580,0,525,0,1574,0,1581,0,525,0,1574,0,1582,0,525,0,1574,0,1605,0,525,0,1574,0,1607,0,525,0,1576,0,1580,0,525,0,1576,0,1581,0,525,0,1576,0,1582,0,525,0,1576,0,1605,0,525,0,1576,0,1607,0,525,0,1578,0,1580,0,525,0,1578,0,1581,0,525,0,1578,0,1582,0,525,0,1578,0,1605,0,525,0,1578,0,1607,0,525,0,1579,0,1605,0,525,0,1580,0,1581,0,525,0,1580,0,1605,0,525,0,1581,0,1580,0,525,0,1581,0,1605,0,525,0,1582,0,1580,0,525,0,1582,0,1605,0,525,0,1587,0,1580,0,525,0,1587,0,1581,0,525,0,1587,0,1582,0,525,0,1587,0,1605,0,525,0,1589,0,1581,0,525,0,1589,0,1582,0,525,0,1589,0,1605,0,525,0,1590,0,1580,0,525,0,1590,0,1581,0,525,0,1590,0,1582,0,525,0,1590,0,1605,0,525,0,1591,0,1581,0,525,0,1592,0,1605,0,525,0,1593,0,1580,0,525,0,1593,0,1605,0,525,0,1594,0,1580,0,525,0,1594,0,1605,0,525,0,1601,0,1580,0,525,0,1601,0,1581,0,525,0,1601,0,1582,0,525,0,1601,0,1605,0,525,0,1602,0,1581,0,525,0,1602,0,1605,0,525,0,1603,0,1580,0,525,0,1603,0,1581,0,525,0,1603,0,1582,0,525,0,1603,0,1604,0,525,0,1603,0,1605,0,525,0,1604,0,1580,0,525,0,1604,0,1581,0,525,0,1604,0,1582,0,525,0,1604,0,1605,0,525,0,1604,0,1607,0,525,0,1605,0,1580,0,525,0,1605,0,1581,0,525,0,1605,0,1582,0,525,0,1605,0,1605,0,525,0,1606,0,1580,0,525,0,1606,0,1581,0,525,0,1606,0,1582,0,525,0,1606,0,1605,0,525,0,1606,0,1607,0,525,0,1607,0,1580,0,525,0,1607,0,1605,0,525,0,1607,0,1648,0,525,0,1610,0,1580,0,525,0,1610,0,1581,0,525,0,1610,0,1582,0,525,0,1610,0,1605,0,525,0,1610,0,1607,0,526,0,1574,0,1605,0,526,0,1574,0,1607,0,526,0,1576,0,1605,0,526,0,1576,0,1607,0,526,0,1578,0,1605,0,526,0,1578,0,1607,0,526,0,1579,0,1605,0,526,0,1579,0,1607,0,526,0,1587,0,1605,0,526,0,1587,0,1607,0,526,0,1588,0,1605,0,526,0,1588,0,1607,0,526,0,1603,0,1604,0,526,0,1603,0,1605,0,526,0,1604,0,1605,0,526,0,1606,0,1605,0,526,0,1606,0,1607,0,526,0,1610,0,1605,0,526,0,1610,0,1607,0,782,0,1600,0,1614,0,1617,0,782,0,1600,0,1615,0,1617,0,782,0,1600,0,1616,0,1617,0,523,0,1591,0,1609,0,523,0,1591,0,1610,0,523,0,1593,0,1609,0,523,0,1593,0,1610,0,523,0,1594,0,1609,0,523,0,1594,0,1610,0,523,0,1587,0,1609,0,523,0,1587,0,1610,0,523,0,1588,0,1609,0,523,0,1588,0,1610,0,523,0,1581,0,1609,0,523,0,1581,0,1610,0,523,0,1580,0,1609,0,523,0,1580,0,1610,0,523,0,1582,0,1609,0,523,0,1582,0,1610,0,523,0,1589,0,1609,0,523,0,1589,0,1610,0,523,0,1590,0,1609,0,523,0,1590,0,1610,0,523,0,1588,0,1580,0,523,0,1588,0,1581,0,523,0,1588,0,1582,0,523,0,1588,0,1605,0,523,0,1588,0,1585,0,523,0,1587,0,1585,0,523,0,1589,0,1585,0,523,0,1590,0,1585,0,524,0,1591,0,1609,0,524,0,1591,0,1610,0,524,0,1593,0,1609,0,524,0,1593,0,1610,0,524,0,1594,0,1609,0,524,0,1594,0,1610,0,524,0,1587,0,1609,0,524,0,1587,0,1610,0,524,0,1588,0,1609,0,524,0,1588,0,1610,0,524,0,1581,0,1609,0,524,0,1581,0,1610,0,524,0,1580,0,1609,0,524,0,1580,0,1610,0,524,0,1582,0,1609,0,524,0,1582,0,1610,0,524,0,1589,0,1609,0,524,0,1589,0,1610,0,524,0,1590,0,1609,0,524,0,1590,0,1610,0,524,0,1588,0,1580,0,524,0,1588,0,1581,0,524,0,1588,0,1582,0,524,0,1588,0,1605,0,524,0,1588,0,1585,0,524,0,1587,0,1585,0,524,0,1589,0,1585,0,524,0,1590,0,1585,0,525,0,1588,0,1580,0,525,0,1588,0,1581,0,525,0,1588,0,1582,0,525,0,1588,0,1605,0,525,0,1587,0,1607,0,525,0,1588,0,1607,0,525,0,1591,0,1605,0,526,0,1587,0,1580,0,526,0,1587,0,1581,0,526,0,1587,0,1582,0,526,0,1588,0,1580,0,526,0,1588,0,1581,0,526,0,1588,0,1582,0,526,0,1591,0,1605,0,526,0,1592,0,1605,0,524,0,1575,0,1611,0,523,0,1575,0,1611,0,781,0,1578,0,1580,0,1605,0,780,0,1578,0,1581,0,1580,0,781,0,1578,0,1581,0,1580,0,781,0,1578,0,1581,0,1605,0,781,0,1578,0,1582,0,1605,0,781,0,1578,0,1605,0,1580,0,781,0,1578,0,1605,0,1581,0,781,0,1578,0,1605,0,1582,0,780,0,1580,0,1605,0,1581,0,781,0,1580,0,1605,0,1581,0,780,0,1581,0,1605,0,1610,0,780,0,1581,0,1605,0,1609,0,781,0,1587,0,1581,0,1580,0,781,0,1587,0,1580,0,1581,0,780,0,1587,0,1580,0,1609,0,780,0,1587,0,1605,0,1581,0,781,0,1587,0,1605,0,1581,0,781,0,1587,0,1605,0,1580,0,780,0,1587,0,1605,0,1605,0,781,0,1587,0,1605,0,1605,0,780,0,1589,0,1581,0,1581,0,781,0,1589,0,1581,0,1581,0,780,0,1589,0,1605,0,1605,0,780,0,1588,0,1581,0,1605,0,781,0,1588,0,1581,0,1605,0,780,0,1588,0,1580,0,1610,0,780,0,1588,0,1605,0,1582,0,781,0,1588,0,1605,0,1582,0,780,0,1588,0,1605,0,1605,0,781,0,1588,0,1605,0,1605,0,780,0,1590,0,1581,0,1609,0,780,0,1590,0,1582,0,1605,0,781,0,1590,0,1582,0,1605,0,780,0,1591,0,1605,0,1581,0,781,0,1591,0,1605,0,1581,0,781,0,1591,0,1605,0,1605,0,780,0,1591,0,1605,0,1610,0,780,0,1593,0,1580,0,1605,0,780,0,1593,0,1605,0,1605,0,781,0,1593,0,1605,0,1605,0,780,0,1593,0,1605,0,1609,0,780,0,1594,0,1605,0,1605,0,780,0,1594,0,1605,0,1610,0,780,0,1594,0,1605,0,1609,0,780,0,1601,0,1582,0,1605,0,781,0,1601,0,1582,0,1605,0,780,0,1602,0,1605,0,1581,0,780,0,1602,0,1605,0,1605,0,780,0,1604,0,1581,0,1605,0,780,0,1604,0,1581,0,1610,0,780,0,1604,0,1581,0,1609,0,781,0,1604,0,1580,0,1580,0,780,0,1604,0,1580,0,1580,0,780,0,1604,0,1582,0,1605,0,781,0,1604,0,1582,0,1605,0,780,0,1604,0,1605,0,1581,0,781,0,1604,0,1605,0,1581,0,781,0,1605,0,1581,0,1580,0,781,0,1605,0,1581,0,1605,0,780,0,1605,0,1581,0,1610,0,781,0,1605,0,1580,0,1581,0,781,0,1605,0,1580,0,1605,0,781,0,1605,0,1582,0,1580,0,781,0,1605,0,1582,0,1605,0,781,0,1605,0,1580,0,1582,0,781,0,1607,0,1605,0,1580,0,781,0,1607,0,1605,0,1605,0,781,0,1606,0,1581,0,1605,0,780,0,1606,0,1581,0,1609,0,780,0,1606,0,1580,0,1605,0,781,0,1606,0,1580,0,1605,0,780,0,1606,0,1580,0,1609,0,780,0,1606,0,1605,0,1610,0,780,0,1606,0,1605,0,1609,0,780,0,1610,0,1605,0,1605,0,781,0,1610,0,1605,0,1605,0,780,0,1576,0,1582,0,1610,0,780,0,1578,0,1580,0,1610,0,780,0,1578,0,1580,0,1609,0,780,0,1578,0,1582,0,1610,0,780,0,1578,0,1582,0,1609,0,780,0,1578,0,1605,0,1610,0,780,0,1578,0,1605,0,1609,0,780,0,1580,0,1605,0,1610,0,780,0,1580,0,1581,0,1609,0,780,0,1580,0,1605,0,1609,0,780,0,1587,0,1582,0,1609,0,780,0,1589,0,1581,0,1610,0,780,0,1588,0,1581,0,1610,0,780,0,1590,0,1581,0,1610,0,780,0,1604,0,1580,0,1610,0,780,0,1604,0,1605,0,1610,0,780,0,1610,0,1581,0,1610,0,780,0,1610,0,1580,0,1610,0,780,0,1610,0,1605,0,1610,0,780,0,1605,0,1605,0,1610,0,780,0,1602,0,1605,0,1610,0,780,0,1606,0,1581,0,1610,0,781,0,1602,0,1605,0,1581,0,781,0,1604,0,1581,0,1605,0,780,0,1593,0,1605,0,1610,0,780,0,1603,0,1605,0,1610,0,781,0,1606,0,1580,0,1581,0,780,0,1605,0,1582,0,1610,0,781,0,1604,0,1580,0,1605,0,780,0,1603,0,1605,0,1605,0,780,0,1604,0,1580,0,1605,0,780,0,1606,0,1580,0,1581,0,780,0,1580,0,1581,0,1610,0,780,0,1581,0,1580,0,1610,0,780,0,1605,0,1580,0,1610,0,780,0,1601,0,1605,0,1610,0,780,0,1576,0,1581,0,1610,0,781,0,1603,0,1605,0,1605,0,781,0,1593,0,1580,0,1605,0,781,0,1589,0,1605,0,1605,0,780,0,1587,0,1582,0,1610,0,780,0,1606,0,1580,0,1610,0,779,0,1589,0,1604,0,1746,0,779,0,1602,0,1604,0,1746,0,1035,0,1575,0,1604,0,1604,0,1607,0,1035,0,1575,0,1603,0,1576,0,1585,0,1035,0,1605,0,1581,0,1605,0,1583,0,1035,0,1589,0,1604,0,1593,0,1605,0,1035,0,1585,0,1587,0,1608,0,1604,0,1035,0,1593,0,1604,0,1610,0,1607,0,1035,0,1608,0,1587,0,1604,0,1605,0,779,0,1589,0,1604,0,1609,0,4619,0,1589,0,1604,0,1609,0,32,0,1575,0,1604,0,1604,0,1607,0,32,0,1593,0,1604,0,1610,0,1607,0,32,0,1608,0,1587,0,1604,0,1605,0,2059,0,1580,0,1604,0,32,0,1580,0,1604,0,1575,0,1604,0,1607,0,1035,0,1585,0,1740,0,1575,0,1604,0,265,0,44,0,265,0,12289,0,265,0,12290,0,265,0,58,0,265,0,59,0,265,0,33,0,265,0,63,0,265,0,12310,0,265,0,12311,0,265,0,8230,0,265,0,8229,0,265,0,8212,0,265,0,8211,0,265,0,95,0,265,0,95,0,265,0,40,0,265,0,41,0,265,0,123,0,265,0,125,0,265,0,12308,0,265,0,12309,0,265,0,12304,0,265,0,12305,0,265,0,12298,0,265,0,12299,0,265,0,12296,0,265,0,12297,0,265,0,12300,0,265,0,12301,0,265,0,12302,0,265,0,12303,0,265,0,91,0,265,0,93,0,258,0,8254,0,258,0,8254,0,258,0,8254,0,258,0,8254,0,258,0,95,0,258,0,95,0,258,0,95,0,271,0,44,0,271,0,12289,0,271,0,46,0,271,0,59,0,271,0,58,0,271,0,63,0,271,0,33,0,271,0,8212,0,271,0,40,0,271,0,41,0,271,0,123,0,271,0,125,0,271,0,12308,0,271,0,12309,0,271,0,35,0,271,0,38,0,271,0,42,0,271,0,43,0,271,0,45,0,271,0,60,0,271,0,62,0,271,0,61,0,271,0,92,0,271,0,36,0,271,0,37,0,271,0,64,0,523,0,32,0,1611,0,526,0,1600,0,1611,0,523,0,32,0,1612,0,523,0,32,0,1613,0,523,0,32,0,1614,0,526,0,1600,0,1614,0,523,0,32,0,1615,0,526,0,1600,0,1615,0,523,0,32,0,1616,0,526,0,1600,0,1616,0,523,0,32,0,1617,0,526,0,1600,0,1617,0,523,0,32,0,1618,0,526,0,1600,0,1618,0,267,0,1569,0,267,0,1570,0,268,0,1570,0,267,0,1571,0,268,0,1571,0,267,0,1572,0,268,0,1572,0,267,0,1573,0,268,0,1573,0,267,0,1574,0,268,0,1574,0,269,0,1574,0,270,0,1574,0,267,0,1575,0,268,0,1575,0,267,0,1576,0,268,0,1576,0,269,0,1576,0,270,0,1576,0,267,0,1577,0,268,0,1577,0,267,0,1578,0,268,0,1578,0,269,0,1578,0,270,0,1578,0,267,0,1579,0,268,0,1579,0,269,0,1579,0,270,0,1579,0,267,0,1580,0,268,0,1580,0,269,0,1580,0,270,0,1580,0,267,0,1581,0,268,0,1581,0,269,0,1581,0,270,0,1581,0,267,0,1582,0,268,0,1582,0,269,0,1582,0,270,0,1582,0,267,0,1583,0,268,0,1583,0,267,0,1584,0,268,0,1584,0,267,0,1585,0,268,0,1585,0,267,0,1586,0,268,0,1586,0,267,0,1587,0,268,0,1587,0,269,0,1587,0,270,0,1587,0,267,0,1588,0,268,0,1588,0,269,0,1588,0,270,0,1588,0,267,0,1589,0,268,0,1589,0,269,0,1589,0,270,0,1589,0,267,0,1590,0,268,0,1590,0,269,0,1590,0,270,0,1590,0,267,0,1591,0,268,0,1591,0,269,0,1591,0,270,0,1591,0,267,0,1592,0,268,0,1592,0,269,0,1592,0,270,0,1592,0,267,0,1593,0,268,0,1593,0,269,0,1593,0,270,0,1593,0,267,0,1594,0,268,0,1594,0,269,0,1594,0,270,0,1594,0,267,0,1601,0,268,0,1601,0,269,0,1601,0,270,0,1601,0,267,0,1602,0,268,0,1602,0,269,0,1602,0,270,0,1602,0,267,0,1603,0,268,0,1603,0,269,0,1603,0,270,0,1603,0,267,0,1604,0,268,0,1604,0,269,0,1604,0,270,0,1604,0,267,0,1605,0,268,0,1605,0,269,0,1605,0,270,0,1605,0,267,0,1606,0,268,0,1606,0,269,0,1606,0,270,0,1606,0,267,0,1607,0,268,0,1607,0,269,0,1607,0,270,0,1607,0,267,0,1608,0,268,0,1608,0,267,0,1609,0,268,0,1609,0,267,0,1610,0,268,0,1610,0,269,0,1610,0,270,0,1610,0,523,0,1604,0,1570,0,524,0,1604,0,1570,0,523,0,1604,0,1571,0,524,0,1604,0,1571,0,523,0,1604,0,1573,0,524,0,1604,0,1573,0,523,0,1604,0,1575,0,524,0,1604,0,1575,0,264,0,33,0,264,0,34,0,264,0,35,0,264,0,36,0,264,0,37,0,264,0,38,0,264,0,39,0,264,0,40,0,264,0,41,0,264,0,42,0,264,0,43,0,264,0,44,0,264,0,45,0,264,0,46,0,264,0,47,0,264,0,48,0,264,0,49,0,264,0,50,0,264,0,51,0,264,0,52,0,264,0,53,0,264,0,54,0,264,0,55,0,264,0,56,0,264,0,57,0,264,0,58,0,264,0,59,0,264,0,60,0,264,0,61,0,264,0,62,0,264,0,63,0,264,0,64,0,264,0,65,0,264,0,66,0,264,0,67,0,264,0,68,0,264,0,69,0,264,0,70,0,264,0,71,0,264,0,72,0,264,0,73,0,264,0,74,0,264,0,75,0,264,0,76,0,264,0,77,0,264,0,78,0,264,0,79,0,264,0,80,0,264,0,81,0,264,0,82,0,264,0,83,0,264,0,84,0,264,0,85,0,264,0,86,0,264,0,87,0,264,0,88,0,264,0,89,0,264,0,90,0,264,0,91,0,264,0,92,0,264,0,93,0,264,0,94,0,264,0,95,0,264,0,96,0,264,0,97,0,264,0,98,0,264,0,99,0,264,0,100,0,264,0,101,0,264,0,102,0,264,0,103,0,264,0,104,0,264,0,105,0,264,0,106,0,264,0,107,0,264,0,108,0,264,0,109,0,264,0,110,0,264,0,111,0,264,0,112,0,264,0,113,0,264,0,114,0,264,0,115,0,264,0,116,0,264,0,117,0,264,0,118,0,264,0,119,0,264,0,120,0,264,0,121,0,264,0,122,0,264,0,123,0,264,0,124,0,264,0,125,0,264,0,126,0,264,0,10629,0,264,0,10630,0,272,0,12290,0,272,0,12300,0,272,0,12301,0,272,0,12289,0,272,0,12539,0,272,0,12530,0,272,0,12449,0,272,0,12451,0,272,0,12453,0,272,0,12455,0,272,0,12457,0,272,0,12515,0,272,0,12517,0,272,0,12519,0,272,0,12483,0,272,0,12540,0,272,0,12450,0,272,0,12452,0,272,0,12454,0,272,0,12456,0,272,0,12458,0,272,0,12459,0,272,0,12461,0,272,0,12463,0,272,0,12465,0,272,0,12467,0,272,0,12469,0,272,0])
  3307. .concat([12471,0,272,0,12473,0,272,0,12475,0,272,0,12477,0,272,0,12479,0,272,0,12481,0,272,0,12484,0,272,0,12486,0,272,0,12488,0,272,0,12490,0,272,0,12491,0,272,0,12492,0,272,0,12493,0,272,0,12494,0,272,0,12495,0,272,0,12498,0,272,0,12501,0,272,0,12504,0,272,0,12507,0,272,0,12510,0,272,0,12511,0,272,0,12512,0,272,0,12513,0,272,0,12514,0,272,0,12516,0,272,0,12518,0,272,0,12520,0,272,0,12521,0,272,0,12522,0,272,0,12523,0,272,0,12524,0,272,0,12525,0,272,0,12527,0,272,0,12531,0,272,0,12441,0,272,0,12442,0,272,0,12644,0,272,0,12593,0,272,0,12594,0,272,0,12595,0,272,0,12596,0,272,0,12597,0,272,0,12598,0,272,0,12599,0,272,0,12600,0,272,0,12601,0,272,0,12602,0,272,0,12603,0,272,0,12604,0,272,0,12605,0,272,0,12606,0,272,0,12607,0,272,0,12608,0,272,0,12609,0,272,0,12610,0,272,0,12611,0,272,0,12612,0,272,0,12613,0,272,0,12614,0,272,0,12615,0,272,0,12616,0,272,0,12617,0,272,0,12618,0,272,0,12619,0,272,0,12620,0,272,0,12621,0,272,0,12622,0,272,0,12623,0,272,0,12624,0,272,0,12625,0,272,0,12626,0,272,0,12627,0,272,0,12628,0,272,0,12629,0,272,0,12630,0,272,0,12631,0,272,0,12632,0,272,0,12633,0,272,0,12634,0,272,0,12635,0,272,0,12636,0,272,0,12637,0,272,0,12638,0,272,0,12639,0,272,0,12640,0,272,0,12641,0,272,0,12642,0,272,0,12643,0,264,0,162,0,264,0,163,0,264,0,172,0,264,0,175,0,264,0,166,0,264,0,165,0,264,0,8361,0,272,0,9474,0,272,0,8592,0,272,0,8593,0,272,0,8594,0,272,0,8595,0,272,0,9632,0,272,0,9675,0,512,0,-10236,0,-9063,0,-10236,0,-9030,0,512,0,-10236,0,-9061,0,-10236,0,-9030,0,512,0,-10236,0,-9051,0,-10236,0,-9030,0,512,0,-10236,0,-8911,0,-10236,0,-8921,0,512,0,-10236,0,-8910,0,-10236,0,-8921,0,512,0,-10188,0,-8873,0,-10188,0,-8859,0,512,0,-10188,0,-8872,0,-10188,0,-8859,0,512,0,-10188,0,-8865,0,-10188,0,-8850,0,512,0,-10188,0,-8865,0,-10188,0,-8849,0,512,0,-10188,0,-8865,0,-10188,0,-8848,0,512,0,-10188,0,-8865,0,-10188,0,-8847,0,512,0,-10188,0,-8865,0,-10188,0,-8846,0,512,0,-10188,0,-8775,0,-10188,0,-8859,0,512,0,-10188,0,-8774,0,-10188,0,-8859,0,512,0,-10188,0,-8773,0,-10188,0,-8850,0,512,0,-10188,0,-8772,0,-10188,0,-8850,0,512,0,-10188,0,-8773,0,-10188,0,-8849,0,512,0,-10188,0,-8772,0,-10188,0,-8849,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,67,0,262,0,68,0,262,0,71,0,262,0,74,0,262,0,75,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,102,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,79,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,65,0,262,0,66,0,262,0,67,0,262,0,68,0,262,0,69,0,262,0,70,0,262,0,71,0,262,0,72,0,262,0,73,0,262,0,74,0,262,0,75,0,262,0,76,0,262,0,77,0,262,0,78,0,262,0,79,0,262,0,80,0,262,0,81,0,262,0,82,0,262,0,83,0,262,0,84,0,262,0,85,0,262,0,86,0,262,0,87,0,262,0,88,0,262,0,89,0,262,0,90,0,262,0,97,0,262,0,98,0,262,0,99,0,262,0,100,0,262,0,101,0,262,0,102,0,262,0,103,0,262,0,104,0,262,0,105,0,262,0,106,0,262,0,107,0,262,0,108,0,262,0,109,0,262,0,110,0,262,0,111,0,262,0,112,0,262,0,113,0,262,0,114,0,262,0,115,0,262,0,116,0,262,0,117,0,262,0,118,0,262,0,119,0,262,0,120,0,262,0,121,0,262,0,122,0,262,0,305,0,262,0,567,0,262,0,913,0,262,0,914,0,262,0,915,0,262,0,916,0,262,0,917,0,262,0,918,0,262,0,919,0,262,0,920,0,262,0,921,0,262,0,922,0,262,0,923,0,262,0,924,0,262,0,925,0,262,0,926,0,262,0,927,0,262,0,928,0,262,0,929,0,262,0,1012,0,262,0,931,0,262,0,932,0,262,0,933,0,262,0,934,0,262,0,935,0,262,0,936,0,262,0,937,0,262,0,8711,0,262,0,945,0,262,0,946,0,262,0,947,0,262,0,948,0,262,0,949,0,262,0,950,0,262,0,951,0,262,0,952,0,262,0,953,0,262,0,954,0,262,0,955,0,262,0,956,0,262,0,957,0,262,0,958,0,262,0,959,0,262,0,960,0,262,0,961,0,262,0,962,0,262,0,963,0,262,0,964,0,262,0,965,0,262,0,966,0,262,0,967,0,262,0,968,0,262,0,969,0,262,0,8706,0,262,0,1013,0,262,0,977,0,262,0,1008,0,262,0,981,0,262,0,1009,0,262,0,982,0,262,0,913,0,262,0,914,0,262,0,915,0,262,0,916,0,262,0,917,0,262,0,918,0,262,0,919,0,262,0,920,0,262,0,921,0,262,0,922,0,262,0,923,0,262,0,924,0,262,0,925,0,262,0,926,0,262,0,927,0,262,0,928,0,262,0,929,0,262,0,1012,0,262,0,931,0,262,0,932,0,262,0,933,0,262,0,934,0,262,0,935,0,262,0,936,0,262,0,937,0,262,0,8711,0,262,0,945,0,262,0,946,0,262,0,947,0,262,0,948,0,262,0,949,0,262,0,950,0,262,0,951,0,262,0,952,0,262,0,953,0,262,0,954,0,262,0,955,0,262,0,956,0,262,0,957,0,262,0,958,0,262,0,959,0,262,0,960,0,262,0,961,0,262,0,962,0,262,0,963,0,262,0,964,0,262,0,965,0,262,0,966,0,262,0,967,0,262,0,968,0,262,0,969,0,262,0,8706,0,262,0,1013,0,262,0,977,0,262,0,1008,0,262,0,981,0,262,0,1009,0,262,0,982,0,262,0,913,0,262,0,914,0,262,0,915,0,262,0,916,0,262,0,917,0,262,0,918,0,262,0,919,0,262,0,920,0,262,0,921,0,262,0,922,0,262,0,923,0,262,0,924,0,262,0,925,0,262,0,926,0,262,0,927,0,262,0,928,0,262,0,929,0,262,0,1012,0,262,0,931,0,262,0,932,0,262,0,933,0,262,0,934,0,262,0,935,0,262,0,936,0,262,0,937,0,262,0,8711,0,262,0,945,0,262,0,946,0,262,0,947,0,262,0,948,0,262,0,949,0,262,0,950,0,262,0,951,0,262,0,952,0,262,0,953,0,262,0,954,0,262,0,955,0,262,0,956,0,262,0,957,0,262,0,958,0,262,0,959,0,262,0,960,0,262,0,961,0,262,0,962,0,262,0,963,0,262,0,964,0,262,0,965,0,262,0,966,0,262,0,967,0,262,0,968,0,262,0,969,0,262,0,8706,0,262,0,1013,0,262,0,977,0,262,0,1008,0,262,0,981,0,262,0,1009,0,262,0,982,0,262,0,913,0,262,0,914,0,262,0,915,0,262,0,916,0,262,0,917,0,262,0,918,0,262,0,919,0,262,0,920,0,262,0,921,0,262,0,922,0,262,0,923,0,262,0,924,0,262,0,925,0,262,0,926,0,262,0,927,0,262,0,928,0,262,0,929,0,262,0,1012,0,262,0,931,0,262,0,932,0,262,0,933,0,262,0,934,0,262,0,935,0,262,0,936,0,262,0,937,0,262,0,8711,0,262,0,945,0,262,0,946,0,262,0,947,0,262,0,948,0,262,0,949,0,262,0,950,0,262,0,951,0,262,0,952,0,262,0,953,0,262,0,954,0,262,0,955,0,262,0,956,0,262,0,957,0,262,0,958,0,262,0,959,0,262,0,960,0,262,0,961,0,262,0,962,0,262,0,963,0,262,0,964,0,262,0,965,0,262,0,966,0,262,0,967,0,262,0,968,0,262,0,969,0,262,0,8706,0,262,0,1013,0,262,0,977,0,262,0,1008,0,262,0,981,0,262,0,1009,0,262,0,982,0,262,0,913,0,262,0,914,0,262,0,915,0,262,0,916,0,262,0,917,0,262,0,918,0,262,0,919,0,262,0,920,0,262,0,921,0,262,0,922,0,262,0,923,0,262,0,924,0,262,0,925,0,262,0,926,0,262,0,927,0,262,0,928,0,262,0,929,0,262,0,1012,0,262,0,931,0,262,0,932,0,262,0,933,0,262,0,934,0,262,0,935,0,262,0,936,0,262,0,937,0,262,0,8711,0,262,0,945,0,262,0,946,0,262,0,947,0,262,0,948,0,262,0,949,0,262,0,950,0,262,0,951,0,262,0,952,0,262,0,953,0,262,0,954,0,262,0,955,0,262,0,956,0,262,0,957,0,262,0,958,0,262,0,959,0,262,0,960,0,262,0,961,0,262,0,962,0,262,0,963,0,262,0,964,0,262,0,965,0,262,0,966,0,262,0,967,0,262,0,968,0,262,0,969,0,262,0,8706,0,262,0,1013,0,262,0,977,0,262,0,1008,0,262,0,981,0,262,0,1009,0,262,0,982,0,262,0,988,0,262,0,989,0,262,0,48,0,262,0,49,0,262,0,50,0,262,0,51,0,262,0,52,0,262,0,53,0,262,0,54,0,262,0,55,0,262,0,56,0,262,0,57,0,262,0,48,0,262,0,49,0,262,0,50,0,262,0,51,0,262,0,52,0,262,0,53,0,262,0,54,0,262,0,55,0,262,0,56,0,262,0,57,0,262,0,48,0,262,0,49,0,262,0,50,0,262,0,51,0,262,0,52,0,262,0,53,0,262,0,54,0,262,0,55,0,262,0,56,0,262,0,57,0,262,0,48,0,262,0,49,0,262,0,50,0,262,0,51,0,262,0,52,0,262,0,53,0,262,0,54,0,262,0,55,0,262,0,56,0,262,0,57,0,262,0,48,0,262,0,49,0,262,0,50,0,262,0,51,0,262,0,52,0,262,0,53,0,262,0,54,0,262,0,55,0,262,0,56,0,262,0,57,0,262,0,1575,0,262,0,1576,0,262,0,1580,0,262,0,1583,0,262,0,1608,0,262,0,1586,0,262,0,1581,0,262,0,1591,0,262,0,1610,0,262,0,1603,0,262,0,1604,0,262,0,1605,0,262,0,1606,0,262,0,1587,0,262,0,1593,0,262,0,1601,0,262,0,1589,0,262,0,1602,0,262,0,1585,0,262,0,1588,0,262,0,1578,0,262,0,1579,0,262,0,1582,0,262,0,1584,0,262,0,1590,0,262,0,1592,0,262,0,1594,0,262,0,1646,0,262,0,1722,0,262,0,1697,0,262,0,1647,0,262,0,1576,0,262,0,1580,0,262,0,1607,0,262,0,1581,0,262,0,1610,0,262,0,1603,0,262,0,1604,0,262,0,1605,0,262,0,1606,0,262,0,1587,0,262,0,1593,0,262,0,1601,0,262,0,1589,0,262,0,1602,0,262,0,1588,0,262,0,1578,0,262,0,1579,0,262,0,1582,0,262,0,1590,0,262,0,1594,0,262,0,1580,0,262,0,1581,0,262,0,1610,0,262,0,1604,0,262,0,1606,0,262,0,1587,0,262,0,1593,0,262,0,1589,0,262,0,1602,0,262,0,1588,0,262,0,1582,0,262,0,1590,0,262,0,1594,0,262,0,1722,0,262,0,1647,0,262,0,1576,0,262,0,1580,0,262,0,1607,0,262,0,1581,0,262,0,1591,0,262,0,1610,0,262,0,1603,0,262,0,1605,0,262,0,1606,0,262,0,1587,0,262,0,1593,0,262,0,1601,0,262,0,1589,0,262,0,1602,0,262,0,1588,0,262,0,1578,0,262,0,1579,0,262,0,1582,0,262,0,1590,0,262,0,1592,0,262,0,1594,0,262,0,1646,0,262,0,1697,0,262,0,1575,0,262,0,1576,0,262,0,1580,0,262,0,1583,0,262,0,1607,0,262,0,1608,0,262,0,1586,0,262,0,1581,0,262,0,1591,0,262,0,1610,0,262,0,1604,0,262,0,1605,0,262,0,1606,0,262,0,1587,0,262,0,1593,0,262,0,1601,0,262,0,1589,0,262,0,1602,0,262,0,1585,0,262,0,1588,0,262,0,1578,0,262,0,1579,0,262,0,1582,0,262,0,1584,0,262,0,1590,0,262,0,1592,0,262,0,1594,0,262,0,1576,0,262,0,1580,0,262,0,1583,0,262,0,1608,0,262,0,1586,0,262,0,1581,0,262,0,1591,0,262,0,1610,0,262,0,1604,0,262,0,1605,0,262,0,1606,0,262,0,1587,0,262,0,1593,0,262,0,1601,0,262,0,1589,0,262,0,1602,0,262,0,1585,0,262,0,1588,0,262,0,1578,0,262,0,1579,0,262,0,1582,0,262,0,1584,0,262,0,1590,0,262,0,1592,0,262,0,1594,0,514,0,48,0,46,0,514,0,48,0,44,0,514,0,49,0,44,0,514,0,50,0,44,0,514,0,51,0,44,0,514,0,52,0,44,0,514,0,53,0,44,0,514,0,54,0,44,0,514,0,55,0,44,0,514,0,56,0,44,0,514,0,57,0,44,0,770,0,40,0,65,0,41,0,770,0,40,0,66,0,41,0,770,0,40,0,67,0,41,0,770,0,40,0,68,0,41,0,770,0,40,0,69,0,41,0,770,0,40,0,70,0,41,0,770,0,40,0,71,0,41,0,770,0,40,0,72,0,41,0,770,0,40,0,73,0,41,0,770,0,40,0,74,0,41,0,770,0,40,0,75,0,41,0,770,0,40,0,76,0,41,0,770,0,40,0,77,0,41,0,770,0,40,0,78,0,41,0,770,0,40,0,79,0,41,0,770,0,40,0,80,0,41,0,770,0,40,0,81,0,41,0,770,0,40,0,82,0,41,0,770,0,40,0,83,0,41,0,770,0,40,0,84,0,41,0,770,0,40,0,85,0,41,0,770,0,40,0,86,0,41,0,770,0,40,0,87,0,41,0,770,0,40,0,88,0,41,0,770,0,40,0,89,0,41,0,770,0,40,0,90,0,41,0,770,0,12308,0,83,0,12309,0,263,0,67,0,263,0,82,0,519,0,67,0,68,0,519,0,87,0,90,0,266,0,65,0,266,0,66,0,266,0,67,0,266,0,68,0,266,0,69,0,266,0,70,0,266,0,71,0,266,0,72,0,266,0,73,0,266,0,74,0,266,0,75,0,266,0,76,0,266,0,77,0,266,0,78,0,266,0,79,0,266,0,80,0,266,0,81,0,266,0,82,0,266,0,83,0,266,0,84,0,266,0,85,0,266,0,86,0,266,0,87,0,266,0,88,0,266,0,89,0,266,0,90,0,522,0,72,0,86,0,522,0,77,0,86,0,522,0,83,0,68,0,522,0,83,0,83,0,778,0,80,0,80,0,86,0,522,0,87,0,67,0,515,0,77,0,67,0,515,0,77,0,68,0,522,0,68,0,74,0,522,0,12411,0,12363,0,522,0,12467,0,12467,0,266,0,12469,0,266,0,25163,0,266,0,23383,0,266,0,21452,0,266,0,12487,0,266,0,20108,0,266,0,22810,0,266,0,-30237,0,266,0,22825,0,266,0,20132,0,266,0,26144,0,266,0,28961,0,266,0,26009,0,266,0,21069,0,266,0,24460,0,266,0,20877,0,266,0,26032,0,266,0,21021,0,266,0,32066,0,266,0,29983,0,266,0,-29527,0,266,0,22768,0,266,0,21561,0,266,0,28436,0,266,0,25237,0,266,0,25429,0,266,0,19968,0,266,0,19977,0,266,0,-28598,0,266,0,24038,0,266,0,20013,0,266,0,21491,0,266,0,25351,0,266,0,-29328,0,266,0,25171,0,266,0,31105,0,266,0,31354,0,266,0,21512,0,266,0,28288,0,266,0,26377,0,266,0,26376,0,266,0,30003,0,266,0,21106,0,266,0,21942,0,770,0,12308,0,26412,0,12309,0,770,0,12308,0,19977,0,12309,0,770,0,12308,0,20108,0,12309,0,770,0,12308,0,23433,0,12309,0,770,0,12308,0,28857,0,12309,0,770,0,12308,0,25171,0,12309,0,770,0,12308,0,30423,0,12309,0,770,0,12308,0,21213,0,12309,0,770,0,12308,0,25943,0,12309,0,263,0,24471,0,263,0,21487,0,256,0,20029,0,256,0,20024,0,256,0,20033,0,256,0,-10176,0,-8926,0,256,0,20320,0,256,0,20398,0,256,0,20411,0,256,0,20482,0,256,0,20602,0,256,0,20633,0,256,0,20711,0,256,0,20687,0,256,0,13470,0,256,0,-10175,0,-8646,0,256,0,20813,0,256,0,20820,0,256,0,20836,0,256,0,20855,0,256,0,-10175,0,-8932,0,256,0,13497,0,256,0,20839,0,256,0,20877,0,256,0,-10175,0,-8885,0,256,0,20887,0,256,0,20900,0,256,0,20172,0,256,0,20908,0,256,0,20917,0,256,0,-10140,0,-8737,0,256,0,20981,0,256,0,20995,0,256,0,13535,0,256,0,21051,0,256,0,21062,0,256,0,21106,0,256,0,21111,0,256,0,13589,0,256,0,21191,0,256,0,21193,0,256,0,21220,0,256,0,21242,0,256,0,21253,0,256,0,21254,0,256,0,21271,0,256,0,21321,0,256,0,21329,0,256,0,21338,0,256,0,21363,0,256,0,21373,0,256,0,21375,0,256,0,21375,0,256,0,21375,0,256,0,-10174,0,-8660,0,256,0,28784,0,256,0,21450,0,256,0,21471,0,256,0,-10174,0,-8349,0,256,0,21483,0,256,0,21489,0,256,0,21510,0,256,0,21662,0,256,0,21560,0,256,0,21576,0,256,0,21608,0,256,0,21666,0,256,0,21750,0,256,0,21776,0,256,0,21843,0,256,0,21859,0,256,0,21892,0,256,0,21892,0,256,0,21913,0,256,0,21931,0,256,0,21939,0,256,0,21954,0,256,0,22294,0,256,0,22022,0,256,0,22295,0,256,0,22097,0,256,0,22132,0,256,0,20999,0,256,0,22766,0,256,0,22478,0,256,0,22516,0,256,0,22541,0,256,0,22411,0,256,0,22578,0,256,0,22577,0,256,0,22700,0,256,0,-10171,0,-8988,0,256,0,22770,0,256,0,22775,0,256,0,22790,0,256,0,22810,0,256,0,22818,0,256,0,22882,0,256,0,-10171,0,-8536,0,256,0,-10171,0,-8470,0,256,0,23020,0,256,0,23067,0,256,0,23079,0,256,0,23000,0,256,0,23142,0,256,0,14062,0,256,0,14076,0,256,0,23304,0,256,0,23358,0,256,0,23358,0,256,0,-10170,0,-8760,0,256,0,23491,0,256,0,23512,0,256,0,23527,0,256,0,23539,0,256,0,-10170,0,-8424,0,256,0,23551,0,256,0,23558,0,256,0,24403,0,256,0,23586,0,256,0,14209,0,256,0,23648,0,256,0,23662,0,256,0,23744,0,256,0,23693,0,256,0,-10169,0,-8732,0,256,0,23875,0,256,0,-10169,0,-8730,0,256,0,23918,0,256,0,23915,0,256,0,23932,0,256,0,24033,0,256,0,24034,0,256,0,14383,0,256,0,24061,0,256,0,24104,0,256,0,24125,0,256,0,24169,0,256,0,14434,0,256,0,-10168,0,-8829,0,256,0,14460,0,256,0,24240,0,256,0,24243,0,256,0,24246,0,256,0,24266,0,256,0,-10136,0,-8302,0,256,0,24318,0,256,0,-10168,0,-8399,0,256,0,-10168,0,-8399,0,256,0,-32255,0,256,0,24354,0,256,0,24354,0,256,0,14535,0,256,0,-10164,0,-8520,0,256,0,-10152,0,-8742,0,256,0,24418,0,256,0,24427,0,256,0,14563,0,256,0,24474,0,256,0,24525,0,256,0,24535,0,256,0,24569,0,256,0,24705,0,256,0,14650,0,256,0,14620,0,256,0,24724,0,256,0,-10167,0,-8492,0,256,0,24775,0,256,0,24904,0,256,0,24908,0,256,0,24910,0,256,0,24908,0,256,0,24954,0,256,0,24974,0,256,0,25010,0,256,0,24996,0,256,0,25007,0,256,0,25054,0,256,0,25074,0,256,0,25078,0,256,0,25104,0,256,0,25115,0,256,0,25181,0,256,0,25265,0,256,0,25300,0,256,0,25424,0,256,0,-10166,0,-8436,0,256,0,25405,0,256,0,25340,0,256,0,25448,0,256,0,25475,0,256,0,25572,0,256,0,-10166,0,-8207,0,256,0,25634,0,256,0,25541,0,256,0,25513,0,256,0,14894,0,256,0,25705,0,256,0,25726,0,256,0,25757,0,256,0,25719,0,256,0,14956,0,256,0,25935,0,256,0,25964,0,256,0,-10164,0,-9206,0,256,0,26083,0,256,0,26360,0,256,0,26185,0,256,0,15129,0,256,0,26257,0,256,0,15112,0,256,0,15076,0,256,0,20882,0,256,0,20885,0,256,0,26368,0,256,0,26268,0,256,0,-32595,0,256,0,17369,0,256,0,26391,0,256,0,26395,0,256,0,26401,0,256,0,26462,0,256,0,26451,0,256,0,-10164,0,-8253,0,256,0,15177,0,256,0,26618,0,256,0,26501,0,256,0,26706,0,256,0,26757,0,256,0,-10163,0,-9107,0,256,0,26766,0,256,0,26655,0,256,0,26900,0,256,0,15261,0,256,0,26946,0,256,0,27043,0,256,0,27114,0,256,0,27304,0,256,0,-10163,0,-8541,0,256,0,27355,0,256,0,15384,0,256,0,27425,0,256,0,-10162,0,-9049,0,256,0,27476,0,256,0,15438,0,256,0,27506,0,256,0,27551,0,256,0,27578,0,256,0,27579,0,256,0,-10162,0,-8563,0,256,0,-10169,0,-8949,0,256,0,-10162,0,-8454,0,256,0,27726,0,256,0,-10161,0,-9028,0,256,0,27839,0,256,0,27853,0,256,0,27751,0,256,0,27926,0,256,0,27966,0,256,0,28023,0,256,0,27969,0,256,0,28009,0,256,0,28024,0,256,0,28037,0,256,0,-10161,0,-8930,0,256,0,27956,0,256,0,28207,0,256,0,28270,0,256,0,15667,0,256,0,28363,0,256,0,28359,0,256,0,-10161,0,-8495,0,256,0,28153,0,256,0,28526,0,256,0,-10161,0,-8354,0,256,0,-10161,0,-8306,0,256,0,28614,0,256,0,28729,0,256,0,28702,0,256,0,28699,0,256,0,15766,0,256,0,28746,0,256,0,28797,0,256,0,28791,0,256,0,28845,0,256,0,-10175,0,-8923,0,256,0,28997,0,256,0,-10160,0,-8605,0,256,0,29084,0,256,0,-10160,0,-8277,0,256,0,29224,0,256,0,29237,0,256,0,29264,0,256,0,-10159,0,-8696,0,256,0,29312,0,256,0,29333,0,256,0,-10159,0,-8395,0,256,0,-10158,0,-9196,0,256,0,29562,0,256,0,29579,0,256,0,16044,0,256,0,29605,0,256,0,16056,0,256,0,16056,0,256,0,29767,0,256,0,29788,0,256,0,29809,0,256,0,29829,0,256,0,29898,0,256,0,16155,0,256,0,29988,0,256,0,-10157,0,-9162,0,256,0,30014,0,256,0,-10157,0,-9070,0,256,0,30064,0,256,0,-10168,0,-8801,0,256,0,30224,0,256,0,-10157,0,-8287,0,256,0,-10157,0,-8264,0,256,0,-10156,0,-9148,0,256,0,16380,0,256,0,16392,0,256,0,30452,0,256,0,-10156,0,-8973,0,256,0,-10156,0,-8974,0,256,0,-10156,0,-8935,0,256,0,-10156,0,-8909,0,256,0,30494,0,256,0,30495,0,256,0,30495,0,256,0,30538,0,256,0,16441,0,256,0,30603,0,256,0,16454,0,256,0,16534,0,256,0,-10155,0,-9187,0,256,0,30798,0,256,0,30860,0,256,0,30924,0,256,0,16611,0,256,0,-10155,0,-8666,0,256,0,31062,0,256,0,-10155,0,-8550,0,256,0,-10155,0,-8507,0,256,0,31119,0,256,0,31211,0,256,0,16687,0,256,0,31296,0,256,0,31306,0,256,0,31311,0,256,0,-10154,0,-8836,0,256,0,-10154,0,-8537,0,256,0,-10154,0,-8537,0,256,0,31470,0,256,0,16898,0,256,0,-10154,0,-8277,0,256,0,31686,0,256,0,31689,0,256,0,16935,0,256,0,-10153,0,-9088,0,256,0,31954,0,256,0,17056,0,256,0,31976,0,256,0,31971,0,256,0,32000,0,256,0,-10153,0,-8314,0,256,0,32099,0,256,0,17153,0,256,0,32199,0,256,0,32258,0,256,0,32325,0,256,0,17204,0,256,0,-10152,0,-8664,0,256,0,-10152,0,-8633,0,256,0,17241,0,256,0,-10152,0,-8487,0,256,0,32634,0,256,0,-10152,0,-8386,0,256,0,32661,0,256,0,32762,0,256,0,-32763,0,256,0,-10151,0,-8998,0,256,0,-10151,0,-8925,0,256,0,-32672,0,256,0,-10151,0,-8792,0,256,0,-32656,0,256,0,-10164,0,-8353,0,256,0,17365,0,256,0,-32590,0,256,0,-32509,0,256,0,17419,0,256,0,-32450,0,256,0,23221,0,256,0,-10151,0,-8281,0,256,0,-10151,0,-8267,0,256,0,-10164,0,-8301,0,256,0,-10164,0,-8292,0,256,0,-32255,0,256,0,-32252,0,256,0,-28770,0,256,0,17515,0,256,0,-32111,0,256,0,-32117,0,256,0,-32099,0,256,0,21171,0,256,0,-32079,0,256,0,-32077,0,256,0,-32067,0,256,0,-32026,0,256,0,-10150,0,-8388,0,256,0,-32027,0,256,0,-31971,0,256,0,-31901,0,256,0,-31827,0,256,0,-31965,0,256,0,-31811,0,256,0,-31769,0,256,0,-31657,0,256,0,-31917,0,256,0,-31798,0,256,0,-31796,0,256,0,-31780,0,256,0,-10149,0,-9162,0,256,0,-10149,0,-8853,0,256,0,-10149,0,-9003,0,256,0,17707,0,256,0,-31503,0,256,0,-31501,0,256,0,-31466,0,256,0,-10148,0,-8246,0,256,0,-31388,0,256,0,-10149,0,-8404,0,256,0,17757,0,256,0,17761,0,256,0,-10149,0,-8271,0,256,0,-10148,0,-9006,0,256,0,17771,0,256,0,-31152,0,256,0,-31140,0,256,0,-31129,0,256,0,-31127,0,256,0,-31063,0,256,0,-31096,0,256,0,-30962,0,256,0,-31006,0,256,0,-30855,0,256,0,-30936,0,256,0,-30869,0,256,0,-30842,0,256,0,17879,0,256,0,-30751,0,256,0,-30719,0,256,0,17913,0,256,0,-30624,0,256,0,-30621,0,256,0,-10147,0,-8601,0,256,0,-30505,0,256,0,-30498,0,256,0,17973,0,256,0,-30470,0,256,0,13499,0,256,0,-10146,0,-9042,0,256,0,-10146,0,-8858,0,256,0,18110,0,256,0,18119,0,256,0,-30048,0,256,0,-29971,0,256,0,-29814,0,256,0,-29611,0,256,0,-10145,0,-9048,0,256,0,-29525,0,256,0,-29503,0,256,0,-29413,0,256,0,-29321,0,256,0,-10145,0,-8401,0,256,0,-10174,0,-9212,0,256,0,-29237,0,256,0,-29252,0,256,0,-29200,0,256,0,-10174,0,-8994,0,256,0,-28972,0,256,0,-28872,0,256,0,-10143,0,-8750,0,256,0,-10143,0,-8723,0,256,0,-28524,0,256,0,-28431,0,256,0,-28399,0,256,0,-10143,0,-8402,0,256,0,-28389,0,256,0,-28104,0,256,0,-27945,0,256,0,-27944,0,256,0,-28036,0,256,0,-27655,0,256,0,-27627,0,256,0,-10142,0,-8198,0,256,0,-27253,0,256,0,18837,0,256,0,-27209,0,256,0,-10141,0,-8841,0,256,0,18918,0,256,0,-26941,0,256,0,23986,0,256,0,-26845,0,256,0,-10140,0,-8891,0,256,0,-10140,0,-8678,0,256,0,19054,0,256,0,19062,0,256,0,-26656,0,256,0,-10139,0,-9206,0,256,0,19122,0,256,0,-10139,0,-9066,0,256,0,-26613,0,256,0,-26613,0,256,0,-26583,0,256,0,-10139,0,-8778,0,256,0,-26398,0,256,0,19251,0,256,0,-26327,0,256,0,-26201,0,256,0,-26174,0,256,0,-26114,0,256,0,19406,0,256,0,-10138,0,-8400,0,256,0,-25838,0,256,0,-25536,0,256,0,-25347,0,256,0,19662,0,256,0,19693,0,256,0,-25241,0,256,0,-10136,0,-9010,0,256,0,19704,0,256,0,-10136,0,-8955,0,256,0,-10136,0,-8690,0,256,0,-10136,0,-8559,0,256,0,-24901,0,256,0,19798,0,256,0,-24839,0,256,0,-24834,0,256,0,-24827,0,256,0,-24817,0,256,0,-24810,0,256,0,-24773,0,256,0,-10135,0,-8704,0,0,0,0,0,0,0])
  3308. , ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0].concat(["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0])
  3309. .concat(["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3310. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3311. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3312. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3313. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3314. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3315. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3316. , ALLOC_NONE, 58072);
  3317. allocate([0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,11,0,12,0,0,0,13,0,0,0,0,0,0,0,14,0,15,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,17,0,18,0,0,0,19,0,0,0,20,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,22,0,0,0,23,0,0,0,0,0,24,0,0,0,25,0,26,0,0,0,27,0,0,0,0,0,28,0,29,0,30,0,31,0,32,0,33,0,34,0,0,0,35,0,0,0,36,0,37,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,39,0,40,0,41,0,42,0,43,0,0,0,44,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,0,0,0,0,52,0,53,0,54,0,55,0,56,0,57,0,58,0,0,0,59,0,0,0,0,0,60,0,61,0,0,0,0,0,0,0,0,0,62,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,65,0,0,0,66,0,0,0,0,0,67,0,0,0,0,0,68,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,70,0,0,0,71,0,72,0,0,0,73,0,0,0,0,0,74,0,0,0,0,0,75,0,76,0,0,0,0,0,0,0,77,0,78,0,0,0,79,0,0,0,80,0,0,0,0,0,81,0,0,0,82,0,83,0,0,0,84,0,0,0,0,0,85,0,86,0,87,0,88,0,89,0,90,0,91,0,0,0,92,0,0,0,0,0,93,0,94,0,0,0,0,0,95,0,96,0,0,0,0,0,97,0,0,0,98,0,99,0,0,0,100,0,0,0,101,0,0,0,0,0,102,0,0,0,0,0,103,0,104,0,0,0,105,0,0,0,106,0,0,0,0,0,107,0,0,0,108,0,0,0,0,0,0,0,0,0,109,0,0,0,110,0,0,0,0,0,111,0,0,0,112,0,113,0,0,0,114,0,0,0,0,0,115,0,116,0,117,0,118,0,119,0,120,0,121,0,0,0,122,0,123,0,0,0,124,0,125,0,0,0,0,0,0,0,0,0,126,0,0,0,0,0,127,0,0,0,0,0,0,0,128,0,129,0,0,0,130,0,131,0,0,0,0,0,0,0,0,0,0,0,0,0,132,0,133,0,134,0,135,0,136,0,137,0,0,0,0,0,0,0,138,0,0,0,0,0,0,0,139,0,140,0,0,0,141,0,0,0,142,0,0,0,0,0,143,0,0,0,0,0,0,0,0,0,144,0,0,0,0,0,145,0,146,0,147,0,148,0,149,0,150,0,151,0,0,0,152,0,153,0,0,0,154,0,0,0,0,0,0,0,155,0,156,0,0,0,0,0,0,0,0,0,157,0,0,0,0,0,158,0,159,0,0,0,160,0,0,0,161,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,163,0,0,0,164,0,0,0,0,0,165,0,0,0,166,0,167,0,0,0,168,0,0,0,0,0,169,0,170,0,171,0,172,0,173,0,174,0,175,0,0,0,176,0,0,0,177,0,178,0,179,0,0,0,0,0,0,0,0,0,0,0,0,0,180,0,181,0,182,0,183,0,184,0,0,0,185,0,0,0,0,0,0,0,0,0,186,0,0,0,0,0,187,0,0,0,188,0,0,0,189,0,0,0,0,0,190,0,0,0,191,0,0,0,192,0,193,0,0,0,0,0,194,0,195,0,196,0,197,0,198,0,199,0,200,0,0,0,201,0,0,0,0,0,202,0,203,0,0,0,0,0,0,0,0,0,204,0,0,0,0,0,0,0,205,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,207,0,0,0,0,0,208,0,0,0,209,0,0,0,0,0,210,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,212,0,0,0,0,0,213,0,0,0,214,0,215,0,0,0,216,0,0,0,0,0,217,0,0,0,0,0,218,0,219,0,0,0,0,0,0,0,220,0,221,0,0,0,222,0,0,0,223,0,0,0,0,0,224,0,0,0,225,0,226,0,0,0,227,0,0,0,0,0,228,0,229,0,230,0,231,0,232,0,233,0,234,0,0,0,235,0,0,0,0,0,236,0,237,0,0,0,0,0,238,0,239,0,0,0,0,0,240,0,0,0,241,0,242,0,0,0,243,0,0,0,244,0,0,0,0,0,245,0,0,0,0,0,246,0,247,0,0,0,248,0,0,0,249,0,0,0,0,0,250,0,0,0,251,0,0,0,0,0,0,0,0,0,252,0,0,0,253,0,0,0,0,0,254,0,0,0,255,0,256,0,0,0,257,0,0,0,0,0,258,0,259,0,260,0,261,0,262,0,263,0,264,0,0,0,265,0,266,0,0,0,267,0,268,0,0,0,0,0,0,0,0,0,269,0,0,0,0,0,270,0,0,0,0,0,0,0,271,0,272,0,0,0,273,0,274,0,0,0,0,0,0,0,275,0,0,0,0,0,0,0,0,0,0,0,0,0,276,0,277,0,278,0,279,0,280,0,281,0,0,0,0,0,0,0,282,0,0,0,0,0,0,0,283,0,284,0,0,0,285,0,0,0,286,0,0,0,0,0,287,0,0,0,0,0,0,0,0,0,288,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,290,0,0,0,291,0,292,0,0,0,0,0,293,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,295,0,0,0,0,0,0,0,296,0,0,0,297,0,0,0,298,0,0,0,0,0,0,0,299,0,300,0,0,0,0,0,301,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,303,0,304,0,0,0,0,0,305,0,0,0,0,0,0,0,306,0,0,0,307,0,308,0,0,0,0,0,309,0,0,0,310,0,0,0,0,0,0,0,311,0,0,0,312,0,0,0,0,0,313,0,0,0,0,0,314,0,315,0,0,0,0,0,316,0,0,0,0,0,0,0,0,0,0,0,317,0,0,0,318,0,0,0,0,0,0,0,319,0,0,0,320,0,0,0,321,0,0,0,0,0,0,0,322,0,323,0,0,0,0,0,324,0,0,0,0,0,0,0,325,0,0,0,0,0,0,0,326,0,327,0,0,0,0,0,328,0,0,0,0,0,0,0,329,0,0,0,330,0,331,0,0,0,0,0,332,0,0,0,333,0,0,0,0,0,0,0,334,0,0,0,335,0,0,0,0,0,336,0,0,0,0,0,337,0,338,0,0,0,0,0,339,0,0,0,0,0,0,0,340,0,341,0,0,0,0,0,342,0,0,0,0,0,0,0,343,0,0,0,0,0,0,0,344,0,0,0,0,0,0,0,345,0,0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0,0,347,0,0,0,0,0,0,0,348,0,0,0,0,0,0,0,349,0,0,0,0,0,0,0,350,0,351,0,0,0,0,0,0,0,352,0,0,0,0,0,0,0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,354,0,0,0,0,0,0,0,355,0,356,0,357,0,0,0,0,0,358,0,0,0,0,0,0,0,359,0,0,0,0,0,0,0,360,0,361,0,0,0,0,0,362,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,364,0,365,0,0,0,0,0,366,0,0,0,0,0,0,0,367,0,0,0,0,0,0,0,368,0,369,0,0,0,0,0,370,0,0,0,0,0,0,0,371,0,0,0,0,0,0,0,0,0,372,0,0,0,0,0,0,0,0,0,373,0,0,0,0,0,0,0,374,0,0,0,0,0,0,0,375,0,0,0,0,0,0,0,376,0,0,0,0,0,0,0,377,0,0,0,0,0,0,0,378,0,0,0,0,0,0,0,379,0,0,0,0,0,0,0,380,0,0,0,0,0,381,0,0,0,0,0,382,0,0,0,383,0,0,0,0,0,0,0,0,0,384,0,0,0,0,0,385,0,0,0,386,0,0,0,0,0,0,0,0,0,0,0,0,0,387,0,388,0,0,0,0,0,0,0,0,0,0,0,0,0,389,0,0,0,0,0,390,0,0,0,391,0,0,0,392,0,393,0,0,0,0,0,0,0,394,0,395,0,0,0,0,0,0,0,0,0,0,0,0,0,396,0,0,0,0,0,0,0,397,0,398,0,0,0,399,0,400,0,0,0,0,0,0,0,401,0,402,0,0,0,0,0,0,0,0,0,0,0,0,0,403,0,0,0,0,0,404,0,0,0,0,0,0,0,405,0,0,0,0,0,0,0,406,0,0,0,407,0,0,0,408,0,0,0,0,0,0,0,0,0,409,0,0,0,0,0,410,0,0,0,411,0,0,0,0,0,0,0,0,0,0,0,0,0,412,0,413,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,415,0,0,0,416,0,0,0,417,0,418,0,0,0,0,0,0,0,419,0,0,0,0,0,420,0,0,0,421,0,0,0,0,0,0,0,0,0,0,0,0,0,422,0,0,0,0,0,0,0,423,0,424,0,0,0,425,0,426,0,0,0,0,0,0,0,427,0,0,0,0,0,428,0,0,0,429,0,0,0,0,0,0,0,0,0,0,0,0,0,430,0,0,0,0,0,431,0,0,0,432,0,0,0,0,0,0,0,0,0,0,0,433,0,0,0,434,0,0,0,0,0,0,0,0,0,0,0,435,0,0,0,0,0,0,0,436,0,0,0,437,0,0,0,0,0,438,0,0,0,0,0,0,0,439,0,0,0,0,0,440,0,441,0,442,0,0,0,0,0,0,0,443,0,0,0,444,0,445,0,0,0,0,0,446,0,447,0,0,0,0,0,0,0,448,0,449,0,0,0,450,0,451,0,452,0,0,0,0,0,0,0,0,0,0,0,0,0,453,0,0,0,0,0,454,0,455,0,0,0,456,0,0,0,0,0,0,0,0,0,0,0,457,0,0,0,0,0,0,0,458,0,0,0,0,0,0,0,459,0,0,0,0,0,460,0,461,0,462,0,0,0,0,0,0,0,463,0,0,0,464,0,465,0,0,0,0,0,466,0,467,0,0,0,0,0,0,0,468,0,469,0,0,0,470,0,471,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,473,0,0,0,0,0,474,0,475,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,478,0,0,0,0,0,0,0,479,0,0,0,0,0,0,0,480,0,0,0,0,0,481,0,0,0,0,0,0,0,482,0,0,0,0,0,0,0,0,0,483,0,0,0,0,0,0,0,484,0,0,0,0,0,0,0,485,0,0,0,0,0,0,0,486,0,0,0,0,0,0,0,487,0,488,0,0,0,0,0,0,0,0,0,0,0,0,0,489,0,0,0,0,0,0,0,490,0,0,0,0,0,0,0,491,0,0,0,0,0,0,0,492,0,0,0,0,0,0,0,493,0,494,0,0,0,0,0,0,0,495,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,497,0,0,0,0,0,0,0,0,0,498,0,499,0,500,0,0,0,0,0,0,0,0,0,0,0,0,0,501,0,502,0,0,0,0,0,0,0,0,0,0,0,0,0,503,0,504,0,0,0,0,0,0,0,0,0,505,0,0,0,0,0,0,0,506,0,507,0,0,0,0,0,508,0,0,0,0,0,0,0,0,0,509,0,510,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,512,0,513,0,0,0,0,0,0,0,0,0,0,0,0,0,514,0,0,0,515,0,0,0,0,0,0,0,516,0,0,0,0,0,0,0,517,0,0,0,0,0,0,0,518,0,0,0,0,0,0,0,519,0,0,0,0,0,0,0,520,0,0,0,0,0,0,0,521,0,0,0,0,0,0,0,522,0,0,0,0,0,0,0,523,0,0,0,0,0,0,0,524,0,0,0,0,0,0,0,525,0,0,0,0,0,0,0,526,0,0,0,0,0,0,0,0,0,527,0,0,0,0,0,0,0,528,0,0,0,0,0,0,0,529,0,0,0,0,0,0,0,530,0,0,0,0,0,0,0,0,0,531,0,0,0,0,0,0,0,532,0,0,0,533,0,534,0,0,0,0,0,535,0,536,0,0,0,0,0,537,0,0,0,0,0,0,0,538,0,0,0,0,0,0,0,539,0,0,0,0,0,0,0,540,0,0,0,0,0,541,0,0,0,0,0,0,0,0,0,0,0,542,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,544,0,0,0,0,0,0,0,545,0,0,0,0,0,0,0,546,0,0,0,0,0,0,0,547,0,0,0,0,0,0,0,548,0,0,0,0,0,0,0,549,0,0,0,0,0,0,0,550,0,0,0,551,0,0,0,0,0,0,0,0,0,0,0,552,0,0,0,553,0,0,0,0,0,0,0,0,0,0,0,554,0,0,0,0,0,0,0,555,0,0,0,0,0,0,0,556,0,0,0,0,0,0,0,557,0,0,0,0,0,0,0,558,0,0,0,0,0,0,0,559,0,0,0,0,0,0,0,560,0,0,0,561,0,0,0,0,0,0,0,562,0,0,0,0,0,0,0,563,0,0,0,0,0,0,0,564,0,0,0,0,0,0,0,565,0,0,0,0,0,0,0,0,0,0,0,566,0,0,0,567,0,0,0,0,0,0,0,0,0,0,0,568,0,0,0,0,0,0,0,569,0,0,0,0,0,0,0,570,0,0,0,0,0,0,0,571,0,0,0,0,0,0,0,572,0,0,0,0,0,0,0,573,0,0,0,0,0,0,0,574,0,0,0,575,0,0,0,0,0,0,0,0,0,0,0,576,0,0,0,577,0,0,0,0,0,0,0,0,0,0,0,578,0,0,0,0,0,0,0,579,0,0,0,0,0,0,0,580,0,0,0,0,0,0,0,581,0,0,0,0,0,0,0,582,0,0,0,0,0,0,0,583,0,0,0,0,0,0,0,584,0,0,0,585,0,0,0,0,0,0,0,0,0,0,0,586,0,0,0,587,0,0,0,0,0,0,0,0,0,0,0,588,0,0,0,589,0,0,0,0,0,0,0,0,0,0,0,590,0,0,0,591,0,0,0,0,0,0,0,0,0,0,0,592,0,0,0,593,0,0,0,0,0,0,0,594,0,0,0,0,0,0,0,595,0,0,0,0,0,0,0,596,0,0,0,0,0,0,0,597,0,0,0,0,0,0,0,0,0,0,0,598,0,0,0,599,0,0,0,0,0,0,0,0,0,0,0,600,0,0,0,601,0,0,0,0,0,0,0,0,0,0,0,602,0,0,0,603,0,0,0,0,0,0,0,0,0,0,0,604,0,0,0,605,0,0,0,0,0,0,0,0,0,0,0,606,0,0,0,0,0,0,0,607,0,0,0,0,0,0,0,608,0,0,0,0,0,0,0,609,0,0,0,0,0,0,0,610,0,0,0,0,0,0,0,611,0,0,0,0,0,0,0,612,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,614,0,0,0,615,0,0,0,0,0,0,0,0,0,0,0,616,0,0,0,0,0,0,0,617,0,0,0,0,0,0,0,618,0,0,0,0,0,0,0,619,0,0,0,0,0,0,0,620,0,0,0,0,0,0,0,621,0,0,0,0,0,0,0,622,0,0,0,0,0,0,0,623,0,0,0,0,0,0,0,624,0,0,0,0,0,0,0,625,0,0,0,0,0,0,0,626,0,0,0,627,0,0,0,0,0,0,0,0,0,0,0,628,0,0,0,0,0,0,0,629,0,0,0,0,0,0,0,630,0,0,0,631,0,0,0,0,0,0,0,0,0,0,0,632,0,0,0,0,0,633,0,0,0,0,0,0,0,634,0,0,0,0,0,0,0,635,0,0,0,0,0,0,0,636,0,0,0,0,0,0,0,637,0,0,0,0,0,0,0,638,0,0,0,0,0,0,0,639,0,0,0,0,0,0,0,640,0,0,0,0,0,0,0,641,0,0,0,0,0,0,0,642,0,0,0,0,0,0,0,643,0,0,0,0,0,0,0,644,0,0,0,0,0,0,0,645,0,0,0,0,0,0,0,646,0,0,0,0,0,0,0,647,0,0,0,0,0,0,0,648,0,0,0,0,0,0,0,649,0,0,0,0,0,0,0,650,0,0,0,0,0,0,0,651,0,0,0,0,0,0,0,652,0,0,0,0,0,0,0,653,0,0,0,0,0,0,0,654,0,0,0,0,0,0,0,655,0,0,0,0,0,0,0,656,0,0,0,0,0,0,0,657,0,0,0,0,0,0,0,658,0,0,0,0,0,0,0,659,0,0,0,0,0,0,0,660,0,0,0,0,0,0,0,661,0,0,0,0,0,0,0,662,0,0,0,0,0,0,0,663,0,0,0,0,0,0,0,664,0,0,0,0,0,0,0,665,0,0,0,0,0,0,0,666,0,0,0,0,0,0,0,667,0,0,0,0,0,0,0,668,0,0,0,0,0,0,0,669,0,0,0,0,0,0,0,670,0,0,0,0,0,0,0,671,0,0,0,0,0,0,0,672,0,0,0,0,0,0,0,673,0,0,0,0,0,0,0,0,0,674,0,0,0,0,0,0,0,675,0,0,0,0,0,0,0,676,0,0,0,0,0,0,0,677,0,0,0,0,0,0,0,678,0,0,0,0,0,0,0,679,0,0,0,0,0,0,0,680,0,0,0,0,0,0,0,681,0,0,0,0,0,0,0,682,0,0,0,0,0,0,0,683,0,0,0,0,0,0,0,684,0,0,0,0,0,0,0,685,0,0,0,0,0,0,0,686,0,0,0,0,0,0,0,687,0,0,0,0,0,0,0,688,0,0,0,0,0,0,0,689,0,0,0,0,0,0,0,690,0,0,0,0,0,0,0,691,0,0,0,0,0,0,0,692,0,0,0,0,0,0,0,693,0,0,0,0,0,0,0,694,0,0,0,0,0,0,0,695,0,0,0,0,0,0,0,696,0,0,0,0,0,0,0,697,0,0,0,0,0,0,0,698,0,0,0,0,0,0,0,699,0,0,0,0,0,0,0,700,0,0,0,0,0,0,0,701,0,0,0,0,0,0,0,702,0,0,0,0,0,0,0,703,0,0,0,0,0,0,0,704,0,0,0,0,0,0,0,705,0,0,0,0,0,0,0,706,0,0,0,0,0,0,0,707,0,0,0,0,0,0,0,708,0,0,0,0,0,0,0,709,0,0,0,0,0,0,0,710,0,0,0,0,0,0,0,711,0,0,0,0,0,0,0,712,0,0,0,0,0,0,0,713,0,0,0,0,0,0,0,714,0,0,0,0,0,0,0,715,0,0,0,0,0,0,0,716,0,0,0,0,0,0,0,717,0,0,0,0,0,0,0,718,0,0,0,0,0,0,0,719,0,0,0,0,0,0,0,720,0,0,0,0,0,0,0,721,0,0,0,0,0,0,0,0,0,722,0,0,0,0,0,0,0,723,0,0,0,0,0,0,0,724,0,0,0,0,0,0,0,725,0,0,0,0,0,0,0,726,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 86800);
  3318. allocate([0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,0,5,0,6,0,0,0,0,0,0,0,0,0,7,0,0,0,8,0,9,0,0,0,0,0,0,0,10,0,11,0,12,0,0,0,0,0,0,0,0,0,13,0,14,0,15,0,16,0,0,0,0,0,0,0,17,0,18,0,19,0,20,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,23,0,24,0,0,0,0,0,0,0,0,0,25,0,26,0,27,0,28,0,0,0,0,0,0,0,29,0,30,0,31,0,32,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,35,0,36,0,37,0,0,0,0,0,0,0,38,0,39,0,40,0,41,0,0,0,0,0,0,0,42,0,0,0,43,0,0,0,0,0,0,0,0,0,44,0,45,0,46,0,47,0,0,0,0,0,0,0,48,0,49,0,50,0,0,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,53,0,54,0,55,0,0,0,0,0,0,0,56,0,57,0,58,0,0,0,0,0,0,0,0,0,59,0,60,0,61,0,62,0,0,0,0,0,0,0,63,0,64,0,65,0,66,0,0,0,0,0,0,0,67,0,0,0,68,0,0,0,0,0,0,0,0,0,69,0,0,0,70,0,0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,72,0,73,0,74,0,0,0,0,0,0,0,0,0,75,0,76,0,77,0,78,0,0,0,0,0,0,0,79,0,80,0,81,0,0,0,0,0,0,0,0,0,82,0,0,0,83,0,84,0,0,0,0,0,0,0,85,0,86,0,87,0,0,0,0,0,0,0,0,0,88,0,89,0,90,0,91,0,0,0,0,0,0,0,92,0,93,0,94,0,95,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,98,0,99,0,0,0,0,0,0,0,0,0,100,0,101,0,102,0,103,0,0,0,0,0,0,0,104,0,105,0,106,0,107,0,0,0,0,0,0,0,108,0,109,0,0,0,0,0,0,0,0,0,0,0,110,0,111,0,112,0,113,0,0,0,0,0,0,0,114,0,115,0,116,0,117,0,0,0,0,0,0,0,118,0,0,0,119,0,0,0,0,0,0,0,0,0,120,0,121,0,122,0,123,0,0,0,0,0,0,0,124,0,125,0,126,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,129,0,130,0,131,0,0,0,0,0,0,0,132,0,133,0,134,0,0,0,0,0,0,0,0,0,135,0,136,0,137,0,138,0,0,0,0,0,0,0,139,0,140,0,141,0,142,0,0,0,0,0,0,0,143,0,0,0,144,0,0,0,0,0,0,0,0,0,145,0,146,0,147,0,0,0,0,0,0,0,0,0,148,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,150,0,151,0,0,0,0,0,0,0,0,0,152,0,153,0,154,0,155,0,0,0,0,0,0,0,156,0,0,0,0,0,157,0,0,0,0,0,0,0,158,0,159,0,0,0,0,0,0,0,0,0,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,164,0,165,0,0,0,0,0,0,0,0,0,0,0,166,0,0,0,0,0,0,0,0,0,0,0,0,0,167,0,168,0,0,0,0,0,0,0,0,0,0,0,169,0,0,0,0,0,0,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,0,0,0,0,0,0,171,0,0,0,0,0,0,0,0,0,0,0,0,0,172,0,173,0,0,0,0,0,0,0,0,0,0,0,174,0,175,0,0,0,0,0,0,0,0,0,0,0,176,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0,0,0,0,0,0,0,0,0,0,0,0,179,0,0,0,0,0,0,0,0,0,0,0,0,0,180,0,181,0,0,0,0,0,0,0,0,0,0,0,182,0,0,0,0,0,0,0,0,0,0,0,0,0,183,0,184,0,0,0,0,0,0,0,0,0,0,0,185,0,0,0,0,0,0,0,0,0,0,0,0,0,186,0,0,0,0,0,0,0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0,0,0,188,0,189,0,0,0,0,0,0,0,0,0,0,0,190,0,191,0,0,0,0,0,0,0,0,0,0,0,192,0,193,0,0,0,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,0,0,0,0,0,0,195,0,0,0,0,0,0,0,0,0,0,0,0,0,196,0,0,0,0,0,0,0,0,0,0,0,0,0,197,0,0,0,0,0,0,0,0,0,0,0,0,0,198,0,0,0,0,0,0,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,0,0,0,0,0,0,200,0,0,0,0,0,0,0,0,0,0,0,0,0,201,0,0,0,0,0,0,0,0,0,0,0,0,0,202,0,0,0,0,0,0,0,0,0,0,0,0,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0,0,0,0,0,0,0,0,0,0,0,0,205,0,0,0,0,0,0,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,0,0,0,0,207,0,208,0,209,0,0,0,0,0,0,0,0,0,210,0,211,0,212,0,0,0,0,0,0,0,0,0,213,0,214,0,215,0,0,0,0,0,0,0,0,0,216,0,217,0,218,0,0,0,0,0,0,0,0,0,0,0,219,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0,0,0,0,0,0,0,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,223,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,225,0,0,0,0,0,0,0,0,0,0,0,0,0,226,0,0,0,0,0,0,0,0,0,0,0,0,0,227,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,229,0,230,0,0,0,231,0,0,0,0,0,0,0,232,0,233,0,0,0,0,0,0,0,0,0,0,0,234,0,235,0,0,0,236,0,0,0,0,0,0,0,237,0,238,0,0,0,0,0,0,0,0,0,0,0,239,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,241,0,0,0,0,0,0,0,0,0,0,0,242,0,243,0,0,0,0,0,0,0,0,0,0,0,244,0,245,0,0,0,246,0,0,0,0,0,0,0,0,0,0,0,0,0,247,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,249,0,250,0,0,0,251,0,0,0,0,0,0,0,252,0,253,0,0,0,0,0,0,0,0,0,0,0,254,0,255,0,0,0,256,0,0,0,0,0,0,0,257,0,258,0,0,0,259,0,0,0,0,0,0,0,260,0,261,0,0,0,0,0,0,0,0,0,0,0,0,0,262,0,0,0,0,0,0,0,0,0,0,0,263,0,264,0,0,0,265,0,0,0,0,0,0,0,266,0,267,0,0,0,268,0,0,0,0,0,0,0,269,0,0,0,0,0,270,0,0,0,0,0,0,0,271,0,0,0,0,0,272,0,0,0,0,0,0,0,0,0,0,0,0,0,273,0,0,0,0,0,0,0,274,0,0,0,0,0,0,0,0,0,0,0,0,0,275,0,0,0,0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0,0,0,0,0,0,277,0,0,0,0,0,0,0,0,0,0,0,0,0,278,0,0,0,0,0,0,0,0,0,0,0,0,0,279,0,0,0,0,0,0,0,0,0,0,0,0,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,281,0,0,0,0,0,0,0,0,0,0,0,0,0,282,0,0,0,0,0,0,0,0,0,0,0,0,0,283,0,0,0,0,0,0,0,0,0,0,0,0,0,284,0,285,0,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,287,0,0,0,0,0,0,0,0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,290,0,0,0,0,0,0,0,0,0,0,0,0,0,291,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0,0,0,0,0,0,0,0,0,0,0,0,293,0,0,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0,0,0,296,0,0,0,0,0,0,0,0,0,0,0,0,0,297,0,298,0,0,0,0,0,0,0,0,0,0,0,299,0,0,0,0,0,0,0,0,0,0,0,0,0,300,0,0,0,0,0,0,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,0,0,0,0,0,0,0,0,0,304,0,0,0,0,0,0,0,0,0,0,0,305,0,0,0,0,0,0,0,0,0,0,0,0,0,306,0,0,0,0,0,0,0,0,0,0,0,0,0,307,0,0,0,0,0,0,0,0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,309,0,310,0,0,0,0,0,0,0,0,0,0,0,311,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,0,0,0,0,0,0,0,0,314,0,0,0,0,0,0,0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,316,0,0,0,0,0,0,0,0,0,0,0,0,0,317,0,0,0,0,0,0,0,0,0,0,0,0,0,318,0,0,0,0,0,0,0,0,0,0,0,0,0,319,0,0,0,0,0,0,0,0,0,0,0,0,0,320,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,0,0,0,0,0,0,0,0,0,0,0,322,0,323,0,0,0,0,0,0,0,0,0,0,0,324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,325,0,0,0,0,0,0,0,0,0,0,0,0,0,326,0,0,0,0,0,0,0,0,0,0,0,0,0,327,0,0,0,0,0,0,0,0,0,0,0,0,0,328,0,0,0,0,0,0,0,0,0,0,0,0,0,329,0,0,0,0,0,0,0,0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0,0,331,0,332,0,0,0,0,0,0,0,0,0,0,0,333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,0,335,0,0,0,0,0,0,0,0,0,0,0,0,0,336,0,0,0,0,0,0,0,0,0,0,0,0,0,337,0,0,0,0,0,0,0,0,0,0,0,0,0,338,0,0,0,0,0,0,0,0,0,0,0,0,0,339,0,0,0,0,0,0,0,0,0,0,0,0,0,340,0,0,0,0,0,0,0,0,0,0,0,0,0,341,0,0,0,0,0,0,0,0,0,0,0,0,0,342,0,0,0,0,0,0,0,0,0,0,0,0,0,343,0,0,0,0,0,0,0,0,0,0,0,0,0,344,0,0,0,0,0,0,0,0,0,0,0,0,0,345,0,346,0,0,0,0,0,0,0,0,0,0,0,0,0,347,0,0,0,0,0,0,0,0,0,0,0,0,0,348,0,0,0,0,0,0,0,0,0,0,0,0,0,349,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0,0,0,0,0,0,0,0,0,0,0,0,351,0,0,0,0,0,0,0,0,0,0,0,0,0,352,0,0,0,0,0,0,0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0,0,0,354,0,0,0,0,0,0,0,0,0,0,0,0,0,355,0,0,0,0,0,0,0,0,0,0,0,0,0,356,0,0,0,0,0,0,0,0,0,0,0,0,0,357,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0,0,0,0,359,0,0,0,0,0,0,0,360,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0,0,0,362,0,0,0,0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,0,365,0,0,0,0,0,0,0,0,0,0,0,0,0,366,0,0,0,0,0,0,0,0,0,0,0,0,0,367,0,0,0,0,0,0,0,368,0,0,0,0,0,369,0,0,0,0,0,0,0,370,0,0,0,0,0,371,0,0,0,0,0,0,0,0,0,0,0,0,0,372,0,0,0,0,0,0,0,0,0,0,0,0,0,373,0,0,0,0,0,0,0,0,0,0,0,0,0,374,0,0,0,0,0,0,0,0,0,0,0,0,0,375,0,0,0,0,0,0,0,0,0,0,0,0,0,376,0,0,0,0,0,0,0,0,0,0,0,0,0,377,0,0,0,0,0,0,0,378,0,0,0,0,0,0,0,0,0,0,0,0,0,379,0,0,0,0,0,0,0,0,0,0,0,0,0,380,0,0,0,0,0,0,0,0,0,0,0,0,0,381,0,0,0,0,0,0,0,0,0,0,0,0,0,382,0,0,0,0,0,383,0,0,0,0,0,0,0,384,0,0,0,0,0,385,0,0,0,0,0,0,0,0,0,0,0,0,0,386,0,0,0,0,0,0,0,0,0,0,0,0,0,387,0,0,0,0,0,0,0,0,0,0,0,0,0,388,0,0,0,0,0,0,0,0,0,0,0,0,0,389,0,0,0,0,0,0,0,0,0,0,0,0,0,390,0,0,0,0,0,0,0,0,0,0,0,0,0,391,0,0,0,0,0,0,0,392,0,0,0,0,0,393,0,0,0,0,0,0,0,394,0,0,0,0,0,395,0,0,0,0,0,0,0,0,0,0,0,0,0,396,0,0,0,0,0,0,0,0,0,0,0,0,0,397,0,0,0,0,0,0,0,0,0,0,0,0,0,398,0,0,0,0,0,0,0,0,0,0,0,0,0,399,0,0,0,0,0,0,0,0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0,0,401,0,0,0,0,0,0,0,402,0,0,0,0,0,403,0,0,0,0,0,0,0,404,0,0,0,0,0,405,0,0,0,0,0,0,0,406,0,0,0,0,0,407,0,0,0,0,0,0,0,408,0,0,0,0,0,409,0,0,0,0,0,0,0,410,0,0,0,0,0,0,0,0,0,0,0,0,0,411,0,0,0,0,0,0,0,0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0,0,413,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,415,0,0,0,0,0,0,0,416,0,0,0,0,0,417,0,0,0,0,0,0,0,418,0,0,0,0,0,419,0,0,0,0,0,0,0,420,0,0,0,0,0,421,0,0,0,0,0,0,0,422,0,0,0,0,0,423,0,0,0,0,0,0,0,0,0,0,0,0,0,424,0,0,0,0,0,0,0,0,0,0,0,0,0,425,0,0,0,0,0,0,0,0,0,0,0,0,0,426,0,0,0,0,0,0,0,0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0,0,428,0,0,0,0,0,0,0,0,0,0,0,0,0,429,0,0,0,0,0,0,0,430,0,0,0,0,0,431,0,0,0,0,0,0,0,432,0,0,0,0,0,433,0,0,0,0,0,0,0,0,0,0,0,0,0,434,0,0,0,0,0,0,0,0,0,0,0,0,0,435,0,0,0,0,0,0,0,0,0,0,0,0,0,436,0,0,0,0,0,0,0,0,0,0,0,0,0,437,0,0,0,0,0,0,0,0,0,0,0,0,0,438,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0,0,0,0,0,0,0,0,0,0,0,0,440,0,0,0,0,0,0,0,0,0,0,0,0,0,441,0,0,0,0,0,0,0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0,0,0,0,0,0,444,0,0,0,0,0,445,0,0,0,0,0,0,0,0,0,0,0,0,0,446,0,0,0,0,0,0,0,0,0,0,0,0,0,447,0,0,0,0,0,0,0,448,0,0,0,0,0,449,0,0,0,0,0,0,0,0,0,0,0,0,0,450,0,0,0,0,0,0,0,0,0,0,0,0,0,451,0,0,0,0,0,0,0,0,0,0,0,0,0,452,0,0,0,0,0,0,0,0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0,0,454,0,0,0,0,0,0,0,0,0,0,0,0,0,455,0,0,0,0,0,0,0,0,0,0,0,0,0,456,0,0,0,0,0,0,0,0,0,0,0,0,0,457,0,0,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,0,0,0,0,0,0,0,0,0,0,460,0,0,0,0,0,0,0,0,0,0,0,0,0,461,0,0,0,0,0,0,0,0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0,0,463,0,0,0,0,0,0,0,0,0,0,0,0,0,464,0,0,0,0,0,0,0,0,0,0,0,0,0,465,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,470,0,0,0,0,0,0,0,0,0,0,0,0,0,471,0,0,0,0,0,0,0,0,0,0,0,0,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,473,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,475,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,478,0,0,0,0,0,0,0,0,0,0,0,0,0,479,0,0,0,0,0,0,0,0,0,0,0,0,0,480,0,0,0,0,0,0,0,0,0,0,0,0,0,481,0,0,0,0,0,0,0,0,0,0,0,0,0,482,0,0,0,0,0,0,0,0,0,0,0,0,0,483,0,0,0,0,0,0,0,0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0,0,485,0,0,0,0,0,0,0,0,0,0,0,0,0,486,0,0,0,0,0,0,0,0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0,0,488,0,0,0,0,0,0,0,0,0,0,0,0,0,489,0,0,0,0,0,0,0,0,0,0,0,0,0,490,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0,0,0,0,0,0,0,0,0,0,0,0,492,0,0,0,0,0,0,0,0,0,0,0,0,0,493,0,0,0,0,0,0,0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0,0,0,495,0,0,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,0,0,0,0,497,0,0,0,0,0,0,0,0,0,0,0,0,0,498,0,0,0,0,0,0,0,0,0,0,0,0,0,499,0,0,0,0,0,0,0,0,0,0,0,0,0,500,0,0,0,0,0,0,0,0,0,0,0,0,0,501,0,0,0,0,0,0,0,0,0,0,0,0,0,502,0,0,0,0,0,0,0,0,0,0,0,0,0,503,0,0,0,0,0,0,0,0,0,0,0,0,0,504,0,0,0,0,0,0,0,0,0,0,0,0,0,505,0,0,0,0,0,0,0,0,0,0,0,0,0,506,0,0,0,0,0,0,0,0,0,0,0,0,0,507,0,0,0,0,0,0,0,0,0,0,0,0,0,508,0,0,0,0,0,0,0,0,0,0,0,0,0,509,0,0,0,0,0,0,0,0,0,0,0,0,0,510,0,0,0,0,0,0,0,0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,513,0,0,0,0,0,0,0,0,0,0,0,0,0,514,0,0,0,0,0,0,0,0,0,0,0,0,0,515,0,0,0,0,0,0,0,0,0,0,0,0,0,516,0,0,0,0,0,0,0,0,0,0,0,0,0,517,0,0,0,0,0,0,0,0,0,0,0,0,0,518,0,0,0,0,0,0,0,0,0,0,0,0,0,519,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,0,0,0,0,0,0,0,0,0,0,521,0,0,0,0,0,0,0,0,0,0,0,0,0,522,0,0,0,0,0,0,0,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0,0,525,0,0,0,0,0,0,0,0,0,0,0,0,0,526,0,0,0,0,0,0,0,0,0,0,0,0,0,527,0,0,0,0,0,0,0,0,0,0,0,0,0,528,0,0,0,0,0,0,0,0,0,0,0,0,0,529,0,0,0,0,0,0,0,0,0,0,0,0,0,530,0,0,0,0,0,0,0,0,0,0,0,0,0,531,0,0,0,0,0,0,0,0,0,0,0,0,0,532,0,0,0,0,0,0,0,0,0,0,0,0,0,533,0,0,0,0,0,0,0,0,0,0,0,0,0,534,0,0,0,0,0,0,0,0,0,0,0,0,0,535,0,0,0,0,0,0,0,0,0,0,0,0,0,536,0,0,0,0,0,0,0,0,0,0,0,0,0,537,0,0,0,0,0,0,0,0,0,0,0,0,0,538,0,0,0,0,0,0,0,0,0,0,0,0,0,539,0,0,0,0,0,0,0,0,0,0,0,0,0,540,0,0,0,0,0,0,0,0,0,0,0,0,0,541,0,0,0,0,0,0,0,0,0,0,0,0,0,542,0,0,0,0,0,0,0,0,0,0,0,0,0,543,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 91152);
  3319. allocate([0,0,0,0,0,0,0,0,0,0,0,0,8814,0,0,0,0,0,0,0,8800,0,0,0,0,0,0,0,8815,0,0,0,192,0,0,0,193,0,0,0,194,0,0,0,195,0,0,0,256,0,0,0,258,0,0,0,550,0,0,0,196,0,0,0,7842,0,0,0,197,0,0,0,0,0,0,0,461,0,0,0,512,0,0,0,514,0,0,0,0,0,0,0,7840,0,0,0,0,0,0,0,7680,0,0,0,260,0,0,0,0,0,0,0,7682,0,0,0,0,0,0,0,0,0,0,0,7684,0,0,0,7686,0,0,0,0,0,0,0,0,0,0,0,262,0,0,0,264,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,268,0,0,0,0,0,0,0,199,0,0,0,7690,0,0,0,0,0,0,0,0,0,0,0,270,0,0,0,0,0,0,0,7692,0,0,0,0,0,0,0,7696,0,0,0,0,0,0,0,7698,0,0,0,7694,0,0,0,0,0,0,0,200,0,0,0,201,0,0,0,202,0,0,0,7868,0,0,0,274,0,0,0,276,0,0,0,278,0,0,0,203,0,0,0,7866,0,0,0,0,0,0,0,0,0,0,0,282,0,0,0,516,0,0,0,518,0,0,0,0,0,0,0,7864,0,0,0,0,0,0,0,552,0,0,0,280,0,0,0,7704,0,0,0,0,0,0,0,7706,0,0,0,7710,0,0,0,0,0,0,0,0,0,0,0,500,0,0,0,284,0,0,0,0,0,0,0,7712,0,0,0,286,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,486,0,0,0,0,0,0,0,290,0,0,0,292,0,0,0,0,0,0,0,7714,0,0,0,7718,0,0,0,0,0,0,0,542,0,0,0,0,0,0,0,7716,0,0,0,0,0,0,0,7720,0,0,0,7722,0,0,0,0,0,0,0,204,0,0,0,205,0,0,0,206,0,0,0,296,0,0,0,298,0,0,0,300,0,0,0,304,0,0,0,207,0,0,0,7880,0,0,0,0,0,0,0,0,0,0,0,463,0,0,0,520,0,0,0,522,0,0,0,0,0,0,0,7882,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,7724,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,7728,0,0,0,0,0,0,0,488,0,0,0,0,0,0,0,7730,0,0,0,0,0,0,0,310,0,0,0,7732,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,0,0,317,0,0,0,0,0,0,0,7734,0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,7740,0,0,0,7738,0,0,0,0,0,0,0,0,0,0,0,7742,0,0,0,7744,0,0,0,0,0,0,0,0,0,0,0,7746,0,0,0,504,0,0,0,323,0,0,0,0,0,0,0,209,0,0,0,7748,0,0,0,0,0,0,0,0,0,0,0,327,0,0,0,0,0,0,0,7750,0,0,0,0,0,0,0,325,0,0,0,0,0,0,0,7754,0,0,0,7752,0,0,0,0,0,0,0,210,0,0,0,211,0,0,0,212,0,0,0,213,0,0,0,332,0,0,0,334,0,0,0,558,0,0,0,214,0,0,0,7886,0,0,0,0,0,0,0,336,0,0,0,465,0,0,0,524,0,0,0,526,0,0,0,416,0,0,0,7884,0,0,0,490,0,0,0,0,0,0,0,0,0,0,0,7764,0,0,0,7766,0,0,0,0,0,0,0,0,0,0,0,340,0,0,0,7768,0,0,0,0,0,0,0,0,0,0,0,344,0,0,0,528,0,0,0,530,0,0,0,0,0,0,0,7770,0,0,0,0,0,0,0,342,0,0,0,7774,0,0,0,0,0,0,0,0,0,0,0,346,0,0,0,348,0,0,0,0,0,0,0,7776,0,0,0,0,0,0,0,0,0,0,0,352,0,0,0,0,0,0,0,7778,0,0,0,536,0,0,0,350,0,0,0,7786,0,0,0,0,0,0,0,0,0,0,0,356,0,0,0,0,0,0,0,7788,0,0,0,538,0,0,0,354,0,0,0,0,0,0,0,7792,0,0,0,7790,0,0,0,0,0,0,0,217,0,0,0,218,0,0,0,219,0,0,0,360,0,0,0,362,0,0,0,364,0,0,0,0,0,0,0,220,0,0,0,7910,0,0,0,366,0,0,0,368,0,0,0,467,0,0,0,532,0,0,0,534,0,0,0,431,0,0,0,7908,0,0,0,7794,0,0,0,0,0,0,0,370,0,0,0,7798,0,0,0,0,0,0,0,7796,0,0,0,0,0,0,0,7804,0,0,0,0,0,0,0,7806,0,0,0,7808,0,0,0,7810,0,0,0,372,0,0,0,0,0,0,0,7814,0,0,0,7812,0,0,0,0,0,0,0,7816,0,0,0,7818,0,0,0,7820,0,0,0,7922,0,0,0,221,0,0,0,374,0,0,0,7928,0,0,0,562,0,0,0,0,0,0,0,7822,0,0,0,376,0,0,0,7926,0,0,0,0,0,0,0,0,0,0,0,7924,0,0,0,0,0,0,0,377,0,0,0,7824,0,0,0,0,0,0,0,379,0,0,0,0,0,0,0,0,0,0,0,381,0,0,0,0,0,0,0,7826,0,0,0,7828,0,0,0,0,0,0,0,224,0,0,0,225,0,0,0,226,0,0,0,227,0,0,0,257,0,0,0,259,0,0,0,551,0,0,0,228,0,0,0,7843,0,0,0,229,0,0,0,0,0,0,0,462,0,0,0,513,0,0,0,515,0,0,0,0,0,0,0,7841,0,0,0,0,0,0,0,7681,0,0,0,261,0,0,0,0,0,0,0,7683,0,0,0,0,0,0,0,0,0,0,0,7685,0,0,0,7687,0,0,0,0,0,0,0,0,0,0,0,263,0,0,0,265,0,0,0,0,0,0,0,267,0,0,0,0,0,0,0,0,0,0,0,269,0,0,0,0,0,0,0,231,0,0,0,7691,0,0,0,0,0,0,0,0,0,0,0,271,0,0,0,0,0,0,0,7693,0,0,0,0,0,0,0,7697,0,0,0,0,0,0,0,7699,0,0,0,7695,0,0,0,0,0,0,0,232,0,0,0,233,0,0,0,234,0,0,0,7869,0,0,0,275,0,0,0,277,0,0,0,279,0,0,0,235,0,0,0,7867,0,0,0,0,0,0,0,0,0,0,0,283,0,0,0,517,0,0,0,519,0,0,0,0,0,0,0,7865,0,0,0,0,0,0,0,553,0,0,0,281,0,0,0,7705,0,0,0,0,0,0,0,7707,0,0,0,7711,0,0,0,0,0,0,0,0,0,0,0,501,0,0,0,285,0,0,0,0,0,0,0,7713,0,0,0,287,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,487,0,0,0,0,0,0,0,291,0,0,0,293,0,0,0,0,0,0,0,7715,0,0,0,7719,0,0,0,0,0,0,0,543,0,0,0,0,0,0,0,7717,0,0,0,0,0,0,0,7721,0,0,0,7723,0,0,0,0,0,0,0,7830,0,0,0,0,0,0,0,236,0,0,0,237,0,0,0,238,0,0,0,297,0,0,0,299,0,0,0,301,0,0,0,0,0,0,0,239,0,0,0,7881,0,0,0,0,0,0,0,0,0,0,0,464,0,0,0,521,0,0,0,523,0,0,0,0,0,0,0,7883,0,0,0,303,0,0,0,0,0,0,0,0,0,0,0,7725,0,0,0,309,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,7729,0,0,0,0,0,0,0,489,0,0,0,0,0,0,0,7731,0,0,0,0,0,0,0,311,0,0,0,7733,0,0,0,0,0,0,0,0,0,0,0,314,0,0,0,0,0,0,0,318,0,0,0,0,0,0,0,7735,0,0,0,0,0,0,0,316,0,0,0,0,0,0,0,7741,0,0,0,7739,0,0,0,0,0,0,0,0,0,0,0,7743,0,0,0,7745,0,0,0,0,0,0,0,0,0,0,0,7747,0,0,0,505,0,0,0,324,0,0,0,0,0,0,0,241,0,0,0,7749,0,0,0,0,0,0,0,0,0,0,0,328,0,0,0,0,0,0,0,7751,0,0,0,0,0,0,0,326,0,0,0,0,0,0,0,7755,0,0,0,7753,0,0,0,0,0,0,0,242,0,0,0,243,0,0,0,244,0,0,0,245,0,0,0,333,0,0,0,335,0,0,0,559,0,0,0,246,0,0,0,7887,0,0,0,0,0,0,0,337,0,0,0,466,0,0,0,525,0,0,0,527,0,0,0,417,0,0,0,7885,0,0,0,491,0,0,0,0,0,0,0,0,0,0,0,7765,0,0,0,7767,0,0,0,0,0,0,0,0,0,0,0,341,0,0,0,7769,0,0,0,0,0,0,0,0,0,0,0,345,0,0,0,529,0,0,0,531,0,0,0,0,0,0,0,7771,0,0,0,0,0,0,0,343,0,0,0,7775,0,0,0,0,0,0,0,0,0,0,0,347,0,0,0,349,0,0,0,0,0,0,0,7777,0,0,0,0,0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,7779,0,0,0,537,0,0,0,351,0,0,0,7787,0,0,0,7831,0,0,0,0,0,0,0,357,0,0,0,0,0,0,0,7789,0,0,0,539,0,0,0,355,0,0,0,0,0,0,0,7793,0,0,0,7791,0,0,0,0,0,0,0,249,0,0,0,250,0,0,0,251,0,0,0,361,0,0,0,363,0,0,0,365,0,0,0,0,0,0,0,252,0,0,0,7911,0,0,0,367,0,0,0,369,0,0,0,468,0,0,0,533,0,0,0,535,0,0,0,432,0,0,0,7909,0,0,0,7795,0,0,0,0,0,0,0,371,0,0,0,7799,0,0,0,0,0,0,0,7797,0,0,0,0,0,0,0,7805,0,0,0,0,0,0,0,7807,0,0,0,7809,0,0,0,7811,0,0,0,373,0,0,0,0,0,0,0,7815,0,0,0,7813,0,0,0,0,0,0,0,7832,0,0,0,0,0,0,0,7817,0,0,0,7819,0,0,0,7821,0,0,0,7923,0,0,0,253,0,0,0,375,0,0,0,7929,0,0,0,563,0,0,0,0,0,0,0,7823,0,0,0,255,0,0,0,7927,0,0,0,7833,0,0,0,0,0,0,0,7925,0,0,0,0,0,0,0,378,0,0,0,7825,0,0,0,0,0,0,0,380,0,0,0,0,0,0,0,0,0,0,0,382,0,0,0,0,0,0,0,7827,0,0,0,7829,0,0,0,0,0,0,0,8173,0,0,0,901,0,0,0,8129,0,0,0,0,0,0,0,7846,0,0,0,7844,0,0,0,0,0,0,0,7850,0,0,0,7848,0,0,0,0,0,0,0,478,0,0,0,0,0,0,0,0,0,0,0,506,0,0,0,0,0,0,0,508,0,0,0,482,0,0,0,0,0,0,0,0,0,0,0,7688,0,0,0,7872,0,0,0,7870,0,0,0,0,0,0,0,7876,0,0,0,7874,0,0,0,0,0,0,0,0,0,0,0,7726,0,0,0,7890,0,0,0,7888,0,0,0,0,0,0,0,7894,0,0,0,7892,0,0,0,0,0,0,0,0,0,0,0,7756,0,0,0,556,0,0,0,0,0,0,0,0,0,0,0,7758,0,0,0,554,0,0,0,0,0,0,0,0,0,0,0,510,0,0,0,475,0,0,0,471,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,473,0,0,0,7847,0,0,0,7845,0,0,0,0,0,0,0,7851,0,0,0,7849,0,0,0,0,0,0,0,479,0,0,0,0,0,0,0,0,0,0,0,507,0,0,0,0,0,0,0,509,0,0,0,483,0,0,0,0,0,0,0,0,0,0,0,7689,0,0,0,7873,0,0,0,7871,0,0,0,0,0,0,0,7877,0,0,0,7875,0,0,0,0,0,0,0,0,0,0,0,7727,0,0,0,7891,0,0,0,7889,0,0,0,0,0,0,0,7895,0,0,0,7893,0,0,0,0,0,0,0,0,0,0,0,7757,0,0,0,557,0,0,0,0,0,0,0,0,0,0,0,7759,0,0,0,555,0,0,0,0,0,0,0,0,0,0,0,511,0,0,0,476,0,0,0,472,0,0,0,470,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,7856,0,0,0,7854,0,0,0,0,0,0,0,7860,0,0,0,7858,0,0,0,0,0,0,0,7857,0,0,0,7855,0,0,0,0,0,0,0,7861,0,0,0,7859,0,0,0,0,0,0,0,7700,0,0,0,7702,0,0,0,7701,0,0,0,7703,0,0,0,7760,0,0,0,7762,0,0,0,7761,0,0,0,7763,0,0,0,7780,0,0,0,0,0,0,0,7781,0,0,0,0,0,0,0,7782,0,0,0,0,0,0,0,7783,0,0,0,0,0,0,0,0,0,0,0,7800,0,0,0,0,0,0,0,7801,0,0,0,0,0,0,0,7802,0,0,0,0,0,0,0,7803,0,0,0,7835,0,0,0,0,0,0,0,7900,0,0,0,7898,0,0,0,0,0,0,0,7904,0,0,0,7902,0,0,0,0,0,0,0,0,0,0,0,7906,0,0,0,7901,0,0,0,7899,0,0,0,0,0,0,0,7905,0,0,0,7903,0,0,0,0,0,0,0,0,0,0,0,7907,0,0,0,7914,0,0,0,7912,0,0,0,0,0,0,0,7918,0,0,0,7916,0,0,0,0,0,0,0,0,0,0,0,7920,0,0,0,7915,0,0,0,7913,0,0,0,0,0,0,0,7919,0,0,0,7917,0,0,0,0,0,0,0,0,0,0,0,7921,0,0,0,0,0,0,0,494,0,0,0,492,0,0,0,0,0,0,0,493,0,0,0,0,0,0,0,480,0,0,0,0,0,0,0,481,0,0,0,0,0,0,0,0,0,0,0,7708,0,0,0,0,0,0,0,7709,0,0,0,560,0,0,0,0,0,0,0,561,0,0,0,0,0,0,0,0,0,0,0,495,0,0,0,8122,0,0,0,902,0,0,0,8121,0,0,0,8120,0,0,0,7944,0,0,0,7945,0,0,0,0,0,0,0,8124,0,0,0,8136,0,0,0,904,0,0,0,7960,0,0,0,7961,0,0,0,8138,0,0,0,905,0,0,0,7976,0,0,0,7977,0,0,0,0,0,0,0,8140,0,0,0,8154,0,0,0,906,0,0,0,8153,0,0,0,8152,0,0,0,0,0,0,0,938,0,0,0,7992,0,0,0,7993,0,0,0,8184,0,0,0,908,0,0,0,8008,0,0,0,8009,0,0,0,0,0,0,0,8172,0,0,0,8170,0,0,0,910,0,0,0,8169,0,0,0,8168,0,0,0,0,0,0,0,939,0,0,0,0,0,0,0,8025,0,0,0,8186,0,0,0,911,0,0,0,8040,0,0,0,8041,0,0,0,0,0,0,0,8188,0,0,0,0,0,0,0,8116,0,0,0,0,0,0,0,8132,0,0,0,8048,0,0,0,940,0,0,0,8113,0,0,0,8112,0,0,0,7936,0,0,0,7937,0,0,0,8118,0,0,0,8115,0,0,0,8050,0,0,0,941,0,0,0,7952,0,0,0,7953,0,0,0,8052,0,0,0,942,0,0,0,7968,0,0,0,7969,0,0,0,8134,0,0,0,8131,0,0,0,8054,0,0,0,943,0,0,0,8145,0,0,0,8144,0,0,0,0,0,0,0,970,0,0,0,7984,0,0,0,7985,0,0,0,8150,0,0,0,0,0,0,0,8056,0,0,0,972,0,0,0,8000,0,0,0,8001,0,0,0,8164,0,0,0,8165,0,0,0,8058,0,0,0,973,0,0,0,8161,0,0,0,8160,0,0,0,0,0,0,0,971,0,0,0,8016,0,0,0,8017,0,0,0,8166,0,0,0,0,0,0,0,8060,0,0,0,974,0,0,0,8032,0,0,0,8033,0,0,0,8182,0,0,0,8179,0,0,0,8146,0,0,0,912,0,0,0,8151,0,0,0,0,0,0,0,8162,0,0,0,944,0,0,0,8167,0,0,0,0,0,0,0,0,0,0,0,8180,0,0,0,0,0,0,0,979,0,0,0,0,0,0,0,980,0,0,0,0,0,0,0,1031,0,0,0,0,0,0,0,1232,0,0,0,0,0,0,0,1234,0,0,0,0,0,0,0,1027,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,1238,0,0,0,0,0,0,0,1025,0,0,0,0,0,0,0,1217,0,0,0,0,0,0,0,1244,0,0,0,0,0,0,0,1246,0,0,0,1037,0,0,0,0,0,0,0,1250,0,0,0,1049,0,0,0,0,0,0,0,1252,0,0,0,0,0,0,0,1036,0,0,0,0,0,0,0,1254,0,0,0,1262,0,0,0,1038,0,0,0,0,0,0,0,1264,0,0,0,1266,0,0,0,0,0,0,0,0,0,0,0,1268,0,0,0,0,0,0,0,1272,0,0,0,0,0,0,0,1260,0,0,0,0,0,0,0,1233,0,0,0,0,0,0,0,1235,0,0,0,0,0,0,0,1107,0,0,0,1104,0,0,0,0,0,0,0,0,0,0,0,1239,0,0,0,0,0,0,0,1105,0,0,0,0,0,0,0,1218,0,0,0,0,0,0,0,1245,0,0,0,0,0,0,0,1247,0,0,0,1117,0,0,0,0,0,0,0,1251,0,0,0,1081,0,0,0,0,0,0,0,1253,0,0,0,0,0,0,0,1116,0,0,0,0,0,0,0,1255,0,0,0,1263,0,0,0,1118,0,0,0,0,0,0,0,1265,0,0,0,1267,0,0,0,0,0,0,0,0,0,0,0,1269,0,0,0,0,0,0,0,1273,0,0,0,0,0,0,0,1261,0,0,0,0,0,0,0,1111,0,0,0,1142,0,0,0,0,0,0,0,1143,0,0,0,0,0,0,0,0,0,0,0,1242,0,0,0,0,0,0,0,1243,0,0,0,0,0,0,0,1258,0,0,0,0,0,0,0,1259,0,0,0,1570,0,0,0,1571,0,0,0,1573,0,0,0,0,0,0,0,0,0,0,0,1572,0,0,0,0,0,0,0,1574,0,0,0,0,0,0,0,1730,0,0,0,0,0,0,0,1747,0,0,0,0,0,0,0,1728,0,0,0,0,0,0,0,2345,0,0,0,0,0,0,0,2353,0,0,0,0,0,0,0,2356,0,0,0,2507,0,0,0,2508,0,0,0,2891,0,0,0,2888,0,0,0,2892,0,0,0,0,0,0,0,2964,0,0,0,0,0,0,0,0,0,0,0,3018,0,0,0,3020,0,0,0,0,0,0,0,0,0,0,0,3019,0,0,0,0,0,0,0,3144,0,0,0,0,0,0,0,3264,0,0,0,3274,0,0,0,3271,0,0,0,3272,0,0,0,0,0,0,0,0,0,0,0,3275,0,0,0,0,0,0,0,3402,0,0,0,3404,0,0,0,0,0,0,0,0,0,0,0,3403,0,0,0,0,0,0,0,3546,0,0,0,3548,0,0,0,3550,0,0,0,0,0,0,0,3549,0,0,0,4134,0,0,0,0,0,0,0,0,0,0,0,6918,0,0,0,0,0,0,0,6920,0,0,0,0,0,0,0,6922,0,0,0,0,0,0,0,6924,0,0,0,0,0,0,0,6926,0,0,0,0,0,0,0,6930,0,0,0,0,0,0,0,6971,0,0,0,0,0,0,0,6973,0,0,0,0,0,0,0,6976,0,0,0,0,0,0,0,6977,0,0,0,0,0,0,0,6979,0,0,0,7736,0,0,0,0,0,0,0,7737,0,0,0,0,0,0,0,7772,0,0,0,0,0,0,0,7773,0,0,0,0,0,0,0,7784,0,0,0,0,0,0,0,7785,0,0,0,0,0,0,0,7852,0,0,0,0,0,0,0,0,0,0,0,7862,0,0,0,7853,0,0,0,0,0,0,0,0,0,0,0,7863,0,0,0,7878,0,0,0,0,0,0,0,7879,0,0,0,0,0,0,0,7896,0,0,0,0,0,0,0,7897,0,0,0,0,0,0,0,7938,0,0,0,7940,0,0,0,7942,0,0,0,8064,0,0,0,7939,0,0,0,7941,0,0,0,7943,0,0,0,8065,0,0,0,0,0,0,0,8066,0,0,0,0,0,0,0,8067,0,0,0,0,0,0,0,8068,0,0,0,0,0,0,0,8069,0,0,0,0,0,0,0,8070,0,0,0,0,0,0,0,8071,0,0,0,7946,0,0,0,7948,0,0,0,7950,0,0,0,8072,0,0,0,7947,0,0,0,7949,0,0,0,7951,0,0,0,8073,0,0,0,0,0,0,0,8074,0,0,0,0,0,0,0,8075,0,0,0,0,0,0,0,8076,0,0,0,0,0,0,0,8077,0,0,0,0,0,0,0,8078,0,0,0,0,0,0,0,8079,0,0,0,7954,0,0,0,7956,0,0,0,7955,0,0,0,7957,0,0,0,7962,0,0,0,7964,0,0,0,7963,0,0,0,7965,0,0,0,7970,0,0,0,7972,0,0,0,7974,0,0,0,8080,0,0,0,7971,0,0,0,7973,0,0,0,7975,0,0,0,8081,0,0,0,0,0,0,0,8082,0,0,0,0,0,0,0,8083,0,0,0,0,0,0,0,8084,0,0,0,0,0,0,0,8085,0,0,0,0,0,0,0,8086,0,0,0,0,0,0,0,8087,0,0,0,7978,0,0,0,7980,0,0,0,7982,0,0,0,8088,0,0,0,7979,0,0,0,7981,0,0,0,7983,0,0,0,8089,0,0,0,0,0,0,0,8090,0,0,0,0,0,0,0,8091,0,0,0,0,0,0,0,8092,0,0,0,0,0,0,0,8093,0,0,0,0,0,0,0,8094,0,0,0,0,0,0,0,8095,0,0,0,7986,0,0,0,7988,0,0,0,7990,0,0,0,0,0,0,0,7987,0,0,0,7989,0,0,0,7991,0,0,0,0,0,0,0,7994,0,0,0,7996,0,0,0,7998,0,0,0,0,0,0,0,7995,0,0,0,7997,0,0,0,7999,0,0,0,0,0,0,0,8002,0,0,0,8004,0,0,0,8003,0,0,0,8005,0,0,0,8010,0,0,0,8012,0,0,0,8011,0,0,0,8013,0,0,0,8018,0,0,0,8020,0,0,0,8022,0,0,0,0,0,0,0,8019,0,0,0,8021,0,0,0,8023,0,0,0,0,0,0,0,8027,0,0,0,8029,0,0,0,8031,0,0,0,0,0,0,0,8034,0,0,0,8036,0,0,0,8038,0,0,0,8096,0,0,0,8035,0,0,0,8037,0,0,0,8039,0,0,0,8097,0,0,0,0,0,0,0,8098,0,0,0,0,0,0,0,8099,0,0,0,0,0,0,0,8100,0,0,0,0,0,0,0,8101,0,0,0,0,0,0,0,8102,0,0,0,0,0,0,0,8103,0,0,0,8042,0,0,0,8044,0,0,0,8046,0,0,0,8104,0,0,0,8043,0,0,0,8045,0,0,0,8047,0,0,0,8105,0,0,0,0,0,0,0,8106,0,0,0,0,0,0,0,8107,0,0,0,0,0,0,0,8108,0,0,0,0,0,0,0,8109,0,0,0,0,0,0,0,8110,0,0,0,0,0,0,0,8111,0,0,0,0,0,0,0,8114,0,0,0,0,0,0,0,8130,0,0,0,0,0,0,0,8178,0,0,0,0,0,0,0,8119,0,0,0,8141,0,0,0,8142,0,0,0,8143,0,0,0,0,0,0,0,0,0,0,0,8135,0,0,0,0,0,0,0,8183,0,0,0,8157,0,0,0,8158,0,0,0,8159,0,0,0,0,0,0,0,0,0,0,0,8602,0,0,0,0,0,0,0,8603,0,0,0,0,0,0,0,8622,0,0,0,0,0,0,0,8653,0,0,0,0,0,0,0,8655,0,0,0,0,0,0,0,8654,0,0,0,0,0,0,0,8708,0,0,0,0,0,0,0,8713,0,0,0,0,0,0,0,8716,0,0,0,0,0,0,0,8740,0,0,0,0,0,0,0,8742,0,0,0,0,0,0,0,8769,0,0,0,0,0,0,0,8772,0,0,0,0,0,0,0,8775,0,0,0,0,0,0,0,8777,0,0,0,0,0,0,0,8813,0,0,0,0,0,0,0,8802,0,0,0,0,0,0,0,8816,0,0,0,0,0,0,0,8817,0,0,0,0,0,0,0,8820,0,0,0,0,0,0,0,8821,0,0,0,0,0,0,0,8824,0,0,0,0,0,0,0,8825,0,0,0,0,0,0,0,8832,0,0,0,0,0,0,0,8833,0,0,0,0,0,0,0,8928,0,0,0,0,0,0,0,8929,0,0,0,0,0,0,0,8836,0,0,0,0,0,0,0,8837,0,0,0,0,0,0,0,8840,0,0,0,0,0,0,0,8841,0,0,0,0,0,0,0,8930,0,0,0,0,0,0,0,8931,0,0,0,0,0,0,0,8876,0,0,0,0,0,0,0,8877,0,0,0,0,0,0,0,8878,0,0,0,0,0,0,0,8879,0,0,0,0,0,0,0,8938,0,0,0,0,0,0,0,8939,0,0,0,0,0,0,0,8940,0,0,0,0,0,0,0,8941,0,0,0,12436,0,0,0,0,0,0,0,12364,0,0,0,0,0,0,0,12366,0,0,0,0,0,0,0,12368,0,0,0,0,0,0,0,12370,0,0,0,0,0,0,0,12372,0,0,0,0,0,0,0,12374,0,0,0,0,0,0,0,12376,0,0,0,0,0,0,0,12378,0,0,0,0,0,0,0,12380,0,0,0,0,0,0,0,12382,0,0,0,0,0,0,0,12384,0,0,0,0,0,0,0,12386,0,0,0,0,0,0,0,12389,0,0,0,0,0,0,0,12391,0,0,0,0,0,0,0,12393,0,0,0,0,0,0,0,12400,0,0,0,12401,0,0,0,12403,0,0,0,12404,0,0,0,12406,0,0,0,12407,0,0,0,12409,0,0,0,12410,0,0,0,12412,0,0,0,12413,0,0,0,12446,0,0,0,0,0,0,0,12532,0,0,0,0,0,0,0,12460,0,0,0,0,0,0,0,12462,0,0,0,0,0,0,0,12464,0,0,0,0,0,0,0,12466,0,0,0,0,0,0,0,12468,0,0,0,0,0,0,0,12470,0,0,0,0,0,0,0,12472,0,0,0,0,0,0,0,12474,0,0,0,0,0,0,0,12476,0,0,0,0,0,0,0,12478,0,0,0,0,0,0,0,12480,0,0,0,0,0,0,0,12482,0,0,0,0,0,0,0,12485,0,0,0,0,0,0,0,12487,0,0,0,0,0,0,0,12489,0,0,0,0,0,0,0,12496,0,0,0,12497,0,0,0,12499,0,0,0,12500,0,0,0,12502,0,0,0,12503,0,0,0,12505,0,0,0,12506,0,0,0,12508,0,0,0,12509,0,0,0,12535,0,0,0,0,0,0,0,12536,0,0,0,0,0,0,0,12537,0,0,0,0,0,0,0,12538,0,0,0,0,0,0,0,12542,0,0,0,0,0,0,0,69786,0,0,0,0,0,0,0,69788,0,0,0,0,0,0,0,69803,0,0,0,0,0,0,0,0,0,0,0,69934,0,0,0,0,0,0,0,69935,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 96360);
  3320. allocate([37,100,0,0,0,0,0,0], "i8", ALLOC_NONE, 102176);
  3321. allocate([48,32,61,61,32,115,116,114,99,109,112,32,40,97,108,108,111,99,97,116,101,100,95,118,97,114,95,111,119,110,101,114,91,105,93,44,32,111,119,110,101,114,41,0,0,0,0,0], "i8", ALLOC_NONE, 102184);
  3322. allocate([120,45,104,98,111,116,0,0], "i8", ALLOC_NONE, 102232);
  3323. allocate([99,97,108,108,105,110,103,32,109,112,114,111,116,101,99,116,32,111,110,32,91,37,112,46,46,37,112,93,32,40,37,108,117,32,98,121,116,101,115,41,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102240);
  3324. allocate([97,108,108,111,99,97,116,101,100,95,118,97,114,95,98,121,116,101,115,91,105,93,0,0], "i8", ALLOC_NONE, 102288);
  3325. allocate([33,116,104,105,115,45,62,114,97,110,95,111,117,116,95,111,102,95,114,111,111,109,0,0], "i8", ALLOC_NONE, 102312);
  3326. allocate([112,97,103,101,115,105,122,101,32,105,115,32,37,108,117,0], "i8", ALLOC_NONE, 102336);
  3327. allocate([46,47,104,98,45,111,112,101,110,45,116,121,112,101,45,112,114,105,118,97,116,101,46,104,104,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102352);
  3328. allocate([102,97,105,108,101,100,32,116,111,32,103,101,116,32,112,97,103,101,115,105,122,101,58,32,37,115,0,0,0,0,0,0], "i8", ALLOC_NONE, 102384);
  3329. allocate([33,97,108,108,111,99,97,116,101,100,95,118,97,114,95,98,121,116,101,115,91,105,93,0], "i8", ALLOC_NONE, 102416);
  3330. allocate([109,97,107,105,110,103,32,119,114,105,116,97,98,108,101,32,45,62,32,70,65,73,76,69,68,10,0,0,0,0,0,0], "i8", ALLOC_NONE, 102440);
  3331. allocate([102,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102472);
  3332. allocate([72,66,95,79,80,84,73,79,78,83,0,0,0,0,0,0], "i8", ALLOC_NONE, 102488);
  3333. allocate([109,97,107,105,110,103,32,119,114,105,116,97,98,108,101,32,105,110,112,108,97,99,101,10,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102504);
  3334. allocate([104,98,45,111,116,45,115,104,97,112,101,45,99,111,109,112,108,101,120,45,105,110,100,105,99,46,99,99,0,0,0,0], "i8", ALLOC_NONE, 102536);
  3335. allocate([111,116,0,0,0,0,0,0], "i8", ALLOC_NONE, 102568);
  3336. allocate([100,117,112,112,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,45,62,32,37,112,10,0,0,0,0,0,0], "i8", ALLOC_NONE, 102576);
  3337. allocate([104,98,45,111,116,45,115,104,97,112,101,45,99,111,109,112,108,101,120,45,116,104,97,105,46,99,99,0,0,0,0,0], "i8", ALLOC_NONE, 102608);
  3338. allocate([115,101,97,95,99,97,116,101,103,111,114,121,0,0,0,0], "i8", ALLOC_NONE, 102640);
  3339. allocate([115,116,97,103,101,32,60,61,32,112,97,117,115,101,115,91,116,97,98,108,101,95,105,110,100,101,120,93,46,108,101,110,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102656);
  3340. allocate([109,121,97,110,109,97,114,95,99,97,116,101,103,111,114,121,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102696);
  3341. allocate([98,121,116,101,95,105,32,60,32,56,32,38,38,32,98,121,116,101,95,105,32,43,32,99,111,117,110,116,32,60,61,32,56,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102720);
  3342. allocate([103,108,121,112,104,95,105,110,100,101,120,0,0,0,0,0], "i8", ALLOC_NONE, 102760);
  3343. allocate([105,110,100,105,99,95,99,97,116,101,103,111,114,121,0,0], "i8", ALLOC_NONE, 102776);
  3344. allocate([104,98,95,115,101,103,109,101,110,116,95,112,114,111,112,101,114,116,105,101,115,95,101,113,117,97,108,32,40,38,115,104,97,112,101,95,112,108,97,110,45,62,112,114,111,112,115,44,32,38,98,117,102,102,101,114,45,62,112,114,111,112,115,41,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 102792);
  3345. allocate([98,117,102,102,101,114,45,62,99,111,110,116,101,110,116,95,116,121,112,101,32,61,61,32,72,66,95,66,85,70,70,69,82,95,67,79,78,84,69,78,84,95,84,89,80,69,95,85,78,73,67,79,68,69,0,0], "i8", ALLOC_NONE, 102864);
  3346. allocate([99,117,114,114,101,110,116,32,100,97,116,97,32,105,115,32,45,62,32,37,112,10,0,0], "i8", ALLOC_NONE, 102920);
  3347. allocate([54,46,50,46,48,0,0,0], "i8", ALLOC_NONE, 102944);
  3348. allocate([104,98,45,98,117,102,102,101,114,46,99,99,0,0,0,0], "i8", ALLOC_NONE, 102952);
  3349. allocate([46,47,104,98,45,111,116,45,109,97,112,45,112,114,105,118,97,116,101,46,104,104,0,0], "i8", ALLOC_NONE, 102968);
  3350. allocate([99,111,110,116,101,110,116,95,116,121,112,101,32,61,61,32,72,66,95,66,85,70,70,69,82,95,67,79,78,84,69,78,84,95,84,89,80,69,95,85,78,73,67,79,68,69,32,124,124,32,40,33,108,101,110,32,38,38,32,99,111,110,116,101,110,116,95,116,121,112,101,32,61,61,32,72,66,95,66,85,70,70,69,82,95,67,79,78,84,69,78,84,95,84,89,80,69,95,73,78,86,65,76,73,68,41,0,0,0,0,0,0], "i8", ALLOC_NONE, 102992);
  3351. allocate([117,110,105,99,111,100,101,95,112,114,111,112,115,49,0,0], "i8", ALLOC_NONE, 103104);
  3352. allocate([115,104,97,112,101,95,112,108,97,110,45,62,102,97,99,101,32,61,61,32,102,111,110,116,45,62,102,97,99,101,0,0], "i8", ALLOC_NONE, 103120);
  3353. allocate([108,101,110,32,60,32,65,82,82,65,89,95,76,69,78,71,84,72,32,40,115,41,0,0], "i8", ALLOC_NONE, 103152);
  3354. allocate([110,117,109,95,105,116,101,109,115,32,62,32,48,0,0,0], "i8", ALLOC_NONE, 103176);
  3355. allocate([46,47,104,98,45,111,116,45,108,97,121,111,117,116,45,103,115,117,98,103,112,111,115,45,112,114,105,118,97,116,101,46,104,104,0,0,0,0,0,0], "i8", ALLOC_NONE, 103192);
  3356. allocate([66,76,79,66,0,0,0,0], "i8", ALLOC_NONE, 103232);
  3357. allocate([104,98,45,115,104,97,112,101,46,99,99,0,0,0,0,0], "i8", ALLOC_NONE, 103240);
  3358. allocate([97,114,97,98,105,99,95,115,104,97,112,105,110,103,95,97,99,116,105,111,110,0,0,0], "i8", ALLOC_NONE, 103256);
  3359. allocate([122,104,0,0,0,0,0,0], "i8", ALLOC_NONE, 103280);
  3360. allocate([103,108,121,112,104,95,112,114,111,112,115,0,0,0,0,0], "i8", ALLOC_NONE, 103288);
  3361. allocate([108,105,103,95,112,114,111,112,115,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103304);
  3362. allocate([115,121,108,108,97,98,108,101,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103320);
  3363. allocate([117,110,105,115,99,114,105,98,101,45,98,117,103,45,99,111,109,112,97,116,105,98,108,101,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103336);
  3364. allocate([116,104,105,115,45,62,115,116,97,114,116,32,60,61,32,40,99,104,97,114,32,42,41,32,38,111,98,106,32,38,38,32,40,99,104,97,114,32,42,41,32,38,111,98,106,32,60,61,32,116,104,105,115,45,62,104,101,97,100,32,38,38,32,40,99,104,97,114,32,42,41,32,38,111,98,106,32,43,32,115,105,122,101,32,62,61,32,116,104,105,115,45,62,104,101,97,100,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103368);
  3365. allocate([102,97,108,115,101,0,0,0], "i8", ALLOC_NONE, 103472);
  3366. allocate([115,101,97,95,112,111,115,105,116,105,111,110,0,0,0,0], "i8", ALLOC_NONE, 103480);
  3367. allocate([98,117,102,102,101,114,45,62,99,111,110,116,101,110,116,95,116,121,112,101,32,61,61,32,72,66,95,66,85,70,70,69,82,95,67,79,78,84,69,78,84,95,84,89,80,69,95,85,78,73,67,79,68,69,32,124,124,32,40,33,98,117,102,102,101,114,45,62,108,101,110,32,38,38,32,98,117,102,102,101,114,45,62,99,111,110,116,101,110,116,95,116,121,112,101,32,61,61,32,72,66,95,66,85,70,70,69,82,95,67,79,78,84,69,78,84,95,84,89,80,69,95,73,78,86,65,76,73,68,41,0,0,0,0,0,0], "i8", ALLOC_NONE, 103496);
  3368. allocate([109,121,97,110,109,97,114,95,112,111,115,105,116,105,111,110,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103632);
  3369. allocate([116,104,105,115,45,62,115,116,97,114,116,32,60,32,40,99,104,97,114,32,42,41,32,38,111,98,106,32,38,38,32,40,99,104,97,114,32,42,41,32,38,111,98,106,32,60,61,32,116,104,105,115,45,62,104,101,97,100,32,38,38,32,40,99,104,97,114,32,42,41,32,38,111,98,106,32,43,32,115,105,122,101,32,62,61,32,116,104,105,115,45,62,104,101,97,100,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103656);
  3370. allocate([105,110,100,105,99,95,112,111,115,105,116,105,111,110,0,0], "i8", ALLOC_NONE, 103760);
  3371. allocate([104,97,118,101,95,111,117,116,112,117,116,0,0,0,0,0], "i8", ALLOC_NONE, 103776);
  3372. allocate([98,117,102,102,101,114,45,62,99,111,110,116,101,110,116,95,116,121,112,101,32,61,61,32,72,66,95,66,85,70,70,69,82,95,67,79,78,84,69,78,84,95,84,89,80,69,95,71,76,89,80,72,83,0,0,0], "i8", ALLOC_NONE, 103792);
  3373. allocate([72,66,95,83,72,65,80,69,82,95,76,73,83,84,0,0], "i8", ALLOC_NONE, 103848);
  3374. allocate([117,110,105,99,111,100,101,95,112,114,111,112,115,48,0,0], "i8", ALLOC_NONE, 103864);
  3375. allocate([98,117,102,102,101,114,45,62,104,97,118,101,95,112,111,115,105,116,105,111,110,115,0,0], "i8", ALLOC_NONE, 103880);
  3376. allocate([112,114,111,112,115,45,62,100,105,114,101,99,116,105,111,110,32,33,61,32,72,66,95,68,73,82,69,67,84,73,79,78,95,73,78,86,65,76,73,68,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103904);
  3377. allocate([115,117,99,99,101,115,115,102,117,108,108,121,32,109,97,100,101,32,91,37,112,46,46,37,112,93,32,40,37,108,117,32,98,121,116,101,115,41,32,119,114,105,116,97,98,108,101,10,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 103952);
  3378. allocate([104,98,45,115,104,97,112,101,45,112,108,97,110,46,99,99,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 104008);
  3379. allocate([109,112,114,111,116,101,99,116,32,102,97,105,108,101,100,58,32,37,115,0,0,0,0,0], "i8", ALLOC_NONE, 104032);
  3380. allocate([37,115,32,114,101,102,99,111,117,110,116,61,37,100,0,0], "i8", ALLOC_NONE, 104056);
  3381. allocate([79,66,74,69,67,84,0,0], "i8", ALLOC_NONE, 104072);
  3382. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,166,0,0,0,146,0,0,0,116,0,0,0,138,0,0,0,130,0,0,0,184,0,0,0,182,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i8",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,0,0,0,0], ALLOC_NONE, 104080);
  3383. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,126,0,0,0,76,0,0,0,102,0,0,0,32,0,0,0,100,0,0,0,118,0,0,0,18,0,0,0,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i8",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,0,0,0,0], ALLOC_NONE, 104232);
  3384. allocate([116,104,97,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8",0,0,0,0], ALLOC_NONE, 104384);
  3385. allocate([115,101,97,0,0,0,0,0,94,0,0,0,148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8",0,0,0,0], ALLOC_NONE, 104440);
  3386. allocate([109,121,97,110,109,97,114,0,128,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,68,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8",0,0,0,0], ALLOC_NONE, 104496);
  3387. allocate([105,110,100,105,99,0,0,0,88,0,0,0,30,0,0,0,168,0,0,0,170,0,0,0,0,0,0,0,4,0,0,0,160,0,0,0,56,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8",0,0,0,0], ALLOC_NONE, 104552);
  3388. allocate([100,101,102,97,117,108,116,0,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8",0,0,0,0], ALLOC_NONE, 104608);
  3389. allocate([97,114,97,98,105,99,0,0,8,0,0,0,0,0,0,0,28,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8",0,0,0,0], ALLOC_NONE, 104664);
  3390. allocate(4, "i32", ALLOC_NONE, 104720);
  3391. allocate([0,1,2,3,4,5,6,7,8,9,22,15,16,17,23,18,19,20,21,14,24,12,25,13,10,11,26,28,29,30,31,32,33,27,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,0,85,86,87,88,89,90,0,92,93,94,95,96,97,98,99,100,101,102,3,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255], "i8", ALLOC_NONE, 104728);
  3392. allocate(472, ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0], ALLOC_NONE, 104984);
  3393. allocate([104,98,95,98,111,111,108,95,116,32,104,98,95,115,104,97,112,101,95,112,108,97,110,95,101,120,101,99,117,116,101,40,104,98,95,115,104,97,112,101,95,112,108,97,110,95,116,32,42,44,32,104,98,95,102,111,110,116,95,116,32,42,44,32,104,98,95,98,117,102,102,101,114,95,116,32,42,44,32,99,111,110,115,116,32,104,98,95,102,101,97,116,117,114,101,95,116,32,42,44,32,117,110,115,105,103,110,101,100,32,105,110,116,41,0,0,0,0,0,0], "i8", ALLOC_NONE, 105456);
  3394. allocate([104,98,95,115,104,97,112,101,95,112,108,97,110,95,116,32,42,104,98,95,115,104,97,112,101,95,112,108,97,110,95,99,114,101,97,116,101,40,104,98,95,102,97,99,101,95,116,32,42,44,32,99,111,110,115,116,32,104,98,95,115,101,103,109,101,110,116,95,112,114,111,112,101,114,116,105,101,115,95,116,32,42,44,32,99,111,110,115,116,32,104,98,95,102,101,97,116,117,114,101,95,116,32,42,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,99,111,110,115,116,32,99,104,97,114,32,42,99,111,110,115,116,32,42,41,0,0,0,0], "i8", ALLOC_NONE, 105576);
  3395. allocate([104,98,95,98,111,111,108,95,116,32,104,98,95,115,104,97,112,101,95,102,117,108,108,40,104,98,95,102,111,110,116,95,116,32,42,44,32,104,98,95,98,117,102,102,101,114,95,116,32,42,44,32,99,111,110,115,116,32,104,98,95,102,101,97,116,117,114,101,95,116,32,42,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,99,111,110,115,116,32,99,104,97,114,32,42,99,111,110,115,116,32,42,41,0,0,0,0], "i8", ALLOC_NONE, 105720);
  3396. allocate([118,111,105,100,32,104,98,95,102,101,97,116,117,114,101,95,116,111,95,115,116,114,105,110,103,40,104,98,95,102,101,97,116,117,114,101,95,116,32,42,44,32,99,104,97,114,32,42,44,32,117,110,115,105,103,110,101,100,32,105,110,116,41,0], "i8", ALLOC_NONE, 105832);
  3397. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,110,111,114,109,97,108,105,122,101,95,103,108,121,112,104,115,40,104,98,95,98,117,102,102,101,114,95,116,32,42,41,0,0], "i8", ALLOC_NONE, 105896);
  3398. allocate([118,111,105,100,32,104,98,95,111,116,95,109,97,112,95,116,58,58,103,101,116,95,115,116,97,103,101,95,108,111,111,107,117,112,115,40,117,110,115,105,103,110,101,100,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,99,111,110,115,116,32,115,116,114,117,99,116,32,108,111,111,107,117,112,95,109,97,112,95,116,32,42,42,44,32,117,110,115,105,103,110,101,100,32,105,110,116,32,42,41,32,99,111,110,115,116,0,0,0,0,0], "i8", ALLOC_NONE, 105944);
  3399. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,72,101,97,100,108,101,115,115,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,32,62,93,0,0], "i8", ALLOC_NONE, 106064);
  3400. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,32,62,93,0,0,0], "i8", ALLOC_NONE, 106176);
  3401. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,79,102,102,115,101,116,84,111,60,79,84,58,58,76,105,103,97,116,117,114,101,62,32,62,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 106320);
  3402. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,79,102,102,115,101,116,84,111,60,79,84,58,58,76,105,103,97,116,117,114,101,83,101,116,62,32,62,93,0,0,0,0], "i8", ALLOC_NONE, 106464);
  3403. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,79,102,102,115,101,116,62,93,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 106608);
  3404. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,83,111,114,116,101,100,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,32,62,93,0,0,0,0], "i8", ALLOC_NONE, 106736);
  3405. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,83,111,114,116,101,100,65,114,114,97,121,79,102,60,79,84,58,58,82,97,110,103,101,82,101,99,111,114,100,62,93,0,0,0,0], "i8", ALLOC_NONE, 106848);
  3406. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,99,111,112,121,40,41,32,91,84,121,112,101,32,61,32,79,84,58,58,83,117,98,115,116,76,111,111,107,117,112,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 106944);
  3407. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,76,105,103,97,116,117,114,101,93,0,0,0,0,0,0], "i8", ALLOC_NONE, 107016);
  3408. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,67,111,118,101,114,97,103,101,93,0,0,0,0,0,0], "i8", ALLOC_NONE, 107096);
  3409. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,93,0,0,0,0], "i8", ALLOC_NONE, 107176);
  3410. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,76,111,111,107,117,112,93,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 107272);
  3411. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,76,105,103,97,116,117,114,101,83,117,98,115,116,70,111,114,109,97,116,49,93,0,0], "i8", ALLOC_NONE, 107352);
  3412. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,83,105,110,103,108,101,83,117,98,115,116,70,111,114,109,97,116,50,93,0,0,0,0], "i8", ALLOC_NONE, 107440);
  3413. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,83,105,110,103,108,101,83,117,98,115,116,70,111,114,109,97,116,49,93,0,0,0,0], "i8", ALLOC_NONE, 107528);
  3414. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,72,101,97,100,108,101,115,115,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,32,62,93,0,0,0,0,0,0], "i8", ALLOC_NONE, 107616);
  3415. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,67,111,118,101,114,97,103,101,70,111,114,109,97,116,50,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 107736);
  3416. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,67,111,118,101,114,97,103,101,70,111,114,109,97,116,49,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 107824);
  3417. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,32,62,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 107912);
  3418. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,79,102,102,115,101,116,84,111,60,79,84,58,58,76,105,103,97,116,117,114,101,62,32,62,93,0,0,0], "i8", ALLOC_NONE, 108064);
  3419. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,79,102,102,115,101,116,84,111,60,79,84,58,58,76,105,103,97,116,117,114,101,83,101,116,62,32,62,93,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 108208);
  3420. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,71,101,110,101,114,105,99,65,114,114,97,121,79,102,60,79,84,58,58,73,110,116,84,121,112,101,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,44,32,50,62,44,32,79,84,58,58,79,102,102,115,101,116,62,93,0,0,0,0], "i8", ALLOC_NONE, 108360);
  3421. allocate([84,121,112,101,32,42,79,84,58,58,104,98,95,115,101,114,105,97,108,105,122,101,95,99,111,110,116,101,120,116,95,116,58,58,101,120,116,101,110,100,95,109,105,110,40,84,121,112,101,32,38,41,32,91,84,121,112,101,32,61,32,79,84,58,58,76,105,103,97,116,117,114,101,83,101,116,93,0,0,0], "i8", ALLOC_NONE, 108488);
  3422. allocate([98,111,111,108,32,79,84,58,58,104,98,95,97,112,112,108,121,95,99,111,110,116,101,120,116,95,116,58,58,115,107,105,112,112,105,110,103,95,98,97,99,107,119,97,114,100,95,105,116,101,114,97,116,111,114,95,116,58,58,112,114,101,118,40,41,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 108568);
  3423. allocate([98,111,111,108,32,79,84,58,58,104,98,95,97,112,112,108,121,95,99,111,110,116,101,120,116,95,116,58,58,115,107,105,112,112,105,110,103,95,102,111,114,119,97,114,100,95,105,116,101,114,97,116,111,114,95,116,58,58,110,101,120,116,40,41,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 108640);
  3424. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,116,58,58,103,117,101,115,115,95,115,101,103,109,101,110,116,95,112,114,111,112,101,114,116,105,101,115,40,41,0,0,0,0], "i8", ALLOC_NONE, 108712);
  3425. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,116,58,58,100,101,97,108,108,111,99,97,116,101,95,118,97,114,40,117,110,115,105,103,110,101,100,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,99,111,110,115,116,32,99,104,97,114,32,42,41,0,0,0,0,0,0], "i8", ALLOC_NONE, 108760);
  3426. allocate([98,111,111,108,32,104,98,95,98,117,102,102,101,114,95,116,58,58,109,97,107,101,95,114,111,111,109,95,102,111,114,40,117,110,115,105,103,110,101,100,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,41,0,0,0,0,0], "i8", ALLOC_NONE, 108840);
  3427. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,116,58,58,115,119,97,112,95,98,117,102,102,101,114,115,40,41,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 108904);
  3428. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,116,58,58,97,108,108,111,99,97,116,101,95,118,97,114,40,117,110,115,105,103,110,101,100,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,99,111,110,115,116,32,99,104,97,114,32,42,41,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 108944);
  3429. allocate([118,111,105,100,32,105,110,105,116,105,97,108,95,114,101,111,114,100,101,114,105,110,103,95,99,111,110,115,111,110,97,110,116,95,115,121,108,108,97,98,108,101,40,99,111,110,115,116,32,104,98,95,111,116,95,115,104,97,112,101,95,112,108,97,110,95,116,32,42,44,32,104,98,95,102,97,99,101,95,116,32,42,44,32,104,98,95,98,117,102,102,101,114,95,116,32,42,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,41,0,0], "i8", ALLOC_NONE, 109024);
  3430. allocate([104,98,95,98,111,111,108,95,116,32,95,116,114,121,95,109,97,107,101,95,119,114,105,116,97,98,108,101,95,105,110,112,108,97,99,101,95,117,110,105,120,40,104,98,95,98,108,111,98,95,116,32,42,41,0,0], "i8", ALLOC_NONE, 109152);
  3431. allocate([98,111,111,108,32,95,116,114,121,95,119,114,105,116,97,98,108,101,95,105,110,112,108,97,99,101,40,104,98,95,98,108,111,98,95,116,32,42,41,0], "i8", ALLOC_NONE, 109208);
  3432. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,114,101,102,101,114,101,110,99,101,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,102,97,99,101,95,116,93,0,0,0,0], "i8", ALLOC_NONE, 109248);
  3433. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,114,101,102,101,114,101,110,99,101,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,98,108,111,98,95,116,93,0,0,0,0], "i8", ALLOC_NONE, 109304);
  3434. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,114,101,102,101,114,101,110,99,101,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,117,110,105,99,111,100,101,95,102,117,110,99,115,95,116,93,0,0,0], "i8", ALLOC_NONE, 109360);
  3435. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,114,101,102,101,114,101,110,99,101,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,115,104,97,112,101,95,112,108,97,110,95,116,93,0,0,0,0,0,0], "i8", ALLOC_NONE, 109424);
  3436. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,114,101,102,101,114,101,110,99,101,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,102,111,110,116,95,102,117,110,99,115,95,116,93,0,0,0,0,0,0], "i8", ALLOC_NONE, 109488);
  3437. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,114,101,102,101,114,101,110,99,101,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,98,117,102,102,101,114,95,116,93,0,0], "i8", ALLOC_NONE, 109552);
  3438. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,102,111,110,116,95,116,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 109608);
  3439. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,102,97,99,101,95,116,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 109664);
  3440. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,98,108,111,98,95,116,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 109720);
  3441. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,117,110,105,99,111,100,101,95,102,117,110,99,115,95,116,93,0,0,0,0,0,0], "i8", ALLOC_NONE, 109776);
  3442. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,115,104,97,112,101,95,112,108,97,110,95,116,93,0], "i8", ALLOC_NONE, 109840);
  3443. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,102,111,110,116,95,102,117,110,99,115,95,116,93,0], "i8", ALLOC_NONE, 109896);
  3444. allocate([98,111,111,108,32,104,98,95,111,98,106,101,99,116,95,100,101,115,116,114,111,121,40,84,121,112,101,32,42,41,32,91,84,121,112,101,32,61,32,104,98,95,98,117,102,102,101,114,95,116,93,0,0,0,0,0], "i8", ALLOC_NONE, 109952);
  3445. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,97,100,100,95,117,116,102,40,104,98,95,98,117,102,102,101,114,95,116,32,42,44,32,99,111,110,115,116,32,84,32,42,44,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,105,110,116,41,32,91,84,32,61,32,117,110,115,105,103,110,101,100,32,115,104,111,114,116,93,0,0,0], "i8", ALLOC_NONE, 110008);
  3446. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,97,100,100,95,117,116,102,40,104,98,95,98,117,102,102,101,114,95,116,32,42,44,32,99,111,110,115,116,32,84,32,42,44,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,105,110,116,41,32,91,84,32,61,32,117,110,115,105,103,110,101,100,32,105,110,116,93,0,0,0,0,0], "i8", ALLOC_NONE, 110104);
  3447. allocate([118,111,105,100,32,104,98,95,98,117,102,102,101,114,95,97,100,100,95,117,116,102,40,104,98,95,98,117,102,102,101,114,95,116,32,42,44,32,99,111,110,115,116,32,84,32,42,44,32,105,110,116,44,32,117,110,115,105,103,110,101,100,32,105,110,116,44,32,105,110,116,41,32,91,84,32,61,32,117,110,115,105,103,110,101,100,32,99,104,97,114,93,0,0,0,0], "i8", ALLOC_NONE, 110200);
  3448. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,99,114,101,97,116,101,40,41,32,91,84,121,112,101,32,61,32,104,98,95,102,111,110,116,95,116,93,0,0,0,0,0], "i8", ALLOC_NONE, 110296);
  3449. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,99,114,101,97,116,101,40,41,32,91,84,121,112,101,32,61,32,104,98,95,102,97,99,101,95,116,93,0,0,0,0,0], "i8", ALLOC_NONE, 110344);
  3450. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,99,114,101,97,116,101,40,41,32,91,84,121,112,101,32,61,32,104,98,95,98,108,111,98,95,116,93,0,0,0,0,0], "i8", ALLOC_NONE, 110392);
  3451. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,99,114,101,97,116,101,40,41,32,91,84,121,112,101,32,61,32,104,98,95,115,104,97,112,101,95,112,108,97,110,95,116,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 110440);
  3452. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,99,114,101,97,116,101,40,41,32,91,84,121,112,101,32,61,32,104,98,95,102,111,110,116,95,102,117,110,99,115,95,116,93,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 110496);
  3453. allocate([84,121,112,101,32,42,104,98,95,111,98,106,101,99,116,95,99,114,101,97,116,101,40,41,32,91,84,121,112,101,32,61,32,104,98,95,98,117,102,102,101,114,95,116,93,0,0,0], "i8", ALLOC_NONE, 110552);
  3454. allocate([104,98,95,99,111,100,101,112,111,105,110,116,95,116,32,116,104,97,105,95,112,117,97,95,115,104,97,112,101,40,104,98,95,99,111,100,101,112,111,105,110,116,95,116,44,32,116,104,97,105,95,97,99,116,105,111,110,95,116,44,32,104,98,95,102,111,110,116,95,116,32,42,41,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 110600);
  3455. allocate([98,111,111,108,32,95,116,114,121,95,119,114,105,116,97,98,108,101,40,104,98,95,98,108,111,98,95,116,32,42,41,0], "i8", ALLOC_NONE, 110680);
  3456. allocate([66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0], ALLOC_NONE, 110712);
  3457. allocate([66,0,0,0,0,0,0,0], ["*",0,0,0,"*",0,0,0], ALLOC_NONE, 110728);
  3458. allocate([64304,0,0,0,64305,0,0,0,64306,0,0,0,64307,0,0,0,64308,0,0,0,64309,0,0,0,64310,0,0,0,0,0,0,0,64312,0,0,0,64313,0,0,0,64314,0,0,0,64315,0,0,0,64316,0,0,0,0,0,0,0,64318,0,0,0,0,0,0,0,64320,0,0,0,64321,0,0,0,0,0,0,0,64323,0,0,0,64324,0,0,0,0,0,0,0,64326,0,0,0,64327,0,0,0,64328,0,0,0,64329,0,0,0,64330,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 110736);
  3459. allocate([3656,0,0,0,63237,0,0,0,63628,0,0,0,3657,0,0,0,63238,0,0,0,63631,0,0,0,3658,0,0,0,63239,0,0,0,63634,0,0,0,3659,0,0,0,63240,0,0,0,63637,0,0,0,3660,0,0,0,63241,0,0,0,63640,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 110848);
  3460. allocate([3656,0,0,0,63251,0,0,0,63626,0,0,0,3657,0,0,0,63252,0,0,0,63629,0,0,0,3658,0,0,0,63253,0,0,0,63632,0,0,0,3659,0,0,0,63254,0,0,0,63635,0,0,0,3660,0,0,0,63255,0,0,0,63638,0,0,0,3633,0,0,0,63248,0,0,0,63620,0,0,0,3636,0,0,0,63233,0,0,0,63621,0,0,0,3637,0,0,0,63234,0,0,0,63622,0,0,0,3638,0,0,0,63235,0,0,0,63623,0,0,0,3639,0,0,0,63236,0,0,0,63624,0,0,0,3655,0,0,0,63250,0,0,0,63625,0,0,0,3661,0,0,0,63249,0,0,0,63641,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 110920);
  3461. allocate([3656,0,0,0,63242,0,0,0,63627,0,0,0,3657,0,0,0,63243,0,0,0,63630,0,0,0,3658,0,0,0,63244,0,0,0,63633,0,0,0,3659,0,0,0,63245,0,0,0,63636,0,0,0,3660,0,0,0,63246,0,0,0,63639,0,0,0,3640,0,0,0,63256,0,0,0,63643,0,0,0,3641,0,0,0,63257,0,0,0,63644,0,0,0,3642,0,0,0,63258,0,0,0,63645,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 111080);
  3462. allocate([3597,0,0,0,63247,0,0,0,63642,0,0,0,3600,0,0,0,63232,0,0,0,63646,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 111192);
  3463. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4294967295,0,0,0,4294967295,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0], ALLOC_NONE, 111232);
  3464. allocate(4, "%struct.hb_language_impl_t*", ALLOC_NONE, 111320);
  3465. allocate(4, "*", ALLOC_NONE, 111328);
  3466. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8","i8","i8",0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 111336);
  3467. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,139072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131776,0,0,0,0,0,0,0,0,0,0,0,4294967295,0,0,0,4294967295,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,0,0,0,0], ALLOC_NONE, 111536);
  3468. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i8",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,0,0,0,0], ALLOC_NONE, 111632);
  3469. allocate(64, "*", ALLOC_NONE, 111704);
  3470. allocate(64, "*", ALLOC_NONE, 111768);
  3471. allocate([32,32,32,32,0,0,0,0], "i8", ALLOC_NONE, 111832);
  3472. allocate([0,1,0,0,0,0,0,0], "i8", ALLOC_NONE, 111840);
  3473. allocate([0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 111848);
  3474. allocate([255,255,0,0,0,0,0,0], "i8", ALLOC_NONE, 111864);
  3475. allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,48,49,50,51,52,53,54,55,56,57,0,0,0,0,0,0,45,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,45,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 111872);
  3476. allocate([2352,0,0,0,2480,0,0,0,2544,0,0,0,2608,0,0,0,2736,0,0,0,2864,0,0,0,2992,0,0,0,3120,0,0,0,3248,0,0,0,3376,0,0,0,3515,0,0,0,6042,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 112128);
  3477. allocate(4, "%struct.hb_language_item_t*", ALLOC_NONE, 112176);
  3478. allocate([2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 112184);
  3479. allocate([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 112232);
  3480. allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 112280);
  3481. allocate([0,0,5,0,0,0,0,0], "i8", ALLOC_NONE, 112784);
  3482. allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 112792);
  3483. allocate([3,0,0,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 113296);
  3484. allocate([0,0,31,0,60,0,86,0,91,0,117,0,141,0,163,0,185,0,213,0,241,0,269,0,297,0,314,0,342,0,370,0,398,0,426,0,454,0,482,0,510,0,538,0,566,0,592,0,597,0,623,0,647,0,669,0,691,0,719,0,747,0,775,0,803,0,832,0,860,0,891,0,919,0,947,0,975,0,1003,0,1031,0,1059,0,1087,0,1115,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 113352);
  3485. allocate([0,0,4,0,0,0,0,0], "i8", ALLOC_NONE, 113440);
  3486. allocate([0,1,22,0,0,23,29,32,35,36,40,41,42,25,38,39,37,28,43,0,2,12,0,3,9,13,14,18,19,20,5,16,17,15,8,21,4,6,7,10,11,0,24,26,27,30,31,33,34,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 113448);
  3487. allocate([1,2,0,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,2,0,0,2,0,0,2,0,0,2,2,2,2,2,2,2,2,2,2,2,3,2,0,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,2,0,0,2,0,0,2,0,0,2,2,2,2,2,2,2,2,2,2,2,4,2,0,0,0,2,5,0,0,2,0,0,2,0,0,2,0,0,0,2,0,0,2,0,0,2,0,0,2,2,6,2,6,2,6,2,6,2,7,2,0,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,2,0,0,2,0,0,2,0,0,2,2,2,2,2,2,2,2,2,2,2,6,8,0,2,0,2,0,0,2,0,0,2,0,2,0,0,0,0,2,0,0,2,0,0,2,0,0,2,11,2,2,6,2,12,12,0,0,2,2,6,2,13,2,2,0,2,0,0,2,2,2,0,2,2,0,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,0,14,0,0,2,0,2,0,0,2,0,0,2,0,0,2,0,2,2,2,2,2,2,2,2,2,15,2,2,0,2,0,0,2,2,0,2,2,0,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,0,16,0,0,2,0,2,0,0,2,0,0,2,0,0,2,0,2,2,2,2,2,2,2,2,2,17,6,0,6,6,0,6,2,0,6,2,6,0,6,6,6,2,0,6,2,6,0,6,6,6,2,0,6,2,6,0,6,6,6,2,0,6,2,6,0,6,0,18,0,0,2,0,2,0,0,2,0,0,2,0,0,2,0,2,2,2,2,2,2,2,2,2,19,20,2,2,0,0,0,0,2,2,2,2,0,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,2,2,2,0,2,2,2,0,2,0,21,0,0,2,0,2,0,0,2,0,0,2,0,0,2,0,2,2,2,2,2,2,2,2,2,0,0,8,2,0,0,2,2,8,8,0,8,8,0,0,2,0,0,0,2,0,0,2,0,0,2,0,0,0,2,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 113504);
  3488. allocate([0,0,17,0,19,0,23,0,27,0,29,0,33,0,37,0,39,0,43,0,47,0,49,0,53,0,57,0,59,0,61,0,63,0,65,0,70,0,72,0,74,0,79,0,81,0,83,0,88,0,90,0,92,0,104,0,116,0,128,0,140,0,152,0,164,0,176,0,188,0,200,0,212,0,229,0,231,0,235,0,239,0,241,0,245,0,249,0,251,0,255,0,259,0,261,0,265,0,269,0,271,0,273,0,275,0,277,0,282,0,284,0,286,0,291,0,293,0,295,0,300,0,302,0,304,0,316,0,328,0,340,0,352,0,364,0,376,0,388,0,400,0,412,0,424,0,441,0,443,0,447,0,451,0,453,0,457,0,461,0,463,0,467,0,471,0,473,0,477,0,481,0,483,0,485,0,487,0,489,0,494,0,496,0,498,0,503,0,505,0,507,0,512,0,514,0,516,0,528,0,540,0,552,0,564,0,576,0,588,0,600,0,612,0,624,0,641,0,643,0,647,0,651,0,653,0,657,0,661,0,663,0,667,0,671,0,673,0,677,0,681,0,683,0,685,0,687,0,689,0,694,0,696,0,698,0,703,0,705,0,707,0,712,0,714,0,716,0,728,0,740,0,752,0,764,0,776,0,788,0,800,0,812,0,824,0,836,0,848,0,860,0,864,0,868,0,872,0,876,0,878,0,882,0,886,0,888,0,892,0,896,0,898,0,915,0,917,0,919,0,921,0,923,0,928,0,930,0,932,0,937,0,939,0,941,0,946,0,948,0,950,0,967,0,983,0,996,0,1008,0,1025,0,1041,0,1054,0,1066,0,1083,0,1099,0,1112,0,1124,0,1141,0,1157,0,1170,0,1182,0,1199,0,1215,0,1228,0,1240,0,1251,0,1259,0,1265,0,1267,0,1269,0,1285,0,1293,0,1296,0,1304,0,1316,0,1329,0,1342,0,1354,0,1365,0,1378,0,1390,0,1401,0,1414,0,1426,0,1437,0,1450,0,1462,0,1472,0,1485,0,1497,0,1514,0,1527,0,1540,0,1557,0,1574,0,1591,0,1608,0,1625,0,1638,0,1651,0,1668,0,1685,0,1702,0,1719,0,1736,0,1749,0,1762,0,1779,0,1796,0,1813,0,1830,0,1847,0,1860,0,1873,0,1890,0,1907,0,1924,0,1941,0,1958,0,1971,0,1984,0,1997,0,2010,0,2022,0,2039,0,2055,0,2068,0,2080,0,2097,0,2113,0,2126,0,2138,0,2155,0,2171,0,2184,0,2196,0,2213,0,2229,0,2242,0,2254,0,2265,0,2273,0,2279,0,2281,0,2283,0,2299,0,2307,0,2310,0,2318,0,2330,0,2343,0,2356,0,2368,0,2379,0,2392,0,2404,0,2415,0,2428,0,2440,0,2451,0,2464,0,2476,0,2486,0,2499,0,2516,0,2529,0,2542,0,2559,0,2576,0,2593,0,2610,0,2627,0,2640,0,2653,0,2670,0,2687,0,2704,0,2721,0,2738,0,2751,0,2764,0,2781,0,2798,0,2815,0,2832,0,2849,0,2862,0,2875,0,2892,0,2909,0,2926,0,2943,0,2955,0,2972,0,2985,0,2998,0,3010,0,3027,0,3043,0,3056,0,3068,0,3085,0,3101,0,3114,0,3126,0,3143,0,3159,0,3172,0,3184,0,3201,0,3217,0,3230,0,3242,0,3253,0,3261,0,3267,0,3269,0,3271,0,3287,0,3295,0,3298,0,3306,0,3318,0,3331,0,3344,0,3356,0,3367,0,3380,0,3392,0,3403,0,3416,0,3428,0,3439,0,3452,0,3464,0,3474,0,3487,0,3504,0,3517,0,3530,0,3547,0,3564,0,3581,0,3598,0,3615,0,3628,0,3641,0,3658,0,3675,0,3692,0,3709,0,3726,0,3739,0,3752,0,3769,0,3786,0,3803,0,3820,0,3837,0,3850,0,3863,0,3880,0,3897,0,3914,0,3931,0,3948,0,3960,0,3973,0,3985,0,3998,0,4011,0,4023,0,4040,0,4056,0,4069,0,4081,0,4098,0,4114,0,4127,0,4139,0,4156,0,4172,0,4185,0,4197,0,4214,0,4230,0,4243,0,4255,0,4266,0,4274,0,4280,0,4282,0,4284,0,4300,0,4308,0,4311,0,4319,0,4331,0,4344,0,4357,0,4369,0,4380,0,4393,0,4405,0,4416,0,4429,0,4441,0,4452,0,4465,0,4477,0,4487,0,4500,0,4517,0,4530,0,4543,0,4560,0,4577,0,4594,0,4611,0,4628,0,4641,0,4654,0,4671,0,4688,0,4705,0,4722,0,4739,0,4752,0,4765,0,4782,0,4799,0,4816,0,4833,0,4850,0,4863,0,4876,0,4893,0,4910,0,4927,0,4944,0,4961,0,4974,0,4991,0,5007,0,5024,0,5036,0,5053,0,5069,0,5082,0,5094,0,5100,0,5102,0,5104,0,5117,0,5130,0,5147,0,5160,0,5172,0,5183,0,5196,0,5208,0,5219,0,5232,0,5244,0,5255,0,5268,0,5280,0,5288,0,5304,0,5312,0,5315,0,5323,0,5335,0,0,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0], ALLOC_NONE, 114024);
  3489. allocate([1,30,3,30,5,29,5,8,5,29,3,25,5,25,5,25,3,29,3,29,3,29,3,29,1,16,3,29,3,29,3,29,3,29,3,29,3,29,3,29,3,29,3,29,5,29,5,8,5,29,3,25,5,25,5,25,3,29,3,29,3,29,3,29,3,30,3,29,1,30,3,29,3,29,3,29,3,29,3,29,3,29,3,29,3,29,3,29,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 115024);
  3490. allocate([1,2,3,2,6,0,7,0,8,0,9,0,0,0,0,0], "i8", ALLOC_NONE, 115120);
  3491. allocate([0,2,4,34,62,90,0,0], "i8", ALLOC_NONE, 115136);
  3492. allocate([30,28,25,4,25,23,21,21,27,27,27,27,16,27,27,27,27,27,27,27,27,27,25,4,25,23,21,21,27,27,27,27,28,27,30,27,27,27,27,27,27,27,27,27,0,0,0,0], "i8", ALLOC_NONE, 115144);
  3493. allocate([0,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,20,0,20,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0,42,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 115192);
  3494. allocate([170,0,195,0,197,0,198,0,3,0,201,0,4,0,6,0,204,0,7,0,9,0,207,0,10,0,12,0,210,0,13,0,15,0,16,0,191,0,18,0,19,0,209,0,21,0,22,0,206,0,24,0,25,0,203,0,212,0,216,0,220,0,223,0,227,0,230,0,234,0,237,0,241,0,244,0,170,0,270,0,272,0,273,0,39,0,276,0,40,0,42,0,279,0,43,0,45,0,282,0,46,0,48,0,285,0,49,0,51,0,52,0,266,0,54,0,55,0,284,0,57,0,58,0,281,0,60,0,61,0,278,0,287,0,290,0,294,0,297,0,301,0,304,0,308,0,311,0,315,0,319,0,170,0,343,0,345,0,346,0,75,0,349,0,170,0,76,0,78,0,352,0,79,0,81,0,355,0,82,0,84,0,358,0,85,0,87,0,88,0,339,0,90,0,91,0,357,0,93,0,94,0,354,0,96,0,97,0,351,0,360,0,363,0,367,0,370,0,374,0,377,0,381,0,384,0,388,0,170,0,418,0,420,0,421,0,110,0,424,0,111,0,113,0,427,0,114,0,116,0,430,0,117,0,119,0,433,0,120,0,122,0,123,0,414,0,125,0,126,0,432,0,128,0,129,0,429,0,131,0,132,0,426,0,435,0,438,0,442,0,445,0,449,0,452,0,456,0,459,0,463,0,466,0,392,0,478,0,146,0,481,0,148,0,484,0,149,0,151,0,487,0,152,0,154,0,490,0,155,0,493,0,495,0,496,0,159,0,160,0,492,0,162,0,163,0,489,0,165,0,166,0,486,0,168,0,169,0,483,0,170,0,171,0,246,0,320,0,322,0,391,0,393,0,340,0,342,0,394,0,390,0,467,0,468,0,170,0,172,0,174,0,35,0,245,0,192,0,194,0,214,0,243,0,173,0,34,0,175,0,239,0,0,0,176,0,178,0,33,0,238,0,236,0,177,0,32,0,179,0,232,0,180,0,182,0,31,0,231,0,229,0,181,0,30,0,183,0,225,0,184,0,186,0,29,0,224,0,222,0,185,0,28,0,187,0,218,0,188,0,190,0,27,0,217,0,215,0,189,0,26,0,200,0,193,0,170,0,196,0,1,0,199,0,2,0,202,0,5,0,23,0,205,0,8,0,20,0,208,0,11,0,17,0,211,0,14,0,213,0,219,0,221,0,226,0,228,0,233,0,235,0,240,0,242,0,170,0,247,0,249,0,71,0,317,0,267,0,269,0,318,0,248,0,70,0,250,0,313,0,36,0,251,0,253,0,69,0,312,0,310,0,252,0,68,0,254,0,306,0,255,0,257,0,67,0,305,0,303,0,256,0,66,0,258,0,299,0,259,0,261,0,65,0,298,0,296,0,260,0,64,0,262,0,292,0,263,0,265,0,63,0,291,0,289,0,264,0,62,0,275,0,268,0,170,0,271,0,37,0,274,0,38,0,277,0,41,0,59,0,280,0,44,0,56,0,283,0,47,0,53,0,286,0,50,0,288,0,293,0,295,0,300,0,302,0,307,0,309,0,314,0,316,0,170,0,321,0,106,0,323,0,386,0,72,0,324,0,326,0,105,0,385,0,383,0,325,0,104,0,327,0,379,0,328,0,330,0,103,0,378,0,376,0,329,0,102,0,331,0,372,0,332,0,334,0,101,0,371,0,369,0,333,0,100,0,335,0,365,0,336,0,338,0,99,0,364,0,362,0,337,0,98,0,348,0,341,0,170,0,344,0,73,0,347,0,74,0,350,0,77,0,95,0,353,0,80,0,92,0,356,0,83,0,89,0,359,0,86,0,361,0,366,0,368,0,373,0,375,0,380,0,382,0,387,0,389,0,170,0,170,0,395,0,397,0,142,0,141,0,415,0,417,0,465,0,396,0,398,0,461,0,107,0,399,0,401,0,140,0,460,0,458,0,400,0,139,0,402,0,454,0,403,0,405,0,138,0,453,0,451,0,404,0,137,0,406,0,447,0,407,0,409,0,136,0,446,0,444,0,408,0,135,0,410,0,440,0,411,0,413,0,134,0,439,0,437,0,412,0,133,0,423,0,416,0,170,0,419,0,108,0,422,0,109,0,425,0,112,0,130,0,428,0,115,0,127,0,431,0,118,0,124,0,434,0,121,0,436,0,441,0,443,0,448,0,450,0,455,0,457,0,462,0,464,0,143,0,469,0,470,0,480,0,475,0,477,0,498,0,471,0,472,0,473,0,144,0,479,0,474,0,476,0,145,0,482,0,147,0,167,0,156,0,485,0,150,0,164,0,488,0,153,0,161,0,491,0,158,0,494,0,157,0,497,0,0,0,0,0,0,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0,0,0,0,0], ALLOC_NONE, 115280);
  3495. allocate([1,1,2,3,4,4,0,5,0,6,0,1,0,0,0,7,0,8,1,0,9,10,11,12,13,14,15,16,17,18,0,20,21,22,22,19,23,19,24,19,19,19,19,19,19,19,25,19,19,26,27,28,29,30,31,32,33,34,35,19,22,22,19,23,19,19,19,19,19,19,19,19,19,36,19,19,19,19,19,19,30,19,19,19,34,19,22,22,19,23,19,22,22,19,23,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,19,19,19,34,19,37,19,22,22,19,23,19,30,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,19,22,22,19,23,19,19,19,19,19,19,19,19,19,38,19,19,19,19,19,19,30,19,22,22,19,23,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,39,19,19,39,19,19,19,30,40,19,19,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,19,19,19,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,39,19,19,19,19,19,19,30,40,19,19,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,40,19,19,34,19,1,1,19,19,19,19,19,19,19,19,19,19,19,19,19,1,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,25,19,19,26,27,28,29,30,31,32,33,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,33,19,19,19,19,19,19,30,31,32,33,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,31,32,33,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,31,32,19,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,19,32,19,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,26,19,28,19,30,31,32,33,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,33,19,19,26,19,19,19,30,31,32,33,34,19,20,19,22,22,19,23,19,24,19,19,19,19,19,19,19,19,19,19,26,27,28,19,30,31,32,33,34,19,20,21,22,22,19,23,19,24,19,19,19,19,19,19,19,25,19,19,26,27,28,29,30,31,32,33,34,19,3,3,41,5,41,41,41,41,41,41,41,41,41,42,41,41,41,41,41,41,13,41,41,41,17,41,3,3,41,5,41,3,3,41,5,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,41,41,41,17,41,43,41,3,3,41,5,41,13,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,41,3,3,41,5,41,41,41,41,41,41,41,41,41,44,41,41,41,41,41,41,13,41,3,3,41,5,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,45,41,41,45,41,41,41,13,46,41,41,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,41,41,41,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,45,41,41,41,41,41,41,13,46,41,41,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,46,41,41,17,41,20,21,22,22,19,23,19,24,19,19,19,19,19,19,19,47,19,19,26,27,28,29,30,31,32,33,34,35,19,20,48,22,22,19,23,19,24,19,19,19,19,19,19,19,25,19,19,26,27,28,29,30,31,32,33,34,19,1,1,2,3,3,3,41,5,41,6,41,1,41,41,41,1,41,8,1,41,9,10,11,12,13,14,15,16,17,18,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,8,41,41,9,10,11,12,13,14,15,16,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,16,41,41,41,41,41,41,13,14,15,16,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,14,15,16,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,14,15,41,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,13,41,15,41,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,9,41,11,41,13,14,15,16,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,16,41,41,9,41,41,41,13,14,15,16,17,41,2,41,3,3,41,5,41,6,41,41,41,41,41,41,41,41,41,41,9,10,11,41,13,14,15,16,17,41,2,3,3,3,41,5,41,6,41,41,41,41,41,41,41,8,41,41,9,10,11,12,13,14,15,16,17,41,0], "i8", ALLOC_NONE, 116312);
  3496. allocate([1,16,13,13,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,4,4,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,1,16,13,13,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,4,4,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,1,16,13,13,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,4,4,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,1,16,13,13,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,4,4,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,4,14,5,7,5,7,5,7,5,7,7,7,5,7,5,7,7,7,5,7,5,7,7,7,1,16,13,13,4,4,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,4,7,6,6,16,16,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,5,14,8,14,5,9,9,9,9,9,3,17,3,9,8,9,3,9,3,13,3,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,6,14,3,14,4,14,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,3,14,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,5,14,8,14,5,9,9,9,9,9,3,17,3,9,8,9,3,9,3,13,3,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,6,14,3,14,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,4,14,1,16,3,14,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,5,14,8,14,5,9,9,9,9,9,3,17,3,9,8,9,3,9,3,13,3,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,6,14,3,14,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,4,14,3,14,4,14,3,14,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,1,16,3,17,3,14,4,14,5,14,8,14,5,9,9,9,9,9,3,17,3,9,8,9,3,9,3,13,3,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,6,14,3,14,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,3,14,1,16,1,16,1,16,1,16,1,16,3,14,1,16,3,17,1,16,4,14,1,16,3,17,3,14,4,14,5,9,9,9,9,9,3,14,3,14,1,16,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,5,14,3,14,4,14,8,14,3,17,3,9,8,9,3,9,3,13,1,16,0,0], "i8", ALLOC_NONE, 117456);
  3497. allocate([2,3,2,4,2,5,2,0,2,1,2,0,0,0,0,0], "i8", ALLOC_NONE, 118456);
  3498. allocate([16,1,3,3,1,3,3,1,3,3,1,3,3,1,1,1,1,4,1,1,4,1,1,4,1,1,11,11,11,11,11,11,11,11,11,11,16,1,3,3,1,3,3,1,3,3,1,3,3,1,1,1,1,4,1,1,4,1,1,4,1,1,11,11,11,11,11,11,11,11,11,11,16,1,3,3,1,3,3,1,3,3,1,3,3,1,1,1,1,4,1,1,4,1,1,4,1,1,11,11,11,11,11,11,11,11,11,16,1,3,3,1,3,3,1,3,3,1,3,3,1,1,1,1,4,1,1,4,1,1,4,1,1,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,1,3,3,1,3,3,1,16,1,1,1,1,4,1,1,4,1,1,4,1,1,16,15,12,11,16,15,12,11,16,15,12,11,16,15,12,11,16,15,12,11,10,7,5,1,1,15,7,2,7,11,12,12,11,10,12,11,10,12,11,10,12,11,9,12,11,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,12,12,11,16,15,12,11,16,15,12,11,16,15,12,11,16,15,12,11,10,7,5,1,1,15,7,2,7,11,12,12,11,10,12,11,10,12,11,10,12,11,9,12,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,11,16,12,12,11,16,15,12,11,16,15,12,11,16,15,12,11,16,15,12,11,10,7,5,1,1,15,7,2,7,11,12,12,11,10,12,11,10,12,11,10,12,11,9,12,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,11,12,11,12,12,11,16,15,12,11,16,15,12,11,16,15,12,11,16,15,12,11,10,7,5,1,1,15,7,2,7,11,12,12,11,10,12,11,10,12,11,10,12,11,9,12,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,12,16,16,16,16,16,12,16,15,16,11,16,15,12,11,5,1,1,12,12,16,12,11,10,12,11,10,12,11,10,12,11,7,15,7,2,7,11,16,0,0,0,0,0], "i8", ALLOC_NONE, 118472);
  3499. allocate([1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,39,0,77,0,77,0,77,0,83,0,83,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,83,0,77,0,77,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,115,0,77,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,269,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,343,0,410,0,343,0,410,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,411,0,343,0,194,0,194,0,194,0,343,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,343,0,0,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0], ALLOC_NONE, 118976);
  3500. allocate([1,1,1,1,1,29,3,29,3,29,1,1,0,0,0,0], "i8", ALLOC_NONE, 119976);
  3501. allocate([1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,4,0,4,0,5,0,0,0,6,0,6,0,5,0,0,0,5,0,0,0,7,0,7,0,8,0,0,0,9,0,9,0,8,0,0,0,8,0,0,0,10,0,10,0,11,0,0,0,12,0,12,0,11,0,0,0,11,0,0,0,13,0,13,0,14,0,0,0,15,0,15,0,14,0,0,0,14,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,13,0,13,0,14,0,0,0,20,0,0,0,21,0,0,0,22,0,10,0,10,0,11,0,0,0,23,0,0,0,24,0,0,0,25,0,7,0,7,0,8,0,0,0,26,0,0,0,27,0,0,0,28,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,28,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,29,0,28,0,0,0,30,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,30,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,31,0,30,0,0,0,32,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,32,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,33,0,32,0,0,0,34,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,34,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,35,0,34,0,0,0,36,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,36,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,37,0,36,0,0,0,39,0,40,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,38,0,39,0,38,0,41,0,38,0,42,0,42,0,43,0,38,0,44,0,44,0,43,0,38,0,43,0,38,0,45,0,45,0,46,0,38,0,47,0,47,0,46,0,38,0,46,0,38,0,48,0,48,0,49,0,38,0,50,0,50,0,49,0,38,0,49,0,38,0,51,0,51,0,52,0,38,0,53,0,53,0,52,0,38,0,52,0,38,0,54,0,38,0,55,0,38,0,56,0,38,0,57,0,51,0,51,0,52,0,38,0,58,0,38,0,59,0,38,0,60,0,48,0,48,0,49,0,38,0,61,0,38,0,62,0,38,0,63,0,45,0,45,0,46,0,38,0,64,0,38,0,65,0,38,0,66,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,38,0,66,0,38,0,66,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,67,0,66,0,38,0,68,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,38,0,68,0,38,0,68,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,69,0,68,0,38,0,70,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,38,0,70,0,38,0,70,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,71,0,70,0,38,0,72,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,38,0,72,0,38,0,72,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,73,0,72,0,38,0,74,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,38,0,74,0,38,0,74,0,42,0,42,0,43,0,38,0,38,0,38,0,38,0,38,0,75,0,74,0,38,0,77,0,78,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,76,0,77,0,76,0,79,0,76,0,80,0,80,0,81,0,76,0,83,0,83,0,81,0,82,0,81,0,82,0,84,0,84,0,85,0,76,0,86,0,86,0,85,0,76,0,85,0,76,0,87,0,87,0,88,0,76,0,89,0,89,0,88,0,76,0,88,0,76,0,90,0,90,0,91,0,76,0,92,0,92,0,91,0,76,0,91,0,76,0,93,0,76,0,94,0,76,0,95,0,76,0,96,0,90,0,90,0,91,0,76,0,97,0,76,0,98,0,76,0,99,0,87,0,87,0,88,0,76,0,100,0,76,0,101,0,76,0,102,0,84,0,84,0,85,0,76,0,103,0,76,0,104,0,76,0,105,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,76,0,105,0,76,0,105,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,106,0,105,0,76,0,107,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,76,0,107,0,76,0,107,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,108,0,107,0,76,0,109,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,76,0,109,0,76,0,109,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,110,0,109,0,76,0,111,0,80,0,80,0,81,0,82,0,82,0,82,0,82,0,82,0,82,0,111,0,82,0,111,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,112,0,111,0,76,0,113,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,76,0,113,0,76,0,115,0,116,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,114,0,115,0,114,0,117,0,114,0,118,0,118,0,119,0,114,0,120,0,120,0,119,0,114,0,119,0,114,0,121,0,121,0,122,0,114,0,123,0,123,0,122,0,114,0,122,0,114,0,124,0,124,0,125,0,114,0,126,0,126,0,125,0,114,0,125,0,114,0,127,0,127,0,128,0,114,0,129,0,129,0,128,0,114,0,128,0,114,0,130,0,114,0,131,0,114,0,132,0,114,0,133,0,127,0,127,0,128,0,114,0,134,0,114,0,135,0,114,0,136,0,124,0,124,0,125,0,114,0,137,0,114,0,138,0,114,0,139,0,121,0,121,0,122,0,114,0,140,0,114,0,141,0,114,0,142,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,114,0,142,0,114,0,142,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,143,0,142,0,114,0,144,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,114,0,144,0,114,0,144,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,145,0,144,0,114,0,146,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,114,0,146,0,114,0,146,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,147,0,146,0,114,0,148,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,114,0,148,0,114,0,148,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,149,0,148,0,114,0,150,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,114,0,150,0,114,0,150,0,118,0,118,0,119,0,114,0,114,0,114,0,114,0,114,0,151,0,150,0,114,0,113,0,80,0,80,0,81,0,76,0,76,0,76,0,76,0,76,0,152,0,113,0,76,0,111,0,80,0,80,0,81,0,0,0,0,0,0,0,0,0,0,0,153,0,111,0,0,0,154,0,154,0,155,0,0,0,6,0,6,0,155,0,0,0,156,0,156,0,157,0,0,0,158,0,158,0,157,0,0,0,157,0,0,0,159,0,159,0,160,0,0,0,161,0,161,0,160,0,0,0,160,0,0,0,162,0,162,0,163,0,0,0,164,0,164,0,163,0,0,0,163,0,0,0,165,0,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,165,0,0,0,167,0,0,0,168,0,0,0,169,0,0,0,170,0,0,0,171,0,162,0,162,0,163,0,0,0,172,0,0,0,173,0,0,0,174,0,159,0,159,0,160,0,0,0,175,0,0,0,176,0,0,0,177,0,156,0,156,0,157,0,0,0,178,0,0,0,179,0,0,0,181,0,182,0,183,0,184,0,185,0,186,0,81,0,187,0,188,0,180,0,189,0,189,0,152,0,190,0,191,0,192,0,180,0,194,0,195,0,196,0,197,0,5,0,198,0,199,0,200,0,193,0,193,0,37,0,201,0,193,0,193,0,181,0,193,0,202,0,195,0,203,0,203,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,201,0,193,0,195,0,203,0,203,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,201,0,193,0,204,0,193,0,193,0,193,0,18,0,205,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,204,0,193,0,207,0,208,0,209,0,210,0,5,0,198,0,199,0,200,0,193,0,193,0,35,0,211,0,193,0,193,0,204,0,193,0,212,0,208,0,213,0,213,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,211,0,193,0,208,0,213,0,213,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,211,0,193,0,214,0,193,0,193,0,193,0,18,0,215,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,214,0,193,0,216,0,217,0,218,0,219,0,5,0,198,0,199,0,200,0,193,0,193,0,33,0,220,0,193,0,193,0,214,0,193,0,221,0,217,0,222,0,222,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,220,0,193,0,217,0,222,0,222,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,220,0,193,0,223,0,193,0,193,0,193,0,18,0,224,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,223,0,193,0,225,0,226,0,227,0,228,0,5,0,198,0,199,0,200,0,193,0,193,0,31,0,229,0,193,0,193,0,223,0,193,0,230,0,226,0,231,0,231,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,229,0,193,0,226,0,231,0,231,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,229,0,193,0,232,0,193,0,193,0,193,0,18,0,233,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,232,0,193,0,234,0,235,0,236,0,237,0,5,0,198,0,199,0,200,0,193,0,193,0,29,0,238,0,193,0,193,0,232,0,193,0,239,0,235,0,240,0,240,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,238,0,193,0,235,0,240,0,240,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,238,0,193,0,18,0,241,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,242,0,193,0,193,0,193,0,199,0,193,0,199,0,193,0,243,0,193,0,244,0,193,0,245,0,246,0,193,0,198,0,199,0,193,0,193,0,193,0,3,0,193,0,193,0,193,0,1,0,193,0,2,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,198,0,199,0,193,0,244,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,244,0,193,0,245,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,3,0,193,0,18,0,193,0,247,0,247,0,5,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,248,0,27,0,249,0,250,0,8,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,27,0,249,0,250,0,8,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,249,0,249,0,8,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,251,0,24,0,252,0,253,0,11,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,24,0,252,0,253,0,11,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,252,0,252,0,11,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,254,0,21,0,255,0,256,0,14,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,21,0,255,0,256,0,14,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,255,0,255,0,14,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,257,0,18,0,193,0,258,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,18,0,193,0,258,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,259,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,18,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,235,0,240,0,240,0,5,0,198,0,199,0,193,0,193,0,193,0,193,0,238,0,193,0,1,0,2,0,193,0,193,0,18,0,241,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,1,0,193,0,234,0,235,0,240,0,240,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,238,0,193,0,234,0,235,0,236,0,240,0,5,0,198,0,199,0,200,0,193,0,193,0,29,0,238,0,193,0,232,0,193,0,260,0,193,0,247,0,247,0,5,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,232,0,193,0,232,0,193,0,193,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,232,0,193,0,232,0,193,0,193,0,193,0,193,0,261,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,232,0,193,0,232,0,193,0,260,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,232,0,193,0,232,0,2,0,193,0,193,0,18,0,233,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,232,0,193,0,225,0,226,0,231,0,231,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,229,0,193,0,225,0,226,0,227,0,231,0,5,0,198,0,199,0,200,0,193,0,193,0,31,0,229,0,193,0,223,0,193,0,262,0,193,0,247,0,247,0,5,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,223,0,193,0,223,0,193,0,193,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,223,0,193,0,223,0,193,0,193,0,193,0,193,0,263,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,223,0,193,0,223,0,193,0,262,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,223,0,193,0,223,0,2,0,193,0,193,0,18,0,224,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,223,0,193,0,216,0,217,0,222,0,222,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,220,0,193,0,216,0,217,0,218,0,222,0,5,0,198,0,199,0,200,0,193,0,193,0,33,0,220,0,193,0,214,0,193,0,264,0,193,0,247,0,247,0,5,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,214,0,193,0,214,0,193,0,193,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,214,0,193,0,214,0,193,0,193,0,193,0,193,0,265,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,214,0,193,0,214,0,193,0,264,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,214,0,193,0,214,0,2,0,193,0,193,0,18,0,215,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,214,0,193,0,207,0,208,0,213,0,213,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,211,0,193,0,207,0,208,0,209,0,213,0,5,0,198,0,199,0,200,0,193,0,193,0,35,0,211,0,193,0,204,0,193,0,266,0,193,0,247,0,247,0,5,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,204,0,193,0,204,0,193,0,193,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,204,0,193,0,204,0,193,0,193,0,193,0,193,0,267,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,204,0,193,0,204,0,193,0,266,0,193,0,193,0,193,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,204,0,193,0,204,0,2,0,193,0,193,0,18,0,205,0,193,0,198,0,199,0,193,0,193,0,193,0,193,0,206,0,193,0,204,0,193,0,194,0,195,0,203,0,203,0,5,0,198,0,199,0,200,0,193,0,193,0,193,0,201,0,193,0,194,0,195,0,196,0,203,0,5,0,198,0,199,0,200,0,193,0,193,0,37,0,201,0,193,0,269,0,270,0,271,0,272,0,43,0,273,0,274,0,268,0,268,0,268,0,75,0,275,0,268,0,276,0,270,0,277,0,272,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,275,0,268,0,270,0,277,0,272,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,275,0,268,0,278,0,268,0,268,0,268,0,56,0,279,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,278,0,268,0,281,0,282,0,283,0,284,0,43,0,273,0,274,0,268,0,268,0,268,0,73,0,285,0,268,0,268,0,278,0,268,0,286,0,282,0,287,0,287,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,285,0,268,0,282,0,287,0,287,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,285,0,268,0,288,0,268,0,268,0,268,0,56,0,289,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,288,0,268,0,290,0,291,0,292,0,293,0,43,0,273,0,274,0,268,0,268,0,268,0,71,0,294,0,268,0,268,0,288,0,268,0,295,0,291,0,296,0,296,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,294,0,268,0,291,0,296,0,296,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,294,0,268,0,297,0,268,0,268,0,268,0,56,0,298,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,297,0,268,0,299,0,300,0,301,0,302,0,43,0,273,0,274,0,268,0,268,0,268,0,69,0,303,0,268,0,268,0,297,0,268,0,304,0,300,0,305,0,305,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,303,0,268,0,300,0,305,0,305,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,303,0,268,0,306,0,268,0,268,0,268,0,56,0,307,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,306,0,268,0,308,0,309,0,310,0,311,0,43,0,273,0,274,0,268,0,268,0,268,0,67,0,312,0,268,0,268,0,306,0,268,0,313,0,309,0,314,0,314,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,312,0,268,0,309,0,314,0,314,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,312,0,268,0,56,0,315,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,316,0,268,0,268,0,268,0,274,0,268,0,274,0,268,0,317,0,268,0,318,0,268,0,319,0,320,0,268,0,273,0,274,0,268,0,268,0,268,0,41,0,268,0,268,0,268,0,39,0,268,0,40,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,273,0,274,0,268,0,318,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,318,0,268,0,319,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,41,0,268,0,56,0,268,0,321,0,321,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,322,0,65,0,323,0,324,0,46,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,65,0,323,0,324,0,46,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,323,0,323,0,46,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,325,0,62,0,326,0,327,0,49,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,62,0,326,0,327,0,49,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,326,0,326,0,49,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,328,0,59,0,329,0,330,0,52,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,59,0,329,0,330,0,52,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,329,0,329,0,52,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,331,0,56,0,268,0,332,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,56,0,268,0,332,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,333,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,56,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,39,0,40,0,268,0,268,0,56,0,315,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,39,0,268,0,308,0,309,0,314,0,314,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,312,0,268,0,308,0,309,0,310,0,314,0,43,0,273,0,274,0,268,0,268,0,268,0,67,0,312,0,268,0,306,0,268,0,334,0,268,0,321,0,321,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,306,0,268,0,306,0,268,0,268,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,306,0,268,0,306,0,268,0,268,0,268,0,268,0,335,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,306,0,268,0,306,0,268,0,334,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,306,0,268,0,306,0,40,0,268,0,268,0,56,0,307,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,306,0,268,0,299,0,300,0,305,0,305,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,303,0,268,0,299,0,300,0,301,0,305,0,43,0,273,0,274,0,268,0,268,0,268,0,69,0,303,0,268,0,297,0,268,0,336,0,268,0,321,0,321,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,297,0,268,0,297,0,268,0,268,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,297,0,268,0,297,0,268,0,268,0,268,0,268,0,337,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,297,0,268,0,297,0,268,0,336,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,297,0,268,0,297,0,40,0,268,0,268,0,56,0,298,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,297,0,268,0,290,0,291,0,296,0,296,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,294,0,268,0,290,0,291,0,292,0,296,0,43,0,273,0,274,0,268,0,268,0,268,0,71,0,294,0,268,0,288,0,268,0,338,0,268,0,321,0,321,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,288,0,268,0,288,0,268,0,268,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,288,0,268,0,288,0,268,0,268,0,268,0,268,0,339,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,288,0,268,0,288,0,268,0,338,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,288,0,268,0,288,0,40,0,268,0,268,0,56,0,289,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,288,0,268,0,281,0,282,0,287,0,287,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,285,0,268,0,281,0,282,0,283,0,287,0,43,0,273,0,274,0,268,0,268,0,268,0,73,0,285,0,268,0,278,0,268,0,340,0,268,0,321,0,321,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,278,0,268,0,278,0,268,0,268,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,278,0,268,0,278,0,268,0,268,0,268,0,268,0,341,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,278,0,268,0,278,0,268,0,340,0,268,0,268,0,268,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,278,0,268,0,74,0,42,0,42,0,43,0,268,0,268,0,268,0,268,0,268,0,268,0,74,0,268,0,278,0,40,0,268,0,268,0,56,0,279,0,268,0,273,0,274,0,268,0,268,0,268,0,268,0,280,0,268,0,278,0,268,0,269,0,270,0,277,0,272,0,43,0,273,0,274,0,268,0,268,0,268,0,268,0,275,0,268,0,343,0,184,0,344,0,344,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,190,0,342,0,184,0,344,0,344,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,190,0,342,0,345,0,342,0,342,0,342,0,95,0,346,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,345,0,342,0,348,0,349,0,350,0,351,0,81,0,187,0,188,0,342,0,342,0,342,0,112,0,352,0,342,0,342,0,345,0,342,0,353,0,349,0,354,0,354,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,352,0,342,0,349,0,354,0,354,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,352,0,342,0,355,0,342,0,342,0,342,0,95,0,356,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,355,0,342,0,357,0,358,0,359,0,360,0,81,0,187,0,188,0,342,0,342,0,342,0,110,0,361,0,342,0,342,0,355,0,342,0,362,0,358,0,363,0,363,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,361,0,342,0,358,0,363,0,363,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,361,0,342,0,364,0,342,0,342,0,342,0,95,0,365,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,364,0,342,0,366,0,367,0,368,0,369,0,81,0,187,0,188,0,342,0,342,0,342,0,108,0,370,0,342,0,342,0,364,0,342,0,371,0,367,0,372,0,372,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,370,0,342,0,367,0,372,0,372,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,370,0,342,0,373,0,342,0,342,0,342,0,95,0,374,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,373,0,342,0,375,0,376,0,377,0,378,0,81,0,187,0,188,0,342,0,342,0,342,0,106,0,379,0,342,0,342,0,373,0,342,0,380,0,376,0,381,0,381,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,379,0,342,0,376,0,381,0,381,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,379,0,342,0,95,0,382,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,383,0,342,0,342,0,342,0,188,0,342,0,188,0,342,0,384,0,342,0,385,0,342,0,386,0,387,0,342,0,187,0,188,0,342,0,342,0,342,0,79,0,342,0,342,0,342,0,77,0,342,0,78,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,187,0,188,0,342,0,385,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,385,0,342,0,386,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,79,0,342,0,95,0,342,0,388,0,388,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,389,0,104,0,390,0,391,0,85,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,104,0,390,0,391,0,85,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,390,0,390,0,85,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,392,0,101,0,393,0,394,0,88,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,101,0,393,0,394,0,88,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,393,0,393,0,88,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,395,0,98,0,396,0,397,0,91,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,98,0,396,0,397,0,91,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,396,0,396,0,91,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,398,0,95,0,342,0,399,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,95,0,342,0,399,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,400,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,95,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,77,0,78,0,342,0,342,0,95,0,382,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,77,0,342,0,375,0,376,0,381,0,381,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,379,0,342,0,375,0,376,0,377,0,381,0,81,0,187,0,188,0,342,0,342,0,342,0,106,0,379,0,342,0,373,0,342,0,401,0,342,0,388,0,388,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,373,0,342,0,373,0,342,0,342,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,373,0,342,0,373,0,342,0,342,0,342,0,342,0,402,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,373,0,342,0,373,0,342,0,401,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,373,0,342,0,373,0,78,0,342,0,342,0,95,0,374,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,373,0,342,0,366,0,367,0,372,0,372,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,370,0,342,0,366,0,367,0,368,0,372,0,81,0,187,0,188,0,342,0,342,0,342,0,108,0,370,0,342,0,364,0,342,0,403,0,342,0,388,0,388,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,364,0,342,0,364,0,342,0,342,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,364,0,342,0,364,0,342,0,342,0,342,0,342,0,404,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,364,0,342,0,364,0,342,0,403,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,364,0,342,0,364,0,78,0,342,0,342,0,95,0,365,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,364,0,342,0,357,0,358,0,363,0,363,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,361,0,342,0,357,0,358,0,359,0,363,0,81,0,187,0,188,0,342,0,342,0,342,0,110,0,361,0,342,0,355,0,342,0,405,0,342,0,388,0,388,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,355,0,342,0,355,0,342,0,342,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,355,0,342,0,355,0,342,0,342,0,342,0,342,0,406,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,355,0,342,0,355,0,342,0,405,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,355,0,342,0,355,0,78,0,342,0,342,0,95,0,356,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,355,0,342,0,348,0,349,0,354,0,354,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,352,0,342,0,348,0,349,0,350,0,354,0,81,0,187,0,188,0,342,0,342,0,342,0,112,0,352,0,342,0,345,0,342,0,407,0,342,0,388,0,388,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,345,0,342,0,345,0,342,0,342,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,345,0,342,0,345,0,342,0,342,0,342,0,342,0,408,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,345,0,342,0,345,0,342,0,407,0,342,0,342,0,342,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,345,0,342,0,345,0,78,0,342,0,342,0,95,0,346,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,345,0,342,0,113,0,80,0,80,0,81,0,409,0,409,0,409,0,409,0,409,0,152,0,113,0,409,0,183,0,184,0,344,0,344,0,81,0,187,0,188,0,342,0,342,0,342,0,342,0,190,0,342,0,113,0,80,0,80,0,81,0,409,0,409,0,409,0,409,0,409,0,409,0,113,0,409,0,411,0,412,0,413,0,414,0,119,0,415,0,416,0,410,0,410,0,410,0,151,0,417,0,410,0,418,0,412,0,414,0,414,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,417,0,410,0,412,0,414,0,414,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,417,0,410,0,419,0,410,0,410,0,410,0,132,0,420,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,419,0,410,0,422,0,423,0,424,0,425,0,119,0,415,0,416,0,410,0,410,0,410,0,149,0,426,0,410,0,410,0,419,0,410,0,427,0,423,0,428,0,428,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,426,0,410,0,423,0,428,0,428,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,426,0,410,0,429,0,410,0,410,0,410,0,132,0,430,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,429,0,410,0,431,0,432,0,433,0,434,0,119,0,415,0,416,0,410,0,410,0,410,0,147,0,435,0,410,0,410,0,429,0,410,0,436,0,432,0,437,0,437,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,435,0,410,0,432,0,437,0,437,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,435,0,410,0,438,0,410,0,410,0,410,0,132,0,439,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,438,0,410,0,440,0,441,0,442,0,443,0,119,0,415,0,416,0,410,0,410,0,410,0,145,0,444,0,410,0,410,0,438,0,410,0,445,0,441,0,446,0,446,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,444,0,410,0,441,0,446,0,446,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,444,0,410,0,447,0,410,0,410,0,410,0,132,0,448,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,447,0,410,0,449,0,450,0,451,0,452,0,119,0,415,0,416,0,410,0,410,0,410,0,143,0,453,0,410,0,410,0,447,0,410,0,454,0,450,0,455,0,455,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,453,0,410,0,450,0,455,0,455,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,453,0,410,0,132,0,456,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,457,0,410,0,410,0,410,0,416,0,410,0,416,0,410,0,458,0,410,0,459,0,410,0,460,0,461,0,410,0,415,0,416,0,410,0,410,0,410,0,117,0,410,0,410,0,410,0,115,0,410,0,116,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,415,0,416,0,410,0,459,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,459,0,410,0,460,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,117,0,410,0,132,0,410,0,462,0,462,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,463,0,141,0,464,0,465,0,122,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,141,0,464,0,465,0,122,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,464,0,464,0,122,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,466,0,138,0,467,0,468,0,125,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,138,0,467,0,468,0,125,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,467,0,467,0,125,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,469,0,135,0,470,0,471,0,128,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,135,0,470,0,471,0,128,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,470,0,470,0,128,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,472,0,132,0,410,0,473,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,132,0,410,0,473,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,474,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,132,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,115,0,116,0,410,0,410,0,132,0,456,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,115,0,410,0,449,0,450,0,455,0,455,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,453,0,410,0,449,0,450,0,451,0,455,0,119,0,415,0,416,0,410,0,410,0,410,0,143,0,453,0,410,0,447,0,410,0,475,0,410,0,462,0,462,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,447,0,410,0,447,0,410,0,410,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,447,0,410,0,447,0,410,0,410,0,410,0,410,0,476,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,447,0,410,0,447,0,410,0,475,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,447,0,410,0,447,0,116,0,410,0,410,0,132,0,448,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,447,0,410,0,440,0,441,0,446,0,446,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,444,0,410,0,440,0,441,0,442,0,446,0,119,0,415,0,416,0,410,0,410,0,410,0,145,0,444,0,410,0,438,0,410,0,477,0,410,0,462,0,462,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,438,0,410,0,438,0,410,0,410,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,438,0,410,0,438,0,410,0,410,0,410,0,410,0,478,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,438,0,410,0,438,0,410,0,477,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,438,0,410,0,438,0,116,0,410,0,410,0,132,0,439,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,438,0,410,0,431,0,432,0,437,0,437,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,435,0,410,0,431,0,432,0,433,0,437,0,119,0,415,0,416,0,410,0,410,0,410,0,147,0,435,0,410,0,429,0,410,0,479,0,410,0,462,0,462,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,429,0,410,0,429,0,410,0,410,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,429,0,410,0,429,0,410,0,410,0,410,0,410,0,480,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,429,0,410,0,429,0,410,0,479,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,429,0,410,0,429,0,116,0,410,0,410,0,132,0,430,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,429,0,410,0,422,0,423,0,428,0,428,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,426,0,410,0,422,0,423,0,424,0,428,0,119,0,415,0,416,0,410,0,410,0,410,0,149,0,426,0,410,0,419,0,410,0,481,0,410,0,462,0,462,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,419,0,410,0,419,0,410,0,410,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,419,0,410,0,419,0,410,0,410,0,410,0,410,0,482,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,419,0,410,0,419,0,410,0,481,0,410,0,410,0,410,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,419,0,410,0,419,0,116,0,410,0,410,0,132,0,420,0,410,0,415,0,416,0,410,0,410,0,410,0,410,0,421,0,410,0,419,0,410,0,411,0,412,0,414,0,414,0,119,0,415,0,416,0,410,0,410,0,410,0,410,0,417,0,410,0,181,0,182,0,183,0,184,0,483,0,344,0,81,0,187,0,188,0,342,0,189,0,189,0,152,0,190,0,342,0,181,0,342,0,194,0,484,0,196,0,197,0,5,0,198,0,199,0,200,0,193,0,193,0,37,0,201,0,193,0,193,0,181,0,193,0,204,0,182,0,183,0,184,0,485,0,486,0,81,0,487,0,488,0,193,0,189,0,189,0,152,0,489,0,193,0,204,0,193,0,113,0,80,0,80,0,81,0,198,0,199,0,193,0,193,0,193,0,152,0,490,0,193,0,491,0,2,0,342,0,342,0,342,0,408,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,491,0,342,0,492,0,349,0,493,0,494,0,81,0,487,0,488,0,193,0,193,0,193,0,153,0,352,0,193,0,193,0,491,0,193,0,495,0,349,0,354,0,354,0,81,0,487,0,488,0,193,0,193,0,193,0,193,0,352,0,193,0,349,0,354,0,354,0,81,0,487,0,488,0,193,0,193,0,193,0,193,0,352,0,193,0,496,0,193,0,193,0,193,0,488,0,193,0,488,0,193,0,243,0,193,0,492,0,349,0,354,0,354,0,81,0,487,0,488,0,193,0,193,0,193,0,193,0,352,0,193,0,492,0,349,0,493,0].concat([354,0,81,0,487,0,488,0,193,0,193,0,193,0,153,0,352,0,193,0,204,0,193,0,266,0,113,0,497,0,497,0,155,0,198,0,199,0,193,0,193,0,193,0,193,0,490,0,193,0,204,0,193,0,498,0,179,0,499,0,500,0,157,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,179,0,499,0,500,0,157,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,499,0,499,0,157,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,502,0,176,0,503,0,504,0,160,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,176,0,503,0,504,0,160,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,503,0,503,0,160,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,505,0,173,0,506,0,507,0,163,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,173,0,506,0,507,0,163,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,506,0,506,0,163,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,508,0,170,0,193,0,509,0,193,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,170,0,193,0,509,0,193,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,487,0,488,0,193,0,193,0,193,0,193,0,501,0,193,0,510,0,193,0,511,0,512,0,193,0,487,0,488,0,193,0,193,0,193,0,167,0,193,0,193,0,193,0,165,0,193,0,166,0,193,0,193,0,193,0,193,0,487,0,488,0,193,0,487,0,488,0,193,0,510,0,193,0,193,0,193,0,193,0,487,0,488,0,193,0,510,0,193,0,511,0,193,0,193,0,487,0,488,0,193,0,193,0,193,0,167,0,193,0,491,0,166,0,342,0,342,0,95,0,346,0,342,0,187,0,188,0,342,0,342,0,342,0,342,0,347,0,342,0,491,0,342,0,0,0,0,0,0,0,0,0])
  3502. , ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0].concat(["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3503. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3504. .concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
  3505. , ALLOC_NONE, 119992);
  3506. allocate([1,1,29,27,27,1,0,0], "i8", ALLOC_NONE, 130704);
  3507. allocate([1,3,0,7,9,11,0,0], "i8", ALLOC_NONE, 130712);
  3508. allocate([1,0,3,2,1,1,3,5,4,4,4,4,4,3,4,1,4,4,4,4,3,4,4,4,4,3,4,4,4,3,3,3,3,4,1,7,6,6,6,6,6,1,6,6,6,6,6,6,1,6,6,6,6,1,6,6,6,1,1,1,1,6,3,9,8,8,8,8,8,3,8,8,8,8,8,8,3,8,8,8,8,3,8,8,8,3,3,3,3,8,3,10,0,0,0,0], "i8", ALLOC_NONE, 130720);
  3509. allocate([0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 130816);
  3510. allocate([0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 130888);
  3511. allocate(100, ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 130984);
  3512. allocate([1768843636,0,0,0,1835361385,0,0,0,1718185569,0,0,0,1769172844,0,0,0,1919707495,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131088);
  3513. allocate([0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131112);
  3514. allocate([0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131136);
  3515. allocate([1517910393,0,0,0,1281455214,0,0,0,1198679403,0,0,0,1132032620,0,0,0,1098018158,0,0,0,1214603890,0,0,0,1098015074,0,0,0,1400468067,0,0,0,1416126817,0,0,0,1147500129,0,0,0,1113943655,0,0,0,1198879349,0,0,0,1198877298,0,0,0,1332902241,0,0,0,1415671148,0,0,0,1415933045,0,0,0,1265525857,0,0,0,1298954605,0,0,0,1399418472,0,0,0,1416126825,0,0,0,1281453935,0,0,0,1416192628,0,0,0,1299803506,0,0,0,1197830002,0,0,0,1214344807,0,0,0,1165256809,0,0,0,1130915186,0,0,0,1130458739,0,0,0,1332175213,0,0,0,1383427698,0,0,0,1265134962,0,0,0,1299148391,0,0,0,1214870113,0,0,0,1264676449,0,0,0,1114599535,0,0,0,1214344809,0,0,0,1500080489,0,0,0,1232363884,0,0,0,1198486632,0,0,0,1148416628,0,0,0,1516858984,0,0,0,1416064103,0,0,0,1214344815,0,0,0,1114990692,0,0,0,1415669602,0,0,0,1281977698,0,0,0,1415670885,0,0,0,1281977954,0,0,0,1432838514,0,0,0,1399349623,0,0,0,1332964705,0,0,0,1131442804,0,0,0,1114792297,0,0,0,1114990441,0,0,0,1131376756,0,0,0,1415670901,0,0,0,1198285159,0,0,0,1415999079,0,0,0,1400466543,0,0,0,1483761007,0,0,0,1265131890,0,0,0,1113681001,0,0,0,1483961720,0,0,0,1349021304,0,0,0,1349017959,0,0,0,1315663727,0,0,0,1400204900,0,0,0,1281716323,0,0,0,1332503403,0,0,0,1449224553,0,0,0,1398895986,0,0,0,1264675945,0,0,0,1382706791,0,0,0,1283023721,0,0,0,1130459753,0,0,0,1283023977,0,0,0,1130914157,0,0,0,1281453665,0,0,0,1415673460,0,0,0,1098281844,0,0,0,1164409200,0,0,0,1398893938,0,0,0,1281979253,0,0,0,1113681269,0,0,0,1247901281,0,0,0,1299473769,0,0,0,1098018153,0,0,0,1398895202,0,0,0,1349678185,0,0,0,1349020777,0,0,0,1332898664,0,0,0,1265920105,0,0,0,1113683051,0,0,0,1114792296,0,0,0,1298230884,0,0,0,1130457965,0,0,0,1298494051,0,0,0,1298494063,0,0,0,1349284452,0,0,0,1399353956,0,0,0,1399812705,0,0,0,1415670642,0,0,0,1517976186,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131160);
  3516. allocate([1667329140,0,0,0,1668049255,0,0,0,1668641395,0,0,0,1801810542,0,0,0,1919118452,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131576);
  3517. allocate(4, "i8**", ALLOC_NONE, 131600);
  3518. allocate([7,7,0,0,7,3,2,0,7,3,1,0,7,3,2,0,7,3,1,0,7,3,6,0,7,7,0,0,7,3,2,0,7,3,1,0,7,3,2,0,7,5,5,0,7,3,6,0,7,7,0,0,7,3,2,0,0,2,1,0,0,2,3,0,0,2,4,0,0,2,6,0,7,7,0,0,7,3,2,0,1,2,1,0,1,2,3,0,1,2,4,0,1,2,6,0,7,7,0,0,7,3,2,0,4,3,1,0,4,3,2,0,4,5,5,0,4,3,6,0,7,7,0,0,7,3,2,0,3,3,1,0,3,3,2,0,3,5,5,0,3,3,6,0,7,7,0,0,7,3,2,0,7,3,1,0,7,3,2,0,7,6,5,0,7,3,6,0], ["i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0,"i8","i8","i16",0], ALLOC_NONE, 131608);
  3519. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,164,0,0,0,58,0,0,0,134,0,0,0,14,0,0,0,54,0,0,0,90,0,0,0,2,0,0,0,36,0,0,0,38,0,0,0,162,0,0,0,150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,0,0,0,0], ALLOC_NONE, 131776);
  3520. allocate([1986096244,0,0,0,1986359924,0,0,0,1986753134,0,0,0,1987076460,0,0,0,1987212338,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131960);
  3521. allocate([1633842803,0,0,0,1651275635,0,0,0,1633842797,0,0,0,1651275629,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 131984);
  3522. allocate([122,104,45,99,110,0,0,0,1514689312,0,0,0,122,104,45,104,107,0,0,0,1514686496,0,0,0,122,104,45,109,111,0,0,0,1514689568,0,0,0,122,104,45,115,103,0,0,0,1514689312,0,0,0,122,104,45,116,119,0,0,0,1514689568,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 132008);
  3523. allocate([1818914159,0,0,0,1986686319,0,0,0,1953131887,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 132072);
  3524. allocate([1667460464,0,0,0,1818847073,0,0,0,1819239276,0,0,0,1835102827,0,0,0,1835756907,0,0,0,1919707495,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 132088);
  3525. allocate([1768843636,0,0,0,1835361385,0,0,0,1718185569,0,0,0,1769172844,0,0,0,1835361330,0,0,0,1718185522,0,0,0,1718185523,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 132112);
  3526. allocate(4, "%struct.hb_shaper_pair_t*", ALLOC_NONE, 132144);
  3527. allocate([1886545267,0,0,0,1633842803,0,0,0,1651275635,0,0,0,1886614643,0,0,0,1684632436,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 132152);
  3528. allocate([1886545267,0,0,0,1633842803,0,0,0,1651275635,0,0,0,1886614643,0,0,0,1684632436,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,0,0,0,0], ALLOC_NONE, 132176);
  3529. allocate([-289,0,-376,0,-263,0,-382,0,-267,0,-370,0,-261,0,-380,0,-265,0,-288,0,-376,0,-262,0,-382,0,-266,0,-370,0,-260,0,-380,0,-264,0,0,0,0,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,0,0,0,0], ALLOC_NONE, 132200);
  3530. allocate([1853188980,0,0,0,1,0,0,0,1634429038,0,0,0,1,0,0,0,1919969382,0,0,0,0,0,0,0,1919644262,0,0,0,1,0,0,0,1886545254,0,0,0,0,0,0,0,1651275622,0,0,0,0,0,0,0,1751215206,0,0,0,0,0,0,0,1633842790,0,0,0,0,0,0,0,1886614630,0,0,0,0,0,0,0,1667654002,0,0,0,0,0,0,0,1986098293,0,0,0,1,0,0,0,1667916660,0,0,0,1,0,0,0,1768843636,0,0,0,0,0,0,0,1886545267,0,0,0,1,0,0,0,1633842803,0,0,0,1,0,0,0,1651275635,0,0,0,1,0,0,0,1886614643,0,0,0,1,0,0,0,1751215214,0,0,0,1,0,0,0,1684632436,0,0,0,1,0,0,0,1633842797,0,0,0,1,0,0,0,1651275629,0,0,0,1,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 132240);
  3531. allocate([1886545254,0,0,0,1633842790,0,0,0,1651275622,0,0,0,1886614630,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 132408);
  3532. allocate([1919969382,0,0,0,1886545254,0,0,0,1651275622,0,0,0,1886614630,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 132424);
  3533. allocate([0,0,0,0,0,0,-384,0,0,0,0,0,-382,0,-383,0,0,0,0,0,-380,0,-381,0,0,0,0,0,-378,0,-379,0,0,0,0,0,-376,0,-377,0,-373,0,-372,0,-374,0,-375,0,0,0,0,0,-370,0,-371,0,-367,0,-366,0,-368,0,-369,0,0,0,0,0,-364,0,-365,0,-361,0,-360,0,-362,0,-363,0,-357,0,-356,0,-358,0,-359,0,-353,0,-352,0,-354,0,-355,0,-349,0,-348,0,-350,0,-351,0,-345,0,-344,0,-346,0,-347,0,0,0,0,0,-342,0,-343,0,0,0,0,0,-340,0,-341,0,0,0,0,0,-338,0,-339,0,0,0,0,0,-336,0,-337,0,-333,0,-332,0,-334,0,-335,0,-329,0,-328,0,-330,0,-331,0,-325,0,-324,0,-326,0,-327,0,-321,0,-320,0,-322,0,-323,0,-317,0,-316,0,-318,0,-319,0,-313,0,-312,0,-314,0,-315,0,-309,0,-308,0,-310,0,-311,0,-305,0,-304,0,-306,0,-307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-301,0,-300,0,-302,0,-303,0,-297,0,-296,0,-298,0,-299,0,-293,0,-292,0,-294,0,-295,0,-289,0,-288,0,-290,0,-291,0,-285,0,-284,0,-286,0,-287,0,-281,0,-280,0,-282,0,-283,0,-277,0,-276,0,-278,0,-279,0,0,0,0,0,-274,0,-275,0,-1048,0,-1047,0,-272,0,-273,0,-269,0,-268,0,-270,0,-271,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1199,0,-1200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1059,0,0,0,0,0,0,0,0,0,-1176,0,-1175,0,-1177,0,-1178,0,-1184,0,-1183,0,-1185,0,-1186,0,-1196,0,-1195,0,-1197,0,-1198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1192,0,-1191,0,-1193,0,-1194,0,-1180,0,-1179,0,-1181,0,-1182,0,-1188,0,-1187,0,-1189,0,-1190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1160,0,-1159,0,-1161,0,-1162,0,-1164,0,-1163,0,-1165,0,-1166,0,0,0,0,0,0,0,0,0,-1156,0,-1155,0,-1157,0,-1158,0,-1152,0,-1151,0,-1153,0,-1154,0,0,0,0,0,-1143,0,-1144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1147,0,-1148,0,0,0,0,0,-1149,0,-1150,0,0,0,0,0,-1145,0,-1146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1139,0,-1140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1141,0,-1142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1172,0,-1171,0,-1173,0,-1174,0,0,0,0,0,0,0,0,0,-1168,0,-1167,0,-1169,0,-1170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1136,0,-1135,0,-1137,0,-1138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1067,0,-1066,0,-1068,0,-1069,0,0,0,0,0,0,0,0,0,-1132,0,-1131,0,-1133,0,-1134,0,0,0,0,0,0,0,0,0,-1124,0,-1123,0,-1125,0,-1126,0,0,0,0,0,0,0,0,0,-1128,0,-1127,0,-1129,0,-1130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1121,0,-1122,0,-1118,0,-1117,0,-1119,0,-1120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1108,0,-1107,0,-1109,0,-1110,0,0,0,0,0,0,0,0,0,0,0,0,0,-1115,0,-1116,0,-1112,0,-1111,0,-1113,0,-1114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1055,0,-1056,0,0,0,0,0,-1062,0,-1063,0,0,0,0,0,-1064,0,-1065,0,0,0,0,0,-1060,0,-1061,0,0,0,0,0,-1053,0,-1054,0,0,0,0,0,0,0,0,0,0,0,0,0,-1057,0,-1058,0,-1026,0,-1025,0,-1027,0,-1028,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1050,0,-1049,0,-1051,0,-1052,0,0,0,0,0,0,0,0,0,0,0,0,0,-1105,0,-1106,0,0,0,0,0,-1103,0,-1104,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 132440);
  3534. allocate([0,0,0,0,0,8,8,8,0,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,3,0,2,2,2,2,3,2,3,2,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,3,3,8,2,2,2,0,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,2,2,2,2,2,2,3,2,3,2,3,3,2,2,8,2,8,8,8,8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2,2,8,8,8,8,8,8,8,8,8,8,3,3,3,8,8,3,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,4,8,3,3,3,5,5,2,2,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,2,3,5,3,2,3,3,5,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,2,3,2,2,3,3,3,2,2,3,3,3,3,3,3,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,3,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2,3,3,3,3,3,2,3,3,2,3,3,3,3,3,2,3,3,3,3,2,3,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,3,8,3,3,3,3,3,3,3,3,2,2,2,0,0,0], "i8", ALLOC_NONE, 133872);
  3535. allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,1147500129,0,0,0,1,0,0,0,2381,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,1113943655,0,0,0,1,0,0,0,2509,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,1198879349,0,0,0,1,0,0,0,2637,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1198877298,0,0,0,1,0,0,0,2765,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,1332902241,0,0,0,1,0,0,0,2893,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,1415671148,0,0,0,1,0,0,0,3021,0,0,0,1,0,0,0,12,0,0,0,0,0,0,0,1415933045,0,0,0,1,0,0,0,3149,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,1265525857,0,0,0,1,0,0,0,3277,0,0,0,1,0,0,0,12,0,0,0,0,0,0,0,1298954605,0,0,0,1,0,0,0,3405,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,1399418472,0,0,0,0,0,0,0,3530,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,1265134962,0,0,0,0,0,0,0,6098,0,0,0,0,0,0,0,10,0,0,0,2,0,0,0], ["i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i8",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 134560);
  3536. allocate([97,97,0,0,0,0,0,0,1095127584,0,0,0,97,98,0,0,0,0,0,0,1094863648,0,0,0,97,98,113,0,0,0,0,0,1094861088,0,0,0,97,100,97,0,0,0,0,0,1145980704,0,0,0,97,100,121,0,0,0,0,0,1094998304,0,0,0,97,102,0,0,0,0,0,0,1095125792,0,0,0,97,105,105,0,0,0,0,0,1398227232,0,0,0,97,105,119,0,0,0,0,0,1095911712,0,0,0,97,108,116,0,0,0,0,0,1095521312,0,0,0,97,109,0,0,0,0,0,0,1095583776,0,0,0,97,109,102,0,0,0,0,0,1212304928,0,0,0,97,114,0,0,0,0,0,0,1095909664,0,0,0,97,114,110,0,0,0,0,0,1296125984,0,0,0,97,115,0,0,0,0,0,0,1095978272,0,0,0,97,116,104,0,0,0,0,0,1096042528,0,0,0,97,116,118,0,0,0,0,0,1095521312,0,0,0,97,118,0,0,0,0,0,0,1096176160,0,0,0,97,119,97,0,0,0,0,0,1096237344,0,0,0,97,121,0,0,0,0,0,0,1096371488,0,0,0,97,122,0,0,0,0,0,0,1096434976,0,0,0,98,97,0,0,0,0,0,0,1112754208,0,0,0,98,97,105,0,0,0,0,0,1112362016,0,0,0,98,97,108,0,0,0,0,0,1112295712,0,0,0,98,99,105,0,0,0,0,0,1111577888,0,0,0,98,99,113,0,0,0,0,0,1111705632,0,0,0,98,101,0,0,0,0,0,0,1111837728,0,0,0,98,101,109,0,0,0,0,0,1111837984,0,0,0,98,101,114,0,0,0,0,0,1111839264,0,0,0,98,102,113,0,0,0,0,0,1111573536,0,0,0,98,102,116,0,0,0,0,0,1112298528,0,0,0,98,102,121,0,0,0,0,0,1111574304,0,0,0,98,103,0,0,0,0,0,0,1111970336,0,0,0,98,104,98,0,0,0,0,0,1112033568,0,0,0,98,104,111,0,0,0,0,0,1112035104,0,0,0,98,105,107,0,0,0,0,0,1112099616,0,0,0,98,105,110,0,0,0,0,0,1162104608,0,0,0,98,106,116,0,0,0,0,0,1112296992,0,0,0,98,108,97,0,0,0,0,0,1112229408,0,0,0,98,108,101,0,0,0,0,0,1112296992,0,0,0,98,109,0,0,0,0,0,0,1112359456,0,0,0,98,110,0,0,0,0,0,0,1111838240,0,0,0,98,111,0,0,0,0,0,0,1414087200,0,0,0,98,114,0,0,0,0,0,0,1112687904,0,0,0,98,114,97,0,0,0,0,0,1112688928,0,0,0,98,114,104,0,0,0,0,0,1112688672,0,0,0,98,115,0,0,0,0,0,0,1112494880,0,0,0,98,116,98,0,0,0,0,0,1112820000,0,0,0,98,120,114,0,0,0,0,0,1380078880,0,0,0,98,121,110,0,0,0,0,0,1112099872,0,0,0,99,97,0,0,0,0,0,0,1128354848,0,0,0,99,101,0,0,0,0,0,0,1128809760,0,0,0,99,101,98,0,0,0,0,0,1128612384,0,0,0,99,104,112,0,0,0,0,0,1128812576,0,0,0,99,104,114,0,0,0,0,0,1128813088,0,0,0,99,107,116,0,0,0,0,0,1128811296,0,0,0,99,111,112,0,0,0,0,0,1129271328,0,0,0,99,114,0,0,0,0,0,0,1129465120,0,0,0,99,114,104,0,0,0,0,0,1129468960,0,0,0,99,114,106,0,0,0,0,0,1162039840,0,0,0,99,114,108,0,0,0,0,0,1162039840,0,0,0,99,114,109,0,0,0,0,0,1296257568,0,0,0,99,114,120,0,0,0,0,0,1129468448,0,0,0,99,115,0,0,0,0,0,0,1129535776,0,0,0,99,117,0,0,0,0,0,0,1129532448,0,0,0,99,118,0,0,0,0,0,0,1128813856,0,0,0,99,119,100,0,0,0,0,0,1145262624,0,0,0,99,121,0,0,0,0,0,0,1464159264,0,0,0,100,97,0,0,0,0,0,0,1145130528,0,0,0,100,97,112,0,0,0,0,0,1313428256,0,0,0,100,97,114,0,0,0,0,0,1145131552,0,0,0,100,101,0,0,0,0,0,0,1145394464,0,0,0,100,105,110,0,0,0,0,0,1145981728,0,0,0,100,106,101,0,0,0,0,0,1145721376,0,0,0,100,110,103,0,0,0,0,0,1146441248,0,0,0,100,111,105,0,0,0,0,0,1145524768,0,0,0,100,115,98,0,0,0,0,0,1280524832,0,0,0,100,118,0,0,0,0,0,0,1145656864,0,0,0,100,121,117,0,0,0,0,0,1247104032,0,0,0,100,122,0,0,0,0,0,0,1146768928,0,0,0,101,101,0,0,0,0,0,0,1163347232,0,0,0,101,102,105,0,0,0,0,0,1162234144,0,0,0,101,108,0,0,0,0,0,0,1162628128,0,0,0,101,110,0,0,0,0,0,0,1162757920,0,0,0,101,111,0,0,0,0,0,0,1314148128,0,0,0,101,111,116,0,0,0,0,0,1112820000,0,0,0,101,115,0,0,0,0,0,0,1163087904,0,0,0,101,116,0,0,0,0,0,0,1163151648,0,0,0,101,117,0,0,0,0,0,0,1163219232,0,0,0,101,118,101,0,0,0,0,0,1163284000,0,0,0,101,118,110,0,0,0,0,0,1163283232,0,0,0,102,97,0,0,0,0,0,0,1178685984,0,0,0,102,102,0,0,0,0,0,0,1179995168,0,0,0,102,105,0,0,0,0,0,0,1179209248,0,0,0,102,105,108,0,0,0,0,0,1346980896,0,0,0,102,106,0,0,0,0,0,0,1179273504,0,0,0,102,111,0,0,0,0,0,0,1179603744,0,0,0,102,111,110,0,0,0,0,0,1179602464,0,0,0,102,114,0,0,0,0,0,0,1179795744,0,0,0,102,117,114,0,0,0,0,0,1179798560,0,0,0,102,121,0,0,0,0,0,0,1179797792,0,0,0,103,97,0,0,0,0,0,0,1230129440,0,0,0,103,97,97,0,0,0,0,0,1195459616,0,0,0,103,97,103,0,0,0,0,0,1195460384,0,0,0,103,98,109,0,0,0,0,0,1195464480,0,0,0,103,100,0,0,0,0,0,0,1195459872,0,0,0,103,101,122,0,0,0,0,0,1195727392,0,0,0,103,108,0,0,0,0,0,0,1195461664,0,0,0,103,108,100,0,0,0,0,0,1312902688,0,0,0,103,110,0,0,0,0,0,0,1196769568,0,0,0,103,111,110,0,0,0,0,0,1196379680,0,0,0,103,114,116,0,0,0,0,0,1196576544,0,0,0,103,114,117,0,0,0,0,0,1397704480,0,0,0,103,117,0,0,0,0,0,0,1196771872,0,0,0,103,117,107,0,0,0,0,0,1196251680,0,0,0,103,118,0,0,0,0,0,0,1296980000,0,0,0,104,97,0,0,0,0,0,0,1212241184,0,0,0,104,97,114,0,0,0,0,0,1213352224,0,0,0,104,97,119,0,0,0,0,0,1212241696,0,0,0,104,101,0,0,0,0,0,0,1230459424,0,0,0,104,105,0,0,0,0,0,0,1212763680,0,0,0,104,105,108,0,0,0,0,0,1212763168,0,0,0,104,110,100,0,0,0,0,0,1213088800,0,0,0,104,110,101,0,0,0,0,0,1128810528,0,0,0,104,110,111,0,0,0,0,0,1213088800,0,0,0,104,111,99,0,0,0,0,0,1213145120,0,0,0,104,111,106,0,0,0,0,0,1212240416,0,0,0,104,114,0,0,0,0,0,0,1213355552,0,0,0,104,115,98,0,0,0,0,0,1431519776,0,0,0,104,116,0,0,0,0,0,0,1212238112,0,0,0,104,117,0,0,0,0,0,0,1213550112,0,0,0,104,121,0,0,0,0,0,0,1213809952,0,0,0,105,100,0,0,0,0,0,0,1229866016,0,0,0,105,103,0,0,0,0,0,0,1229082400,0,0,0,105,103,98,0,0,0,0,0,1161972000,0,0,0,105,106,111,0,0,0,0,0,1229606688,0,0,0,105,108,111,0,0,0,0,0,1229737760,0,0,0,105,110,104,0,0,0,0,0,1229866784,0,0,0,105,115,0,0,0,0,0,0,1230195744,0,0,0,105,116,0,0,0,0,0,0,1230258464,0,0,0,105,117,0,0,0,0,0,0,1229870368,0,0,0,106,97,0,0,0,0,0,0,1245793824,0,0,0,106,118,0,0,0,0,0,0,1245795872,0,0,0,107,97,0,0,0,0,0,0,1262572576,0,0,0,107,97,97,0,0,0,0,0,1263684384,0,0,0,107,97,109,0,0,0,0,0,1263354400,0,0,0,107,97,114,0,0,0,0,0,1263685152,0,0,0,107,98,100,0,0,0,0,0,1262567968,0,0,0,107,100,114,0,0,0,0,0,1263684896,0,0,0,107,100,116,0,0,0,0,0,1263884576,0,0,0,107,101,120,0,0,0,0,0,1263226400,0,0,0,107,102,114,0,0,0,0,0,1262568224,0,0,0,107,102,121,0,0,0,0,0,1263357472,0,0,0,107,104,97,0,0,0,0,0,1263749408,0,0,0,107,104,98,0,0,0,0,0,1480737824,0,0,0,107,104,119,0,0,0,0,0,1263032096,0,0,0,107,105,0,0,0,0,0,0,1263094560,0,0,0,107,106,104,0,0,0,0,0,1263026464,0,0,0,107,107,0,0,0,0,0,0,1262574112,0,0,0,107,108,0,0,0,0,0,0,1196576288,0,0,0,107,108,110,0,0,0,0,0,1262570528,0,0,0,107,109,0,0,0,0,0,0,1263029536,0,0,0,107,109,98,0,0,0,0,0,1296191008,0,0,0,107,109,119,0,0,0,0,0,1263357728,0,0,0,107,110,0,0,0,0,0,0,1262571040,0,0,0,107,111,0,0,0,0,0,0,1263489568,0,0,0,107,111,105,0,0,0,0,0,1263489056,0,0,0,107,111,107,0,0,0,0,0,1263487776,0,0,0,107,112,101,0,0,0,0,0,1263553568,0,0,0,107,112,118,0,0,0,0,0,1263491616,0,0,0,107,112,121,0,0,0,0,0,1264143136,0,0,0,107,113,121,0,0,0,0,0,1263686688,0,0,0,107,114,0,0,0,0,0,0,1263424032,0,0,0,107,114,105,0,0,0,0,0,1263683872,0,0,0,107,114,108,0,0,0,0,0,1263684640,0,0,0,107,114,117,0,0,0,0,0,1263883552,0,0,0,107,115,0,0,0,0,0,0,1263749152,0,0,0,107,117,0,0,0,0,0,0,1263882784,0,0,0,107,117,109,0,0,0,0,0,1263881504,0,0,0,107,118,100,0,0,0,0,0,1263880480,0,0,0,107,120,99,0,0,0,0,0,1263358752,0,0,0,107,120,117,0,0,0,0,0,1263880480,0,0,0,107,121,0,0,0,0,0,0,1263096352,0,0,0,108,97,0,0,0,0,0,0,1279349792,0,0,0,108,97,100,0,0,0,0,0,1247101984,0,0,0,108,98,0,0,0,0,0,0,1280596512,0,0,0,108,98,101,0,0,0,0,0,1279347488,0,0,0,108,98,106,0,0,0,0,0,1279544096,0,0,0,108,101,122,0,0,0,0,0,1279613472,0,0,0,108,103,0,0,0,0,0,0,1280657184,0,0,0,108,105,102,0,0,0,0,0,1280131616,0,0,0,108,108,100,0,0,0,0,0,1279345696,0,0,0,108,109,110,0,0,0,0,0,1279348000,0,0,0,108,110,0,0,0,0,0,0,1279872544,0,0,0,108,111,0,0,0,0,0,0,1279348512,0,0,0,108,116,0,0,0,0,0,0,1280591904,0,0,0,108,117,0,0,0,0,0,0,1280655904,0,0,0,108,117,97,0,0,0,0,0,1280655904,0,0,0,108,117,111,0,0,0,0,0,1280659232,0,0,0,108,117,115,0,0,0,0,0,1296652832,0,0,0,108,117,121,0,0,0,0,0,1280657440,0,0,0,108,118,0,0,0,0,0,0,1280723232,0,0,0,108,122,122,0,0,0,0,0,1279351328,0,0,0,109,97,105,0,0,0,0,0,1297369120,0,0,0,109,100,99,0,0,0,0,0,1296844064,0,0,0,109,100,102,0,0,0,0,0,1297042208,0,0,0,109,100,121,0,0,0,0,0,1296844064,0,0,0,109,101,110,0,0,0,0,0,1296319776,0,0,0,109,103,0,0,0,0,0,0,1296844576,0,0,0,109,104,114,0,0,0,0,0,1280131360,0,0,0,109,105,0,0,0,0,0,0,1297238304,0,0,0,109,107,0,0,0,0,0,0,1296778272,0,0,0,109,108,0,0,0,0,0,0,1296847392,0,0,0,109,110,0,0,0,0,0,0,1296975648,0,0,0,109,110,99,0,0,0,0,0,1296255008,0,0,0,109,110,105,0,0,0,0,0,1296976160,0,0,0,109,110,107,0,0,0,0,0,1296974880,0,0,0,109,110,115,0,0,0,0,0,1296125472,0,0,0,109,110,119,0,0,0,0,0,1297042976,0,0,0,109,111,0,0,0,0,0,0,1297042464,0,0,0,109,111,104,0,0,0,0,0,1297041440,0,0,0,109,112,101,0,0,0,0,0,1296124448,0,0,0,109,114,0,0,0,0,0,0,1296126496,0,0,0,109,114,106,0,0,0,0,0,1213022496,0,0,0,109,115,0,0,0,0,0,0,1296849184,0,0,0,109,116,0,0,0,0,0,0,1297371936,0,0,0,109,119,114,0,0,0,0,0,1296127776,0,0,0,109,121,0,0,0,0,0,0,1112689952,0,0,0,109,121,109,0,0,0,0,0,1296387616,0,0,0,109,121,118,0,0,0,0,0,1163024928,0,0,0,110,97,103,0,0,0,0,0,1312900896,0,0,0,110,98,0,0,0,0,0,0,1313821216,0,0,0,110,99,111,0,0,0,0,0,1397309984,0,0,0,110,100,0,0,0,0,0,0,1313096224,0,0,0,110,101,0,0,0,0,0,0,1313165344,0,0,0,110,101,119,0,0,0,0,0,1313167136,0,0,0,110,103,0,0,0,0,0,0,1313097504,0,0,0,110,103,108,0,0,0,0,0,1280136992,0,0,0,110,105,117,0,0,0,0,0,1313428768,0,0,0,110,105,118,0,0,0,0,0,1195985952,0,0,0,110,108,0,0,0,0,0,0,1313621024,0,0,0,110,110,0,0,0,0,0,0,1314475552,0,0,0,110,111,0,0,0,0,0,0,1313821216,0,0,0,110,111,100,0,0,0,0,0,1314144544,0,0,0,110,111,103,0,0,0,0,0,1313818400,0,0,0,110,113,111,0,0,0,0,0,1313558304,0,0,0,110,114,0,0,0,0,0,0,1313096224,0,0,0,110,115,107,0,0,0,0,0,1312903968,0,0,0,110,115,111,0,0,0,0,0,1397707808,0,0,0,110,121,0,0,0,0,0,0,1128810784,0,0,0,110,121,110,0,0,0,0,0,1313557536,0,0,0,111,99,0,0,0,0,0,0,1329809696,0,0,0,111,106,0,0,0,0,0,0,1330266656,0,0,0,111,106,115,0,0,0,0,0,1329812000,0,0,0,111,109,0,0,0,0,0,0,1330794272,0,0,0,111,114,0,0,0,0,0,0,1330792736,0,0,0,111,115,0,0,0,0,0,0,1330860832,0,0,0,112,97,0,0,0,0,0,0,1346457120,0,0,0,112,99,101,0,0,0,0,0,1347176224,0,0,0,112,105,0,0,0,0,0,0,1346456608,0,0,0,112,108,0,0,0,0,0,0,1347177248,0,0,0,112,108,108,0,0,0,0,0,1347176224,0,0,0,112,108,112,0,0,0,0,0,1346457632,0,0,0,112,114,115,0,0,0,0,0,1146243360,0,0,0,112,115,0,0,0,0,0,0,1346458400,0,0,0,112,116,0,0,0,0,0,0,1347700512,0,0,0,114,97,106,0,0,0,0,0,1380010528,0,0,0,114,98,98,0,0,0,0,0,1347176224,0,0,0,114,105,97,0,0,0,0,0,1380532512,0,0,0,114,105,108,0,0,0,0,0,1380532512,0,0,0,114,107,105,0,0,0,0,0,1095912224,0,0,0,114,109,0,0,0,0,0,0,1380799264,0,0,0,114,111,0,0,0,0,0,0,1380928800,0,0,0,114,111,109,0,0,0,0,0,1380931872,0,0,0,114,117,0,0,0,0,0,0,1381323552,0,0,0,114,117,101,0,0,0,0,0,1381194016,0,0,0,114,119,0,0,0,0,0,0,1381318944,0,0,0,115,97,0,0,0,0,0,0,1396788768,0,0,0,115,97,104,0,0,0,0,0,1497451296,0,0,0,115,97,116,0,0,0,0,0,1396790304,0,0,0,115,99,107,0,0,0,0,0,1396786208,0,0,0,115,99,115,0,0,0,0,0,1397506336,0,0,0,115,100,0,0,0,0,0,0,1397638176,0,0,0,115,101,0,0,0,0,0,0,1314082080,0,0,0,115,101,104,0,0,0,0,0,1397637408,0,0,0,115,101,108,0,0,0,0,0,1397050400,0,0,0,115,103,0,0,0,0,0,0,1397182240,0,0,0,115,104,110,0,0,0,0,0,1397247520,0,0,0,115,105,0,0,0,0,0,0,1397639200,0,0,0,115,105,100,0,0,0,0,0,1397310496,0,0,0,115,106,100,0,0,0,0,0,1263750432,0,0,0,115,107,0,0,0,0,0,0,1397446944,0,0,0,115,107,114,0,0,0,0,0,1397902112,0,0,0,115,108,0,0,0,0,0,0,1397511712,0,0,0,115,109,0,0,0,0,0,0,1397575456,0,0,0,115,109,97,0,0,0,0,0,1397968160,0,0,0,115,109,106,0,0,0,0,0,1280527648,0,0,0,115,109,110,0,0,0,0,0,1230196000,0,0,0,115,109,115,0,0,0,0,0,1397445408,0,0,0,115,110,107,0,0,0,0,0,1397639968,0,0,0,115,111,0,0,0,0,0,0,1397574688,0,0,0,115,113,0,0,0,0,0,0,1397836064,0,0,0,115,114,0,0,0,0,0,0,1397899808,0,0,0,115,114,114,0,0,0,0,0,1397903904,0,0,0,115,115,0,0,0,0,0,0,1398233632,0,0,0,115,116,0,0,0,0,0,0,1397707808,0,0,0,115,117,113,0,0,0,0,0,1398100512,0,0,0,115,118,0,0,0,0,0,0,1398162720,0,0,0,115,118,97,0,0,0,0,0,1398161696,0,0,0,115,119,0,0,0,0,0,0,1398229792,0,0,0,115,119,98,0,0,0,0,0,1129140768,0,0,0,115,121,114,0,0,0,0,0,1398362656,0,0,0,116,97,0,0,0,0,0,0,1413565728,0,0,0,116,97,98,0,0,0,0,0,1413562912,0,0,0,116,99,121,0,0,0,0,0,1414876192,0,0,0,116,101,0,0,0,0,0,0,1413827616,0,0,0,116,101,109,0,0,0,0,0,1414352416,0,0,0,116,103,0,0,0,0,0,0,1413564960,0,0,0,116,104,0,0,0,0,0,0,1414021408,0,0,0,116,105,0,0,0,0,0,0,1413962016,0,0,0,116,105,103,0,0,0,0,0,1413960224,0,0,0,116,107,0,0,0,0,0,0,1414221088,0,0,0,116,110,0,0,0,0,0,0,1414414624,0,0,0,116,111,0,0,0,0,0,0,1413959200,0,0,0,116,114,0,0,0,0,0,0,1414679328,0,0,0,116,114,117,0,0,0,0,0,1414873376,0,0,0,116,115,0,0,0,0,0,0,1414743840,0,0,0,116,116,0,0,0,0,0,0,1413567520,0,0,0,116,119,0,0,0,0,0,0,1415006496,0,0,0,116,121,0,0,0,0,0,0,1414026272,0,0,0,116,121,118,0,0,0,0,0,1414878752,0,0,0,117,100,109,0,0,0,0,0,1430539552,0,0,0,117,103,0,0,0,0,0,0,1431914272,0,0,0,117,107,0,0,0,0,0,0,1430999584,0,0,0,117,109,98,0,0,0,0,0,1296191008,0,0,0,117,110,114,0,0,0,0,0,1297436192,0,0,0,117,114,0,0,0,0,0,0,1431454752,0,0,0,117,122,0,0,0,0,0,0,1431978528,0,0,0,118,101,0,0,0,0,0,0,1447382560,0,0,0,118,105,0,0,0,0,0,0,1447646240,0,0,0,118,109,119,0,0,0,0,0,1296124704,0,0,0,119,98,109,0,0,0,0,0,1463885856,0,0,0,119,98,114,0,0,0,0,0,1463895840,0,0,0,119,111,0,0,0,0,0,0,1464616480,0,0,0,120,97,108,0,0,0,0,0,1263291680,0,0,0,120,104,0,0,0,0,0,0,1481134880,0,0,0,120,111,109,0,0,0,0,0,1263357728,0,0,0,120,115,108,0,0,0,0,0,1397967904,0,0,0,121,105,0,0,0,0,0,0,1246316832,0,0,0,121,111,0,0,0,0,0,0,1497514272,0,0,0,121,115,111,0,0,0,0,0,1313428256,0,0,0,122,110,101,0,0,0,0,0,1515078688,0,0,0,122,117,0,0,0,0,0,0,1515539488,0,0,0], ["i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0,"i8","i8","i8","i8","i8","i8",0,0,"i32",0,0,0], ALLOC_NONE, 134848);
  3537. allocate([-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1000,0,0,0,0,0,0,0,4294967295,0,0,0,4294967295,0,0,0,0,0,0,0,0,0,0,0], ["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,0,0,0,0], ALLOC_NONE, 139072);
  3538. allocate([3848,0,3848,0,3848,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,2823,0,3843,0,3840,0,2823,0,775,0,2823,0,2055,0,2055,0,2055,0,2055,0,1543,0,1543,0,1543,0,1543,0,2823,0,2823,0,2823,0,2823,0,2052,0,775,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,1543,0,2055,0,2055,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3848,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,3842,0,3842,0,3840,0,3840,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3843,0,3840,0,2823,0,775,0,2823,0,2055,0,2055,0,2055,0,2055,0,3840,0,3840,0,775,0,775,0,3840,0,3840,0,2823,0,2823,0,2052,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,2823,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3841,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3840,0,3840,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3840,0,3841,0,3841,0,3840,0,3841,0,3841,0,3840,0,3840,0,3843,0,3840,0,2823,0,775,0,2823,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,1543,0,1543,0,3840,0,3840,0,1543,0,1543,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3840,0,3851,0,3851,0,3840,0,3857,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3843,0,3840,0,2823,0,775,0,2823,0,2055,0,2055,0,2055,0,2055,0,1543,0,3840,0,1543,0,1543,0,2823,0,3840,0,2823,0,2823,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,3842,0,3842,0,3840,0,3840,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3843,0,3840,0,2823,0,1543,0,2823,0,2055,0,2055,0,2055,0,2055,0,3840,0,3840,0,775,0,1543,0,3840,0,3840,0,2823,0,2823,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,1543,0,2823,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3841,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3840,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3841,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3841,0,3840,0,3841,0,3841,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,2823,0,2823,0,1543,0,2055,0,2055,0,3840,0,3840,0,3840,0,775,0,775,0,775,0,3840,0,2823,0,2823,0,2823,0,1540,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,1543,0,1543,0,1543,0,2823,0,2823,0,2823,0,2823,0,3840,0,1543,0,1543,0,2055,0,3840,0,1543,0,1543,0,1543,0,1540,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,1543,0,2055,0,3840,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3843,0,3840,0,2823,0,1543,0,2823,0,2823,0,2823,0,2823,0,2823,0,3840,0,1543,0,2823,0,2823,0,3840,0,2823,0,2823,0,1543,0,1540,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,2823,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3840,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,2823,0,2823,0,2823,0,2823,0,2823,0,2055,0,2055,0,3840,0,775,0,775,0,775,0,3840,0,2823,0,2823,0,2823,0,1540,0,3855,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,2055,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3848,0,3848,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,1540,0,3840,0,3840,0,3840,0,3840,0,2823,0,2823,0,2823,0,1543,0,1543,0,2055,0,3840,0,2055,0,3840,0,2823,0,775,0,1543,0,775,0,2823,0,2823,0,2823,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,2823,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,2823,0,1543,0,2823,0,2823,0,1543,0,1543,0,1543,0,1543,0,2055,0,2055,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,519,0,519,0,519,0,519,0,519,0,2823,0,3840,0,1543,0,3843,0,3843,0,3843,0,3843,0,3840,0,3848,0,1540,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3841,0,3840,0,3840,0,3841,0,3841,0,3840,0,3841,0,3840,0,3840,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3840,0,3841,0,3840,0,3841,0,3840,0,3840,0,3841,0,3841,0,3840,0,3841,0,3841,0,3840,0,2823,0,1543,0,2823,0,2823,0,1543,0,1543,0,1543,0,1543,0,2055,0,2055,0,3840,0,1543,0,3857,0,3857,0,3840,0,3840,0,519,0,519,0,519,0,519,0,519,0,3840,0,3840,0,3840,0,3843,0,3843,0,3843,0,3843,0,3840,0,3848,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,2055,0,1543,0,2055,0,2055,0,2055,0,2055,0,2055,0,2055,0,2055,0,1543,0,1543,0,1543,0,1543,0,3848,0,3848,0,1543,0,2055,0,3848,0,3848,0,2052,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,2823,0,2823,0,1543,0,1543,0,2055,0,2055,0,775,0,1543,0,1543,0,1543,0,1543,0,3848,0,3843,0,3848,0,3844,0,1540,0,3857,0,3857,0,3857,0,3857,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,2823,0,2823,0,2055,0,2055,0,3841,0,3841,0,3841,0,3841,0,3857,0,3857,0,3857,0,3841,0,2823,0,3843,0,3843,0,3841,0,3841,0,2823,0,2823,0,3843,0,3843,0,3843,0,3843,0,3843,0,3841,0,3841,0,3841,0,1543,0,1543,0,1543,0,1543,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3857,0,2823,0,775,0,1543,0,1543,0,3843,0,3843,0,3843,0,3843,0,3843,0,3843,0,3843,0,3841,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3843,0,3843,0,2823,0,1543,0,3840,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,1543,0,2055,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,2055,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3840,0,1543,0,2055,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,2823,0,1543,0,1543,0,1543,0,1543,0,2055,0,2055,0,2055,0,1543,0,2823,0,2823,0,775,0,775,0,775,0,2823,0,2823,0,3848,0,3848,0,2823,0,3853,0,3853,0,3840,0,3855,0,3840,0,3840,0,3840,0,3840,0,1540,0,3844,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3851,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,1543,0,1543,0,2055,0,2823,0,2823,0,2823,0,2823,0,1543,0,1543,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3857,0,3857,0,3848,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,2823,0,2823,0,2823,0,2823,0,2823,0,775,0,775,0,775,0,2823,0,2823,0,775,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3843,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,2055,0,775,0,2823,0,775,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3840,0,3844,0,2823,0,1543,0,2823,0,2823,0,1543,0,1543,0,1543,0,1543,0,2055,0,2055,0,1543,0,2055,0,2823,0,775,0,775,0,775,0,775,0,775,0,1543,0,1543,0,3843,0,3843,0,3843,0,3843,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3855,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3843,0,2823,0,1543,0,1543,0,2055,0,2055,0,2055,0,2823,0,2055,0,2823,0,775,0,775,0,2823,0,2823,0,1543,0,2823,0,2820,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3855,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,2055,0,775,0,2823,0,1543,0,1543,0,2820,0,3844,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3857,0,3857,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3843,0,3847,0,3847,0,3847,0,3847,0,3847,0,3847,0,3847,0,3847,0,3847,0,3857,0,3857,0,2820,0,2820,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,2823,0,775,0,775,0,1543,0,2823,0,2823,0,2055,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3848,0,3848,0,3840,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3840,0,3842,0,3842,0,3842,0,1540,0,3841,0,3841,0,3841,0,3841,0,3848,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,2823,0,2823,0,2055,0,1543,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3848,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3857,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2823,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3843,0,3843,0,3843,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,2055,0,2055,0,2055,0,1543,0,2055,0,2055,0,2055,0,2055,0,3857,0,3857,0,3857,0,3857,0,2820,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3855,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3843,0,2823,0,2823,0,1543,0,1543,0,2055,0,2055,0,775,0,775,0,1543,0,3841,0,3857,0,3857,0,2820,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,1543,0,1543,0,1543,0,2055,0,1543,0,775,0,775,0,1543,0,2055,0,3857,0,3857,0,3857,0,3857,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3843,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,2823,0,1543,0,1543,0,2055,0,519,0,519,0,1543,0,1543,0,519,0,2823,0,519,0,519,0,2823,0,1543,0,3843,0,3840,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,775,0,2055,0,1543,0,775,0,2823,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3844,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3842,0,3842,0,3841,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,3857,0,2823,0,2823,0,1543,0,2823,0,2823,0,2055,0,2823,0,2823,0,3840,0,3843,0,2052,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3841,0,1287,0,2055,0,2055,0,3840,0,1543,0,1287,0,3840,0,3840,0,3840,0,3840,0,3840,0,2055,0,3840,0,3848,0,3848,0,3841,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3840,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3844,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3840,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,1543,0,1543,0,1543,0,2055,0,2055,0,2055,0,2055,0,2055,0,2055,0,1543,0,1543,0,1543,0,1543,0,1540,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,2823,0,775,0,2823,0,2055,0,2055,0,1543,0,1543,0,2823,0,2823,0,2052,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,1543,0,1543,0,1543,0,2055,0,2055,0,775,0,1543,0,2055,0,2055,0,1543,0,2055,0,2055,0,3844,0,1540,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3848,0,3848,0,3848,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,2823,0,775,0,2823,0,2055,0,2055,0,2055,0,2055,0,2055,0,2055,0,1543,0,1543,0,1543,0,2823,0,2820,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3842,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3841,0,3848,0,3848,0,1543,0,775,0,2823,0,2055,0,2055,0,1543,0,1543,0,1543,0,1543,0,1540,0,3843,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0,3840,0], ["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0], ALLOC_NONE, 139160);
  3539. allocate([111,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,0,0,0,0], ["i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0,"i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","i8","*",0,0,0], ALLOC_NONE, 147992);
  3540. allocate([1196643650,0,0,0,1196445523,0,0,0], ["i32",0,0,0,"i32",0,0,0], ALLOC_NONE, 148032);
  3541. /* no memory initializer */
  3542. function runPostSets() {
  3543. HEAP[148008]=(70);
  3544. HEAP[148028]=(144);
  3545. }
  3546. if (!awaitingMemoryInitializer) runPostSets();
  3547.   function _memcpy(dest, src, num) {
  3548.       dest = dest|0; src = src|0; num = num|0;
  3549.       var ret = 0;
  3550.       ret = dest|0;
  3551.       if ((dest&3) == (src&3)) {
  3552.         while (dest & 3) {
  3553.           if ((num|0) == 0) return ret|0;
  3554.           HEAP[dest]=HEAP[src];
  3555.           dest = (dest+1)|0;
  3556.           src = (src+1)|0;
  3557.           num = (num-1)|0;
  3558.         }
  3559.         while ((num|0) >= 4) {
  3560.           HEAP[dest]=HEAP[src];
  3561.           dest = (dest+4)|0;
  3562.           src = (src+4)|0;
  3563.           num = (num-4)|0;
  3564.         }
  3565.       }
  3566.       while ((num|0) > 0) {
  3567.         HEAP[dest]=HEAP[src];
  3568.         dest = (dest+1)|0;
  3569.         src = (src+1)|0;
  3570.         num = (num-1)|0;
  3571.       }
  3572.       return ret|0;
  3573.     }var _llvm_memcpy_p0i8_p0i8_i32=_memcpy;
  3574.   function _memset(ptr, value, num) {
  3575.       for (var $$dest = ptr, $$stop = $$dest + num; $$dest < $$stop; $$dest++) {
  3576.   HEAP[$$dest]=value
  3577.   };
  3578.     }var _llvm_memset_p0i8_i32=_memset;
  3579.   function ___setErrNo(value) {
  3580.       // For convenient setting and returning of errno.
  3581.       if (!___setErrNo.ret) ___setErrNo.ret = allocate([0], 'i32', ALLOC_NORMAL);
  3582.       HEAP[___setErrNo.ret]=value
  3583.       return value;
  3584.     }
  3585.   var ERRNO_CODES={E2BIG:7,EACCES:13,EADDRINUSE:98,EADDRNOTAVAIL:99,EAFNOSUPPORT:97,EAGAIN:11,EALREADY:114,EBADF:9,EBADMSG:74,EBUSY:16,ECANCELED:125,ECHILD:10,ECONNABORTED:103,ECONNREFUSED:111,ECONNRESET:104,EDEADLK:35,EDESTADDRREQ:89,EDOM:33,EDQUOT:122,EEXIST:17,EFAULT:14,EFBIG:27,EHOSTUNREACH:113,EIDRM:43,EILSEQ:84,EINPROGRESS:115,EINTR:4,EINVAL:22,EIO:5,EISCONN:106,EISDIR:21,ELOOP:40,EMFILE:24,EMLINK:31,EMSGSIZE:90,EMULTIHOP:72,ENAMETOOLONG:36,ENETDOWN:100,ENETRESET:102,ENETUNREACH:101,ENFILE:23,ENOBUFS:105,ENODATA:61,ENODEV:19,ENOENT:2,ENOEXEC:8,ENOLCK:37,ENOLINK:67,ENOMEM:12,ENOMSG:42,ENOPROTOOPT:92,ENOSPC:28,ENOSR:63,ENOSTR:60,ENOSYS:38,ENOTCONN:107,ENOTDIR:20,ENOTEMPTY:39,ENOTRECOVERABLE:131,ENOTSOCK:88,ENOTSUP:95,ENOTTY:25,ENXIO:6,EOPNOTSUPP:45,EOVERFLOW:75,EOWNERDEAD:130,EPERM:1,EPIPE:32,EPROTO:71,EPROTONOSUPPORT:93,EPROTOTYPE:91,ERANGE:34,EROFS:30,ESPIPE:29,ESRCH:3,ESTALE:116,ETIME:62,ETIMEDOUT:110,ETXTBSY:26,EWOULDBLOCK:11,EXDEV:18};function _sysconf(name) {
  3586.       // long sysconf(int name);
  3587.       // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
  3588.       switch(name) {
  3589.         case 8: return PAGE_SIZE;
  3590.         case 54:
  3591.         case 56:
  3592.         case 21:
  3593.         case 61:
  3594.         case 63:
  3595.         case 22:
  3596.         case 67:
  3597.         case 23:
  3598.         case 24:
  3599.         case 25:
  3600.         case 26:
  3601.         case 27:
  3602.         case 69:
  3603.         case 28:
  3604.         case 101:
  3605.         case 70:
  3606.         case 71:
  3607.         case 29:
  3608.         case 30:
  3609.         case 199:
  3610.         case 75:
  3611.         case 76:
  3612.         case 32:
  3613.         case 43:
  3614.         case 44:
  3615.         case 80:
  3616.         case 46:
  3617.         case 47:
  3618.         case 45:
  3619.         case 48:
  3620.         case 49:
  3621.         case 42:
  3622.         case 82:
  3623.         case 33:
  3624.         case 7:
  3625.         case 108:
  3626.         case 109:
  3627.         case 107:
  3628.         case 112:
  3629.         case 119:
  3630.         case 121:
  3631.           return 200809;
  3632.         case 13:
  3633.         case 104:
  3634.         case 94:
  3635.         case 95:
  3636.         case 34:
  3637.         case 35:
  3638.         case 77:
  3639.         case 81:
  3640.         case 83:
  3641.         case 84:
  3642.         case 85:
  3643.         case 86:
  3644.         case 87:
  3645.         case 88:
  3646.         case 89:
  3647.         case 90:
  3648.         case 91:
  3649.         case 94:
  3650.         case 95:
  3651.         case 110:
  3652.         case 111:
  3653.         case 113:
  3654.         case 114:
  3655.         case 115:
  3656.         case 116:
  3657.         case 117:
  3658.         case 118:
  3659.         case 120:
  3660.         case 40:
  3661.         case 16:
  3662.         case 79:
  3663.         case 19:
  3664.           return -1;
  3665.         case 92:
  3666.         case 93:
  3667.         case 5:
  3668.         case 72:
  3669.         case 6:
  3670.         case 74:
  3671.         case 92:
  3672.         case 93:
  3673.         case 96:
  3674.         case 97:
  3675.         case 98:
  3676.         case 99:
  3677.         case 102:
  3678.         case 103:
  3679.         case 105:
  3680.           return 1;
  3681.         case 38:
  3682.         case 66:
  3683.         case 50:
  3684.         case 51:
  3685.         case 4:
  3686.           return 1024;
  3687.         case 15:
  3688.         case 64:
  3689.         case 41:
  3690.           return 32;
  3691.         case 55:
  3692.         case 37:
  3693.         case 17:
  3694.           return 2147483647;
  3695.         case 18:
  3696.         case 1:
  3697.           return 47839;
  3698.         case 59:
  3699.         case 57:
  3700.           return 99;
  3701.         case 68:
  3702.         case 58:
  3703.           return 2048;
  3704.         case 0: return 2097152;
  3705.         case 3: return 65536;
  3706.         case 14: return 32768;
  3707.         case 73: return 32767;
  3708.         case 39: return 16384;
  3709.         case 60: return 1000;
  3710.         case 106: return 700;
  3711.         case 52: return 256;
  3712.         case 62: return 255;
  3713.         case 2: return 100;
  3714.         case 65: return 64;
  3715.         case 36: return 20;
  3716.         case 100: return 16;
  3717.         case 20: return 6;
  3718.         case 53: return 4;
  3719.         case 10: return 1;
  3720.       }
  3721.       ___setErrNo(ERRNO_CODES.EINVAL);
  3722.       return -1;
  3723.     }
  3724.   var ERRNO_MESSAGES={1:"Operation not permitted",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"Input/output error",6:"No such device or address",8:"Exec format error",9:"Bad file descriptor",10:"No child processes",11:"Resource temporarily unavailable",12:"Cannot allocate memory",13:"Permission denied",14:"Bad address",16:"Device or resource busy",17:"File exists",18:"Invalid cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Inappropriate ioctl for device",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read-only file system",31:"Too many links",32:"Broken pipe",33:"Numerical argument out of domain",34:"Numerical result out of range",35:"Resource deadlock avoided",36:"File name too long",37:"No locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many levels of symbolic links",42:"No message of desired type",43:"Identifier removed",45:"Op not supported on transport endpoint",60:"Device not a stream",61:"No data available",62:"Timer expired",63:"Out of streams resources",67:"Link has been severed",71:"Protocol error",72:"Multihop attempted",74:"Bad message",75:"Value too large for defined data type",84:"Invalid or incomplete multibyte or wide character",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Protocol not supported",95:"Operation not supported",97:"Address family not supported by protocol",98:"Address already in use",99:"Cannot assign requested address",100:"Network is down",101:"Network is unreachable",102:"Network dropped connection on reset",103:"Software caused connection abort",104:"Connection reset by peer",105:"No buffer space available",106:"Transport endpoint is already connected",107:"Transport endpoint is not connected",110:"Connection timed out",111:"Connection refused",113:"No route to host",114:"Operation already in progress",115:"Operation now in progress",116:"Stale NFS file handle",122:"Disk quota exceeded",125:"Operation canceled",130:"Owner died",131:"State not recoverable"};function _strerror_r(errnum, strerrbuf, buflen) {
  3725.       if (errnum in ERRNO_MESSAGES) {
  3726.         if (ERRNO_MESSAGES[errnum].length > buflen - 1) {
  3727.           return ___setErrNo(ERRNO_CODES.ERANGE);
  3728.         } else {
  3729.           var msg = ERRNO_MESSAGES[errnum];
  3730.           for (var i = 0; i < msg.length; i++) {
  3731.             HEAP[(strerrbuf)+(i)]=msg.charCodeAt(i)
  3732.           }
  3733.           HEAP[(strerrbuf)+(i)]=0
  3734.           return 0;
  3735.         }
  3736.       } else {
  3737.         return ___setErrNo(ERRNO_CODES.EINVAL);
  3738.       }
  3739.     }function _strerror(errnum) {
  3740.       if (!_strerror.buffer) _strerror.buffer = _malloc(256);
  3741.       _strerror_r(errnum, _strerror.buffer, 256);
  3742.       return _strerror.buffer;
  3743.     }
  3744.   function ___errno_location() {
  3745.       if (!___setErrNo.ret) {
  3746.         ___setErrNo.ret = allocate([0], 'i32', ALLOC_NORMAL);
  3747.         HEAP[___setErrNo.ret]=0
  3748.       }
  3749.       return ___setErrNo.ret;
  3750.     }var ___errno=___errno_location;
  3751.   function _mprotect() {
  3752.   Module['printErr']('missing function: mprotect'); abort(-1);
  3753.   }
  3754.   function ___assert_func(filename, line, func, condition) {
  3755.       throw 'Assertion failed: ' + (condition ? Pointer_stringify(condition) : 'unknown condition') + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + new Error().stack;
  3756.     }
  3757.   function _strlen(ptr) {
  3758.       ptr = ptr|0;
  3759.       var curr = 0;
  3760.       curr = ptr;
  3761.       while (HEAP[curr]) {
  3762.         curr = (curr + 1)|0;
  3763.       }
  3764.       return (curr - ptr)|0;
  3765.     }
  3766.   function _strncpy(pdest, psrc, num) {
  3767.       pdest = pdest|0; psrc = psrc|0; num = num|0;
  3768.       var padding = 0, curr = 0, i = 0;
  3769.       while ((i|0) < (num|0)) {
  3770.         curr = padding ? 0 : HEAP[(psrc)+(i)];
  3771.         HEAP[(pdest)+(i)]=curr
  3772.         padding = padding ? 1 : (HEAP[(psrc)+(i)] == 0);
  3773.         i = (i+1)|0;
  3774.       }
  3775.       return pdest|0;
  3776.     }
  3777.   function _isspace(chr) {
  3778.       return chr in { 32: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0 };
  3779.     }function __parseInt(str, endptr, base, min, max, bits, unsign) {
  3780.       // Skip space.
  3781.       while (_isspace(HEAP[str])) str++;
  3782.       // Check for a plus/minus sign.
  3783.       var multiplier = 1;
  3784.       if (HEAP[str] == 45) {
  3785.         multiplier = -1;
  3786.         str++;
  3787.       } else if (HEAP[str] == 43) {
  3788.         str++;
  3789.       }
  3790.       // Find base.
  3791.       var finalBase = base;
  3792.       if (!finalBase) {
  3793.         if (HEAP[str] == 48) {
  3794.           if (HEAP[str+1] == 120 ||
  3795.               HEAP[str+1] == 88) {
  3796.             finalBase = 16;
  3797.             str += 2;
  3798.           } else {
  3799.             finalBase = 8;
  3800.             str++;
  3801.           }
  3802.         }
  3803.       }
  3804.       if (!finalBase) finalBase = 10;
  3805.       // Get digits.
  3806.       var chr;
  3807.       var ret = 0;
  3808.       while ((chr = HEAP[str]) != 0) {
  3809.         var digit = parseInt(String.fromCharCode(chr), finalBase);
  3810.         if (isNaN(digit)) {
  3811.           break;
  3812.         } else {
  3813.           ret = ret * finalBase + digit;
  3814.           str++;
  3815.         }
  3816.       }
  3817.       // Apply sign.
  3818.       ret *= multiplier;
  3819.       // Set end pointer.
  3820.       if (endptr) {
  3821.         HEAP[endptr]=str
  3822.       }
  3823.       // Unsign if needed.
  3824.       if (unsign) {
  3825.         if (Math.abs(ret) > max) {
  3826.           ret = max;
  3827.           ___setErrNo(ERRNO_CODES.ERANGE);
  3828.         } else {
  3829.           ret = unSign(ret, bits);
  3830.         }
  3831.       }
  3832.       // Validate range.
  3833.       if (ret > max || ret < min) {
  3834.         ret = ret > max ? max : min;
  3835.         ___setErrNo(ERRNO_CODES.ERANGE);
  3836.       }
  3837.       return ret;
  3838.     }function _strtol(str, endptr, base) {
  3839.       return __parseInt(str, endptr, base, -2147483648, 2147483647, 32);  // LONG_MIN, LONG_MAX.
  3840.     }
  3841.   function __reallyNegative(x) {
  3842.       return x < 0 || (x === 0 && (1/x) === -Infinity);
  3843.     }function __formatString(format, varargs) {
  3844.       var textIndex = format;
  3845.       var argIndex = 0;
  3846.       function getNextArg(type) {
  3847.         // NOTE: Explicitly ignoring type safety. Otherwise this fails:
  3848.         //       int x = 4; printf("%c\n", (char)x);
  3849.         var ret;
  3850.         if (type === 'double') {
  3851.           ret = HEAP[(varargs)+(argIndex)];
  3852.         } else if (type == 'i64') {
  3853.           ret = HEAP[(varargs)+(argIndex)];
  3854.         } else {
  3855.           type = 'i32'; // varargs are always i32, i64, or double
  3856.           ret = HEAP[(varargs)+(argIndex)];
  3857.         }
  3858.         argIndex += Math.max(Runtime.getNativeFieldSize(type), Runtime.getAlignSize(type, null, true));
  3859.         return ret;
  3860.       }
  3861.       var ret = [];
  3862.       var curr, next, currArg;
  3863.       while(1) {
  3864.         var startTextIndex = textIndex;
  3865.         curr = HEAP[textIndex];
  3866.         if (curr === 0) break;
  3867.         next = HEAP[textIndex+1];
  3868.         if (curr == 37) {
  3869.           // Handle flags.
  3870.           var flagAlwaysSigned = false;
  3871.           var flagLeftAlign = false;
  3872.           var flagAlternative = false;
  3873.           var flagZeroPad = false;
  3874.           flagsLoop: while (1) {
  3875.             switch (next) {
  3876.               case 43:
  3877.                 flagAlwaysSigned = true;
  3878.                 break;
  3879.               case 45:
  3880.                 flagLeftAlign = true;
  3881.                 break;
  3882.               case 35:
  3883.                 flagAlternative = true;
  3884.                 break;
  3885.               case 48:
  3886.                 if (flagZeroPad) {
  3887.                   break flagsLoop;
  3888.                 } else {
  3889.                   flagZeroPad = true;
  3890.                   break;
  3891.                 }
  3892.               default:
  3893.                 break flagsLoop;
  3894.             }
  3895.             textIndex++;
  3896.             next = HEAP[textIndex+1];
  3897.           }
  3898.           // Handle width.
  3899.           var width = 0;
  3900.           if (next == 42) {
  3901.             width = getNextArg('i32');
  3902.             textIndex++;
  3903.             next = HEAP[textIndex+1];
  3904.           } else {
  3905.             while (next >= 48 && next <= 57) {
  3906.               width = width * 10 + (next - 48);
  3907.               textIndex++;
  3908.               next = HEAP[textIndex+1];
  3909.             }
  3910.           }
  3911.           // Handle precision.
  3912.           var precisionSet = false;
  3913.           if (next == 46) {
  3914.             var precision = 0;
  3915.             precisionSet = true;
  3916.             textIndex++;
  3917.             next = HEAP[textIndex+1];
  3918.             if (next == 42) {
  3919.               precision = getNextArg('i32');
  3920.               textIndex++;
  3921.             } else {
  3922.               while(1) {
  3923.                 var precisionChr = HEAP[textIndex+1];
  3924.                 if (precisionChr < 48 ||
  3925.                     precisionChr > 57) break;
  3926.                 precision = precision * 10 + (precisionChr - 48);
  3927.                 textIndex++;
  3928.               }
  3929.             }
  3930.             next = HEAP[textIndex+1];
  3931.           } else {
  3932.             var precision = 6; // Standard default.
  3933.           }
  3934.           // Handle integer sizes. WARNING: These assume a 32-bit architecture!
  3935.           var argSize;
  3936.           switch (String.fromCharCode(next)) {
  3937.             case 'h':
  3938.               var nextNext = HEAP[textIndex+2];
  3939.               if (nextNext == 104) {
  3940.                 textIndex++;
  3941.                 argSize = 1; // char (actually i32 in varargs)
  3942.               } else {
  3943.                 argSize = 2; // short (actually i32 in varargs)
  3944.               }
  3945.               break;
  3946.             case 'l':
  3947.               var nextNext = HEAP[textIndex+2];
  3948.               if (nextNext == 108) {
  3949.                 textIndex++;
  3950.                 argSize = 8; // long long
  3951.               } else {
  3952.                 argSize = 4; // long
  3953.               }
  3954.               break;
  3955.             case 'L': // long long
  3956.             case 'q': // int64_t
  3957.             case 'j': // intmax_t
  3958.               argSize = 8;
  3959.               break;
  3960.             case 'z': // size_t
  3961.             case 't': // ptrdiff_t
  3962.             case 'I': // signed ptrdiff_t or unsigned size_t
  3963.               argSize = 4;
  3964.               break;
  3965.             default:
  3966.               argSize = null;
  3967.           }
  3968.           if (argSize) textIndex++;
  3969.           next = HEAP[textIndex+1];
  3970.           // Handle type specifier.
  3971.           switch (String.fromCharCode(next)) {
  3972.             case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': {
  3973.               // Integer.
  3974.               var signed = next == 100 || next == 105;
  3975.               argSize = argSize || 4;
  3976.               var currArg = getNextArg('i' + (argSize * 8));
  3977.               var origArg = currArg;
  3978.               var argText;
  3979.               // Truncate to requested size.
  3980.               if (argSize <= 4) {
  3981.                 var limit = Math.pow(256, argSize) - 1;
  3982.                 currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
  3983.               }
  3984.               // Format the number.
  3985.               var currAbsArg = Math.abs(currArg);
  3986.               var prefix = '';
  3987.               if (next == 100 || next == 105) {
  3988.                 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
  3989.                 argText = reSign(currArg, 8 * argSize, 1).toString(10);
  3990.               } else if (next == 117) {
  3991.                 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
  3992.                 argText = unSign(currArg, 8 * argSize, 1).toString(10);
  3993.                 currArg = Math.abs(currArg);
  3994.               } else if (next == 111) {
  3995.                 argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
  3996.               } else if (next == 120 || next == 88) {
  3997.                 prefix = flagAlternative ? '0x' : '';
  3998.                 if (argSize == 8 && i64Math) {
  3999.                   if (origArg[1]) {
  4000.                     argText = (origArg[1]>>>0).toString(16);
  4001.                     var lower = (origArg[0]>>>0).toString(16);
  4002.                     while (lower.length < 8) lower = '0' + lower;
  4003.                     argText += lower;
  4004.                   } else {
  4005.                     argText = (origArg[0]>>>0).toString(16);
  4006.                   }
  4007.                 } else
  4008.                 if (currArg < 0) {
  4009.                   // Represent negative numbers in hex as 2's complement.
  4010.                   currArg = -currArg;
  4011.                   argText = (currAbsArg - 1).toString(16);
  4012.                   var buffer = [];
  4013.                   for (var i = 0; i < argText.length; i++) {
  4014.                     buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
  4015.                   }
  4016.                   argText = buffer.join('');
  4017.                   while (argText.length < argSize * 2) argText = 'f' + argText;
  4018.                 } else {
  4019.                   argText = currAbsArg.toString(16);
  4020.                 }
  4021.                 if (next == 88) {
  4022.                   prefix = prefix.toUpperCase();
  4023.                   argText = argText.toUpperCase();
  4024.                 }
  4025.               } else if (next == 112) {
  4026.                 if (currAbsArg === 0) {
  4027.                   argText = '(nil)';
  4028.                 } else {
  4029.                   prefix = '0x';
  4030.                   argText = currAbsArg.toString(16);
  4031.                 }
  4032.               }
  4033.               if (precisionSet) {
  4034.                 while (argText.length < precision) {
  4035.                   argText = '0' + argText;
  4036.                 }
  4037.               }
  4038.               // Add sign if needed
  4039.               if (flagAlwaysSigned) {
  4040.                 if (currArg < 0) {
  4041.                   prefix = '-' + prefix;
  4042.                 } else {
  4043.                   prefix = '+' + prefix;
  4044.                 }
  4045.               }
  4046.               // Add padding.
  4047.               while (prefix.length + argText.length < width) {
  4048.                 if (flagLeftAlign) {
  4049.                   argText += ' ';
  4050.                 } else {
  4051.                   if (flagZeroPad) {
  4052.                     argText = '0' + argText;
  4053.                   } else {
  4054.                     prefix = ' ' + prefix;
  4055.                   }
  4056.                 }
  4057.               }
  4058.               // Insert the result into the buffer.
  4059.               argText = prefix + argText;
  4060.               argText.split('').forEach(function(chr) {
  4061.                 ret.push(chr.charCodeAt(0));
  4062.               });
  4063.               break;
  4064.             }
  4065.             case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': {
  4066.               // Float.
  4067.               var currArg = getNextArg('double');
  4068.               var argText;
  4069.               if (isNaN(currArg)) {
  4070.                 argText = 'nan';
  4071.                 flagZeroPad = false;
  4072.               } else if (!isFinite(currArg)) {
  4073.                 argText = (currArg < 0 ? '-' : '') + 'inf';
  4074.                 flagZeroPad = false;
  4075.               } else {
  4076.                 var isGeneral = false;
  4077.                 var effectivePrecision = Math.min(precision, 20);
  4078.                 // Convert g/G to f/F or e/E, as per:
  4079.                 // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
  4080.                 if (next == 103 || next == 71) {
  4081.                   isGeneral = true;
  4082.                   precision = precision || 1;
  4083.                   var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
  4084.                   if (precision > exponent && exponent >= -4) {
  4085.                     next = ((next == 103) ? 'f' : 'F').charCodeAt(0);
  4086.                     precision -= exponent + 1;
  4087.                   } else {
  4088.                     next = ((next == 103) ? 'e' : 'E').charCodeAt(0);
  4089.                     precision--;
  4090.                   }
  4091.                   effectivePrecision = Math.min(precision, 20);
  4092.                 }
  4093.                 if (next == 101 || next == 69) {
  4094.                   argText = currArg.toExponential(effectivePrecision);
  4095.                   // Make sure the exponent has at least 2 digits.
  4096.                   if (/[eE][-+]\d$/.test(argText)) {
  4097.                     argText = argText.slice(0, -1) + '0' + argText.slice(-1);
  4098.                   }
  4099.                 } else if (next == 102 || next == 70) {
  4100.                   argText = currArg.toFixed(effectivePrecision);
  4101.                   if (currArg === 0 && __reallyNegative(currArg)) {
  4102.                     argText = '-' + argText;
  4103.                   }
  4104.                 }
  4105.                 var parts = argText.split('e');
  4106.                 if (isGeneral && !flagAlternative) {
  4107.                   // Discard trailing zeros and periods.
  4108.                   while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
  4109.                          (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
  4110.                     parts[0] = parts[0].slice(0, -1);
  4111.                   }
  4112.                 } else {
  4113.                   // Make sure we have a period in alternative mode.
  4114.                   if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
  4115.                   // Zero pad until required precision.
  4116.                   while (precision > effectivePrecision++) parts[0] += '0';
  4117.                 }
  4118.                 argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
  4119.                 // Capitalize 'E' if needed.
  4120.                 if (next == 69) argText = argText.toUpperCase();
  4121.                 // Add sign.
  4122.                 if (flagAlwaysSigned && currArg >= 0) {
  4123.                   argText = '+' + argText;
  4124.                 }
  4125.               }
  4126.               // Add padding.
  4127.               while (argText.length < width) {
  4128.                 if (flagLeftAlign) {
  4129.                   argText += ' ';
  4130.                 } else {
  4131.                   if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
  4132.                     argText = argText[0] + '0' + argText.slice(1);
  4133.                   } else {
  4134.                     argText = (flagZeroPad ? '0' : ' ') + argText;
  4135.                   }
  4136.                 }
  4137.               }
  4138.               // Adjust case.
  4139.               if (next < 97) argText = argText.toUpperCase();
  4140.               // Insert the result into the buffer.
  4141.               argText.split('').forEach(function(chr) {
  4142.                 ret.push(chr.charCodeAt(0));
  4143.               });
  4144.               break;
  4145.             }
  4146.             case 's': {
  4147.               // String.
  4148.               var arg = getNextArg('i8*');
  4149.               var argLength = arg ? _strlen(arg) : '(null)'.length;
  4150.               if (precisionSet) argLength = Math.min(argLength, precision);
  4151.               if (!flagLeftAlign) {
  4152.                 while (argLength < width--) {
  4153.                   ret.push(32);
  4154.                 }
  4155.               }
  4156.               if (arg) {
  4157.                 for (var i = 0; i < argLength; i++) {
  4158.                   ret.push(HEAP[arg++]);
  4159.                 }
  4160.               } else {
  4161.                 ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true));
  4162.               }
  4163.               if (flagLeftAlign) {
  4164.                 while (argLength < width--) {
  4165.                   ret.push(32);
  4166.                 }
  4167.               }
  4168.               break;
  4169.             }
  4170.             case 'c': {
  4171.               // Character.
  4172.               if (flagLeftAlign) ret.push(getNextArg('i8'));
  4173.               while (--width > 0) {
  4174.                 ret.push(32);
  4175.               }
  4176.               if (!flagLeftAlign) ret.push(getNextArg('i8'));
  4177.               break;
  4178.             }
  4179.             case 'n': {
  4180.               // Write the length written so far to the next parameter.
  4181.               var ptr = getNextArg('i32*');
  4182.               HEAP[ptr]=ret.length
  4183.               break;
  4184.             }
  4185.             case '%': {
  4186.               // Literal percent sign.
  4187.               ret.push(curr);
  4188.               break;
  4189.             }
  4190.             default: {
  4191.               // Unknown specifiers remain untouched.
  4192.               for (var i = startTextIndex; i < textIndex + 2; i++) {
  4193.                 ret.push(HEAP[i]);
  4194.               }
  4195.             }
  4196.           }
  4197.           textIndex += 2;
  4198.           // TODO: Support a/A (hex float) and m (last error) specifiers.
  4199.           // TODO: Support %1${specifier} for arg selection.
  4200.         } else {
  4201.           ret.push(curr);
  4202.           textIndex += 1;
  4203.         }
  4204.       }
  4205.       return ret;
  4206.     }function _snprintf(s, n, format, varargs) {
  4207.       // int snprintf(char *restrict s, size_t n, const char *restrict format, ...);
  4208.       // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
  4209.       var result = __formatString(format, varargs);
  4210.       var limit = (n === undefined) ? result.length
  4211.                                     : Math.min(result.length, Math.max(n - 1, 0));
  4212.       if (s < 0) {
  4213.         s = -s;
  4214.         var buf = _malloc(limit+1);
  4215.         HEAP[s]=buf;
  4216.         s = buf;
  4217.       }
  4218.       for (var i = 0; i < limit; i++) {
  4219.         HEAP[(s)+(i)]=result[i];
  4220.       }
  4221.       if (limit < n || (n === undefined)) HEAP[(s)+(i)]=0;
  4222.       return result.length;
  4223.     }
  4224.   function _strncmp(px, py, n) {
  4225.       var i = 0;
  4226.       while (i < n) {
  4227.         var x = HEAP[(px)+(i)];
  4228.         var y = HEAP[(py)+(i)];
  4229.         if (x == y && x == 0) return 0;
  4230.         if (x == 0) return -1;
  4231.         if (y == 0) return 1;
  4232.         if (x == y) {
  4233.           i ++;
  4234.           continue;
  4235.         } else {
  4236.           return x > y ? 1 : -1;
  4237.         }
  4238.       }
  4239.       return 0;
  4240.     }function _strcmp(px, py) {
  4241.       return _strncmp(px, py, TOTAL_MEMORY);
  4242.     }
  4243.   var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) {
  4244.       // WARNING: Arbitrary limit!
  4245.       var MAX_ENV_VALUES = 64;
  4246.       var TOTAL_ENV_SIZE = 1024;
  4247.       // Statically allocate memory for the environment.
  4248.       var poolPtr;
  4249.       var envPtr;
  4250.       if (!___buildEnvironment.called) {
  4251.         ___buildEnvironment.called = true;
  4252.         // Set default values. Use string keys for Closure Compiler compatibility.
  4253.         ENV['USER'] = 'root';
  4254.         ENV['PATH'] = '/';
  4255.         ENV['PWD'] = '/';
  4256.         ENV['HOME'] = '/home/emscripten';
  4257.         ENV['LANG'] = 'en_US.UTF-8';
  4258.         ENV['_'] = './this.program';
  4259.         // Allocate memory.
  4260.         poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
  4261.         envPtr = allocate(MAX_ENV_VALUES * 4,
  4262.                           'i8*', ALLOC_STATIC);
  4263.         HEAP[envPtr]=poolPtr
  4264.         HEAP[_environ]=envPtr;
  4265.       } else {
  4266.         envPtr = HEAP[_environ];
  4267.         poolPtr = HEAP[envPtr];
  4268.       }
  4269.       // Collect key=value lines.
  4270.       var strings = [];
  4271.       var totalSize = 0;
  4272.       for (var key in env) {
  4273.         if (typeof env[key] === 'string') {
  4274.           var line = key + '=' + env[key];
  4275.           strings.push(line);
  4276.           totalSize += line.length;
  4277.         }
  4278.       }
  4279.       if (totalSize > TOTAL_ENV_SIZE) {
  4280.         throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
  4281.       }
  4282.       // Make new.
  4283.       var ptrSize = 4;
  4284.       for (var i = 0; i < strings.length; i++) {
  4285.         var line = strings[i];
  4286.         for (var j = 0; j < line.length; j++) {
  4287.           HEAP[(poolPtr)+(j)]=line.charCodeAt(j);
  4288.         }
  4289.         HEAP[(poolPtr)+(j)]=0;
  4290.         HEAP[(envPtr)+(i * ptrSize)]=poolPtr;
  4291.         poolPtr += line.length + 1;
  4292.       }
  4293.       HEAP[(envPtr)+(strings.length * ptrSize)]=0;
  4294.     }var ENV={};function _getenv(name) {
  4295.       // char *getenv(const char *name);
  4296.       // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
  4297.       if (name === 0) return 0;
  4298.       name = Pointer_stringify(name);
  4299.       if (!ENV.hasOwnProperty(name)) return 0;
  4300.       if (_getenv.ret) _free(_getenv.ret);
  4301.       _getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL);
  4302.       return _getenv.ret;
  4303.     }
  4304.   function _strstr(ptr1, ptr2) {
  4305.       var check = 0, start;
  4306.       do {
  4307.         if (!check) {
  4308.           start = ptr1;
  4309.           check = ptr2;
  4310.         }
  4311.         var curr1 = HEAP[ptr1++];
  4312.         var curr2 = HEAP[check++];
  4313.         if (curr2 == 0) return start;
  4314.         if (curr2 != curr1) {
  4315.           // rewind to one character after start, to find ez in eeez
  4316.           ptr1 = start + 1;
  4317.           check = 0;
  4318.         }
  4319.       } while (curr1);
  4320.       return 0;
  4321.     }
  4322.   function _setlocale(category, locale) {
  4323.       if (!_setlocale.ret) _setlocale.ret = allocate([0], 'i8', ALLOC_NORMAL);
  4324.       return _setlocale.ret;
  4325.     }
  4326.   function _atexit(func, arg) {
  4327.       __ATEXIT__.unshift({ func: func, arg: arg });
  4328.     }
  4329.   function _strdup(ptr) {
  4330.       var len = _strlen(ptr);
  4331.       var newStr = _malloc(len + 1);
  4332.       for (var $$src = ptr, $$dest = newStr, $$stop = $$src + len; $$src < $$stop; $$src++, $$dest++) {
  4333.   HEAP[$$dest]=HEAP[$$src] };
  4334.       HEAP[(newStr)+(len)]=0;
  4335.       return newStr;
  4336.     }
  4337.   function _bsearch(key, base, num, size, compar) {
  4338.       var cmp = function(x, y) {
  4339.         return Runtime.dynCall('iii', compar, [x, y])
  4340.       };
  4341.       var left = 0;
  4342.       var right = num;
  4343.       var mid, test, addr;
  4344.       while (left < right) {
  4345.         mid = (left + right) >>> 1;
  4346.         addr = base + (mid * size);
  4347.         test = cmp(key, addr);
  4348.         if (test < 0) {
  4349.           right = mid;
  4350.         } else if (test > 0) {
  4351.           left = mid + 1;
  4352.         } else {
  4353.           return addr;
  4354.         }
  4355.       }
  4356.       return 0;
  4357.     }
  4358.   function _strchr(ptr, chr) {
  4359.       ptr--;
  4360.       do {
  4361.         ptr++;
  4362.         var val = HEAP[ptr];
  4363.         if (val == chr) return ptr;
  4364.       } while (val);
  4365.       return 0;
  4366.     }
  4367.   function _memmove(dest, src, num) {
  4368.       dest = dest|0; src = src|0; num = num|0;
  4369.       if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) {
  4370.         // Unlikely case: Copy backwards in a safe manner
  4371.         src = (src + num)|0;
  4372.         dest = (dest + num)|0;
  4373.         while ((num|0) > 0) {
  4374.           dest = (dest - 1)|0;
  4375.           src = (src - 1)|0;
  4376.           num = (num - 1)|0;
  4377.           HEAP[dest]=HEAP[src];
  4378.         }
  4379.       } else {
  4380.         _memcpy(dest, src, num);
  4381.       }
  4382.     }var _llvm_memmove_p0i8_p0i8_i32=_memmove;
  4383.   function _qsort(base, num, size, cmp) {
  4384.       if (num == 0 || size == 0) return;
  4385.       // forward calls to the JavaScript sort method
  4386.       // first, sort the items logically
  4387.       var comparator = function(x, y) {
  4388.         return Runtime.dynCall('iii', cmp, [x, y]);
  4389.       }
  4390.       var keys = [];
  4391.       for (var i = 0; i < num; i++) keys.push(i);
  4392.       keys.sort(function(a, b) {
  4393.         return comparator(base+a*size, base+b*size);
  4394.       });
  4395.       // apply the sort
  4396.       var temp = _malloc(num*size);
  4397.       _memcpy(temp, base, num*size);
  4398.       for (var i = 0; i < num; i++) {
  4399.         if (keys[i] == i) continue; // already in place
  4400.         _memcpy(base+i*size, temp+keys[i]*size, size);
  4401.       }
  4402.       _free(temp);
  4403.     }
  4404.   var _llvm_expect_i32=undefined;
  4405.   function _abort() {
  4406.       ABORT = true;
  4407.       throw 'abort() at ' + (new Error().stack);
  4408.     }
  4409.   function _time(ptr) {
  4410.       var ret = Math.floor(Date.now()/1000);
  4411.       if (ptr) {
  4412.         HEAP[ptr]=ret
  4413.       }
  4414.       return ret;
  4415.     }
  4416.   function _sbrk(bytes) {
  4417.       // Implement a Linux-like 'memory area' for our 'process'.
  4418.       // Changes the size of the memory area by |bytes|; returns the
  4419.       // address of the previous top ('break') of the memory area
  4420.       // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
  4421.       var self = _sbrk;
  4422.       if (!self.called) {
  4423.         DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
  4424.         self.called = true;
  4425.         assert(Runtime.dynamicAlloc);
  4426.         self.alloc = Runtime.dynamicAlloc;
  4427.         Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
  4428.       }
  4429.       var ret = DYNAMICTOP;
  4430.       if (bytes != 0) self.alloc(bytes);
  4431.       return ret;  // Previous break location.
  4432.     }
  4433.   function _llvm_lifetime_start() {}
  4434.   function _llvm_lifetime_end() {}
  4435.   var _llvm_memset_p0i8_i64=_memset;
  4436.   var _llvm_memcpy_p0i8_p0i8_i64=_memcpy;
  4437.   var _llvm_memmove_p0i8_p0i8_i64=_memmove;
  4438.   var Browser={mainLoop:{scheduler:null,shouldPause:false,paused:false,queue:[],pause:function () {
  4439.           Browser.mainLoop.shouldPause = true;
  4440.         },resume:function () {
  4441.           if (Browser.mainLoop.paused) {
  4442.             Browser.mainLoop.paused = false;
  4443.             Browser.mainLoop.scheduler();
  4444.           }
  4445.           Browser.mainLoop.shouldPause = false;
  4446.         },updateStatus:function () {
  4447.           if (Module['setStatus']) {
  4448.             var message = Module['statusMessage'] || 'Please wait...';
  4449.             var remaining = Browser.mainLoop.remainingBlockers;
  4450.             var expected = Browser.mainLoop.expectedBlockers;
  4451.             if (remaining) {
  4452.               if (remaining < expected) {
  4453.                 Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
  4454.               } else {
  4455.                 Module['setStatus'](message);
  4456.               }
  4457.             } else {
  4458.               Module['setStatus']('');
  4459.             }
  4460.           }
  4461.         }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
  4462.         if (Browser.initted) return;
  4463.         Browser.initted = true;
  4464.         try {
  4465.           new Blob();
  4466.           Browser.hasBlobConstructor = true;
  4467.         } catch(e) {
  4468.           Browser.hasBlobConstructor = false;
  4469.           console.log("warning: no blob constructor, cannot create blobs with mimetypes");
  4470.         }
  4471.         Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
  4472.         Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : console.log("warning: cannot create object URLs");
  4473.         // Support for plugins that can process preloaded files. You can add more of these to
  4474.         // your app by creating and appending to Module.preloadPlugins.
  4475.         //
  4476.         // Each plugin is asked if it can handle a file based on the file's name. If it can,
  4477.         // it is given the file's raw data. When it is done, it calls a callback with the file's
  4478.         // (possibly modified) data. For example, a plugin might decompress a file, or it
  4479.         // might create some side data structure for use later (like an Image element, etc.).
  4480.         function getMimetype(name) {
  4481.           return {
  4482.             'jpg': 'image/jpeg',
  4483.             'jpeg': 'image/jpeg',
  4484.             'png': 'image/png',
  4485.             'bmp': 'image/bmp',
  4486.             'ogg': 'audio/ogg',
  4487.             'wav': 'audio/wav',
  4488.             'mp3': 'audio/mpeg'
  4489.           }[name.substr(name.lastIndexOf('.')+1)];
  4490.         }
  4491.         if (!Module["preloadPlugins"]) Module["preloadPlugins"] = [];
  4492.         var imagePlugin = {};
  4493.         imagePlugin['canHandle'] = function(name) {
  4494.           return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/.exec(name);
  4495.         };
  4496.         imagePlugin['handle'] = function(byteArray, name, onload, onerror) {
  4497.           var b = null;
  4498.           if (Browser.hasBlobConstructor) {
  4499.             try {
  4500.               b = new Blob([byteArray], { type: getMimetype(name) });
  4501.             } catch(e) {
  4502.               Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
  4503.             }
  4504.           }
  4505.           if (!b) {
  4506.             var bb = new Browser.BlobBuilder();
  4507.             bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
  4508.             b = bb.getBlob();
  4509.           }
  4510.           var url = Browser.URLObject.createObjectURL(b);
  4511.           var img = new Image();
  4512.           img.onload = function() {
  4513.             assert(img.complete, 'Image ' + name + ' could not be decoded');
  4514.             var canvas = document.createElement('canvas');
  4515.             canvas.width = img.width;
  4516.             canvas.height = img.height;
  4517.             var ctx = canvas.getContext('2d');
  4518.             ctx.drawImage(img, 0, 0);
  4519.             Module["preloadedImages"][name] = canvas;
  4520.             Browser.URLObject.revokeObjectURL(url);
  4521.             if (onload) onload(byteArray);
  4522.           };
  4523.           img.onerror = function(event) {
  4524.             console.log('Image ' + url + ' could not be decoded');
  4525.             if (onerror) onerror();
  4526.           };
  4527.           img.src = url;
  4528.         };
  4529.         Module['preloadPlugins'].push(imagePlugin);
  4530.         var audioPlugin = {};
  4531.         audioPlugin['canHandle'] = function(name) {
  4532.           return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
  4533.         };
  4534.         audioPlugin['handle'] = function(byteArray, name, onload, onerror) {
  4535.           var done = false;
  4536.           function finish(audio) {
  4537.             if (done) return;
  4538.             done = true;
  4539.             Module["preloadedAudios"][name] = audio;
  4540.             if (onload) onload(byteArray);
  4541.           }
  4542.           function fail() {
  4543.             if (done) return;
  4544.             done = true;
  4545.             Module["preloadedAudios"][name] = new Audio(); // empty shim
  4546.             if (onerror) onerror();
  4547.           }
  4548.           if (Browser.hasBlobConstructor) {
  4549.             try {
  4550.               var b = new Blob([byteArray], { type: getMimetype(name) });
  4551.             } catch(e) {
  4552.               return fail();
  4553.             }
  4554.             var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
  4555.             var audio = new Audio();
  4556.             audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
  4557.             audio.onerror = function(event) {
  4558.               if (done) return;
  4559.               console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
  4560.               function encode64(data) {
  4561.                 var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  4562.                 var PAD = '=';
  4563.                 var ret = '';
  4564.                 var leftchar = 0;
  4565.                 var leftbits = 0;
  4566.                 for (var i = 0; i < data.length; i++) {
  4567.                   leftchar = (leftchar << 8) | data[i];
  4568.                   leftbits += 8;
  4569.                   while (leftbits >= 6) {
  4570.                     var curr = (leftchar >> (leftbits-6)) & 0x3f;
  4571.                     leftbits -= 6;
  4572.                     ret += BASE[curr];
  4573.                   }
  4574.                 }
  4575.                 if (leftbits == 2) {
  4576.                   ret += BASE[(leftchar&3) << 4];
  4577.                   ret += PAD + PAD;
  4578.                 } else if (leftbits == 4) {
  4579.                   ret += BASE[(leftchar&0xf) << 2];
  4580.                   ret += PAD;
  4581.                 }
  4582.                 return ret;
  4583.               }
  4584.               audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
  4585.               finish(audio); // we don't wait for confirmation this worked - but it's worth trying
  4586.             };
  4587.             audio.src = url;
  4588.             // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
  4589.             setTimeout(function() {
  4590.               finish(audio); // try to use it even though it is not necessarily ready to play
  4591.             }, 10000);
  4592.           } else {
  4593.             return fail();
  4594.           }
  4595.         };
  4596.         Module['preloadPlugins'].push(audioPlugin);
  4597.         // Canvas event setup
  4598.         var canvas = Module['canvas'];
  4599.         canvas.requestPointerLock = canvas['requestPointerLock'] ||
  4600.                                     canvas['mozRequestPointerLock'] ||
  4601.                                     canvas['webkitRequestPointerLock'];
  4602.         canvas.exitPointerLock = document['exitPointerLock'] ||
  4603.                                  document['mozExitPointerLock'] ||
  4604.                                  document['webkitExitPointerLock'];
  4605.         canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
  4606.         function pointerLockChange() {
  4607.           Browser.pointerLock = document['pointerLockElement'] === canvas ||
  4608.                                 document['mozPointerLockElement'] === canvas ||
  4609.                                 document['webkitPointerLockElement'] === canvas;
  4610.         }
  4611.         document.addEventListener('pointerlockchange', pointerLockChange, false);
  4612.         document.addEventListener('mozpointerlockchange', pointerLockChange, false);
  4613.         document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
  4614.         if (Module['elementPointerLock']) {
  4615.           canvas.addEventListener("click", function(ev) {
  4616.             if (!Browser.pointerLock && canvas.requestPointerLock) {
  4617.               canvas.requestPointerLock();
  4618.               ev.preventDefault();
  4619.             }
  4620.           }, false);
  4621.         }
  4622.       },createContext:function (canvas, useWebGL, setInModule) {
  4623.         var ctx;
  4624.         try {
  4625.           if (useWebGL) {
  4626.             ctx = canvas.getContext('experimental-webgl', {
  4627.               alpha: false
  4628.             });
  4629.           } else {
  4630.             ctx = canvas.getContext('2d');
  4631.           }
  4632.           if (!ctx) throw ':(';
  4633.         } catch (e) {
  4634.           Module.print('Could not create canvas - ' + e);
  4635.           return null;
  4636.         }
  4637.         if (useWebGL) {
  4638.           // Set the background of the WebGL canvas to black
  4639.           canvas.style.backgroundColor = "black";
  4640.           // Warn on context loss
  4641.           canvas.addEventListener('webglcontextlost', function(event) {
  4642.             alert('WebGL context lost. You will need to reload the page.');
  4643.           }, false);
  4644.         }
  4645.         if (setInModule) {
  4646.           Module.ctx = ctx;
  4647.           Module.useWebGL = useWebGL;
  4648.           Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
  4649.           Browser.init();
  4650.         }
  4651.         return ctx;
  4652.       },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) {
  4653.         this.lockPointer = lockPointer;
  4654.         this.resizeCanvas = resizeCanvas;
  4655.         if (typeof this.lockPointer === 'undefined') this.lockPointer = true;
  4656.         if (typeof this.resizeCanvas === 'undefined') this.resizeCanvas = false;
  4657.         var canvas = Module['canvas'];
  4658.         function fullScreenChange() {
  4659.           Browser.isFullScreen = false;
  4660.           if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
  4661.                document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
  4662.                document['fullScreenElement'] || document['fullscreenElement']) === canvas) {
  4663.             canvas.cancelFullScreen = document['cancelFullScreen'] ||
  4664.                                       document['mozCancelFullScreen'] ||
  4665.                                       document['webkitCancelFullScreen'];
  4666.             canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
  4667.             if (Browser.lockPointer) canvas.requestPointerLock();
  4668.             Browser.isFullScreen = true;
  4669.             if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
  4670.           } else if (Browser.resizeCanvas){
  4671.             Browser.setWindowedCanvasSize();
  4672.           }
  4673.           if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
  4674.         }
  4675.         if (!this.fullScreenHandlersInstalled) {
  4676.           this.fullScreenHandlersInstalled = true;
  4677.           document.addEventListener('fullscreenchange', fullScreenChange, false);
  4678.           document.addEventListener('mozfullscreenchange', fullScreenChange, false);
  4679.           document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
  4680.         }
  4681.         canvas.requestFullScreen = canvas['requestFullScreen'] ||
  4682.                                    canvas['mozRequestFullScreen'] ||
  4683.                                    (canvas['webkitRequestFullScreen'] ? function() { canvas['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
  4684.         canvas.requestFullScreen(); 
  4685.       },requestAnimationFrame:function (func) {
  4686.         if (!window.requestAnimationFrame) {
  4687.           window.requestAnimationFrame = window['requestAnimationFrame'] ||
  4688.                                          window['mozRequestAnimationFrame'] ||
  4689.                                          window['webkitRequestAnimationFrame'] ||
  4690.                                          window['msRequestAnimationFrame'] ||
  4691.                                          window['oRequestAnimationFrame'] ||
  4692.                                          window['setTimeout'];
  4693.         }
  4694.         window.requestAnimationFrame(func);
  4695.       },getMovementX:function (event) {
  4696.         return event['movementX'] ||
  4697.                event['mozMovementX'] ||
  4698.                event['webkitMovementX'] ||
  4699.                0;
  4700.       },getMovementY:function (event) {
  4701.         return event['movementY'] ||
  4702.                event['mozMovementY'] ||
  4703.                event['webkitMovementY'] ||
  4704.                0;
  4705.       },xhrLoad:function (url, onload, onerror) {
  4706.         var xhr = new XMLHttpRequest();
  4707.         xhr.open('GET', url, true);
  4708.         xhr.responseType = 'arraybuffer';
  4709.         xhr.onload = function() {
  4710.           if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
  4711.             onload(xhr.response);
  4712.           } else {
  4713.             onerror();
  4714.           }
  4715.         };
  4716.         xhr.onerror = onerror;
  4717.         xhr.send(null);
  4718.       },asyncLoad:function (url, onload, onerror, noRunDep) {
  4719.         Browser.xhrLoad(url, function(arrayBuffer) {
  4720.           assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
  4721.           onload(new Uint8Array(arrayBuffer));
  4722.           if (!noRunDep) removeRunDependency('al ' + url);
  4723.         }, function(event) {
  4724.           if (onerror) {
  4725.             onerror();
  4726.           } else {
  4727.             throw 'Loading data file "' + url + '" failed.';
  4728.           }
  4729.         });
  4730.         if (!noRunDep) addRunDependency('al ' + url);
  4731.       },resizeListeners:[],updateResizeListeners:function () {
  4732.         var canvas = Module['canvas'];
  4733.         Browser.resizeListeners.forEach(function(listener) {
  4734.           listener(canvas.width, canvas.height);
  4735.         });
  4736.       },setCanvasSize:function (width, height, noUpdates) {
  4737.         var canvas = Module['canvas'];
  4738.         canvas.width = width;
  4739.         canvas.height = height;
  4740.         if (!noUpdates) Browser.updateResizeListeners();
  4741.       },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
  4742.         var canvas = Module['canvas'];
  4743.         this.windowedWidth = canvas.width;
  4744.         this.windowedHeight = canvas.height;
  4745.         canvas.width = screen.width;
  4746.         canvas.height = screen.height;
  4747.         var flags = HEAP[SDL.screen+Runtime.QUANTUM_SIZE*0];
  4748.         flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
  4749.         HEAP[SDL.screen+Runtime.QUANTUM_SIZE*0]=flags
  4750.         Browser.updateResizeListeners();
  4751.       },setWindowedCanvasSize:function () {
  4752.         var canvas = Module['canvas'];
  4753.         canvas.width = this.windowedWidth;
  4754.         canvas.height = this.windowedHeight;
  4755.         var flags = HEAP[SDL.screen+Runtime.QUANTUM_SIZE*0];
  4756.         flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
  4757.         HEAP[SDL.screen+Runtime.QUANTUM_SIZE*0]=flags
  4758.         Browser.updateResizeListeners();
  4759.       }};
  4760. ___buildEnvironment(ENV);
  4761. Module["requestFullScreen"] = function(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };
  4762.   Module["requestAnimationFrame"] = function(func) { Browser.requestAnimationFrame(func) };
  4763.   Module["pauseMainLoop"] = function() { Browser.mainLoop.pause() };
  4764.   Module["resumeMainLoop"] = function() { Browser.mainLoop.resume() };
  4765. STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
  4766. staticSealed = true; // seal the static portion of memory
  4767. STACK_MAX = STACK_BASE + 5242880;
  4768. DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
  4769. assert(DYNAMIC_BASE < TOTAL_MEMORY); // Stack must fit in TOTAL_MEMORY; allocations from here on may enlarge TOTAL_MEMORY
  4770. var FUNCTION_TABLE = [0,0,__ZL31hb_font_get_glyph_v_kerning_nilP9hb_font_tPvjjS1_,0,__ZL30normalization_preference_indicPK23hb_segment_properties_t,0,__ZN11hb_ot_map_t13feature_map_t3cmpEPKS0_S2_,0,__ZL23collect_features_arabicP21hb_ot_shape_planner_t,0,__ZL21compare_myanmar_orderPK15hb_glyph_info_tS1_
  4771. ,0,__ZN19hb_ot_map_builder_t14feature_info_t3cmpEPKS0_S2_,0,__ZL30hb_font_get_glyph_h_origin_nilP9hb_font_tPvjPiS2_S1_,0,__ZL15setup_masks_seaPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t,0,__ZL17hb_ucdn_decomposeP18hb_unicode_funcs_tjPjS1_Pv,0,__ZL17setup_masks_indicPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t
  4772. ,0,__ZL17decompose_unicodePK31hb_ot_shape_normalize_context_tjPjS2_,0,__ZZNK2OT13SortedArrayOfINS_6RecordINS_6ScriptEEEE6searchIjEEiRKT_ENS5_IjE3Cmp3cmpE_2PKjPKS3_,0,__ZL21arabic_fallback_shapePK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t,0,__ZL18data_create_arabicPK18hb_ot_shape_plan_t,0,__ZL23override_features_indicP21hb_ot_shape_planner_t
  4773. ,0,__ZL17hb_ucdn_mirroringP18hb_unicode_funcs_tjPv,0,_free,0,__ZL29hb_font_get_glyph_extents_nilP9hb_font_tPvjP18hb_glyph_extents_tS1_,0,__ZL35hb_font_get_glyph_contour_point_nilP9hb_font_tPvjjPiS2_S1_,0,__ZN11hb_ot_map_t12lookup_map_t3cmpEPKS0_S2_
  4774. ,0,__ZL32normalization_preference_myanmarPK23hb_segment_properties_t,0,__ZL16final_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t336,0,__ZL33_hb_face_for_data_reference_tableP9hb_face_tjPv,0,__ZL19data_destroy_arabicPv,0,__ZL25override_features_myanmarP21hb_ot_shape_planner_t
  4775. ,0,__ZL23compare_combining_classPK15hb_glyph_info_tS1_,0,__ZL30hb_font_get_glyph_v_origin_nilP9hb_font_tPvjPiS2_S1_,0,__ZL13compose_indicPK31hb_ot_shape_normalize_context_tjjPj,0,__ZL31hb_font_get_glyph_h_advance_nilP9hb_font_tPvjS1_,0,_hb_blob_destroy
  4776. ,0,__ZL18setup_masks_arabicPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t,0,__ZL28lang_compare_first_componentPKcS0_,0,__ZN2OTL11match_glyphEjRKNS_7IntTypeItLj2EEEPKv,0,__ZL19setup_masks_myanmarPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t,0,__hb_ot_shape
  4777. ,0,__ZZNK2OT13SortedArrayOfINS_11RangeRecordEE6searchIjEEiRKT_ENS3_IjE3Cmp3cmpE_1PKjPKS1_,0,__ZL28normalization_preference_seaPK23hb_segment_properties_t,0,__ZL23hb_ucdn_eastasian_widthP18hb_unicode_funcs_tjPv,0,__ZZNK2OT13SortedArrayOfINS_6RecordINS_7LangSysEEEE6searchIjEEiRKT_ENS5_IjE3Cmp3cmpEPKjPKS3_,0,__ZL23free_static_shaper_listv
  4778. ,0,__ZL22compare_info_codepointPK15hb_glyph_info_tS1_,0,__ZL15compose_defaultPK31hb_ot_shape_normalize_context_tjjPj,0,__ZN2OT11SubstLookup18apply_recurse_funcEPNS_18hb_apply_context_tEj,0,__ZL22collect_features_indicP21hb_ot_shape_planner_t,0,__ZL31hb_font_get_glyph_h_kerning_nilP9hb_font_tPvjjS1_
  4779. ,0,__ZL31hb_ucdn_decompose_compatibilityP18hb_unicode_funcs_tjPjPv,0,__ZL20collect_features_seaP21hb_ot_shape_planner_t,0,__ZL15setup_syllablesPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t,0,__ZL15setup_syllablesPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t334,0,__ZL14hb_ucdn_scriptP18hb_unicode_funcs_tjPv
  4780. ,0,__ZL24hb_ucdn_general_categoryP18hb_unicode_funcs_tjPv,0,__ZL33_hb_face_for_data_closure_destroyP26hb_face_for_data_closure_t,0,__ZL38hb_unicode_decompose_compatibility_nilP18hb_unicode_funcs_tjPjPv,0,__ZL32normalization_preference_defaultPK23hb_segment_properties_t,0,__ZN2OT7IntTypeItLj2EE3cmpEPKS1_S3_
  4781. ,0,__ZN2OT9PosLookup18apply_recurse_funcEPNS_18hb_apply_context_tEj,0,__ZN2OTL14match_coverageEjRKNS_7IntTypeItLj2EEEPKv,0,__ZL31hb_unicode_general_category_nilP18hb_unicode_funcs_tjPv,0,__ZL15hb_ucdn_composeP18hb_unicode_funcs_tjjPjPv,0,__ZL16final_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t
  4782. ,0,__ZL24collect_features_defaultP21hb_ot_shape_planner_t,0,__ZL18initial_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t353,0,__ZL23hb_ucdn_combining_classP18hb_unicode_funcs_tjPv,0,__ZL24collect_features_myanmarP21hb_ot_shape_planner_t,0,__ZL21hb_unicode_script_nilP18hb_unicode_funcs_tjPv
  4783. ,0,__ZL20preprocess_text_thaiPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t,0,__ZL31hb_font_get_glyph_v_advance_nilP9hb_font_tPvjS1_,0,__ZL15compose_unicodePK31hb_ot_shape_normalize_context_tjjPj,0,__ZL24hb_unicode_mirroring_nilP18hb_unicode_funcs_tjPv,0,__ZL10free_langsv
  4784. ,0,__ZL17compare_sea_orderPK15hb_glyph_info_tS1_,0,__hb_fallback_shape,0,__ZL30hb_unicode_eastasian_width_nilP18hb_unicode_funcs_tjPv,0,__ZL21override_features_seaP21hb_ot_shape_planner_t,0,__ZL31hb_font_get_glyph_from_name_nilP9hb_font_tPvPKciPjS1_
  4785. ,0,__ZL15setup_syllablesPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t352,0,__ZL19free_static_shapersv,0,_compare_mp,0,__ZL19compare_indic_orderPK15hb_glyph_info_tS1_,0,__ZL15decompose_indicPK31hb_ot_shape_normalize_context_tjPjS2_
  4786. ,0,__ZL26hb_font_get_glyph_name_nilP9hb_font_tPvjPcjS1_,0,__ZL21hb_font_get_glyph_nilP9hb_font_tPvjjPjS1_,0,__ZL30hb_unicode_combining_class_nilP18hb_unicode_funcs_tjPv,0,__ZL17data_create_indicPK18hb_ot_shape_plan_t,0,__ZL18data_destroy_indicPv
  4787. ,0,__ZL16final_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t355,0,__ZL18initial_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t,0,__ZN2OTL11match_classEjRKNS_7IntTypeItLj2EEEPKv,0,__ZZNK2OT13SortedArrayOfINS_7IntTypeItLj2EEEE6searchIjEEiRKT_ENS4_IjE3Cmp3cmpE_0PKjPKS2_,0,__ZL18initial_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t335,0,__ZL24hb_unicode_decompose_nilP18hb_unicode_funcs_tjPjS1_Pv,0,__ZL22hb_unicode_compose_nilP18hb_unicode_funcs_tjjPjPv,0];
  4788. // EMSCRIPTEN_START_FUNCS
  4789. function _hb_blob_get_empty() {
  4790.   return 111632;
  4791. }
  4792. function _hb_blob_create($data, $length, $mode, $user_data, $destroy) {
  4793.   var __stackBase__ = STACKTOP;
  4794.   STACKTOP = STACKTOP + 80 | 0;
  4795.   var $what_addr_i_i_i_i = __stackBase__;
  4796.   var $obj_addr_i_i_i_i = __stackBase__ + 4;
  4797.   var $func_addr_i_i_i_i = __stackBase__ + 8;
  4798.   var $level_addr_i_i_i_i = __stackBase__ + 12;
  4799.   var $level_dir_addr_i_i_i_i = __stackBase__ + 16;
  4800.   var $message_addr_i_i_i_i = __stackBase__ + 20;
  4801.   var $this_addr_i_i1_i = __stackBase__ + 24;
  4802.   var $function_addr_i_i_i = __stackBase__ + 28;
  4803.   var $obj_addr_i_i = __stackBase__ + 32;
  4804.   var $function_addr_i_i = __stackBase__ + 36;
  4805.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 40;
  4806.   var $this_addr_i1_i_i_i_i = __stackBase__ + 44;
  4807.   var $this_addr_i_i_i_i_i = __stackBase__ + 48;
  4808.   var $this_addr_i1_i_i_i = __stackBase__ + 52;
  4809.   var $this_addr_i_i_i_i = __stackBase__ + 56;
  4810.   var $v_addr_i_i_i_i = __stackBase__ + 60;
  4811.   var $this_addr_i_i_i = __stackBase__ + 64;
  4812.   var $size_addr_i_i = __stackBase__ + 68;
  4813.   var $obj_i_i = __stackBase__ + 72;
  4814.   var $obj_i = __stackBase__ + 76;
  4815.   var $retval;
  4816.   var $data_addr;
  4817.   var $length_addr;
  4818.   var $mode_addr;
  4819.   var $user_data_addr;
  4820.   var $destroy_addr;
  4821.   var $blob;
  4822.   $data_addr = $data;
  4823.   $length_addr = $length;
  4824.   $mode_addr = $mode;
  4825.   $user_data_addr = $user_data;
  4826.   $destroy_addr = $destroy;
  4827.   do {
  4828.     if (($length_addr | 0) != 0) {
  4829.       HEAP[$size_addr_i_i] = 68;
  4830.       var $5 = _calloc(1, HEAP[$size_addr_i_i]);
  4831.       HEAP[$obj_i_i] = $5;
  4832.       if ((HEAP[$obj_i_i] | 0) != 0) {
  4833.         HEAP[$this_addr_i_i_i] = HEAP[$obj_i_i];
  4834.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  4835.         HEAP[$this_addr_i_i_i_i] = $this1_i_i_i | 0;
  4836.         HEAP[$v_addr_i_i_i_i] = 1;
  4837.         HEAP[HEAP[$this_addr_i_i_i_i] | 0] = HEAP[$v_addr_i_i_i_i];
  4838.         HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i + 4 | 0;
  4839.         var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  4840.         HEAP[$this_addr_i_i_i_i_i] = $this1_i2_i_i_i | 0;
  4841.         HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] = 0;
  4842.         HEAP[$this_addr_i1_i_i_i_i] = $this1_i2_i_i_i + 4 | 0;
  4843.         HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  4844.         var $19 = HEAP[$this_addr_i_i_i_i_i_i];
  4845.         for (var $$dest = $19, $$stop = $$dest + 36; $$dest < $$stop; $$dest++) {
  4846.           HEAP[$$dest] = 0;
  4847.         }
  4848.       }
  4849.       HEAP[$obj_i] = HEAP[$obj_i_i];
  4850.       HEAP[$obj_addr_i_i] = HEAP[$obj_i];
  4851.       HEAP[$function_addr_i_i] = 110392;
  4852.       var $header_i_i = HEAP[$obj_addr_i_i] | 0;
  4853.       var $33 = HEAP[$function_addr_i_i];
  4854.       HEAP[$this_addr_i_i1_i] = $header_i_i;
  4855.       HEAP[$function_addr_i_i_i] = $33;
  4856.       if (($header_i_i | 0) != 0) {
  4857.         HEAP[$what_addr_i_i_i_i] = 104072;
  4858.         HEAP[$obj_addr_i_i_i_i] = $header_i_i;
  4859.         HEAP[$func_addr_i_i_i_i] = 0;
  4860.         HEAP[$level_addr_i_i_i_i] = 0;
  4861.         HEAP[$level_dir_addr_i_i_i_i] = 0;
  4862.         HEAP[$message_addr_i_i_i_i] = 104056;
  4863.       }
  4864.       var $54 = HEAP[$obj_i];
  4865.       $blob = $54;
  4866.       if (($54 | 0) == 0) {
  4867.         var $56 = $destroy_addr;
  4868.         break;
  4869.       }
  4870.       HEAP[$blob + 48 | 0] = $data_addr;
  4871.       HEAP[$blob + 52 | 0] = $length_addr;
  4872.       HEAP[$blob + 56 | 0] = $mode_addr;
  4873.       HEAP[$blob + 60 | 0] = $user_data_addr;
  4874.       HEAP[$blob + 64 | 0] = $destroy_addr;
  4875.       do {
  4876.         if ((HEAP[$blob + 56 | 0] | 0) == 0) {
  4877.           HEAP[$blob + 56 | 0] = 1;
  4878.           if (__ZL13_try_writableP9hb_blob_t($blob)) {
  4879.             break;
  4880.           }
  4881.           _hb_blob_destroy($blob);
  4882.           $retval = 111632;
  4883.           var $75 = $retval;
  4884.           STACKTOP = __stackBase__;
  4885.           return $75;
  4886.         }
  4887.       } while (0);
  4888.       $retval = $blob;
  4889.       var $75 = $retval;
  4890.       STACKTOP = __stackBase__;
  4891.       return $75;
  4892.     } else {
  4893.       var $56 = $destroy;
  4894.     }
  4895.   } while (0);
  4896.   var $56;
  4897.   if (($56 | 0) != 0) {
  4898.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  4899.   }
  4900.   $retval = 111632;
  4901.   var $75 = $retval;
  4902.   STACKTOP = __stackBase__;
  4903.   return $75;
  4904. }
  4905. function __ZL13_try_writableP9hb_blob_t($blob) {
  4906.   var __stackBase__ = STACKTOP;
  4907.   STACKTOP = STACKTOP + 249 | 0;
  4908.   var $blob_addr_i8 = __stackBase__;
  4909.   var $what_addr_i1 = __stackBase__ + 4;
  4910.   var $obj_addr_i2 = __stackBase__ + 8;
  4911.   var $func_addr_i3 = __stackBase__ + 12;
  4912.   var $level_addr_i5 = __stackBase__ + 16;
  4913.   var $level_dir_addr_i6 = __stackBase__ + 20;
  4914.   var $message_addr_i7 = __stackBase__ + 24;
  4915.   var $what_addr_i = __stackBase__ + 28;
  4916.   var $obj_addr_i = __stackBase__ + 32;
  4917.   var $func_addr_i = __stackBase__ + 36;
  4918.   var $level_addr_i = __stackBase__ + 40;
  4919.   var $level_dir_addr_i = __stackBase__ + 44;
  4920.   var $message_addr_i = __stackBase__ + 48;
  4921.   var $what_addr_i22_i_i = __stackBase__ + 52;
  4922.   var $obj_addr_i23_i_i = __stackBase__ + 56;
  4923.   var $func_addr_i24_i_i = __stackBase__ + 60;
  4924.   var $level_addr_i26_i_i = __stackBase__ + 64;
  4925.   var $level_dir_addr_i27_i_i = __stackBase__ + 68;
  4926.   var $message_addr_i28_i_i = __stackBase__ + 72;
  4927.   var $what_addr_i15_i_i = __stackBase__ + 76;
  4928.   var $obj_addr_i16_i_i = __stackBase__ + 80;
  4929.   var $func_addr_i17_i_i = __stackBase__ + 84;
  4930.   var $level_addr_i19_i_i = __stackBase__ + 88;
  4931.   var $level_dir_addr_i20_i_i = __stackBase__ + 92;
  4932.   var $message_addr_i21_i_i = __stackBase__ + 96;
  4933.   var $what_addr_i8_i_i = __stackBase__ + 100;
  4934.   var $obj_addr_i9_i_i = __stackBase__ + 104;
  4935.   var $func_addr_i10_i_i = __stackBase__ + 108;
  4936.   var $level_addr_i12_i_i = __stackBase__ + 112;
  4937.   var $level_dir_addr_i13_i_i = __stackBase__ + 116;
  4938.   var $message_addr_i14_i_i = __stackBase__ + 120;
  4939.   var $what_addr_i1_i_i = __stackBase__ + 124;
  4940.   var $obj_addr_i2_i_i = __stackBase__ + 128;
  4941.   var $func_addr_i3_i_i = __stackBase__ + 132;
  4942.   var $level_addr_i5_i_i = __stackBase__ + 136;
  4943.   var $level_dir_addr_i6_i_i = __stackBase__ + 140;
  4944.   var $message_addr_i7_i_i = __stackBase__ + 144;
  4945.   var $what_addr_i_i_i = __stackBase__ + 148;
  4946.   var $obj_addr_i_i_i = __stackBase__ + 152;
  4947.   var $func_addr_i_i_i = __stackBase__ + 156;
  4948.   var $level_addr_i_i_i = __stackBase__ + 160;
  4949.   var $level_dir_addr_i_i_i = __stackBase__ + 164;
  4950.   var $message_addr_i_i_i = __stackBase__ + 168;
  4951.   var $retval_i_i = __stackBase__ + 172;
  4952.   var $blob_addr_i_i = __stackBase__ + 176;
  4953.   var $pagesize_i_i = __stackBase__ + 180;
  4954.   var $mask_i_i = __stackBase__ + 184;
  4955.   var $length_i_i = __stackBase__ + 188;
  4956.   var $addr_i_i = __stackBase__ + 192;
  4957.   var $what_addr_i1_i = __stackBase__ + 196;
  4958.   var $obj_addr_i2_i = __stackBase__ + 200;
  4959.   var $func_addr_i3_i = __stackBase__ + 204;
  4960.   var $level_addr_i5_i = __stackBase__ + 208;
  4961.   var $level_dir_addr_i6_i = __stackBase__ + 212;
  4962.   var $message_addr_i7_i = __stackBase__ + 216;
  4963.   var $retval_i = __stackBase__ + 244;
  4964.   var $blob_addr_i = __stackBase__ + 245;
  4965.   var $retval;
  4966.   var $blob_addr;
  4967.   var $new_data;
  4968.   $blob_addr = $blob;
  4969.   if (HEAP[$blob_addr + 44 | 0] & 1) {
  4970.     $retval = 0;
  4971.     var $199 = $retval;
  4972.     STACKTOP = __stackBase__;
  4973.     return $199;
  4974.   }
  4975.   if ((HEAP[$blob_addr + 56 | 0] | 0) == 2) {
  4976.     $retval = 1;
  4977.     var $199 = $retval;
  4978.     STACKTOP = __stackBase__;
  4979.     return $199;
  4980.   }
  4981.   do {
  4982.     if ((HEAP[$blob_addr + 56 | 0] | 0) == 3) {
  4983.       HEAP[$blob_addr_i] = $blob_addr;
  4984.       var $10 = HEAP[$blob_addr_i];
  4985.       HEAP[__stackBase__ + 220] = 103232;
  4986.       HEAP[__stackBase__ + 224] = $10;
  4987.       HEAP[__stackBase__ + 228] = 109208;
  4988.       HEAP[__stackBase__ + 232] = 0;
  4989.       HEAP[__stackBase__ + 236] = 0;
  4990.       HEAP[__stackBase__ + 240] = 102504;
  4991.       HEAP[$blob_addr_i_i] = HEAP[$blob_addr_i];
  4992.       var $call_i_i = _sysconf(8);
  4993.       HEAP[$pagesize_i_i] = $call_i_i;
  4994.       var $32 = HEAP[$blob_addr_i_i];
  4995.       do {
  4996.         if (-1 == (HEAP[$pagesize_i_i] | 0)) {
  4997.           var $call1_i_i = ___errno_location();
  4998.           _strerror(HEAP[$call1_i_i]);
  4999.           HEAP[$what_addr_i_i_i] = 103232;
  5000.           HEAP[$obj_addr_i_i_i] = $32;
  5001.           HEAP[$func_addr_i_i_i] = 109152;
  5002.           HEAP[$level_addr_i_i_i] = 0;
  5003.           HEAP[$level_dir_addr_i_i_i] = 0;
  5004.           HEAP[$message_addr_i_i_i] = 102384;
  5005.           HEAP[$retval_i_i] = 0;
  5006.           var $118 = 0;
  5007.         } else {
  5008.           HEAP[$what_addr_i22_i_i] = 103232;
  5009.           HEAP[$obj_addr_i23_i_i] = $32;
  5010.           HEAP[$func_addr_i24_i_i] = 109152;
  5011.           HEAP[$level_addr_i26_i_i] = 0;
  5012.           HEAP[$level_dir_addr_i27_i_i] = 0;
  5013.           HEAP[$message_addr_i28_i_i] = 102336;
  5014.           HEAP[$mask_i_i] = HEAP[$pagesize_i_i] - 1 ^ -1;
  5015.           HEAP[$addr_i_i] = HEAP[HEAP[$blob_addr_i_i] + 48 | 0] & HEAP[$mask_i_i];
  5016.           HEAP[$length_i_i] = (HEAP[HEAP[$blob_addr_i_i] + 48 | 0] - 1 + HEAP[HEAP[$blob_addr_i_i] + 52 | 0] + HEAP[$pagesize_i_i] & HEAP[$mask_i_i]) - HEAP[$addr_i_i] | 0;
  5017.           var $74 = HEAP[$blob_addr_i_i];
  5018.           HEAP[$what_addr_i15_i_i] = 103232;
  5019.           HEAP[$obj_addr_i16_i_i] = $74;
  5020.           HEAP[$func_addr_i17_i_i] = 109152;
  5021.           HEAP[$level_addr_i19_i_i] = 0;
  5022.           HEAP[$level_dir_addr_i20_i_i] = 0;
  5023.           HEAP[$message_addr_i21_i_i] = 102240;
  5024.           var $cmp9_i_i = -1 == (_mprotect(HEAP[$addr_i_i], HEAP[$length_i_i], 3) | 0);
  5025.           var $89 = HEAP[$blob_addr_i_i];
  5026.           if ($cmp9_i_i) {
  5027.             var $call11_i_i = ___errno_location();
  5028.             _strerror(HEAP[$call11_i_i]);
  5029.             HEAP[$what_addr_i8_i_i] = 103232;
  5030.             HEAP[$obj_addr_i9_i_i] = $89;
  5031.             HEAP[$func_addr_i10_i_i] = 109152;
  5032.             HEAP[$level_addr_i12_i_i] = 0;
  5033.             HEAP[$level_dir_addr_i13_i_i] = 0;
  5034.             HEAP[$message_addr_i14_i_i] = 104032;
  5035.             HEAP[$retval_i_i] = 0;
  5036.             var $118 = 0;
  5037.             break;
  5038.           } else {
  5039.             HEAP[$89 + 56 | 0] = 2;
  5040.             var $105 = HEAP[$blob_addr_i_i];
  5041.             HEAP[$what_addr_i1_i_i] = 103232;
  5042.             HEAP[$obj_addr_i2_i_i] = $105;
  5043.             HEAP[$func_addr_i3_i_i] = 109152;
  5044.             HEAP[$level_addr_i5_i_i] = 0;
  5045.             HEAP[$level_dir_addr_i6_i_i] = 0;
  5046.             HEAP[$message_addr_i7_i_i] = 103952;
  5047.             HEAP[$retval_i_i] = 1;
  5048.             var $118 = 1;
  5049.             break;
  5050.           }
  5051.         }
  5052.       } while (0);
  5053.       var $118;
  5054.       if (($118 | 0) == 0) {
  5055.         var $126 = HEAP[$blob_addr_i];
  5056.         HEAP[$what_addr_i1_i] = 103232;
  5057.         HEAP[$obj_addr_i2_i] = $126;
  5058.         HEAP[$func_addr_i3_i] = 109208;
  5059.         HEAP[$level_addr_i5_i] = 0;
  5060.         HEAP[$level_dir_addr_i6_i] = 0;
  5061.         HEAP[$message_addr_i7_i] = 102440;
  5062.         HEAP[HEAP[$blob_addr_i] + 56 | 0] = 1;
  5063.         HEAP[$retval_i] = 0;
  5064.         break;
  5065.       }
  5066.       HEAP[$retval_i] = 1;
  5067.       $retval = 1;
  5068.       var $199 = $retval;
  5069.       STACKTOP = __stackBase__;
  5070.       return $199;
  5071.     }
  5072.   } while (0);
  5073.   if ((HEAP[$blob_addr + 56 | 0] | 0) == 2) {
  5074.     $retval = 1;
  5075.     var $199 = $retval;
  5076.     STACKTOP = __stackBase__;
  5077.     return $199;
  5078.   }
  5079.   HEAP[$what_addr_i] = 103232;
  5080.   HEAP[$obj_addr_i] = $blob_addr;
  5081.   HEAP[$func_addr_i] = 110680;
  5082.   HEAP[$level_addr_i] = 0;
  5083.   HEAP[$level_dir_addr_i] = 0;
  5084.   HEAP[$message_addr_i] = 102920;
  5085.   $new_data = _malloc(HEAP[$blob_addr + 52 | 0]);
  5086.   if (($new_data | 0) == 0) {
  5087.     $retval = 0;
  5088.     var $199 = $retval;
  5089.     STACKTOP = __stackBase__;
  5090.     return $199;
  5091.   }
  5092.   HEAP[$what_addr_i1] = 103232;
  5093.   HEAP[$obj_addr_i2] = $blob_addr;
  5094.   HEAP[$func_addr_i3] = 110680;
  5095.   HEAP[$level_addr_i5] = 0;
  5096.   HEAP[$level_dir_addr_i6] = 0;
  5097.   HEAP[$message_addr_i7] = 102576;
  5098.   var $177 = $new_data;
  5099.   var $179 = HEAP[$blob_addr + 48 | 0];
  5100.   var $181 = HEAP[$blob_addr + 52 | 0];
  5101.   for (var $$src = $179, $$dest = $177, $$stop = $$src + $181; $$src < $$stop; $$src++, $$dest++) {
  5102.     HEAP[$$dest] = HEAP[$$src];
  5103.   }
  5104.   HEAP[$blob_addr_i8] = $blob_addr;
  5105.   if ((HEAP[HEAP[$blob_addr_i8] + 64 | 0] | 0) != 0) {
  5106.     FUNCTION_TABLE[HEAP[HEAP[$blob_addr_i8] + 64 | 0]](HEAP[HEAP[$blob_addr_i8] + 60 | 0]);
  5107.     HEAP[HEAP[$blob_addr_i8] + 60 | 0] = 0;
  5108.     HEAP[HEAP[$blob_addr_i8] + 64 | 0] = 0;
  5109.   }
  5110.   HEAP[$blob_addr + 56 | 0] = 2;
  5111.   HEAP[$blob_addr + 48 | 0] = $new_data;
  5112.   HEAP[$blob_addr + 60 | 0] = $new_data;
  5113.   HEAP[$blob_addr + 64 | 0] = 34;
  5114.   $retval = 1;
  5115.   var $199 = $retval;
  5116.   STACKTOP = __stackBase__;
  5117.   return $199;
  5118. }
  5119. function _hb_blob_reference($blob) {
  5120.   var __stackBase__ = STACKTOP;
  5121.   STACKTOP = STACKTOP + 60 | 0;
  5122.   var $this_addr_i1_i_i = __stackBase__;
  5123.   var $this_addr_i_i_i_i = __stackBase__ + 4;
  5124.   var $this_addr_i_i1_i = __stackBase__ + 8;
  5125.   var $this_addr_i_i = __stackBase__ + 12;
  5126.   var $this_addr_i_i_i = __stackBase__ + 40;
  5127.   var $obj_addr_i_i = __stackBase__ + 48;
  5128.   var $function_addr_i_i = __stackBase__ + 52;
  5129.   var $obj_addr_i = __stackBase__ + 56;
  5130.   HEAP[$obj_addr_i] = $blob;
  5131.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  5132.   HEAP[$function_addr_i_i] = 109304;
  5133.   var $6 = HEAP[$function_addr_i_i];
  5134.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  5135.   HEAP[__stackBase__ + 44] = $6;
  5136.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  5137.   if (($this1_i_i_i | 0) != 0) {
  5138.     HEAP[__stackBase__ + 16] = 104072;
  5139.     HEAP[__stackBase__ + 20] = $this1_i_i_i;
  5140.     HEAP[__stackBase__ + 24] = 0;
  5141.     HEAP[__stackBase__ + 28] = 0;
  5142.     HEAP[__stackBase__ + 32] = 0;
  5143.     HEAP[__stackBase__ + 36] = 104056;
  5144.   }
  5145.   var $header_i = HEAP[$obj_addr_i] | 0;
  5146.   HEAP[$this_addr_i_i] = $header_i;
  5147.   if (($header_i | 0) == 0) {
  5148.     var $38 = $this_addr_i_i;
  5149.     var $39 = HEAP[$obj_addr_i];
  5150.     var $40 = $obj_addr_i;
  5151.     STACKTOP = __stackBase__;
  5152.     return $39;
  5153.   }
  5154.   HEAP[$this_addr_i_i1_i] = $header_i;
  5155.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  5156.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  5157.     var $38 = $this_addr_i_i;
  5158.     var $39 = HEAP[$obj_addr_i];
  5159.     var $40 = $obj_addr_i;
  5160.     STACKTOP = __stackBase__;
  5161.     return $39;
  5162.   }
  5163.   HEAP[$this_addr_i1_i_i] = $header_i | 0;
  5164.   var $ref_count_i3_i_i = HEAP[$this_addr_i1_i_i] | 0;
  5165.   HEAP[$ref_count_i3_i_i] = HEAP[$ref_count_i3_i_i] + 1 | 0;
  5166.   var $38 = $this_addr_i_i;
  5167.   var $39 = HEAP[$obj_addr_i];
  5168.   var $40 = $obj_addr_i;
  5169.   STACKTOP = __stackBase__;
  5170.   return $39;
  5171. }
  5172. function _hb_blob_destroy($blob) {
  5173.   var __stackBase__ = STACKTOP;
  5174.   STACKTOP = STACKTOP + 48 | 0;
  5175.   var $blob_addr_i = __stackBase__;
  5176.   var $this_addr_i_i_i = __stackBase__ + 28;
  5177.   var $obj_addr_i_i = __stackBase__ + 36;
  5178.   var $function_addr_i_i = __stackBase__ + 40;
  5179.   var $obj_addr_i = __stackBase__ + 44;
  5180.   var $blob_addr;
  5181.   $blob_addr = $blob;
  5182.   HEAP[$obj_addr_i] = $blob_addr;
  5183.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  5184.   HEAP[$function_addr_i_i] = 109720;
  5185.   var $6 = HEAP[$function_addr_i_i];
  5186.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  5187.   HEAP[__stackBase__ + 32] = $6;
  5188.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  5189.   if (($this1_i_i_i | 0) != 0) {
  5190.     HEAP[__stackBase__ + 4] = 104072;
  5191.     HEAP[__stackBase__ + 8] = $this1_i_i_i;
  5192.     HEAP[__stackBase__ + 12] = 0;
  5193.     HEAP[__stackBase__ + 16] = 0;
  5194.     HEAP[__stackBase__ + 20] = 0;
  5195.     HEAP[__stackBase__ + 24] = 104056;
  5196.   }
  5197.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  5198.     STACKTOP = __stackBase__;
  5199.     return;
  5200.   }
  5201.   HEAP[$blob_addr_i] = $blob_addr;
  5202.   if ((HEAP[HEAP[$blob_addr_i] + 64 | 0] | 0) != 0) {
  5203.     FUNCTION_TABLE[HEAP[HEAP[$blob_addr_i] + 64 | 0]](HEAP[HEAP[$blob_addr_i] + 60 | 0]);
  5204.     HEAP[HEAP[$blob_addr_i] + 60 | 0] = 0;
  5205.     HEAP[HEAP[$blob_addr_i] + 64 | 0] = 0;
  5206.   }
  5207.   _free($blob_addr);
  5208.   STACKTOP = __stackBase__;
  5209.   return;
  5210. }
  5211. function _hb_blob_create_sub_blob($parent, $offset, $length) {
  5212.   var __stackBase__ = STACKTOP;
  5213.   STACKTOP = STACKTOP + 32 | 0;
  5214.   var $a_addr_i = __stackBase__;
  5215.   var $b_addr_i = __stackBase__ + 4;
  5216.   var $this_addr_i_i_i_i = __stackBase__ + 8;
  5217.   var $this_addr_i_i_i = __stackBase__ + 12;
  5218.   var $obj_addr_i_i = __stackBase__ + 16;
  5219.   var $blob_addr_i = __stackBase__ + 20;
  5220.   var $retval;
  5221.   var $parent_addr;
  5222.   var $offset_addr;
  5223.   var $length_addr = __stackBase__ + 24;
  5224.   var $ref_tmp = __stackBase__ + 28;
  5225.   $parent_addr = $parent;
  5226.   $offset_addr = $offset;
  5227.   HEAP[$length_addr] = $length;
  5228.   do {
  5229.     if ((HEAP[$length_addr] | 0) != 0) {
  5230.       if ($offset_addr >>> 0 >= HEAP[$parent_addr + 52 | 0] >>> 0) {
  5231.         break;
  5232.       }
  5233.       HEAP[$blob_addr_i] = $parent_addr;
  5234.       HEAP[$obj_addr_i_i] = HEAP[$blob_addr_i];
  5235.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  5236.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  5237.       if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  5238.         HEAP[HEAP[$blob_addr_i] + 44 | 0] = 1;
  5239.       }
  5240.       var $add_ptr = HEAP[$parent_addr + 48 | 0] + $offset_addr | 0;
  5241.       HEAP[$ref_tmp] = HEAP[$parent_addr + 52 | 0] - $offset_addr | 0;
  5242.       HEAP[$a_addr_i] = $length_addr;
  5243.       HEAP[$b_addr_i] = $ref_tmp;
  5244.       $retval = _hb_blob_create($add_ptr, HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]], 1, _hb_blob_reference($parent_addr), 60);
  5245.       var $38 = $retval;
  5246.       STACKTOP = __stackBase__;
  5247.       return $38;
  5248.     }
  5249.   } while (0);
  5250.   $retval = 111632;
  5251.   var $38 = $retval;
  5252.   STACKTOP = __stackBase__;
  5253.   return $38;
  5254. }
  5255. function __ZN18hb_object_header_t7destroyEv($this) {
  5256.   var __stackBase__ = STACKTOP;
  5257.   STACKTOP = STACKTOP + 84 | 0;
  5258.   var $this_addr_i8 = __stackBase__;
  5259.   var $this_addr_i5 = __stackBase__ + 4;
  5260.   var $this_addr_i1_i = __stackBase__ + 8;
  5261.   var $this_addr_i37_i_i = __stackBase__ + 12;
  5262.   var $this_addr_i33_i_i = __stackBase__ + 16;
  5263.   var $this_addr_i29_i_i = __stackBase__ + 20;
  5264.   var $this_addr_i21_i_i = __stackBase__ + 24;
  5265.   var $this_addr_i18_i_i = __stackBase__ + 28;
  5266.   var $i_addr_i_i_i = __stackBase__ + 32;
  5267.   var $this_addr_i6_i_i = __stackBase__ + 36;
  5268.   var $this_addr_i3_i_i = __stackBase__ + 40;
  5269.   var $this_addr_i1_i_i = __stackBase__ + 44;
  5270.   var $this_addr_i_i_i = __stackBase__ + 48;
  5271.   var $this_addr_i_i1 = __stackBase__ + 52;
  5272.   var $l_addr_i_i = __stackBase__ + 56;
  5273.   var $old_i_i = __stackBase__ + 60;
  5274.   var $this_addr_i2 = __stackBase__ + 72;
  5275.   var $this_addr_i_i = __stackBase__ + 76;
  5276.   var $this_addr_i = __stackBase__ + 80;
  5277.   var $retval;
  5278.   var $this1 = $this;
  5279.   do {
  5280.     if (($this1 | 0) != 0) {
  5281.       HEAP[$this_addr_i] = $this1;
  5282.       HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  5283.       if ((HEAP[HEAP[$this_addr_i_i] | 0] | 0) == -1) {
  5284.         break;
  5285.       }
  5286.       HEAP[$this_addr_i5] = $this1 | 0;
  5287.       var $ref_count_i7 = HEAP[$this_addr_i5] | 0;
  5288.       HEAP[$ref_count_i7] = HEAP[$ref_count_i7] - 1 | 0;
  5289.       if ((HEAP[$ref_count_i7] + 1 | 0) != 1) {
  5290.         $retval = 0;
  5291.         var $69 = $retval;
  5292.         STACKTOP = __stackBase__;
  5293.         return $69;
  5294.       }
  5295.       HEAP[$this_addr_i8] = $this1 | 0;
  5296.       HEAP[HEAP[$this_addr_i8] | 0] = -1;
  5297.       HEAP[$this_addr_i2] = $this1 + 4 | 0;
  5298.       var $this1_i3 = HEAP[$this_addr_i2];
  5299.       HEAP[$this_addr_i_i1] = $this1_i3 + 4 | 0;
  5300.       HEAP[$l_addr_i_i] = $this1_i3 | 0;
  5301.       var $this1_i_i4 = HEAP[$this_addr_i_i1];
  5302.       if ((HEAP[$this1_i_i4 | 0] | 0) != 0) {
  5303.         HEAP[$this_addr_i1_i_i] = HEAP[$l_addr_i_i];
  5304.         var $this1_i2_i_i = HEAP[$this_addr_i1_i_i];
  5305.         var $m_i_i_i = $this1_i2_i_i | 0;
  5306.         while (1) {
  5307.           if ((HEAP[$m_i_i_i] | 0) == 0) {
  5308.             break;
  5309.           }
  5310.         }
  5311.         var $m3_i_i_i = $this1_i2_i_i | 0;
  5312.         HEAP[$m3_i_i_i] = HEAP[$m3_i_i_i] + 1 | 0;
  5313.         var $len4_i_i = $this1_i_i4 | 0;
  5314.         var $items6_i_i = $this1_i_i4 | 0;
  5315.         L108 : do {
  5316.           if ((HEAP[$len4_i_i] | 0) != 0) {
  5317.             var $len8_i_i = $this1_i_i4 | 0;
  5318.             var $31 = $old_i_i;
  5319.             var $items9_i_i = $this1_i_i4 | 0;
  5320.             while (1) {
  5321.               var $sub_i_i = HEAP[$len8_i_i] - 1 | 0;
  5322.               HEAP[$this_addr_i18_i_i] = $items6_i_i;
  5323.               HEAP[$i_addr_i_i_i] = $sub_i_i;
  5324.               var $43 = HEAP[HEAP[$this_addr_i18_i_i] + 8 | 0] + (HEAP[$i_addr_i_i_i] * 12 & -1) | 0;
  5325.               for (var $$src = $43, $$dest = $31, $$stop = $$src + 12; $$src < $$stop; $$src++, $$dest++) {
  5326.                 HEAP[$$dest] = HEAP[$$src];
  5327.               }
  5328.               HEAP[$this_addr_i33_i_i] = $items9_i_i;
  5329.               var $len_i35_i_i = HEAP[$this_addr_i33_i_i] | 0;
  5330.               HEAP[$len_i35_i_i] = HEAP[$len_i35_i_i] - 1 | 0;
  5331.               HEAP[$this_addr_i37_i_i] = HEAP[$l_addr_i_i];
  5332.               var $m_i39_i_i = HEAP[$this_addr_i37_i_i] | 0;
  5333.               HEAP[$m_i39_i_i] = HEAP[$m_i39_i_i] - 1 | 0;
  5334.               HEAP[$this_addr_i29_i_i] = $old_i_i;
  5335.               var $this1_i30_i_i = HEAP[$this_addr_i29_i_i];
  5336.               if ((HEAP[$this1_i30_i_i + 8 | 0] | 0) != 0) {
  5337.                 FUNCTION_TABLE[HEAP[$this1_i30_i_i + 8 | 0]](HEAP[$this1_i30_i_i + 4 | 0]);
  5338.               }
  5339.               HEAP[$this_addr_i21_i_i] = HEAP[$l_addr_i_i];
  5340.               var $this1_i22_i_i = HEAP[$this_addr_i21_i_i];
  5341.               var $m_i23_i_i = $this1_i22_i_i | 0;
  5342.               while (1) {
  5343.                 if ((HEAP[$m_i23_i_i] | 0) == 0) {
  5344.                   break;
  5345.                 }
  5346.               }
  5347.               var $m3_i26_i_i = $this1_i22_i_i | 0;
  5348.               HEAP[$m3_i26_i_i] = HEAP[$m3_i26_i_i] + 1 | 0;
  5349.               if ((HEAP[$len4_i_i] | 0) == 0) {
  5350.                 break L108;
  5351.               }
  5352.             }
  5353.           }
  5354.         } while (0);
  5355.         HEAP[$this_addr_i6_i_i] = $items6_i_i;
  5356.         var $this1_i7_i_i = HEAP[$this_addr_i6_i_i];
  5357.         if ((HEAP[$this1_i7_i_i + 8 | 0] | 0) != ($this1_i7_i_i + 12 | 0)) {
  5358.           _free(HEAP[$this1_i7_i_i + 8 | 0]);
  5359.         }
  5360.         HEAP[$this1_i7_i_i + 8 | 0] = 0;
  5361.         HEAP[$this1_i7_i_i | 0] = 0;
  5362.         HEAP[$this1_i7_i_i + 4 | 0] = 0;
  5363.         HEAP[$this_addr_i3_i_i] = HEAP[$l_addr_i_i];
  5364.         var $m_i5_i_i = HEAP[$this_addr_i3_i_i] | 0;
  5365.         HEAP[$m_i5_i_i] = HEAP[$m_i5_i_i] - 1 | 0;
  5366.       } else {
  5367.         HEAP[$this_addr_i_i_i] = $this1_i_i4 | 0;
  5368.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  5369.         if ((HEAP[$this1_i_i_i + 8 | 0] | 0) != ($this1_i_i_i + 12 | 0)) {
  5370.           _free(HEAP[$this1_i_i_i + 8 | 0]);
  5371.         }
  5372.         HEAP[$this1_i_i_i + 8 | 0] = 0;
  5373.         HEAP[$this1_i_i_i | 0] = 0;
  5374.         HEAP[$this1_i_i_i + 4 | 0] = 0;
  5375.       }
  5376.       HEAP[$this_addr_i1_i] = $this1_i3 | 0;
  5377.       $retval = 1;
  5378.       var $69 = $retval;
  5379.       STACKTOP = __stackBase__;
  5380.       return $69;
  5381.     }
  5382.   } while (0);
  5383.   $retval = 0;
  5384.   var $69 = $retval;
  5385.   STACKTOP = __stackBase__;
  5386.   return $69;
  5387. }
  5388. function __ZN11hb_buffer_t13make_room_forEjj($this, $num_in, $num_out) {
  5389.   var $retval;
  5390.   var $num_out_addr;
  5391.   $num_out_addr = $num_out;
  5392.   var $this1 = $this;
  5393.   if (!__ZN11hb_buffer_t6ensureEj($this1, $num_out_addr + HEAP[$this1 + 88 | 0] | 0)) {
  5394.     $retval = 0;
  5395.     var $16 = $retval;
  5396.     return $16;
  5397.   }
  5398.   do {
  5399.     if ((HEAP[$this1 + 100 | 0] | 0) == (HEAP[$this1 + 96 | 0] | 0)) {
  5400.       if (($num_out_addr + HEAP[$this1 + 88 | 0] | 0) >>> 0 <= ($num_in + HEAP[$this1 + 80 | 0] | 0) >>> 0) {
  5401.         break;
  5402.       }
  5403.       if (HEAP[$this1 + 77 | 0] & 1) {
  5404.         HEAP[$this1 + 100 | 0] = HEAP[$this1 + 104 | 0];
  5405.         var $12 = HEAP[$this1 + 100 | 0];
  5406.         var $14 = HEAP[$this1 + 96 | 0];
  5407.         var $mul = HEAP[$this1 + 88 | 0] * 20 & -1;
  5408.         for (var $$src = $14, $$dest = $12, $$stop = $$src + $mul; $$src < $$stop; $$src++, $$dest++) {
  5409.           HEAP[$$dest] = HEAP[$$src];
  5410.         }
  5411.         break;
  5412.       } else {
  5413.         ___assert_func(102952, 133, 108840, 103776);
  5414.       }
  5415.     }
  5416.   } while (0);
  5417.   $retval = 1;
  5418.   var $16 = $retval;
  5419.   return $16;
  5420. }
  5421. function __ZN11hb_buffer_t14merge_clustersEjj($this, $start, $end) {
  5422.   var __stackBase__ = STACKTOP;
  5423.   STACKTOP = STACKTOP + 12 | 0;
  5424.   var $a_addr_i = __stackBase__;
  5425.   var $b_addr_i = __stackBase__ + 4;
  5426.   var $start_addr;
  5427.   var $end_addr;
  5428.   var $cluster = __stackBase__ + 8;
  5429.   var $i;
  5430.   var $i34;
  5431.   var $i54;
  5432.   $start_addr = $start;
  5433.   $end_addr = $end;
  5434.   var $this1 = $this;
  5435.   if (($end_addr - $start_addr | 0) >>> 0 < 2) {
  5436.     STACKTOP = __stackBase__;
  5437.     return;
  5438.   }
  5439.   HEAP[$cluster] = HEAP[HEAP[$this1 + 96 | 0] + ($start_addr * 20 & -1) + 8 | 0];
  5440.   $i = $start_addr + 1 | 0;
  5441.   L143 : do {
  5442.     if ($i >>> 0 < $end_addr >>> 0) {
  5443.       var $info4 = $this1 + 96 | 0;
  5444.       while (1) {
  5445.         var $cluster6 = HEAP[$info4] + ($i * 20 & -1) + 8 | 0;
  5446.         HEAP[$a_addr_i] = $cluster;
  5447.         HEAP[$b_addr_i] = $cluster6;
  5448.         HEAP[$cluster] = HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]];
  5449.         $i = $i + 1 | 0;
  5450.         if ($i >>> 0 >= $end_addr >>> 0) {
  5451.           break L143;
  5452.         }
  5453.       }
  5454.     }
  5455.   } while (0);
  5456.   var $len = $this1 + 84 | 0;
  5457.   L148 : do {
  5458.     if ($end_addr >>> 0 < HEAP[$len] >>> 0) {
  5459.       var $info9 = $this1 + 96 | 0;
  5460.       var $info12 = $this1 + 96 | 0;
  5461.       while (1) {
  5462.         if ((HEAP[HEAP[$info9] + (($end_addr - 1) * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$info12] + ($end_addr * 20 & -1) + 8 | 0] | 0)) {
  5463.           break L148;
  5464.         }
  5465.         $end_addr = $end_addr + 1 | 0;
  5466.         if ($end_addr >>> 0 >= HEAP[$len] >>> 0) {
  5467.           break L148;
  5468.         }
  5469.       }
  5470.     }
  5471.   } while (0);
  5472.   var $idx = $this1 + 80 | 0;
  5473.   L154 : do {
  5474.     if (HEAP[$idx] >>> 0 < $start_addr >>> 0) {
  5475.       var $info21 = $this1 + 96 | 0;
  5476.       var $info24 = $this1 + 96 | 0;
  5477.       while (1) {
  5478.         if ((HEAP[HEAP[$info21] + (($start_addr - 1) * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$info24] + ($start_addr * 20 & -1) + 8 | 0] | 0)) {
  5479.           break L154;
  5480.         }
  5481.         $start_addr = $start_addr - 1 | 0;
  5482.         if (HEAP[$idx] >>> 0 >= $start_addr >>> 0) {
  5483.           break L154;
  5484.         }
  5485.       }
  5486.     }
  5487.   } while (0);
  5488.   L160 : do {
  5489.     if ((HEAP[$this1 + 80 | 0] | 0) == ($start_addr | 0)) {
  5490.       var $49 = HEAP[$this1 + 88 | 0];
  5491.       $i34 = $49;
  5492.       if (($49 | 0) == 0) {
  5493.         break;
  5494.       }
  5495.       var $out_info = $this1 + 100 | 0;
  5496.       var $info40 = $this1 + 96 | 0;
  5497.       var $out_info47 = $this1 + 100 | 0;
  5498.       while (1) {
  5499.         if ((HEAP[HEAP[$out_info] + (($i34 - 1) * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$info40] + ($start_addr * 20 & -1) + 8 | 0] | 0)) {
  5500.           break L160;
  5501.         }
  5502.         HEAP[HEAP[$out_info47] + (($i34 - 1) * 20 & -1) + 8 | 0] = HEAP[$cluster];
  5503.         var $dec51 = $i34 - 1 | 0;
  5504.         $i34 = $dec51;
  5505.         if (($dec51 | 0) == 0) {
  5506.           break L160;
  5507.         }
  5508.       }
  5509.     }
  5510.   } while (0);
  5511.   $i54 = $start_addr;
  5512.   if ($i54 >>> 0 >= $end_addr >>> 0) {
  5513.     STACKTOP = __stackBase__;
  5514.     return;
  5515.   }
  5516.   var $info58 = $this1 + 96 | 0;
  5517.   while (1) {
  5518.     HEAP[HEAP[$info58] + ($i54 * 20 & -1) + 8 | 0] = HEAP[$cluster];
  5519.     $i54 = $i54 + 1 | 0;
  5520.     if ($i54 >>> 0 >= $end_addr >>> 0) {
  5521.       break;
  5522.     }
  5523.   }
  5524.   STACKTOP = __stackBase__;
  5525.   return;
  5526. }
  5527. function __ZN11hb_buffer_t6ensureEj($this, $size) {
  5528.   var label = 0;
  5529.   var __stackBase__ = STACKTOP;
  5530.   STACKTOP = STACKTOP + 37 | 0;
  5531.   var $count_addr_i1_i = __stackBase__;
  5532.   var $size_addr_i2_i = __stackBase__ + 4;
  5533.   var $count_addr_i_i = __stackBase__ + 8;
  5534.   var $size_addr_i_i = __stackBase__ + 12;
  5535.   var $retval_i = __stackBase__ + 16;
  5536.   var $this_addr_i = __stackBase__ + 17;
  5537.   var $size_addr_i = __stackBase__ + 21;
  5538.   var $new_allocated_i = __stackBase__ + 25;
  5539.   var $new_pos_i = __stackBase__ + 29;
  5540.   var $new_info_i = __stackBase__ + 33;
  5541.   var $separate_out_i;
  5542.   var $size_addr;
  5543.   $size_addr = $size;
  5544.   var $this1 = $this;
  5545.   if ($size_addr >>> 0 < HEAP[$this1 + 92 | 0] >>> 0) {
  5546.     var $cond = 1;
  5547.     var $cond;
  5548.     STACKTOP = __stackBase__;
  5549.     return $cond;
  5550.   }
  5551.   HEAP[$this_addr_i] = $this1;
  5552.   HEAP[$size_addr_i] = $size_addr;
  5553.   var $this1_i = HEAP[$this_addr_i];
  5554.   if (HEAP[$this1_i + 76 | 0] & 1) {
  5555.     HEAP[$retval_i] = 0;
  5556.   } else {
  5557.     HEAP[$new_allocated_i] = HEAP[$this1_i + 92 | 0];
  5558.     HEAP[$new_pos_i] = 0;
  5559.     HEAP[$new_info_i] = 0;
  5560.     $separate_out_i = (HEAP[$this1_i + 100 | 0] | 0) != (HEAP[$this1_i + 96 | 0] | 0) & 1;
  5561.     HEAP[$count_addr_i_i] = HEAP[$size_addr_i];
  5562.     HEAP[$size_addr_i_i] = 20;
  5563.     do {
  5564.       if (HEAP[$size_addr_i_i] >>> 0 > 0) {
  5565.         if (HEAP[$count_addr_i_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i_i] >>> 0)) >>> 0) {
  5566.           break;
  5567.         } else {
  5568.           label = 141;
  5569.           break;
  5570.         }
  5571.       } else {
  5572.         label = 141;
  5573.         break;
  5574.       }
  5575.     } while (0);
  5576.     do {
  5577.       if (label == 141) {
  5578.         var $25 = HEAP[$new_allocated_i];
  5579.         L185 : do {
  5580.           if (HEAP[$size_addr_i] >>> 0 >= HEAP[$new_allocated_i] >>> 0) {
  5581.             var $26 = $25;
  5582.             while (1) {
  5583.               var $26;
  5584.               HEAP[$new_allocated_i] = ($26 >>> 1) + HEAP[$new_allocated_i] + 32 | 0;
  5585.               var $30 = HEAP[$new_allocated_i];
  5586.               if (HEAP[$size_addr_i] >>> 0 >= HEAP[$new_allocated_i] >>> 0) {
  5587.                 var $26 = $30;
  5588.               } else {
  5589.                 var $_lcssa_i = $30;
  5590.                 break L185;
  5591.               }
  5592.             }
  5593.           } else {
  5594.             var $_lcssa_i = $25;
  5595.           }
  5596.         } while (0);
  5597.         var $_lcssa_i;
  5598.         HEAP[$count_addr_i1_i] = $_lcssa_i;
  5599.         HEAP[$size_addr_i2_i] = 20;
  5600.         if (HEAP[$count_addr_i1_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i2_i] >>> 0)) >>> 0) {
  5601.           break;
  5602.         }
  5603.         var $40 = _realloc(HEAP[$this1_i + 104 | 0], HEAP[$new_allocated_i] * 20 & -1);
  5604.         HEAP[$new_pos_i] = $40;
  5605.         var $44 = _realloc(HEAP[$this1_i + 96 | 0], HEAP[$new_allocated_i] * 20 & -1);
  5606.         HEAP[$new_info_i] = $44;
  5607.       }
  5608.     } while (0);
  5609.     do {
  5610.       if ((HEAP[$new_pos_i] | 0) != 0) {
  5611.         if ((HEAP[$new_info_i] | 0) != 0) {
  5612.           break;
  5613.         } else {
  5614.           label = 147;
  5615.           break;
  5616.         }
  5617.       } else {
  5618.         label = 147;
  5619.       }
  5620.     } while (0);
  5621.     if (label == 147) {
  5622.       HEAP[$this1_i + 76 | 0] = 1;
  5623.     }
  5624.     if ((HEAP[$new_pos_i] | 0) != 0) {
  5625.       HEAP[$this1_i + 104 | 0] = HEAP[$new_pos_i];
  5626.     }
  5627.     if ((HEAP[$new_info_i] | 0) != 0) {
  5628.       HEAP[$this1_i + 96 | 0] = HEAP[$new_info_i];
  5629.     }
  5630.     if ($separate_out_i & 1) {
  5631.       var $cond_i = HEAP[$this1_i + 104 | 0];
  5632.     } else {
  5633.       var $cond_i = HEAP[$this1_i + 96 | 0];
  5634.     }
  5635.     var $cond_i;
  5636.     HEAP[$this1_i + 100 | 0] = $cond_i;
  5637.     if (!(HEAP[$this1_i + 76 | 0] & 1)) {
  5638.       HEAP[$this1_i + 92 | 0] = HEAP[$new_allocated_i];
  5639.     }
  5640.     HEAP[$retval_i] = HEAP[$this1_i + 76 | 0] & 1 ^ 1;
  5641.   }
  5642.   var $cond = HEAP[$retval_i];
  5643.   var $cond;
  5644.   STACKTOP = __stackBase__;
  5645.   return $cond;
  5646. }
  5647. function __ZN11hb_buffer_t5resetEv($this) {
  5648.   var __stackBase__ = STACKTOP;
  5649.   STACKTOP = STACKTOP + 48 | 0;
  5650.   var $this_addr_i_i_i_i = __stackBase__;
  5651.   var $this_addr_i_i_i1 = __stackBase__ + 4;
  5652.   var $obj_addr_i_i = __stackBase__ + 8;
  5653.   var $this_addr_i = __stackBase__ + 12;
  5654.   var $default_props_i = __stackBase__ + 16;
  5655.   var $this_addr_i_i_i = __stackBase__ + 36;
  5656.   var $this_addr_i_i = __stackBase__ + 40;
  5657.   var $obj_addr_i = __stackBase__ + 44;
  5658.   var $this1 = $this;
  5659.   HEAP[$obj_addr_i] = $this1;
  5660.   HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  5661.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  5662.   if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) == -1) {
  5663.     STACKTOP = __stackBase__;
  5664.     return;
  5665.   }
  5666.   _hb_unicode_funcs_destroy(HEAP[$this1 + 44 | 0]);
  5667.   HEAP[$this1 + 44 | 0] = 104232;
  5668.   HEAP[$this_addr_i] = $this1;
  5669.   var $this1_i = HEAP[$this_addr_i];
  5670.   HEAP[$obj_addr_i_i] = $this1_i;
  5671.   HEAP[$this_addr_i_i_i1] = HEAP[$obj_addr_i_i] | 0;
  5672.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i1] | 0;
  5673.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  5674.     var $19 = $default_props_i;
  5675.     for (var $$dest = $19, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  5676.       HEAP[$$dest] = 0;
  5677.     }
  5678.     var $20 = $this1_i + 48 | 0;
  5679.     var $21 = $default_props_i;
  5680.     for (var $$src = $21, $$dest = $20, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5681.       HEAP[$$dest] = HEAP[$$src];
  5682.     }
  5683.     HEAP[$this1_i + 80 | 0] = 0;
  5684.     HEAP[$this1_i + 84 | 0] = 0;
  5685.     HEAP[$this1_i + 88 | 0] = 0;
  5686.     var $info_i = $this1_i + 96 | 0;
  5687.     var $22 = $this1_i + 68 | 0;
  5688.     for (var $$dest = $22, $$stop = $$dest + 11; $$dest < $$stop; $$dest++) {
  5689.       HEAP[$$dest] = 0;
  5690.     }
  5691.     HEAP[$this1_i + 100 | 0] = HEAP[$info_i];
  5692.     var $24 = $this1_i + 108 | 0;
  5693.     for (var $$dest = $24, $$stop = $$dest + 92; $$dest < $$stop; $$dest++) {
  5694.       HEAP[$$dest] = 0;
  5695.     }
  5696.   }
  5697.   STACKTOP = __stackBase__;
  5698.   return;
  5699. }
  5700. function __ZN11hb_buffer_t14replace_glyphsEjjPKj($this, $num_in, $num_out, $glyph_data) {
  5701.   var __stackBase__ = STACKTOP;
  5702.   STACKTOP = STACKTOP + 20 | 0;
  5703.   var $num_in_addr;
  5704.   var $num_out_addr;
  5705.   var $glyph_data_addr;
  5706.   var $orig_info = __stackBase__;
  5707.   var $pinfo;
  5708.   var $i;
  5709.   $num_in_addr = $num_in;
  5710.   $num_out_addr = $num_out;
  5711.   $glyph_data_addr = $glyph_data;
  5712.   var $this1 = $this;
  5713.   if (!__ZN11hb_buffer_t13make_room_forEjj($this1, $num_in_addr, $num_out_addr)) {
  5714.     STACKTOP = __stackBase__;
  5715.     return;
  5716.   }
  5717.   __ZN11hb_buffer_t14merge_clustersEjj($this1, HEAP[$this1 + 80 | 0], $num_in_addr + HEAP[$this1 + 80 | 0] | 0);
  5718.   var $7 = $orig_info;
  5719.   var $8 = HEAP[$this1 + 96 | 0] + (HEAP[$this1 + 80 | 0] * 20 & -1) | 0;
  5720.   for (var $$src = $8, $$dest = $7, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5721.     HEAP[$$dest] = HEAP[$$src];
  5722.   }
  5723.   $pinfo = HEAP[$this1 + 100 | 0] + (HEAP[$this1 + 88 | 0] * 20 & -1) | 0;
  5724.   $i = 0;
  5725.   L223 : do {
  5726.     if ($i >>> 0 < $num_out_addr >>> 0) {
  5727.       var $13 = $orig_info;
  5728.       while (1) {
  5729.         var $15 = $pinfo;
  5730.         for (var $$src = $13, $$dest = $15, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5731.           HEAP[$$dest] = HEAP[$$src];
  5732.         }
  5733.         HEAP[$pinfo | 0] = HEAP[($i << 2) + $glyph_data_addr | 0];
  5734.         $pinfo = $pinfo + 20 | 0;
  5735.         $i = $i + 1 | 0;
  5736.         if ($i >>> 0 >= $num_out_addr >>> 0) {
  5737.           break L223;
  5738.         }
  5739.       }
  5740.     }
  5741.   } while (0);
  5742.   var $idx6 = $this1 + 80 | 0;
  5743.   HEAP[$idx6] = HEAP[$idx6] + $num_in_addr | 0;
  5744.   var $out_len8 = $this1 + 88 | 0;
  5745.   HEAP[$out_len8] = HEAP[$out_len8] + $num_out_addr | 0;
  5746.   STACKTOP = __stackBase__;
  5747.   return;
  5748. }
  5749. function __ZN11hb_buffer_t13reverse_rangeEjj($this, $start, $end) {
  5750.   var __stackBase__ = STACKTOP;
  5751.   STACKTOP = STACKTOP + 40 | 0;
  5752.   var $start_addr;
  5753.   var $end_addr;
  5754.   var $i;
  5755.   var $j;
  5756.   var $t = __stackBase__;
  5757.   var $t15 = __stackBase__ + 20;
  5758.   $start_addr = $start;
  5759.   $end_addr = $end;
  5760.   var $this1 = $this;
  5761.   if (($start_addr | 0) == ($end_addr - 1 | 0)) {
  5762.     STACKTOP = __stackBase__;
  5763.     return;
  5764.   }
  5765.   $i = $start_addr;
  5766.   $j = $end_addr - 1 | 0;
  5767.   L233 : do {
  5768.     if ($i >>> 0 < $j >>> 0) {
  5769.       var $info = $this1 + 96 | 0;
  5770.       var $6 = $t;
  5771.       var $info4 = $this1 + 96 | 0;
  5772.       var $info6 = $this1 + 96 | 0;
  5773.       var $info8 = $this1 + 96 | 0;
  5774.       var $7 = $t;
  5775.       while (1) {
  5776.         var $10 = HEAP[$info] + ($i * 20 & -1) | 0;
  5777.         for (var $$src = $10, $$dest = $6, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5778.           HEAP[$$dest] = HEAP[$$src];
  5779.         }
  5780.         var $15 = HEAP[$info4] + ($i * 20 & -1) | 0;
  5781.         var $16 = HEAP[$info6] + ($j * 20 & -1) | 0;
  5782.         for (var $$src = $16, $$dest = $15, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5783.           HEAP[$$dest] = HEAP[$$src];
  5784.         }
  5785.         var $19 = HEAP[$info8] + ($j * 20 & -1) | 0;
  5786.         for (var $$src = $7, $$dest = $19, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5787.           HEAP[$$dest] = HEAP[$$src];
  5788.         }
  5789.         $i = $i + 1 | 0;
  5790.         $j = $j - 1 | 0;
  5791.         if ($i >>> 0 >= $j >>> 0) {
  5792.           break L233;
  5793.         }
  5794.       }
  5795.     }
  5796.   } while (0);
  5797.   if ((HEAP[$this1 + 104 | 0] | 0) == 0) {
  5798.     STACKTOP = __stackBase__;
  5799.     return;
  5800.   }
  5801.   $i = $start_addr;
  5802.   $j = $end_addr - 1 | 0;
  5803.   if ($i >>> 0 >= $j >>> 0) {
  5804.     STACKTOP = __stackBase__;
  5805.     return;
  5806.   }
  5807.   var $pos16 = $this1 + 104 | 0;
  5808.   var $29 = $t15;
  5809.   var $pos18 = $this1 + 104 | 0;
  5810.   var $pos20 = $this1 + 104 | 0;
  5811.   var $pos22 = $this1 + 104 | 0;
  5812.   var $30 = $t15;
  5813.   while (1) {
  5814.     var $33 = HEAP[$pos16] + ($i * 20 & -1) | 0;
  5815.     for (var $$src = $33, $$dest = $29, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5816.       HEAP[$$dest] = HEAP[$$src];
  5817.     }
  5818.     var $38 = HEAP[$pos18] + ($i * 20 & -1) | 0;
  5819.     var $39 = HEAP[$pos20] + ($j * 20 & -1) | 0;
  5820.     for (var $$src = $39, $$dest = $38, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5821.       HEAP[$$dest] = HEAP[$$src];
  5822.     }
  5823.     var $42 = HEAP[$pos22] + ($j * 20 & -1) | 0;
  5824.     for (var $$src = $30, $$dest = $42, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  5825.       HEAP[$$dest] = HEAP[$$src];
  5826.     }
  5827.     $i = $i + 1 | 0;
  5828.     $j = $j - 1 | 0;
  5829.     if ($i >>> 0 >= $j >>> 0) {
  5830.       break;
  5831.     }
  5832.   }
  5833.   STACKTOP = __stackBase__;
  5834.   return;
  5835. }
  5836. function _hb_buffer_get_empty() {
  5837.   return 111336;
  5838. }
  5839. function __ZN11hb_buffer_t18merge_out_clustersEjj($this, $start, $end) {
  5840.   var __stackBase__ = STACKTOP;
  5841.   STACKTOP = STACKTOP + 12 | 0;
  5842.   var $a_addr_i = __stackBase__;
  5843.   var $b_addr_i = __stackBase__ + 4;
  5844.   var $start_addr;
  5845.   var $end_addr;
  5846.   var $cluster = __stackBase__ + 8;
  5847.   var $i;
  5848.   var $i33;
  5849.   var $i53;
  5850.   $start_addr = $start;
  5851.   $end_addr = $end;
  5852.   var $this1 = $this;
  5853.   if (($end_addr - $start_addr | 0) >>> 0 < 2) {
  5854.     STACKTOP = __stackBase__;
  5855.     return;
  5856.   }
  5857.   HEAP[$cluster] = HEAP[HEAP[$this1 + 100 | 0] + ($start_addr * 20 & -1) + 8 | 0];
  5858.   $i = $start_addr + 1 | 0;
  5859.   L252 : do {
  5860.     if ($i >>> 0 < $end_addr >>> 0) {
  5861.       var $out_info4 = $this1 + 100 | 0;
  5862.       while (1) {
  5863.         var $cluster6 = HEAP[$out_info4] + ($i * 20 & -1) + 8 | 0;
  5864.         HEAP[$a_addr_i] = $cluster;
  5865.         HEAP[$b_addr_i] = $cluster6;
  5866.         HEAP[$cluster] = HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]];
  5867.         $i = $i + 1 | 0;
  5868.         if ($i >>> 0 >= $end_addr >>> 0) {
  5869.           break L252;
  5870.         }
  5871.       }
  5872.     }
  5873.   } while (0);
  5874.   L257 : do {
  5875.     if (($start_addr | 0) != 0) {
  5876.       var $out_info8 = $this1 + 100 | 0;
  5877.       var $out_info11 = $this1 + 100 | 0;
  5878.       while (1) {
  5879.         if ((HEAP[HEAP[$out_info8] + (($start_addr - 1) * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$out_info11] + ($start_addr * 20 & -1) + 8 | 0] | 0)) {
  5880.           break L257;
  5881.         }
  5882.         var $dec = $start_addr - 1 | 0;
  5883.         $start_addr = $dec;
  5884.         if (($dec | 0) == 0) {
  5885.           break L257;
  5886.         }
  5887.       }
  5888.     }
  5889.   } while (0);
  5890.   var $out_len = $this1 + 88 | 0;
  5891.   var $33 = $end_addr;
  5892.   L263 : do {
  5893.     if ($end_addr >>> 0 < HEAP[$out_len] >>> 0) {
  5894.       var $out_info19 = $this1 + 100 | 0;
  5895.       var $out_info22 = $this1 + 100 | 0;
  5896.       var $35 = $33;
  5897.       while (1) {
  5898.         var $35;
  5899.         var $41 = $end_addr;
  5900.         if ((HEAP[HEAP[$out_info19] + (($35 - 1) * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$out_info22] + ($end_addr * 20 & -1) + 8 | 0] | 0)) {
  5901.           var $45 = $41;
  5902.           break L263;
  5903.         }
  5904.         $end_addr = $41 + 1 | 0;
  5905.         var $44 = $end_addr;
  5906.         if ($end_addr >>> 0 < HEAP[$out_len] >>> 0) {
  5907.           var $35 = $44;
  5908.         } else {
  5909.           var $45 = $44;
  5910.           break L263;
  5911.         }
  5912.       }
  5913.     } else {
  5914.       var $45 = $33;
  5915.     }
  5916.   } while (0);
  5917.   var $45;
  5918.   L269 : do {
  5919.     if (($45 | 0) == (HEAP[$this1 + 88 | 0] | 0)) {
  5920.       $i33 = HEAP[$this1 + 80 | 0];
  5921.       var $len = $this1 + 84 | 0;
  5922.       if ($i33 >>> 0 >= HEAP[$len] >>> 0) {
  5923.         break;
  5924.       }
  5925.       var $info = $this1 + 96 | 0;
  5926.       var $out_info40 = $this1 + 100 | 0;
  5927.       var $info46 = $this1 + 96 | 0;
  5928.       while (1) {
  5929.         if ((HEAP[HEAP[$info] + ($i33 * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$out_info40] + (($end_addr - 1) * 20 & -1) + 8 | 0] | 0)) {
  5930.           break L269;
  5931.         }
  5932.         HEAP[HEAP[$info46] + ($i33 * 20 & -1) + 8 | 0] = HEAP[$cluster];
  5933.         $i33 = $i33 + 1 | 0;
  5934.         if ($i33 >>> 0 >= HEAP[$len] >>> 0) {
  5935.           break L269;
  5936.         }
  5937.       }
  5938.     }
  5939.   } while (0);
  5940.   $i53 = $start_addr;
  5941.   if ($i53 >>> 0 >= $end_addr >>> 0) {
  5942.     STACKTOP = __stackBase__;
  5943.     return;
  5944.   }
  5945.   var $out_info57 = $this1 + 100 | 0;
  5946.   while (1) {
  5947.     HEAP[HEAP[$out_info57] + ($i53 * 20 & -1) + 8 | 0] = HEAP[$cluster];
  5948.     $i53 = $i53 + 1 | 0;
  5949.     if ($i53 >>> 0 >= $end_addr >>> 0) {
  5950.       break;
  5951.     }
  5952.   }
  5953.   STACKTOP = __stackBase__;
  5954.   return;
  5955. }
  5956. function _hb_buffer_reference($buffer) {
  5957.   var __stackBase__ = STACKTOP;
  5958.   STACKTOP = STACKTOP + 60 | 0;
  5959.   var $this_addr_i1_i_i = __stackBase__;
  5960.   var $this_addr_i_i_i_i = __stackBase__ + 4;
  5961.   var $this_addr_i_i1_i = __stackBase__ + 8;
  5962.   var $this_addr_i_i = __stackBase__ + 12;
  5963.   var $this_addr_i_i_i = __stackBase__ + 40;
  5964.   var $obj_addr_i_i = __stackBase__ + 48;
  5965.   var $function_addr_i_i = __stackBase__ + 52;
  5966.   var $obj_addr_i = __stackBase__ + 56;
  5967.   HEAP[$obj_addr_i] = $buffer;
  5968.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  5969.   HEAP[$function_addr_i_i] = 109552;
  5970.   var $6 = HEAP[$function_addr_i_i];
  5971.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  5972.   HEAP[__stackBase__ + 44] = $6;
  5973.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  5974.   if (($this1_i_i_i | 0) != 0) {
  5975.     HEAP[__stackBase__ + 16] = 104072;
  5976.     HEAP[__stackBase__ + 20] = $this1_i_i_i;
  5977.     HEAP[__stackBase__ + 24] = 0;
  5978.     HEAP[__stackBase__ + 28] = 0;
  5979.     HEAP[__stackBase__ + 32] = 0;
  5980.     HEAP[__stackBase__ + 36] = 104056;
  5981.   }
  5982.   var $header_i = HEAP[$obj_addr_i] | 0;
  5983.   HEAP[$this_addr_i_i] = $header_i;
  5984.   if (($header_i | 0) == 0) {
  5985.     var $38 = $this_addr_i_i;
  5986.     var $39 = HEAP[$obj_addr_i];
  5987.     var $40 = $obj_addr_i;
  5988.     STACKTOP = __stackBase__;
  5989.     return $39;
  5990.   }
  5991.   HEAP[$this_addr_i_i1_i] = $header_i;
  5992.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  5993.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  5994.     var $38 = $this_addr_i_i;
  5995.     var $39 = HEAP[$obj_addr_i];
  5996.     var $40 = $obj_addr_i;
  5997.     STACKTOP = __stackBase__;
  5998.     return $39;
  5999.   }
  6000.   HEAP[$this_addr_i1_i_i] = $header_i | 0;
  6001.   var $ref_count_i3_i_i = HEAP[$this_addr_i1_i_i] | 0;
  6002.   HEAP[$ref_count_i3_i_i] = HEAP[$ref_count_i3_i_i] + 1 | 0;
  6003.   var $38 = $this_addr_i_i;
  6004.   var $39 = HEAP[$obj_addr_i];
  6005.   var $40 = $obj_addr_i;
  6006.   STACKTOP = __stackBase__;
  6007.   return $39;
  6008. }
  6009. function _hb_buffer_set_content_type($buffer, $content_type) {
  6010.   HEAP[$buffer + 72 | 0] = $content_type;
  6011.   return;
  6012. }
  6013. function _hb_buffer_get_content_type($buffer) {
  6014.   return HEAP[$buffer + 72 | 0];
  6015. }
  6016. function _hb_buffer_create() {
  6017.   var __stackBase__ = STACKTOP;
  6018.   STACKTOP = STACKTOP + 80 | 0;
  6019.   var $what_addr_i_i_i_i = __stackBase__;
  6020.   var $obj_addr_i_i_i_i = __stackBase__ + 4;
  6021.   var $func_addr_i_i_i_i = __stackBase__ + 8;
  6022.   var $level_addr_i_i_i_i = __stackBase__ + 12;
  6023.   var $level_dir_addr_i_i_i_i = __stackBase__ + 16;
  6024.   var $message_addr_i_i_i_i = __stackBase__ + 20;
  6025.   var $this_addr_i_i1_i = __stackBase__ + 24;
  6026.   var $function_addr_i_i_i = __stackBase__ + 28;
  6027.   var $obj_addr_i_i = __stackBase__ + 32;
  6028.   var $function_addr_i_i = __stackBase__ + 36;
  6029.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 40;
  6030.   var $this_addr_i1_i_i_i_i = __stackBase__ + 44;
  6031.   var $this_addr_i_i_i_i_i = __stackBase__ + 48;
  6032.   var $this_addr_i1_i_i_i = __stackBase__ + 52;
  6033.   var $this_addr_i_i_i_i = __stackBase__ + 56;
  6034.   var $v_addr_i_i_i_i = __stackBase__ + 60;
  6035.   var $this_addr_i_i_i = __stackBase__ + 64;
  6036.   var $size_addr_i_i = __stackBase__ + 68;
  6037.   var $obj_i_i = __stackBase__ + 72;
  6038.   var $obj_i = __stackBase__ + 76;
  6039.   var $retval;
  6040.   var $buffer;
  6041.   HEAP[$size_addr_i_i] = 200;
  6042.   var $4 = _calloc(1, HEAP[$size_addr_i_i]);
  6043.   HEAP[$obj_i_i] = $4;
  6044.   if ((HEAP[$obj_i_i] | 0) != 0) {
  6045.     HEAP[$this_addr_i_i_i] = HEAP[$obj_i_i];
  6046.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  6047.     HEAP[$this_addr_i_i_i_i] = $this1_i_i_i | 0;
  6048.     HEAP[$v_addr_i_i_i_i] = 1;
  6049.     HEAP[HEAP[$this_addr_i_i_i_i] | 0] = HEAP[$v_addr_i_i_i_i];
  6050.     HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i + 4 | 0;
  6051.     var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  6052.     HEAP[$this_addr_i_i_i_i_i] = $this1_i2_i_i_i | 0;
  6053.     HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] = 0;
  6054.     HEAP[$this_addr_i1_i_i_i_i] = $this1_i2_i_i_i + 4 | 0;
  6055.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  6056.     var $18 = HEAP[$this_addr_i_i_i_i_i_i];
  6057.     for (var $$dest = $18, $$stop = $$dest + 36; $$dest < $$stop; $$dest++) {
  6058.       HEAP[$$dest] = 0;
  6059.     }
  6060.   }
  6061.   HEAP[$obj_i] = HEAP[$obj_i_i];
  6062.   HEAP[$obj_addr_i_i] = HEAP[$obj_i];
  6063.   HEAP[$function_addr_i_i] = 110552;
  6064.   var $header_i_i = HEAP[$obj_addr_i_i] | 0;
  6065.   var $32 = HEAP[$function_addr_i_i];
  6066.   HEAP[$this_addr_i_i1_i] = $header_i_i;
  6067.   HEAP[$function_addr_i_i_i] = $32;
  6068.   if (($header_i_i | 0) != 0) {
  6069.     HEAP[$what_addr_i_i_i_i] = 104072;
  6070.     HEAP[$obj_addr_i_i_i_i] = $header_i_i;
  6071.     HEAP[$func_addr_i_i_i_i] = 0;
  6072.     HEAP[$level_addr_i_i_i_i] = 0;
  6073.     HEAP[$level_dir_addr_i_i_i_i] = 0;
  6074.     HEAP[$message_addr_i_i_i_i] = 104056;
  6075.   }
  6076.   var $53 = HEAP[$obj_i];
  6077.   $buffer = $53;
  6078.   if (($53 | 0) != 0) {
  6079.     __ZN11hb_buffer_t5resetEv($buffer);
  6080.     $retval = $buffer;
  6081.     var $57 = $retval;
  6082.     STACKTOP = __stackBase__;
  6083.     return $57;
  6084.   } else {
  6085.     $retval = 111336;
  6086.     var $57 = $retval;
  6087.     STACKTOP = __stackBase__;
  6088.     return $57;
  6089.   }
  6090. }
  6091. function _hb_buffer_destroy($buffer) {
  6092.   var __stackBase__ = STACKTOP;
  6093.   STACKTOP = STACKTOP + 44 | 0;
  6094.   var $this_addr_i_i_i = __stackBase__ + 24;
  6095.   var $obj_addr_i_i = __stackBase__ + 32;
  6096.   var $function_addr_i_i = __stackBase__ + 36;
  6097.   var $obj_addr_i = __stackBase__ + 40;
  6098.   var $buffer_addr;
  6099.   $buffer_addr = $buffer;
  6100.   HEAP[$obj_addr_i] = $buffer_addr;
  6101.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  6102.   HEAP[$function_addr_i_i] = 109952;
  6103.   var $6 = HEAP[$function_addr_i_i];
  6104.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  6105.   HEAP[__stackBase__ + 28] = $6;
  6106.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  6107.   if (($this1_i_i_i | 0) != 0) {
  6108.     HEAP[__stackBase__] = 104072;
  6109.     HEAP[__stackBase__ + 4] = $this1_i_i_i;
  6110.     HEAP[__stackBase__ + 8] = 0;
  6111.     HEAP[__stackBase__ + 12] = 0;
  6112.     HEAP[__stackBase__ + 16] = 0;
  6113.     HEAP[__stackBase__ + 20] = 104056;
  6114.   }
  6115.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  6116.     STACKTOP = __stackBase__;
  6117.     return;
  6118.   }
  6119.   _hb_unicode_funcs_destroy(HEAP[$buffer_addr + 44 | 0]);
  6120.   _free(HEAP[$buffer_addr + 96 | 0]);
  6121.   _free(HEAP[$buffer_addr + 104 | 0]);
  6122.   _free($buffer_addr);
  6123.   STACKTOP = __stackBase__;
  6124.   return;
  6125. }
  6126. function __ZN11hb_buffer_t12allocate_varEjjPKc($this, $byte_i, $count, $owner) {
  6127.   var label = 0;
  6128.   var __stackBase__ = STACKTOP;
  6129.   STACKTOP = STACKTOP + 96 | 0;
  6130.   var $buffer_addr_i = __stackBase__;
  6131.   var $buf_i = __stackBase__ + 4;
  6132.   var $i_i = __stackBase__ + 84;
  6133.   var $level_addr_i = __stackBase__ + 88;
  6134.   var $max_level_addr_i = __stackBase__ + 92;
  6135.   var $byte_i_addr;
  6136.   var $count_addr;
  6137.   var $owner_addr;
  6138.   var $i;
  6139.   $byte_i_addr = $byte_i;
  6140.   $count_addr = $count;
  6141.   $owner_addr = $owner;
  6142.   var $this1 = $this;
  6143.   if ($byte_i_addr >>> 0 >= 8) {
  6144.     ___assert_func(102952, 550, 108944, 102720);
  6145.   }
  6146.   if (!(($count_addr + $byte_i_addr | 0) >>> 0 <= 8)) {
  6147.     ___assert_func(102952, 550, 108944, 102720);
  6148.   }
  6149.   HEAP[$level_addr_i] = 0;
  6150.   HEAP[$max_level_addr_i] = 0;
  6151.   if (HEAP[$level_addr_i] >>> 0 < HEAP[$max_level_addr_i] >>> 0) {
  6152.     HEAP[$buffer_addr_i] = $this1;
  6153.     HEAP[$i_i] = 0;
  6154.     while (1) {
  6155.       HEAP[$buf_i + HEAP[$i_i] | 0] = (HEAP[HEAP[$buffer_addr_i] + (7 - HEAP[$i_i]) + 112 | 0] & 255) + 48 & 255;
  6156.       var $inc_i = HEAP[$i_i] + 1 | 0;
  6157.       HEAP[$i_i] = $inc_i;
  6158.       if ($inc_i >>> 0 >= 8) {
  6159.         break;
  6160.       }
  6161.     }
  6162.   }
  6163.   $i = $byte_i_addr;
  6164.   if ($i >>> 0 >= ($count_addr + $byte_i_addr | 0) >>> 0) {
  6165.     STACKTOP = __stackBase__;
  6166.     return;
  6167.   }
  6168.   var $allocated_var_bytes = $this1 + 112 | 0;
  6169.   var $allocated_var_bytes9 = $this1 + 112 | 0;
  6170.   var $allocated_var_owner = $this1 + 120 | 0;
  6171.   while (1) {
  6172.     if (HEAP[$allocated_var_bytes + $i | 0] << 24 >> 24 != 0) {
  6173.       label = 253;
  6174.       break;
  6175.     }
  6176.     var $arrayidx10 = $allocated_var_bytes9 + $i | 0;
  6177.     HEAP[$arrayidx10] = HEAP[$arrayidx10] + 1 & 255;
  6178.     HEAP[($i << 2) + $allocated_var_owner | 0] = $owner_addr;
  6179.     $i = $i + 1 | 0;
  6180.     if ($i >>> 0 >= ($count_addr + $byte_i_addr | 0) >>> 0) {
  6181.       label = 256;
  6182.       break;
  6183.     }
  6184.   }
  6185.   if (label == 253) {
  6186.     ___assert_func(102952, 559, 108944, 102416);
  6187.   } else if (label == 256) {
  6188.     STACKTOP = __stackBase__;
  6189.     return;
  6190.   }
  6191. }
  6192. function __ZN11hb_buffer_t14deallocate_varEjjPKc($this, $byte_i, $count, $owner) {
  6193.   var label = 0;
  6194.   var __stackBase__ = STACKTOP;
  6195.   STACKTOP = STACKTOP + 96 | 0;
  6196.   var $buffer_addr_i = __stackBase__;
  6197.   var $buf_i = __stackBase__ + 4;
  6198.   var $i_i = __stackBase__ + 84;
  6199.   var $level_addr_i = __stackBase__ + 88;
  6200.   var $max_level_addr_i = __stackBase__ + 92;
  6201.   var $byte_i_addr;
  6202.   var $count_addr;
  6203.   var $owner_addr;
  6204.   var $i;
  6205.   $byte_i_addr = $byte_i;
  6206.   $count_addr = $count;
  6207.   $owner_addr = $owner;
  6208.   var $this1 = $this;
  6209.   HEAP[$level_addr_i] = 0;
  6210.   HEAP[$max_level_addr_i] = 0;
  6211.   if (HEAP[$level_addr_i] >>> 0 < HEAP[$max_level_addr_i] >>> 0) {
  6212.     HEAP[$buffer_addr_i] = $this1;
  6213.     HEAP[$i_i] = 0;
  6214.     while (1) {
  6215.       HEAP[$buf_i + HEAP[$i_i] | 0] = (HEAP[HEAP[$buffer_addr_i] + (7 - HEAP[$i_i]) + 112 | 0] & 255) + 48 & 255;
  6216.       var $inc_i = HEAP[$i_i] + 1 | 0;
  6217.       HEAP[$i_i] = $inc_i;
  6218.       if ($inc_i >>> 0 >= 8) {
  6219.         break;
  6220.       }
  6221.     }
  6222.   }
  6223.   if ($byte_i_addr >>> 0 >= 8) {
  6224.     ___assert_func(102952, 574, 108760, 102720);
  6225.   }
  6226.   if (!(($count_addr + $byte_i_addr | 0) >>> 0 <= 8)) {
  6227.     ___assert_func(102952, 574, 108760, 102720);
  6228.   }
  6229.   $i = $byte_i_addr;
  6230.   if ($i >>> 0 >= ($count_addr + $byte_i_addr | 0) >>> 0) {
  6231.     STACKTOP = __stackBase__;
  6232.     return;
  6233.   }
  6234.   var $allocated_var_bytes = $this1 + 112 | 0;
  6235.   var $allocated_var_owner = $this1 + 120 | 0;
  6236.   var $allocated_var_bytes15 = $this1 + 112 | 0;
  6237.   while (1) {
  6238.     if (HEAP[$allocated_var_bytes + $i | 0] << 24 >> 24 == 0) {
  6239.       label = 270;
  6240.       break;
  6241.     }
  6242.     if (0 != (_strcmp(HEAP[($i << 2) + $allocated_var_owner | 0], $owner_addr) | 0)) {
  6243.       label = 272;
  6244.       break;
  6245.     }
  6246.     var $arrayidx16 = $allocated_var_bytes15 + $i | 0;
  6247.     HEAP[$arrayidx16] = HEAP[$arrayidx16] - 1 & 255;
  6248.     $i = $i + 1 | 0;
  6249.     if ($i >>> 0 >= ($count_addr + $byte_i_addr | 0) >>> 0) {
  6250.       label = 275;
  6251.       break;
  6252.     }
  6253.   }
  6254.   if (label == 270) {
  6255.     ___assert_func(102952, 576, 108760, 102288);
  6256.   } else if (label == 272) {
  6257.     ___assert_func(102952, 577, 108760, 102184);
  6258.   } else if (label == 275) {
  6259.     STACKTOP = __stackBase__;
  6260.     return;
  6261.   }
  6262. }
  6263. function _hb_buffer_set_direction($buffer, $direction) {
  6264.   var __stackBase__ = STACKTOP;
  6265.   STACKTOP = STACKTOP + 12 | 0;
  6266.   var $this_addr_i_i_i = __stackBase__;
  6267.   var $this_addr_i_i = __stackBase__ + 4;
  6268.   var $obj_addr_i = __stackBase__ + 8;
  6269.   var $buffer_addr;
  6270.   $buffer_addr = $buffer;
  6271.   HEAP[$obj_addr_i] = $buffer_addr;
  6272.   HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  6273.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  6274.   if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) == -1) {
  6275.     STACKTOP = __stackBase__;
  6276.     return;
  6277.   }
  6278.   HEAP[$buffer_addr + 48 | 0] = $direction;
  6279.   STACKTOP = __stackBase__;
  6280.   return;
  6281. }
  6282. function _hb_buffer_get_direction($buffer) {
  6283.   return HEAP[$buffer + 48 | 0];
  6284. }
  6285. function _hb_buffer_set_script($buffer, $script) {
  6286.   var __stackBase__ = STACKTOP;
  6287.   STACKTOP = STACKTOP + 12 | 0;
  6288.   var $this_addr_i_i_i = __stackBase__;
  6289.   var $this_addr_i_i = __stackBase__ + 4;
  6290.   var $obj_addr_i = __stackBase__ + 8;
  6291.   var $buffer_addr;
  6292.   $buffer_addr = $buffer;
  6293.   HEAP[$obj_addr_i] = $buffer_addr;
  6294.   HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  6295.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  6296.   if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) == -1) {
  6297.     STACKTOP = __stackBase__;
  6298.     return;
  6299.   }
  6300.   HEAP[$buffer_addr + 52 | 0] = $script;
  6301.   STACKTOP = __stackBase__;
  6302.   return;
  6303. }
  6304. function _hb_buffer_get_script($buffer) {
  6305.   return HEAP[$buffer + 52 | 0];
  6306. }
  6307. function _hb_buffer_set_language($buffer, $language) {
  6308.   var __stackBase__ = STACKTOP;
  6309.   STACKTOP = STACKTOP + 12 | 0;
  6310.   var $this_addr_i_i_i = __stackBase__;
  6311.   var $this_addr_i_i = __stackBase__ + 4;
  6312.   var $obj_addr_i = __stackBase__ + 8;
  6313.   var $buffer_addr;
  6314.   $buffer_addr = $buffer;
  6315.   HEAP[$obj_addr_i] = $buffer_addr;
  6316.   HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  6317.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  6318.   if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) == -1) {
  6319.     STACKTOP = __stackBase__;
  6320.     return;
  6321.   }
  6322.   HEAP[$buffer_addr + 56 | 0] = $language;
  6323.   STACKTOP = __stackBase__;
  6324.   return;
  6325. }
  6326. function _hb_buffer_get_language($buffer) {
  6327.   return HEAP[$buffer + 56 | 0];
  6328. }
  6329. function _hb_buffer_get_length($buffer) {
  6330.   return HEAP[$buffer + 84 | 0];
  6331. }
  6332. function _hb_buffer_get_glyph_infos($buffer, $length) {
  6333.   var $buffer_addr;
  6334.   var $length_addr;
  6335.   $buffer_addr = $buffer;
  6336.   $length_addr = $length;
  6337.   if (($length_addr | 0) != 0) {
  6338.     HEAP[$length_addr] = HEAP[$buffer_addr + 84 | 0];
  6339.   }
  6340.   return HEAP[$buffer_addr + 96 | 0];
  6341. }
  6342. function _hb_buffer_reset($buffer) {
  6343.   __ZN11hb_buffer_t5resetEv($buffer);
  6344.   return;
  6345. }
  6346. function _hb_buffer_add($buffer, $codepoint, $cluster) {
  6347.   var __stackBase__ = STACKTOP;
  6348.   STACKTOP = STACKTOP + 24 | 0;
  6349.   var $this_addr_i1 = __stackBase__;
  6350.   var $side_addr_i = __stackBase__ + 4;
  6351.   var $this_addr_i = __stackBase__ + 8;
  6352.   var $codepoint_addr_i = __stackBase__ + 12;
  6353.   var $cluster_addr_i = __stackBase__ + 16;
  6354.   var $glyph_i = __stackBase__ + 20;
  6355.   var $buffer_addr;
  6356.   $buffer_addr = $buffer;
  6357.   HEAP[$this_addr_i] = $buffer_addr;
  6358.   HEAP[$codepoint_addr_i] = $codepoint;
  6359.   HEAP[$cluster_addr_i] = $cluster;
  6360.   var $this1_i = HEAP[$this_addr_i];
  6361.   if (__ZN11hb_buffer_t6ensureEj($this1_i, HEAP[$this1_i + 84 | 0] + 1 | 0)) {
  6362.     HEAP[$glyph_i] = HEAP[$this1_i + 96 | 0] + (HEAP[$this1_i + 84 | 0] * 20 & -1) | 0;
  6363.     var $11 = HEAP[$glyph_i];
  6364.     for (var $$dest = $11, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  6365.       HEAP[$$dest] = 0;
  6366.     }
  6367.     HEAP[HEAP[$glyph_i] | 0] = HEAP[$codepoint_addr_i];
  6368.     HEAP[HEAP[$glyph_i] + 4 | 0] = 1;
  6369.     HEAP[HEAP[$glyph_i] + 8 | 0] = HEAP[$cluster_addr_i];
  6370.     var $len5_i = $this1_i + 84 | 0;
  6371.     HEAP[$len5_i] = HEAP[$len5_i] + 1 | 0;
  6372.   }
  6373.   HEAP[$this_addr_i1] = $buffer_addr;
  6374.   HEAP[$side_addr_i] = 1;
  6375.   HEAP[(HEAP[$side_addr_i] << 2) + HEAP[$this_addr_i1] + 192 | 0] = 0;
  6376.   STACKTOP = __stackBase__;
  6377.   return;
  6378. }
  6379. function _hb_buffer_get_glyph_positions($buffer, $length) {
  6380.   var __stackBase__ = STACKTOP;
  6381.   STACKTOP = STACKTOP + 16 | 0;
  6382.   var $this_addr_i_i_i_i = __stackBase__;
  6383.   var $this_addr_i_i_i = __stackBase__ + 4;
  6384.   var $obj_addr_i_i = __stackBase__ + 8;
  6385.   var $this_addr_i = __stackBase__ + 12;
  6386.   var $buffer_addr;
  6387.   var $length_addr;
  6388.   $buffer_addr = $buffer;
  6389.   $length_addr = $length;
  6390.   if (HEAP[$buffer_addr + 78 | 0] & 1) {
  6391.     var $17 = $length;
  6392.   } else {
  6393.     HEAP[$this_addr_i] = $buffer_addr;
  6394.     var $this1_i = HEAP[$this_addr_i];
  6395.     HEAP[$obj_addr_i_i] = $this1_i;
  6396.     HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  6397.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  6398.     if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  6399.       HEAP[$this1_i + 77 | 0] = 0;
  6400.       HEAP[$this1_i + 78 | 0] = 1;
  6401.       HEAP[$this1_i + 88 | 0] = 0;
  6402.       HEAP[$this1_i + 100 | 0] = HEAP[$this1_i + 96 | 0];
  6403.       var $14 = HEAP[$this1_i + 104 | 0];
  6404.       var $mul_i = HEAP[$this1_i + 84 | 0] * 20 & -1;
  6405.       for (var $$dest = $14, $$stop = $$dest + $mul_i; $$dest < $$stop; $$dest++) {
  6406.         HEAP[$$dest] = 0;
  6407.       }
  6408.     }
  6409.     var $17 = $length_addr;
  6410.   }
  6411.   var $17;
  6412.   if (($17 | 0) == 0) {
  6413.     var $21 = $buffer_addr;
  6414.     var $pos = $21 + 104 | 0;
  6415.     var $22 = HEAP[$pos];
  6416.     STACKTOP = __stackBase__;
  6417.     return $22;
  6418.   }
  6419.   HEAP[$length_addr] = HEAP[$buffer_addr + 84 | 0];
  6420.   var $21 = $buffer_addr;
  6421.   var $pos = $21 + 104 | 0;
  6422.   var $22 = HEAP[$pos];
  6423.   STACKTOP = __stackBase__;
  6424.   return $22;
  6425. }
  6426. function _hb_buffer_guess_segment_properties($buffer) {
  6427.   var __stackBase__ = STACKTOP;
  6428.   STACKTOP = STACKTOP + 32 | 0;
  6429.   var $language_i_i = __stackBase__;
  6430.   var $retval_i_i = __stackBase__ + 4;
  6431.   var $script_addr_i_i = __stackBase__ + 8;
  6432.   var $this_addr_i_i = __stackBase__ + 12;
  6433.   var $unicode_addr_i_i = __stackBase__ + 16;
  6434.   var $this_addr_i = __stackBase__ + 20;
  6435.   var $i_i = __stackBase__ + 24;
  6436.   var $script7_i = __stackBase__ + 28;
  6437.   HEAP[$this_addr_i] = $buffer;
  6438.   var $this1_i = HEAP[$this_addr_i];
  6439.   do {
  6440.     if ((HEAP[$this1_i + 72 | 0] | 0) != 1) {
  6441.       if ((HEAP[$this1_i + 84 | 0] | 0) != 0) {
  6442.         ___assert_func(102952, 508, 108712, 102992);
  6443.       }
  6444.       if ((HEAP[$this1_i + 72 | 0] | 0) == 0) {
  6445.         break;
  6446.       }
  6447.       ___assert_func(102952, 508, 108712, 102992);
  6448.     }
  6449.   } while (0);
  6450.   L408 : do {
  6451.     if ((HEAP[$this1_i + 52 | 0] | 0) == 0) {
  6452.       HEAP[$i_i] = 0;
  6453.       var $len5_i = $this1_i + 84 | 0;
  6454.       if (HEAP[$i_i] >>> 0 >= HEAP[$len5_i] >>> 0) {
  6455.         break;
  6456.       }
  6457.       var $unicode_i = $this1_i + 44 | 0;
  6458.       var $info_i = $this1_i + 96 | 0;
  6459.       while (1) {
  6460.         var $17 = HEAP[HEAP[$info_i] + (HEAP[$i_i] * 20 & -1) | 0];
  6461.         HEAP[$this_addr_i_i] = HEAP[$unicode_i];
  6462.         HEAP[$unicode_addr_i_i] = $17;
  6463.         var $this1_i_i = HEAP[$this_addr_i_i];
  6464.         var $call_i_i = FUNCTION_TABLE[HEAP[$this1_i_i + 68 | 0]]($this1_i_i, HEAP[$unicode_addr_i_i], HEAP[$this1_i_i + 100 | 0]);
  6465.         HEAP[$script7_i] = $call_i_i;
  6466.         if ((HEAP[$script7_i] | 0) != 1517910393 & (HEAP[$script7_i] | 0) != 1516858984 & (HEAP[$script7_i] | 0) != 1517976186) {
  6467.           break;
  6468.         }
  6469.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  6470.         if (HEAP[$i_i] >>> 0 >= HEAP[$len5_i] >>> 0) {
  6471.           break L408;
  6472.         }
  6473.       }
  6474.       HEAP[$this1_i + 52 | 0] = HEAP[$script7_i];
  6475.     }
  6476.   } while (0);
  6477.   if ((HEAP[$this1_i + 48 | 0] | 0) == 0) {
  6478.     HEAP[$script_addr_i_i] = HEAP[$this1_i + 52 | 0];
  6479.     var $32 = HEAP[$script_addr_i_i];
  6480.     if (($32 | 0) == 1098015074 | ($32 | 0) == 1214603890 | ($32 | 0) == 1400468067 | ($32 | 0) == 1416126817 | ($32 | 0) == 1131442804 | ($32 | 0) == 1265131890 | ($32 | 0) == 1349021304 | ($32 | 0) == 1315663727 | ($32 | 0) == 1283023977 | ($32 | 0) == 1098281844 | ($32 | 0) == 1098018153 | ($32 | 0) == 1349020777 | ($32 | 0) == 1349678185 | ($32 | 0) == 1398895202 | ($32 | 0) == 1332898664 | ($32 | 0) == 1398893938 | ($32 | 0) == 1298230884 | ($32 | 0) == 1298494051 | ($32 | 0) == 1298494063) {
  6481.       HEAP[$retval_i_i] = 5;
  6482.     } else {
  6483.       HEAP[$retval_i_i] = 4;
  6484.     }
  6485.     HEAP[$this1_i + 48 | 0] = HEAP[$retval_i_i];
  6486.   }
  6487.   if ((HEAP[$this1_i + 56 | 0] | 0) != 0) {
  6488.     var $47 = $this_addr_i;
  6489.     var $48 = $i_i;
  6490.     var $49 = $script7_i;
  6491.     STACKTOP = __stackBase__;
  6492.     return;
  6493.   }
  6494.   HEAP[$language_i_i] = HEAP[111320];
  6495.   do {
  6496.     if ((HEAP[$language_i_i] | 0) == 0) {
  6497.       var $call1_i_i = _hb_language_from_string(_setlocale(2, 0), -1);
  6498.       HEAP[$language_i_i] = $call1_i_i;
  6499.       if ((HEAP[111320] | 0) != 0) {
  6500.         break;
  6501.       }
  6502.       HEAP[111320] = HEAP[$language_i_i];
  6503.     }
  6504.   } while (0);
  6505.   HEAP[$this1_i + 56 | 0] = HEAP[111320];
  6506.   var $47 = $this_addr_i;
  6507.   var $48 = $i_i;
  6508.   var $49 = $script7_i;
  6509.   STACKTOP = __stackBase__;
  6510.   return;
  6511. }
  6512. function _hb_buffer_add_utf8($buffer, $text, $text_length, $item_offset, $item_length) {
  6513.   var label = 0;
  6514.   var __stackBase__ = STACKTOP;
  6515.   STACKTOP = STACKTOP + 140 | 0;
  6516.   var $retval_i_i = __stackBase__;
  6517.   var $text_addr_i10_i = __stackBase__ + 4;
  6518.   var $start_addr_i_i = __stackBase__ + 8;
  6519.   var $unicode_addr_i_i = __stackBase__ + 12;
  6520.   var $end_i_i = __stackBase__ + 16;
  6521.   var $c_i_i = __stackBase__ + 20;
  6522.   var $mask_i11_i = __stackBase__ + 24;
  6523.   var $len_i12_i = __stackBase__ + 28;
  6524.   var $result_i_i = __stackBase__ + 32;
  6525.   var $i_i_i = __stackBase__ + 36;
  6526.   var $this_addr_i6_i = __stackBase__ + 40;
  6527.   var $codepoint_addr_i_i = __stackBase__ + 44;
  6528.   var $cluster_addr_i_i = __stackBase__ + 48;
  6529.   var $glyph_i_i = __stackBase__ + 52;
  6530.   var $this_addr_i1_i = __stackBase__ + 56;
  6531.   var $side_addr_i2_i = __stackBase__ + 60;
  6532.   var $this_addr_i_i = __stackBase__ + 64;
  6533.   var $side_addr_i_i = __stackBase__ + 68;
  6534.   var $text_addr_i_i = __stackBase__ + 72;
  6535.   var $this_addr_i_i_i_i = __stackBase__ + 76;
  6536.   var $this_addr_i_i_i = __stackBase__ + 80;
  6537.   var $obj_addr_i_i = __stackBase__ + 84;
  6538.   var $buffer_addr_i = __stackBase__ + 88;
  6539.   var $text_addr_i = __stackBase__ + 92;
  6540.   var $text_length_addr_i = __stackBase__ + 96;
  6541.   var $item_offset_addr_i = __stackBase__ + 100;
  6542.   var $item_length_addr_i = __stackBase__ + 104;
  6543.   var $prev_i = __stackBase__ + 108;
  6544.   var $start_i = __stackBase__ + 112;
  6545.   var $u_i = __stackBase__ + 116;
  6546.   var $next_i = __stackBase__ + 120;
  6547.   var $end_i = __stackBase__ + 124;
  6548.   var $u30_i = __stackBase__ + 128;
  6549.   var $old_next_i = __stackBase__ + 132;
  6550.   var $u42_i = __stackBase__ + 136;
  6551.   HEAP[$buffer_addr_i] = $buffer;
  6552.   HEAP[$text_addr_i] = $text;
  6553.   HEAP[$text_length_addr_i] = $text_length;
  6554.   HEAP[$item_offset_addr_i] = $item_offset;
  6555.   HEAP[$item_length_addr_i] = $item_length;
  6556.   do {
  6557.     if ((HEAP[HEAP[$buffer_addr_i] + 72 | 0] | 0) != 1) {
  6558.       if ((HEAP[HEAP[$buffer_addr_i] + 84 | 0] | 0) != 0) {
  6559.         ___assert_func(102952, 914, 110200, 103496);
  6560.       }
  6561.       if ((HEAP[HEAP[$buffer_addr_i] + 72 | 0] | 0) == 0) {
  6562.         break;
  6563.       }
  6564.       ___assert_func(102952, 914, 110200, 103496);
  6565.     }
  6566.   } while (0);
  6567.   HEAP[$obj_addr_i_i] = HEAP[$buffer_addr_i];
  6568.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  6569.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  6570.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  6571.     var $182 = $buffer_addr_i;
  6572.     var $183 = $text_addr_i;
  6573.     var $184 = $text_length_addr_i;
  6574.     var $185 = $item_offset_addr_i;
  6575.     var $186 = $item_length_addr_i;
  6576.     var $187 = $prev_i;
  6577.     var $188 = $start_i;
  6578.     var $189 = $u_i;
  6579.     var $190 = $next_i;
  6580.     var $191 = $end_i;
  6581.     var $192 = $u30_i;
  6582.     var $193 = $old_next_i;
  6583.     var $194 = $u42_i;
  6584.     STACKTOP = __stackBase__;
  6585.     return;
  6586.   }
  6587.   if ((HEAP[$text_length_addr_i] | 0) == -1) {
  6588.     HEAP[$text_addr_i_i] = HEAP[$text_addr_i];
  6589.     var $call_i_i = _strlen(HEAP[$text_addr_i_i]);
  6590.     HEAP[$text_length_addr_i] = $call_i_i;
  6591.   }
  6592.   if ((HEAP[$item_length_addr_i] | 0) == -1) {
  6593.     HEAP[$item_length_addr_i] = HEAP[$text_length_addr_i] - HEAP[$item_offset_addr_i] | 0;
  6594.   }
  6595.   __ZN11hb_buffer_t6ensureEj(HEAP[$buffer_addr_i], HEAP[HEAP[$buffer_addr_i] + 84 | 0] + Math.floor((HEAP[$item_length_addr_i] >>> 0) / 4) | 0);
  6596.   L448 : do {
  6597.     if ((HEAP[HEAP[$buffer_addr_i] + 84 | 0] | 0) == 0) {
  6598.       if (HEAP[$item_offset_addr_i] >>> 0 <= 0) {
  6599.         break;
  6600.       }
  6601.       HEAP[$this_addr_i_i] = HEAP[$buffer_addr_i];
  6602.       HEAP[$side_addr_i_i] = 0;
  6603.       HEAP[(HEAP[$side_addr_i_i] << 2) + HEAP[$this_addr_i_i] + 192 | 0] = 0;
  6604.       HEAP[$prev_i] = HEAP[$text_addr_i] + HEAP[$item_offset_addr_i] | 0;
  6605.       HEAP[$start_i] = HEAP[$text_addr_i];
  6606.       if (HEAP[$start_i] >>> 0 >= HEAP[$prev_i] >>> 0) {
  6607.         break;
  6608.       }
  6609.       while (1) {
  6610.         if (HEAP[HEAP[$buffer_addr_i] + 192 | 0] >>> 0 >= 5) {
  6611.           break L448;
  6612.         }
  6613.         var $82 = HEAP[$start_i];
  6614.         HEAP[$text_addr_i10_i] = HEAP[$prev_i];
  6615.         HEAP[$start_addr_i_i] = $82;
  6616.         HEAP[$unicode_addr_i_i] = $u_i;
  6617.         var $83 = HEAP[$text_addr_i10_i];
  6618.         HEAP[$text_addr_i10_i] = $83 - 1 | 0;
  6619.         HEAP[$end_i_i] = $83;
  6620.         L455 : do {
  6621.           if (HEAP[$start_addr_i_i] >>> 0 < HEAP[$text_addr_i10_i] >>> 0) {
  6622.             while (1) {
  6623.               if ((HEAP[HEAP[$text_addr_i10_i]] & 192 | 0) != 128) {
  6624.                 label = 355;
  6625.                 break L455;
  6626.               }
  6627.               var $91 = HEAP[$text_addr_i10_i];
  6628.               if ((HEAP[$end_i_i] - HEAP[$text_addr_i10_i] | 0) >= 4) {
  6629.                 var $94 = $91;
  6630.                 break L455;
  6631.               }
  6632.               HEAP[$text_addr_i10_i] = $91 - 1 | 0;
  6633.               if (HEAP[$start_addr_i_i] >>> 0 >= HEAP[$text_addr_i10_i] >>> 0) {
  6634.                 label = 355;
  6635.                 break L455;
  6636.               }
  6637.             }
  6638.           } else {
  6639.             label = 355;
  6640.           }
  6641.         } while (0);
  6642.         if (label == 355) {
  6643.           label = 0;
  6644.           var $94 = HEAP[$text_addr_i10_i];
  6645.         }
  6646.         var $94;
  6647.         var $conv4_i_i = HEAP[$94] & 255;
  6648.         HEAP[$c_i_i] = $conv4_i_i;
  6649.         do {
  6650.           if ($conv4_i_i >>> 0 < 128) {
  6651.             HEAP[$len_i12_i] = 1;
  6652.             HEAP[$mask_i11_i] = 127;
  6653.             label = 367;
  6654.             break;
  6655.           } else {
  6656.             if ((HEAP[$c_i_i] & 224 | 0) == 192) {
  6657.               HEAP[$len_i12_i] = 2;
  6658.               HEAP[$mask_i11_i] = 31;
  6659.               label = 367;
  6660.               break;
  6661.             }
  6662.             if ((HEAP[$c_i_i] & 240 | 0) == 224) {
  6663.               HEAP[$len_i12_i] = 3;
  6664.               HEAP[$mask_i11_i] = 15;
  6665.               label = 367;
  6666.               break;
  6667.             }
  6668.             if ((HEAP[$c_i_i] & 248 | 0) == 240) {
  6669.               HEAP[$len_i12_i] = 4;
  6670.               HEAP[$mask_i11_i] = 7;
  6671.               label = 367;
  6672.               break;
  6673.             } else {
  6674.               HEAP[$len_i12_i] = 0;
  6675.               label = 368;
  6676.               break;
  6677.             }
  6678.           }
  6679.         } while (0);
  6680.         do {
  6681.           if (label == 367) {
  6682.             label = 0;
  6683.             if ((HEAP[$end_i_i] - HEAP[$text_addr_i10_i] | 0) != (HEAP[$len_i12_i] | 0)) {
  6684.               label = 368;
  6685.               break;
  6686.             }
  6687.             HEAP[$result_i_i] = HEAP[$mask_i11_i] & HEAP[$c_i_i];
  6688.             HEAP[$i_i_i] = 1;
  6689.             var $108 = HEAP[$result_i_i];
  6690.             L478 : do {
  6691.               if (HEAP[$i_i_i] >>> 0 < HEAP[$len_i12_i] >>> 0) {
  6692.                 var $109 = $108;
  6693.                 while (1) {
  6694.                   var $109;
  6695.                   HEAP[$result_i_i] = $109 << 6;
  6696.                   HEAP[$result_i_i] = HEAP[HEAP[$text_addr_i10_i] + HEAP[$i_i_i] | 0] & 63 | HEAP[$result_i_i];
  6697.                   HEAP[$i_i_i] = HEAP[$i_i_i] + 1 | 0;
  6698.                   var $117 = HEAP[$result_i_i];
  6699.                   if (HEAP[$i_i_i] >>> 0 < HEAP[$len_i12_i] >>> 0) {
  6700.                     var $109 = $117;
  6701.                   } else {
  6702.                     var $_lcssa_i_i = $117;
  6703.                     break L478;
  6704.                   }
  6705.                 }
  6706.               } else {
  6707.                 var $_lcssa_i_i = $108;
  6708.               }
  6709.             } while (0);
  6710.             var $_lcssa_i_i;
  6711.             HEAP[HEAP[$unicode_addr_i_i]] = $_lcssa_i_i;
  6712.             HEAP[$retval_i_i] = HEAP[$text_addr_i10_i];
  6713.             break;
  6714.           }
  6715.         } while (0);
  6716.         if (label == 368) {
  6717.           label = 0;
  6718.           HEAP[HEAP[$unicode_addr_i_i]] = -1;
  6719.           HEAP[$retval_i_i] = HEAP[$end_i_i] - 1 | 0;
  6720.         }
  6721.         HEAP[$prev_i] = HEAP[$retval_i_i];
  6722.         var $121 = HEAP[$u_i];
  6723.         var $arrayidx21_i = HEAP[$buffer_addr_i] + 192 | 0;
  6724.         var $123 = HEAP[$arrayidx21_i];
  6725.         HEAP[$arrayidx21_i] = $123 + 1 | 0;
  6726.         HEAP[($123 << 2) + HEAP[$buffer_addr_i] + 152 | 0] = $121;
  6727.         if (HEAP[$start_i] >>> 0 >= HEAP[$prev_i] >>> 0) {
  6728.           break L448;
  6729.         }
  6730.       }
  6731.     }
  6732.   } while (0);
  6733.   HEAP[$next_i] = HEAP[$text_addr_i] + HEAP[$item_offset_addr_i] | 0;
  6734.   HEAP[$end_i] = HEAP[$next_i] + HEAP[$item_length_addr_i] | 0;
  6735.   L486 : do {
  6736.     if (HEAP[$next_i] >>> 0 < HEAP[$end_i] >>> 0) {
  6737.       while (1) {
  6738.         HEAP[$old_next_i] = HEAP[$next_i];
  6739.         var $call31_i = __ZL11hb_utf_nextPKhS0_Pj(HEAP[$next_i], HEAP[$end_i], $u30_i);
  6740.         HEAP[$next_i] = $call31_i;
  6741.         var $145 = HEAP[$u30_i];
  6742.         var $sub_ptr_sub_i = HEAP[$old_next_i] - HEAP[$text_addr_i] | 0;
  6743.         HEAP[$this_addr_i6_i] = HEAP[$buffer_addr_i];
  6744.         HEAP[$codepoint_addr_i_i] = $145;
  6745.         HEAP[$cluster_addr_i_i] = $sub_ptr_sub_i;
  6746.         var $this1_i7_i = HEAP[$this_addr_i6_i];
  6747.         if (__ZN11hb_buffer_t6ensureEj($this1_i7_i, HEAP[$this1_i7_i + 84 | 0] + 1 | 0)) {
  6748.           HEAP[$glyph_i_i] = HEAP[$this1_i7_i + 96 | 0] + (HEAP[$this1_i7_i + 84 | 0] * 20 & -1) | 0;
  6749.           var $152 = HEAP[$glyph_i_i];
  6750.           for (var $$dest = $152, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  6751.             HEAP[$$dest] = 0;
  6752.           }
  6753.           HEAP[HEAP[$glyph_i_i] | 0] = HEAP[$codepoint_addr_i_i];
  6754.           HEAP[HEAP[$glyph_i_i] + 4 | 0] = 1;
  6755.           HEAP[HEAP[$glyph_i_i] + 8 | 0] = HEAP[$cluster_addr_i_i];
  6756.           var $len5_i_i = $this1_i7_i + 84 | 0;
  6757.           HEAP[$len5_i_i] = HEAP[$len5_i_i] + 1 | 0;
  6758.         }
  6759.         if (HEAP[$next_i] >>> 0 >= HEAP[$end_i] >>> 0) {
  6760.           break L486;
  6761.         }
  6762.       }
  6763.     }
  6764.   } while (0);
  6765.   HEAP[$this_addr_i1_i] = HEAP[$buffer_addr_i];
  6766.   HEAP[$side_addr_i2_i] = 1;
  6767.   HEAP[(HEAP[$side_addr_i2_i] << 2) + HEAP[$this_addr_i1_i] + 192 | 0] = 0;
  6768.   HEAP[$end_i] = HEAP[$text_addr_i] + HEAP[$text_length_addr_i] | 0;
  6769.   L494 : do {
  6770.     if (HEAP[$next_i] >>> 0 < HEAP[$end_i] >>> 0) {
  6771.       while (1) {
  6772.         if (HEAP[HEAP[$buffer_addr_i] + 196 | 0] >>> 0 >= 5) {
  6773.           break L494;
  6774.         }
  6775.         var $call43_i = __ZL11hb_utf_nextPKhS0_Pj(HEAP[$next_i], HEAP[$end_i], $u42_i);
  6776.         HEAP[$next_i] = $call43_i;
  6777.         var $175 = HEAP[$u42_i];
  6778.         var $arrayidx45_i = HEAP[$buffer_addr_i] + 196 | 0;
  6779.         var $177 = HEAP[$arrayidx45_i];
  6780.         HEAP[$arrayidx45_i] = $177 + 1 | 0;
  6781.         HEAP[($177 << 2) + HEAP[$buffer_addr_i] + 172 | 0] = $175;
  6782.         if (HEAP[$next_i] >>> 0 >= HEAP[$end_i] >>> 0) {
  6783.           break L494;
  6784.         }
  6785.       }
  6786.     }
  6787.   } while (0);
  6788.   HEAP[HEAP[$buffer_addr_i] + 72 | 0] = 1;
  6789.   var $182 = $buffer_addr_i;
  6790.   var $183 = $text_addr_i;
  6791.   var $184 = $text_length_addr_i;
  6792.   var $185 = $item_offset_addr_i;
  6793.   var $186 = $item_length_addr_i;
  6794.   var $187 = $prev_i;
  6795.   var $188 = $start_i;
  6796.   var $189 = $u_i;
  6797.   var $190 = $next_i;
  6798.   var $191 = $end_i;
  6799.   var $192 = $u30_i;
  6800.   var $193 = $old_next_i;
  6801.   var $194 = $u42_i;
  6802.   STACKTOP = __stackBase__;
  6803.   return;
  6804. }
  6805. function _hb_buffer_add_utf16($buffer, $text, $text_length, $item_offset, $item_length) {
  6806.   var label = 0;
  6807.   var __stackBase__ = STACKTOP;
  6808.   STACKTOP = STACKTOP + 242 | 0;
  6809.   var $this_addr_i137_i = __stackBase__;
  6810.   var $side_addr_i138_i = __stackBase__ + 4;
  6811.   var $retval_i1_i_i = __stackBase__ + 8;
  6812.   var $u_addr_i2_i_i = __stackBase__ + 9;
  6813.   var $lo_addr_i3_i_i = __stackBase__ + 13;
  6814.   var $hi_addr_i4_i_i = __stackBase__ + 17;
  6815.   var $retval_i_i_i = __stackBase__ + 21;
  6816.   var $u_addr_i_i_i = __stackBase__ + 22;
  6817.   var $lo_addr_i_i_i = __stackBase__ + 26;
  6818.   var $hi_addr_i_i_i = __stackBase__ + 30;
  6819.   var $text_addr_i121_i = __stackBase__ + 34;
  6820.   var $start_addr_i_i = __stackBase__ + 38;
  6821.   var $unicode_addr_i122_i = __stackBase__ + 42;
  6822.   var $c_i123_i = __stackBase__ + 46;
  6823.   var $h_i_i = __stackBase__ + 50;
  6824.   var $retval_i92_i = __stackBase__ + 54;
  6825.   var $u_addr_i93_i = __stackBase__ + 55;
  6826.   var $lo_addr_i94_i = __stackBase__ + 59;
  6827.   var $hi_addr_i95_i = __stackBase__ + 63;
  6828.   var $retval_i63_i = __stackBase__ + 67;
  6829.   var $u_addr_i64_i = __stackBase__ + 68;
  6830.   var $lo_addr_i65_i = __stackBase__ + 72;
  6831.   var $hi_addr_i66_i = __stackBase__ + 76;
  6832.   var $text_addr_i43_i = __stackBase__ + 80;
  6833.   var $end_addr_i44_i = __stackBase__ + 84;
  6834.   var $unicode_addr_i45_i = __stackBase__ + 88;
  6835.   var $c_i46_i = __stackBase__ + 92;
  6836.   var $l_i47_i = __stackBase__ + 96;
  6837.   var $text_addr_i39_i = __stackBase__ + 100;
  6838.   var $l_i40_i = __stackBase__ + 104;
  6839.   var $this_addr_i35_i = __stackBase__ + 108;
  6840.   var $codepoint_addr_i_i = __stackBase__ + 112;
  6841.   var $cluster_addr_i_i = __stackBase__ + 116;
  6842.   var $glyph_i_i = __stackBase__ + 120;
  6843.   var $this_addr_i_i = __stackBase__ + 124;
  6844.   var $side_addr_i_i = __stackBase__ + 128;
  6845.   var $retval_i6_i = __stackBase__ + 132;
  6846.   var $u_addr_i7_i = __stackBase__ + 133;
  6847.   var $lo_addr_i8_i = __stackBase__ + 137;
  6848.   var $hi_addr_i9_i = __stackBase__ + 141;
  6849.   var $retval_i_i = __stackBase__ + 145;
  6850.   var $u_addr_i_i = __stackBase__ + 146;
  6851.   var $lo_addr_i_i = __stackBase__ + 150;
  6852.   var $hi_addr_i_i = __stackBase__ + 154;
  6853.   var $text_addr_i_i = __stackBase__ + 158;
  6854.   var $end_addr_i_i = __stackBase__ + 162;
  6855.   var $unicode_addr_i_i = __stackBase__ + 166;
  6856.   var $c_i_i = __stackBase__ + 170;
  6857.   var $l_i_i = __stackBase__ + 174;
  6858.   var $this_addr_i_i_i_i = __stackBase__ + 178;
  6859.   var $this_addr_i_i_i = __stackBase__ + 182;
  6860.   var $obj_addr_i_i = __stackBase__ + 186;
  6861.   var $buffer_addr_i = __stackBase__ + 190;
  6862.   var $text_addr_i = __stackBase__ + 194;
  6863.   var $text_length_addr_i = __stackBase__ + 198;
  6864.   var $item_offset_addr_i = __stackBase__ + 202;
  6865.   var $item_length_addr_i = __stackBase__ + 206;
  6866.   var $prev_i = __stackBase__ + 210;
  6867.   var $start_i = __stackBase__ + 214;
  6868.   var $u_i = __stackBase__ + 218;
  6869.   var $next_i = __stackBase__ + 222;
  6870.   var $end_i = __stackBase__ + 226;
  6871.   var $u30_i = __stackBase__ + 230;
  6872.   var $old_next_i = __stackBase__ + 234;
  6873.   var $u42_i = __stackBase__ + 238;
  6874.   HEAP[$buffer_addr_i] = $buffer;
  6875.   HEAP[$text_addr_i] = $text;
  6876.   HEAP[$text_length_addr_i] = $text_length;
  6877.   HEAP[$item_offset_addr_i] = $item_offset;
  6878.   HEAP[$item_length_addr_i] = $item_length;
  6879.   do {
  6880.     if ((HEAP[HEAP[$buffer_addr_i] + 72 | 0] | 0) != 1) {
  6881.       if ((HEAP[HEAP[$buffer_addr_i] + 84 | 0] | 0) != 0) {
  6882.         ___assert_func(102952, 914, 110008, 103496);
  6883.       }
  6884.       if ((HEAP[HEAP[$buffer_addr_i] + 72 | 0] | 0) == 0) {
  6885.         break;
  6886.       }
  6887.       ___assert_func(102952, 914, 110008, 103496);
  6888.     }
  6889.   } while (0);
  6890.   HEAP[$obj_addr_i_i] = HEAP[$buffer_addr_i];
  6891.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  6892.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  6893.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  6894.     var $390 = $buffer_addr_i;
  6895.     var $391 = $text_addr_i;
  6896.     var $392 = $text_length_addr_i;
  6897.     var $393 = $item_offset_addr_i;
  6898.     var $394 = $item_length_addr_i;
  6899.     var $395 = $prev_i;
  6900.     var $396 = $start_i;
  6901.     var $397 = $u_i;
  6902.     var $398 = $next_i;
  6903.     var $399 = $end_i;
  6904.     var $400 = $u30_i;
  6905.     var $401 = $old_next_i;
  6906.     var $402 = $u42_i;
  6907.     STACKTOP = __stackBase__;
  6908.     return;
  6909.   }
  6910.   if ((HEAP[$text_length_addr_i] | 0) == -1) {
  6911.     HEAP[$text_addr_i39_i] = HEAP[$text_addr_i];
  6912.     HEAP[$l_i40_i] = 0;
  6913.     var $37 = HEAP[$text_addr_i39_i];
  6914.     HEAP[$text_addr_i39_i] = $37 + 2 | 0;
  6915.     var $39 = HEAP[$l_i40_i];
  6916.     L513 : do {
  6917.       if (HEAP[$37] << 16 >> 16 != 0) {
  6918.         var $40 = $39;
  6919.         while (1) {
  6920.           var $40;
  6921.           HEAP[$l_i40_i] = $40 + 1 | 0;
  6922.           var $41 = HEAP[$text_addr_i39_i];
  6923.           HEAP[$text_addr_i39_i] = $41 + 2 | 0;
  6924.           var $43 = HEAP[$l_i40_i];
  6925.           if (HEAP[$41] << 16 >> 16 != 0) {
  6926.             var $40 = $43;
  6927.           } else {
  6928.             var $_lcssa_i_i = $43;
  6929.             break L513;
  6930.           }
  6931.         }
  6932.       } else {
  6933.         var $_lcssa_i_i = $39;
  6934.       }
  6935.     } while (0);
  6936.     var $_lcssa_i_i;
  6937.     HEAP[$text_length_addr_i] = $_lcssa_i_i;
  6938.   }
  6939.   if ((HEAP[$item_length_addr_i] | 0) == -1) {
  6940.     HEAP[$item_length_addr_i] = HEAP[$text_length_addr_i] - HEAP[$item_offset_addr_i] | 0;
  6941.   }
  6942.   __ZN11hb_buffer_t6ensureEj(HEAP[$buffer_addr_i], HEAP[HEAP[$buffer_addr_i] + 84 | 0] + Math.floor((HEAP[$item_length_addr_i] << 1 >>> 0) / 4) | 0);
  6943.   L521 : do {
  6944.     if ((HEAP[HEAP[$buffer_addr_i] + 84 | 0] | 0) == 0) {
  6945.       if (HEAP[$item_offset_addr_i] >>> 0 <= 0) {
  6946.         break;
  6947.       }
  6948.       HEAP[$this_addr_i137_i] = HEAP[$buffer_addr_i];
  6949.       HEAP[$side_addr_i138_i] = 0;
  6950.       HEAP[(HEAP[$side_addr_i138_i] << 2) + HEAP[$this_addr_i137_i] + 192 | 0] = 0;
  6951.       HEAP[$prev_i] = (HEAP[$item_offset_addr_i] << 1) + HEAP[$text_addr_i] | 0;
  6952.       HEAP[$start_i] = HEAP[$text_addr_i];
  6953.       if (HEAP[$start_i] >>> 0 >= HEAP[$prev_i] >>> 0) {
  6954.         break;
  6955.       }
  6956.       while (1) {
  6957.         if (HEAP[HEAP[$buffer_addr_i] + 192 | 0] >>> 0 >= 5) {
  6958.           break L521;
  6959.         }
  6960.         var $96 = HEAP[$start_i];
  6961.         HEAP[$text_addr_i121_i] = HEAP[$prev_i];
  6962.         HEAP[$start_addr_i_i] = $96;
  6963.         HEAP[$unicode_addr_i122_i] = $u_i;
  6964.         var $incdec_ptr_i124_i = HEAP[$text_addr_i121_i] - 2 | 0;
  6965.         HEAP[$text_addr_i121_i] = $incdec_ptr_i124_i;
  6966.         HEAP[$c_i123_i] = HEAP[$incdec_ptr_i124_i] & 65535;
  6967.         HEAP[$u_addr_i_i_i] = HEAP[$c_i123_i];
  6968.         HEAP[$lo_addr_i_i_i] = 56320;
  6969.         HEAP[$hi_addr_i_i_i] = 57343;
  6970.         do {
  6971.           if (((HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) & HEAP[$lo_addr_i_i_i] | 0) == 0) {
  6972.             if (((HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) & HEAP[$hi_addr_i_i_i] | 0) != (HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i] | 0)) {
  6973.               label = 407;
  6974.               break;
  6975.             }
  6976.             if (((HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) + 1 & (HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) | 0) != 0) {
  6977.               label = 407;
  6978.               break;
  6979.             }
  6980.             var $cmp12_i_i_i = ((HEAP[$lo_addr_i_i_i] ^ -1 ^ HEAP[$hi_addr_i_i_i]) & HEAP[$u_addr_i_i_i] | 0) == (HEAP[$lo_addr_i_i_i] | 0);
  6981.             HEAP[$retval_i_i_i] = $cmp12_i_i_i;
  6982.             var $121 = $cmp12_i_i_i;
  6983.             break;
  6984.           } else {
  6985.             label = 407;
  6986.           }
  6987.         } while (0);
  6988.         if (label == 407) {
  6989.           label = 0;
  6990.           if (HEAP[$lo_addr_i_i_i] >>> 0 <= HEAP[$u_addr_i_i_i] >>> 0) {
  6991.             var $120 = HEAP[$u_addr_i_i_i] >>> 0 <= HEAP[$hi_addr_i_i_i] >>> 0;
  6992.           } else {
  6993.             var $120 = 0;
  6994.           }
  6995.           var $120;
  6996.           HEAP[$retval_i_i_i] = $120;
  6997.           var $121 = $120;
  6998.         }
  6999.         var $121;
  7000.         L538 : do {
  7001.           if ($121) {
  7002.             do {
  7003.               if (HEAP[$start_addr_i_i] >>> 0 < HEAP[$text_addr_i121_i] >>> 0) {
  7004.                 HEAP[$h_i_i] = HEAP[HEAP[$text_addr_i121_i] - 2 | 0] & 65535;
  7005.                 HEAP[$u_addr_i2_i_i] = HEAP[$h_i_i];
  7006.                 HEAP[$lo_addr_i3_i_i] = 55296;
  7007.                 HEAP[$hi_addr_i4_i_i] = 56319;
  7008.                 do {
  7009.                   if (((HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) & HEAP[$lo_addr_i3_i_i] | 0) == 0) {
  7010.                     if (((HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) & HEAP[$hi_addr_i4_i_i] | 0) != (HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i] | 0)) {
  7011.                       label = 416;
  7012.                       break;
  7013.                     }
  7014.                     if (((HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) + 1 & (HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) | 0) != 0) {
  7015.                       label = 416;
  7016.                       break;
  7017.                     }
  7018.                     var $cmp12_i22_i_i = ((HEAP[$lo_addr_i3_i_i] ^ -1 ^ HEAP[$hi_addr_i4_i_i]) & HEAP[$u_addr_i2_i_i] | 0) == (HEAP[$lo_addr_i3_i_i] | 0);
  7019.                     HEAP[$retval_i1_i_i] = $cmp12_i22_i_i;
  7020.                     var $148 = $cmp12_i22_i_i;
  7021.                     break;
  7022.                   } else {
  7023.                     label = 416;
  7024.                   }
  7025.                 } while (0);
  7026.                 if (label == 416) {
  7027.                   label = 0;
  7028.                   if (HEAP[$lo_addr_i3_i_i] >>> 0 <= HEAP[$u_addr_i2_i_i] >>> 0) {
  7029.                     var $147 = HEAP[$u_addr_i2_i_i] >>> 0 <= HEAP[$hi_addr_i4_i_i] >>> 0;
  7030.                   } else {
  7031.                     var $147 = 0;
  7032.                   }
  7033.                   var $147;
  7034.                   HEAP[$retval_i1_i_i] = $147;
  7035.                   var $148 = $147;
  7036.                 }
  7037.                 var $148;
  7038.                 if (!$148) {
  7039.                   break;
  7040.                 }
  7041.                 HEAP[HEAP[$unicode_addr_i122_i]] = (HEAP[$h_i_i] << 10) + (HEAP[$c_i123_i] - 56613888) | 0;
  7042.                 HEAP[$text_addr_i121_i] = HEAP[$text_addr_i121_i] - 2 | 0;
  7043.                 break L538;
  7044.               }
  7045.             } while (0);
  7046.             HEAP[HEAP[$unicode_addr_i122_i]] = -1;
  7047.           } else {
  7048.             HEAP[HEAP[$unicode_addr_i122_i]] = HEAP[$c_i123_i];
  7049.           }
  7050.         } while (0);
  7051.         HEAP[$prev_i] = HEAP[$text_addr_i121_i];
  7052.         var $157 = HEAP[$u_i];
  7053.         var $arrayidx21_i = HEAP[$buffer_addr_i] + 192 | 0;
  7054.         var $159 = HEAP[$arrayidx21_i];
  7055.         HEAP[$arrayidx21_i] = $159 + 1 | 0;
  7056.         HEAP[($159 << 2) + HEAP[$buffer_addr_i] + 152 | 0] = $157;
  7057.         if (HEAP[$start_i] >>> 0 >= HEAP[$prev_i] >>> 0) {
  7058.           break L521;
  7059.         }
  7060.       }
  7061.     }
  7062.   } while (0);
  7063.   HEAP[$next_i] = (HEAP[$item_offset_addr_i] << 1) + HEAP[$text_addr_i] | 0;
  7064.   HEAP[$end_i] = (HEAP[$item_length_addr_i] << 1) + HEAP[$next_i] | 0;
  7065.   L557 : do {
  7066.     if (HEAP[$next_i] >>> 0 < HEAP[$end_i] >>> 0) {
  7067.       while (1) {
  7068.         HEAP[$old_next_i] = HEAP[$next_i];
  7069.         var $205 = HEAP[$end_i];
  7070.         HEAP[$text_addr_i43_i] = HEAP[$next_i];
  7071.         HEAP[$end_addr_i44_i] = $205;
  7072.         HEAP[$unicode_addr_i45_i] = $u30_i;
  7073.         var $206 = HEAP[$text_addr_i43_i];
  7074.         HEAP[$text_addr_i43_i] = $206 + 2 | 0;
  7075.         HEAP[$c_i46_i] = HEAP[$206] & 65535;
  7076.         HEAP[$u_addr_i93_i] = HEAP[$c_i46_i];
  7077.         HEAP[$lo_addr_i94_i] = 55296;
  7078.         HEAP[$hi_addr_i95_i] = 56319;
  7079.         do {
  7080.           if (((HEAP[$hi_addr_i95_i] ^ HEAP[$lo_addr_i94_i]) & HEAP[$lo_addr_i94_i] | 0) == 0) {
  7081.             if (((HEAP[$hi_addr_i95_i] ^ HEAP[$lo_addr_i94_i]) & HEAP[$hi_addr_i95_i] | 0) != (HEAP[$hi_addr_i95_i] ^ HEAP[$lo_addr_i94_i] | 0)) {
  7082.               label = 430;
  7083.               break;
  7084.             }
  7085.             if (((HEAP[$hi_addr_i95_i] ^ HEAP[$lo_addr_i94_i]) + 1 & (HEAP[$hi_addr_i95_i] ^ HEAP[$lo_addr_i94_i]) | 0) != 0) {
  7086.               label = 430;
  7087.               break;
  7088.             }
  7089.             var $cmp12_i113_i = ((HEAP[$lo_addr_i94_i] ^ -1 ^ HEAP[$hi_addr_i95_i]) & HEAP[$u_addr_i93_i] | 0) == (HEAP[$lo_addr_i94_i] | 0);
  7090.             HEAP[$retval_i92_i] = $cmp12_i113_i;
  7091.             var $230 = $cmp12_i113_i;
  7092.             break;
  7093.           } else {
  7094.             label = 430;
  7095.           }
  7096.         } while (0);
  7097.         if (label == 430) {
  7098.           label = 0;
  7099.           if (HEAP[$lo_addr_i94_i] >>> 0 <= HEAP[$u_addr_i93_i] >>> 0) {
  7100.             var $229 = HEAP[$u_addr_i93_i] >>> 0 <= HEAP[$hi_addr_i95_i] >>> 0;
  7101.           } else {
  7102.             var $229 = 0;
  7103.           }
  7104.           var $229;
  7105.           HEAP[$retval_i92_i] = $229;
  7106.           var $230 = $229;
  7107.         }
  7108.         var $230;
  7109.         L571 : do {
  7110.           if ($230) {
  7111.             do {
  7112.               if (HEAP[$text_addr_i43_i] >>> 0 < HEAP[$end_addr_i44_i] >>> 0) {
  7113.                 HEAP[$l_i47_i] = HEAP[HEAP[$text_addr_i43_i]] & 65535;
  7114.                 HEAP[$u_addr_i64_i] = HEAP[$l_i47_i];
  7115.                 HEAP[$lo_addr_i65_i] = 56320;
  7116.                 HEAP[$hi_addr_i66_i] = 57343;
  7117.                 do {
  7118.                   if (((HEAP[$hi_addr_i66_i] ^ HEAP[$lo_addr_i65_i]) & HEAP[$lo_addr_i65_i] | 0) == 0) {
  7119.                     if (((HEAP[$hi_addr_i66_i] ^ HEAP[$lo_addr_i65_i]) & HEAP[$hi_addr_i66_i] | 0) != (HEAP[$hi_addr_i66_i] ^ HEAP[$lo_addr_i65_i] | 0)) {
  7120.                       label = 439;
  7121.                       break;
  7122.                     }
  7123.                     if (((HEAP[$hi_addr_i66_i] ^ HEAP[$lo_addr_i65_i]) + 1 & (HEAP[$hi_addr_i66_i] ^ HEAP[$lo_addr_i65_i]) | 0) != 0) {
  7124.                       label = 439;
  7125.                       break;
  7126.                     }
  7127.                     var $cmp12_i84_i = ((HEAP[$lo_addr_i65_i] ^ -1 ^ HEAP[$hi_addr_i66_i]) & HEAP[$u_addr_i64_i] | 0) == (HEAP[$lo_addr_i65_i] | 0);
  7128.                     HEAP[$retval_i63_i] = $cmp12_i84_i;
  7129.                     var $257 = $cmp12_i84_i;
  7130.                     break;
  7131.                   } else {
  7132.                     label = 439;
  7133.                   }
  7134.                 } while (0);
  7135.                 if (label == 439) {
  7136.                   label = 0;
  7137.                   if (HEAP[$lo_addr_i65_i] >>> 0 <= HEAP[$u_addr_i64_i] >>> 0) {
  7138.                     var $256 = HEAP[$u_addr_i64_i] >>> 0 <= HEAP[$hi_addr_i66_i] >>> 0;
  7139.                   } else {
  7140.                     var $256 = 0;
  7141.                   }
  7142.                   var $256;
  7143.                   HEAP[$retval_i63_i] = $256;
  7144.                   var $257 = $256;
  7145.                 }
  7146.                 var $257;
  7147.                 if (!$257) {
  7148.                   break;
  7149.                 }
  7150.                 HEAP[HEAP[$unicode_addr_i45_i]] = (HEAP[$c_i46_i] << 10) + (HEAP[$l_i47_i] - 56613888) | 0;
  7151.                 HEAP[$text_addr_i43_i] = HEAP[$text_addr_i43_i] + 2 | 0;
  7152.                 break L571;
  7153.               }
  7154.             } while (0);
  7155.             HEAP[HEAP[$unicode_addr_i45_i]] = -1;
  7156.           } else {
  7157.             HEAP[HEAP[$unicode_addr_i45_i]] = HEAP[$c_i46_i];
  7158.           }
  7159.         } while (0);
  7160.         HEAP[$next_i] = HEAP[$text_addr_i43_i];
  7161.         var $267 = HEAP[$u30_i];
  7162.         var $sub_ptr_div_i = (HEAP[$old_next_i] - HEAP[$text_addr_i] | 0) / 2 & -1;
  7163.         HEAP[$this_addr_i35_i] = HEAP[$buffer_addr_i];
  7164.         HEAP[$codepoint_addr_i_i] = $267;
  7165.         HEAP[$cluster_addr_i_i] = $sub_ptr_div_i;
  7166.         var $this1_i36_i = HEAP[$this_addr_i35_i];
  7167.         if (__ZN11hb_buffer_t6ensureEj($this1_i36_i, HEAP[$this1_i36_i + 84 | 0] + 1 | 0)) {
  7168.           HEAP[$glyph_i_i] = HEAP[$this1_i36_i + 96 | 0] + (HEAP[$this1_i36_i + 84 | 0] * 20 & -1) | 0;
  7169.           var $274 = HEAP[$glyph_i_i];
  7170.           for (var $$dest = $274, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  7171.             HEAP[$$dest] = 0;
  7172.           }
  7173.           HEAP[HEAP[$glyph_i_i] | 0] = HEAP[$codepoint_addr_i_i];
  7174.           HEAP[HEAP[$glyph_i_i] + 4 | 0] = 1;
  7175.           HEAP[HEAP[$glyph_i_i] + 8 | 0] = HEAP[$cluster_addr_i_i];
  7176.           var $len5_i_i = $this1_i36_i + 84 | 0;
  7177.           HEAP[$len5_i_i] = HEAP[$len5_i_i] + 1 | 0;
  7178.         }
  7179.         if (HEAP[$next_i] >>> 0 >= HEAP[$end_i] >>> 0) {
  7180.           break L557;
  7181.         }
  7182.       }
  7183.     }
  7184.   } while (0);
  7185.   HEAP[$this_addr_i_i] = HEAP[$buffer_addr_i];
  7186.   HEAP[$side_addr_i_i] = 1;
  7187.   HEAP[(HEAP[$side_addr_i_i] << 2) + HEAP[$this_addr_i_i] + 192 | 0] = 0;
  7188.   HEAP[$end_i] = (HEAP[$text_length_addr_i] << 1) + HEAP[$text_addr_i] | 0;
  7189.   L593 : do {
  7190.     if (HEAP[$next_i] >>> 0 < HEAP[$end_i] >>> 0) {
  7191.       while (1) {
  7192.         if (HEAP[HEAP[$buffer_addr_i] + 196 | 0] >>> 0 >= 5) {
  7193.           break L593;
  7194.         }
  7195.         var $322 = HEAP[$end_i];
  7196.         HEAP[$text_addr_i_i] = HEAP[$next_i];
  7197.         HEAP[$end_addr_i_i] = $322;
  7198.         HEAP[$unicode_addr_i_i] = $u42_i;
  7199.         var $323 = HEAP[$text_addr_i_i];
  7200.         HEAP[$text_addr_i_i] = $323 + 2 | 0;
  7201.         HEAP[$c_i_i] = HEAP[$323] & 65535;
  7202.         HEAP[$u_addr_i7_i] = HEAP[$c_i_i];
  7203.         HEAP[$lo_addr_i8_i] = 55296;
  7204.         HEAP[$hi_addr_i9_i] = 56319;
  7205.         do {
  7206.           if (((HEAP[$hi_addr_i9_i] ^ HEAP[$lo_addr_i8_i]) & HEAP[$lo_addr_i8_i] | 0) == 0) {
  7207.             if (((HEAP[$hi_addr_i9_i] ^ HEAP[$lo_addr_i8_i]) & HEAP[$hi_addr_i9_i] | 0) != (HEAP[$hi_addr_i9_i] ^ HEAP[$lo_addr_i8_i] | 0)) {
  7208.               label = 456;
  7209.               break;
  7210.             }
  7211.             if (((HEAP[$hi_addr_i9_i] ^ HEAP[$lo_addr_i8_i]) + 1 & (HEAP[$hi_addr_i9_i] ^ HEAP[$lo_addr_i8_i]) | 0) != 0) {
  7212.               label = 456;
  7213.               break;
  7214.             }
  7215.             var $cmp12_i27_i = ((HEAP[$lo_addr_i8_i] ^ -1 ^ HEAP[$hi_addr_i9_i]) & HEAP[$u_addr_i7_i] | 0) == (HEAP[$lo_addr_i8_i] | 0);
  7216.             HEAP[$retval_i6_i] = $cmp12_i27_i;
  7217.             var $347 = $cmp12_i27_i;
  7218.             break;
  7219.           } else {
  7220.             label = 456;
  7221.           }
  7222.         } while (0);
  7223.         if (label == 456) {
  7224.           label = 0;
  7225.           if (HEAP[$lo_addr_i8_i] >>> 0 <= HEAP[$u_addr_i7_i] >>> 0) {
  7226.             var $346 = HEAP[$u_addr_i7_i] >>> 0 <= HEAP[$hi_addr_i9_i] >>> 0;
  7227.           } else {
  7228.             var $346 = 0;
  7229.           }
  7230.           var $346;
  7231.           HEAP[$retval_i6_i] = $346;
  7232.           var $347 = $346;
  7233.         }
  7234.         var $347;
  7235.         L608 : do {
  7236.           if ($347) {
  7237.             do {
  7238.               if (HEAP[$text_addr_i_i] >>> 0 < HEAP[$end_addr_i_i] >>> 0) {
  7239.                 HEAP[$l_i_i] = HEAP[HEAP[$text_addr_i_i]] & 65535;
  7240.                 HEAP[$u_addr_i_i] = HEAP[$l_i_i];
  7241.                 HEAP[$lo_addr_i_i] = 56320;
  7242.                 HEAP[$hi_addr_i_i] = 57343;
  7243.                 do {
  7244.                   if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$lo_addr_i_i] | 0) == 0) {
  7245.                     if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$hi_addr_i_i] | 0) != (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i] | 0)) {
  7246.                       label = 465;
  7247.                       break;
  7248.                     }
  7249.                     if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) + 1 & (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) | 0) != 0) {
  7250.                       label = 465;
  7251.                       break;
  7252.                     }
  7253.                     var $cmp12_i_i = ((HEAP[$lo_addr_i_i] ^ -1 ^ HEAP[$hi_addr_i_i]) & HEAP[$u_addr_i_i] | 0) == (HEAP[$lo_addr_i_i] | 0);
  7254.                     HEAP[$retval_i_i] = $cmp12_i_i;
  7255.                     var $374 = $cmp12_i_i;
  7256.                     break;
  7257.                   } else {
  7258.                     label = 465;
  7259.                   }
  7260.                 } while (0);
  7261.                 if (label == 465) {
  7262.                   label = 0;
  7263.                   if (HEAP[$lo_addr_i_i] >>> 0 <= HEAP[$u_addr_i_i] >>> 0) {
  7264.                     var $373 = HEAP[$u_addr_i_i] >>> 0 <= HEAP[$hi_addr_i_i] >>> 0;
  7265.                   } else {
  7266.                     var $373 = 0;
  7267.                   }
  7268.                   var $373;
  7269.                   HEAP[$retval_i_i] = $373;
  7270.                   var $374 = $373;
  7271.                 }
  7272.                 var $374;
  7273.                 if (!$374) {
  7274.                   break;
  7275.                 }
  7276.                 HEAP[HEAP[$unicode_addr_i_i]] = (HEAP[$c_i_i] << 10) + (HEAP[$l_i_i] - 56613888) | 0;
  7277.                 HEAP[$text_addr_i_i] = HEAP[$text_addr_i_i] + 2 | 0;
  7278.                 break L608;
  7279.               }
  7280.             } while (0);
  7281.             HEAP[HEAP[$unicode_addr_i_i]] = -1;
  7282.           } else {
  7283.             HEAP[HEAP[$unicode_addr_i_i]] = HEAP[$c_i_i];
  7284.           }
  7285.         } while (0);
  7286.         HEAP[$next_i] = HEAP[$text_addr_i_i];
  7287.         var $383 = HEAP[$u42_i];
  7288.         var $arrayidx45_i = HEAP[$buffer_addr_i] + 196 | 0;
  7289.         var $385 = HEAP[$arrayidx45_i];
  7290.         HEAP[$arrayidx45_i] = $385 + 1 | 0;
  7291.         HEAP[($385 << 2) + HEAP[$buffer_addr_i] + 172 | 0] = $383;
  7292.         if (HEAP[$next_i] >>> 0 >= HEAP[$end_i] >>> 0) {
  7293.           break L593;
  7294.         }
  7295.       }
  7296.     }
  7297.   } while (0);
  7298.   HEAP[HEAP[$buffer_addr_i] + 72 | 0] = 1;
  7299.   var $390 = $buffer_addr_i;
  7300.   var $391 = $text_addr_i;
  7301.   var $392 = $text_length_addr_i;
  7302.   var $393 = $item_offset_addr_i;
  7303.   var $394 = $item_length_addr_i;
  7304.   var $395 = $prev_i;
  7305.   var $396 = $start_i;
  7306.   var $397 = $u_i;
  7307.   var $398 = $next_i;
  7308.   var $399 = $end_i;
  7309.   var $400 = $u30_i;
  7310.   var $401 = $old_next_i;
  7311.   var $402 = $u42_i;
  7312.   STACKTOP = __stackBase__;
  7313.   return;
  7314. }
  7315. function __ZL11hb_utf_nextPKhS0_Pj($text, $end, $unicode) {
  7316.   var label = 0;
  7317.   var $retval;
  7318.   var $text_addr;
  7319.   var $end_addr;
  7320.   var $unicode_addr;
  7321.   var $c;
  7322.   var $mask;
  7323.   var $len;
  7324.   var $result;
  7325.   var $i;
  7326.   $text_addr = $text;
  7327.   $end_addr = $end;
  7328.   $unicode_addr = $unicode;
  7329.   $c = HEAP[$text_addr] & 255;
  7330.   do {
  7331.     if ($c >>> 0 < 128) {
  7332.       $len = 1;
  7333.       $mask = 127;
  7334.       label = 488;
  7335.       break;
  7336.     } else {
  7337.       if (($c & 224 | 0) == 192) {
  7338.         $len = 2;
  7339.         $mask = 31;
  7340.         label = 488;
  7341.         break;
  7342.       }
  7343.       if (($c & 240 | 0) == 224) {
  7344.         $len = 3;
  7345.         $mask = 15;
  7346.         label = 488;
  7347.         break;
  7348.       }
  7349.       if (($c & 248 | 0) == 240) {
  7350.         $len = 4;
  7351.         $mask = 7;
  7352.         label = 488;
  7353.         break;
  7354.       } else {
  7355.         $len = 0;
  7356.         break;
  7357.       }
  7358.     }
  7359.   } while (0);
  7360.   do {
  7361.     if (label == 488) {
  7362.       if (($end_addr - $text_addr | 0) >>> 0 < $len >>> 0) {
  7363.         break;
  7364.       }
  7365.       $result = $mask & $c;
  7366.       $i = 1;
  7367.       L644 : do {
  7368.         if ($i >>> 0 < $len >>> 0) {
  7369.           while (1) {
  7370.             if ((HEAP[$text_addr + $i | 0] & 192 | 0) != 128) {
  7371.               break;
  7372.             }
  7373.             $result = $result << 6;
  7374.             $result = HEAP[$text_addr + $i | 0] & 63 | $result;
  7375.             $i = $i + 1 | 0;
  7376.             if ($i >>> 0 >= $len >>> 0) {
  7377.               break L644;
  7378.             }
  7379.           }
  7380.           HEAP[$unicode_addr] = -1;
  7381.           $retval = $text_addr + 1 | 0;
  7382.           var $32 = $retval;
  7383.           return $32;
  7384.         }
  7385.       } while (0);
  7386.       HEAP[$unicode_addr] = $result;
  7387.       $retval = $text_addr + $len | 0;
  7388.       var $32 = $retval;
  7389.       return $32;
  7390.     }
  7391.   } while (0);
  7392.   HEAP[$unicode_addr] = -1;
  7393.   $retval = $text_addr + 1 | 0;
  7394.   var $32 = $retval;
  7395.   return $32;
  7396. }
  7397. function __ZL24normalize_glyphs_clusterP11hb_buffer_tjjb($buffer, $start, $end, $backward) {
  7398.   var $buffer_addr;
  7399.   var $start_addr;
  7400.   var $end_addr;
  7401.   var $backward_addr;
  7402.   var $pos;
  7403.   var $total_x_advance;
  7404.   var $total_y_advance;
  7405.   var $i;
  7406.   var $x_advance4;
  7407.   var $y_advance5;
  7408.   var $i6;
  7409.   var $i42;
  7410.   $buffer_addr = $buffer;
  7411.   $start_addr = $start;
  7412.   $end_addr = $end;
  7413.   $backward_addr = $backward & 1;
  7414.   $pos = HEAP[$buffer_addr + 104 | 0];
  7415.   $total_x_advance = 0;
  7416.   $total_y_advance = 0;
  7417.   $i = $start_addr;
  7418.   L655 : do {
  7419.     if ($i >>> 0 < $end_addr >>> 0) {
  7420.       while (1) {
  7421.         $total_x_advance = $total_x_advance + HEAP[$pos + ($i * 20 & -1) | 0] | 0;
  7422.         $total_y_advance = $total_y_advance + HEAP[$pos + ($i * 20 & -1) + 4 | 0] | 0;
  7423.         $i = $i + 1 | 0;
  7424.         if ($i >>> 0 >= $end_addr >>> 0) {
  7425.           break L655;
  7426.         }
  7427.       }
  7428.     }
  7429.   } while (0);
  7430.   $x_advance4 = 0;
  7431.   $y_advance5 = 0;
  7432.   $i6 = $start_addr;
  7433.   L659 : do {
  7434.     if ($i6 >>> 0 < $end_addr >>> 0) {
  7435.       while (1) {
  7436.         var $x_offset = $pos + ($i6 * 20 & -1) + 8 | 0;
  7437.         HEAP[$x_offset] = HEAP[$x_offset] + $x_advance4 | 0;
  7438.         var $y_offset = $pos + ($i6 * 20 & -1) + 12 | 0;
  7439.         HEAP[$y_offset] = HEAP[$y_offset] + $y_advance5 | 0;
  7440.         $x_advance4 = $x_advance4 + HEAP[$pos + ($i6 * 20 & -1) | 0] | 0;
  7441.         $y_advance5 = $y_advance5 + HEAP[$pos + ($i6 * 20 & -1) + 4 | 0] | 0;
  7442.         HEAP[$pos + ($i6 * 20 & -1) | 0] = 0;
  7443.         HEAP[$pos + ($i6 * 20 & -1) + 4 | 0] = 0;
  7444.         $i6 = $i6 + 1 | 0;
  7445.         if ($i6 >>> 0 >= $end_addr >>> 0) {
  7446.           break L659;
  7447.         }
  7448.       }
  7449.     }
  7450.   } while (0);
  7451.   var $43 = $total_x_advance;
  7452.   if ($backward_addr & 1) {
  7453.     HEAP[$pos + (($end_addr - 1) * 20 & -1) | 0] = $43;
  7454.     HEAP[$pos + (($end_addr - 1) * 20 & -1) + 4 | 0] = $total_y_advance;
  7455.     __Z14hb_bubble_sortI15hb_glyph_info_t19hb_glyph_position_tEvPT_jPFiPKS2_S5_EPT0_(HEAP[$buffer_addr + 96 | 0] + ($start_addr * 20 & -1) | 0, $end_addr - 1 + -$start_addr | 0, HEAP[$buffer_addr + 104 | 0] + ($start_addr * 20 & -1) | 0);
  7456.     return;
  7457.   }
  7458.   var $x_advance37 = $pos + ($start_addr * 20 & -1) | 0;
  7459.   HEAP[$x_advance37] = HEAP[$x_advance37] + $43 | 0;
  7460.   var $y_advance40 = $pos + ($start_addr * 20 & -1) + 4 | 0;
  7461.   HEAP[$y_advance40] = HEAP[$y_advance40] + $total_y_advance | 0;
  7462.   $i42 = $start_addr + 1 | 0;
  7463.   L667 : do {
  7464.     if ($i42 >>> 0 < $end_addr >>> 0) {
  7465.       while (1) {
  7466.         var $x_offset48 = $pos + ($i42 * 20 & -1) + 8 | 0;
  7467.         HEAP[$x_offset48] = HEAP[$x_offset48] - $total_x_advance | 0;
  7468.         var $y_offset51 = $pos + ($i42 * 20 & -1) + 12 | 0;
  7469.         HEAP[$y_offset51] = HEAP[$y_offset51] - $total_y_advance | 0;
  7470.         $i42 = $i42 + 1 | 0;
  7471.         if ($i42 >>> 0 >= $end_addr >>> 0) {
  7472.           break L667;
  7473.         }
  7474.       }
  7475.     }
  7476.   } while (0);
  7477.   __Z14hb_bubble_sortI15hb_glyph_info_t19hb_glyph_position_tEvPT_jPFiPKS2_S5_EPT0_(HEAP[$buffer_addr + 96 | 0] + ($start_addr * 20 & -1) + 20 | 0, $end_addr - 1 + -$start_addr | 0, HEAP[$buffer_addr + 104 | 0] + ($start_addr * 20 & -1) + 20 | 0);
  7478.   return;
  7479. }
  7480. function _hb_buffer_add_utf32($buffer, $text, $text_length, $item_offset, $item_length) {
  7481.   var __stackBase__ = STACKTOP;
  7482.   STACKTOP = STACKTOP + 140 | 0;
  7483.   var $this_addr_i14_i = __stackBase__;
  7484.   var $side_addr_i15_i = __stackBase__ + 4;
  7485.   var $text_addr_i11_i = __stackBase__ + 8;
  7486.   var $start_addr_i_i = __stackBase__ + 12;
  7487.   var $unicode_addr_i12_i = __stackBase__ + 16;
  7488.   var $text_addr_i7_i = __stackBase__ + 20;
  7489.   var $end_addr_i8_i = __stackBase__ + 24;
  7490.   var $unicode_addr_i9_i = __stackBase__ + 28;
  7491.   var $text_addr_i4_i = __stackBase__ + 32;
  7492.   var $l_i_i = __stackBase__ + 36;
  7493.   var $this_addr_i1_i = __stackBase__ + 40;
  7494.   var $codepoint_addr_i_i = __stackBase__ + 44;
  7495.   var $cluster_addr_i_i = __stackBase__ + 48;
  7496.   var $glyph_i_i = __stackBase__ + 52;
  7497.   var $this_addr_i_i = __stackBase__ + 56;
  7498.   var $side_addr_i_i = __stackBase__ + 60;
  7499.   var $text_addr_i_i = __stackBase__ + 64;
  7500.   var $end_addr_i_i = __stackBase__ + 68;
  7501.   var $unicode_addr_i_i = __stackBase__ + 72;
  7502.   var $this_addr_i_i_i_i = __stackBase__ + 76;
  7503.   var $this_addr_i_i_i = __stackBase__ + 80;
  7504.   var $obj_addr_i_i = __stackBase__ + 84;
  7505.   var $buffer_addr_i = __stackBase__ + 88;
  7506.   var $text_addr_i = __stackBase__ + 92;
  7507.   var $text_length_addr_i = __stackBase__ + 96;
  7508.   var $item_offset_addr_i = __stackBase__ + 100;
  7509.   var $item_length_addr_i = __stackBase__ + 104;
  7510.   var $prev_i = __stackBase__ + 108;
  7511.   var $start_i = __stackBase__ + 112;
  7512.   var $u_i = __stackBase__ + 116;
  7513.   var $next_i = __stackBase__ + 120;
  7514.   var $end_i = __stackBase__ + 124;
  7515.   var $u30_i = __stackBase__ + 128;
  7516.   var $old_next_i = __stackBase__ + 132;
  7517.   var $u42_i = __stackBase__ + 136;
  7518.   HEAP[$buffer_addr_i] = $buffer;
  7519.   HEAP[$text_addr_i] = $text;
  7520.   HEAP[$text_length_addr_i] = $text_length;
  7521.   HEAP[$item_offset_addr_i] = $item_offset;
  7522.   HEAP[$item_length_addr_i] = $item_length;
  7523.   do {
  7524.     if ((HEAP[HEAP[$buffer_addr_i] + 72 | 0] | 0) != 1) {
  7525.       if ((HEAP[HEAP[$buffer_addr_i] + 84 | 0] | 0) != 0) {
  7526.         ___assert_func(102952, 914, 110104, 103496);
  7527.       }
  7528.       if ((HEAP[HEAP[$buffer_addr_i] + 72 | 0] | 0) == 0) {
  7529.         break;
  7530.       }
  7531.       ___assert_func(102952, 914, 110104, 103496);
  7532.     }
  7533.   } while (0);
  7534.   HEAP[$obj_addr_i_i] = HEAP[$buffer_addr_i];
  7535.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  7536.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  7537.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  7538.     var $162 = $buffer_addr_i;
  7539.     var $163 = $text_addr_i;
  7540.     var $164 = $text_length_addr_i;
  7541.     var $165 = $item_offset_addr_i;
  7542.     var $166 = $item_length_addr_i;
  7543.     var $167 = $prev_i;
  7544.     var $168 = $start_i;
  7545.     var $169 = $u_i;
  7546.     var $170 = $next_i;
  7547.     var $171 = $end_i;
  7548.     var $172 = $u30_i;
  7549.     var $173 = $old_next_i;
  7550.     var $174 = $u42_i;
  7551.     STACKTOP = __stackBase__;
  7552.     return;
  7553.   }
  7554.   if ((HEAP[$text_length_addr_i] | 0) == -1) {
  7555.     HEAP[$text_addr_i4_i] = HEAP[$text_addr_i];
  7556.     HEAP[$l_i_i] = 0;
  7557.     var $37 = HEAP[$text_addr_i4_i];
  7558.     HEAP[$text_addr_i4_i] = $37 + 4 | 0;
  7559.     var $39 = HEAP[$l_i_i];
  7560.     L685 : do {
  7561.       if ((HEAP[$37] | 0) != 0) {
  7562.         var $40 = $39;
  7563.         while (1) {
  7564.           var $40;
  7565.           HEAP[$l_i_i] = $40 + 1 | 0;
  7566.           var $41 = HEAP[$text_addr_i4_i];
  7567.           HEAP[$text_addr_i4_i] = $41 + 4 | 0;
  7568.           var $43 = HEAP[$l_i_i];
  7569.           if ((HEAP[$41] | 0) != 0) {
  7570.             var $40 = $43;
  7571.           } else {
  7572.             var $_lcssa_i_i = $43;
  7573.             break L685;
  7574.           }
  7575.         }
  7576.       } else {
  7577.         var $_lcssa_i_i = $39;
  7578.       }
  7579.     } while (0);
  7580.     var $_lcssa_i_i;
  7581.     HEAP[$text_length_addr_i] = $_lcssa_i_i;
  7582.   }
  7583.   if ((HEAP[$item_length_addr_i] | 0) == -1) {
  7584.     HEAP[$item_length_addr_i] = HEAP[$text_length_addr_i] - HEAP[$item_offset_addr_i] | 0;
  7585.   }
  7586.   __ZN11hb_buffer_t6ensureEj(HEAP[$buffer_addr_i], HEAP[HEAP[$buffer_addr_i] + 84 | 0] + Math.floor((HEAP[$item_length_addr_i] << 2 >>> 0) / 4) | 0);
  7587.   L693 : do {
  7588.     if ((HEAP[HEAP[$buffer_addr_i] + 84 | 0] | 0) == 0) {
  7589.       if (HEAP[$item_offset_addr_i] >>> 0 <= 0) {
  7590.         break;
  7591.       }
  7592.       HEAP[$this_addr_i14_i] = HEAP[$buffer_addr_i];
  7593.       HEAP[$side_addr_i15_i] = 0;
  7594.       HEAP[(HEAP[$side_addr_i15_i] << 2) + HEAP[$this_addr_i14_i] + 192 | 0] = 0;
  7595.       HEAP[$prev_i] = (HEAP[$item_offset_addr_i] << 2) + HEAP[$text_addr_i] | 0;
  7596.       HEAP[$start_i] = HEAP[$text_addr_i];
  7597.       if (HEAP[$start_i] >>> 0 >= HEAP[$prev_i] >>> 0) {
  7598.         break;
  7599.       }
  7600.       while (1) {
  7601.         if (HEAP[HEAP[$buffer_addr_i] + 192 | 0] >>> 0 >= 5) {
  7602.           break L693;
  7603.         }
  7604.         var $76 = HEAP[$start_i];
  7605.         HEAP[$text_addr_i11_i] = HEAP[$prev_i];
  7606.         HEAP[$start_addr_i_i] = $76;
  7607.         HEAP[$unicode_addr_i12_i] = $u_i;
  7608.         var $incdec_ptr_i13_i = HEAP[$text_addr_i11_i] - 4 | 0;
  7609.         HEAP[$text_addr_i11_i] = $incdec_ptr_i13_i;
  7610.         HEAP[HEAP[$unicode_addr_i12_i]] = HEAP[$incdec_ptr_i13_i];
  7611.         HEAP[$prev_i] = HEAP[$text_addr_i11_i];
  7612.         var $81 = HEAP[$u_i];
  7613.         var $arrayidx21_i = HEAP[$buffer_addr_i] + 192 | 0;
  7614.         var $83 = HEAP[$arrayidx21_i];
  7615.         HEAP[$arrayidx21_i] = $83 + 1 | 0;
  7616.         HEAP[($83 << 2) + HEAP[$buffer_addr_i] + 152 | 0] = $81;
  7617.         if (HEAP[$start_i] >>> 0 >= HEAP[$prev_i] >>> 0) {
  7618.           break L693;
  7619.         }
  7620.       }
  7621.     }
  7622.   } while (0);
  7623.   HEAP[$next_i] = (HEAP[$item_offset_addr_i] << 2) + HEAP[$text_addr_i] | 0;
  7624.   HEAP[$end_i] = (HEAP[$item_length_addr_i] << 2) + HEAP[$next_i] | 0;
  7625.   L701 : do {
  7626.     if (HEAP[$next_i] >>> 0 < HEAP[$end_i] >>> 0) {
  7627.       while (1) {
  7628.         HEAP[$old_next_i] = HEAP[$next_i];
  7629.         var $109 = HEAP[$end_i];
  7630.         HEAP[$text_addr_i7_i] = HEAP[$next_i];
  7631.         HEAP[$end_addr_i8_i] = $109;
  7632.         HEAP[$unicode_addr_i9_i] = $u30_i;
  7633.         var $110 = HEAP[$text_addr_i7_i];
  7634.         HEAP[$text_addr_i7_i] = $110 + 4 | 0;
  7635.         HEAP[HEAP[$unicode_addr_i9_i]] = HEAP[$110];
  7636.         HEAP[$next_i] = HEAP[$text_addr_i7_i];
  7637.         var $115 = HEAP[$u30_i];
  7638.         var $sub_ptr_div_i = (HEAP[$old_next_i] - HEAP[$text_addr_i] | 0) / 4 & -1;
  7639.         HEAP[$this_addr_i1_i] = HEAP[$buffer_addr_i];
  7640.         HEAP[$codepoint_addr_i_i] = $115;
  7641.         HEAP[$cluster_addr_i_i] = $sub_ptr_div_i;
  7642.         var $this1_i2_i = HEAP[$this_addr_i1_i];
  7643.         if (__ZN11hb_buffer_t6ensureEj($this1_i2_i, HEAP[$this1_i2_i + 84 | 0] + 1 | 0)) {
  7644.           HEAP[$glyph_i_i] = HEAP[$this1_i2_i + 96 | 0] + (HEAP[$this1_i2_i + 84 | 0] * 20 & -1) | 0;
  7645.           var $122 = HEAP[$glyph_i_i];
  7646.           for (var $$dest = $122, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  7647.             HEAP[$$dest] = 0;
  7648.           }
  7649.           HEAP[HEAP[$glyph_i_i] | 0] = HEAP[$codepoint_addr_i_i];
  7650.           HEAP[HEAP[$glyph_i_i] + 4 | 0] = 1;
  7651.           HEAP[HEAP[$glyph_i_i] + 8 | 0] = HEAP[$cluster_addr_i_i];
  7652.           var $len5_i_i = $this1_i2_i + 84 | 0;
  7653.           HEAP[$len5_i_i] = HEAP[$len5_i_i] + 1 | 0;
  7654.         }
  7655.         if (HEAP[$next_i] >>> 0 >= HEAP[$end_i] >>> 0) {
  7656.           break L701;
  7657.         }
  7658.       }
  7659.     }
  7660.   } while (0);
  7661.   HEAP[$this_addr_i_i] = HEAP[$buffer_addr_i];
  7662.   HEAP[$side_addr_i_i] = 1;
  7663.   HEAP[(HEAP[$side_addr_i_i] << 2) + HEAP[$this_addr_i_i] + 192 | 0] = 0;
  7664.   HEAP[$end_i] = (HEAP[$text_length_addr_i] << 2) + HEAP[$text_addr_i] | 0;
  7665.   L709 : do {
  7666.     if (HEAP[$next_i] >>> 0 < HEAP[$end_i] >>> 0) {
  7667.       while (1) {
  7668.         if (HEAP[HEAP[$buffer_addr_i] + 196 | 0] >>> 0 >= 5) {
  7669.           break L709;
  7670.         }
  7671.         var $150 = HEAP[$end_i];
  7672.         HEAP[$text_addr_i_i] = HEAP[$next_i];
  7673.         HEAP[$end_addr_i_i] = $150;
  7674.         HEAP[$unicode_addr_i_i] = $u42_i;
  7675.         var $151 = HEAP[$text_addr_i_i];
  7676.         HEAP[$text_addr_i_i] = $151 + 4 | 0;
  7677.         HEAP[HEAP[$unicode_addr_i_i]] = HEAP[$151];
  7678.         HEAP[$next_i] = HEAP[$text_addr_i_i];
  7679.         var $155 = HEAP[$u42_i];
  7680.         var $arrayidx45_i = HEAP[$buffer_addr_i] + 196 | 0;
  7681.         var $157 = HEAP[$arrayidx45_i];
  7682.         HEAP[$arrayidx45_i] = $157 + 1 | 0;
  7683.         HEAP[($157 << 2) + HEAP[$buffer_addr_i] + 172 | 0] = $155;
  7684.         if (HEAP[$next_i] >>> 0 >= HEAP[$end_i] >>> 0) {
  7685.           break L709;
  7686.         }
  7687.       }
  7688.     }
  7689.   } while (0);
  7690.   HEAP[HEAP[$buffer_addr_i] + 72 | 0] = 1;
  7691.   var $162 = $buffer_addr_i;
  7692.   var $163 = $text_addr_i;
  7693.   var $164 = $text_length_addr_i;
  7694.   var $165 = $item_offset_addr_i;
  7695.   var $166 = $item_length_addr_i;
  7696.   var $167 = $prev_i;
  7697.   var $168 = $start_i;
  7698.   var $169 = $u_i;
  7699.   var $170 = $next_i;
  7700.   var $171 = $end_i;
  7701.   var $172 = $u30_i;
  7702.   var $173 = $old_next_i;
  7703.   var $174 = $u42_i;
  7704.   STACKTOP = __stackBase__;
  7705.   return;
  7706. }
  7707. function _hb_buffer_normalize_glyphs($buffer) {
  7708.   var $buffer_addr;
  7709.   var $backward;
  7710.   var $count;
  7711.   var $info;
  7712.   var $start;
  7713.   var $end;
  7714.   $buffer_addr = $buffer;
  7715.   if (!(HEAP[$buffer_addr + 78 | 0] & 1)) {
  7716.     ___assert_func(102952, 1060, 105896, 103880);
  7717.   }
  7718.   if ((HEAP[$buffer_addr + 72 | 0] | 0) != 2) {
  7719.     ___assert_func(102952, 1061, 105896, 103792);
  7720.   }
  7721.   $backward = (HEAP[$buffer_addr + 48 | 0] & -3 | 0) == 5 & 1;
  7722.   $count = HEAP[$buffer_addr + 84 | 0];
  7723.   if (($count | 0) == 0) {
  7724.     return;
  7725.   }
  7726.   $info = HEAP[$buffer_addr + 96 | 0];
  7727.   $start = 0;
  7728.   $end = $start + 1 | 0;
  7729.   L726 : do {
  7730.     if ($end >>> 0 < $count >>> 0) {
  7731.       while (1) {
  7732.         if ((HEAP[$info + ($start * 20 & -1) + 8 | 0] | 0) != (HEAP[$info + ($end * 20 & -1) + 8 | 0] | 0)) {
  7733.           __ZL24normalize_glyphs_clusterP11hb_buffer_tjjb($buffer_addr, $start, $end, $backward & 1);
  7734.           $start = $end;
  7735.         }
  7736.         $end = $end + 1 | 0;
  7737.         if ($end >>> 0 >= $count >>> 0) {
  7738.           break L726;
  7739.         }
  7740.       }
  7741.     }
  7742.   } while (0);
  7743.   __ZL24normalize_glyphs_clusterP11hb_buffer_tjjb($buffer_addr, $start, $end, $backward & 1);
  7744.   return;
  7745. }
  7746. function __ZL22compare_info_codepointPK15hb_glyph_info_tS1_($pa, $pb) {
  7747.   return HEAP[$pb | 0] - HEAP[$pa | 0] | 0;
  7748. }
  7749. function _hb_tag_from_string($s, $len) {
  7750.   var __stackBase__ = STACKTOP;
  7751.   STACKTOP = STACKTOP + 4 | 0;
  7752.   var $retval;
  7753.   var $s_addr;
  7754.   var $len_addr;
  7755.   var $tag = __stackBase__;
  7756.   var $i;
  7757.   $s_addr = $s;
  7758.   $len_addr = $len;
  7759.   do {
  7760.     if (($s_addr | 0) != 0) {
  7761.       if (($len_addr | 0) == 0) {
  7762.         break;
  7763.       }
  7764.       if (HEAP[$s_addr] << 24 >> 24 == 0) {
  7765.         break;
  7766.       }
  7767.       if (($len_addr | 0) < 0 | ($len_addr | 0) > 4) {
  7768.         $len_addr = 4;
  7769.       }
  7770.       $i = 0;
  7771.       var $6 = $i;
  7772.       L743 : do {
  7773.         if ($6 >>> 0 < $len_addr >>> 0) {
  7774.           while (1) {
  7775.             var $8 = $i;
  7776.             if (HEAP[$s_addr + $8 | 0] << 24 >> 24 == 0) {
  7777.               var $_ph = $8;
  7778.               break L743;
  7779.             }
  7780.             HEAP[$tag + $i | 0] = HEAP[$s_addr + $i | 0];
  7781.             $i = $i + 1 | 0;
  7782.             var $16 = $i;
  7783.             if ($16 >>> 0 >= $len_addr >>> 0) {
  7784.               var $_ph = $16;
  7785.               break L743;
  7786.             }
  7787.           }
  7788.         } else {
  7789.           var $_ph = $6;
  7790.         }
  7791.       } while (0);
  7792.       var $_ph;
  7793.       L748 : do {
  7794.         if ($_ph >>> 0 < 4) {
  7795.           while (1) {
  7796.             HEAP[$tag + $i | 0] = 32;
  7797.             var $inc17 = $i + 1 | 0;
  7798.             $i = $inc17;
  7799.             if ($inc17 >>> 0 >= 4) {
  7800.               break L748;
  7801.             }
  7802.           }
  7803.         }
  7804.       } while (0);
  7805.       $retval = (HEAP[$tag + 1 | 0] & 255) << 16 | (HEAP[$tag | 0] & 255) << 24 | (HEAP[$tag + 2 | 0] & 255) << 8 | HEAP[$tag + 3 | 0] & 255;
  7806.       var $24 = $retval;
  7807.       STACKTOP = __stackBase__;
  7808.       return $24;
  7809.     }
  7810.   } while (0);
  7811.   $retval = 0;
  7812.   var $24 = $retval;
  7813.   STACKTOP = __stackBase__;
  7814.   return $24;
  7815. }
  7816. function _hb_language_to_string($language) {
  7817.   return $language | 0;
  7818. }
  7819. function __Z14hb_bubble_sortI15hb_glyph_info_t19hb_glyph_position_tEvPT_jPFiPKS2_S5_EPT0_($array, $len, $array2) {
  7820.   var label = 0;
  7821.   var __stackBase__ = STACKTOP;
  7822.   STACKTOP = STACKTOP + 40 | 0;
  7823.   var $array_addr;
  7824.   var $len_addr;
  7825.   var $compar_addr;
  7826.   var $array2_addr;
  7827.   var $k;
  7828.   var $new_k;
  7829.   var $j;
  7830.   var $t = __stackBase__;
  7831.   var $t12 = __stackBase__ + 20;
  7832.   $array_addr = $array;
  7833.   $len_addr = $len;
  7834.   $compar_addr = 82;
  7835.   $array2_addr = $array2;
  7836.   if (($len_addr | 0) == 0) {
  7837.     STACKTOP = __stackBase__;
  7838.     return;
  7839.   }
  7840.   $k = $len_addr - 1 | 0;
  7841.   var $2 = $t;
  7842.   var $3 = $t;
  7843.   var $4 = $t12;
  7844.   var $5 = $t12;
  7845.   while (1) {
  7846.     $new_k = 0;
  7847.     $j = 0;
  7848.     if ($j >>> 0 >= $k >>> 0) {
  7849.       break;
  7850.     }
  7851.     while (1) {
  7852.       if ((FUNCTION_TABLE[$compar_addr]($array_addr + ($j * 20 & -1) | 0, $array_addr + (($j + 1) * 20 & -1) | 0) | 0) > 0) {
  7853.         var $15 = $array_addr + ($j * 20 & -1) | 0;
  7854.         for (var $$src = $15, $$dest = $2, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  7855.           HEAP[$$dest] = HEAP[$$src];
  7856.         }
  7857.         var $20 = $array_addr + ($j * 20 & -1) | 0;
  7858.         var $21 = $array_addr + (($j + 1) * 20 & -1) | 0;
  7859.         for (var $$src = $21, $$dest = $20, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  7860.           HEAP[$$dest] = HEAP[$$src];
  7861.         }
  7862.         var $24 = $array_addr + (($j + 1) * 20 & -1) | 0;
  7863.         for (var $$src = $3, $$dest = $24, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  7864.           HEAP[$$dest] = HEAP[$$src];
  7865.         }
  7866.         if (($array2_addr | 0) != 0) {
  7867.           var $28 = $array2_addr + ($j * 20 & -1) | 0;
  7868.           for (var $$src = $28, $$dest = $4, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  7869.             HEAP[$$dest] = HEAP[$$src];
  7870.           }
  7871.           var $33 = $array2_addr + ($j * 20 & -1) | 0;
  7872.           var $34 = $array2_addr + (($j + 1) * 20 & -1) | 0;
  7873.           for (var $$src = $34, $$dest = $33, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  7874.             HEAP[$$dest] = HEAP[$$src];
  7875.           }
  7876.           var $37 = $array2_addr + (($j + 1) * 20 & -1) | 0;
  7877.           for (var $$src = $5, $$dest = $37, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  7878.             HEAP[$$dest] = HEAP[$$src];
  7879.           }
  7880.         }
  7881.         $new_k = $j;
  7882.       }
  7883.       $j = $j + 1 | 0;
  7884.       if ($j >>> 0 >= $k >>> 0) {
  7885.         break;
  7886.       }
  7887.     }
  7888.     var $_pr = $new_k;
  7889.     $k = $_pr;
  7890.     if (($_pr | 0) == 0) {
  7891.       label = 584;
  7892.       break;
  7893.     }
  7894.   }
  7895.   if (label == 584) {
  7896.     STACKTOP = __stackBase__;
  7897.     return;
  7898.   }
  7899.   $k = 0;
  7900.   STACKTOP = __stackBase__;
  7901.   return;
  7902. }
  7903. function _hb_language_from_string($str, $len) {
  7904.   var label = 0;
  7905.   var __stackBase__ = STACKTOP;
  7906.   STACKTOP = STACKTOP + 104 | 0;
  7907.   var $this_addr_i1_i = __stackBase__;
  7908.   var $s_addr_i2_i = __stackBase__ + 4;
  7909.   var $p_i_i = __stackBase__ + 8;
  7910.   var $v1_addr_i_i_i = __stackBase__ + 12;
  7911.   var $v2_addr_i_i_i = __stackBase__ + 16;
  7912.   var $p1_i_i_i = __stackBase__ + 20;
  7913.   var $p2_i_i_i = __stackBase__ + 24;
  7914.   var $this_addr_i_i = __stackBase__ + 28;
  7915.   var $s_addr_i_i = __stackBase__ + 32;
  7916.   var $retval_i = __stackBase__ + 36;
  7917.   var $key_addr_i = __stackBase__ + 40;
  7918.   var $first_lang_i = __stackBase__ + 44;
  7919.   var $lang_i = __stackBase__ + 48;
  7920.   var $lang1_i = __stackBase__ + 52;
  7921.   var $a_addr_i = __stackBase__ + 56;
  7922.   var $b_addr_i = __stackBase__ + 60;
  7923.   var $retval;
  7924.   var $str_addr;
  7925.   var $len_addr = __stackBase__ + 64;
  7926.   var $strbuf = __stackBase__ + 68;
  7927.   var $ref_tmp = __stackBase__ + 100;
  7928.   $str_addr = $str;
  7929.   HEAP[$len_addr] = $len;
  7930.   do {
  7931.     if (($str_addr | 0) != 0) {
  7932.       if ((HEAP[$len_addr] | 0) == 0) {
  7933.         break;
  7934.       }
  7935.       if (HEAP[$str_addr] << 24 >> 24 == 0) {
  7936.         break;
  7937.       }
  7938.       if ((HEAP[$len_addr] | 0) >= 0) {
  7939.         HEAP[$ref_tmp] = 31;
  7940.         HEAP[$a_addr_i] = $len_addr;
  7941.         HEAP[$b_addr_i] = $ref_tmp;
  7942.         HEAP[$len_addr] = (HEAP[HEAP[$a_addr_i]] | 0) < (HEAP[HEAP[$b_addr_i]] | 0) ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]];
  7943.         var $17 = $strbuf;
  7944.         var $18 = $str_addr;
  7945.         var $19 = HEAP[$len_addr];
  7946.         for (var $$src = $18, $$dest = $17, $$stop = $$src + $19; $$src < $$stop; $$src++, $$dest++) {
  7947.           HEAP[$$dest] = HEAP[$$src];
  7948.         }
  7949.         $str_addr = $17;
  7950.         HEAP[$strbuf + HEAP[$len_addr] | 0] = 0;
  7951.       }
  7952.       HEAP[$key_addr_i] = $str_addr;
  7953.       L783 : while (1) {
  7954.         var $47 = HEAP[112176];
  7955.         HEAP[$first_lang_i] = $47;
  7956.         HEAP[$lang_i] = $47;
  7957.         L785 : do {
  7958.           if (($47 | 0) != 0) {
  7959.             while (1) {
  7960.               var $49 = HEAP[$key_addr_i];
  7961.               HEAP[$this_addr_i_i] = HEAP[$lang_i];
  7962.               HEAP[$s_addr_i_i] = $49;
  7963.               var $51 = HEAP[$s_addr_i_i];
  7964.               HEAP[$v1_addr_i_i_i] = HEAP[HEAP[$this_addr_i_i] + 4 | 0];
  7965.               HEAP[$v2_addr_i_i_i] = $51;
  7966.               HEAP[$p1_i_i_i] = HEAP[$v1_addr_i_i_i];
  7967.               HEAP[$p2_i_i_i] = HEAP[$v2_addr_i_i_i];
  7968.               var $57 = HEAP[$p1_i_i_i];
  7969.               L788 : do {
  7970.                 if (HEAP[HEAP[$p1_i_i_i]] << 24 >> 24 != 0) {
  7971.                   var $58 = $57;
  7972.                   while (1) {
  7973.                     var $58;
  7974.                     var $63 = HEAP[$p1_i_i_i];
  7975.                     if ((HEAP[$58] & 255 | 0) != (HEAP[(HEAP[HEAP[$p2_i_i_i]] & 255) + 111872 | 0] << 24 >> 24 | 0)) {
  7976.                       var $68 = $63;
  7977.                       break L788;
  7978.                     }
  7979.                     HEAP[$p1_i_i_i] = $63 + 1 | 0;
  7980.                     HEAP[$p2_i_i_i] = HEAP[$p2_i_i_i] + 1 | 0;
  7981.                     var $67 = HEAP[$p1_i_i_i];
  7982.                     if (HEAP[HEAP[$p1_i_i_i]] << 24 >> 24 != 0) {
  7983.                       var $58 = $67;
  7984.                     } else {
  7985.                       var $68 = $67;
  7986.                       break L788;
  7987.                     }
  7988.                   }
  7989.                 } else {
  7990.                   var $68 = $57;
  7991.                 }
  7992.               } while (0);
  7993.               var $68;
  7994.               var $73 = HEAP[$lang_i];
  7995.               if ((HEAP[$68] & 255 | 0) == (HEAP[(HEAP[HEAP[$p2_i_i_i]] & 255) + 111872 | 0] << 24 >> 24 | 0)) {
  7996.                 label = 599;
  7997.                 break L783;
  7998.               }
  7999.               var $74 = HEAP[$73 | 0];
  8000.               HEAP[$lang_i] = $74;
  8001.               if (($74 | 0) == 0) {
  8002.                 break L785;
  8003.               }
  8004.             }
  8005.           }
  8006.         } while (0);
  8007.         var $75 = _calloc(1, 8);
  8008.         HEAP[$lang1_i] = $75;
  8009.         if (($75 | 0) == 0) {
  8010.           label = 602;
  8011.           break;
  8012.         }
  8013.         HEAP[HEAP[$lang1_i] | 0] = HEAP[$first_lang_i];
  8014.         var $79 = HEAP[$key_addr_i];
  8015.         HEAP[$this_addr_i1_i] = HEAP[$lang1_i];
  8016.         HEAP[$s_addr_i2_i] = $79;
  8017.         var $this1_i3_i = HEAP[$this_addr_i1_i];
  8018.         var $81 = _strdup(HEAP[$s_addr_i2_i]);
  8019.         HEAP[$this1_i3_i + 4 | 0] = $81;
  8020.         HEAP[$p_i_i] = HEAP[$this1_i3_i + 4 | 0];
  8021.         L796 : do {
  8022.           if (HEAP[HEAP[$p_i_i]] << 24 >> 24 != 0) {
  8023.             while (1) {
  8024.               HEAP[HEAP[$p_i_i]] = HEAP[(HEAP[HEAP[$p_i_i]] & 255) + 111872 | 0];
  8025.               HEAP[$p_i_i] = HEAP[$p_i_i] + 1 | 0;
  8026.               if (HEAP[HEAP[$p_i_i]] << 24 >> 24 == 0) {
  8027.                 break L796;
  8028.               }
  8029.             }
  8030.           }
  8031.         } while (0);
  8032.         var $97 = HEAP[$lang1_i];
  8033.         if ((HEAP[112176] | 0) == (HEAP[$first_lang_i] | 0)) {
  8034.           label = 606;
  8035.           break;
  8036.         }
  8037.         _free($97);
  8038.       }
  8039.       if (label == 599) {
  8040.         HEAP[$retval_i] = $73;
  8041.         var $100 = $73;
  8042.       } else if (label == 602) {
  8043.         HEAP[$retval_i] = 0;
  8044.         var $100 = 0;
  8045.       } else if (label == 606) {
  8046.         HEAP[112176] = $97;
  8047.         if ((HEAP[$first_lang_i] | 0) == 0) {
  8048.           _atexit(140);
  8049.         }
  8050.         var $99 = HEAP[$lang1_i];
  8051.         HEAP[$retval_i] = $99;
  8052.         var $100 = $99;
  8053.       }
  8054.       var $100;
  8055.       if (($100 | 0) != 0) {
  8056.         var $cond = HEAP[$100 + 4 | 0];
  8057.       } else {
  8058.         var $cond = 0;
  8059.       }
  8060.       var $cond;
  8061.       $retval = $cond;
  8062.       var $108 = $retval;
  8063.       STACKTOP = __stackBase__;
  8064.       return $108;
  8065.     }
  8066.   } while (0);
  8067.   $retval = 0;
  8068.   var $108 = $retval;
  8069.   STACKTOP = __stackBase__;
  8070.   return $108;
  8071. }
  8072. function __ZL10free_langsv() {
  8073.   var __stackBase__ = STACKTOP;
  8074.   STACKTOP = STACKTOP + 4 | 0;
  8075.   var $this_addr_i = __stackBase__;
  8076.   var $next;
  8077.   if ((HEAP[112176] | 0) == 0) {
  8078.     STACKTOP = __stackBase__;
  8079.     return;
  8080.   }
  8081.   while (1) {
  8082.     $next = HEAP[HEAP[112176] | 0];
  8083.     HEAP[$this_addr_i] = HEAP[112176];
  8084.     _free(HEAP[HEAP[$this_addr_i] + 4 | 0]);
  8085.     _free(HEAP[112176]);
  8086.     var $9 = $next;
  8087.     HEAP[112176] = $9;
  8088.     if (($9 | 0) == 0) {
  8089.       break;
  8090.     }
  8091.   }
  8092.   STACKTOP = __stackBase__;
  8093.   return;
  8094. }
  8095. function __hb_fallback_shape($shape_plan, $font, $buffer, $features, $num_features) {
  8096.   var __stackBase__ = STACKTOP;
  8097.   STACKTOP = STACKTOP + 124 | 0;
  8098.   var $this_addr_i22 = __stackBase__;
  8099.   var $glyph_addr_i23 = __stackBase__ + 4;
  8100.   var $direction_addr_i24 = __stackBase__ + 8;
  8101.   var $x_addr_i25 = __stackBase__ + 12;
  8102.   var $y_addr_i26 = __stackBase__ + 16;
  8103.   var $origin_x_i = __stackBase__ + 20;
  8104.   var $origin_y_i = __stackBase__ + 24;
  8105.   var $this_addr_i1_i = __stackBase__ + 28;
  8106.   var $glyph_addr_i2_i = __stackBase__ + 32;
  8107.   var $this_addr_i_i16 = __stackBase__ + 36;
  8108.   var $glyph_addr_i_i = __stackBase__ + 40;
  8109.   var $this_addr_i17 = __stackBase__ + 44;
  8110.   var $glyph_addr_i18 = __stackBase__ + 48;
  8111.   var $direction_addr_i = __stackBase__ + 52;
  8112.   var $x_addr_i = __stackBase__ + 56;
  8113.   var $y_addr_i = __stackBase__ + 60;
  8114.   var $this_addr_i3 = __stackBase__ + 64;
  8115.   var $unicode_addr_i4 = __stackBase__ + 68;
  8116.   var $variation_selector_addr_i5 = __stackBase__ + 72;
  8117.   var $glyph_addr_i6 = __stackBase__ + 76;
  8118.   var $this_addr_i_i = __stackBase__ + 80;
  8119.   var $buffer_addr_i = __stackBase__ + 84;
  8120.   var $this_addr_i_i_i_i = __stackBase__ + 88;
  8121.   var $this_addr_i_i_i = __stackBase__ + 92;
  8122.   var $obj_addr_i_i = __stackBase__ + 96;
  8123.   var $this_addr_i1 = __stackBase__ + 100;
  8124.   var $this_addr_i = __stackBase__ + 104;
  8125.   var $unicode_addr_i = __stackBase__ + 108;
  8126.   var $variation_selector_addr_i = __stackBase__ + 112;
  8127.   var $glyph_addr_i = __stackBase__ + 116;
  8128.   var $font_addr;
  8129.   var $buffer_addr;
  8130.   var $space = __stackBase__ + 120;
  8131.   var $count;
  8132.   var $i;
  8133.   $font_addr = $font;
  8134.   $buffer_addr = $buffer;
  8135.   HEAP[$this_addr_i] = $font_addr;
  8136.   HEAP[$unicode_addr_i] = 32;
  8137.   HEAP[$variation_selector_addr_i] = 0;
  8138.   HEAP[$glyph_addr_i] = $space;
  8139.   var $this1_i = HEAP[$this_addr_i];
  8140.   HEAP[HEAP[$glyph_addr_i]] = 0;
  8141.   FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 48 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$unicode_addr_i], HEAP[$variation_selector_addr_i], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 92 | 0]);
  8142.   HEAP[$this_addr_i1] = $buffer_addr;
  8143.   var $this1_i2 = HEAP[$this_addr_i1];
  8144.   HEAP[$obj_addr_i_i] = $this1_i2;
  8145.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  8146.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  8147.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  8148.     HEAP[$this1_i2 + 77 | 0] = 0;
  8149.     HEAP[$this1_i2 + 78 | 0] = 1;
  8150.     HEAP[$this1_i2 + 88 | 0] = 0;
  8151.     HEAP[$this1_i2 + 100 | 0] = HEAP[$this1_i2 + 96 | 0];
  8152.     var $30 = HEAP[$this1_i2 + 104 | 0];
  8153.     var $mul_i = HEAP[$this1_i2 + 84 | 0] * 20 & -1;
  8154.     for (var $$dest = $30, $$stop = $$dest + $mul_i; $$dest < $$stop; $$dest++) {
  8155.       HEAP[$$dest] = 0;
  8156.     }
  8157.   }
  8158.   $count = HEAP[$buffer_addr + 84 | 0];
  8159.   $i = 0;
  8160.   var $37 = $buffer_addr;
  8161.   L826 : do {
  8162.     if ($i >>> 0 < $count >>> 0) {
  8163.       var $78 = $37;
  8164.       while (1) {
  8165.         var $78;
  8166.         if ((__ZN18hb_unicode_funcs_t20is_default_ignorableEj(HEAP[$78 + 44 | 0], HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0]) | 0) != 0) {
  8167.           HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0] = HEAP[$space];
  8168.           HEAP[HEAP[$buffer_addr + 104 | 0] + ($i * 20 & -1) | 0] = 0;
  8169.           HEAP[HEAP[$buffer_addr + 104 | 0] + ($i * 20 & -1) + 4 | 0] = 0;
  8170.         } else {
  8171.           var $98 = HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0];
  8172.           var $codepoint13 = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  8173.           HEAP[$this_addr_i3] = $font_addr;
  8174.           HEAP[$unicode_addr_i4] = $98;
  8175.           HEAP[$variation_selector_addr_i5] = 0;
  8176.           HEAP[$glyph_addr_i6] = $codepoint13;
  8177.           var $this1_i7 = HEAP[$this_addr_i3];
  8178.           HEAP[HEAP[$glyph_addr_i6]] = 0;
  8179.           FUNCTION_TABLE[HEAP[HEAP[$this1_i7 + 72 | 0] + 48 | 0]]($this1_i7, HEAP[$this1_i7 + 76 | 0], HEAP[$unicode_addr_i4], HEAP[$variation_selector_addr_i5], HEAP[$glyph_addr_i6], HEAP[HEAP[$this1_i7 + 72 | 0] + 92 | 0]);
  8180.           var $115 = HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0];
  8181.           var $117 = HEAP[$buffer_addr + 48 | 0];
  8182.           var $x_advance20 = HEAP[$buffer_addr + 104 | 0] + ($i * 20 & -1) | 0;
  8183.           var $y_advance23 = HEAP[$buffer_addr + 104 | 0] + ($i * 20 & -1) + 4 | 0;
  8184.           HEAP[$this_addr_i17] = $font_addr;
  8185.           HEAP[$glyph_addr_i18] = $115;
  8186.           HEAP[$direction_addr_i] = $117;
  8187.           HEAP[$x_addr_i] = $x_advance20;
  8188.           HEAP[$y_addr_i] = $y_advance23;
  8189.           var $this1_i19 = HEAP[$this_addr_i17];
  8190.           if ((HEAP[$direction_addr_i] & -2 | 0) == 4) {
  8191.             var $125 = HEAP[$glyph_addr_i18];
  8192.             HEAP[$this_addr_i_i16] = $this1_i19;
  8193.             HEAP[$glyph_addr_i_i] = $125;
  8194.             var $this1_i_i20 = HEAP[$this_addr_i_i16];
  8195.             var $call_i_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i_i20 + 72 | 0] + 52 | 0]]($this1_i_i20, HEAP[$this1_i_i20 + 76 | 0], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i20 + 72 | 0] + 96 | 0]);
  8196.             HEAP[HEAP[$x_addr_i]] = $call_i_i;
  8197.             HEAP[HEAP[$y_addr_i]] = 0;
  8198.           } else {
  8199.             HEAP[HEAP[$x_addr_i]] = 0;
  8200.             var $135 = HEAP[$glyph_addr_i18];
  8201.             HEAP[$this_addr_i1_i] = $this1_i19;
  8202.             HEAP[$glyph_addr_i2_i] = $135;
  8203.             var $this1_i3_i = HEAP[$this_addr_i1_i];
  8204.             var $call_i9_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i3_i + 72 | 0] + 56 | 0]]($this1_i3_i, HEAP[$this1_i3_i + 76 | 0], HEAP[$glyph_addr_i2_i], HEAP[HEAP[$this1_i3_i + 72 | 0] + 100 | 0]);
  8205.             HEAP[HEAP[$y_addr_i]] = $call_i9_i;
  8206.           }
  8207.           var $147 = HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0];
  8208.           var $149 = HEAP[$buffer_addr + 48 | 0];
  8209.           var $x_offset = HEAP[$buffer_addr + 104 | 0] + ($i * 20 & -1) + 8 | 0;
  8210.           var $y_offset = HEAP[$buffer_addr + 104 | 0] + ($i * 20 & -1) + 12 | 0;
  8211.           HEAP[$this_addr_i22] = $font_addr;
  8212.           HEAP[$glyph_addr_i23] = $147;
  8213.           HEAP[$direction_addr_i24] = $149;
  8214.           HEAP[$x_addr_i25] = $x_offset;
  8215.           HEAP[$y_addr_i26] = $y_offset;
  8216.           __ZN9hb_font_t30get_glyph_origin_for_directionEj14hb_direction_tPiS1_(HEAP[$this_addr_i22], HEAP[$glyph_addr_i23], HEAP[$direction_addr_i24], $origin_x_i, $origin_y_i);
  8217.           var $159 = HEAP[$x_addr_i25];
  8218.           HEAP[$159] = HEAP[$159] - HEAP[$origin_x_i] | 0;
  8219.           var $162 = HEAP[$y_addr_i26];
  8220.           HEAP[$162] = HEAP[$162] - HEAP[$origin_y_i] | 0;
  8221.         }
  8222.         $i = $i + 1 | 0;
  8223.         var $167 = $buffer_addr;
  8224.         if ($i >>> 0 < $count >>> 0) {
  8225.           var $78 = $167;
  8226.         } else {
  8227.           var $_lcssa = $167;
  8228.           break L826;
  8229.         }
  8230.       }
  8231.     } else {
  8232.       var $_lcssa = $37;
  8233.     }
  8234.   } while (0);
  8235.   var $_lcssa;
  8236.   if ((HEAP[$_lcssa + 48 | 0] & -3 | 0) != 5) {
  8237.     STACKTOP = __stackBase__;
  8238.     return 1;
  8239.   }
  8240.   HEAP[$buffer_addr_i] = $buffer_addr;
  8241.   HEAP[$this_addr_i_i] = HEAP[$buffer_addr_i];
  8242.   var $this1_i_i = HEAP[$this_addr_i_i];
  8243.   if ((HEAP[$this1_i_i + 84 | 0] | 0) != 0) {
  8244.     __ZN11hb_buffer_t13reverse_rangeEjj($this1_i_i, 0, HEAP[$this1_i_i + 84 | 0]);
  8245.   }
  8246.   STACKTOP = __stackBase__;
  8247.   return 1;
  8248. }
  8249. function __ZN18hb_unicode_funcs_t20is_default_ignorableEj($this, $ch) {
  8250.   var label = 0;
  8251.   var __stackBase__ = STACKTOP;
  8252.   STACKTOP = STACKTOP + 145 | 0;
  8253.   var $retval_i118 = __stackBase__;
  8254.   var $u_addr_i119 = __stackBase__ + 1;
  8255.   var $lo_addr_i120 = __stackBase__ + 5;
  8256.   var $hi_addr_i121 = __stackBase__ + 9;
  8257.   var $retval_i30_i = __stackBase__ + 13;
  8258.   var $u_addr_i31_i = __stackBase__ + 14;
  8259.   var $lo_addr_i32_i = __stackBase__ + 18;
  8260.   var $hi_addr_i33_i = __stackBase__ + 22;
  8261.   var $retval_i1_i = __stackBase__ + 26;
  8262.   var $u_addr_i2_i = __stackBase__ + 27;
  8263.   var $lo_addr_i3_i = __stackBase__ + 31;
  8264.   var $hi_addr_i4_i = __stackBase__ + 35;
  8265.   var $retval_i_i = __stackBase__ + 39;
  8266.   var $u_addr_i_i = __stackBase__ + 40;
  8267.   var $lo_addr_i_i = __stackBase__ + 44;
  8268.   var $hi_addr_i_i = __stackBase__ + 48;
  8269.   var $u_addr_i117 = __stackBase__ + 52;
  8270.   var $lo1_addr_i = __stackBase__ + 56;
  8271.   var $hi1_addr_i = __stackBase__ + 60;
  8272.   var $lo2_addr_i = __stackBase__ + 64;
  8273.   var $hi2_addr_i = __stackBase__ + 68;
  8274.   var $lo3_addr_i = __stackBase__ + 72;
  8275.   var $hi3_addr_i = __stackBase__ + 76;
  8276.   var $retval_i88 = __stackBase__ + 80;
  8277.   var $u_addr_i89 = __stackBase__ + 81;
  8278.   var $lo_addr_i90 = __stackBase__ + 85;
  8279.   var $hi_addr_i91 = __stackBase__ + 89;
  8280.   var $retval_i59 = __stackBase__ + 93;
  8281.   var $u_addr_i60 = __stackBase__ + 94;
  8282.   var $lo_addr_i61 = __stackBase__ + 98;
  8283.   var $hi_addr_i62 = __stackBase__ + 102;
  8284.   var $retval_i30 = __stackBase__ + 106;
  8285.   var $u_addr_i31 = __stackBase__ + 107;
  8286.   var $lo_addr_i32 = __stackBase__ + 111;
  8287.   var $hi_addr_i33 = __stackBase__ + 115;
  8288.   var $retval_i1 = __stackBase__ + 119;
  8289.   var $u_addr_i2 = __stackBase__ + 120;
  8290.   var $lo_addr_i3 = __stackBase__ + 124;
  8291.   var $hi_addr_i4 = __stackBase__ + 128;
  8292.   var $retval_i = __stackBase__ + 132;
  8293.   var $u_addr_i = __stackBase__ + 133;
  8294.   var $lo_addr_i = __stackBase__ + 137;
  8295.   var $hi_addr_i = __stackBase__ + 141;
  8296.   var $retval;
  8297.   var $ch_addr;
  8298.   var $plane;
  8299.   $ch_addr = $ch;
  8300.   $plane = $ch_addr >>> 16;
  8301.   if (($plane | 0) != 0) {
  8302.     var $250 = $plane;
  8303.     if (($250 | 0) == 1) {
  8304.       HEAP[$u_addr_i31] = $ch_addr;
  8305.       HEAP[$lo_addr_i32] = 119155;
  8306.       HEAP[$hi_addr_i33] = 119162;
  8307.       do {
  8308.         if (((HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) & HEAP[$lo_addr_i32] | 0) == 0) {
  8309.           if (((HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) & HEAP[$hi_addr_i33] | 0) != (HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32] | 0)) {
  8310.             label = 712;
  8311.             break;
  8312.           }
  8313.           if (((HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) + 1 & (HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) | 0) != 0) {
  8314.             label = 712;
  8315.             break;
  8316.           }
  8317.           HEAP[$retval_i30] = ((HEAP[$lo_addr_i32] ^ -1 ^ HEAP[$hi_addr_i33]) & HEAP[$u_addr_i31] | 0) == (HEAP[$lo_addr_i32] | 0);
  8318.           break;
  8319.         } else {
  8320.           label = 712;
  8321.         }
  8322.       } while (0);
  8323.       if (label == 712) {
  8324.         if (HEAP[$lo_addr_i32] >>> 0 <= HEAP[$u_addr_i31] >>> 0) {
  8325.           var $276 = HEAP[$u_addr_i31] >>> 0 <= HEAP[$hi_addr_i33] >>> 0;
  8326.         } else {
  8327.           var $276 = 0;
  8328.         }
  8329.         var $276;
  8330.         HEAP[$retval_i30] = $276;
  8331.       }
  8332.       $retval = HEAP[$retval_i30] & 1;
  8333.       var $313 = $retval;
  8334.       STACKTOP = __stackBase__;
  8335.       return $313;
  8336.     } else if (($250 | 0) == 14) {
  8337.       HEAP[$u_addr_i2] = $ch_addr;
  8338.       HEAP[$lo_addr_i3] = 917504;
  8339.       HEAP[$hi_addr_i4] = 921599;
  8340.       do {
  8341.         if (((HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) & HEAP[$lo_addr_i3] | 0) == 0) {
  8342.           if (((HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) & HEAP[$hi_addr_i4] | 0) != (HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3] | 0)) {
  8343.             label = 720;
  8344.             break;
  8345.           }
  8346.           if (((HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) + 1 & (HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) | 0) != 0) {
  8347.             label = 720;
  8348.             break;
  8349.           }
  8350.           HEAP[$retval_i1] = ((HEAP[$lo_addr_i3] ^ -1 ^ HEAP[$hi_addr_i4]) & HEAP[$u_addr_i2] | 0) == (HEAP[$lo_addr_i3] | 0);
  8351.           break;
  8352.         } else {
  8353.           label = 720;
  8354.         }
  8355.       } while (0);
  8356.       if (label == 720) {
  8357.         if (HEAP[$lo_addr_i3] >>> 0 <= HEAP[$u_addr_i2] >>> 0) {
  8358.           var $307 = HEAP[$u_addr_i2] >>> 0 <= HEAP[$hi_addr_i4] >>> 0;
  8359.         } else {
  8360.           var $307 = 0;
  8361.         }
  8362.         var $307;
  8363.         HEAP[$retval_i1] = $307;
  8364.       }
  8365.       $retval = HEAP[$retval_i1] & 1;
  8366.       var $313 = $retval;
  8367.       STACKTOP = __stackBase__;
  8368.       return $313;
  8369.     } else {
  8370.       $retval = 0;
  8371.       var $313 = $retval;
  8372.       STACKTOP = __stackBase__;
  8373.       return $313;
  8374.     }
  8375.   }
  8376.   var $3 = $ch_addr >>> 8;
  8377.   if (($3 | 0) == 0) {
  8378.     $retval = ($ch_addr | 0) == 173 & 1;
  8379.     var $313 = $retval;
  8380.     STACKTOP = __stackBase__;
  8381.     return $313;
  8382.   } else if (($3 | 0) == 3) {
  8383.     $retval = ($ch_addr | 0) == 847 & 1;
  8384.     var $313 = $retval;
  8385.     STACKTOP = __stackBase__;
  8386.     return $313;
  8387.   } else if (($3 | 0) == 24) {
  8388.     HEAP[$u_addr_i119] = $ch_addr;
  8389.     HEAP[$lo_addr_i120] = 6155;
  8390.     HEAP[$hi_addr_i121] = 6158;
  8391.     do {
  8392.       if (((HEAP[$hi_addr_i121] ^ HEAP[$lo_addr_i120]) & HEAP[$lo_addr_i120] | 0) == 0) {
  8393.         if (((HEAP[$hi_addr_i121] ^ HEAP[$lo_addr_i120]) & HEAP[$hi_addr_i121] | 0) != (HEAP[$hi_addr_i121] ^ HEAP[$lo_addr_i120] | 0)) {
  8394.           label = 656;
  8395.           break;
  8396.         }
  8397.         if (((HEAP[$hi_addr_i121] ^ HEAP[$lo_addr_i120]) + 1 & (HEAP[$hi_addr_i121] ^ HEAP[$lo_addr_i120]) | 0) != 0) {
  8398.           label = 656;
  8399.           break;
  8400.         }
  8401.         HEAP[$retval_i118] = ((HEAP[$lo_addr_i120] ^ -1 ^ HEAP[$hi_addr_i121]) & HEAP[$u_addr_i119] | 0) == (HEAP[$lo_addr_i120] | 0);
  8402.         break;
  8403.       } else {
  8404.         label = 656;
  8405.       }
  8406.     } while (0);
  8407.     if (label == 656) {
  8408.       if (HEAP[$lo_addr_i120] >>> 0 <= HEAP[$u_addr_i119] >>> 0) {
  8409.         var $62 = HEAP[$u_addr_i119] >>> 0 <= HEAP[$hi_addr_i121] >>> 0;
  8410.       } else {
  8411.         var $62 = 0;
  8412.       }
  8413.       var $62;
  8414.       HEAP[$retval_i118] = $62;
  8415.     }
  8416.     $retval = HEAP[$retval_i118] & 1;
  8417.     var $313 = $retval;
  8418.     STACKTOP = __stackBase__;
  8419.     return $313;
  8420.   } else if (($3 | 0) == 49) {
  8421.     $retval = ($ch_addr | 0) == 12644 & 1;
  8422.     var $313 = $retval;
  8423.     STACKTOP = __stackBase__;
  8424.     return $313;
  8425.   } else if (($3 | 0) == 254) {
  8426.     HEAP[$u_addr_i89] = $ch_addr;
  8427.     HEAP[$lo_addr_i90] = 65024;
  8428.     HEAP[$hi_addr_i91] = 65039;
  8429.     do {
  8430.       if (((HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) & HEAP[$lo_addr_i90] | 0) == 0) {
  8431.         if (((HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) & HEAP[$hi_addr_i91] | 0) != (HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90] | 0)) {
  8432.           label = 690;
  8433.           break;
  8434.         }
  8435.         if (((HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) + 1 & (HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) | 0) != 0) {
  8436.           label = 690;
  8437.           break;
  8438.         }
  8439.         var $cmp12_i109 = ((HEAP[$lo_addr_i90] ^ -1 ^ HEAP[$hi_addr_i91]) & HEAP[$u_addr_i89] | 0) == (HEAP[$lo_addr_i90] | 0);
  8440.         HEAP[$retval_i88] = $cmp12_i109;
  8441.         var $210 = $cmp12_i109;
  8442.         break;
  8443.       } else {
  8444.         label = 690;
  8445.       }
  8446.     } while (0);
  8447.     if (label == 690) {
  8448.       if (HEAP[$lo_addr_i90] >>> 0 <= HEAP[$u_addr_i89] >>> 0) {
  8449.         var $209 = HEAP[$u_addr_i89] >>> 0 <= HEAP[$hi_addr_i91] >>> 0;
  8450.       } else {
  8451.         var $209 = 0;
  8452.       }
  8453.       var $209;
  8454.       HEAP[$retval_i88] = $209;
  8455.       var $210 = $209;
  8456.     }
  8457.     var $210;
  8458.     if ($210) {
  8459.       var $216 = 1;
  8460.     } else {
  8461.       var $216 = ($ch_addr | 0) == 65279;
  8462.     }
  8463.     var $216;
  8464.     $retval = $216 & 1;
  8465.     var $313 = $retval;
  8466.     STACKTOP = __stackBase__;
  8467.     return $313;
  8468.   } else if (($3 | 0) == 32) {
  8469.     HEAP[$u_addr_i117] = $ch_addr;
  8470.     HEAP[$lo1_addr_i] = 8203;
  8471.     HEAP[$hi1_addr_i] = 8207;
  8472.     HEAP[$lo2_addr_i] = 8234;
  8473.     HEAP[$hi2_addr_i] = 8238;
  8474.     HEAP[$lo3_addr_i] = 8288;
  8475.     HEAP[$hi3_addr_i] = 8303;
  8476.     var $77 = HEAP[$lo1_addr_i];
  8477.     var $78 = HEAP[$hi1_addr_i];
  8478.     HEAP[$u_addr_i_i] = HEAP[$u_addr_i117];
  8479.     HEAP[$lo_addr_i_i] = $77;
  8480.     HEAP[$hi_addr_i_i] = $78;
  8481.     do {
  8482.       if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$lo_addr_i_i] | 0) == 0) {
  8483.         if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$hi_addr_i_i] | 0) != (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i] | 0)) {
  8484.           label = 664;
  8485.           break;
  8486.         }
  8487.         if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) + 1 & (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) | 0) != 0) {
  8488.           label = 664;
  8489.           break;
  8490.         }
  8491.         var $cmp12_i_i = ((HEAP[$lo_addr_i_i] ^ -1 ^ HEAP[$hi_addr_i_i]) & HEAP[$u_addr_i_i] | 0) == (HEAP[$lo_addr_i_i] | 0);
  8492.         HEAP[$retval_i_i] = $cmp12_i_i;
  8493.         var $104 = $cmp12_i_i;
  8494.         break;
  8495.       } else {
  8496.         label = 664;
  8497.       }
  8498.     } while (0);
  8499.     if (label == 664) {
  8500.       if (HEAP[$lo_addr_i_i] >>> 0 <= HEAP[$u_addr_i_i] >>> 0) {
  8501.         var $103 = HEAP[$u_addr_i_i] >>> 0 <= HEAP[$hi_addr_i_i] >>> 0;
  8502.       } else {
  8503.         var $103 = 0;
  8504.       }
  8505.       var $103;
  8506.       HEAP[$retval_i_i] = $103;
  8507.       var $104 = $103;
  8508.     }
  8509.     var $104;
  8510.     do {
  8511.       if ($104) {
  8512.         var $175 = 1;
  8513.       } else {
  8514.         var $110 = HEAP[$lo2_addr_i];
  8515.         var $111 = HEAP[$hi2_addr_i];
  8516.         HEAP[$u_addr_i31_i] = HEAP[$u_addr_i117];
  8517.         HEAP[$lo_addr_i32_i] = $110;
  8518.         HEAP[$hi_addr_i33_i] = $111;
  8519.         do {
  8520.           if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) & HEAP[$lo_addr_i32_i] | 0) == 0) {
  8521.             if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) & HEAP[$hi_addr_i33_i] | 0) != (HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i] | 0)) {
  8522.               label = 672;
  8523.               break;
  8524.             }
  8525.             if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) + 1 & (HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) | 0) != 0) {
  8526.               label = 672;
  8527.               break;
  8528.             }
  8529.             var $cmp12_i51_i = ((HEAP[$lo_addr_i32_i] ^ -1 ^ HEAP[$hi_addr_i33_i]) & HEAP[$u_addr_i31_i] | 0) == (HEAP[$lo_addr_i32_i] | 0);
  8530.             HEAP[$retval_i30_i] = $cmp12_i51_i;
  8531.             var $137 = $cmp12_i51_i;
  8532.             break;
  8533.           } else {
  8534.             label = 672;
  8535.           }
  8536.         } while (0);
  8537.         if (label == 672) {
  8538.           if (HEAP[$lo_addr_i32_i] >>> 0 <= HEAP[$u_addr_i31_i] >>> 0) {
  8539.             var $136 = HEAP[$u_addr_i31_i] >>> 0 <= HEAP[$hi_addr_i33_i] >>> 0;
  8540.           } else {
  8541.             var $136 = 0;
  8542.           }
  8543.           var $136;
  8544.           HEAP[$retval_i30_i] = $136;
  8545.           var $137 = $136;
  8546.         }
  8547.         var $137;
  8548.         if ($137) {
  8549.           var $175 = 1;
  8550.           break;
  8551.         }
  8552.         var $143 = HEAP[$lo3_addr_i];
  8553.         var $144 = HEAP[$hi3_addr_i];
  8554.         HEAP[$u_addr_i2_i] = HEAP[$u_addr_i117];
  8555.         HEAP[$lo_addr_i3_i] = $143;
  8556.         HEAP[$hi_addr_i4_i] = $144;
  8557.         do {
  8558.           if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) & HEAP[$lo_addr_i3_i] | 0) == 0) {
  8559.             if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) & HEAP[$hi_addr_i4_i] | 0) != (HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i] | 0)) {
  8560.               label = 680;
  8561.               break;
  8562.             }
  8563.             if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) + 1 & (HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) | 0) != 0) {
  8564.               label = 680;
  8565.               break;
  8566.             }
  8567.             HEAP[$retval_i1_i] = ((HEAP[$lo_addr_i3_i] ^ -1 ^ HEAP[$hi_addr_i4_i]) & HEAP[$u_addr_i2_i] | 0) == (HEAP[$lo_addr_i3_i] | 0);
  8568.             break;
  8569.           } else {
  8570.             label = 680;
  8571.           }
  8572.         } while (0);
  8573.         if (label == 680) {
  8574.           if (HEAP[$lo_addr_i3_i] >>> 0 <= HEAP[$u_addr_i2_i] >>> 0) {
  8575.             var $169 = HEAP[$u_addr_i2_i] >>> 0 <= HEAP[$hi_addr_i4_i] >>> 0;
  8576.           } else {
  8577.             var $169 = 0;
  8578.           }
  8579.           var $169;
  8580.           HEAP[$retval_i1_i] = $169;
  8581.         }
  8582.         var $175 = HEAP[$retval_i1_i];
  8583.       }
  8584.     } while (0);
  8585.     var $175;
  8586.     $retval = $175 & 1;
  8587.     var $313 = $retval;
  8588.     STACKTOP = __stackBase__;
  8589.     return $313;
  8590.   } else if (($3 | 0) == 23) {
  8591.     HEAP[$u_addr_i] = $ch_addr;
  8592.     HEAP[$lo_addr_i] = 6068;
  8593.     HEAP[$hi_addr_i] = 6069;
  8594.     do {
  8595.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$lo_addr_i] | 0) == 0) {
  8596.         if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$hi_addr_i] | 0) != (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i] | 0)) {
  8597.           label = 648;
  8598.           break;
  8599.         }
  8600.         if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) + 1 & (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) | 0) != 0) {
  8601.           label = 648;
  8602.           break;
  8603.         }
  8604.         HEAP[$retval_i] = ((HEAP[$lo_addr_i] ^ -1 ^ HEAP[$hi_addr_i]) & HEAP[$u_addr_i] | 0) == (HEAP[$lo_addr_i] | 0);
  8605.         break;
  8606.       } else {
  8607.         label = 648;
  8608.       }
  8609.     } while (0);
  8610.     if (label == 648) {
  8611.       if (HEAP[$lo_addr_i] >>> 0 <= HEAP[$u_addr_i] >>> 0) {
  8612.         var $31 = HEAP[$u_addr_i] >>> 0 <= HEAP[$hi_addr_i] >>> 0;
  8613.       } else {
  8614.         var $31 = 0;
  8615.       }
  8616.       var $31;
  8617.       HEAP[$retval_i] = $31;
  8618.     }
  8619.     $retval = HEAP[$retval_i] & 1;
  8620.     var $313 = $retval;
  8621.     STACKTOP = __stackBase__;
  8622.     return $313;
  8623.   } else if (($3 | 0) == 255) {
  8624.     HEAP[$u_addr_i60] = $ch_addr;
  8625.     HEAP[$lo_addr_i61] = 65520;
  8626.     HEAP[$hi_addr_i62] = 65528;
  8627.     do {
  8628.       if (((HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) & HEAP[$lo_addr_i61] | 0) == 0) {
  8629.         if (((HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) & HEAP[$hi_addr_i62] | 0) != (HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61] | 0)) {
  8630.           label = 700;
  8631.           break;
  8632.         }
  8633.         if (((HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) + 1 & (HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) | 0) != 0) {
  8634.           label = 700;
  8635.           break;
  8636.         }
  8637.         var $cmp12_i80 = ((HEAP[$lo_addr_i61] ^ -1 ^ HEAP[$hi_addr_i62]) & HEAP[$u_addr_i60] | 0) == (HEAP[$lo_addr_i61] | 0);
  8638.         HEAP[$retval_i59] = $cmp12_i80;
  8639.         var $243 = $cmp12_i80;
  8640.         break;
  8641.       } else {
  8642.         label = 700;
  8643.       }
  8644.     } while (0);
  8645.     if (label == 700) {
  8646.       if (HEAP[$lo_addr_i61] >>> 0 <= HEAP[$u_addr_i60] >>> 0) {
  8647.         var $242 = HEAP[$u_addr_i60] >>> 0 <= HEAP[$hi_addr_i62] >>> 0;
  8648.       } else {
  8649.         var $242 = 0;
  8650.       }
  8651.       var $242;
  8652.       HEAP[$retval_i59] = $242;
  8653.       var $243 = $242;
  8654.     }
  8655.     var $243;
  8656.     if ($243) {
  8657.       var $249 = 1;
  8658.     } else {
  8659.       var $249 = ($ch_addr | 0) == 65440;
  8660.     }
  8661.     var $249;
  8662.     $retval = $249 & 1;
  8663.     var $313 = $retval;
  8664.     STACKTOP = __stackBase__;
  8665.     return $313;
  8666.   } else {
  8667.     $retval = 0;
  8668.     var $313 = $retval;
  8669.     STACKTOP = __stackBase__;
  8670.     return $313;
  8671.   }
  8672. }
  8673. function __ZN9hb_font_t30get_glyph_origin_for_directionEj14hb_direction_tPiS1_($this, $glyph, $direction, $x, $y) {
  8674.   var __stackBase__ = STACKTOP;
  8675.   STACKTOP = STACKTOP + 128 | 0;
  8676.   var $this_addr_i_i43 = __stackBase__;
  8677.   var $glyph_addr_i_i44 = __stackBase__ + 4;
  8678.   var $this_addr_i45 = __stackBase__ + 8;
  8679.   var $glyph_addr_i46 = __stackBase__ + 12;
  8680.   var $x_addr_i47 = __stackBase__ + 16;
  8681.   var $y_addr_i48 = __stackBase__ + 20;
  8682.   var $this_addr_i30 = __stackBase__ + 24;
  8683.   var $glyph_addr_i31 = __stackBase__ + 28;
  8684.   var $x_addr_i32 = __stackBase__ + 32;
  8685.   var $y_addr_i33 = __stackBase__ + 36;
  8686.   var $this_addr_i17 = __stackBase__ + 40;
  8687.   var $glyph_addr_i18 = __stackBase__ + 44;
  8688.   var $x_addr_i19 = __stackBase__ + 48;
  8689.   var $y_addr_i20 = __stackBase__ + 52;
  8690.   var $this_addr_i_i = __stackBase__ + 56;
  8691.   var $glyph_addr_i_i = __stackBase__ + 60;
  8692.   var $this_addr_i12 = __stackBase__ + 64;
  8693.   var $glyph_addr_i13 = __stackBase__ + 68;
  8694.   var $x_addr_i14 = __stackBase__ + 72;
  8695.   var $y_addr_i15 = __stackBase__ + 76;
  8696.   var $this_addr_i1 = __stackBase__ + 80;
  8697.   var $glyph_addr_i2 = __stackBase__ + 84;
  8698.   var $x_addr_i3 = __stackBase__ + 88;
  8699.   var $y_addr_i4 = __stackBase__ + 92;
  8700.   var $this_addr_i = __stackBase__ + 96;
  8701.   var $glyph_addr_i = __stackBase__ + 100;
  8702.   var $x_addr_i = __stackBase__ + 104;
  8703.   var $y_addr_i = __stackBase__ + 108;
  8704.   var $glyph_addr;
  8705.   var $x_addr;
  8706.   var $y_addr;
  8707.   var $ret;
  8708.   var $dx = __stackBase__ + 112;
  8709.   var $dy = __stackBase__ + 116;
  8710.   var $ret6;
  8711.   var $dx13 = __stackBase__ + 120;
  8712.   var $dy14 = __stackBase__ + 124;
  8713.   $glyph_addr = $glyph;
  8714.   $x_addr = $x;
  8715.   $y_addr = $y;
  8716.   var $this1 = $this;
  8717.   var $1 = $glyph_addr;
  8718.   var $2 = $x_addr;
  8719.   var $3 = $y_addr;
  8720.   if (($direction & -2 | 0) == 4) {
  8721.     HEAP[$this_addr_i] = $this1;
  8722.     HEAP[$glyph_addr_i] = $1;
  8723.     HEAP[$x_addr_i] = $2;
  8724.     HEAP[$y_addr_i] = $3;
  8725.     var $this1_i = HEAP[$this_addr_i];
  8726.     HEAP[HEAP[$y_addr_i]] = 0;
  8727.     HEAP[HEAP[$x_addr_i]] = 0;
  8728.     $ret = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 60 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[$x_addr_i], HEAP[$y_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 104 | 0]);
  8729.     if (($ret | 0) != 0) {
  8730.       STACKTOP = __stackBase__;
  8731.       return;
  8732.     }
  8733.     HEAP[$this_addr_i1] = $this1;
  8734.     HEAP[$glyph_addr_i2] = $glyph_addr;
  8735.     HEAP[$x_addr_i3] = $x_addr;
  8736.     HEAP[$y_addr_i4] = $y_addr;
  8737.     var $this1_i5 = HEAP[$this_addr_i1];
  8738.     HEAP[HEAP[$y_addr_i4]] = 0;
  8739.     HEAP[HEAP[$x_addr_i3]] = 0;
  8740.     var $call_i11 = FUNCTION_TABLE[HEAP[HEAP[$this1_i5 + 72 | 0] + 64 | 0]]($this1_i5, HEAP[$this1_i5 + 76 | 0], HEAP[$glyph_addr_i2], HEAP[$x_addr_i3], HEAP[$y_addr_i4], HEAP[HEAP[$this1_i5 + 72 | 0] + 108 | 0]);
  8741.     $ret = $call_i11;
  8742.     if (($call_i11 | 0) == 0) {
  8743.       STACKTOP = __stackBase__;
  8744.       return;
  8745.     }
  8746.     HEAP[$this_addr_i12] = $this1;
  8747.     HEAP[$glyph_addr_i13] = $glyph_addr;
  8748.     HEAP[$x_addr_i14] = $dx;
  8749.     HEAP[$y_addr_i15] = $dy;
  8750.     var $this1_i16 = HEAP[$this_addr_i12];
  8751.     var $49 = HEAP[$glyph_addr_i13];
  8752.     HEAP[$this_addr_i_i] = $this1_i16;
  8753.     HEAP[$glyph_addr_i_i] = $49;
  8754.     var $this1_i_i = HEAP[$this_addr_i_i];
  8755.     var $div_i = (FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 52 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 96 | 0]) | 0) / 2 & -1;
  8756.     HEAP[HEAP[$x_addr_i14]] = $div_i;
  8757.     HEAP[HEAP[$y_addr_i15]] = HEAP[$this1_i16 + 60 | 0];
  8758.     var $68 = $x_addr;
  8759.     HEAP[$68] = HEAP[$68] - HEAP[$dx] | 0;
  8760.     var $71 = $y_addr;
  8761.     HEAP[$71] = HEAP[$71] - HEAP[$dy] | 0;
  8762.     STACKTOP = __stackBase__;
  8763.     return;
  8764.   } else {
  8765.     HEAP[$this_addr_i17] = $this1;
  8766.     HEAP[$glyph_addr_i18] = $1;
  8767.     HEAP[$x_addr_i19] = $2;
  8768.     HEAP[$y_addr_i20] = $3;
  8769.     var $this1_i21 = HEAP[$this_addr_i17];
  8770.     HEAP[HEAP[$y_addr_i20]] = 0;
  8771.     HEAP[HEAP[$x_addr_i19]] = 0;
  8772.     $ret6 = FUNCTION_TABLE[HEAP[HEAP[$this1_i21 + 72 | 0] + 64 | 0]]($this1_i21, HEAP[$this1_i21 + 76 | 0], HEAP[$glyph_addr_i18], HEAP[$x_addr_i19], HEAP[$y_addr_i20], HEAP[HEAP[$this1_i21 + 72 | 0] + 108 | 0]);
  8773.     if (($ret6 | 0) != 0) {
  8774.       STACKTOP = __stackBase__;
  8775.       return;
  8776.     }
  8777.     HEAP[$this_addr_i30] = $this1;
  8778.     HEAP[$glyph_addr_i31] = $glyph_addr;
  8779.     HEAP[$x_addr_i32] = $x_addr;
  8780.     HEAP[$y_addr_i33] = $y_addr;
  8781.     var $this1_i34 = HEAP[$this_addr_i30];
  8782.     HEAP[HEAP[$y_addr_i33]] = 0;
  8783.     HEAP[HEAP[$x_addr_i32]] = 0;
  8784.     var $call_i42 = FUNCTION_TABLE[HEAP[HEAP[$this1_i34 + 72 | 0] + 60 | 0]]($this1_i34, HEAP[$this1_i34 + 76 | 0], HEAP[$glyph_addr_i31], HEAP[$x_addr_i32], HEAP[$y_addr_i33], HEAP[HEAP[$this1_i34 + 72 | 0] + 104 | 0]);
  8785.     $ret6 = $call_i42;
  8786.     if (($call_i42 | 0) == 0) {
  8787.       STACKTOP = __stackBase__;
  8788.       return;
  8789.     }
  8790.     HEAP[$this_addr_i45] = $this1;
  8791.     HEAP[$glyph_addr_i46] = $glyph_addr;
  8792.     HEAP[$x_addr_i47] = $dx13;
  8793.     HEAP[$y_addr_i48] = $dy14;
  8794.     var $this1_i49 = HEAP[$this_addr_i45];
  8795.     var $118 = HEAP[$glyph_addr_i46];
  8796.     HEAP[$this_addr_i_i43] = $this1_i49;
  8797.     HEAP[$glyph_addr_i_i44] = $118;
  8798.     var $this1_i_i50 = HEAP[$this_addr_i_i43];
  8799.     var $div_i59 = (FUNCTION_TABLE[HEAP[HEAP[$this1_i_i50 + 72 | 0] + 52 | 0]]($this1_i_i50, HEAP[$this1_i_i50 + 76 | 0], HEAP[$glyph_addr_i_i44], HEAP[HEAP[$this1_i_i50 + 72 | 0] + 96 | 0]) | 0) / 2 & -1;
  8800.     HEAP[HEAP[$x_addr_i47]] = $div_i59;
  8801.     HEAP[HEAP[$y_addr_i48]] = HEAP[$this1_i49 + 60 | 0];
  8802.     var $137 = $x_addr;
  8803.     HEAP[$137] = HEAP[$137] + HEAP[$dx13] | 0;
  8804.     var $140 = $y_addr;
  8805.     HEAP[$140] = HEAP[$140] + HEAP[$dy14] | 0;
  8806.     STACKTOP = __stackBase__;
  8807.     return;
  8808.   }
  8809. }
  8810. function _hb_font_funcs_create() {
  8811.   var __stackBase__ = STACKTOP;
  8812.   STACKTOP = STACKTOP + 80 | 0;
  8813.   var $what_addr_i_i_i_i = __stackBase__;
  8814.   var $obj_addr_i_i_i_i = __stackBase__ + 4;
  8815.   var $func_addr_i_i_i_i = __stackBase__ + 8;
  8816.   var $level_addr_i_i_i_i = __stackBase__ + 12;
  8817.   var $level_dir_addr_i_i_i_i = __stackBase__ + 16;
  8818.   var $message_addr_i_i_i_i = __stackBase__ + 20;
  8819.   var $this_addr_i_i1_i = __stackBase__ + 24;
  8820.   var $function_addr_i_i_i = __stackBase__ + 28;
  8821.   var $obj_addr_i_i = __stackBase__ + 32;
  8822.   var $function_addr_i_i = __stackBase__ + 36;
  8823.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 40;
  8824.   var $this_addr_i1_i_i_i_i = __stackBase__ + 44;
  8825.   var $this_addr_i_i_i_i_i = __stackBase__ + 48;
  8826.   var $this_addr_i1_i_i_i = __stackBase__ + 52;
  8827.   var $this_addr_i_i_i_i = __stackBase__ + 56;
  8828.   var $v_addr_i_i_i_i = __stackBase__ + 60;
  8829.   var $this_addr_i_i_i = __stackBase__ + 64;
  8830.   var $size_addr_i_i = __stackBase__ + 68;
  8831.   var $obj_i_i = __stackBase__ + 72;
  8832.   var $obj_i = __stackBase__ + 76;
  8833.   var $retval;
  8834.   var $ffuncs;
  8835.   HEAP[$size_addr_i_i] = 180;
  8836.   var $4 = _calloc(1, HEAP[$size_addr_i_i]);
  8837.   HEAP[$obj_i_i] = $4;
  8838.   if ((HEAP[$obj_i_i] | 0) != 0) {
  8839.     HEAP[$this_addr_i_i_i] = HEAP[$obj_i_i];
  8840.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  8841.     HEAP[$this_addr_i_i_i_i] = $this1_i_i_i | 0;
  8842.     HEAP[$v_addr_i_i_i_i] = 1;
  8843.     HEAP[HEAP[$this_addr_i_i_i_i] | 0] = HEAP[$v_addr_i_i_i_i];
  8844.     HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i + 4 | 0;
  8845.     var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  8846.     HEAP[$this_addr_i_i_i_i_i] = $this1_i2_i_i_i | 0;
  8847.     HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] = 0;
  8848.     HEAP[$this_addr_i1_i_i_i_i] = $this1_i2_i_i_i + 4 | 0;
  8849.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  8850.     var $18 = HEAP[$this_addr_i_i_i_i_i_i];
  8851.     for (var $$dest = $18, $$stop = $$dest + 36; $$dest < $$stop; $$dest++) {
  8852.       HEAP[$$dest] = 0;
  8853.     }
  8854.   }
  8855.   HEAP[$obj_i] = HEAP[$obj_i_i];
  8856.   HEAP[$obj_addr_i_i] = HEAP[$obj_i];
  8857.   HEAP[$function_addr_i_i] = 110496;
  8858.   var $header_i_i = HEAP[$obj_addr_i_i] | 0;
  8859.   var $32 = HEAP[$function_addr_i_i];
  8860.   HEAP[$this_addr_i_i1_i] = $header_i_i;
  8861.   HEAP[$function_addr_i_i_i] = $32;
  8862.   if (($header_i_i | 0) != 0) {
  8863.     HEAP[$what_addr_i_i_i_i] = 104072;
  8864.     HEAP[$obj_addr_i_i_i_i] = $header_i_i;
  8865.     HEAP[$func_addr_i_i_i_i] = 0;
  8866.     HEAP[$level_addr_i_i_i_i] = 0;
  8867.     HEAP[$level_dir_addr_i_i_i_i] = 0;
  8868.     HEAP[$message_addr_i_i_i_i] = 104056;
  8869.   }
  8870.   var $53 = HEAP[$obj_i];
  8871.   $ffuncs = $53;
  8872.   if (($53 | 0) != 0) {
  8873.     var $56 = $ffuncs + 48 | 0;
  8874.     for (var $$src = 131824, $$dest = $56, $$stop = $$src + 44; $$src < $$stop; $$src++, $$dest++) {
  8875.       HEAP[$$dest] = HEAP[$$src];
  8876.     }
  8877.     $retval = $ffuncs;
  8878.     var $58 = $retval;
  8879.     STACKTOP = __stackBase__;
  8880.     return $58;
  8881.   } else {
  8882.     $retval = 131776;
  8883.     var $58 = $retval;
  8884.     STACKTOP = __stackBase__;
  8885.     return $58;
  8886.   }
  8887. }
  8888. function _hb_font_funcs_destroy($ffuncs) {
  8889.   var __stackBase__ = STACKTOP;
  8890.   STACKTOP = STACKTOP + 44 | 0;
  8891.   var $this_addr_i_i_i = __stackBase__ + 24;
  8892.   var $obj_addr_i_i = __stackBase__ + 32;
  8893.   var $function_addr_i_i = __stackBase__ + 36;
  8894.   var $obj_addr_i = __stackBase__ + 40;
  8895.   var $ffuncs_addr;
  8896.   $ffuncs_addr = $ffuncs;
  8897.   HEAP[$obj_addr_i] = $ffuncs_addr;
  8898.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  8899.   HEAP[$function_addr_i_i] = 109896;
  8900.   var $6 = HEAP[$function_addr_i_i];
  8901.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  8902.   HEAP[__stackBase__ + 28] = $6;
  8903.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  8904.   if (($this1_i_i_i | 0) != 0) {
  8905.     HEAP[__stackBase__] = 104072;
  8906.     HEAP[__stackBase__ + 4] = $this1_i_i_i;
  8907.     HEAP[__stackBase__ + 8] = 0;
  8908.     HEAP[__stackBase__ + 12] = 0;
  8909.     HEAP[__stackBase__ + 16] = 0;
  8910.     HEAP[__stackBase__ + 20] = 104056;
  8911.   }
  8912.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  8913.     STACKTOP = __stackBase__;
  8914.     return;
  8915.   }
  8916.   if ((HEAP[$ffuncs_addr + 136 | 0] | 0) != 0) {
  8917.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 136 | 0]](HEAP[$ffuncs_addr + 92 | 0]);
  8918.   }
  8919.   if ((HEAP[$ffuncs_addr + 140 | 0] | 0) != 0) {
  8920.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 140 | 0]](HEAP[$ffuncs_addr + 96 | 0]);
  8921.   }
  8922.   if ((HEAP[$ffuncs_addr + 144 | 0] | 0) != 0) {
  8923.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 144 | 0]](HEAP[$ffuncs_addr + 100 | 0]);
  8924.   }
  8925.   if ((HEAP[$ffuncs_addr + 148 | 0] | 0) != 0) {
  8926.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 148 | 0]](HEAP[$ffuncs_addr + 104 | 0]);
  8927.   }
  8928.   if ((HEAP[$ffuncs_addr + 152 | 0] | 0) != 0) {
  8929.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 152 | 0]](HEAP[$ffuncs_addr + 108 | 0]);
  8930.   }
  8931.   if ((HEAP[$ffuncs_addr + 156 | 0] | 0) != 0) {
  8932.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 156 | 0]](HEAP[$ffuncs_addr + 112 | 0]);
  8933.   }
  8934.   if ((HEAP[$ffuncs_addr + 160 | 0] | 0) != 0) {
  8935.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 160 | 0]](HEAP[$ffuncs_addr + 116 | 0]);
  8936.   }
  8937.   if ((HEAP[$ffuncs_addr + 164 | 0] | 0) != 0) {
  8938.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 164 | 0]](HEAP[$ffuncs_addr + 120 | 0]);
  8939.   }
  8940.   if ((HEAP[$ffuncs_addr + 168 | 0] | 0) != 0) {
  8941.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 168 | 0]](HEAP[$ffuncs_addr + 124 | 0]);
  8942.   }
  8943.   if ((HEAP[$ffuncs_addr + 172 | 0] | 0) != 0) {
  8944.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 172 | 0]](HEAP[$ffuncs_addr + 128 | 0]);
  8945.   }
  8946.   if ((HEAP[$ffuncs_addr + 176 | 0] | 0) != 0) {
  8947.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 176 | 0]](HEAP[$ffuncs_addr + 132 | 0]);
  8948.   }
  8949.   _free($ffuncs_addr);
  8950.   STACKTOP = __stackBase__;
  8951.   return;
  8952. }
  8953. function _hb_font_funcs_set_glyph_func($ffuncs, $func, $user_data, $destroy) {
  8954.   var $ffuncs_addr;
  8955.   var $func_addr;
  8956.   var $user_data_addr;
  8957.   var $destroy_addr;
  8958.   $ffuncs_addr = $ffuncs;
  8959.   $func_addr = $func;
  8960.   $user_data_addr = $user_data;
  8961.   $destroy_addr = $destroy;
  8962.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  8963.     if (($destroy_addr | 0) == 0) {
  8964.       return;
  8965.     }
  8966.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  8967.     return;
  8968.   }
  8969.   if ((HEAP[$ffuncs_addr + 136 | 0] | 0) != 0) {
  8970.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 136 | 0]](HEAP[$ffuncs_addr + 92 | 0]);
  8971.   }
  8972.   if (($func_addr | 0) != 0) {
  8973.     HEAP[$ffuncs_addr + 48 | 0] = $func_addr;
  8974.     HEAP[$ffuncs_addr + 92 | 0] = $user_data_addr;
  8975.     HEAP[$ffuncs_addr + 136 | 0] = $destroy_addr;
  8976.     return;
  8977.   } else {
  8978.     HEAP[$ffuncs_addr + 48 | 0] = 164;
  8979.     HEAP[$ffuncs_addr + 92 | 0] = 0;
  8980.     HEAP[$ffuncs_addr + 136 | 0] = 0;
  8981.     return;
  8982.   }
  8983. }
  8984. function __ZL21hb_font_get_glyph_nilP9hb_font_tPvjjPjS1_($font, $font_data, $unicode, $variation_selector, $glyph, $user_data) {
  8985.   var __stackBase__ = STACKTOP;
  8986.   STACKTOP = STACKTOP + 16 | 0;
  8987.   var $this_addr_i = __stackBase__;
  8988.   var $unicode_addr_i = __stackBase__ + 4;
  8989.   var $variation_selector_addr_i = __stackBase__ + 8;
  8990.   var $glyph_addr_i = __stackBase__ + 12;
  8991.   var $retval;
  8992.   var $font_addr;
  8993.   var $glyph_addr;
  8994.   $font_addr = $font;
  8995.   $glyph_addr = $glyph;
  8996.   if ((HEAP[$font_addr + 48 | 0] | 0) != 0) {
  8997.     HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  8998.     HEAP[$unicode_addr_i] = $unicode;
  8999.     HEAP[$variation_selector_addr_i] = $variation_selector;
  9000.     HEAP[$glyph_addr_i] = $glyph_addr;
  9001.     var $this1_i = HEAP[$this_addr_i];
  9002.     HEAP[HEAP[$glyph_addr_i]] = 0;
  9003.     $retval = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 48 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$unicode_addr_i], HEAP[$variation_selector_addr_i], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 92 | 0]);
  9004.     var $25 = $retval;
  9005.     STACKTOP = __stackBase__;
  9006.     return $25;
  9007.   } else {
  9008.     HEAP[$glyph_addr] = 0;
  9009.     $retval = 0;
  9010.     var $25 = $retval;
  9011.     STACKTOP = __stackBase__;
  9012.     return $25;
  9013.   }
  9014. }
  9015. function _hb_font_funcs_set_glyph_h_advance_func($ffuncs, $func, $user_data, $destroy) {
  9016.   var $ffuncs_addr;
  9017.   var $func_addr;
  9018.   var $user_data_addr;
  9019.   var $destroy_addr;
  9020.   $ffuncs_addr = $ffuncs;
  9021.   $func_addr = $func;
  9022.   $user_data_addr = $user_data;
  9023.   $destroy_addr = $destroy;
  9024.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9025.     if (($destroy_addr | 0) == 0) {
  9026.       return;
  9027.     }
  9028.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9029.     return;
  9030.   }
  9031.   if ((HEAP[$ffuncs_addr + 140 | 0] | 0) != 0) {
  9032.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 140 | 0]](HEAP[$ffuncs_addr + 96 | 0]);
  9033.   }
  9034.   if (($func_addr | 0) != 0) {
  9035.     HEAP[$ffuncs_addr + 52 | 0] = $func_addr;
  9036.     HEAP[$ffuncs_addr + 96 | 0] = $user_data_addr;
  9037.     HEAP[$ffuncs_addr + 140 | 0] = $destroy_addr;
  9038.     return;
  9039.   } else {
  9040.     HEAP[$ffuncs_addr + 52 | 0] = 58;
  9041.     HEAP[$ffuncs_addr + 96 | 0] = 0;
  9042.     HEAP[$ffuncs_addr + 140 | 0] = 0;
  9043.     return;
  9044.   }
  9045. }
  9046. function __ZL31hb_font_get_glyph_h_advance_nilP9hb_font_tPvjS1_($font, $font_data, $glyph, $user_data) {
  9047.   var label = 0;
  9048.   var __stackBase__ = STACKTOP;
  9049.   STACKTOP = STACKTOP + 20 | 0;
  9050.   var $retval_i = __stackBase__;
  9051.   var $this_addr_i1 = __stackBase__ + 4;
  9052.   var $v_addr_i = __stackBase__ + 8;
  9053.   var $this_addr_i = __stackBase__ + 12;
  9054.   var $glyph_addr_i = __stackBase__ + 16;
  9055.   var $retval;
  9056.   var $font_addr;
  9057.   $font_addr = $font;
  9058.   var $2 = $font_addr;
  9059.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9060.     $retval = HEAP[$2 + 56 | 0];
  9061.     var $33 = $retval;
  9062.     STACKTOP = __stackBase__;
  9063.     return $33;
  9064.   }
  9065.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9066.   HEAP[$glyph_addr_i] = $glyph;
  9067.   var $this1_i = HEAP[$this_addr_i];
  9068.   var $call_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 52 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 96 | 0]);
  9069.   HEAP[$this_addr_i1] = $2;
  9070.   HEAP[$v_addr_i] = $call_i;
  9071.   var $this1_i2 = HEAP[$this_addr_i1];
  9072.   do {
  9073.     if ((HEAP[$this1_i2 + 48 | 0] | 0) != 0) {
  9074.       if ((HEAP[HEAP[$this1_i2 + 48 | 0] + 56 | 0] | 0) == (HEAP[$this1_i2 + 56 | 0] | 0)) {
  9075.         label = 827;
  9076.         break;
  9077.       }
  9078.       HEAP[$retval_i] = (HEAP[$v_addr_i] | 0) * (HEAP[$this1_i2 + 56 | 0] | 0) / (HEAP[HEAP[$this1_i2 + 48 | 0] + 56 | 0] | 0) & -1;
  9079.       break;
  9080.     } else {
  9081.       label = 827;
  9082.     }
  9083.   } while (0);
  9084.   if (label == 827) {
  9085.     HEAP[$retval_i] = HEAP[$v_addr_i];
  9086.   }
  9087.   $retval = HEAP[$retval_i];
  9088.   var $33 = $retval;
  9089.   STACKTOP = __stackBase__;
  9090.   return $33;
  9091. }
  9092. function _hb_font_funcs_set_glyph_v_advance_func($ffuncs, $func, $user_data, $destroy) {
  9093.   var $ffuncs_addr;
  9094.   var $func_addr;
  9095.   var $user_data_addr;
  9096.   var $destroy_addr;
  9097.   $ffuncs_addr = $ffuncs;
  9098.   $func_addr = $func;
  9099.   $user_data_addr = $user_data;
  9100.   $destroy_addr = $destroy;
  9101.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9102.     if (($destroy_addr | 0) == 0) {
  9103.       return;
  9104.     }
  9105.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9106.     return;
  9107.   }
  9108.   if ((HEAP[$ffuncs_addr + 144 | 0] | 0) != 0) {
  9109.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 144 | 0]](HEAP[$ffuncs_addr + 100 | 0]);
  9110.   }
  9111.   if (($func_addr | 0) != 0) {
  9112.     HEAP[$ffuncs_addr + 56 | 0] = $func_addr;
  9113.     HEAP[$ffuncs_addr + 100 | 0] = $user_data_addr;
  9114.     HEAP[$ffuncs_addr + 144 | 0] = $destroy_addr;
  9115.     return;
  9116.   } else {
  9117.     HEAP[$ffuncs_addr + 56 | 0] = 134;
  9118.     HEAP[$ffuncs_addr + 100 | 0] = 0;
  9119.     HEAP[$ffuncs_addr + 144 | 0] = 0;
  9120.     return;
  9121.   }
  9122. }
  9123. function __ZL31hb_font_get_glyph_v_advance_nilP9hb_font_tPvjS1_($font, $font_data, $glyph, $user_data) {
  9124.   var label = 0;
  9125.   var __stackBase__ = STACKTOP;
  9126.   STACKTOP = STACKTOP + 20 | 0;
  9127.   var $retval_i = __stackBase__;
  9128.   var $this_addr_i1 = __stackBase__ + 4;
  9129.   var $v_addr_i = __stackBase__ + 8;
  9130.   var $this_addr_i = __stackBase__ + 12;
  9131.   var $glyph_addr_i = __stackBase__ + 16;
  9132.   var $retval;
  9133.   var $font_addr;
  9134.   $font_addr = $font;
  9135.   var $2 = $font_addr;
  9136.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9137.     $retval = HEAP[$2 + 60 | 0];
  9138.     var $33 = $retval;
  9139.     STACKTOP = __stackBase__;
  9140.     return $33;
  9141.   }
  9142.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9143.   HEAP[$glyph_addr_i] = $glyph;
  9144.   var $this1_i = HEAP[$this_addr_i];
  9145.   var $call_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 56 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 100 | 0]);
  9146.   HEAP[$this_addr_i1] = $2;
  9147.   HEAP[$v_addr_i] = $call_i;
  9148.   var $this1_i2 = HEAP[$this_addr_i1];
  9149.   do {
  9150.     if ((HEAP[$this1_i2 + 48 | 0] | 0) != 0) {
  9151.       if ((HEAP[HEAP[$this1_i2 + 48 | 0] + 60 | 0] | 0) == (HEAP[$this1_i2 + 60 | 0] | 0)) {
  9152.         label = 850;
  9153.         break;
  9154.       }
  9155.       HEAP[$retval_i] = (HEAP[$v_addr_i] | 0) * (HEAP[$this1_i2 + 60 | 0] | 0) / (HEAP[HEAP[$this1_i2 + 48 | 0] + 60 | 0] | 0) & -1;
  9156.       break;
  9157.     } else {
  9158.       label = 850;
  9159.     }
  9160.   } while (0);
  9161.   if (label == 850) {
  9162.     HEAP[$retval_i] = HEAP[$v_addr_i];
  9163.   }
  9164.   $retval = HEAP[$retval_i];
  9165.   var $33 = $retval;
  9166.   STACKTOP = __stackBase__;
  9167.   return $33;
  9168. }
  9169. function _hb_font_funcs_set_glyph_h_origin_func($ffuncs, $func, $user_data, $destroy) {
  9170.   var $ffuncs_addr;
  9171.   var $func_addr;
  9172.   var $user_data_addr;
  9173.   var $destroy_addr;
  9174.   $ffuncs_addr = $ffuncs;
  9175.   $func_addr = $func;
  9176.   $user_data_addr = $user_data;
  9177.   $destroy_addr = $destroy;
  9178.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9179.     if (($destroy_addr | 0) == 0) {
  9180.       return;
  9181.     }
  9182.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9183.     return;
  9184.   }
  9185.   if ((HEAP[$ffuncs_addr + 148 | 0] | 0) != 0) {
  9186.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 148 | 0]](HEAP[$ffuncs_addr + 104 | 0]);
  9187.   }
  9188.   if (($func_addr | 0) != 0) {
  9189.     HEAP[$ffuncs_addr + 60 | 0] = $func_addr;
  9190.     HEAP[$ffuncs_addr + 104 | 0] = $user_data_addr;
  9191.     HEAP[$ffuncs_addr + 148 | 0] = $destroy_addr;
  9192.     return;
  9193.   } else {
  9194.     HEAP[$ffuncs_addr + 60 | 0] = 14;
  9195.     HEAP[$ffuncs_addr + 104 | 0] = 0;
  9196.     HEAP[$ffuncs_addr + 148 | 0] = 0;
  9197.     return;
  9198.   }
  9199. }
  9200. function __ZL30hb_font_get_glyph_h_origin_nilP9hb_font_tPvjPiS2_S1_($font, $font_data, $glyph, $x, $y, $user_data) {
  9201.   var __stackBase__ = STACKTOP;
  9202.   STACKTOP = STACKTOP + 16 | 0;
  9203.   var $this_addr_i = __stackBase__;
  9204.   var $glyph_addr_i = __stackBase__ + 4;
  9205.   var $x_addr_i = __stackBase__ + 8;
  9206.   var $y_addr_i = __stackBase__ + 12;
  9207.   var $retval;
  9208.   var $font_addr;
  9209.   var $x_addr;
  9210.   var $y_addr;
  9211.   var $ret;
  9212.   $font_addr = $font;
  9213.   $x_addr = $x;
  9214.   $y_addr = $y;
  9215.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9216.     HEAP[$y_addr] = 0;
  9217.     HEAP[$x_addr] = 0;
  9218.     $retval = 0;
  9219.     var $32 = $retval;
  9220.     STACKTOP = __stackBase__;
  9221.     return $32;
  9222.   }
  9223.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9224.   HEAP[$glyph_addr_i] = $glyph;
  9225.   HEAP[$x_addr_i] = $x_addr;
  9226.   HEAP[$y_addr_i] = $y_addr;
  9227.   var $this1_i = HEAP[$this_addr_i];
  9228.   HEAP[HEAP[$y_addr_i]] = 0;
  9229.   HEAP[HEAP[$x_addr_i]] = 0;
  9230.   $ret = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 60 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[$x_addr_i], HEAP[$y_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 104 | 0]);
  9231.   if (($ret | 0) != 0) {
  9232.     __ZN9hb_font_t21parent_scale_positionEPiS0_($font_addr, $x_addr, $y_addr);
  9233.   }
  9234.   $retval = $ret;
  9235.   var $32 = $retval;
  9236.   STACKTOP = __stackBase__;
  9237.   return $32;
  9238. }
  9239. function _hb_font_funcs_set_glyph_v_origin_func($ffuncs, $func, $user_data, $destroy) {
  9240.   var $ffuncs_addr;
  9241.   var $func_addr;
  9242.   var $user_data_addr;
  9243.   var $destroy_addr;
  9244.   $ffuncs_addr = $ffuncs;
  9245.   $func_addr = $func;
  9246.   $user_data_addr = $user_data;
  9247.   $destroy_addr = $destroy;
  9248.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9249.     if (($destroy_addr | 0) == 0) {
  9250.       return;
  9251.     }
  9252.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9253.     return;
  9254.   }
  9255.   if ((HEAP[$ffuncs_addr + 152 | 0] | 0) != 0) {
  9256.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 152 | 0]](HEAP[$ffuncs_addr + 108 | 0]);
  9257.   }
  9258.   if (($func_addr | 0) != 0) {
  9259.     HEAP[$ffuncs_addr + 64 | 0] = $func_addr;
  9260.     HEAP[$ffuncs_addr + 108 | 0] = $user_data_addr;
  9261.     HEAP[$ffuncs_addr + 152 | 0] = $destroy_addr;
  9262.     return;
  9263.   } else {
  9264.     HEAP[$ffuncs_addr + 64 | 0] = 54;
  9265.     HEAP[$ffuncs_addr + 108 | 0] = 0;
  9266.     HEAP[$ffuncs_addr + 152 | 0] = 0;
  9267.     return;
  9268.   }
  9269. }
  9270. function __ZL30hb_font_get_glyph_v_origin_nilP9hb_font_tPvjPiS2_S1_($font, $font_data, $glyph, $x, $y, $user_data) {
  9271.   var __stackBase__ = STACKTOP;
  9272.   STACKTOP = STACKTOP + 16 | 0;
  9273.   var $this_addr_i = __stackBase__;
  9274.   var $glyph_addr_i = __stackBase__ + 4;
  9275.   var $x_addr_i = __stackBase__ + 8;
  9276.   var $y_addr_i = __stackBase__ + 12;
  9277.   var $retval;
  9278.   var $font_addr;
  9279.   var $x_addr;
  9280.   var $y_addr;
  9281.   var $ret;
  9282.   $font_addr = $font;
  9283.   $x_addr = $x;
  9284.   $y_addr = $y;
  9285.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9286.     HEAP[$y_addr] = 0;
  9287.     HEAP[$x_addr] = 0;
  9288.     $retval = 0;
  9289.     var $32 = $retval;
  9290.     STACKTOP = __stackBase__;
  9291.     return $32;
  9292.   }
  9293.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9294.   HEAP[$glyph_addr_i] = $glyph;
  9295.   HEAP[$x_addr_i] = $x_addr;
  9296.   HEAP[$y_addr_i] = $y_addr;
  9297.   var $this1_i = HEAP[$this_addr_i];
  9298.   HEAP[HEAP[$y_addr_i]] = 0;
  9299.   HEAP[HEAP[$x_addr_i]] = 0;
  9300.   $ret = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 64 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[$x_addr_i], HEAP[$y_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 108 | 0]);
  9301.   if (($ret | 0) != 0) {
  9302.     __ZN9hb_font_t21parent_scale_positionEPiS0_($font_addr, $x_addr, $y_addr);
  9303.   }
  9304.   $retval = $ret;
  9305.   var $32 = $retval;
  9306.   STACKTOP = __stackBase__;
  9307.   return $32;
  9308. }
  9309. function _hb_font_funcs_set_glyph_h_kerning_func($ffuncs, $func, $user_data, $destroy) {
  9310.   var $ffuncs_addr;
  9311.   var $func_addr;
  9312.   var $user_data_addr;
  9313.   var $destroy_addr;
  9314.   $ffuncs_addr = $ffuncs;
  9315.   $func_addr = $func;
  9316.   $user_data_addr = $user_data;
  9317.   $destroy_addr = $destroy;
  9318.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9319.     if (($destroy_addr | 0) == 0) {
  9320.       return;
  9321.     }
  9322.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9323.     return;
  9324.   }
  9325.   if ((HEAP[$ffuncs_addr + 156 | 0] | 0) != 0) {
  9326.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 156 | 0]](HEAP[$ffuncs_addr + 112 | 0]);
  9327.   }
  9328.   if (($func_addr | 0) != 0) {
  9329.     HEAP[$ffuncs_addr + 68 | 0] = $func_addr;
  9330.     HEAP[$ffuncs_addr + 112 | 0] = $user_data_addr;
  9331.     HEAP[$ffuncs_addr + 156 | 0] = $destroy_addr;
  9332.     return;
  9333.   } else {
  9334.     HEAP[$ffuncs_addr + 68 | 0] = 90;
  9335.     HEAP[$ffuncs_addr + 112 | 0] = 0;
  9336.     HEAP[$ffuncs_addr + 156 | 0] = 0;
  9337.     return;
  9338.   }
  9339. }
  9340. function __ZL31hb_font_get_glyph_h_kerning_nilP9hb_font_tPvjjS1_($font, $font_data, $left_glyph, $right_glyph, $user_data) {
  9341.   var label = 0;
  9342.   var __stackBase__ = STACKTOP;
  9343.   STACKTOP = STACKTOP + 24 | 0;
  9344.   var $retval_i = __stackBase__;
  9345.   var $this_addr_i1 = __stackBase__ + 4;
  9346.   var $v_addr_i = __stackBase__ + 8;
  9347.   var $this_addr_i = __stackBase__ + 12;
  9348.   var $left_glyph_addr_i = __stackBase__ + 16;
  9349.   var $right_glyph_addr_i = __stackBase__ + 20;
  9350.   var $retval;
  9351.   var $font_addr;
  9352.   $font_addr = $font;
  9353.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9354.     $retval = 0;
  9355.     var $36 = $retval;
  9356.     STACKTOP = __stackBase__;
  9357.     return $36;
  9358.   }
  9359.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9360.   HEAP[$left_glyph_addr_i] = $left_glyph;
  9361.   HEAP[$right_glyph_addr_i] = $right_glyph;
  9362.   var $this1_i = HEAP[$this_addr_i];
  9363.   var $call_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 68 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$left_glyph_addr_i], HEAP[$right_glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 112 | 0]);
  9364.   HEAP[$this_addr_i1] = $font_addr;
  9365.   HEAP[$v_addr_i] = $call_i;
  9366.   var $this1_i2 = HEAP[$this_addr_i1];
  9367.   do {
  9368.     if ((HEAP[$this1_i2 + 48 | 0] | 0) != 0) {
  9369.       if ((HEAP[HEAP[$this1_i2 + 48 | 0] + 56 | 0] | 0) == (HEAP[$this1_i2 + 56 | 0] | 0)) {
  9370.         label = 915;
  9371.         break;
  9372.       }
  9373.       HEAP[$retval_i] = (HEAP[$v_addr_i] | 0) * (HEAP[$this1_i2 + 56 | 0] | 0) / (HEAP[HEAP[$this1_i2 + 48 | 0] + 56 | 0] | 0) & -1;
  9374.       break;
  9375.     } else {
  9376.       label = 915;
  9377.     }
  9378.   } while (0);
  9379.   if (label == 915) {
  9380.     HEAP[$retval_i] = HEAP[$v_addr_i];
  9381.   }
  9382.   $retval = HEAP[$retval_i];
  9383.   var $36 = $retval;
  9384.   STACKTOP = __stackBase__;
  9385.   return $36;
  9386. }
  9387. function _hb_font_funcs_set_glyph_v_kerning_func($ffuncs, $func, $user_data, $destroy) {
  9388.   var $ffuncs_addr;
  9389.   var $func_addr;
  9390.   var $user_data_addr;
  9391.   var $destroy_addr;
  9392.   $ffuncs_addr = $ffuncs;
  9393.   $func_addr = $func;
  9394.   $user_data_addr = $user_data;
  9395.   $destroy_addr = $destroy;
  9396.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9397.     if (($destroy_addr | 0) == 0) {
  9398.       return;
  9399.     }
  9400.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9401.     return;
  9402.   }
  9403.   if ((HEAP[$ffuncs_addr + 160 | 0] | 0) != 0) {
  9404.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 160 | 0]](HEAP[$ffuncs_addr + 116 | 0]);
  9405.   }
  9406.   if (($func_addr | 0) != 0) {
  9407.     HEAP[$ffuncs_addr + 72 | 0] = $func_addr;
  9408.     HEAP[$ffuncs_addr + 116 | 0] = $user_data_addr;
  9409.     HEAP[$ffuncs_addr + 160 | 0] = $destroy_addr;
  9410.     return;
  9411.   } else {
  9412.     HEAP[$ffuncs_addr + 72 | 0] = 2;
  9413.     HEAP[$ffuncs_addr + 116 | 0] = 0;
  9414.     HEAP[$ffuncs_addr + 160 | 0] = 0;
  9415.     return;
  9416.   }
  9417. }
  9418. function __ZL31hb_font_get_glyph_v_kerning_nilP9hb_font_tPvjjS1_($font, $font_data, $top_glyph, $bottom_glyph, $user_data) {
  9419.   var label = 0;
  9420.   var __stackBase__ = STACKTOP;
  9421.   STACKTOP = STACKTOP + 24 | 0;
  9422.   var $retval_i = __stackBase__;
  9423.   var $this_addr_i1 = __stackBase__ + 4;
  9424.   var $v_addr_i = __stackBase__ + 8;
  9425.   var $this_addr_i = __stackBase__ + 12;
  9426.   var $left_glyph_addr_i = __stackBase__ + 16;
  9427.   var $right_glyph_addr_i = __stackBase__ + 20;
  9428.   var $retval;
  9429.   var $font_addr;
  9430.   $font_addr = $font;
  9431.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9432.     $retval = 0;
  9433.     var $36 = $retval;
  9434.     STACKTOP = __stackBase__;
  9435.     return $36;
  9436.   }
  9437.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9438.   HEAP[$left_glyph_addr_i] = $top_glyph;
  9439.   HEAP[$right_glyph_addr_i] = $bottom_glyph;
  9440.   var $this1_i = HEAP[$this_addr_i];
  9441.   var $call_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 72 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$left_glyph_addr_i], HEAP[$right_glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 116 | 0]);
  9442.   HEAP[$this_addr_i1] = $font_addr;
  9443.   HEAP[$v_addr_i] = $call_i;
  9444.   var $this1_i2 = HEAP[$this_addr_i1];
  9445.   do {
  9446.     if ((HEAP[$this1_i2 + 48 | 0] | 0) != 0) {
  9447.       if ((HEAP[HEAP[$this1_i2 + 48 | 0] + 60 | 0] | 0) == (HEAP[$this1_i2 + 60 | 0] | 0)) {
  9448.         label = 938;
  9449.         break;
  9450.       }
  9451.       HEAP[$retval_i] = (HEAP[$v_addr_i] | 0) * (HEAP[$this1_i2 + 60 | 0] | 0) / (HEAP[HEAP[$this1_i2 + 48 | 0] + 60 | 0] | 0) & -1;
  9452.       break;
  9453.     } else {
  9454.       label = 938;
  9455.     }
  9456.   } while (0);
  9457.   if (label == 938) {
  9458.     HEAP[$retval_i] = HEAP[$v_addr_i];
  9459.   }
  9460.   $retval = HEAP[$retval_i];
  9461.   var $36 = $retval;
  9462.   STACKTOP = __stackBase__;
  9463.   return $36;
  9464. }
  9465. function _hb_font_funcs_set_glyph_extents_func($ffuncs, $func, $user_data, $destroy) {
  9466.   var $ffuncs_addr;
  9467.   var $func_addr;
  9468.   var $user_data_addr;
  9469.   var $destroy_addr;
  9470.   $ffuncs_addr = $ffuncs;
  9471.   $func_addr = $func;
  9472.   $user_data_addr = $user_data;
  9473.   $destroy_addr = $destroy;
  9474.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9475.     if (($destroy_addr | 0) == 0) {
  9476.       return;
  9477.     }
  9478.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9479.     return;
  9480.   }
  9481.   if ((HEAP[$ffuncs_addr + 164 | 0] | 0) != 0) {
  9482.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 164 | 0]](HEAP[$ffuncs_addr + 120 | 0]);
  9483.   }
  9484.   if (($func_addr | 0) != 0) {
  9485.     HEAP[$ffuncs_addr + 76 | 0] = $func_addr;
  9486.     HEAP[$ffuncs_addr + 120 | 0] = $user_data_addr;
  9487.     HEAP[$ffuncs_addr + 164 | 0] = $destroy_addr;
  9488.     return;
  9489.   } else {
  9490.     HEAP[$ffuncs_addr + 76 | 0] = 36;
  9491.     HEAP[$ffuncs_addr + 120 | 0] = 0;
  9492.     HEAP[$ffuncs_addr + 164 | 0] = 0;
  9493.     return;
  9494.   }
  9495. }
  9496. function __ZL29hb_font_get_glyph_extents_nilP9hb_font_tPvjP18hb_glyph_extents_tS1_($font, $font_data, $glyph, $extents, $user_data) {
  9497.   var label = 0;
  9498.   var __stackBase__ = STACKTOP;
  9499.   STACKTOP = STACKTOP + 48 | 0;
  9500.   var $retval_i1_i = __stackBase__;
  9501.   var $this_addr_i2_i = __stackBase__ + 4;
  9502.   var $v_addr_i3_i = __stackBase__ + 8;
  9503.   var $retval_i_i = __stackBase__ + 12;
  9504.   var $this_addr_i_i = __stackBase__ + 16;
  9505.   var $v_addr_i_i = __stackBase__ + 20;
  9506.   var $this_addr_i1 = __stackBase__ + 24;
  9507.   var $x_addr_i = __stackBase__ + 28;
  9508.   var $y_addr_i = __stackBase__ + 32;
  9509.   var $this_addr_i = __stackBase__ + 36;
  9510.   var $glyph_addr_i = __stackBase__ + 40;
  9511.   var $extents_addr_i = __stackBase__ + 44;
  9512.   var $retval;
  9513.   var $font_addr;
  9514.   var $glyph_addr;
  9515.   var $extents_addr;
  9516.   var $ret;
  9517.   $font_addr = $font;
  9518.   $glyph_addr = $glyph;
  9519.   $extents_addr = $extents;
  9520.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9521.     var $74 = $extents_addr;
  9522.     for (var $$dest = $74, $$stop = $$dest + 16; $$dest < $$stop; $$dest++) {
  9523.       HEAP[$$dest] = 0;
  9524.     }
  9525.     $retval = 0;
  9526.     var $75 = $retval;
  9527.     STACKTOP = __stackBase__;
  9528.     return $75;
  9529.   }
  9530.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9531.   HEAP[$glyph_addr_i] = $glyph_addr;
  9532.   HEAP[$extents_addr_i] = $extents_addr;
  9533.   var $this1_i = HEAP[$this_addr_i];
  9534.   var $10 = HEAP[$extents_addr_i];
  9535.   for (var $$dest = $10, $$stop = $$dest + 16; $$dest < $$stop; $$dest++) {
  9536.     HEAP[$$dest] = 0;
  9537.   }
  9538.   $ret = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 76 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[$extents_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 120 | 0]);
  9539.   if (($ret | 0) != 0) {
  9540.     __ZN9hb_font_t21parent_scale_positionEPiS0_($font_addr, $extents_addr | 0, $extents_addr + 4 | 0);
  9541.     HEAP[$this_addr_i1] = $font_addr;
  9542.     HEAP[$x_addr_i] = $extents_addr + 8 | 0;
  9543.     HEAP[$y_addr_i] = $extents_addr + 12 | 0;
  9544.     var $this1_i2 = HEAP[$this_addr_i1];
  9545.     var $32 = HEAP[HEAP[$x_addr_i]];
  9546.     HEAP[$this_addr_i_i] = $this1_i2;
  9547.     HEAP[$v_addr_i_i] = $32;
  9548.     var $this1_i_i = HEAP[$this_addr_i_i];
  9549.     do {
  9550.       if ((HEAP[$this1_i_i + 48 | 0] | 0) != 0) {
  9551.         if ((HEAP[HEAP[$this1_i_i + 48 | 0] + 56 | 0] | 0) == (HEAP[$this1_i_i + 56 | 0] | 0)) {
  9552.           label = 962;
  9553.           break;
  9554.         }
  9555.         HEAP[$retval_i_i] = (HEAP[$v_addr_i_i] | 0) * (HEAP[$this1_i_i + 56 | 0] | 0) / (HEAP[HEAP[$this1_i_i + 48 | 0] + 56 | 0] | 0) & -1;
  9556.         break;
  9557.       } else {
  9558.         label = 962;
  9559.       }
  9560.     } while (0);
  9561.     if (label == 962) {
  9562.       HEAP[$retval_i_i] = HEAP[$v_addr_i_i];
  9563.     }
  9564.     HEAP[HEAP[$x_addr_i]] = HEAP[$retval_i_i];
  9565.     var $51 = HEAP[HEAP[$y_addr_i]];
  9566.     HEAP[$this_addr_i2_i] = $this1_i2;
  9567.     HEAP[$v_addr_i3_i] = $51;
  9568.     var $this1_i4_i = HEAP[$this_addr_i2_i];
  9569.     do {
  9570.       if ((HEAP[$this1_i4_i + 48 | 0] | 0) != 0) {
  9571.         if ((HEAP[HEAP[$this1_i4_i + 48 | 0] + 60 | 0] | 0) == (HEAP[$this1_i4_i + 60 | 0] | 0)) {
  9572.           label = 966;
  9573.           break;
  9574.         }
  9575.         HEAP[$retval_i1_i] = (HEAP[$v_addr_i3_i] | 0) * (HEAP[$this1_i4_i + 60 | 0] | 0) / (HEAP[HEAP[$this1_i4_i + 48 | 0] + 60 | 0] | 0) & -1;
  9576.         break;
  9577.       } else {
  9578.         label = 966;
  9579.       }
  9580.     } while (0);
  9581.     if (label == 966) {
  9582.       HEAP[$retval_i1_i] = HEAP[$v_addr_i3_i];
  9583.     }
  9584.     HEAP[HEAP[$y_addr_i]] = HEAP[$retval_i1_i];
  9585.   }
  9586.   $retval = $ret;
  9587.   var $75 = $retval;
  9588.   STACKTOP = __stackBase__;
  9589.   return $75;
  9590. }
  9591. function _hb_font_funcs_set_glyph_contour_point_func($ffuncs, $func, $user_data, $destroy) {
  9592.   var $ffuncs_addr;
  9593.   var $func_addr;
  9594.   var $user_data_addr;
  9595.   var $destroy_addr;
  9596.   $ffuncs_addr = $ffuncs;
  9597.   $func_addr = $func;
  9598.   $user_data_addr = $user_data;
  9599.   $destroy_addr = $destroy;
  9600.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9601.     if (($destroy_addr | 0) == 0) {
  9602.       return;
  9603.     }
  9604.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9605.     return;
  9606.   }
  9607.   if ((HEAP[$ffuncs_addr + 168 | 0] | 0) != 0) {
  9608.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 168 | 0]](HEAP[$ffuncs_addr + 124 | 0]);
  9609.   }
  9610.   if (($func_addr | 0) != 0) {
  9611.     HEAP[$ffuncs_addr + 80 | 0] = $func_addr;
  9612.     HEAP[$ffuncs_addr + 124 | 0] = $user_data_addr;
  9613.     HEAP[$ffuncs_addr + 168 | 0] = $destroy_addr;
  9614.     return;
  9615.   } else {
  9616.     HEAP[$ffuncs_addr + 80 | 0] = 38;
  9617.     HEAP[$ffuncs_addr + 124 | 0] = 0;
  9618.     HEAP[$ffuncs_addr + 168 | 0] = 0;
  9619.     return;
  9620.   }
  9621. }
  9622. function __ZL35hb_font_get_glyph_contour_point_nilP9hb_font_tPvjjPiS2_S1_($font, $font_data, $glyph, $point_index, $x, $y, $user_data) {
  9623.   var __stackBase__ = STACKTOP;
  9624.   STACKTOP = STACKTOP + 20 | 0;
  9625.   var $this_addr_i = __stackBase__;
  9626.   var $glyph_addr_i = __stackBase__ + 4;
  9627.   var $point_index_addr_i = __stackBase__ + 8;
  9628.   var $x_addr_i = __stackBase__ + 12;
  9629.   var $y_addr_i = __stackBase__ + 16;
  9630.   var $retval;
  9631.   var $font_addr;
  9632.   var $x_addr;
  9633.   var $y_addr;
  9634.   var $ret;
  9635.   $font_addr = $font;
  9636.   $x_addr = $x;
  9637.   $y_addr = $y;
  9638.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9639.     HEAP[$y_addr] = 0;
  9640.     HEAP[$x_addr] = 0;
  9641.     $retval = 0;
  9642.     var $36 = $retval;
  9643.     STACKTOP = __stackBase__;
  9644.     return $36;
  9645.   }
  9646.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9647.   HEAP[$glyph_addr_i] = $glyph;
  9648.   HEAP[$point_index_addr_i] = $point_index;
  9649.   HEAP[$x_addr_i] = $x_addr;
  9650.   HEAP[$y_addr_i] = $y_addr;
  9651.   var $this1_i = HEAP[$this_addr_i];
  9652.   HEAP[HEAP[$y_addr_i]] = 0;
  9653.   HEAP[HEAP[$x_addr_i]] = 0;
  9654.   $ret = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 80 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[$point_index_addr_i], HEAP[$x_addr_i], HEAP[$y_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 124 | 0]);
  9655.   if (($ret | 0) != 0) {
  9656.     __ZN9hb_font_t21parent_scale_positionEPiS0_($font_addr, $x_addr, $y_addr);
  9657.   }
  9658.   $retval = $ret;
  9659.   var $36 = $retval;
  9660.   STACKTOP = __stackBase__;
  9661.   return $36;
  9662. }
  9663. function _hb_font_funcs_set_glyph_name_func($ffuncs, $func, $user_data, $destroy) {
  9664.   var $ffuncs_addr;
  9665.   var $func_addr;
  9666.   var $user_data_addr;
  9667.   var $destroy_addr;
  9668.   $ffuncs_addr = $ffuncs;
  9669.   $func_addr = $func;
  9670.   $user_data_addr = $user_data;
  9671.   $destroy_addr = $destroy;
  9672.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9673.     if (($destroy_addr | 0) == 0) {
  9674.       return;
  9675.     }
  9676.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9677.     return;
  9678.   }
  9679.   if ((HEAP[$ffuncs_addr + 172 | 0] | 0) != 0) {
  9680.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 172 | 0]](HEAP[$ffuncs_addr + 128 | 0]);
  9681.   }
  9682.   if (($func_addr | 0) != 0) {
  9683.     HEAP[$ffuncs_addr + 84 | 0] = $func_addr;
  9684.     HEAP[$ffuncs_addr + 128 | 0] = $user_data_addr;
  9685.     HEAP[$ffuncs_addr + 172 | 0] = $destroy_addr;
  9686.     return;
  9687.   } else {
  9688.     HEAP[$ffuncs_addr + 84 | 0] = 162;
  9689.     HEAP[$ffuncs_addr + 128 | 0] = 0;
  9690.     HEAP[$ffuncs_addr + 172 | 0] = 0;
  9691.     return;
  9692.   }
  9693. }
  9694. function __ZL26hb_font_get_glyph_name_nilP9hb_font_tPvjPcjS1_($font, $font_data, $glyph, $name, $size, $user_data) {
  9695.   var __stackBase__ = STACKTOP;
  9696.   STACKTOP = STACKTOP + 16 | 0;
  9697.   var $this_addr_i = __stackBase__;
  9698.   var $glyph_addr_i = __stackBase__ + 4;
  9699.   var $name_addr_i = __stackBase__ + 8;
  9700.   var $size_addr_i = __stackBase__ + 12;
  9701.   var $retval;
  9702.   var $font_addr;
  9703.   var $name_addr;
  9704.   var $size_addr;
  9705.   $font_addr = $font;
  9706.   $name_addr = $name;
  9707.   $size_addr = $size;
  9708.   if ((HEAP[$font_addr + 48 | 0] | 0) != 0) {
  9709.     HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9710.     HEAP[$glyph_addr_i] = $glyph;
  9711.     HEAP[$name_addr_i] = $name_addr;
  9712.     HEAP[$size_addr_i] = $size_addr;
  9713.     var $this1_i = HEAP[$this_addr_i];
  9714.     if ((HEAP[$size_addr_i] | 0) != 0) {
  9715.       HEAP[HEAP[$name_addr_i]] = 0;
  9716.     }
  9717.     $retval = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 84 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$glyph_addr_i], HEAP[$name_addr_i], HEAP[$size_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 128 | 0]);
  9718.     var $27 = $retval;
  9719.     STACKTOP = __stackBase__;
  9720.     return $27;
  9721.   } else {
  9722.     if (($size_addr | 0) != 0) {
  9723.       HEAP[$name_addr] = 0;
  9724.     }
  9725.     $retval = 0;
  9726.     var $27 = $retval;
  9727.     STACKTOP = __stackBase__;
  9728.     return $27;
  9729.   }
  9730. }
  9731. function _hb_font_funcs_set_glyph_from_name_func($ffuncs, $func, $user_data, $destroy) {
  9732.   var $ffuncs_addr;
  9733.   var $func_addr;
  9734.   var $user_data_addr;
  9735.   var $destroy_addr;
  9736.   $ffuncs_addr = $ffuncs;
  9737.   $func_addr = $func;
  9738.   $user_data_addr = $user_data;
  9739.   $destroy_addr = $destroy;
  9740.   if ((HEAP[$ffuncs_addr + 44 | 0] | 0) != 0) {
  9741.     if (($destroy_addr | 0) == 0) {
  9742.       return;
  9743.     }
  9744.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  9745.     return;
  9746.   }
  9747.   if ((HEAP[$ffuncs_addr + 176 | 0] | 0) != 0) {
  9748.     FUNCTION_TABLE[HEAP[$ffuncs_addr + 176 | 0]](HEAP[$ffuncs_addr + 132 | 0]);
  9749.   }
  9750.   if (($func_addr | 0) != 0) {
  9751.     HEAP[$ffuncs_addr + 88 | 0] = $func_addr;
  9752.     HEAP[$ffuncs_addr + 132 | 0] = $user_data_addr;
  9753.     HEAP[$ffuncs_addr + 176 | 0] = $destroy_addr;
  9754.     return;
  9755.   } else {
  9756.     HEAP[$ffuncs_addr + 88 | 0] = 150;
  9757.     HEAP[$ffuncs_addr + 132 | 0] = 0;
  9758.     HEAP[$ffuncs_addr + 176 | 0] = 0;
  9759.     return;
  9760.   }
  9761. }
  9762. function __ZL31hb_font_get_glyph_from_name_nilP9hb_font_tPvPKciPjS1_($font, $font_data, $name, $len, $glyph, $user_data) {
  9763.   var __stackBase__ = STACKTOP;
  9764.   STACKTOP = STACKTOP + 16 | 0;
  9765.   var $this_addr_i = __stackBase__;
  9766.   var $name_addr_i = __stackBase__ + 4;
  9767.   var $len_addr_i = __stackBase__ + 8;
  9768.   var $glyph_addr_i = __stackBase__ + 12;
  9769.   var $retval;
  9770.   var $font_addr;
  9771.   var $glyph_addr;
  9772.   $font_addr = $font;
  9773.   $glyph_addr = $glyph;
  9774.   if ((HEAP[$font_addr + 48 | 0] | 0) == 0) {
  9775.     HEAP[$glyph_addr] = 0;
  9776.     $retval = 0;
  9777.     var $27 = $retval;
  9778.     STACKTOP = __stackBase__;
  9779.     return $27;
  9780.   }
  9781.   HEAP[$this_addr_i] = HEAP[$font_addr + 48 | 0];
  9782.   HEAP[$name_addr_i] = $name;
  9783.   HEAP[$len_addr_i] = $len;
  9784.   HEAP[$glyph_addr_i] = $glyph_addr;
  9785.   var $this1_i = HEAP[$this_addr_i];
  9786.   HEAP[HEAP[$glyph_addr_i]] = 0;
  9787.   if ((HEAP[$len_addr_i] | 0) == -1) {
  9788.     var $call_i = _strlen(HEAP[$name_addr_i]);
  9789.     HEAP[$len_addr_i] = $call_i;
  9790.   }
  9791.   $retval = FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 88 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$name_addr_i], HEAP[$len_addr_i], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 132 | 0]);
  9792.   var $27 = $retval;
  9793.   STACKTOP = __stackBase__;
  9794.   return $27;
  9795. }
  9796. function _hb_face_create($blob, $index) {
  9797.   var label = 0;
  9798.   var __stackBase__ = STACKTOP;
  9799.   STACKTOP = STACKTOP + 232 | 0;
  9800.   var $retval_i10 = __stackBase__;
  9801.   var $blob_addr_i11 = __stackBase__ + 4;
  9802.   var $index_addr_i12 = __stackBase__ + 8;
  9803.   var $closure_i = __stackBase__ + 12;
  9804.   var $retval_i_i = __stackBase__ + 16;
  9805.   var $blob_addr_i13_i = __stackBase__ + 20;
  9806.   var $length_addr_i_i = __stackBase__ + 24;
  9807.   var $blob_addr_i_i = __stackBase__ + 28;
  9808.   var $X_addr_i_i = __stackBase__ + 32;
  9809.   var $this_addr_i7_i = __stackBase__ + 36;
  9810.   var $this_addr_i4_i = __stackBase__ + 40;
  9811.   var $blob_addr_i1_i_i = __stackBase__ + 44;
  9812.   var $blob_addr_i_i_i = __stackBase__ + 48;
  9813.   var $length_addr_i_i_i = __stackBase__ + 52;
  9814.   var $this_addr_i1_i = __stackBase__ + 56;
  9815.   var $this_addr_i_i = __stackBase__ + 60;
  9816.   var $b_addr_i_i = __stackBase__ + 64;
  9817.   var $retval_i5 = __stackBase__ + 68;
  9818.   var $blob_addr_i6 = __stackBase__ + 72;
  9819.   var $c_i = __stackBase__ + 76;
  9820.   var $sane_i;
  9821.   var $t_i = __stackBase__ + 100;
  9822.   var $edit_count28_i = __stackBase__ + 104;
  9823.   var $what_addr_i_i_i_i_i = __stackBase__ + 108;
  9824.   var $obj_addr_i_i_i_i_i = __stackBase__ + 112;
  9825.   var $func_addr_i_i_i_i_i = __stackBase__ + 116;
  9826.   var $level_addr_i_i_i_i_i = __stackBase__ + 120;
  9827.   var $level_dir_addr_i_i_i_i_i = __stackBase__ + 124;
  9828.   var $message_addr_i_i_i_i_i = __stackBase__ + 128;
  9829.   var $this_addr_i_i1_i_i = __stackBase__ + 132;
  9830.   var $function_addr_i_i_i_i = __stackBase__ + 136;
  9831.   var $obj_addr_i_i_i = __stackBase__ + 140;
  9832.   var $function_addr_i_i_i = __stackBase__ + 144;
  9833.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 148;
  9834.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 152;
  9835.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 156;
  9836.   var $this_addr_i1_i_i_i_i = __stackBase__ + 160;
  9837.   var $this_addr_i_i_i_i_i = __stackBase__ + 164;
  9838.   var $v_addr_i_i_i_i_i = __stackBase__ + 168;
  9839.   var $this_addr_i_i_i_i1 = __stackBase__ + 172;
  9840.   var $size_addr_i_i_i = __stackBase__ + 176;
  9841.   var $obj_i_i_i = __stackBase__ + 180;
  9842.   var $obj_i_i = __stackBase__ + 184;
  9843.   var $retval_i = __stackBase__ + 188;
  9844.   var $reference_table_func_addr_i = __stackBase__ + 192;
  9845.   var $user_data_addr_i = __stackBase__ + 196;
  9846.   var $destroy_addr_i = __stackBase__ + 200;
  9847.   var $face_i = __stackBase__ + 204;
  9848.   var $this_addr_i_i_i_i = __stackBase__ + 208;
  9849.   var $this_addr_i_i_i = __stackBase__ + 212;
  9850.   var $obj_addr_i_i = __stackBase__ + 216;
  9851.   var $face_addr_i = __stackBase__ + 220;
  9852.   var $index_addr_i = __stackBase__ + 224;
  9853.   var $blob_addr_i = __stackBase__ + 228;
  9854.   var $retval;
  9855.   var $blob_addr;
  9856.   var $index_addr;
  9857.   var $face;
  9858.   $blob_addr = $blob;
  9859.   $index_addr = $index;
  9860.   do {
  9861.     if (($blob_addr | 0) != 0) {
  9862.       HEAP[$blob_addr_i] = $blob_addr;
  9863.       if ((HEAP[HEAP[$blob_addr_i] + 52 | 0] | 0) == 0) {
  9864.         break;
  9865.       }
  9866.       var $call3 = _hb_blob_reference($blob_addr);
  9867.       HEAP[$blob_addr_i6] = $call3;
  9868.       var $12 = $c_i;
  9869.       for (var $$dest = $12, $$stop = $$dest + 24; $$dest < $$stop; $$dest++) {
  9870.         HEAP[$$dest] = 0;
  9871.       }
  9872.       var $13 = HEAP[$blob_addr_i6];
  9873.       HEAP[$this_addr_i_i] = $c_i | 0;
  9874.       HEAP[$b_addr_i_i] = $13;
  9875.       var $this1_i_i = HEAP[$this_addr_i_i];
  9876.       var $call_i_i = _hb_blob_reference(HEAP[$b_addr_i_i]);
  9877.       HEAP[$this1_i_i + 20 | 0] = $call_i_i;
  9878.       HEAP[$this1_i_i + 12 | 0] = 0;
  9879.       var $arraydecay1_i = $c_i | 0;
  9880.       var $start_i = $c_i + 4 | 0;
  9881.       var $arraydecay4_i = $c_i | 0;
  9882.       var $start5_i = $arraydecay4_i + 4 | 0;
  9883.       var $arraydecay6_i = $c_i | 0;
  9884.       var $edit_count_i = $c_i + 16 | 0;
  9885.       var $writable_i = $c_i + 12 | 0;
  9886.       var $start37_i = $c_i + 4 | 0;
  9887.       var $start39_i = $c_i + 4 | 0;
  9888.       var $end_i = $c_i + 8 | 0;
  9889.       var $start43_i = $c_i + 4 | 0;
  9890.       var $writable47_i = $c_i + 12 | 0;
  9891.       while (1) {
  9892.         HEAP[$this_addr_i1_i] = $arraydecay1_i;
  9893.         var $this1_i2_i = HEAP[$this_addr_i1_i];
  9894.         HEAP[$blob_addr_i_i_i] = HEAP[$this1_i2_i + 20 | 0];
  9895.         HEAP[$length_addr_i_i_i] = 0;
  9896.         HEAP[$this1_i2_i + 4 | 0] = HEAP[HEAP[$blob_addr_i_i_i] + 48 | 0];
  9897.         var $40 = HEAP[$this1_i2_i + 4 | 0];
  9898.         HEAP[$blob_addr_i1_i_i] = HEAP[$this1_i2_i + 20 | 0];
  9899.         HEAP[$this1_i2_i + 8 | 0] = $40 + HEAP[HEAP[$blob_addr_i1_i_i] + 52 | 0] | 0;
  9900.         HEAP[$this1_i2_i + 16 | 0] = 0;
  9901.         HEAP[$this1_i2_i | 0] = 0;
  9902.         if ((HEAP[$start_i] | 0) == 0) {
  9903.           label = 1043;
  9904.           break;
  9905.         }
  9906.         HEAP[$X_addr_i_i] = HEAP[$start5_i];
  9907.         HEAP[$t_i] = HEAP[$X_addr_i_i];
  9908.         $sane_i = __ZN2OT16OpenTypeFontFile8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i], $arraydecay6_i) & 1;
  9909.         var $54 = HEAP[$edit_count_i];
  9910.         if ($sane_i & 1) {
  9911.           label = 1045;
  9912.           break;
  9913.         }
  9914.         HEAP[$edit_count28_i] = $54;
  9915.         if ((HEAP[$edit_count28_i] | 0) == 0) {
  9916.           label = 1059;
  9917.           break;
  9918.         }
  9919.         if (HEAP[$writable_i] & 1) {
  9920.           label = 1059;
  9921.           break;
  9922.         }
  9923.         HEAP[$blob_addr_i13_i] = HEAP[$blob_addr_i6];
  9924.         HEAP[$length_addr_i_i] = 0;
  9925.         var $call_i14_i = __ZL13_try_writableP9hb_blob_t(HEAP[$blob_addr_i13_i]);
  9926.         var $tobool3_i_i = (HEAP[$length_addr_i_i] | 0) != 0;
  9927.         if ($call_i14_i) {
  9928.           if ($tobool3_i_i) {
  9929.             HEAP[HEAP[$length_addr_i_i]] = HEAP[HEAP[$blob_addr_i13_i] + 52 | 0];
  9930.           }
  9931.           HEAP[$retval_i_i] = HEAP[HEAP[$blob_addr_i13_i] + 48 | 0];
  9932.         } else {
  9933.           if ($tobool3_i_i) {
  9934.             HEAP[HEAP[$length_addr_i_i]] = 0;
  9935.           }
  9936.           HEAP[$retval_i_i] = 0;
  9937.         }
  9938.         HEAP[$start37_i] = HEAP[$retval_i_i];
  9939.         var $69 = HEAP[$start39_i];
  9940.         HEAP[$blob_addr_i_i] = HEAP[$blob_addr_i6];
  9941.         HEAP[$end_i] = $69 + HEAP[HEAP[$blob_addr_i_i] + 52 | 0] | 0;
  9942.         if ((HEAP[$start43_i] | 0) == 0) {
  9943.           label = 1059;
  9944.           break;
  9945.         }
  9946.         HEAP[$writable47_i] = 1;
  9947.       }
  9948.       do {
  9949.         if (label == 1045) {
  9950.           if (($54 | 0) == 0) {
  9951.             label = 1059;
  9952.             break;
  9953.           }
  9954.           HEAP[$c_i + 16 | 0] = 0;
  9955.           $sane_i = __ZN2OT16OpenTypeFontFile8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i], $c_i | 0) & 1;
  9956.           if ((HEAP[$c_i + 16 | 0] | 0) == 0) {
  9957.             label = 1059;
  9958.             break;
  9959.           }
  9960.           $sane_i = 0;
  9961.           label = 1059;
  9962.           break;
  9963.         } else if (label == 1043) {
  9964.           HEAP[$this_addr_i7_i] = $arraydecay4_i;
  9965.           var $this1_i8_i = HEAP[$this_addr_i7_i];
  9966.           _hb_blob_destroy(HEAP[$this1_i8_i + 20 | 0]);
  9967.           HEAP[$this1_i8_i + 20 | 0] = 0;
  9968.           HEAP[$this1_i8_i + 8 | 0] = 0;
  9969.           HEAP[$this1_i8_i + 4 | 0] = 0;
  9970.           HEAP[$retval_i5] = HEAP[$blob_addr_i6];
  9971.           break;
  9972.         }
  9973.       } while (0);
  9974.       do {
  9975.         if (label == 1059) {
  9976.           HEAP[$this_addr_i4_i] = $c_i | 0;
  9977.           var $this1_i5_i = HEAP[$this_addr_i4_i];
  9978.           _hb_blob_destroy(HEAP[$this1_i5_i + 20 | 0]);
  9979.           HEAP[$this1_i5_i + 20 | 0] = 0;
  9980.           HEAP[$this1_i5_i + 8 | 0] = 0;
  9981.           HEAP[$this1_i5_i + 4 | 0] = 0;
  9982.           var $78 = HEAP[$blob_addr_i6];
  9983.           if ($sane_i & 1) {
  9984.             HEAP[$retval_i5] = $78;
  9985.             break;
  9986.           } else {
  9987.             _hb_blob_destroy($78);
  9988.             HEAP[$retval_i5] = 111632;
  9989.             break;
  9990.           }
  9991.         }
  9992.       } while (0);
  9993.       HEAP[$blob_addr_i11] = HEAP[$retval_i5];
  9994.       HEAP[$index_addr_i12] = $index_addr;
  9995.       var $90 = _malloc(8);
  9996.       HEAP[$closure_i] = $90;
  9997.       if (($90 | 0) != 0) {
  9998.         HEAP[HEAP[$closure_i] | 0] = HEAP[$blob_addr_i11];
  9999.         HEAP[HEAP[$closure_i] + 4 | 0] = HEAP[$index_addr_i12];
  10000.         var $95 = HEAP[$closure_i];
  10001.         HEAP[$retval_i10] = $95;
  10002.         var $96 = $95;
  10003.       } else {
  10004.         HEAP[$retval_i10] = 0;
  10005.         var $96 = 0;
  10006.       }
  10007.       var $96;
  10008.       if (($96 | 0) == 0) {
  10009.         $retval = 139072;
  10010.         var $199 = $retval;
  10011.         STACKTOP = __stackBase__;
  10012.         return $199;
  10013.       }
  10014.       HEAP[$reference_table_func_addr_i] = 46;
  10015.       HEAP[$user_data_addr_i] = $96;
  10016.       HEAP[$destroy_addr_i] = 104;
  10017.       do {
  10018.         if ((HEAP[$reference_table_func_addr_i] | 0) != 0) {
  10019.           HEAP[$size_addr_i_i_i] = 84;
  10020.           var $113 = _calloc(1, HEAP[$size_addr_i_i_i]);
  10021.           HEAP[$obj_i_i_i] = $113;
  10022.           if ((HEAP[$obj_i_i_i] | 0) != 0) {
  10023.             HEAP[$this_addr_i_i_i_i1] = HEAP[$obj_i_i_i];
  10024.             var $this1_i_i_i_i2 = HEAP[$this_addr_i_i_i_i1];
  10025.             HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i_i2 | 0;
  10026.             HEAP[$v_addr_i_i_i_i_i] = 1;
  10027.             HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] = HEAP[$v_addr_i_i_i_i_i];
  10028.             HEAP[$this_addr_i1_i_i_i_i] = $this1_i_i_i_i2 + 4 | 0;
  10029.             var $this1_i2_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i];
  10030.             HEAP[$this_addr_i_i_i_i_i_i] = $this1_i2_i_i_i_i | 0;
  10031.             HEAP[HEAP[$this_addr_i_i_i_i_i_i] | 0] = 0;
  10032.             HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i2_i_i_i_i + 4 | 0;
  10033.             HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  10034.             var $127 = HEAP[$this_addr_i_i_i_i_i_i_i];
  10035.             for (var $$dest = $127, $$stop = $$dest + 36; $$dest < $$stop; $$dest++) {
  10036.               HEAP[$$dest] = 0;
  10037.             }
  10038.           }
  10039.           HEAP[$obj_i_i] = HEAP[$obj_i_i_i];
  10040.           HEAP[$obj_addr_i_i_i] = HEAP[$obj_i_i];
  10041.           HEAP[$function_addr_i_i_i] = 110344;
  10042.           var $header_i_i_i = HEAP[$obj_addr_i_i_i] | 0;
  10043.           var $141 = HEAP[$function_addr_i_i_i];
  10044.           HEAP[$this_addr_i_i1_i_i] = $header_i_i_i;
  10045.           HEAP[$function_addr_i_i_i_i] = $141;
  10046.           if (($header_i_i_i | 0) != 0) {
  10047.             HEAP[$what_addr_i_i_i_i_i] = 104072;
  10048.             HEAP[$obj_addr_i_i_i_i_i] = $header_i_i_i;
  10049.             HEAP[$func_addr_i_i_i_i_i] = 0;
  10050.             HEAP[$level_addr_i_i_i_i_i] = 0;
  10051.             HEAP[$level_dir_addr_i_i_i_i_i] = 0;
  10052.             HEAP[$message_addr_i_i_i_i_i] = 104056;
  10053.           }
  10054.           var $162 = HEAP[$obj_i_i];
  10055.           HEAP[$face_i] = $162;
  10056.           if (($162 | 0) != 0) {
  10057.             HEAP[HEAP[$face_i] + 48 | 0] = HEAP[$reference_table_func_addr_i];
  10058.             HEAP[HEAP[$face_i] + 52 | 0] = HEAP[$user_data_addr_i];
  10059.             HEAP[HEAP[$face_i] + 56 | 0] = HEAP[$destroy_addr_i];
  10060.             HEAP[HEAP[$face_i] + 64 | 0] = 0;
  10061.             HEAP[HEAP[$face_i] + 68 | 0] = -1;
  10062.             HEAP[$retval_i] = HEAP[$face_i];
  10063.             break;
  10064.           } else {
  10065.             if ((HEAP[$destroy_addr_i] | 0) != 0) {
  10066.               label = 1074;
  10067.               break;
  10068.             } else {
  10069.               label = 1075;
  10070.               break;
  10071.             }
  10072.           }
  10073.         } else {
  10074.           label = 1074;
  10075.         }
  10076.       } while (0);
  10077.       do {
  10078.         if (label == 1074) {
  10079.           FUNCTION_TABLE[HEAP[$destroy_addr_i]](HEAP[$user_data_addr_i]);
  10080.           label = 1075;
  10081.           break;
  10082.         }
  10083.       } while (0);
  10084.       if (label == 1075) {
  10085.         HEAP[$retval_i] = 139072;
  10086.       }
  10087.       $face = HEAP[$retval_i];
  10088.       HEAP[$face_addr_i] = $face;
  10089.       HEAP[$index_addr_i] = $index_addr;
  10090.       HEAP[$obj_addr_i_i] = HEAP[$face_addr_i];
  10091.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  10092.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  10093.       if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  10094.         HEAP[HEAP[$face_addr_i] + 60 | 0] = HEAP[$index_addr_i];
  10095.       }
  10096.       $retval = $face;
  10097.       var $199 = $retval;
  10098.       STACKTOP = __stackBase__;
  10099.       return $199;
  10100.     }
  10101.   } while (0);
  10102.   $retval = 139072;
  10103.   var $199 = $retval;
  10104.   STACKTOP = __stackBase__;
  10105.   return $199;
  10106. }
  10107. function __ZL33_hb_face_for_data_reference_tableP9hb_face_tjPv($face, $tag, $user_data) {
  10108.   var label = 0;
  10109.   var __stackBase__ = STACKTOP;
  10110.   STACKTOP = STACKTOP + 285 | 0;
  10111.   var $X_addr_i_i_i_i35 = __stackBase__;
  10112.   var $this_addr_i_i_i1_i = __stackBase__ + 4;
  10113.   var $this_addr_i_i2_i = __stackBase__ + 8;
  10114.   var $retval_i3_i = __stackBase__ + 12;
  10115.   var $this_addr_i4_i = __stackBase__ + 16;
  10116.   var $i_addr_i_i36 = __stackBase__ + 20;
  10117.   var $this_addr_i_i13_i_i = __stackBase__ + 24;
  10118.   var $this_addr_i14_i_i = __stackBase__ + 28;
  10119.   var $this_addr_i_i1_i_i37 = __stackBase__ + 32;
  10120.   var $o_addr_i_i_i_i = __stackBase__ + 36;
  10121.   var $this_addr_i2_i_i38 = __stackBase__ + 40;
  10122.   var $o_addr_i_i_i = __stackBase__ + 44;
  10123.   var $this_addr_i_i_i_i39 = __stackBase__ + 48;
  10124.   var $i_addr_i_i_i_i40 = __stackBase__ + 52;
  10125.   var $this_addr_i_i_i41 = __stackBase__ + 56;
  10126.   var $i_addr_i_i_i42 = __stackBase__ + 60;
  10127.   var $retval_i_i43 = __stackBase__ + 64;
  10128.   var $this_addr_i_i44 = __stackBase__ + 65;
  10129.   var $tag_addr_i_i = __stackBase__ + 69;
  10130.   var $table_index_addr_i_i = __stackBase__ + 73;
  10131.   var $t_i_i = __stackBase__ + 77;
  10132.   var $count_i_i = __stackBase__ + 81;
  10133.   var $i_i_i = __stackBase__ + 85;
  10134.   var $this_addr_i45 = __stackBase__ + 89;
  10135.   var $tag_addr_i = __stackBase__ + 93;
  10136.   var $table_index_i = __stackBase__ + 97;
  10137.   var $this_addr_i_i12 = __stackBase__ + 101;
  10138.   var $this_addr_i13 = __stackBase__ + 105;
  10139.   var $this_addr_i_i6 = __stackBase__ + 109;
  10140.   var $this_addr_i7 = __stackBase__ + 113;
  10141.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 117;
  10142.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 121;
  10143.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 125;
  10144.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 129;
  10145.   var $this_addr_i_i_i1_i_i_i = __stackBase__ + 133;
  10146.   var $retval_i_i_i_i_i = __stackBase__ + 137;
  10147.   var $this_addr_i_i2_i_i_i = __stackBase__ + 141;
  10148.   var $base_addr_i_i_i_i_i = __stackBase__ + 145;
  10149.   var $offset_i_i_i_i_i = __stackBase__ + 149;
  10150.   var $base_addr_i_i_i_i = __stackBase__ + 153;
  10151.   var $offset_addr_i_i_i_i = __stackBase__ + 157;
  10152.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 161;
  10153.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 165;
  10154.   var $this_addr_i_i_i_i_i1 = __stackBase__ + 169;
  10155.   var $retval_i_i_i_i = __stackBase__ + 173;
  10156.   var $this_addr_i_i1_i_i = __stackBase__ + 177;
  10157.   var $i_addr_i_i_i_i = __stackBase__ + 181;
  10158.   var $this_addr_i2_i_i = __stackBase__ + 185;
  10159.   var $i_addr_i_i_i = __stackBase__ + 189;
  10160.   var $ref_tmp_i_i_i = __stackBase__ + 193;
  10161.   var $X_addr_i_i_i_i = __stackBase__ + 197;
  10162.   var $this_addr_i_i_i_i2 = __stackBase__ + 201;
  10163.   var $this_addr_i_i1_i = __stackBase__ + 205;
  10164.   var $retval_i_i = __stackBase__ + 209;
  10165.   var $this_addr_i2_i = __stackBase__ + 213;
  10166.   var $i_addr_i_i = __stackBase__ + 217;
  10167.   var $X_addr_i_i_i3 = __stackBase__ + 221;
  10168.   var $this_addr_i_i_i = __stackBase__ + 225;
  10169.   var $this_addr_i_i = __stackBase__ + 229;
  10170.   var $retval_i = __stackBase__ + 233;
  10171.   var $this_addr_i = __stackBase__ + 237;
  10172.   var $i_addr_i = __stackBase__ + 241;
  10173.   var $blob_addr_i1_i = __stackBase__ + 245;
  10174.   var $X_addr_i_i_i = __stackBase__ + 253;
  10175.   var $X_addr_i_i = __stackBase__ + 257;
  10176.   var $this_addr_i_i_i_i_i = __stackBase__ + 261;
  10177.   var $this_addr_i_i_i_i = __stackBase__ + 265;
  10178.   var $obj_addr_i_i_i = __stackBase__ + 269;
  10179.   var $blob_addr_i_i = __stackBase__ + 273;
  10180.   var $blob_addr_i = __stackBase__ + 277;
  10181.   var $base_i = __stackBase__ + 281;
  10182.   var $retval;
  10183.   var $tag_addr;
  10184.   var $data;
  10185.   var $table;
  10186.   $tag_addr = $tag;
  10187.   $data = $user_data;
  10188.   var $4 = HEAP[$data | 0];
  10189.   if (($tag_addr | 0) == 0) {
  10190.     $retval = _hb_blob_reference($4);
  10191.     var $268 = $retval;
  10192.     STACKTOP = __stackBase__;
  10193.     return $268;
  10194.   }
  10195.   HEAP[$blob_addr_i] = $4;
  10196.   HEAP[$blob_addr_i_i] = HEAP[$blob_addr_i];
  10197.   HEAP[$obj_addr_i_i_i] = HEAP[$blob_addr_i_i];
  10198.   HEAP[$this_addr_i_i_i_i] = HEAP[$obj_addr_i_i_i] | 0;
  10199.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  10200.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) != -1) {
  10201.     HEAP[HEAP[$blob_addr_i_i] + 44 | 0] = 1;
  10202.   }
  10203.   HEAP[$blob_addr_i1_i] = HEAP[$blob_addr_i];
  10204.   HEAP[__stackBase__ + 249] = 0;
  10205.   var $24 = HEAP[HEAP[$blob_addr_i1_i] + 48 | 0];
  10206.   HEAP[$base_i] = $24;
  10207.   if (($24 | 0) != 0) {
  10208.     HEAP[$X_addr_i_i] = HEAP[$base_i];
  10209.     var $cond_i = HEAP[$X_addr_i_i];
  10210.   } else {
  10211.     HEAP[$X_addr_i_i_i] = 111768;
  10212.     var $cond_i = HEAP[$X_addr_i_i_i];
  10213.   }
  10214.   var $cond_i;
  10215.   var $40 = HEAP[$data + 4 | 0];
  10216.   HEAP[$this_addr_i] = $cond_i;
  10217.   HEAP[$i_addr_i] = $40;
  10218.   var $this1_i = HEAP[$this_addr_i];
  10219.   HEAP[$this_addr_i_i] = $this1_i | 0;
  10220.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  10221.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  10222.   var $add14_i_i_i = ((HEAP[$this1_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 3 | 0] & 255) | 0;
  10223.   if (($add14_i_i_i | 0) == 1953784678) {
  10224.     var $53 = HEAP[$i_addr_i];
  10225.     HEAP[$this_addr_i2_i] = $this1_i | 0;
  10226.     HEAP[$i_addr_i_i] = $53;
  10227.     var $this1_i3_i = HEAP[$this_addr_i2_i];
  10228.     HEAP[$this_addr_i_i1_i] = $this1_i3_i + 4 | 0;
  10229.     HEAP[$this_addr_i_i_i_i2] = HEAP[$this_addr_i_i1_i] | 0;
  10230.     var $this1_i_i_i_i4 = HEAP[$this_addr_i_i_i_i2];
  10231.     if (((((HEAP[$this1_i_i_i_i4 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i4 + 1 | 0] & 255) & 65535) - 1 | 0) >>> 0 < 2) {
  10232.       var $63 = HEAP[$i_addr_i_i];
  10233.       HEAP[$this_addr_i2_i_i] = $this1_i3_i | 0;
  10234.       HEAP[$i_addr_i_i_i] = $63;
  10235.       var $this1_i3_i_i = HEAP[$this_addr_i2_i_i];
  10236.       HEAP[$ref_tmp_i_i_i] = $this1_i3_i_i;
  10237.       var $68 = HEAP[$i_addr_i_i_i];
  10238.       HEAP[$this_addr_i_i1_i_i] = $this1_i3_i_i + 8 | 0;
  10239.       HEAP[$i_addr_i_i_i_i] = $68;
  10240.       var $this1_i_i4_i_i = HEAP[$this_addr_i_i1_i_i];
  10241.       var $72 = HEAP[$i_addr_i_i_i_i];
  10242.       HEAP[$this_addr_i_i_i_i_i1] = $this1_i_i4_i_i | 0;
  10243.       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i1] | 0;
  10244.       var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  10245.       if ($72 >>> 0 >= (((HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 3 | 0] & 255) | 0) >>> 0) {
  10246.         HEAP[$X_addr_i_i_i_i_i_i] = 111768;
  10247.         HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  10248.       } else {
  10249.         HEAP[$retval_i_i_i_i] = (HEAP[$i_addr_i_i_i_i] << 2) + $this1_i_i4_i_i + 4 | 0;
  10250.       }
  10251.       var $90 = HEAP[$retval_i_i_i_i];
  10252.       HEAP[$base_addr_i_i_i_i] = $ref_tmp_i_i_i;
  10253.       HEAP[$offset_addr_i_i_i_i] = $90;
  10254.       var $96 = HEAP[HEAP[$base_addr_i_i_i_i]];
  10255.       HEAP[$this_addr_i_i2_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  10256.       HEAP[$base_addr_i_i_i_i_i] = $96;
  10257.       HEAP[$this_addr_i_i_i1_i_i_i] = HEAP[$this_addr_i_i2_i_i_i];
  10258.       HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i_i_i] | 0;
  10259.       var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  10260.       var $add14_i_i_i_i_i_i_i = ((HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 3 | 0] & 255) | 0;
  10261.       HEAP[$offset_i_i_i_i_i] = $add14_i_i_i_i_i_i_i;
  10262.       if (($add14_i_i_i_i_i_i_i | 0) != 0) {
  10263.         var $115 = HEAP[$offset_i_i_i_i_i];
  10264.         HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  10265.         HEAP[$offset_addr_i_i_i_i_i_i] = $115;
  10266.         HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  10267.       } else {
  10268.         HEAP[$X_addr_i_i_i_i_i_i_i] = 111768;
  10269.         HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  10270.       }
  10271.       HEAP[$retval_i_i] = HEAP[$retval_i_i_i_i_i];
  10272.     } else {
  10273.       HEAP[$X_addr_i_i_i_i] = 111768;
  10274.       HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  10275.     }
  10276.     HEAP[$retval_i] = HEAP[$retval_i_i];
  10277.   } else if (($add14_i_i_i | 0) == 1330926671 | ($add14_i_i_i | 0) == 1953658213 | ($add14_i_i_i | 0) == 1954115633 | ($add14_i_i_i | 0) == 65536) {
  10278.     HEAP[$retval_i] = $this1_i | 0;
  10279.   } else {
  10280.     HEAP[$X_addr_i_i_i3] = 111768;
  10281.     HEAP[$retval_i] = HEAP[$X_addr_i_i_i3];
  10282.   }
  10283.   HEAP[$this_addr_i45] = HEAP[$retval_i];
  10284.   HEAP[$tag_addr_i] = $tag_addr;
  10285.   var $this1_i46 = HEAP[$this_addr_i45];
  10286.   var $154 = HEAP[$tag_addr_i];
  10287.   HEAP[$this_addr_i_i44] = $this1_i46;
  10288.   HEAP[$tag_addr_i_i] = $154;
  10289.   HEAP[$table_index_addr_i_i] = $table_index_i;
  10290.   var $this1_i_i47 = HEAP[$this_addr_i_i44];
  10291.   var $163 = HEAP[$tag_addr_i_i];
  10292.   HEAP[$this_addr_i_i_i41] = $t_i_i;
  10293.   HEAP[$i_addr_i_i_i42] = $163;
  10294.   var $166 = HEAP[$i_addr_i_i_i42];
  10295.   HEAP[$this_addr_i_i_i_i39] = HEAP[$this_addr_i_i_i41] | 0;
  10296.   HEAP[$i_addr_i_i_i_i40] = $166;
  10297.   var $this1_i_i_i_i50 = HEAP[$this_addr_i_i_i_i39];
  10298.   HEAP[$this1_i_i_i_i50 | 0] = HEAP[$i_addr_i_i_i_i40] >>> 24 & 255;
  10299.   HEAP[$this1_i_i_i_i50 + 1 | 0] = HEAP[$i_addr_i_i_i_i40] >>> 16 & 255;
  10300.   HEAP[$this1_i_i_i_i50 + 2 | 0] = HEAP[$i_addr_i_i_i_i40] >>> 8 & 255;
  10301.   HEAP[$this1_i_i_i_i50 + 3 | 0] = HEAP[$i_addr_i_i_i_i40] & 255;
  10302.   HEAP[$this_addr_i14_i_i] = $this1_i_i47 + 4 | 0;
  10303.   HEAP[$this_addr_i_i13_i_i] = HEAP[$this_addr_i14_i_i] | 0;
  10304.   var $this1_i_i17_i_i = HEAP[$this_addr_i_i13_i_i];
  10305.   HEAP[$count_i_i] = ((HEAP[$this1_i_i17_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i17_i_i + 1 | 0] & 255) & 65535;
  10306.   HEAP[$i_i_i] = 0;
  10307.   L1437 : do {
  10308.     if (HEAP[$i_i_i] >>> 0 < HEAP[$count_i_i] >>> 0) {
  10309.       var $185 = $t_i_i;
  10310.       var $tables_i_i = $this1_i_i47 + 12 | 0;
  10311.       L1439 : while (1) {
  10312.         var $195 = (HEAP[$i_i_i] << 4) + $tables_i_i | 0;
  10313.         HEAP[$this_addr_i2_i_i38] = $185;
  10314.         HEAP[$o_addr_i_i_i] = $195;
  10315.         var $v2_i_i_i60 = HEAP[$o_addr_i_i_i] | 0;
  10316.         HEAP[$this_addr_i_i1_i_i37] = HEAP[$this_addr_i2_i_i38] | 0;
  10317.         HEAP[$o_addr_i_i_i_i] = $v2_i_i_i60;
  10318.         var $this1_i_i5_i_i = HEAP[$this_addr_i_i1_i_i37];
  10319.         do {
  10320.           if ((HEAP[$this1_i_i5_i_i | 0] & 255 | 0) == (HEAP[HEAP[$o_addr_i_i_i_i] | 0] & 255 | 0)) {
  10321.             if ((HEAP[$this1_i_i5_i_i + 1 | 0] & 255 | 0) != (HEAP[HEAP[$o_addr_i_i_i_i] + 1 | 0] & 255 | 0)) {
  10322.               break;
  10323.             }
  10324.             if ((HEAP[$this1_i_i5_i_i + 2 | 0] & 255 | 0) != (HEAP[HEAP[$o_addr_i_i_i_i] + 2 | 0] & 255 | 0)) {
  10325.               break;
  10326.             }
  10327.             if ((HEAP[$this1_i_i5_i_i + 3 | 0] & 255 | 0) == (HEAP[HEAP[$o_addr_i_i_i_i] + 3 | 0] & 255 | 0)) {
  10328.               break L1439;
  10329.             }
  10330.           }
  10331.         } while (0);
  10332.         HEAP[$i_i_i] = HEAP[$i_i_i] + 1 | 0;
  10333.         if (HEAP[$i_i_i] >>> 0 >= HEAP[$count_i_i] >>> 0) {
  10334.           label = 1114;
  10335.           break L1437;
  10336.         }
  10337.       }
  10338.       if ((HEAP[$table_index_addr_i_i] | 0) != 0) {
  10339.         HEAP[HEAP[$table_index_addr_i_i]] = HEAP[$i_i_i];
  10340.       }
  10341.       HEAP[$retval_i_i43] = 1;
  10342.       break;
  10343.     } else {
  10344.       label = 1114;
  10345.     }
  10346.   } while (0);
  10347.   if (label == 1114) {
  10348.     if ((HEAP[$table_index_addr_i_i] | 0) != 0) {
  10349.       HEAP[HEAP[$table_index_addr_i_i]] = 65535;
  10350.     }
  10351.     HEAP[$retval_i_i43] = 0;
  10352.   }
  10353.   var $224 = HEAP[$table_index_i];
  10354.   HEAP[$this_addr_i4_i] = $this1_i46;
  10355.   HEAP[$i_addr_i_i36] = $224;
  10356.   var $this1_i5_i = HEAP[$this_addr_i4_i];
  10357.   var $228 = HEAP[$i_addr_i_i36];
  10358.   HEAP[$this_addr_i_i2_i] = $this1_i5_i + 4 | 0;
  10359.   HEAP[$this_addr_i_i_i1_i] = HEAP[$this_addr_i_i2_i] | 0;
  10360.   var $this1_i_i_i9_i = HEAP[$this_addr_i_i_i1_i];
  10361.   if ($228 >>> 0 >= (((HEAP[$this1_i_i_i9_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i9_i + 1 | 0] & 255) & 65535) >>> 0) {
  10362.     HEAP[$X_addr_i_i_i_i35] = 111768;
  10363.     HEAP[$retval_i3_i] = HEAP[$X_addr_i_i_i_i35];
  10364.   } else {
  10365.     HEAP[$retval_i3_i] = (HEAP[$i_addr_i_i36] << 4) + $this1_i5_i + 12 | 0;
  10366.   }
  10367.   $table = HEAP[$retval_i3_i];
  10368.   var $248 = HEAP[$data | 0];
  10369.   HEAP[$this_addr_i13] = $table + 8 | 0;
  10370.   HEAP[$this_addr_i_i12] = HEAP[$this_addr_i13] | 0;
  10371.   var $this1_i_i16 = HEAP[$this_addr_i_i12];
  10372.   var $add14_i_i34 = ((HEAP[$this1_i_i16 + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i16 | 0] & 255) << 24) + ((HEAP[$this1_i_i16 + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i16 + 3 | 0] & 255) | 0;
  10373.   HEAP[$this_addr_i7] = $table + 12 | 0;
  10374.   HEAP[$this_addr_i_i6] = HEAP[$this_addr_i7] | 0;
  10375.   var $this1_i_i9 = HEAP[$this_addr_i_i6];
  10376.   $retval = _hb_blob_create_sub_blob($248, $add14_i_i34, ((HEAP[$this1_i_i9 + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i9 | 0] & 255) << 24) + ((HEAP[$this1_i_i9 + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i9 + 3 | 0] & 255) | 0);
  10377.   var $268 = $retval;
  10378.   STACKTOP = __stackBase__;
  10379.   return $268;
  10380. }
  10381. function __ZL33_hb_face_for_data_closure_destroyP26hb_face_for_data_closure_t($closure) {
  10382.   var $closure_addr;
  10383.   $closure_addr = $closure;
  10384.   _hb_blob_destroy(HEAP[$closure_addr | 0]);
  10385.   _free($closure_addr);
  10386.   return;
  10387. }
  10388. function _hb_face_reference($face) {
  10389.   var __stackBase__ = STACKTOP;
  10390.   STACKTOP = STACKTOP + 60 | 0;
  10391.   var $this_addr_i1_i_i = __stackBase__;
  10392.   var $this_addr_i_i_i_i = __stackBase__ + 4;
  10393.   var $this_addr_i_i1_i = __stackBase__ + 8;
  10394.   var $this_addr_i_i = __stackBase__ + 12;
  10395.   var $this_addr_i_i_i = __stackBase__ + 40;
  10396.   var $obj_addr_i_i = __stackBase__ + 48;
  10397.   var $function_addr_i_i = __stackBase__ + 52;
  10398.   var $obj_addr_i = __stackBase__ + 56;
  10399.   HEAP[$obj_addr_i] = $face;
  10400.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  10401.   HEAP[$function_addr_i_i] = 109248;
  10402.   var $6 = HEAP[$function_addr_i_i];
  10403.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  10404.   HEAP[__stackBase__ + 44] = $6;
  10405.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  10406.   if (($this1_i_i_i | 0) != 0) {
  10407.     HEAP[__stackBase__ + 16] = 104072;
  10408.     HEAP[__stackBase__ + 20] = $this1_i_i_i;
  10409.     HEAP[__stackBase__ + 24] = 0;
  10410.     HEAP[__stackBase__ + 28] = 0;
  10411.     HEAP[__stackBase__ + 32] = 0;
  10412.     HEAP[__stackBase__ + 36] = 104056;
  10413.   }
  10414.   var $header_i = HEAP[$obj_addr_i] | 0;
  10415.   HEAP[$this_addr_i_i] = $header_i;
  10416.   if (($header_i | 0) == 0) {
  10417.     var $38 = $this_addr_i_i;
  10418.     var $39 = HEAP[$obj_addr_i];
  10419.     var $40 = $obj_addr_i;
  10420.     STACKTOP = __stackBase__;
  10421.     return $39;
  10422.   }
  10423.   HEAP[$this_addr_i_i1_i] = $header_i;
  10424.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  10425.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  10426.     var $38 = $this_addr_i_i;
  10427.     var $39 = HEAP[$obj_addr_i];
  10428.     var $40 = $obj_addr_i;
  10429.     STACKTOP = __stackBase__;
  10430.     return $39;
  10431.   }
  10432.   HEAP[$this_addr_i1_i_i] = $header_i | 0;
  10433.   var $ref_count_i3_i_i = HEAP[$this_addr_i1_i_i] | 0;
  10434.   HEAP[$ref_count_i3_i_i] = HEAP[$ref_count_i3_i_i] + 1 | 0;
  10435.   var $38 = $this_addr_i_i;
  10436.   var $39 = HEAP[$obj_addr_i];
  10437.   var $40 = $obj_addr_i;
  10438.   STACKTOP = __stackBase__;
  10439.   return $39;
  10440. }
  10441. function _hb_font_get_face($font) {
  10442.   return HEAP[$font + 52 | 0];
  10443. }
  10444. function _hb_face_destroy($face) {
  10445.   var __stackBase__ = STACKTOP;
  10446.   STACKTOP = STACKTOP + 48 | 0;
  10447.   var $data_addr_i = __stackBase__;
  10448.   var $this_addr_i_i_i = __stackBase__ + 28;
  10449.   var $obj_addr_i_i = __stackBase__ + 36;
  10450.   var $function_addr_i_i = __stackBase__ + 40;
  10451.   var $obj_addr_i = __stackBase__ + 44;
  10452.   var $face_addr;
  10453.   var $node;
  10454.   var $next;
  10455.   $face_addr = $face;
  10456.   HEAP[$obj_addr_i] = $face_addr;
  10457.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  10458.   HEAP[$function_addr_i_i] = 109664;
  10459.   var $6 = HEAP[$function_addr_i_i];
  10460.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  10461.   HEAP[__stackBase__ + 32] = $6;
  10462.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  10463.   if (($this1_i_i_i | 0) != 0) {
  10464.     HEAP[__stackBase__ + 4] = 104072;
  10465.     HEAP[__stackBase__ + 8] = $this1_i_i_i;
  10466.     HEAP[__stackBase__ + 12] = 0;
  10467.     HEAP[__stackBase__ + 16] = 0;
  10468.     HEAP[__stackBase__ + 20] = 0;
  10469.     HEAP[__stackBase__ + 24] = 104056;
  10470.   }
  10471.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  10472.     STACKTOP = __stackBase__;
  10473.     return;
  10474.   }
  10475.   var $30 = HEAP[$face_addr + 80 | 0];
  10476.   $node = $30;
  10477.   L1481 : do {
  10478.     if (($30 | 0) != 0) {
  10479.       while (1) {
  10480.         $next = HEAP[$node + 4 | 0];
  10481.         _hb_shape_plan_destroy(HEAP[$node | 0]);
  10482.         _free($node);
  10483.         var $37 = $next;
  10484.         $node = $37;
  10485.         if (($37 | 0) == 0) {
  10486.           break L1481;
  10487.         }
  10488.       }
  10489.     }
  10490.   } while (0);
  10491.   do {
  10492.     if ((HEAP[$face_addr + 72 | 0] | 0) != 0) {
  10493.       if ((HEAP[$face_addr + 72 | 0] | 0) == -1) {
  10494.         break;
  10495.       }
  10496.       if ((HEAP[$face_addr + 72 | 0] | 0) == 1) {
  10497.         break;
  10498.       }
  10499.       HEAP[$data_addr_i] = HEAP[$face_addr + 72 | 0];
  10500.       __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i]);
  10501.     }
  10502.   } while (0);
  10503.   if ((HEAP[$face_addr + 56 | 0] | 0) != 0) {
  10504.     FUNCTION_TABLE[HEAP[$face_addr + 56 | 0]](HEAP[$face_addr + 52 | 0]);
  10505.   }
  10506.   _free($face_addr);
  10507.   STACKTOP = __stackBase__;
  10508.   return;
  10509. }
  10510. function _hb_font_create($face) {
  10511.   var __stackBase__ = STACKTOP;
  10512.   STACKTOP = STACKTOP + 108 | 0;
  10513.   var $what_addr_i_i_i_i = __stackBase__;
  10514.   var $obj_addr_i_i_i_i = __stackBase__ + 4;
  10515.   var $func_addr_i_i_i_i = __stackBase__ + 8;
  10516.   var $level_addr_i_i_i_i = __stackBase__ + 12;
  10517.   var $level_dir_addr_i_i_i_i = __stackBase__ + 16;
  10518.   var $message_addr_i_i_i_i = __stackBase__ + 20;
  10519.   var $this_addr_i_i1_i = __stackBase__ + 24;
  10520.   var $function_addr_i_i_i = __stackBase__ + 28;
  10521.   var $obj_addr_i_i4 = __stackBase__ + 32;
  10522.   var $function_addr_i_i = __stackBase__ + 36;
  10523.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 40;
  10524.   var $this_addr_i1_i_i_i_i = __stackBase__ + 44;
  10525.   var $this_addr_i_i_i_i_i = __stackBase__ + 48;
  10526.   var $this_addr_i1_i_i_i = __stackBase__ + 52;
  10527.   var $this_addr_i_i_i_i5 = __stackBase__ + 56;
  10528.   var $v_addr_i_i_i_i = __stackBase__ + 60;
  10529.   var $this_addr_i_i_i6 = __stackBase__ + 64;
  10530.   var $size_addr_i_i = __stackBase__ + 68;
  10531.   var $obj_i_i = __stackBase__ + 72;
  10532.   var $obj_i = __stackBase__ + 76;
  10533.   var $this_addr_i_i_i_i = __stackBase__ + 80;
  10534.   var $this_addr_i_i_i1 = __stackBase__ + 84;
  10535.   var $obj_addr_i_i = __stackBase__ + 88;
  10536.   var $face_addr_i = __stackBase__ + 92;
  10537.   var $this_addr_i_i_i = __stackBase__ + 96;
  10538.   var $this_addr_i_i = __stackBase__ + 100;
  10539.   var $obj_addr_i = __stackBase__ + 104;
  10540.   var $retval;
  10541.   var $face_addr;
  10542.   var $font;
  10543.   $face_addr = $face;
  10544.   if (($face_addr | 0) == 0) {
  10545.     $face_addr = 139072;
  10546.   }
  10547.   HEAP[$obj_addr_i] = $face_addr;
  10548.   HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  10549.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  10550.   if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) == -1) {
  10551.     $retval = 111536;
  10552.     var $82 = $retval;
  10553.     STACKTOP = __stackBase__;
  10554.     return $82;
  10555.   }
  10556.   HEAP[$size_addr_i_i] = 92;
  10557.   var $14 = _calloc(1, HEAP[$size_addr_i_i]);
  10558.   HEAP[$obj_i_i] = $14;
  10559.   if ((HEAP[$obj_i_i] | 0) != 0) {
  10560.     HEAP[$this_addr_i_i_i6] = HEAP[$obj_i_i];
  10561.     var $this1_i_i_i7 = HEAP[$this_addr_i_i_i6];
  10562.     HEAP[$this_addr_i_i_i_i5] = $this1_i_i_i7 | 0;
  10563.     HEAP[$v_addr_i_i_i_i] = 1;
  10564.     HEAP[HEAP[$this_addr_i_i_i_i5] | 0] = HEAP[$v_addr_i_i_i_i];
  10565.     HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i7 + 4 | 0;
  10566.     var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  10567.     HEAP[$this_addr_i_i_i_i_i] = $this1_i2_i_i_i | 0;
  10568.     HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] = 0;
  10569.     HEAP[$this_addr_i1_i_i_i_i] = $this1_i2_i_i_i + 4 | 0;
  10570.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  10571.     var $28 = HEAP[$this_addr_i_i_i_i_i_i];
  10572.     for (var $$dest = $28, $$stop = $$dest + 36; $$dest < $$stop; $$dest++) {
  10573.       HEAP[$$dest] = 0;
  10574.     }
  10575.   }
  10576.   HEAP[$obj_i] = HEAP[$obj_i_i];
  10577.   HEAP[$obj_addr_i_i4] = HEAP[$obj_i];
  10578.   HEAP[$function_addr_i_i] = 110296;
  10579.   var $header_i_i11 = HEAP[$obj_addr_i_i4] | 0;
  10580.   var $42 = HEAP[$function_addr_i_i];
  10581.   HEAP[$this_addr_i_i1_i] = $header_i_i11;
  10582.   HEAP[$function_addr_i_i_i] = $42;
  10583.   if (($header_i_i11 | 0) != 0) {
  10584.     HEAP[$what_addr_i_i_i_i] = 104072;
  10585.     HEAP[$obj_addr_i_i_i_i] = $header_i_i11;
  10586.     HEAP[$func_addr_i_i_i_i] = 0;
  10587.     HEAP[$level_addr_i_i_i_i] = 0;
  10588.     HEAP[$level_dir_addr_i_i_i_i] = 0;
  10589.     HEAP[$message_addr_i_i_i_i] = 104056;
  10590.   }
  10591.   var $63 = HEAP[$obj_i];
  10592.   $font = $63;
  10593.   if (($63 | 0) == 0) {
  10594.     $retval = 111536;
  10595.     var $82 = $retval;
  10596.     STACKTOP = __stackBase__;
  10597.     return $82;
  10598.   }
  10599.   HEAP[$face_addr_i] = $face_addr;
  10600.   HEAP[$obj_addr_i_i] = HEAP[$face_addr_i];
  10601.   HEAP[$this_addr_i_i_i1] = HEAP[$obj_addr_i_i] | 0;
  10602.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i1] | 0;
  10603.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  10604.     HEAP[HEAP[$face_addr_i] + 44 | 0] = 1;
  10605.   }
  10606.   var $call10 = _hb_face_reference($face_addr);
  10607.   HEAP[$font + 52 | 0] = $call10;
  10608.   HEAP[$font + 72 | 0] = 131776;
  10609.   $retval = $font;
  10610.   var $82 = $retval;
  10611.   STACKTOP = __stackBase__;
  10612.   return $82;
  10613. }
  10614. function _hb_font_destroy($font) {
  10615.   var __stackBase__ = STACKTOP;
  10616.   STACKTOP = STACKTOP + 44 | 0;
  10617.   var $this_addr_i_i_i = __stackBase__ + 24;
  10618.   var $obj_addr_i_i = __stackBase__ + 32;
  10619.   var $function_addr_i_i = __stackBase__ + 36;
  10620.   var $obj_addr_i = __stackBase__ + 40;
  10621.   var $font_addr;
  10622.   $font_addr = $font;
  10623.   HEAP[$obj_addr_i] = $font_addr;
  10624.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  10625.   HEAP[$function_addr_i_i] = 109608;
  10626.   var $6 = HEAP[$function_addr_i_i];
  10627.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  10628.   HEAP[__stackBase__ + 28] = $6;
  10629.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  10630.   if (($this1_i_i_i | 0) != 0) {
  10631.     HEAP[__stackBase__] = 104072;
  10632.     HEAP[__stackBase__ + 4] = $this1_i_i_i;
  10633.     HEAP[__stackBase__ + 8] = 0;
  10634.     HEAP[__stackBase__ + 12] = 0;
  10635.     HEAP[__stackBase__ + 16] = 0;
  10636.     HEAP[__stackBase__ + 20] = 104056;
  10637.   }
  10638.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  10639.     STACKTOP = __stackBase__;
  10640.     return;
  10641.   }
  10642.   if ((HEAP[$font_addr + 80 | 0] | 0) != 0) {
  10643.     FUNCTION_TABLE[HEAP[$font_addr + 80 | 0]](HEAP[$font_addr + 76 | 0]);
  10644.   }
  10645.   _hb_font_destroy(HEAP[$font_addr + 48 | 0]);
  10646.   _hb_face_destroy(HEAP[$font_addr + 52 | 0]);
  10647.   _hb_font_funcs_destroy(HEAP[$font_addr + 72 | 0]);
  10648.   _free($font_addr);
  10649.   STACKTOP = __stackBase__;
  10650.   return;
  10651. }
  10652. function _hb_font_set_funcs($font, $klass, $user_data, $destroy) {
  10653.   var __stackBase__ = STACKTOP;
  10654.   STACKTOP = STACKTOP + 64 | 0;
  10655.   var $this_addr_i1_i_i_i = __stackBase__;
  10656.   var $this_addr_i_i_i_i_i = __stackBase__ + 4;
  10657.   var $this_addr_i_i1_i_i = __stackBase__ + 8;
  10658.   var $this_addr_i_i_i = __stackBase__ + 12;
  10659.   var $what_addr_i_i_i_i_i = __stackBase__ + 16;
  10660.   var $obj_addr_i_i_i_i_i = __stackBase__ + 20;
  10661.   var $func_addr_i_i_i_i_i = __stackBase__ + 24;
  10662.   var $level_addr_i_i_i_i_i = __stackBase__ + 28;
  10663.   var $level_dir_addr_i_i_i_i_i = __stackBase__ + 32;
  10664.   var $message_addr_i_i_i_i_i = __stackBase__ + 36;
  10665.   var $this_addr_i_i_i_i = __stackBase__ + 40;
  10666.   var $function_addr_i_i_i_i = __stackBase__ + 44;
  10667.   var $obj_addr_i_i_i = __stackBase__ + 48;
  10668.   var $function_addr_i_i_i = __stackBase__ + 52;
  10669.   var $obj_addr_i_i = __stackBase__ + 56;
  10670.   var $ffuncs_addr_i = __stackBase__ + 60;
  10671.   var $font_addr;
  10672.   var $klass_addr;
  10673.   var $user_data_addr;
  10674.   var $destroy_addr;
  10675.   $font_addr = $font;
  10676.   $klass_addr = $klass;
  10677.   $user_data_addr = $user_data;
  10678.   $destroy_addr = $destroy;
  10679.   if ((HEAP[$font_addr + 44 | 0] | 0) != 0) {
  10680.     if (($destroy_addr | 0) == 0) {
  10681.       STACKTOP = __stackBase__;
  10682.       return;
  10683.     }
  10684.     FUNCTION_TABLE[$destroy_addr]($user_data_addr);
  10685.     STACKTOP = __stackBase__;
  10686.     return;
  10687.   }
  10688.   if ((HEAP[$font_addr + 80 | 0] | 0) != 0) {
  10689.     FUNCTION_TABLE[HEAP[$font_addr + 80 | 0]](HEAP[$font_addr + 76 | 0]);
  10690.   }
  10691.   if (($klass_addr | 0) == 0) {
  10692.     $klass_addr = 131776;
  10693.   }
  10694.   HEAP[$ffuncs_addr_i] = $klass_addr;
  10695.   HEAP[$obj_addr_i_i] = HEAP[$ffuncs_addr_i];
  10696.   HEAP[$obj_addr_i_i_i] = HEAP[$obj_addr_i_i];
  10697.   HEAP[$function_addr_i_i_i] = 109488;
  10698.   var $header_i_i_i = HEAP[$obj_addr_i_i_i] | 0;
  10699.   var $20 = HEAP[$function_addr_i_i_i];
  10700.   HEAP[$this_addr_i_i_i_i] = $header_i_i_i;
  10701.   HEAP[$function_addr_i_i_i_i] = $20;
  10702.   if (($header_i_i_i | 0) != 0) {
  10703.     HEAP[$what_addr_i_i_i_i_i] = 104072;
  10704.     HEAP[$obj_addr_i_i_i_i_i] = $header_i_i_i;
  10705.     HEAP[$func_addr_i_i_i_i_i] = 0;
  10706.     HEAP[$level_addr_i_i_i_i_i] = 0;
  10707.     HEAP[$level_dir_addr_i_i_i_i_i] = 0;
  10708.     HEAP[$message_addr_i_i_i_i_i] = 104056;
  10709.   }
  10710.   var $header_i_i = HEAP[$obj_addr_i_i] | 0;
  10711.   HEAP[$this_addr_i_i_i] = $header_i_i;
  10712.   do {
  10713.     if (($header_i_i | 0) != 0) {
  10714.       HEAP[$this_addr_i_i1_i_i] = $header_i_i;
  10715.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i1_i_i] | 0;
  10716.       if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) == -1) {
  10717.         break;
  10718.       }
  10719.       HEAP[$this_addr_i1_i_i_i] = $header_i_i | 0;
  10720.       var $ref_count_i3_i_i_i = HEAP[$this_addr_i1_i_i_i] | 0;
  10721.       HEAP[$ref_count_i3_i_i_i] = HEAP[$ref_count_i3_i_i_i] + 1 | 0;
  10722.     }
  10723.   } while (0);
  10724.   _hb_font_funcs_destroy(HEAP[$font_addr + 72 | 0]);
  10725.   HEAP[$font_addr + 72 | 0] = $klass_addr;
  10726.   HEAP[$font_addr + 76 | 0] = $user_data_addr;
  10727.   HEAP[$font_addr + 80 | 0] = $destroy_addr;
  10728.   STACKTOP = __stackBase__;
  10729.   return;
  10730. }
  10731. function _hb_font_set_scale($font, $x_scale, $y_scale) {
  10732.   var $font_addr;
  10733.   $font_addr = $font;
  10734.   if ((HEAP[$font_addr + 44 | 0] | 0) != 0) {
  10735.     return;
  10736.   }
  10737.   HEAP[$font_addr + 56 | 0] = $x_scale;
  10738.   HEAP[$font_addr + 60 | 0] = $y_scale;
  10739.   return;
  10740. }
  10741. function __ZN2OT16OpenTypeFontFile8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  10742.   var label = 0;
  10743.   var __stackBase__ = STACKTOP;
  10744.   STACKTOP = STACKTOP + 269 | 0;
  10745.   var $this_addr_i_i22 = __stackBase__;
  10746.   var $this_addr_i23 = __stackBase__ + 4;
  10747.   var $this_addr_i_i_i4 = __stackBase__ + 8;
  10748.   var $base_addr_i_i_i5 = __stackBase__ + 12;
  10749.   var $len_addr_i_i_i = __stackBase__ + 16;
  10750.   var $p_i_i_i = __stackBase__ + 20;
  10751.   var $this_addr_i_i6 = __stackBase__ + 24;
  10752.   var $obj_addr_i_i = __stackBase__ + 28;
  10753.   var $this_addr_i8 = __stackBase__ + 32;
  10754.   var $c_addr_i9 = __stackBase__ + 36;
  10755.   var $this_addr_i_i18_i = __stackBase__ + 40;
  10756.   var $this_addr_i19_i = __stackBase__ + 44;
  10757.   var $this_addr_i_i_i4_i = __stackBase__ + 48;
  10758.   var $base_addr_i_i_i5_i = __stackBase__ + 52;
  10759.   var $len_addr_i_i_i_i = __stackBase__ + 56;
  10760.   var $p_i_i_i_i = __stackBase__ + 60;
  10761.   var $this_addr_i_i6_i = __stackBase__ + 64;
  10762.   var $obj_addr_i_i_i = __stackBase__ + 68;
  10763.   var $this_addr_i8_i = __stackBase__ + 72;
  10764.   var $c_addr_i9_i = __stackBase__ + 76;
  10765.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 80;
  10766.   var $base_addr_i_i_i12_i_i_i = __stackBase__ + 84;
  10767.   var $len_addr_i_i_i13_i_i_i = __stackBase__ + 88;
  10768.   var $p_i_i_i14_i_i_i = __stackBase__ + 92;
  10769.   var $this_addr_i2_i_i_i_i = __stackBase__ + 96;
  10770.   var $obj_addr_i_i15_i_i_i = __stackBase__ + 100;
  10771.   var $this_addr_i_i_i16_i_i_i = __stackBase__ + 104;
  10772.   var $this_addr_i_i17_i_i_i = __stackBase__ + 108;
  10773.   var $this_addr_i19_i_i_i = __stackBase__ + 112;
  10774.   var $c_addr_i20_i_i_i = __stackBase__ + 116;
  10775.   var $this_addr_i_i4_i_i_i = __stackBase__ + 120;
  10776.   var $this_addr_i5_i_i_i = __stackBase__ + 124;
  10777.   var $this_addr_i_i11_i_i_i_i = __stackBase__ + 128;
  10778.   var $base_addr_i_i12_i_i_i_i = __stackBase__ + 132;
  10779.   var $len_addr_i_i13_i_i_i_i = __stackBase__ + 136;
  10780.   var $p_i_i14_i_i_i_i = __stackBase__ + 140;
  10781.   var $this_addr_i15_i_i_i_i = __stackBase__ + 144;
  10782.   var $obj_addr_i_i_i_i_i = __stackBase__ + 148;
  10783.   var $this_addr_i_i3_i_i_i_i = __stackBase__ + 152;
  10784.   var $this_addr_i4_i_i_i_i = __stackBase__ + 156;
  10785.   var $P_addr_i_i_i_i_i = __stackBase__ + 160;
  10786.   var $offset_addr_i_i_i_i_i = __stackBase__ + 164;
  10787.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 168;
  10788.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 172;
  10789.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 176;
  10790.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 180;
  10791.   var $retval_i_i_i_i_i_i = __stackBase__ + 184;
  10792.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 185;
  10793.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 189;
  10794.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 193;
  10795.   var $p_i_i_i_i_i_i = __stackBase__ + 197;
  10796.   var $retval_i_i_i_i_i = __stackBase__ + 201;
  10797.   var $this_addr_i_i_i_i_i = __stackBase__ + 202;
  10798.   var $c_addr_i_i_i_i_i = __stackBase__ + 206;
  10799.   var $retval_i_i_i_i = __stackBase__ + 210;
  10800.   var $this_addr_i_i_i_i = __stackBase__ + 211;
  10801.   var $c_addr_i_i_i_i = __stackBase__ + 215;
  10802.   var $base_addr_i_i_i_i = __stackBase__ + 219;
  10803.   var $offset_i_i_i_i = __stackBase__ + 223;
  10804.   var $obj_i_i_i_i = __stackBase__ + 227;
  10805.   var $retval_i_i_i = __stackBase__ + 231;
  10806.   var $this_addr_i_i_i = __stackBase__ + 232;
  10807.   var $c_addr_i_i_i = __stackBase__ + 236;
  10808.   var $base_addr_i_i_i = __stackBase__ + 240;
  10809.   var $count_i_i_i = __stackBase__ + 244;
  10810.   var $i_i_i_i = __stackBase__ + 248;
  10811.   var $this_addr_i_i = __stackBase__ + 252;
  10812.   var $c_addr_i_i = __stackBase__ + 256;
  10813.   var $retval_i = __stackBase__ + 260;
  10814.   var $this_addr_i = __stackBase__ + 261;
  10815.   var $c_addr_i = __stackBase__ + 265;
  10816.   var $retval;
  10817.   var $c_addr;
  10818.   $c_addr = $c;
  10819.   var $this1 = $this;
  10820.   HEAP[$this_addr_i8] = $this1 | 0;
  10821.   HEAP[$c_addr_i9] = $c_addr;
  10822.   var $this1_i10 = HEAP[$this_addr_i8];
  10823.   HEAP[$this_addr_i_i6] = HEAP[$c_addr_i9];
  10824.   HEAP[$obj_addr_i_i] = $this1_i10;
  10825.   var $8 = HEAP[$obj_addr_i_i];
  10826.   HEAP[$this_addr_i_i_i4] = HEAP[$this_addr_i_i6];
  10827.   HEAP[$base_addr_i_i_i5] = $8;
  10828.   HEAP[$len_addr_i_i_i] = 4;
  10829.   var $this1_i_i_i12 = HEAP[$this_addr_i_i_i4];
  10830.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i5];
  10831.   do {
  10832.     if (HEAP[$this1_i_i_i12 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  10833.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i12 + 8 | 0] >>> 0)) {
  10834.         var $21 = 0;
  10835.         break;
  10836.       }
  10837.       var $21 = (HEAP[$this1_i_i_i12 + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  10838.     } else {
  10839.       var $21 = 0;
  10840.     }
  10841.   } while (0);
  10842.   var $21;
  10843.   if (!($21 & 1 & 1)) {
  10844.     $retval = 0;
  10845.     var $285 = $retval;
  10846.     STACKTOP = __stackBase__;
  10847.     return $285;
  10848.   }
  10849.   HEAP[$this_addr_i23] = $this1 | 0;
  10850.   HEAP[$this_addr_i_i22] = HEAP[$this_addr_i23] | 0;
  10851.   var $this1_i_i25 = HEAP[$this_addr_i_i22];
  10852.   var $add14_i_i = ((HEAP[$this1_i_i25 + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i25 | 0] & 255) << 24) + ((HEAP[$this1_i_i25 + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i25 + 3 | 0] & 255) | 0;
  10853.   if (($add14_i_i | 0) == 1330926671 | ($add14_i_i | 0) == 1953658213 | ($add14_i_i | 0) == 1954115633 | ($add14_i_i | 0) == 65536) {
  10854.     $retval = __ZN2OT11OffsetTable8sanitizeEPNS_21hb_sanitize_context_tE($this1 | 0, $c_addr) & 1;
  10855.     var $285 = $retval;
  10856.     STACKTOP = __stackBase__;
  10857.     return $285;
  10858.   } else if (($add14_i_i | 0) == 1953784678) {
  10859.     HEAP[$this_addr_i] = $this1 | 0;
  10860.     HEAP[$c_addr_i] = $c_addr;
  10861.     var $this1_i = HEAP[$this_addr_i];
  10862.     var $48 = HEAP[$c_addr_i];
  10863.     HEAP[$this_addr_i8_i] = $this1_i + 4 | 0;
  10864.     HEAP[$c_addr_i9_i] = $48;
  10865.     var $this1_i10_i = HEAP[$this_addr_i8_i];
  10866.     HEAP[$this_addr_i_i6_i] = HEAP[$c_addr_i9_i];
  10867.     HEAP[$obj_addr_i_i_i] = $this1_i10_i;
  10868.     var $55 = HEAP[$obj_addr_i_i_i];
  10869.     HEAP[$this_addr_i_i_i4_i] = HEAP[$this_addr_i_i6_i];
  10870.     HEAP[$base_addr_i_i_i5_i] = $55;
  10871.     HEAP[$len_addr_i_i_i_i] = 4;
  10872.     var $this1_i_i_i12_i = HEAP[$this_addr_i_i_i4_i];
  10873.     HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i5_i];
  10874.     do {
  10875.       if (HEAP[$this1_i_i_i12_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  10876.         if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i12_i + 8 | 0] >>> 0)) {
  10877.           var $68 = 0;
  10878.           break;
  10879.         }
  10880.         var $68 = (HEAP[$this1_i_i_i12_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  10881.       } else {
  10882.         var $68 = 0;
  10883.       }
  10884.     } while (0);
  10885.     var $68;
  10886.     do {
  10887.       if ($68 & 1 & 1) {
  10888.         HEAP[$this_addr_i19_i] = $this1_i + 4 | 0;
  10889.         HEAP[$this_addr_i_i18_i] = HEAP[$this_addr_i19_i] | 0;
  10890.         var $this1_i_i21_i = HEAP[$this_addr_i_i18_i];
  10891.         if (((((HEAP[$this1_i_i21_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i + 1 | 0] & 255) & 65535) - 1 | 0) >>> 0 >= 2) {
  10892.           HEAP[$retval_i] = 1;
  10893.           break;
  10894.         }
  10895.         var $86 = HEAP[$c_addr_i];
  10896.         HEAP[$this_addr_i_i] = $this1_i | 0;
  10897.         HEAP[$c_addr_i_i] = $86;
  10898.         var $this1_i_i = HEAP[$this_addr_i_i];
  10899.         var $90 = HEAP[$c_addr_i_i];
  10900.         HEAP[$this_addr_i_i_i] = $this1_i_i + 8 | 0;
  10901.         HEAP[$c_addr_i_i_i] = $90;
  10902.         HEAP[$base_addr_i_i_i] = $this1_i_i;
  10903.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  10904.         var $98 = HEAP[$c_addr_i_i_i];
  10905.         HEAP[$this_addr_i19_i_i_i] = $this1_i_i_i;
  10906.         HEAP[$c_addr_i20_i_i_i] = $98;
  10907.         var $this1_i21_i_i_i = HEAP[$this_addr_i19_i_i_i];
  10908.         HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i20_i_i_i];
  10909.         HEAP[$obj_addr_i_i15_i_i_i] = $this1_i21_i_i_i;
  10910.         var $105 = HEAP[$obj_addr_i_i15_i_i_i];
  10911.         HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  10912.         HEAP[$base_addr_i_i_i12_i_i_i] = $105;
  10913.         HEAP[$len_addr_i_i_i13_i_i_i] = 4;
  10914.         var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  10915.         HEAP[$p_i_i_i14_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i];
  10916.         do {
  10917.           if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i] >>> 0) {
  10918.             if (!(HEAP[$p_i_i_i14_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  10919.               var $118 = 0;
  10920.               break;
  10921.             }
  10922.             var $118 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i] >>> 0;
  10923.           } else {
  10924.             var $118 = 0;
  10925.           }
  10926.         } while (0);
  10927.         var $118;
  10928.         if ($118 & 1) {
  10929.           var $126 = HEAP[$c_addr_i20_i_i_i];
  10930.           HEAP[$this_addr_i_i17_i_i_i] = $this1_i21_i_i_i | 0;
  10931.           HEAP[$this_addr_i_i_i16_i_i_i] = HEAP[$this_addr_i_i17_i_i_i] | 0;
  10932.           var $this1_i_i_i37_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i];
  10933.           var $136 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($126, $this1_i21_i_i_i, 4, ((HEAP[$this1_i_i_i37_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i37_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i37_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i + 3 | 0] & 255) | 0);
  10934.         } else {
  10935.           var $136 = 0;
  10936.         }
  10937.         var $136;
  10938.         L1584 : do {
  10939.           if ($136 & 1) {
  10940.             HEAP[$this_addr_i5_i_i_i] = $this1_i_i_i | 0;
  10941.             HEAP[$this_addr_i_i4_i_i_i] = HEAP[$this_addr_i5_i_i_i] | 0;
  10942.             var $this1_i_i7_i_i_i = HEAP[$this_addr_i_i4_i_i_i];
  10943.             HEAP[$count_i_i_i] = ((HEAP[$this1_i_i7_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i7_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i7_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i + 3 | 0] & 255) | 0;
  10944.             HEAP[$i_i_i_i] = 0;
  10945.             L1587 : do {
  10946.               if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  10947.                 var $array_i_i_i = $this1_i_i_i + 4 | 0;
  10948.                 while (1) {
  10949.                   var $214 = HEAP[$c_addr_i_i_i];
  10950.                   var $215 = HEAP[$base_addr_i_i_i];
  10951.                   HEAP[$this_addr_i_i_i_i] = (HEAP[$i_i_i_i] << 2) + $array_i_i_i | 0;
  10952.                   HEAP[$c_addr_i_i_i_i] = $214;
  10953.                   HEAP[$base_addr_i_i_i_i] = $215;
  10954.                   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  10955.                   HEAP[$this_addr_i15_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  10956.                   HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i_i;
  10957.                   var $218 = HEAP[$obj_addr_i_i_i_i_i];
  10958.                   HEAP[$this_addr_i_i11_i_i_i_i] = HEAP[$this_addr_i15_i_i_i_i];
  10959.                   HEAP[$base_addr_i_i12_i_i_i_i] = $218;
  10960.                   HEAP[$len_addr_i_i13_i_i_i_i] = 4;
  10961.                   var $this1_i_i17_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i];
  10962.                   HEAP[$p_i_i14_i_i_i_i] = HEAP[$base_addr_i_i12_i_i_i_i];
  10963.                   do {
  10964.                     if (HEAP[$this1_i_i17_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i14_i_i_i_i] >>> 0) {
  10965.                       if (!(HEAP[$p_i_i14_i_i_i_i] >>> 0 <= HEAP[$this1_i_i17_i_i_i_i + 8 | 0] >>> 0)) {
  10966.                         var $227 = 0;
  10967.                         break;
  10968.                       }
  10969.                       var $227 = (HEAP[$this1_i_i17_i_i_i_i + 8 | 0] - HEAP[$p_i_i14_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i13_i_i_i_i] >>> 0;
  10970.                     } else {
  10971.                       var $227 = 0;
  10972.                     }
  10973.                   } while (0);
  10974.                   var $227;
  10975.                   do {
  10976.                     if ($227 & 1) {
  10977.                       HEAP[$this_addr_i4_i_i_i_i] = $this1_i_i_i_i;
  10978.                       HEAP[$this_addr_i_i3_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i] | 0;
  10979.                       var $this1_i_i6_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i];
  10980.                       HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i6_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i6_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i6_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i_i + 3 | 0] & 255) | 0;
  10981.                       if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  10982.                         var $tobool_i2_i_i_i_i = 1;
  10983.                         HEAP[$retval_i_i_i_i] = $tobool_i2_i_i_i_i;
  10984.                         var $261 = $tobool_i2_i_i_i_i;
  10985.                         break;
  10986.                       }
  10987.                       var $238 = HEAP[$offset_i_i_i_i];
  10988.                       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  10989.                       HEAP[$offset_addr_i_i_i_i_i] = $238;
  10990.                       HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  10991.                       if (__ZN2OT11OffsetTable8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$obj_i_i_i_i], HEAP[$c_addr_i_i_i_i])) {
  10992.                         var $259 = 1;
  10993.                       } else {
  10994.                         var $244 = HEAP[$c_addr_i_i_i_i];
  10995.                         HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i_i;
  10996.                         HEAP[$c_addr_i_i_i_i_i] = $244;
  10997.                         var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  10998.                         HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  10999.                         HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  11000.                         HEAP[$len_addr_i_i_i_i_i_i] = 4;
  11001.                         var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  11002.                         do {
  11003.                           if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  11004.                             HEAP[$retval_i_i_i_i_i_i] = 0;
  11005.                             label = 1232;
  11006.                             break;
  11007.                           } else {
  11008.                             HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  11009.                             var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  11010.                             HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  11011.                             var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  11012.                             HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  11013.                             if (!$tobool_i_i_i_i_i_i_i) {
  11014.                               label = 1232;
  11015.                               break;
  11016.                             }
  11017.                             HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i;
  11018.                             HEAP[$i_addr_i_i_i_i_i_i] = 0;
  11019.                             var $253 = HEAP[$i_addr_i_i_i_i_i_i];
  11020.                             HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  11021.                             HEAP[$i_addr_i_i_i_i_i_i_i] = $253;
  11022.                             var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  11023.                             HEAP[$this1_i_i_i_i_i_i_i | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] >>> 24 & 255;
  11024.                             HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] >>> 16 & 255;
  11025.                             HEAP[$this1_i_i_i_i_i_i_i + 2 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] >>> 8 & 255;
  11026.                             HEAP[$this1_i_i_i_i_i_i_i + 3 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  11027.                             HEAP[$retval_i_i_i_i_i] = 1;
  11028.                             break;
  11029.                           }
  11030.                         } while (0);
  11031.                         if (label == 1232) {
  11032.                           label = 0;
  11033.                           HEAP[$retval_i_i_i_i_i] = 0;
  11034.                         }
  11035.                         var $259 = HEAP[$retval_i_i_i_i_i];
  11036.                       }
  11037.                       var $259;
  11038.                       var $tobool_i_i_i_i_i = $259 & 1;
  11039.                       HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i;
  11040.                       var $261 = $tobool_i_i_i_i_i;
  11041.                     } else {
  11042.                       var $tobool_i9_i_i_i_i = 0;
  11043.                       HEAP[$retval_i_i_i_i] = $tobool_i9_i_i_i_i;
  11044.                       var $261 = $tobool_i9_i_i_i_i;
  11045.                     }
  11046.                   } while (0);
  11047.                   var $261;
  11048.                   if (!$261) {
  11049.                     break;
  11050.                   }
  11051.                   HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  11052.                   if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  11053.                     break L1587;
  11054.                   }
  11055.                 }
  11056.                 HEAP[$retval_i_i_i] = 0;
  11057.                 break L1584;
  11058.               }
  11059.             } while (0);
  11060.             HEAP[$retval_i_i_i] = 1;
  11061.           } else {
  11062.             HEAP[$retval_i_i_i] = 0;
  11063.           }
  11064.         } while (0);
  11065.         HEAP[$retval_i] = HEAP[$retval_i_i_i] & 1 & 1;
  11066.       } else {
  11067.         HEAP[$retval_i] = 0;
  11068.       }
  11069.     } while (0);
  11070.     $retval = HEAP[$retval_i] & 1;
  11071.     var $285 = $retval;
  11072.     STACKTOP = __stackBase__;
  11073.     return $285;
  11074.   } else {
  11075.     $retval = 1;
  11076.     var $285 = $retval;
  11077.     STACKTOP = __stackBase__;
  11078.     return $285;
  11079.   }
  11080. }
  11081. function __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($this, $base, $record_size, $len) {
  11082.   var __stackBase__ = STACKTOP;
  11083.   STACKTOP = STACKTOP + 24 | 0;
  11084.   var $this_addr_i = __stackBase__;
  11085.   var $base_addr_i = __stackBase__ + 4;
  11086.   var $len_addr_i = __stackBase__ + 8;
  11087.   var $p_i = __stackBase__ + 12;
  11088.   var $v_addr_i;
  11089.   var $count_addr_i = __stackBase__ + 16;
  11090.   var $size_addr_i = __stackBase__ + 20;
  11091.   var $record_size_addr;
  11092.   var $len_addr;
  11093.   $record_size_addr = $record_size;
  11094.   $len_addr = $len;
  11095.   HEAP[$count_addr_i] = $len_addr;
  11096.   HEAP[$size_addr_i] = $record_size_addr;
  11097.   if (HEAP[$size_addr_i] >>> 0 > 0) {
  11098.     var $8 = HEAP[$count_addr_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i] >>> 0)) >>> 0;
  11099.   } else {
  11100.     var $8 = 0;
  11101.   }
  11102.   var $8;
  11103.   if ($8 & 1) {
  11104.     var $33 = 0;
  11105.     var $33;
  11106.     var $frombool_i = $33 & 1;
  11107.     $v_addr_i = $frombool_i;
  11108.     var $34 = $v_addr_i;
  11109.     var $tobool_i = $34 & 1;
  11110.     STACKTOP = __stackBase__;
  11111.     return $tobool_i;
  11112.   }
  11113.   var $mul3 = Math.imul($len_addr, $record_size_addr);
  11114.   HEAP[$this_addr_i] = $this;
  11115.   HEAP[$base_addr_i] = $base;
  11116.   HEAP[$len_addr_i] = $mul3;
  11117.   var $this1_i = HEAP[$this_addr_i];
  11118.   HEAP[$p_i] = HEAP[$base_addr_i];
  11119.   do {
  11120.     if (HEAP[$this1_i + 4 | 0] >>> 0 <= HEAP[$p_i] >>> 0) {
  11121.       if (!(HEAP[$p_i] >>> 0 <= HEAP[$this1_i + 8 | 0] >>> 0)) {
  11122.         var $27 = 0;
  11123.         break;
  11124.       }
  11125.       var $27 = (HEAP[$this1_i + 8 | 0] - HEAP[$p_i] | 0) >>> 0 >= HEAP[$len_addr_i] >>> 0;
  11126.     } else {
  11127.       var $27 = 0;
  11128.     }
  11129.   } while (0);
  11130.   var $27;
  11131.   var $33 = $27 & 1;
  11132.   var $33;
  11133.   var $frombool_i = $33 & 1;
  11134.   $v_addr_i = $frombool_i;
  11135.   var $34 = $v_addr_i;
  11136.   var $tobool_i = $34 & 1;
  11137.   STACKTOP = __stackBase__;
  11138.   return $tobool_i;
  11139. }
  11140. function __ZN9hb_font_t21parent_scale_positionEPiS0_($this, $x, $y) {
  11141.   var label = 0;
  11142.   var __stackBase__ = STACKTOP;
  11143.   STACKTOP = STACKTOP + 40 | 0;
  11144.   var $retval_i_i1 = __stackBase__;
  11145.   var $this_addr_i_i2 = __stackBase__ + 4;
  11146.   var $v_addr_i_i3 = __stackBase__ + 8;
  11147.   var $this_addr_i4 = __stackBase__ + 12;
  11148.   var $v_addr_i5 = __stackBase__ + 16;
  11149.   var $retval_i_i = __stackBase__ + 20;
  11150.   var $this_addr_i_i = __stackBase__ + 24;
  11151.   var $v_addr_i_i = __stackBase__ + 28;
  11152.   var $this_addr_i = __stackBase__ + 32;
  11153.   var $v_addr_i = __stackBase__ + 36;
  11154.   var $x_addr;
  11155.   var $y_addr;
  11156.   $x_addr = $x;
  11157.   $y_addr = $y;
  11158.   var $this1 = $this;
  11159.   var $1 = HEAP[$x_addr];
  11160.   HEAP[$this_addr_i] = $this1;
  11161.   HEAP[$v_addr_i] = $1;
  11162.   var $4 = HEAP[$v_addr_i];
  11163.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i];
  11164.   HEAP[$v_addr_i_i] = $4;
  11165.   var $this1_i_i = HEAP[$this_addr_i_i];
  11166.   do {
  11167.     if ((HEAP[$this1_i_i + 48 | 0] | 0) != 0) {
  11168.       if ((HEAP[HEAP[$this1_i_i + 48 | 0] + 56 | 0] | 0) == (HEAP[$this1_i_i + 56 | 0] | 0)) {
  11169.         label = 1261;
  11170.         break;
  11171.       }
  11172.       HEAP[$retval_i_i] = (HEAP[$v_addr_i_i] | 0) * (HEAP[$this1_i_i + 56 | 0] | 0) / (HEAP[HEAP[$this1_i_i + 48 | 0] + 56 | 0] | 0) & -1;
  11173.       break;
  11174.     } else {
  11175.       label = 1261;
  11176.     }
  11177.   } while (0);
  11178.   if (label == 1261) {
  11179.     HEAP[$retval_i_i] = HEAP[$v_addr_i_i];
  11180.   }
  11181.   HEAP[$x_addr] = HEAP[$retval_i_i];
  11182.   var $25 = HEAP[$y_addr];
  11183.   HEAP[$this_addr_i4] = $this1;
  11184.   HEAP[$v_addr_i5] = $25;
  11185.   var $28 = HEAP[$v_addr_i5];
  11186.   HEAP[$this_addr_i_i2] = HEAP[$this_addr_i4];
  11187.   HEAP[$v_addr_i_i3] = $28;
  11188.   var $this1_i_i7 = HEAP[$this_addr_i_i2];
  11189.   do {
  11190.     if ((HEAP[$this1_i_i7 + 48 | 0] | 0) != 0) {
  11191.       if ((HEAP[HEAP[$this1_i_i7 + 48 | 0] + 60 | 0] | 0) == (HEAP[$this1_i_i7 + 60 | 0] | 0)) {
  11192.         break;
  11193.       }
  11194.       HEAP[$retval_i_i1] = (HEAP[$v_addr_i_i3] | 0) * (HEAP[$this1_i_i7 + 60 | 0] | 0) / (HEAP[HEAP[$this1_i_i7 + 48 | 0] + 60 | 0] | 0) & -1;
  11195.       var $41 = HEAP[$retval_i_i1];
  11196.       var $42 = $retval_i_i1;
  11197.       var $43 = $this_addr_i_i2;
  11198.       var $44 = $v_addr_i_i3;
  11199.       var $45 = $this_addr_i4;
  11200.       var $46 = $v_addr_i5;
  11201.       var $47 = $y_addr;
  11202.       HEAP[$47] = $41;
  11203.       STACKTOP = __stackBase__;
  11204.       return;
  11205.     }
  11206.   } while (0);
  11207.   HEAP[$retval_i_i1] = HEAP[$v_addr_i_i3];
  11208.   var $41 = HEAP[$retval_i_i1];
  11209.   var $42 = $retval_i_i1;
  11210.   var $43 = $this_addr_i_i2;
  11211.   var $44 = $v_addr_i_i3;
  11212.   var $45 = $this_addr_i4;
  11213.   var $46 = $v_addr_i5;
  11214.   var $47 = $y_addr;
  11215.   HEAP[$47] = $41;
  11216.   STACKTOP = __stackBase__;
  11217.   return;
  11218. }
  11219. function __ZN2OT11OffsetTable8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  11220.   var __stackBase__ = STACKTOP;
  11221.   STACKTOP = STACKTOP + 32 | 0;
  11222.   var $this_addr_i_i1 = __stackBase__;
  11223.   var $base_addr_i_i = __stackBase__ + 4;
  11224.   var $len_addr_i_i = __stackBase__ + 8;
  11225.   var $p_i_i = __stackBase__ + 12;
  11226.   var $this_addr_i2 = __stackBase__ + 16;
  11227.   var $obj_addr_i = __stackBase__ + 20;
  11228.   var $this_addr_i_i = __stackBase__ + 24;
  11229.   var $this_addr_i = __stackBase__ + 28;
  11230.   var $v_addr_i;
  11231.   var $c_addr;
  11232.   $c_addr = $c;
  11233.   var $this1 = $this;
  11234.   HEAP[$this_addr_i2] = $c_addr;
  11235.   HEAP[$obj_addr_i] = $this1;
  11236.   var $4 = HEAP[$obj_addr_i];
  11237.   HEAP[$this_addr_i_i1] = HEAP[$this_addr_i2];
  11238.   HEAP[$base_addr_i_i] = $4;
  11239.   HEAP[$len_addr_i_i] = 12;
  11240.   var $this1_i_i4 = HEAP[$this_addr_i_i1];
  11241.   HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  11242.   do {
  11243.     if (HEAP[$this1_i_i4 + 4 | 0] >>> 0 <= HEAP[$p_i_i] >>> 0) {
  11244.       if (!(HEAP[$p_i_i] >>> 0 <= HEAP[$this1_i_i4 + 8 | 0] >>> 0)) {
  11245.         var $17 = 0;
  11246.         break;
  11247.       }
  11248.       var $17 = (HEAP[$this1_i_i4 + 8 | 0] - HEAP[$p_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i] >>> 0;
  11249.     } else {
  11250.       var $17 = 0;
  11251.     }
  11252.   } while (0);
  11253.   var $17;
  11254.   if (!($17 & 1)) {
  11255.     var $33 = 0;
  11256.     var $33;
  11257.     var $frombool_i = $33 & 1;
  11258.     $v_addr_i = $frombool_i;
  11259.     var $34 = $v_addr_i;
  11260.     var $tobool_i = $34 & 1;
  11261.     STACKTOP = __stackBase__;
  11262.     return $tobool_i;
  11263.   }
  11264.   HEAP[$this_addr_i] = $this1 + 4 | 0;
  11265.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  11266.   var $this1_i_i = HEAP[$this_addr_i_i];
  11267.   var $33 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($c_addr, $this1 + 12 | 0, 16, ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535);
  11268.   var $33;
  11269.   var $frombool_i = $33 & 1;
  11270.   $v_addr_i = $frombool_i;
  11271.   var $34 = $v_addr_i;
  11272.   var $tobool_i = $34 & 1;
  11273.   STACKTOP = __stackBase__;
  11274.   return $tobool_i;
  11275. }
  11276. function __ZL28lang_compare_first_componentPKcS0_($a, $b) {
  11277.   var __stackBase__ = STACKTOP;
  11278.   STACKTOP = STACKTOP + 16 | 0;
  11279.   var $a_addr_i = __stackBase__;
  11280.   var $b_addr_i = __stackBase__ + 4;
  11281.   var $a_addr;
  11282.   var $b_addr;
  11283.   var $da = __stackBase__ + 8;
  11284.   var $db = __stackBase__ + 12;
  11285.   var $p;
  11286.   $a_addr = $a;
  11287.   $b_addr = $b;
  11288.   $p = _strchr($a_addr, 45);
  11289.   if (($p | 0) != 0) {
  11290.     var $cond = $p - $a_addr | 0;
  11291.   } else {
  11292.     var $cond = _strlen($a_addr);
  11293.   }
  11294.   var $cond;
  11295.   HEAP[$da] = $cond;
  11296.   var $call2 = _strchr($b_addr, 45);
  11297.   $p = $call2;
  11298.   if (($call2 | 0) != 0) {
  11299.     var $cond11 = $p - $b_addr | 0;
  11300.   } else {
  11301.     var $cond11 = _strlen($b_addr);
  11302.   }
  11303.   var $cond11;
  11304.   HEAP[$db] = $cond11;
  11305.   HEAP[$a_addr_i] = $da;
  11306.   HEAP[$b_addr_i] = $db;
  11307.   var $call13 = _strncmp($a_addr, $b_addr, HEAP[HEAP[$a_addr_i]] >>> 0 > HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]]);
  11308.   STACKTOP = __stackBase__;
  11309.   return $call13;
  11310. }
  11311. function _hb_feature_from_string($str, $len, $feature) {
  11312.   var label = 0;
  11313.   var __stackBase__ = STACKTOP;
  11314.   STACKTOP = STACKTOP + 152 | 0;
  11315.   var $retval_i_i39_i = __stackBase__;
  11316.   var $pp_addr_i_i40_i = __stackBase__ + 4;
  11317.   var $end_addr_i_i41_i = __stackBase__ + 8;
  11318.   var $pp_addr_i43_i = __stackBase__ + 12;
  11319.   var $end_addr_i44_i = __stackBase__ + 16;
  11320.   var $feature_addr_i45_i = __stackBase__ + 20;
  11321.   var $retval_i14_i_i = __stackBase__ + 24;
  11322.   var $pp_addr_i15_i_i = __stackBase__ + 28;
  11323.   var $end_addr_i16_i_i = __stackBase__ + 32;
  11324.   var $retval_i1_i5_i = __stackBase__ + 36;
  11325.   var $pp_addr_i2_i6_i = __stackBase__ + 40;
  11326.   var $end_addr_i3_i7_i = __stackBase__ + 44;
  11327.   var $retval_i_i9_i = __stackBase__ + 48;
  11328.   var $pp_addr_i_i10_i = __stackBase__ + 52;
  11329.   var $end_addr_i_i11_i = __stackBase__ + 56;
  11330.   var $retval_i13_i = __stackBase__ + 60;
  11331.   var $pp_addr_i14_i = __stackBase__ + 64;
  11332.   var $end_addr_i15_i = __stackBase__ + 68;
  11333.   var $feature_addr_i16_i = __stackBase__ + 72;
  11334.   var $has_start_i_i = __stackBase__ + 76;
  11335.   var $retval_i_i = __stackBase__ + 80;
  11336.   var $pp_addr_i1_i = __stackBase__ + 84;
  11337.   var $end_addr_i2_i = __stackBase__ + 88;
  11338.   var $feature_addr_i3_i = __stackBase__ + 92;
  11339.   var $p_i_i = __stackBase__ + 96;
  11340.   var $c_i_i;
  11341.   var $retval_i1_i_i = __stackBase__ + 100;
  11342.   var $pp_addr_i2_i_i = __stackBase__ + 104;
  11343.   var $end_addr_i3_i_i = __stackBase__ + 108;
  11344.   var $retval_i_i_i = __stackBase__ + 112;
  11345.   var $pp_addr_i_i_i = __stackBase__ + 116;
  11346.   var $end_addr_i_i_i = __stackBase__ + 120;
  11347.   var $pp_addr_i_i = __stackBase__ + 124;
  11348.   var $end_addr_i_i = __stackBase__ + 128;
  11349.   var $feature_addr_i_i = __stackBase__ + 132;
  11350.   var $pp_addr_i = __stackBase__ + 136;
  11351.   var $end_addr_i = __stackBase__ + 140;
  11352.   var $feature_addr_i = __stackBase__ + 144;
  11353.   var $str_addr = __stackBase__ + 148;
  11354.   var $len_addr;
  11355.   HEAP[$str_addr] = $str;
  11356.   $len_addr = $len;
  11357.   if (($len_addr | 0) < 0) {
  11358.     $len_addr = _strlen(HEAP[$str_addr]);
  11359.   }
  11360.   var $add_ptr = HEAP[$str_addr] + $len_addr | 0;
  11361.   HEAP[$pp_addr_i] = $str_addr;
  11362.   HEAP[$end_addr_i] = $add_ptr;
  11363.   HEAP[$feature_addr_i] = $feature;
  11364.   var $9 = HEAP[$end_addr_i];
  11365.   var $10 = HEAP[$feature_addr_i];
  11366.   HEAP[$pp_addr_i_i] = HEAP[$pp_addr_i];
  11367.   HEAP[$end_addr_i_i] = $9;
  11368.   HEAP[$feature_addr_i_i] = $10;
  11369.   var $15 = HEAP[$end_addr_i_i];
  11370.   HEAP[$pp_addr_i_i_i] = HEAP[$pp_addr_i_i];
  11371.   HEAP[$end_addr_i_i_i] = $15;
  11372.   __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i_i_i], HEAP[$end_addr_i_i_i]);
  11373.   do {
  11374.     if ((HEAP[HEAP[$pp_addr_i_i_i]] | 0) == (HEAP[$end_addr_i_i_i] | 0)) {
  11375.       label = 1288;
  11376.     } else {
  11377.       if ((HEAP[HEAP[HEAP[$pp_addr_i_i_i]]] << 24 >> 24 | 0) != (45 << 24 >> 24 | 0)) {
  11378.         label = 1288;
  11379.         break;
  11380.       }
  11381.       var $28 = HEAP[$pp_addr_i_i_i];
  11382.       HEAP[$28] = HEAP[$28] + 1 | 0;
  11383.       HEAP[$retval_i_i_i] = 1;
  11384.       var $30 = 1;
  11385.       break;
  11386.     }
  11387.   } while (0);
  11388.   if (label == 1288) {
  11389.     HEAP[$retval_i_i_i] = 0;
  11390.     var $30 = 0;
  11391.   }
  11392.   var $30;
  11393.   if (($30 | 0) != 0) {
  11394.     HEAP[HEAP[$feature_addr_i_i] + 4 | 0] = 0;
  11395.   } else {
  11396.     var $36 = HEAP[$end_addr_i_i];
  11397.     HEAP[$pp_addr_i2_i_i] = HEAP[$pp_addr_i_i];
  11398.     HEAP[$end_addr_i3_i_i] = $36;
  11399.     __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i2_i_i], HEAP[$end_addr_i3_i_i]);
  11400.     do {
  11401.       if ((HEAP[HEAP[$pp_addr_i2_i_i]] | 0) == (HEAP[$end_addr_i3_i_i] | 0)) {
  11402.         label = 1294;
  11403.       } else {
  11404.         if ((HEAP[HEAP[HEAP[$pp_addr_i2_i_i]]] << 24 >> 24 | 0) != (43 << 24 >> 24 | 0)) {
  11405.           label = 1294;
  11406.           break;
  11407.         }
  11408.         var $49 = HEAP[$pp_addr_i2_i_i];
  11409.         HEAP[$49] = HEAP[$49] + 1 | 0;
  11410.         HEAP[$retval_i1_i_i] = 1;
  11411.         break;
  11412.       }
  11413.     } while (0);
  11414.     if (label == 1294) {
  11415.       HEAP[$retval_i1_i_i] = 0;
  11416.     }
  11417.     HEAP[HEAP[$feature_addr_i_i] + 4 | 0] = 1;
  11418.   }
  11419.   var $59 = HEAP[$end_addr_i];
  11420.   var $60 = HEAP[$feature_addr_i];
  11421.   HEAP[$pp_addr_i1_i] = HEAP[$pp_addr_i];
  11422.   HEAP[$end_addr_i2_i] = $59;
  11423.   HEAP[$feature_addr_i3_i] = $60;
  11424.   HEAP[$p_i_i] = HEAP[HEAP[$pp_addr_i1_i]];
  11425.   __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i1_i], HEAP[$end_addr_i2_i]);
  11426.   L1683 : do {
  11427.     if (HEAP[HEAP[$pp_addr_i1_i]] >>> 0 < HEAP[$end_addr_i2_i] >>> 0) {
  11428.       while (1) {
  11429.         $c_i_i = HEAP[HEAP[HEAP[$pp_addr_i1_i]]];
  11430.         do {
  11431.           if (97 <= ($c_i_i << 24 >> 24 | 0)) {
  11432.             if (($c_i_i << 24 >> 24 | 0) <= 122) {
  11433.               break;
  11434.             } else {
  11435.               label = 1300;
  11436.               break;
  11437.             }
  11438.           } else {
  11439.             label = 1300;
  11440.           }
  11441.         } while (0);
  11442.         do {
  11443.           if (label == 1300) {
  11444.             label = 0;
  11445.             if (65 <= ($c_i_i << 24 >> 24 | 0)) {
  11446.               if (($c_i_i << 24 >> 24 | 0) <= 90) {
  11447.                 break;
  11448.               }
  11449.             }
  11450.             if (!(48 <= ($c_i_i << 24 >> 24 | 0))) {
  11451.               break L1683;
  11452.             }
  11453.             if (!(($c_i_i << 24 >> 24 | 0) <= 57)) {
  11454.               break L1683;
  11455.             }
  11456.           }
  11457.         } while (0);
  11458.         var $82 = HEAP[$pp_addr_i1_i];
  11459.         HEAP[$82] = HEAP[$82] + 1 | 0;
  11460.         if (HEAP[HEAP[$pp_addr_i1_i]] >>> 0 >= HEAP[$end_addr_i2_i] >>> 0) {
  11461.           break L1683;
  11462.         }
  11463.       }
  11464.     }
  11465.   } while (0);
  11466.   if ((HEAP[$p_i_i] | 0) == (HEAP[HEAP[$pp_addr_i1_i]] | 0)) {
  11467.     HEAP[$retval_i_i] = 0;
  11468.     var $95 = 0;
  11469.   } else {
  11470.     var $call_i_i = _hb_tag_from_string(HEAP[$p_i_i], HEAP[HEAP[$pp_addr_i1_i]] - HEAP[$p_i_i] | 0);
  11471.     HEAP[HEAP[$feature_addr_i3_i] | 0] = $call_i_i;
  11472.     HEAP[$retval_i_i] = 1;
  11473.     var $95 = 1;
  11474.   }
  11475.   var $95;
  11476.   if (($95 | 0) == 0) {
  11477.     var $227 = 0;
  11478.     var $227;
  11479.     var $conv_i = $227 & 1;
  11480.     var $228 = $pp_addr_i;
  11481.     var $229 = $end_addr_i;
  11482.     var $230 = $feature_addr_i;
  11483.     STACKTOP = __stackBase__;
  11484.     return $conv_i;
  11485.   }
  11486.   var $102 = HEAP[$end_addr_i];
  11487.   var $103 = HEAP[$feature_addr_i];
  11488.   HEAP[$pp_addr_i14_i] = HEAP[$pp_addr_i];
  11489.   HEAP[$end_addr_i15_i] = $102;
  11490.   HEAP[$feature_addr_i16_i] = $103;
  11491.   __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i14_i], HEAP[$end_addr_i15_i]);
  11492.   HEAP[HEAP[$feature_addr_i16_i] + 8 | 0] = 0;
  11493.   HEAP[HEAP[$feature_addr_i16_i] + 12 | 0] = -1;
  11494.   var $114 = HEAP[$end_addr_i15_i];
  11495.   HEAP[$pp_addr_i_i10_i] = HEAP[$pp_addr_i14_i];
  11496.   HEAP[$end_addr_i_i11_i] = $114;
  11497.   __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i_i10_i], HEAP[$end_addr_i_i11_i]);
  11498.   do {
  11499.     if ((HEAP[HEAP[$pp_addr_i_i10_i]] | 0) == (HEAP[$end_addr_i_i11_i] | 0)) {
  11500.       label = 1311;
  11501.     } else {
  11502.       if ((HEAP[HEAP[HEAP[$pp_addr_i_i10_i]]] << 24 >> 24 | 0) != (91 << 24 >> 24 | 0)) {
  11503.         label = 1311;
  11504.         break;
  11505.       }
  11506.       var $127 = HEAP[$pp_addr_i_i10_i];
  11507.       HEAP[$127] = HEAP[$127] + 1 | 0;
  11508.       HEAP[$retval_i_i9_i] = 1;
  11509.       var $129 = 1;
  11510.       break;
  11511.     }
  11512.   } while (0);
  11513.   if (label == 1311) {
  11514.     HEAP[$retval_i_i9_i] = 0;
  11515.     var $129 = 0;
  11516.   }
  11517.   var $129;
  11518.   if (($129 | 0) != 0) {
  11519.     var $call3_i_i = __ZL10parse_uintPPKcS0_Pj(HEAP[$pp_addr_i14_i], HEAP[$end_addr_i15_i], HEAP[$feature_addr_i16_i] + 8 | 0);
  11520.     HEAP[$has_start_i_i] = $call3_i_i;
  11521.     var $137 = HEAP[$end_addr_i15_i];
  11522.     HEAP[$pp_addr_i2_i6_i] = HEAP[$pp_addr_i14_i];
  11523.     HEAP[$end_addr_i3_i7_i] = $137;
  11524.     __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i2_i6_i], HEAP[$end_addr_i3_i7_i]);
  11525.     do {
  11526.       if ((HEAP[HEAP[$pp_addr_i2_i6_i]] | 0) == (HEAP[$end_addr_i3_i7_i] | 0)) {
  11527.         label = 1317;
  11528.       } else {
  11529.         if ((HEAP[HEAP[HEAP[$pp_addr_i2_i6_i]]] << 24 >> 24 | 0) != (58 << 24 >> 24 | 0)) {
  11530.           label = 1317;
  11531.           break;
  11532.         }
  11533.         var $150 = HEAP[$pp_addr_i2_i6_i];
  11534.         HEAP[$150] = HEAP[$150] + 1 | 0;
  11535.         HEAP[$retval_i1_i5_i] = 1;
  11536.         var $152 = 1;
  11537.         break;
  11538.       }
  11539.     } while (0);
  11540.     if (label == 1317) {
  11541.       HEAP[$retval_i1_i5_i] = 0;
  11542.       var $152 = 0;
  11543.     }
  11544.     var $152;
  11545.     do {
  11546.       if (($152 | 0) != 0) {
  11547.         __ZL10parse_uintPPKcS0_Pj(HEAP[$pp_addr_i14_i], HEAP[$end_addr_i15_i], HEAP[$feature_addr_i16_i] + 12 | 0);
  11548.       } else {
  11549.         if ((HEAP[$has_start_i_i] | 0) == 0) {
  11550.           break;
  11551.         }
  11552.         HEAP[HEAP[$feature_addr_i16_i] + 12 | 0] = HEAP[HEAP[$feature_addr_i16_i] + 8 | 0] + 1 | 0;
  11553.       }
  11554.     } while (0);
  11555.     var $164 = HEAP[$end_addr_i15_i];
  11556.     HEAP[$pp_addr_i15_i_i] = HEAP[$pp_addr_i14_i];
  11557.     HEAP[$end_addr_i16_i_i] = $164;
  11558.     __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i15_i_i], HEAP[$end_addr_i16_i_i]);
  11559.     do {
  11560.       if ((HEAP[HEAP[$pp_addr_i15_i_i]] | 0) == (HEAP[$end_addr_i16_i_i] | 0)) {
  11561.         label = 1325;
  11562.       } else {
  11563.         if ((HEAP[HEAP[HEAP[$pp_addr_i15_i_i]]] << 24 >> 24 | 0) != (93 << 24 >> 24 | 0)) {
  11564.           label = 1325;
  11565.           break;
  11566.         }
  11567.         var $177 = HEAP[$pp_addr_i15_i_i];
  11568.         HEAP[$177] = HEAP[$177] + 1 | 0;
  11569.         HEAP[$retval_i14_i_i] = 1;
  11570.         break;
  11571.       }
  11572.     } while (0);
  11573.     if (label == 1325) {
  11574.       HEAP[$retval_i14_i_i] = 0;
  11575.     }
  11576.     var $179 = HEAP[$retval_i14_i_i];
  11577.     HEAP[$retval_i13_i] = $179;
  11578.     var $183 = $179;
  11579.   } else {
  11580.     HEAP[$retval_i13_i] = 1;
  11581.     var $183 = 1;
  11582.   }
  11583.   var $183;
  11584.   if (($183 | 0) == 0) {
  11585.     var $227 = 0;
  11586.     var $227;
  11587.     var $conv_i = $227 & 1;
  11588.     var $228 = $pp_addr_i;
  11589.     var $229 = $end_addr_i;
  11590.     var $230 = $feature_addr_i;
  11591.     STACKTOP = __stackBase__;
  11592.     return $conv_i;
  11593.   }
  11594.   var $190 = HEAP[$end_addr_i];
  11595.   var $191 = HEAP[$feature_addr_i];
  11596.   HEAP[$pp_addr_i43_i] = HEAP[$pp_addr_i];
  11597.   HEAP[$end_addr_i44_i] = $190;
  11598.   HEAP[$feature_addr_i45_i] = $191;
  11599.   var $196 = HEAP[$end_addr_i44_i];
  11600.   HEAP[$pp_addr_i_i40_i] = HEAP[$pp_addr_i43_i];
  11601.   HEAP[$end_addr_i_i41_i] = $196;
  11602.   __ZL11parse_spacePPKcS0_(HEAP[$pp_addr_i_i40_i], HEAP[$end_addr_i_i41_i]);
  11603.   do {
  11604.     if ((HEAP[HEAP[$pp_addr_i_i40_i]] | 0) == (HEAP[$end_addr_i_i41_i] | 0)) {
  11605.       label = 1331;
  11606.     } else {
  11607.       if ((HEAP[HEAP[HEAP[$pp_addr_i_i40_i]]] << 24 >> 24 | 0) != (61 << 24 >> 24 | 0)) {
  11608.         label = 1331;
  11609.         break;
  11610.       }
  11611.       var $209 = HEAP[$pp_addr_i_i40_i];
  11612.       HEAP[$209] = HEAP[$209] + 1 | 0;
  11613.       HEAP[$retval_i_i39_i] = 1;
  11614.       var $211 = 1;
  11615.       break;
  11616.     }
  11617.   } while (0);
  11618.   if (label == 1331) {
  11619.     HEAP[$retval_i_i39_i] = 0;
  11620.     var $211 = 0;
  11621.   }
  11622.   var $211;
  11623.   do {
  11624.     if (($211 | 0) != 0) {
  11625.       if ((__ZL10parse_uintPPKcS0_Pj(HEAP[$pp_addr_i43_i], HEAP[$end_addr_i44_i], HEAP[$feature_addr_i45_i] + 4 | 0) | 0) != 0) {
  11626.         break;
  11627.       } else {
  11628.         var $227 = 0;
  11629.       }
  11630.       var $227;
  11631.       var $conv_i = $227 & 1;
  11632.       var $228 = $pp_addr_i;
  11633.       var $229 = $end_addr_i;
  11634.       var $230 = $feature_addr_i;
  11635.       STACKTOP = __stackBase__;
  11636.       return $conv_i;
  11637.     } else {
  11638.     }
  11639.   } while (0);
  11640.   var $227 = (HEAP[HEAP[$pp_addr_i]] | 0) == (HEAP[$end_addr_i] | 0);
  11641.   var $227;
  11642.   var $conv_i = $227 & 1;
  11643.   var $228 = $pp_addr_i;
  11644.   var $229 = $end_addr_i;
  11645.   var $230 = $feature_addr_i;
  11646.   STACKTOP = __stackBase__;
  11647.   return $conv_i;
  11648. }
  11649. function _hb_feature_to_string($feature, $buf, $size) {
  11650.   var label = 0;
  11651.   var __stackBase__ = STACKTOP;
  11652.   STACKTOP = STACKTOP + 152 | 0;
  11653.   var $a_addr_i = __stackBase__;
  11654.   var $b_addr_i = __stackBase__ + 4;
  11655.   var $tag_addr_i = __stackBase__ + 8;
  11656.   var $buf_addr_i = __stackBase__ + 12;
  11657.   var $feature_addr;
  11658.   var $buf_addr;
  11659.   var $size_addr;
  11660.   var $s = __stackBase__ + 16;
  11661.   var $len = __stackBase__ + 144;
  11662.   var $ref_tmp = __stackBase__ + 148;
  11663.   $feature_addr = $feature;
  11664.   $buf_addr = $buf;
  11665.   $size_addr = $size;
  11666.   if (($size_addr | 0) == 0) {
  11667.     STACKTOP = __stackBase__;
  11668.     return;
  11669.   }
  11670.   HEAP[$len] = 0;
  11671.   if ((HEAP[$feature_addr + 4 | 0] | 0) == 0) {
  11672.     var $3 = HEAP[$len];
  11673.     HEAP[$len] = $3 + 1 | 0;
  11674.     HEAP[$s + $3 | 0] = 45;
  11675.   }
  11676.   var $add_ptr = $s + HEAP[$len] | 0;
  11677.   HEAP[$tag_addr_i] = HEAP[$feature_addr | 0];
  11678.   HEAP[$buf_addr_i] = $add_ptr;
  11679.   HEAP[HEAP[$buf_addr_i]] = HEAP[$tag_addr_i] >>> 24 & 255;
  11680.   HEAP[HEAP[$buf_addr_i] + 1 | 0] = HEAP[$tag_addr_i] >>> 16 & 255;
  11681.   HEAP[HEAP[$buf_addr_i] + 2 | 0] = HEAP[$tag_addr_i] >>> 8 & 255;
  11682.   HEAP[HEAP[$buf_addr_i] + 3 | 0] = HEAP[$tag_addr_i] & 255;
  11683.   var $add = HEAP[$len] + 4 | 0;
  11684.   HEAP[$len] = $add;
  11685.   L1752 : do {
  11686.     if (($add | 0) != 0) {
  11687.       while (1) {
  11688.         if ((HEAP[$s + (HEAP[$len] - 1) | 0] << 24 >> 24 | 0) != 32) {
  11689.           break L1752;
  11690.         }
  11691.         var $dec = HEAP[$len] - 1 | 0;
  11692.         HEAP[$len] = $dec;
  11693.         if (($dec | 0) == 0) {
  11694.           break L1752;
  11695.         }
  11696.       }
  11697.     }
  11698.   } while (0);
  11699.   do {
  11700.     if ((HEAP[$feature_addr + 8 | 0] | 0) != 0) {
  11701.       label = 1350;
  11702.     } else {
  11703.       if ((HEAP[$feature_addr + 12 | 0] | 0) != -1) {
  11704.         label = 1350;
  11705.         break;
  11706.       } else {
  11707.         break;
  11708.       }
  11709.     }
  11710.   } while (0);
  11711.   if (label == 1350) {
  11712.     var $27 = HEAP[$len];
  11713.     HEAP[$len] = $27 + 1 | 0;
  11714.     HEAP[$s + $27 | 0] = 91;
  11715.     if ((HEAP[$feature_addr + 8 | 0] | 0) != 0) {
  11716.       var $call18 = _snprintf($s + HEAP[$len] | 0, 128 - HEAP[$len] | 0, 102176, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP[tempInt] = HEAP[$feature_addr + 8 | 0], tempInt));
  11717.       HEAP[$len] = HEAP[$len] + $call18 | 0;
  11718.     }
  11719.     do {
  11720.       if ((HEAP[$feature_addr + 12 | 0] | 0) != (HEAP[$feature_addr + 8 | 0] + 1 | 0)) {
  11721.         var $39 = HEAP[$len];
  11722.         HEAP[$len] = $39 + 1 | 0;
  11723.         HEAP[$s + $39 | 0] = 58;
  11724.         if ((HEAP[$feature_addr + 12 | 0] | 0) == -1) {
  11725.           break;
  11726.         }
  11727.         var $call36 = _snprintf($s + HEAP[$len] | 0, 128 - HEAP[$len] | 0, 102176, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP[tempInt] = HEAP[$feature_addr + 12 | 0], tempInt));
  11728.         HEAP[$len] = HEAP[$len] + $call36 | 0;
  11729.       }
  11730.     } while (0);
  11731.     var $47 = HEAP[$len];
  11732.     HEAP[$len] = $47 + 1 | 0;
  11733.     HEAP[$s + $47 | 0] = 93;
  11734.   }
  11735.   var $50 = HEAP[$len];
  11736.   if (HEAP[$feature_addr + 4 | 0] >>> 0 > 1) {
  11737.     HEAP[$len] = $50 + 1 | 0;
  11738.     HEAP[$s + $50 | 0] = 61;
  11739.     var $add54 = _snprintf($s + HEAP[$len] | 0, 128 - HEAP[$len] | 0, 102176, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP[tempInt] = HEAP[$feature_addr + 4 | 0], tempInt)) + HEAP[$len] | 0;
  11740.     HEAP[$len] = $add54;
  11741.     var $56 = $add54;
  11742.   } else {
  11743.     var $56 = $50;
  11744.   }
  11745.   var $56;
  11746.   if ($56 >>> 0 >= 128) {
  11747.     ___assert_func(103240, 197, 105832, 103152);
  11748.   }
  11749.   HEAP[$ref_tmp] = $size_addr - 1 | 0;
  11750.   HEAP[$a_addr_i] = $len;
  11751.   HEAP[$b_addr_i] = $ref_tmp;
  11752.   HEAP[$len] = HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]];
  11753.   var $70 = $buf_addr;
  11754.   var $71 = $s;
  11755.   var $72 = HEAP[$len];
  11756.   for (var $$src = $71, $$dest = $70, $$stop = $$src + $72; $$src < $$stop; $$src++, $$dest++) {
  11757.     HEAP[$$dest] = HEAP[$$src];
  11758.   }
  11759.   HEAP[$s + HEAP[$len] | 0] = 0;
  11760.   STACKTOP = __stackBase__;
  11761.   return;
  11762. }
  11763. function __ZL11parse_spacePPKcS0_($pp, $end) {
  11764.   var label = 0;
  11765.   var $c_addr_i;
  11766.   var $pp_addr;
  11767.   var $end_addr;
  11768.   $pp_addr = $pp;
  11769.   $end_addr = $end;
  11770.   if (HEAP[$pp_addr] >>> 0 >= $end_addr >>> 0) {
  11771.     return;
  11772.   }
  11773.   L1779 : while (1) {
  11774.     $c_addr_i = HEAP[HEAP[$pp_addr]];
  11775.     do {
  11776.       if (($c_addr_i & 255 | 0) != 32) {
  11777.         if (($c_addr_i & 255 | 0) == 12) {
  11778.           break;
  11779.         }
  11780.         if (($c_addr_i & 255 | 0) == 10) {
  11781.           break;
  11782.         }
  11783.         if (($c_addr_i & 255 | 0) == 13) {
  11784.           break;
  11785.         }
  11786.         if (($c_addr_i & 255 | 0) == 9) {
  11787.           break;
  11788.         }
  11789.         if (($c_addr_i & 255 | 0) != 11) {
  11790.           label = 1373;
  11791.           break L1779;
  11792.         }
  11793.       }
  11794.     } while (0);
  11795.     var $13 = $pp_addr;
  11796.     HEAP[$13] = HEAP[$13] + 1 | 0;
  11797.     if (HEAP[$pp_addr] >>> 0 >= $end_addr >>> 0) {
  11798.       label = 1374;
  11799.       break;
  11800.     }
  11801.   }
  11802.   if (label == 1373) {
  11803.     return;
  11804.   } else if (label == 1374) {
  11805.     return;
  11806.   }
  11807. }
  11808. function _hb_shape_list_shapers() {
  11809.   var label = 0;
  11810.   var $retval;
  11811.   var $shaper_list;
  11812.   var $shapers;
  11813.   var $i;
  11814.   var $2 = HEAP[131600];
  11815.   $shaper_list = $2;
  11816.   L1792 : do {
  11817.     if (($2 | 0) == 0) {
  11818.       while (1) {
  11819.         var $3 = _calloc(3, 4);
  11820.         $shaper_list = $3;
  11821.         if (($3 | 0) == 0) {
  11822.           break;
  11823.         }
  11824.         $shapers = __Z15_hb_shapers_getv();
  11825.         $i = 0;
  11826.         var $5 = $i;
  11827.         while (1) {
  11828.           var $5;
  11829.           HEAP[($i << 2) + $shaper_list | 0] = $shapers + ($5 * 20 & -1) | 0;
  11830.           var $inc = $i + 1 | 0;
  11831.           $i = $inc;
  11832.           var $10 = $i;
  11833.           if ($inc >>> 0 < 2) {
  11834.             var $5 = $10;
  11835.           } else {
  11836.             break;
  11837.           }
  11838.         }
  11839.         HEAP[($10 << 2) + $shaper_list | 0] = 0;
  11840.         var $14 = $shaper_list;
  11841.         if ((HEAP[131600] | 0) == 0) {
  11842.           label = 1382;
  11843.           break;
  11844.         }
  11845.         _free($14);
  11846.         var $17 = HEAP[131600];
  11847.         $shaper_list = $17;
  11848.         if (($17 | 0) != 0) {
  11849.           break L1792;
  11850.         }
  11851.       }
  11852.       if (label == 1382) {
  11853.         HEAP[131600] = $14;
  11854.         _atexit(80);
  11855.         break;
  11856.       }
  11857.       $retval = 111328;
  11858.       var $19 = $retval;
  11859.       return $19;
  11860.     }
  11861.   } while (0);
  11862.   $retval = $shaper_list;
  11863.   var $19 = $retval;
  11864.   return $19;
  11865. }
  11866. function __ZL23free_static_shaper_listv() {
  11867.   _free(HEAP[131600]);
  11868.   return;
  11869. }
  11870. function _hb_shape($font, $buffer, $features, $num_features) {
  11871.   _hb_shape_full($font, $buffer, $features, $num_features, 0);
  11872.   return;
  11873. }
  11874. function __ZL10parse_uintPPKcS0_Pj($pp, $end, $pv) {
  11875.   var __stackBase__ = STACKTOP;
  11876.   STACKTOP = STACKTOP + 52 | 0;
  11877.   var $a_addr_i = __stackBase__;
  11878.   var $b_addr_i = __stackBase__ + 4;
  11879.   var $retval;
  11880.   var $pp_addr;
  11881.   var $pv_addr;
  11882.   var $buf = __stackBase__ + 8;
  11883.   var $len;
  11884.   var $ref_tmp = __stackBase__ + 40;
  11885.   var $ref_tmp1 = __stackBase__ + 44;
  11886.   var $p;
  11887.   var $pend = __stackBase__ + 48;
  11888.   var $v;
  11889.   $pp_addr = $pp;
  11890.   $pv_addr = $pv;
  11891.   HEAP[$ref_tmp] = 31;
  11892.   HEAP[$ref_tmp1] = $end - HEAP[$pp_addr] | 0;
  11893.   HEAP[$a_addr_i] = $ref_tmp;
  11894.   HEAP[$b_addr_i] = $ref_tmp1;
  11895.   $len = HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]];
  11896.   _strncpy($buf | 0, HEAP[$pp_addr], $len);
  11897.   HEAP[$buf + $len | 0] = 0;
  11898.   $p = $buf | 0;
  11899.   HEAP[$pend] = $p;
  11900.   var $call5 = ___errno_location();
  11901.   HEAP[$call5] = 0;
  11902.   $v = _strtol($p, $pend, 0);
  11903.   var $call7 = ___errno_location();
  11904.   do {
  11905.     if ((HEAP[$call7] | 0) == 0) {
  11906.       if (($p | 0) == (HEAP[$pend] | 0)) {
  11907.         break;
  11908.       }
  11909.       HEAP[$pv_addr] = $v;
  11910.       var $28 = $pp_addr;
  11911.       HEAP[$28] = HEAP[$28] + (HEAP[$pend] - $p) | 0;
  11912.       $retval = 1;
  11913.       var $30 = $retval;
  11914.       STACKTOP = __stackBase__;
  11915.       return $30;
  11916.     }
  11917.   } while (0);
  11918.   $retval = 0;
  11919.   var $30 = $retval;
  11920.   STACKTOP = __stackBase__;
  11921.   return $30;
  11922. }
  11923. function _hb_shape_full($font, $buffer, $features, $num_features, $shaper_list) {
  11924.   var $retval;
  11925.   var $font_addr;
  11926.   var $buffer_addr;
  11927.   var $features_addr;
  11928.   var $num_features_addr;
  11929.   var $shape_plan;
  11930.   var $res;
  11931.   $font_addr = $font;
  11932.   $buffer_addr = $buffer;
  11933.   $features_addr = $features;
  11934.   $num_features_addr = $num_features;
  11935.   if ((HEAP[$buffer_addr + 84 | 0] | 0) == 0) {
  11936.     $retval = 1;
  11937.     var $19 = $retval;
  11938.     return $19;
  11939.   }
  11940.   if ((HEAP[$buffer_addr + 72 | 0] | 0) != 1) {
  11941.     ___assert_func(103240, 257, 105720, 102864);
  11942.   }
  11943.   $shape_plan = _hb_shape_plan_create_cached(HEAP[$font_addr + 52 | 0], $buffer_addr + 48 | 0, $features_addr, $num_features_addr, $shaper_list);
  11944.   $res = _hb_shape_plan_execute($shape_plan, $font_addr, $buffer_addr, $features_addr, $num_features_addr);
  11945.   _hb_shape_plan_destroy($shape_plan);
  11946.   if (($res | 0) != 0) {
  11947.     HEAP[$buffer_addr + 72 | 0] = 2;
  11948.   }
  11949.   $retval = $res;
  11950.   var $19 = $retval;
  11951.   return $19;
  11952. }
  11953. function _hb_shape_plan_create($face, $props, $user_features, $num_user_features, $shaper_list) {
  11954.   var label = 0;
  11955.   var __stackBase__ = STACKTOP;
  11956.   STACKTOP = STACKTOP + 180 | 0;
  11957.   var $this_addr_i_i_i_i6 = __stackBase__;
  11958.   var $this_addr_i_i_i7 = __stackBase__ + 4;
  11959.   var $obj_addr_i_i8 = __stackBase__ + 8;
  11960.   var $face_addr_i = __stackBase__ + 12;
  11961.   var $what_addr_i_i_i_i = __stackBase__ + 16;
  11962.   var $obj_addr_i_i_i_i = __stackBase__ + 20;
  11963.   var $func_addr_i_i_i_i = __stackBase__ + 24;
  11964.   var $level_addr_i_i_i_i = __stackBase__ + 28;
  11965.   var $level_dir_addr_i_i_i_i = __stackBase__ + 32;
  11966.   var $message_addr_i_i_i_i = __stackBase__ + 36;
  11967.   var $this_addr_i_i1_i = __stackBase__ + 40;
  11968.   var $function_addr_i_i_i = __stackBase__ + 44;
  11969.   var $obj_addr_i_i = __stackBase__ + 48;
  11970.   var $function_addr_i_i = __stackBase__ + 52;
  11971.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 56;
  11972.   var $this_addr_i1_i_i_i_i = __stackBase__ + 60;
  11973.   var $this_addr_i_i_i_i_i = __stackBase__ + 64;
  11974.   var $this_addr_i1_i_i_i = __stackBase__ + 68;
  11975.   var $this_addr_i_i_i_i = __stackBase__ + 72;
  11976.   var $v_addr_i_i_i_i = __stackBase__ + 76;
  11977.   var $this_addr_i_i_i1 = __stackBase__ + 80;
  11978.   var $size_addr_i_i = __stackBase__ + 84;
  11979.   var $obj_i_i = __stackBase__ + 88;
  11980.   var $obj_i = __stackBase__ + 92;
  11981.   var $this_addr_i_i_i = __stackBase__ + 96;
  11982.   var $this_addr_i_i = __stackBase__ + 100;
  11983.   var $obj_addr_i = __stackBase__ + 104;
  11984.   var $data_addr_i_i42_i = __stackBase__ + 108;
  11985.   var $face_addr_i_i43_i = __stackBase__ + 112;
  11986.   var $face_addr_i44_i = __stackBase__ + 116;
  11987.   var $data_i45_i = __stackBase__ + 120;
  11988.   var $face_addr_i19_i = __stackBase__ + 124;
  11989.   var $data_i20_i = __stackBase__ + 128;
  11990.   var $face_addr_i1_i = __stackBase__ + 132;
  11991.   var $data_i2_i = __stackBase__ + 136;
  11992.   var $data_addr_i_i_i = __stackBase__ + 140;
  11993.   var $face_addr_i_i_i = __stackBase__ + 144;
  11994.   var $face_addr_i_i = __stackBase__ + 148;
  11995.   var $data_i_i = __stackBase__ + 152;
  11996.   var $shape_plan_addr_i = __stackBase__ + 156;
  11997.   var $user_features_addr_i = __stackBase__ + 160;
  11998.   var $num_user_features_addr_i = __stackBase__ + 164;
  11999.   var $shaper_list_addr_i = __stackBase__ + 168;
  12000.   var $shapers_i = __stackBase__ + 172;
  12001.   var $i_i = __stackBase__ + 176;
  12002.   var $retval;
  12003.   var $face_addr;
  12004.   var $props_addr;
  12005.   var $user_features_addr;
  12006.   var $num_user_features_addr;
  12007.   var $shaper_list_addr;
  12008.   var $shape_plan;
  12009.   $face_addr = $face;
  12010.   $props_addr = $props;
  12011.   $user_features_addr = $user_features;
  12012.   $num_user_features_addr = $num_user_features;
  12013.   $shaper_list_addr = $shaper_list;
  12014.   if ((HEAP[$props_addr | 0] | 0) == 0) {
  12015.     ___assert_func(104008, 93, 105576, 103904);
  12016.   }
  12017.   if (($face_addr | 0) == 0) {
  12018.     $face_addr = 139072;
  12019.   }
  12020.   do {
  12021.     if (($props_addr | 0) != 0) {
  12022.       HEAP[$obj_addr_i] = $face_addr;
  12023.       HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  12024.       HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  12025.       if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) == -1) {
  12026.         break;
  12027.       }
  12028.       HEAP[$size_addr_i_i] = 88;
  12029.       var $17 = _calloc(1, HEAP[$size_addr_i_i]);
  12030.       HEAP[$obj_i_i] = $17;
  12031.       if ((HEAP[$obj_i_i] | 0) != 0) {
  12032.         HEAP[$this_addr_i_i_i1] = HEAP[$obj_i_i];
  12033.         var $this1_i_i_i3 = HEAP[$this_addr_i_i_i1];
  12034.         HEAP[$this_addr_i_i_i_i] = $this1_i_i_i3 | 0;
  12035.         HEAP[$v_addr_i_i_i_i] = 1;
  12036.         HEAP[HEAP[$this_addr_i_i_i_i] | 0] = HEAP[$v_addr_i_i_i_i];
  12037.         HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i3 + 4 | 0;
  12038.         var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  12039.         HEAP[$this_addr_i_i_i_i_i] = $this1_i2_i_i_i | 0;
  12040.         HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] = 0;
  12041.         HEAP[$this_addr_i1_i_i_i_i] = $this1_i2_i_i_i + 4 | 0;
  12042.         HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  12043.         var $31 = HEAP[$this_addr_i_i_i_i_i_i];
  12044.         for (var $$dest = $31, $$stop = $$dest + 36; $$dest < $$stop; $$dest++) {
  12045.           HEAP[$$dest] = 0;
  12046.         }
  12047.       }
  12048.       HEAP[$obj_i] = HEAP[$obj_i_i];
  12049.       HEAP[$obj_addr_i_i] = HEAP[$obj_i];
  12050.       HEAP[$function_addr_i_i] = 110440;
  12051.       var $header_i_i = HEAP[$obj_addr_i_i] | 0;
  12052.       var $45 = HEAP[$function_addr_i_i];
  12053.       HEAP[$this_addr_i_i1_i] = $header_i_i;
  12054.       HEAP[$function_addr_i_i_i] = $45;
  12055.       if (($header_i_i | 0) != 0) {
  12056.         HEAP[$what_addr_i_i_i_i] = 104072;
  12057.         HEAP[$obj_addr_i_i_i_i] = $header_i_i;
  12058.         HEAP[$func_addr_i_i_i_i] = 0;
  12059.         HEAP[$level_addr_i_i_i_i] = 0;
  12060.         HEAP[$level_dir_addr_i_i_i_i] = 0;
  12061.         HEAP[$message_addr_i_i_i_i] = 104056;
  12062.       }
  12063.       var $66 = HEAP[$obj_i];
  12064.       $shape_plan = $66;
  12065.       if (($66 | 0) == 0) {
  12066.         $retval = 111232;
  12067.         var $277 = $retval;
  12068.         STACKTOP = __stackBase__;
  12069.         return $277;
  12070.       }
  12071.       HEAP[$face_addr_i] = $face_addr;
  12072.       HEAP[$obj_addr_i_i8] = HEAP[$face_addr_i];
  12073.       HEAP[$this_addr_i_i_i7] = HEAP[$obj_addr_i_i8] | 0;
  12074.       HEAP[$this_addr_i_i_i_i6] = HEAP[$this_addr_i_i_i7] | 0;
  12075.       if ((HEAP[HEAP[$this_addr_i_i_i_i6] | 0] | 0) != -1) {
  12076.         HEAP[HEAP[$face_addr_i] + 44 | 0] = 1;
  12077.       }
  12078.       HEAP[$shape_plan + 44 | 0] = ($shaper_list_addr | 0) == 0 & 1;
  12079.       var $call12 = _hb_face_reference($face_addr);
  12080.       HEAP[$shape_plan + 48 | 0] = $call12;
  12081.       var $87 = $shape_plan + 52 | 0;
  12082.       var $88 = $props_addr;
  12083.       for (var $$src = $88, $$dest = $87, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  12084.         HEAP[$$dest] = HEAP[$$src];
  12085.       }
  12086.       HEAP[$shape_plan_addr_i] = $shape_plan;
  12087.       HEAP[$user_features_addr_i] = $user_features_addr;
  12088.       HEAP[$num_user_features_addr_i] = $num_user_features_addr;
  12089.       HEAP[$shaper_list_addr_i] = $shaper_list_addr;
  12090.       var $call_i = __Z15_hb_shapers_getv();
  12091.       HEAP[$shapers_i] = $call_i;
  12092.       L1850 : do {
  12093.         if ((HEAP[$shaper_list_addr_i] | 0) != 0) {
  12094.           if ((HEAP[HEAP[$shaper_list_addr_i]] | 0) == 0) {
  12095.             break;
  12096.           }
  12097.           L1853 : while (1) {
  12098.             L1855 : do {
  12099.               if (0 == (_strcmp(HEAP[HEAP[$shaper_list_addr_i]], 102568) | 0)) {
  12100.                 HEAP[$face_addr_i44_i] = HEAP[HEAP[$shape_plan_addr_i] + 48 | 0];
  12101.                 var $206 = HEAP[HEAP[$face_addr_i44_i] + 72 | 0];
  12102.                 HEAP[$data_i45_i] = $206;
  12103.                 L1865 : do {
  12104.                   if (($206 | 0) == 0) {
  12105.                     while (1) {
  12106.                       HEAP[$face_addr_i_i43_i] = HEAP[$face_addr_i44_i];
  12107.                       var $call_i_i50_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i43_i]);
  12108.                       HEAP[$data_i45_i] = $call_i_i50_i;
  12109.                       if (($call_i_i50_i | 0) == 0) {
  12110.                         HEAP[$data_i45_i] = -1;
  12111.                       }
  12112.                       var $213 = HEAP[$data_i45_i];
  12113.                       if ((HEAP[HEAP[$face_addr_i44_i] + 72 | 0] | 0) == 0) {
  12114.                         break;
  12115.                       }
  12116.                       do {
  12117.                         if (($213 | 0) != 0) {
  12118.                           if ((HEAP[$data_i45_i] | 0) == -1) {
  12119.                             break;
  12120.                           }
  12121.                           if ((HEAP[$data_i45_i] | 0) == 1) {
  12122.                             break;
  12123.                           }
  12124.                           HEAP[$data_addr_i_i42_i] = HEAP[$data_i45_i];
  12125.                           __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i42_i]);
  12126.                         }
  12127.                       } while (0);
  12128.                       var $224 = HEAP[HEAP[$face_addr_i44_i] + 72 | 0];
  12129.                       HEAP[$data_i45_i] = $224;
  12130.                       if (($224 | 0) != 0) {
  12131.                         break L1865;
  12132.                       }
  12133.                     }
  12134.                     HEAP[HEAP[$face_addr_i44_i] + 72 | 0] = $213;
  12135.                     if ((HEAP[$data_i45_i] | 0) == 0) {
  12136.                       break L1855;
  12137.                     }
  12138.                   }
  12139.                 } while (0);
  12140.                 if ((HEAP[$data_i45_i] | 0) == -1 ^ 1) {
  12141.                   label = 1459;
  12142.                   break L1853;
  12143.                 }
  12144.               } else {
  12145.                 if (0 != (_strcmp(HEAP[HEAP[$shaper_list_addr_i]], 102472) | 0)) {
  12146.                   break;
  12147.                 }
  12148.                 HEAP[$face_addr_i19_i] = HEAP[HEAP[$shape_plan_addr_i] + 48 | 0];
  12149.                 var $246 = HEAP[HEAP[$face_addr_i19_i] + 76 | 0];
  12150.                 HEAP[$data_i20_i] = $246;
  12151.                 L1858 : do {
  12152.                   if (($246 | 0) == 0) {
  12153.                     while (1) {
  12154.                       HEAP[$data_i20_i] = 1;
  12155.                       var $251 = HEAP[$data_i20_i];
  12156.                       if ((HEAP[HEAP[$face_addr_i19_i] + 76 | 0] | 0) == 0) {
  12157.                         break;
  12158.                       }
  12159.                       var $256 = HEAP[HEAP[$face_addr_i19_i] + 76 | 0];
  12160.                       HEAP[$data_i20_i] = $256;
  12161.                       if (($256 | 0) != 0) {
  12162.                         break L1858;
  12163.                       }
  12164.                     }
  12165.                     HEAP[HEAP[$face_addr_i19_i] + 76 | 0] = $251;
  12166.                     if ((HEAP[$data_i20_i] | 0) == 0) {
  12167.                       break L1855;
  12168.                     }
  12169.                   }
  12170.                 } while (0);
  12171.                 if ((HEAP[$data_i20_i] | 0) == -1 ^ 1) {
  12172.                   label = 1466;
  12173.                   break L1853;
  12174.                 }
  12175.               }
  12176.             } while (0);
  12177.             HEAP[$shaper_list_addr_i] = HEAP[$shaper_list_addr_i] + 4 | 0;
  12178.             if ((HEAP[HEAP[$shaper_list_addr_i]] | 0) == 0) {
  12179.               break L1850;
  12180.             }
  12181.           }
  12182.           if (label == 1459) {
  12183.             var $call33_i = __hb_ot_shaper_shape_plan_data_create(HEAP[$shape_plan_addr_i], HEAP[$user_features_addr_i], HEAP[$num_user_features_addr_i]);
  12184.             HEAP[HEAP[$shape_plan_addr_i] + 80 | 0] = $call33_i;
  12185.             HEAP[HEAP[$shape_plan_addr_i] + 72 | 0] = 70;
  12186.             HEAP[HEAP[$shape_plan_addr_i] + 76 | 0] = 102568;
  12187.             break;
  12188.           } else if (label == 1466) {
  12189.             HEAP[HEAP[$shape_plan_addr_i] + 84 | 0] = 1;
  12190.             HEAP[HEAP[$shape_plan_addr_i] + 72 | 0] = 144;
  12191.             HEAP[HEAP[$shape_plan_addr_i] + 76 | 0] = 102472;
  12192.             break;
  12193.           }
  12194.         } else {
  12195.           HEAP[$i_i] = 0;
  12196.           L1884 : while (1) {
  12197.             L1886 : do {
  12198.               if ((HEAP[HEAP[$shapers_i] + (HEAP[$i_i] * 20 & -1) + 16 | 0] | 0) == 70) {
  12199.                 HEAP[$face_addr_i_i] = HEAP[HEAP[$shape_plan_addr_i] + 48 | 0];
  12200.                 var $135 = HEAP[HEAP[$face_addr_i_i] + 72 | 0];
  12201.                 HEAP[$data_i_i] = $135;
  12202.                 L1896 : do {
  12203.                   if (($135 | 0) == 0) {
  12204.                     while (1) {
  12205.                       HEAP[$face_addr_i_i_i] = HEAP[$face_addr_i_i];
  12206.                       var $call_i_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i_i]);
  12207.                       HEAP[$data_i_i] = $call_i_i_i;
  12208.                       if (($call_i_i_i | 0) == 0) {
  12209.                         HEAP[$data_i_i] = -1;
  12210.                       }
  12211.                       var $142 = HEAP[$data_i_i];
  12212.                       if ((HEAP[HEAP[$face_addr_i_i] + 72 | 0] | 0) == 0) {
  12213.                         break;
  12214.                       }
  12215.                       do {
  12216.                         if (($142 | 0) != 0) {
  12217.                           if ((HEAP[$data_i_i] | 0) == -1) {
  12218.                             break;
  12219.                           }
  12220.                           if ((HEAP[$data_i_i] | 0) == 1) {
  12221.                             break;
  12222.                           }
  12223.                           HEAP[$data_addr_i_i_i] = HEAP[$data_i_i];
  12224.                           __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i_i]);
  12225.                         }
  12226.                       } while (0);
  12227.                       var $153 = HEAP[HEAP[$face_addr_i_i] + 72 | 0];
  12228.                       HEAP[$data_i_i] = $153;
  12229.                       if (($153 | 0) != 0) {
  12230.                         break L1896;
  12231.                       }
  12232.                     }
  12233.                     HEAP[HEAP[$face_addr_i_i] + 72 | 0] = $142;
  12234.                     if ((HEAP[$data_i_i] | 0) == 0) {
  12235.                       break L1886;
  12236.                     }
  12237.                   }
  12238.                 } while (0);
  12239.                 if ((HEAP[$data_i_i] | 0) == -1 ^ 1) {
  12240.                   label = 1438;
  12241.                   break L1884;
  12242.                 }
  12243.               } else {
  12244.                 if ((HEAP[HEAP[$shapers_i] + (HEAP[$i_i] * 20 & -1) + 16 | 0] | 0) != 144) {
  12245.                   break;
  12246.                 }
  12247.                 HEAP[$face_addr_i1_i] = HEAP[HEAP[$shape_plan_addr_i] + 48 | 0];
  12248.                 var $176 = HEAP[HEAP[$face_addr_i1_i] + 76 | 0];
  12249.                 HEAP[$data_i2_i] = $176;
  12250.                 L1889 : do {
  12251.                   if (($176 | 0) == 0) {
  12252.                     while (1) {
  12253.                       HEAP[$data_i2_i] = 1;
  12254.                       var $181 = HEAP[$data_i2_i];
  12255.                       if ((HEAP[HEAP[$face_addr_i1_i] + 76 | 0] | 0) == 0) {
  12256.                         break;
  12257.                       }
  12258.                       var $186 = HEAP[HEAP[$face_addr_i1_i] + 76 | 0];
  12259.                       HEAP[$data_i2_i] = $186;
  12260.                       if (($186 | 0) != 0) {
  12261.                         break L1889;
  12262.                       }
  12263.                     }
  12264.                     HEAP[HEAP[$face_addr_i1_i] + 76 | 0] = $181;
  12265.                     if ((HEAP[$data_i2_i] | 0) == 0) {
  12266.                       break L1886;
  12267.                     }
  12268.                   }
  12269.                 } while (0);
  12270.                 if ((HEAP[$data_i2_i] | 0) == -1 ^ 1) {
  12271.                   label = 1445;
  12272.                   break L1884;
  12273.                 }
  12274.               }
  12275.             } while (0);
  12276.             var $inc_i = HEAP[$i_i] + 1 | 0;
  12277.             HEAP[$i_i] = $inc_i;
  12278.             if ($inc_i >>> 0 >= 2) {
  12279.               break L1850;
  12280.             }
  12281.           }
  12282.           if (label == 1438) {
  12283.             var $call5_i = __hb_ot_shaper_shape_plan_data_create(HEAP[$shape_plan_addr_i], HEAP[$user_features_addr_i], HEAP[$num_user_features_addr_i]);
  12284.             HEAP[HEAP[$shape_plan_addr_i] + 80 | 0] = $call5_i;
  12285.             HEAP[HEAP[$shape_plan_addr_i] + 72 | 0] = 70;
  12286.             HEAP[HEAP[$shape_plan_addr_i] + 76 | 0] = 102568;
  12287.             break;
  12288.           } else if (label == 1445) {
  12289.             HEAP[HEAP[$shape_plan_addr_i] + 84 | 0] = 1;
  12290.             HEAP[HEAP[$shape_plan_addr_i] + 72 | 0] = 144;
  12291.             HEAP[HEAP[$shape_plan_addr_i] + 76 | 0] = 102472;
  12292.             break;
  12293.           }
  12294.         }
  12295.       } while (0);
  12296.       $retval = $shape_plan;
  12297.       var $277 = $retval;
  12298.       STACKTOP = __stackBase__;
  12299.       return $277;
  12300.     }
  12301.   } while (0);
  12302.   $retval = 111232;
  12303.   var $277 = $retval;
  12304.   STACKTOP = __stackBase__;
  12305.   return $277;
  12306. }
  12307. function _hb_shape_plan_reference($shape_plan) {
  12308.   var __stackBase__ = STACKTOP;
  12309.   STACKTOP = STACKTOP + 60 | 0;
  12310.   var $this_addr_i1_i_i = __stackBase__;
  12311.   var $this_addr_i_i_i_i = __stackBase__ + 4;
  12312.   var $this_addr_i_i1_i = __stackBase__ + 8;
  12313.   var $this_addr_i_i = __stackBase__ + 12;
  12314.   var $this_addr_i_i_i = __stackBase__ + 40;
  12315.   var $obj_addr_i_i = __stackBase__ + 48;
  12316.   var $function_addr_i_i = __stackBase__ + 52;
  12317.   var $obj_addr_i = __stackBase__ + 56;
  12318.   HEAP[$obj_addr_i] = $shape_plan;
  12319.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  12320.   HEAP[$function_addr_i_i] = 109424;
  12321.   var $6 = HEAP[$function_addr_i_i];
  12322.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  12323.   HEAP[__stackBase__ + 44] = $6;
  12324.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  12325.   if (($this1_i_i_i | 0) != 0) {
  12326.     HEAP[__stackBase__ + 16] = 104072;
  12327.     HEAP[__stackBase__ + 20] = $this1_i_i_i;
  12328.     HEAP[__stackBase__ + 24] = 0;
  12329.     HEAP[__stackBase__ + 28] = 0;
  12330.     HEAP[__stackBase__ + 32] = 0;
  12331.     HEAP[__stackBase__ + 36] = 104056;
  12332.   }
  12333.   var $header_i = HEAP[$obj_addr_i] | 0;
  12334.   HEAP[$this_addr_i_i] = $header_i;
  12335.   if (($header_i | 0) == 0) {
  12336.     var $38 = $this_addr_i_i;
  12337.     var $39 = HEAP[$obj_addr_i];
  12338.     var $40 = $obj_addr_i;
  12339.     STACKTOP = __stackBase__;
  12340.     return $39;
  12341.   }
  12342.   HEAP[$this_addr_i_i1_i] = $header_i;
  12343.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  12344.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  12345.     var $38 = $this_addr_i_i;
  12346.     var $39 = HEAP[$obj_addr_i];
  12347.     var $40 = $obj_addr_i;
  12348.     STACKTOP = __stackBase__;
  12349.     return $39;
  12350.   }
  12351.   HEAP[$this_addr_i1_i_i] = $header_i | 0;
  12352.   var $ref_count_i3_i_i = HEAP[$this_addr_i1_i_i] | 0;
  12353.   HEAP[$ref_count_i3_i_i] = HEAP[$ref_count_i3_i_i] + 1 | 0;
  12354.   var $38 = $this_addr_i_i;
  12355.   var $39 = HEAP[$obj_addr_i];
  12356.   var $40 = $obj_addr_i;
  12357.   STACKTOP = __stackBase__;
  12358.   return $39;
  12359. }
  12360. function _hb_shape_plan_destroy($shape_plan) {
  12361.   var __stackBase__ = STACKTOP;
  12362.   STACKTOP = STACKTOP + 76 | 0;
  12363.   var $this_addr_i35_i_i_i = __stackBase__;
  12364.   var $this_addr_i24_i_i_i = __stackBase__ + 4;
  12365.   var $this_addr_i12_i_i_i = __stackBase__ + 8;
  12366.   var $this_addr_i1_i_i_i = __stackBase__ + 12;
  12367.   var $this_addr_i_i_i_i = __stackBase__ + 16;
  12368.   var $this_addr_i_i_i1 = __stackBase__ + 20;
  12369.   var $this_addr_i_i = __stackBase__ + 24;
  12370.   var $plan_addr_i = __stackBase__ + 28;
  12371.   var $this_addr_i_i_i = __stackBase__ + 56;
  12372.   var $obj_addr_i_i = __stackBase__ + 64;
  12373.   var $function_addr_i_i = __stackBase__ + 68;
  12374.   var $obj_addr_i = __stackBase__ + 72;
  12375.   var $shape_plan_addr;
  12376.   $shape_plan_addr = $shape_plan;
  12377.   HEAP[$obj_addr_i] = $shape_plan_addr;
  12378.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  12379.   HEAP[$function_addr_i_i] = 109840;
  12380.   var $6 = HEAP[$function_addr_i_i];
  12381.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  12382.   HEAP[__stackBase__ + 60] = $6;
  12383.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  12384.   if (($this1_i_i_i | 0) != 0) {
  12385.     HEAP[__stackBase__ + 32] = 104072;
  12386.     HEAP[__stackBase__ + 36] = $this1_i_i_i;
  12387.     HEAP[__stackBase__ + 40] = 0;
  12388.     HEAP[__stackBase__ + 44] = 0;
  12389.     HEAP[__stackBase__ + 48] = 0;
  12390.     HEAP[__stackBase__ + 52] = 104056;
  12391.   }
  12392.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  12393.     STACKTOP = __stackBase__;
  12394.     return;
  12395.   }
  12396.   do {
  12397.     if ((HEAP[$shape_plan_addr + 80 | 0] | 0) != 0) {
  12398.       if ((HEAP[$shape_plan_addr + 80 | 0] | 0) == -1) {
  12399.         break;
  12400.       }
  12401.       if ((HEAP[$shape_plan_addr + 80 | 0] | 0) == 1) {
  12402.         break;
  12403.       }
  12404.       HEAP[$plan_addr_i] = HEAP[$shape_plan_addr + 80 | 0];
  12405.       if ((HEAP[HEAP[HEAP[$plan_addr_i] + 20 | 0] + 20 | 0] | 0) != 0) {
  12406.         FUNCTION_TABLE[HEAP[HEAP[HEAP[$plan_addr_i] + 20 | 0] + 20 | 0]](HEAP[HEAP[$plan_addr_i] + 916 | 0]);
  12407.       }
  12408.       HEAP[$this_addr_i_i] = HEAP[$plan_addr_i];
  12409.       HEAP[$this_addr_i_i_i1] = HEAP[$this_addr_i_i] + 24 | 0;
  12410.       var $this1_i_i_i2 = HEAP[$this_addr_i_i_i1];
  12411.       HEAP[$this_addr_i_i_i_i] = $this1_i_i_i2 + 16 | 0;
  12412.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  12413.       if ((HEAP[$this1_i_i_i_i + 8 | 0] | 0) != ($this1_i_i_i_i + 12 | 0)) {
  12414.         _free(HEAP[$this1_i_i_i_i + 8 | 0]);
  12415.       }
  12416.       HEAP[$this1_i_i_i_i + 8 | 0] = 0;
  12417.       HEAP[$this1_i_i_i_i | 0] = 0;
  12418.       HEAP[$this1_i_i_i_i + 4 | 0] = 0;
  12419.       HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i2 + 316 | 0;
  12420.       var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  12421.       if ((HEAP[$this1_i2_i_i_i + 8 | 0] | 0) != ($this1_i2_i_i_i + 12 | 0)) {
  12422.         _free(HEAP[$this1_i2_i_i_i + 8 | 0]);
  12423.       }
  12424.       HEAP[$this1_i2_i_i_i + 8 | 0] = 0;
  12425.       HEAP[$this1_i2_i_i_i | 0] = 0;
  12426.       HEAP[$this1_i2_i_i_i + 4 | 0] = 0;
  12427.       HEAP[$this_addr_i12_i_i_i] = $this1_i_i_i2 + 584 | 0;
  12428.       var $this1_i13_i_i_i = HEAP[$this_addr_i12_i_i_i];
  12429.       if ((HEAP[$this1_i13_i_i_i + 8 | 0] | 0) != ($this1_i13_i_i_i + 12 | 0)) {
  12430.         _free(HEAP[$this1_i13_i_i_i + 8 | 0]);
  12431.       }
  12432.       HEAP[$this1_i13_i_i_i + 8 | 0] = 0;
  12433.       HEAP[$this1_i13_i_i_i | 0] = 0;
  12434.       HEAP[$this1_i13_i_i_i + 4 | 0] = 0;
  12435.       HEAP[$this_addr_i24_i_i_i] = $this1_i_i_i2 + 852 | 0;
  12436.       var $this1_i25_i_i_i = HEAP[$this_addr_i24_i_i_i];
  12437.       if ((HEAP[$this1_i25_i_i_i + 8 | 0] | 0) != ($this1_i25_i_i_i + 12 | 0)) {
  12438.         _free(HEAP[$this1_i25_i_i_i + 8 | 0]);
  12439.       }
  12440.       HEAP[$this1_i25_i_i_i + 8 | 0] = 0;
  12441.       HEAP[$this1_i25_i_i_i | 0] = 0;
  12442.       HEAP[$this1_i25_i_i_i + 4 | 0] = 0;
  12443.       HEAP[$this_addr_i35_i_i_i] = $this1_i_i_i2 + 872 | 0;
  12444.       var $this1_i36_i_i_i = HEAP[$this_addr_i35_i_i_i];
  12445.       if ((HEAP[$this1_i36_i_i_i + 8 | 0] | 0) != ($this1_i36_i_i_i + 12 | 0)) {
  12446.         _free(HEAP[$this1_i36_i_i_i + 8 | 0]);
  12447.       }
  12448.       HEAP[$this1_i36_i_i_i + 8 | 0] = 0;
  12449.       HEAP[$this1_i36_i_i_i | 0] = 0;
  12450.       HEAP[$this1_i36_i_i_i + 4 | 0] = 0;
  12451.       _free(HEAP[$plan_addr_i]);
  12452.     }
  12453.   } while (0);
  12454.   _hb_face_destroy(HEAP[$shape_plan_addr + 48 | 0]);
  12455.   _free($shape_plan_addr);
  12456.   STACKTOP = __stackBase__;
  12457.   return;
  12458. }
  12459. function _hb_shape_plan_execute($shape_plan, $font, $buffer, $features, $num_features) {
  12460.   var __stackBase__ = STACKTOP;
  12461.   STACKTOP = STACKTOP + 60 | 0;
  12462.   var $a_addr_i = __stackBase__;
  12463.   var $b_addr_i = __stackBase__ + 4;
  12464.   var $font_addr_i19 = __stackBase__ + 8;
  12465.   var $data_i20 = __stackBase__ + 12;
  12466.   var $this_addr_i_i_i10 = __stackBase__ + 16;
  12467.   var $this_addr_i_i11 = __stackBase__ + 20;
  12468.   var $obj_addr_i12 = __stackBase__ + 24;
  12469.   var $font_addr_i = __stackBase__ + 28;
  12470.   var $data_i = __stackBase__ + 32;
  12471.   var $this_addr_i_i_i1 = __stackBase__ + 36;
  12472.   var $this_addr_i_i2 = __stackBase__ + 40;
  12473.   var $obj_addr_i3 = __stackBase__ + 44;
  12474.   var $this_addr_i_i_i = __stackBase__ + 48;
  12475.   var $this_addr_i_i = __stackBase__ + 52;
  12476.   var $obj_addr_i = __stackBase__ + 56;
  12477.   var $retval;
  12478.   var $shape_plan_addr;
  12479.   var $font_addr;
  12480.   var $buffer_addr;
  12481.   var $features_addr;
  12482.   var $num_features_addr;
  12483.   $shape_plan_addr = $shape_plan;
  12484.   $font_addr = $font;
  12485.   $buffer_addr = $buffer;
  12486.   $features_addr = $features;
  12487.   $num_features_addr = $num_features;
  12488.   HEAP[$obj_addr_i] = $shape_plan_addr;
  12489.   HEAP[$this_addr_i_i] = HEAP[$obj_addr_i] | 0;
  12490.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  12491.   do {
  12492.     if ((HEAP[HEAP[$this_addr_i_i_i] | 0] | 0) != -1) {
  12493.       HEAP[$obj_addr_i3] = $font_addr;
  12494.       HEAP[$this_addr_i_i2] = HEAP[$obj_addr_i3] | 0;
  12495.       HEAP[$this_addr_i_i_i1] = HEAP[$this_addr_i_i2] | 0;
  12496.       if ((HEAP[HEAP[$this_addr_i_i_i1] | 0] | 0) == -1) {
  12497.         break;
  12498.       }
  12499.       HEAP[$obj_addr_i12] = $buffer_addr;
  12500.       HEAP[$this_addr_i_i11] = HEAP[$obj_addr_i12] | 0;
  12501.       HEAP[$this_addr_i_i_i10] = HEAP[$this_addr_i_i11] | 0;
  12502.       if ((HEAP[HEAP[$this_addr_i_i_i10] | 0] | 0) == -1) {
  12503.         break;
  12504.       }
  12505.       if ((HEAP[$shape_plan_addr + 48 | 0] | 0) != (HEAP[$font_addr + 52 | 0] | 0)) {
  12506.         ___assert_func(104008, 187, 105456, 103120);
  12507.       }
  12508.       HEAP[$a_addr_i] = $shape_plan_addr + 52 | 0;
  12509.       HEAP[$b_addr_i] = $buffer_addr + 48 | 0;
  12510.       do {
  12511.         if ((HEAP[HEAP[$a_addr_i] | 0] | 0) == (HEAP[HEAP[$b_addr_i] | 0] | 0)) {
  12512.           if ((HEAP[HEAP[$a_addr_i] + 4 | 0] | 0) != (HEAP[HEAP[$b_addr_i] + 4 | 0] | 0)) {
  12513.             var $55 = 0;
  12514.             break;
  12515.           }
  12516.           if ((HEAP[HEAP[$a_addr_i] + 8 | 0] | 0) != (HEAP[HEAP[$b_addr_i] + 8 | 0] | 0)) {
  12517.             var $55 = 0;
  12518.             break;
  12519.           }
  12520.           if ((HEAP[HEAP[$a_addr_i] + 12 | 0] | 0) != (HEAP[HEAP[$b_addr_i] + 12 | 0] | 0)) {
  12521.             var $55 = 0;
  12522.             break;
  12523.           }
  12524.           var $55 = (HEAP[HEAP[$a_addr_i] + 16 | 0] | 0) == (HEAP[HEAP[$b_addr_i] + 16 | 0] | 0);
  12525.         } else {
  12526.           var $55 = 0;
  12527.         }
  12528.       } while (0);
  12529.       var $55;
  12530.       if (($55 & 1 | 0) == 0) {
  12531.         ___assert_func(104008, 188, 105456, 102792);
  12532.       }
  12533.       var $60 = $shape_plan_addr;
  12534.       if ((HEAP[$shape_plan_addr + 72 | 0] | 0) == 70) {
  12535.         L1979 : do {
  12536.           if ((HEAP[$60 + 80 | 0] | 0) != 0) {
  12537.             HEAP[$font_addr_i19] = $font_addr;
  12538.             var $70 = HEAP[HEAP[$font_addr_i19] + 84 | 0];
  12539.             HEAP[$data_i20] = $70;
  12540.             L1981 : do {
  12541.               if (($70 | 0) == 0) {
  12542.                 while (1) {
  12543.                   HEAP[$data_i20] = 1;
  12544.                   var $75 = HEAP[$data_i20];
  12545.                   if ((HEAP[HEAP[$font_addr_i19] + 84 | 0] | 0) == 0) {
  12546.                     break;
  12547.                   }
  12548.                   var $80 = HEAP[HEAP[$font_addr_i19] + 84 | 0];
  12549.                   HEAP[$data_i20] = $80;
  12550.                   if (($80 | 0) != 0) {
  12551.                     break L1981;
  12552.                   }
  12553.                 }
  12554.                 HEAP[HEAP[$font_addr_i19] + 84 | 0] = $75;
  12555.                 if ((HEAP[$data_i20] | 0) != 0) {
  12556.                   break;
  12557.                 }
  12558.                 var $96 = 0;
  12559.                 break L1979;
  12560.               }
  12561.             } while (0);
  12562.             if (!((HEAP[$data_i20] | 0) == -1 ^ 1)) {
  12563.               var $96 = 0;
  12564.               break;
  12565.             }
  12566.             __hb_ot_shape($shape_plan_addr, $font_addr, $buffer_addr, $features_addr, $num_features_addr);
  12567.             var $96 = 1;
  12568.           } else {
  12569.             var $96 = 0;
  12570.           }
  12571.         } while (0);
  12572.         var $96;
  12573.         $retval = $96 & 1;
  12574.         var $135 = $retval;
  12575.         STACKTOP = __stackBase__;
  12576.         return $135;
  12577.       }
  12578.       if ((HEAP[$60 + 72 | 0] | 0) != 144) {
  12579.         $retval = 0;
  12580.         var $135 = $retval;
  12581.         STACKTOP = __stackBase__;
  12582.         return $135;
  12583.       }
  12584.       L1996 : do {
  12585.         if ((HEAP[$shape_plan_addr + 84 | 0] | 0) != 0) {
  12586.           HEAP[$font_addr_i] = $font_addr;
  12587.           var $108 = HEAP[HEAP[$font_addr_i] + 88 | 0];
  12588.           HEAP[$data_i] = $108;
  12589.           L1998 : do {
  12590.             if (($108 | 0) == 0) {
  12591.               while (1) {
  12592.                 HEAP[$data_i] = 1;
  12593.                 var $113 = HEAP[$data_i];
  12594.                 if ((HEAP[HEAP[$font_addr_i] + 88 | 0] | 0) == 0) {
  12595.                   break;
  12596.                 }
  12597.                 var $118 = HEAP[HEAP[$font_addr_i] + 88 | 0];
  12598.                 HEAP[$data_i] = $118;
  12599.                 if (($118 | 0) != 0) {
  12600.                   break L1998;
  12601.                 }
  12602.               }
  12603.               HEAP[HEAP[$font_addr_i] + 88 | 0] = $113;
  12604.               if ((HEAP[$data_i] | 0) != 0) {
  12605.                 break;
  12606.               }
  12607.               var $134 = 0;
  12608.               break L1996;
  12609.             }
  12610.           } while (0);
  12611.           if (!((HEAP[$data_i] | 0) == -1 ^ 1)) {
  12612.             var $134 = 0;
  12613.             break;
  12614.           }
  12615.           __hb_fallback_shape($shape_plan_addr, $font_addr, $buffer_addr, $features_addr, $num_features_addr);
  12616.           var $134 = 1;
  12617.         } else {
  12618.           var $134 = 0;
  12619.         }
  12620.       } while (0);
  12621.       var $134;
  12622.       $retval = $134 & 1;
  12623.       var $135 = $retval;
  12624.       STACKTOP = __stackBase__;
  12625.       return $135;
  12626.     }
  12627.   } while (0);
  12628.   $retval = 0;
  12629.   var $135 = $retval;
  12630.   STACKTOP = __stackBase__;
  12631.   return $135;
  12632. }
  12633. function _hb_unicode_funcs_get_default() {
  12634.   return 104232;
  12635. }
  12636. function __ZL30hb_unicode_combining_class_nilP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  12637.   return 0;
  12638. }
  12639. function __ZL30hb_unicode_eastasian_width_nilP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  12640.   return 1;
  12641. }
  12642. function __ZL31hb_unicode_general_category_nilP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  12643.   return 7;
  12644. }
  12645. function __ZL21hb_unicode_script_nilP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  12646.   return 1517976186;
  12647. }
  12648. function __ZL22hb_unicode_compose_nilP18hb_unicode_funcs_tjjPjPv($ufuncs, $a, $b, $ab, $user_data) {
  12649.   return 0;
  12650. }
  12651. function __ZL24hb_unicode_decompose_nilP18hb_unicode_funcs_tjPjS1_Pv($ufuncs, $ab, $a, $b, $user_data) {
  12652.   return 0;
  12653. }
  12654. function __ZL38hb_unicode_decompose_compatibility_nilP18hb_unicode_funcs_tjPjPv($ufuncs, $u, $decomposed, $user_data) {
  12655.   return 0;
  12656. }
  12657. function __ZL24hb_unicode_mirroring_nilP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  12658.   return $unicode;
  12659. }
  12660. function _hb_unicode_funcs_reference($ufuncs) {
  12661.   var __stackBase__ = STACKTOP;
  12662.   STACKTOP = STACKTOP + 60 | 0;
  12663.   var $this_addr_i1_i_i = __stackBase__;
  12664.   var $this_addr_i_i_i_i = __stackBase__ + 4;
  12665.   var $this_addr_i_i1_i = __stackBase__ + 8;
  12666.   var $this_addr_i_i = __stackBase__ + 12;
  12667.   var $this_addr_i_i_i = __stackBase__ + 40;
  12668.   var $obj_addr_i_i = __stackBase__ + 48;
  12669.   var $function_addr_i_i = __stackBase__ + 52;
  12670.   var $obj_addr_i = __stackBase__ + 56;
  12671.   HEAP[$obj_addr_i] = $ufuncs;
  12672.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  12673.   HEAP[$function_addr_i_i] = 109360;
  12674.   var $6 = HEAP[$function_addr_i_i];
  12675.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  12676.   HEAP[__stackBase__ + 44] = $6;
  12677.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  12678.   if (($this1_i_i_i | 0) != 0) {
  12679.     HEAP[__stackBase__ + 16] = 104072;
  12680.     HEAP[__stackBase__ + 20] = $this1_i_i_i;
  12681.     HEAP[__stackBase__ + 24] = 0;
  12682.     HEAP[__stackBase__ + 28] = 0;
  12683.     HEAP[__stackBase__ + 32] = 0;
  12684.     HEAP[__stackBase__ + 36] = 104056;
  12685.   }
  12686.   var $header_i = HEAP[$obj_addr_i] | 0;
  12687.   HEAP[$this_addr_i_i] = $header_i;
  12688.   if (($header_i | 0) == 0) {
  12689.     var $38 = $this_addr_i_i;
  12690.     var $39 = HEAP[$obj_addr_i];
  12691.     var $40 = $obj_addr_i;
  12692.     STACKTOP = __stackBase__;
  12693.     return $39;
  12694.   }
  12695.   HEAP[$this_addr_i_i1_i] = $header_i;
  12696.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  12697.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) == -1) {
  12698.     var $38 = $this_addr_i_i;
  12699.     var $39 = HEAP[$obj_addr_i];
  12700.     var $40 = $obj_addr_i;
  12701.     STACKTOP = __stackBase__;
  12702.     return $39;
  12703.   }
  12704.   HEAP[$this_addr_i1_i_i] = $header_i | 0;
  12705.   var $ref_count_i3_i_i = HEAP[$this_addr_i1_i_i] | 0;
  12706.   HEAP[$ref_count_i3_i_i] = HEAP[$ref_count_i3_i_i] + 1 | 0;
  12707.   var $38 = $this_addr_i_i;
  12708.   var $39 = HEAP[$obj_addr_i];
  12709.   var $40 = $obj_addr_i;
  12710.   STACKTOP = __stackBase__;
  12711.   return $39;
  12712. }
  12713. function _hb_shape_plan_create_cached($face, $props, $user_features, $num_user_features, $shaper_list) {
  12714.   var label = 0;
  12715.   var __stackBase__ = STACKTOP;
  12716.   STACKTOP = STACKTOP + 68 | 0;
  12717.   var $a_addr_i_i = __stackBase__;
  12718.   var $b_addr_i_i = __stackBase__ + 4;
  12719.   var $shape_plan_addr_i = __stackBase__ + 8;
  12720.   var $proposal_addr_i = __stackBase__ + 12;
  12721.   var $face_addr_i1 = __stackBase__ + 16;
  12722.   var $data_i2 = __stackBase__ + 20;
  12723.   var $data_addr_i_i = __stackBase__ + 24;
  12724.   var $face_addr_i_i = __stackBase__ + 28;
  12725.   var $face_addr_i = __stackBase__ + 32;
  12726.   var $data_i = __stackBase__ + 36;
  12727.   var $retval;
  12728.   var $face_addr;
  12729.   var $props_addr;
  12730.   var $user_features_addr;
  12731.   var $num_user_features_addr;
  12732.   var $shaper_list_addr;
  12733.   var $proposal = __stackBase__ + 40;
  12734.   var $shaper_item;
  12735.   var $cached_plan_nodes;
  12736.   var $node;
  12737.   var $shape_plan40;
  12738.   var $node42;
  12739.   $face_addr = $face;
  12740.   $props_addr = $props;
  12741.   $user_features_addr = $user_features;
  12742.   $num_user_features_addr = $num_user_features;
  12743.   $shaper_list_addr = $shaper_list;
  12744.   if (($num_user_features_addr | 0) != 0) {
  12745.     $retval = _hb_shape_plan_create($face_addr, $props_addr, $user_features_addr, $num_user_features_addr, $shaper_list_addr);
  12746.     var $164 = $retval;
  12747.     STACKTOP = __stackBase__;
  12748.     return $164;
  12749.   }
  12750.   var $7 = $proposal | 0;
  12751.   var $8 = $props_addr;
  12752.   for (var $$src = $8, $$dest = $7, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  12753.     HEAP[$$dest] = HEAP[$$src];
  12754.   }
  12755.   HEAP[$proposal + 20 | 0] = $shaper_list_addr;
  12756.   HEAP[$proposal + 24 | 0] = 0;
  12757.   do {
  12758.     if (($shaper_list_addr | 0) != 0) {
  12759.       $shaper_item = $shaper_list_addr;
  12760.       L2037 : do {
  12761.         if ((HEAP[$shaper_item] | 0) != 0) {
  12762.           var $shaper_func10 = $proposal + 24 | 0;
  12763.           var $shaper_func18 = $proposal + 24 | 0;
  12764.           while (1) {
  12765.             L2041 : do {
  12766.               if (0 == (_strcmp(HEAP[$shaper_item], 102568) | 0)) {
  12767.                 HEAP[$face_addr_i] = $face_addr;
  12768.                 var $47 = HEAP[HEAP[$face_addr_i] + 72 | 0];
  12769.                 HEAP[$data_i] = $47;
  12770.                 L2043 : do {
  12771.                   if (($47 | 0) == 0) {
  12772.                     while (1) {
  12773.                       HEAP[$face_addr_i_i] = HEAP[$face_addr_i];
  12774.                       var $call_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i]);
  12775.                       HEAP[$data_i] = $call_i_i;
  12776.                       if (($call_i_i | 0) == 0) {
  12777.                         HEAP[$data_i] = -1;
  12778.                       }
  12779.                       var $54 = HEAP[$data_i];
  12780.                       if ((HEAP[HEAP[$face_addr_i] + 72 | 0] | 0) == 0) {
  12781.                         break;
  12782.                       }
  12783.                       do {
  12784.                         if (($54 | 0) != 0) {
  12785.                           if ((HEAP[$data_i] | 0) == -1) {
  12786.                             break;
  12787.                           }
  12788.                           if ((HEAP[$data_i] | 0) == 1) {
  12789.                             break;
  12790.                           }
  12791.                           HEAP[$data_addr_i_i] = HEAP[$data_i];
  12792.                           __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i]);
  12793.                         }
  12794.                       } while (0);
  12795.                       var $65 = HEAP[HEAP[$face_addr_i] + 72 | 0];
  12796.                       HEAP[$data_i] = $65;
  12797.                       if (($65 | 0) != 0) {
  12798.                         break L2043;
  12799.                       }
  12800.                     }
  12801.                     HEAP[HEAP[$face_addr_i] + 72 | 0] = $54;
  12802.                     if ((HEAP[$data_i] | 0) == 0) {
  12803.                       break L2041;
  12804.                     }
  12805.                   }
  12806.                 } while (0);
  12807.                 if (!((HEAP[$data_i] | 0) == -1 ^ 1)) {
  12808.                   break;
  12809.                 }
  12810.                 HEAP[$shaper_func10] = 70;
  12811.               } else {
  12812.                 if (0 != (_strcmp(HEAP[$shaper_item], 102472) | 0)) {
  12813.                   break;
  12814.                 }
  12815.                 HEAP[$face_addr_i1] = $face_addr;
  12816.                 var $79 = HEAP[HEAP[$face_addr_i1] + 76 | 0];
  12817.                 HEAP[$data_i2] = $79;
  12818.                 L2060 : do {
  12819.                   if (($79 | 0) == 0) {
  12820.                     while (1) {
  12821.                       HEAP[$data_i2] = 1;
  12822.                       var $84 = HEAP[$data_i2];
  12823.                       if ((HEAP[HEAP[$face_addr_i1] + 76 | 0] | 0) == 0) {
  12824.                         break;
  12825.                       }
  12826.                       var $89 = HEAP[HEAP[$face_addr_i1] + 76 | 0];
  12827.                       HEAP[$data_i2] = $89;
  12828.                       if (($89 | 0) != 0) {
  12829.                         break L2060;
  12830.                       }
  12831.                     }
  12832.                     HEAP[HEAP[$face_addr_i1] + 76 | 0] = $84;
  12833.                     if ((HEAP[$data_i2] | 0) == 0) {
  12834.                       break L2041;
  12835.                     }
  12836.                   }
  12837.                 } while (0);
  12838.                 if (!((HEAP[$data_i2] | 0) == -1 ^ 1)) {
  12839.                   break;
  12840.                 }
  12841.                 HEAP[$shaper_func18] = 144;
  12842.               }
  12843.             } while (0);
  12844.             $shaper_item = $shaper_item + 4 | 0;
  12845.             if ((HEAP[$shaper_item] | 0) == 0) {
  12846.               break L2037;
  12847.             }
  12848.           }
  12849.         }
  12850.       } while (0);
  12851.       if ((HEAP[$proposal + 20 | 0] | 0) != 0) {
  12852.         break;
  12853.       }
  12854.       $retval = 111232;
  12855.       var $164 = $retval;
  12856.       STACKTOP = __stackBase__;
  12857.       return $164;
  12858.     }
  12859.   } while (0);
  12860.   L2072 : while (1) {
  12861.     var $103 = HEAP[$face_addr + 80 | 0];
  12862.     $cached_plan_nodes = $103;
  12863.     $node = $103;
  12864.     L2074 : do {
  12865.       if (($103 | 0) != 0) {
  12866.         while (1) {
  12867.           HEAP[$shape_plan_addr_i] = HEAP[$node | 0];
  12868.           HEAP[$proposal_addr_i] = $proposal;
  12869.           var $props1_i = HEAP[$proposal_addr_i] | 0;
  12870.           HEAP[$a_addr_i_i] = HEAP[$shape_plan_addr_i] + 52 | 0;
  12871.           HEAP[$b_addr_i_i] = $props1_i;
  12872.           do {
  12873.             if ((HEAP[HEAP[$a_addr_i_i] | 0] | 0) == (HEAP[HEAP[$b_addr_i_i] | 0] | 0)) {
  12874.               if ((HEAP[HEAP[$a_addr_i_i] + 4 | 0] | 0) != (HEAP[HEAP[$b_addr_i_i] + 4 | 0] | 0)) {
  12875.                 var $136 = 0;
  12876.                 break;
  12877.               }
  12878.               if ((HEAP[HEAP[$a_addr_i_i] + 8 | 0] | 0) != (HEAP[HEAP[$b_addr_i_i] + 8 | 0] | 0)) {
  12879.                 var $136 = 0;
  12880.                 break;
  12881.               }
  12882.               if ((HEAP[HEAP[$a_addr_i_i] + 12 | 0] | 0) != (HEAP[HEAP[$b_addr_i_i] + 12 | 0] | 0)) {
  12883.                 var $136 = 0;
  12884.                 break;
  12885.               }
  12886.               if ((HEAP[HEAP[$a_addr_i_i] + 16 | 0] | 0) != (HEAP[HEAP[$b_addr_i_i] + 16 | 0] | 0)) {
  12887.                 var $136 = 0;
  12888.                 break;
  12889.               }
  12890.               if ((HEAP[HEAP[$shape_plan_addr_i] + 44 | 0] | 0) != 0) {
  12891.                 if ((HEAP[HEAP[$proposal_addr_i] + 20 | 0] | 0) == 0) {
  12892.                   var $136 = 1;
  12893.                   break;
  12894.                 }
  12895.               }
  12896.               var $136 = (HEAP[HEAP[$shape_plan_addr_i] + 72 | 0] | 0) == (HEAP[HEAP[$proposal_addr_i] + 24 | 0] | 0);
  12897.             } else {
  12898.               var $136 = 0;
  12899.             }
  12900.           } while (0);
  12901.           var $136;
  12902.           var $137 = $node;
  12903.           if (($136 & 1 | 0) != 0) {
  12904.             label = 1601;
  12905.             break L2072;
  12906.           }
  12907.           var $139 = HEAP[$137 + 4 | 0];
  12908.           $node = $139;
  12909.           if (($139 | 0) == 0) {
  12910.             break L2074;
  12911.           }
  12912.         }
  12913.       }
  12914.     } while (0);
  12915.     $shape_plan40 = _hb_shape_plan_create($face_addr, $props_addr, $user_features_addr, $num_user_features_addr, $shaper_list_addr);
  12916.     var $145 = _calloc(1, 8);
  12917.     $node42 = $145;
  12918.     var $146 = $shape_plan40;
  12919.     if (($145 | 0) == 0) {
  12920.       label = 1604;
  12921.       break;
  12922.     }
  12923.     HEAP[$node42 | 0] = $146;
  12924.     HEAP[$node42 + 4 | 0] = $cached_plan_nodes;
  12925.     if ((HEAP[$face_addr + 80 | 0] | 0) == ($cached_plan_nodes | 0)) {
  12926.       label = 1606;
  12927.       break;
  12928.     }
  12929.     _hb_shape_plan_destroy($shape_plan40);
  12930.     _free($node42);
  12931.   }
  12932.   if (label == 1606) {
  12933.     HEAP[$face_addr + 80 | 0] = $node42;
  12934.     _hb_face_destroy($face_addr);
  12935.     $retval = _hb_shape_plan_reference($shape_plan40);
  12936.     var $164 = $retval;
  12937.     STACKTOP = __stackBase__;
  12938.     return $164;
  12939.   } else if (label == 1601) {
  12940.     $retval = _hb_shape_plan_reference(HEAP[$137 | 0]);
  12941.     var $164 = $retval;
  12942.     STACKTOP = __stackBase__;
  12943.     return $164;
  12944.   } else if (label == 1604) {
  12945.     $retval = $146;
  12946.     var $164 = $retval;
  12947.     STACKTOP = __stackBase__;
  12948.     return $164;
  12949.   }
  12950. }
  12951. function __Z15_hb_shapers_getv() {
  12952.   var label = 0;
  12953.   var __stackBase__ = STACKTOP;
  12954.   STACKTOP = STACKTOP + 20 | 0;
  12955.   var $retval;
  12956.   var $shapers;
  12957.   var $env;
  12958.   var $i;
  12959.   var $end;
  12960.   var $p;
  12961.   var $j;
  12962.   var $t = __stackBase__;
  12963.   var $2 = HEAP[132144];
  12964.   $shapers = $2;
  12965.   L2099 : do {
  12966.     if (($2 | 0) == 0) {
  12967.       var $3 = $t;
  12968.       var $4 = $t;
  12969.       while (1) {
  12970.         var $call = _getenv(103848);
  12971.         $env = $call;
  12972.         if (($call | 0) == 0) {
  12973.           label = 1618;
  12974.           break;
  12975.         }
  12976.         if (HEAP[$env] << 24 >> 24 == 0) {
  12977.           label = 1618;
  12978.           break;
  12979.         }
  12980.         $shapers = _malloc(40);
  12981.         if (($shapers | 0) == 0) {
  12982.           label = 1622;
  12983.           break;
  12984.         }
  12985.         var $12 = $shapers;
  12986.         for (var $$src = 147992, $$dest = $12, $$stop = $$src + 40; $$src < $$stop; $$src++, $$dest++) {
  12987.           HEAP[$$dest] = HEAP[$$src];
  12988.         }
  12989.         $i = 0;
  12990.         $p = $env;
  12991.         while (1) {
  12992.           var $call13 = _strchr($p, 44);
  12993.           $end = $call13;
  12994.           if (($call13 | 0) == 0) {
  12995.             $end = $p + _strlen($p) | 0;
  12996.           }
  12997.           var $17 = $i;
  12998.           $j = $17;
  12999.           var $18 = $end;
  13000.           L2111 : do {
  13001.             if ($17 >>> 0 < 2) {
  13002.               var $19 = $18;
  13003.               while (1) {
  13004.                 var $19;
  13005.                 do {
  13006.                   if (($19 - $p | 0) == (_strlen($shapers + ($j * 20 & -1) | 0) | 0)) {
  13007.                     if (0 != (_strncmp($shapers + ($j * 20 & -1) | 0, $p, $end - $p | 0) | 0)) {
  13008.                       break;
  13009.                     }
  13010.                     var $30 = $shapers + ($j * 20 & -1) | 0;
  13011.                     for (var $$src = $30, $$dest = $3, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  13012.                       HEAP[$$dest] = HEAP[$$src];
  13013.                     }
  13014.                     _memmove($shapers + (($i + 1) * 20 & -1) | 0, $shapers + ($i * 20 & -1) | 0, ($j - $i) * 20 & -1, 4, 0);
  13015.                     var $41 = $shapers + ($i * 20 & -1) | 0;
  13016.                     for (var $$src = $4, $$dest = $41, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  13017.                       HEAP[$$dest] = HEAP[$$src];
  13018.                     }
  13019.                     $i = $i + 1 | 0;
  13020.                   }
  13021.                 } while (0);
  13022.                 var $inc37 = $j + 1 | 0;
  13023.                 $j = $inc37;
  13024.                 var $44 = $end;
  13025.                 if ($inc37 >>> 0 < 2) {
  13026.                   var $19 = $44;
  13027.                 } else {
  13028.                   var $_lcssa = $44;
  13029.                   break L2111;
  13030.                 }
  13031.               }
  13032.             } else {
  13033.               var $_lcssa = $18;
  13034.             }
  13035.           } while (0);
  13036.           var $_lcssa;
  13037.           if (HEAP[$_lcssa] << 24 >> 24 == 0) {
  13038.             break;
  13039.           }
  13040.           $p = $end + 1 | 0;
  13041.         }
  13042.         var $49 = $shapers;
  13043.         if ((HEAP[132144] | 0) == 0) {
  13044.           label = 1636;
  13045.           break;
  13046.         }
  13047.         _free($49);
  13048.         var $52 = HEAP[132144];
  13049.         $shapers = $52;
  13050.         if (($52 | 0) != 0) {
  13051.           break L2099;
  13052.         }
  13053.       }
  13054.       if (label == 1636) {
  13055.         HEAP[132144] = $49;
  13056.         _atexit(154);
  13057.         break;
  13058.       } else if (label == 1618) {
  13059.         if ((HEAP[132144] | 0) == 0) {
  13060.           HEAP[132144] = 147992;
  13061.         }
  13062.         $retval = 147992;
  13063.         var $54 = $retval;
  13064.         STACKTOP = __stackBase__;
  13065.         return $54;
  13066.       } else if (label == 1622) {
  13067.         if ((HEAP[132144] | 0) == 0) {
  13068.           HEAP[132144] = 147992;
  13069.         }
  13070.         $retval = 147992;
  13071.         var $54 = $retval;
  13072.         STACKTOP = __stackBase__;
  13073.         return $54;
  13074.       }
  13075.     }
  13076.   } while (0);
  13077.   $retval = $shapers;
  13078.   var $54 = $retval;
  13079.   STACKTOP = __stackBase__;
  13080.   return $54;
  13081. }
  13082. function __ZL19free_static_shapersv() {
  13083.   if ((HEAP[132144] | 0) == 147992) {
  13084.     return;
  13085.   }
  13086.   _free(HEAP[132144]);
  13087.   return;
  13088. }
  13089. function _hb_unicode_funcs_destroy($ufuncs) {
  13090.   var __stackBase__ = STACKTOP;
  13091.   STACKTOP = STACKTOP + 44 | 0;
  13092.   var $this_addr_i_i_i = __stackBase__ + 24;
  13093.   var $obj_addr_i_i = __stackBase__ + 32;
  13094.   var $function_addr_i_i = __stackBase__ + 36;
  13095.   var $obj_addr_i = __stackBase__ + 40;
  13096.   var $ufuncs_addr;
  13097.   $ufuncs_addr = $ufuncs;
  13098.   HEAP[$obj_addr_i] = $ufuncs_addr;
  13099.   HEAP[$obj_addr_i_i] = HEAP[$obj_addr_i];
  13100.   HEAP[$function_addr_i_i] = 109776;
  13101.   var $6 = HEAP[$function_addr_i_i];
  13102.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  13103.   HEAP[__stackBase__ + 28] = $6;
  13104.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  13105.   if (($this1_i_i_i | 0) != 0) {
  13106.     HEAP[__stackBase__] = 104072;
  13107.     HEAP[__stackBase__ + 4] = $this1_i_i_i;
  13108.     HEAP[__stackBase__ + 8] = 0;
  13109.     HEAP[__stackBase__ + 12] = 0;
  13110.     HEAP[__stackBase__ + 16] = 0;
  13111.     HEAP[__stackBase__ + 20] = 104056;
  13112.   }
  13113.   if (!__ZN18hb_object_header_t7destroyEv(HEAP[$obj_addr_i] | 0)) {
  13114.     STACKTOP = __stackBase__;
  13115.     return;
  13116.   }
  13117.   if ((HEAP[$ufuncs_addr + 116 | 0] | 0) != 0) {
  13118.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 116 | 0]](HEAP[$ufuncs_addr + 84 | 0]);
  13119.   }
  13120.   if ((HEAP[$ufuncs_addr + 120 | 0] | 0) != 0) {
  13121.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 120 | 0]](HEAP[$ufuncs_addr + 88 | 0]);
  13122.   }
  13123.   if ((HEAP[$ufuncs_addr + 124 | 0] | 0) != 0) {
  13124.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 124 | 0]](HEAP[$ufuncs_addr + 92 | 0]);
  13125.   }
  13126.   if ((HEAP[$ufuncs_addr + 128 | 0] | 0) != 0) {
  13127.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 128 | 0]](HEAP[$ufuncs_addr + 96 | 0]);
  13128.   }
  13129.   if ((HEAP[$ufuncs_addr + 132 | 0] | 0) != 0) {
  13130.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 132 | 0]](HEAP[$ufuncs_addr + 100 | 0]);
  13131.   }
  13132.   if ((HEAP[$ufuncs_addr + 136 | 0] | 0) != 0) {
  13133.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 136 | 0]](HEAP[$ufuncs_addr + 104 | 0]);
  13134.   }
  13135.   if ((HEAP[$ufuncs_addr + 140 | 0] | 0) != 0) {
  13136.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 140 | 0]](HEAP[$ufuncs_addr + 108 | 0]);
  13137.   }
  13138.   if ((HEAP[$ufuncs_addr + 144 | 0] | 0) != 0) {
  13139.     FUNCTION_TABLE[HEAP[$ufuncs_addr + 144 | 0]](HEAP[$ufuncs_addr + 112 | 0]);
  13140.   }
  13141.   _hb_unicode_funcs_destroy(HEAP[$ufuncs_addr + 44 | 0]);
  13142.   _free($ufuncs_addr);
  13143.   STACKTOP = __stackBase__;
  13144.   return;
  13145. }
  13146. function __Z20_hb_ot_layout_createP9hb_face_t($face) {
  13147.   var label = 0;
  13148.   var __stackBase__ = STACKTOP;
  13149.   STACKTOP = STACKTOP + 724 | 0;
  13150.   var $this_addr_i_i_i5_i = __stackBase__;
  13151.   var $this_addr_i_i6_i = __stackBase__ + 4;
  13152.   var $this_addr_i7_i482 = __stackBase__ + 8;
  13153.   var $this_addr_i_i_i_i483 = __stackBase__ + 12;
  13154.   var $this_addr_i_i1_i = __stackBase__ + 16;
  13155.   var $this_addr_i2_i = __stackBase__ + 20;
  13156.   var $this_addr_i_i_i484 = __stackBase__ + 24;
  13157.   var $this_addr_i_i485 = __stackBase__ + 28;
  13158.   var $this_addr_i486 = __stackBase__ + 32;
  13159.   var $glyphs_addr_i = __stackBase__ + 36;
  13160.   var $c_i487 = __stackBase__ + 40;
  13161.   var $last_i = __stackBase__ + 44;
  13162.   var $count_i = __stackBase__ + 48;
  13163.   var $i_i = __stackBase__ + 52;
  13164.   var $coverage_i = __stackBase__ + 56;
  13165.   var $X_addr_i_i477 = __stackBase__ + 60;
  13166.   var $this_addr_i478 = __stackBase__ + 64;
  13167.   var $i_addr_i479 = __stackBase__ + 68;
  13168.   var $X_addr_i_i474 = __stackBase__ + 72;
  13169.   var $this_addr_i475 = __stackBase__ + 76;
  13170.   var $i_addr_i = __stackBase__ + 80;
  13171.   var $layout_addr_i = __stackBase__ + 84;
  13172.   var $this_addr_i_i460 = __stackBase__ + 88;
  13173.   var $this_addr_i461 = __stackBase__ + 92;
  13174.   var $X_addr_i_i_i_i_i424 = __stackBase__ + 96;
  13175.   var $P_addr_i_i_i_i425 = __stackBase__ + 100;
  13176.   var $offset_addr_i_i_i_i426 = __stackBase__ + 104;
  13177.   var $this_addr_i_i_i_i_i427 = __stackBase__ + 108;
  13178.   var $this_addr_i_i_i_i428 = __stackBase__ + 112;
  13179.   var $retval_i_i_i429 = __stackBase__ + 116;
  13180.   var $this_addr_i_i_i430 = __stackBase__ + 120;
  13181.   var $base_addr_i_i_i431 = __stackBase__ + 124;
  13182.   var $offset_i_i_i432 = __stackBase__ + 128;
  13183.   var $base_addr_i_i433 = __stackBase__ + 132;
  13184.   var $offset_addr_i_i434 = __stackBase__ + 136;
  13185.   var $this_addr_i435 = __stackBase__ + 140;
  13186.   var $ref_tmp_i436 = __stackBase__ + 144;
  13187.   var $this_addr_i_i410 = __stackBase__ + 148;
  13188.   var $this_addr_i411 = __stackBase__ + 152;
  13189.   var $X_addr_i_i_i_i_i374 = __stackBase__ + 156;
  13190.   var $P_addr_i_i_i_i375 = __stackBase__ + 160;
  13191.   var $offset_addr_i_i_i_i376 = __stackBase__ + 164;
  13192.   var $this_addr_i_i_i_i_i377 = __stackBase__ + 168;
  13193.   var $this_addr_i_i_i_i378 = __stackBase__ + 172;
  13194.   var $retval_i_i_i379 = __stackBase__ + 176;
  13195.   var $this_addr_i_i_i380 = __stackBase__ + 180;
  13196.   var $base_addr_i_i_i381 = __stackBase__ + 184;
  13197.   var $offset_i_i_i382 = __stackBase__ + 188;
  13198.   var $base_addr_i_i383 = __stackBase__ + 192;
  13199.   var $offset_addr_i_i384 = __stackBase__ + 196;
  13200.   var $this_addr_i385 = __stackBase__ + 200;
  13201.   var $ref_tmp_i386 = __stackBase__ + 204;
  13202.   var $this_addr_i_i360 = __stackBase__ + 208;
  13203.   var $this_addr_i361 = __stackBase__ + 212;
  13204.   var $X_addr_i_i_i_i_i324 = __stackBase__ + 216;
  13205.   var $P_addr_i_i_i_i325 = __stackBase__ + 220;
  13206.   var $offset_addr_i_i_i_i326 = __stackBase__ + 224;
  13207.   var $this_addr_i_i_i_i_i327 = __stackBase__ + 228;
  13208.   var $this_addr_i_i_i_i328 = __stackBase__ + 232;
  13209.   var $retval_i_i_i329 = __stackBase__ + 236;
  13210.   var $this_addr_i_i_i330 = __stackBase__ + 240;
  13211.   var $base_addr_i_i_i331 = __stackBase__ + 244;
  13212.   var $offset_i_i_i332 = __stackBase__ + 248;
  13213.   var $base_addr_i_i333 = __stackBase__ + 252;
  13214.   var $offset_addr_i_i334 = __stackBase__ + 256;
  13215.   var $this_addr_i335 = __stackBase__ + 260;
  13216.   var $ref_tmp_i336 = __stackBase__ + 264;
  13217.   var $this_addr_i_i320 = __stackBase__ + 268;
  13218.   var $this_addr_i321 = __stackBase__ + 272;
  13219.   var $X_addr_i_i_i_i_i = __stackBase__ + 276;
  13220.   var $P_addr_i_i_i_i = __stackBase__ + 280;
  13221.   var $offset_addr_i_i_i_i = __stackBase__ + 284;
  13222.   var $this_addr_i_i_i_i_i314 = __stackBase__ + 288;
  13223.   var $this_addr_i_i_i_i315 = __stackBase__ + 292;
  13224.   var $retval_i_i_i = __stackBase__ + 296;
  13225.   var $this_addr_i_i_i = __stackBase__ + 300;
  13226.   var $base_addr_i_i_i = __stackBase__ + 304;
  13227.   var $offset_i_i_i = __stackBase__ + 308;
  13228.   var $base_addr_i_i = __stackBase__ + 312;
  13229.   var $offset_addr_i_i = __stackBase__ + 316;
  13230.   var $this_addr_i316 = __stackBase__ + 320;
  13231.   var $ref_tmp_i = __stackBase__ + 324;
  13232.   var $blob_addr_i1_i290 = __stackBase__ + 328;
  13233.   var $length_addr_i_i291 = __stackBase__ + 332;
  13234.   var $X_addr_i_i_i292 = __stackBase__ + 336;
  13235.   var $X_addr_i_i293 = __stackBase__ + 340;
  13236.   var $this_addr_i_i_i_i_i294 = __stackBase__ + 344;
  13237.   var $this_addr_i_i_i_i295 = __stackBase__ + 348;
  13238.   var $obj_addr_i_i_i296 = __stackBase__ + 352;
  13239.   var $blob_addr_i_i297 = __stackBase__ + 356;
  13240.   var $blob_addr_i298 = __stackBase__ + 360;
  13241.   var $base_i299 = __stackBase__ + 364;
  13242.   var $retval_i_i181 = __stackBase__ + 368;
  13243.   var $blob_addr_i13_i182 = __stackBase__ + 372;
  13244.   var $length_addr_i_i183 = __stackBase__ + 376;
  13245.   var $blob_addr_i_i184 = __stackBase__ + 380;
  13246.   var $X_addr_i_i185 = __stackBase__ + 384;
  13247.   var $this_addr_i7_i186 = __stackBase__ + 388;
  13248.   var $this_addr_i4_i187 = __stackBase__ + 392;
  13249.   var $blob_addr_i1_i_i188 = __stackBase__ + 396;
  13250.   var $blob_addr_i_i_i189 = __stackBase__ + 400;
  13251.   var $length_addr_i_i_i190 = __stackBase__ + 404;
  13252.   var $this_addr_i1_i191 = __stackBase__ + 408;
  13253.   var $this_addr_i_i192 = __stackBase__ + 412;
  13254.   var $b_addr_i_i193 = __stackBase__ + 416;
  13255.   var $retval_i194 = __stackBase__ + 420;
  13256.   var $blob_addr_i195 = __stackBase__ + 424;
  13257.   var $sane_i197;
  13258.   var $t_i198 = __stackBase__ + 428;
  13259.   var $edit_count28_i199 = __stackBase__ + 432;
  13260.   var $retval_i163 = __stackBase__ + 436;
  13261.   var $this_addr_i164 = __stackBase__ + 440;
  13262.   var $tag_addr_i165 = __stackBase__ + 444;
  13263.   var $blob_i166 = __stackBase__ + 448;
  13264.   var $blob_addr_i1_i139 = __stackBase__ + 452;
  13265.   var $length_addr_i_i140 = __stackBase__ + 456;
  13266.   var $X_addr_i_i_i141 = __stackBase__ + 460;
  13267.   var $X_addr_i_i142 = __stackBase__ + 464;
  13268.   var $this_addr_i_i_i_i_i143 = __stackBase__ + 468;
  13269.   var $this_addr_i_i_i_i144 = __stackBase__ + 472;
  13270.   var $obj_addr_i_i_i145 = __stackBase__ + 476;
  13271.   var $blob_addr_i_i146 = __stackBase__ + 480;
  13272.   var $blob_addr_i147 = __stackBase__ + 484;
  13273.   var $base_i148 = __stackBase__ + 488;
  13274.   var $retval_i_i30 = __stackBase__ + 492;
  13275.   var $blob_addr_i13_i31 = __stackBase__ + 496;
  13276.   var $length_addr_i_i32 = __stackBase__ + 500;
  13277.   var $blob_addr_i_i33 = __stackBase__ + 504;
  13278.   var $X_addr_i_i34 = __stackBase__ + 508;
  13279.   var $this_addr_i7_i35 = __stackBase__ + 512;
  13280.   var $this_addr_i4_i36 = __stackBase__ + 516;
  13281.   var $blob_addr_i1_i_i37 = __stackBase__ + 520;
  13282.   var $blob_addr_i_i_i38 = __stackBase__ + 524;
  13283.   var $length_addr_i_i_i39 = __stackBase__ + 528;
  13284.   var $this_addr_i1_i40 = __stackBase__ + 532;
  13285.   var $this_addr_i_i41 = __stackBase__ + 536;
  13286.   var $b_addr_i_i42 = __stackBase__ + 540;
  13287.   var $retval_i43 = __stackBase__ + 544;
  13288.   var $blob_addr_i44 = __stackBase__ + 548;
  13289.   var $sane_i46;
  13290.   var $t_i47 = __stackBase__ + 552;
  13291.   var $edit_count28_i48 = __stackBase__ + 556;
  13292.   var $retval_i12 = __stackBase__ + 560;
  13293.   var $this_addr_i13 = __stackBase__ + 564;
  13294.   var $tag_addr_i14 = __stackBase__ + 568;
  13295.   var $blob_i15 = __stackBase__ + 572;
  13296.   var $blob_addr_i1_i = __stackBase__ + 576;
  13297.   var $length_addr_i_i5 = __stackBase__ + 580;
  13298.   var $X_addr_i_i_i = __stackBase__ + 584;
  13299.   var $X_addr_i_i6 = __stackBase__ + 588;
  13300.   var $this_addr_i_i_i_i_i = __stackBase__ + 592;
  13301.   var $this_addr_i_i_i_i = __stackBase__ + 596;
  13302.   var $obj_addr_i_i_i = __stackBase__ + 600;
  13303.   var $blob_addr_i_i7 = __stackBase__ + 604;
  13304.   var $blob_addr_i8 = __stackBase__ + 608;
  13305.   var $base_i = __stackBase__ + 612;
  13306.   var $retval_i_i = __stackBase__ + 616;
  13307.   var $blob_addr_i13_i = __stackBase__ + 620;
  13308.   var $length_addr_i_i = __stackBase__ + 624;
  13309.   var $blob_addr_i_i = __stackBase__ + 628;
  13310.   var $X_addr_i_i = __stackBase__ + 632;
  13311.   var $this_addr_i7_i = __stackBase__ + 636;
  13312.   var $this_addr_i4_i = __stackBase__ + 640;
  13313.   var $blob_addr_i1_i_i = __stackBase__ + 644;
  13314.   var $blob_addr_i_i_i = __stackBase__ + 648;
  13315.   var $length_addr_i_i_i = __stackBase__ + 652;
  13316.   var $this_addr_i1_i = __stackBase__ + 656;
  13317.   var $this_addr_i_i = __stackBase__ + 660;
  13318.   var $b_addr_i_i = __stackBase__ + 664;
  13319.   var $retval_i1 = __stackBase__ + 668;
  13320.   var $blob_addr_i = __stackBase__ + 672;
  13321.   var $c_i = __stackBase__ + 676;
  13322.   var $sane_i;
  13323.   var $t_i = __stackBase__ + 700;
  13324.   var $edit_count28_i = __stackBase__ + 704;
  13325.   var $retval_i = __stackBase__ + 708;
  13326.   var $this_addr_i = __stackBase__ + 712;
  13327.   var $tag_addr_i = __stackBase__ + 716;
  13328.   var $blob_i = __stackBase__ + 720;
  13329.   var $retval;
  13330.   var $face_addr;
  13331.   var $layout;
  13332.   var $i;
  13333.   var $i38;
  13334.   $face_addr = $face;
  13335.   $layout = _calloc(1, 40);
  13336.   if (($layout | 0) == 0) {
  13337.     $retval = 0;
  13338.     var $730 = $retval;
  13339.     STACKTOP = __stackBase__;
  13340.     return $730;
  13341.   }
  13342.   HEAP[$this_addr_i] = $face_addr;
  13343.   HEAP[$tag_addr_i] = 1195656518;
  13344.   var $this1_i = HEAP[$this_addr_i];
  13345.   do {
  13346.     if (($this1_i | 0) != 0) {
  13347.       if ((HEAP[$this1_i + 48 | 0] | 0) == 0) {
  13348.         label = 1675;
  13349.         break;
  13350.       }
  13351.       var $call4_i = FUNCTION_TABLE[HEAP[$this1_i + 48 | 0]]($this1_i, HEAP[$tag_addr_i], HEAP[$this1_i + 52 | 0]);
  13352.       HEAP[$blob_i] = $call4_i;
  13353.       if ((HEAP[$blob_i] | 0) != 0) {
  13354.         HEAP[$retval_i] = HEAP[$blob_i];
  13355.         break;
  13356.       } else {
  13357.         HEAP[$retval_i] = 111632;
  13358.         break;
  13359.       }
  13360.     } else {
  13361.       label = 1675;
  13362.     }
  13363.   } while (0);
  13364.   if (label == 1675) {
  13365.     HEAP[$retval_i] = 111632;
  13366.   }
  13367.   HEAP[$blob_addr_i] = HEAP[$retval_i];
  13368.   var $23 = $c_i;
  13369.   for (var $$dest = $23, $$stop = $$dest + 24; $$dest < $$stop; $$dest++) {
  13370.     HEAP[$$dest] = 0;
  13371.   }
  13372.   var $24 = HEAP[$blob_addr_i];
  13373.   HEAP[$this_addr_i_i] = $c_i | 0;
  13374.   HEAP[$b_addr_i_i] = $24;
  13375.   var $this1_i_i = HEAP[$this_addr_i_i];
  13376.   var $call_i_i = _hb_blob_reference(HEAP[$b_addr_i_i]);
  13377.   HEAP[$this1_i_i + 20 | 0] = $call_i_i;
  13378.   HEAP[$this1_i_i + 12 | 0] = 0;
  13379.   var $arraydecay1_i = $c_i | 0;
  13380.   var $start_i = $c_i + 4 | 0;
  13381.   var $arraydecay4_i = $c_i | 0;
  13382.   var $start5_i = $arraydecay4_i + 4 | 0;
  13383.   var $arraydecay6_i = $c_i | 0;
  13384.   var $edit_count_i = $c_i + 16 | 0;
  13385.   var $writable_i = $c_i + 12 | 0;
  13386.   var $start37_i = $c_i + 4 | 0;
  13387.   var $start39_i = $c_i + 4 | 0;
  13388.   var $end_i = $c_i + 8 | 0;
  13389.   var $start43_i = $c_i + 4 | 0;
  13390.   var $writable47_i = $c_i + 12 | 0;
  13391.   while (1) {
  13392.     HEAP[$this_addr_i1_i] = $arraydecay1_i;
  13393.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  13394.     HEAP[$blob_addr_i_i_i] = HEAP[$this1_i2_i + 20 | 0];
  13395.     HEAP[$length_addr_i_i_i] = 0;
  13396.     HEAP[$this1_i2_i + 4 | 0] = HEAP[HEAP[$blob_addr_i_i_i] + 48 | 0];
  13397.     var $51 = HEAP[$this1_i2_i + 4 | 0];
  13398.     HEAP[$blob_addr_i1_i_i] = HEAP[$this1_i2_i + 20 | 0];
  13399.     HEAP[$this1_i2_i + 8 | 0] = $51 + HEAP[HEAP[$blob_addr_i1_i_i] + 52 | 0] | 0;
  13400.     HEAP[$this1_i2_i + 16 | 0] = 0;
  13401.     HEAP[$this1_i2_i | 0] = 0;
  13402.     if ((HEAP[$start_i] | 0) == 0) {
  13403.       label = 1681;
  13404.       break;
  13405.     }
  13406.     HEAP[$X_addr_i_i] = HEAP[$start5_i];
  13407.     HEAP[$t_i] = HEAP[$X_addr_i_i];
  13408.     $sane_i = __ZN2OT4GDEF8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i], $arraydecay6_i) & 1;
  13409.     var $65 = HEAP[$edit_count_i];
  13410.     if ($sane_i & 1) {
  13411.       label = 1683;
  13412.       break;
  13413.     }
  13414.     HEAP[$edit_count28_i] = $65;
  13415.     if ((HEAP[$edit_count28_i] | 0) == 0) {
  13416.       label = 1697;
  13417.       break;
  13418.     }
  13419.     if (HEAP[$writable_i] & 1) {
  13420.       label = 1697;
  13421.       break;
  13422.     }
  13423.     HEAP[$blob_addr_i13_i] = HEAP[$blob_addr_i];
  13424.     HEAP[$length_addr_i_i] = 0;
  13425.     var $call_i14_i = __ZL13_try_writableP9hb_blob_t(HEAP[$blob_addr_i13_i]);
  13426.     var $tobool3_i_i = (HEAP[$length_addr_i_i] | 0) != 0;
  13427.     if ($call_i14_i) {
  13428.       if ($tobool3_i_i) {
  13429.         HEAP[HEAP[$length_addr_i_i]] = HEAP[HEAP[$blob_addr_i13_i] + 52 | 0];
  13430.       }
  13431.       HEAP[$retval_i_i] = HEAP[HEAP[$blob_addr_i13_i] + 48 | 0];
  13432.     } else {
  13433.       if ($tobool3_i_i) {
  13434.         HEAP[HEAP[$length_addr_i_i]] = 0;
  13435.       }
  13436.       HEAP[$retval_i_i] = 0;
  13437.     }
  13438.     HEAP[$start37_i] = HEAP[$retval_i_i];
  13439.     var $80 = HEAP[$start39_i];
  13440.     HEAP[$blob_addr_i_i] = HEAP[$blob_addr_i];
  13441.     HEAP[$end_i] = $80 + HEAP[HEAP[$blob_addr_i_i] + 52 | 0] | 0;
  13442.     if ((HEAP[$start43_i] | 0) == 0) {
  13443.       label = 1697;
  13444.       break;
  13445.     }
  13446.     HEAP[$writable47_i] = 1;
  13447.   }
  13448.   do {
  13449.     if (label == 1681) {
  13450.       HEAP[$this_addr_i7_i] = $arraydecay4_i;
  13451.       var $this1_i8_i = HEAP[$this_addr_i7_i];
  13452.       _hb_blob_destroy(HEAP[$this1_i8_i + 20 | 0]);
  13453.       HEAP[$this1_i8_i + 20 | 0] = 0;
  13454.       HEAP[$this1_i8_i + 8 | 0] = 0;
  13455.       HEAP[$this1_i8_i + 4 | 0] = 0;
  13456.       HEAP[$retval_i1] = HEAP[$blob_addr_i];
  13457.       break;
  13458.     } else if (label == 1683) {
  13459.       if (($65 | 0) == 0) {
  13460.         label = 1697;
  13461.         break;
  13462.       }
  13463.       HEAP[$c_i + 16 | 0] = 0;
  13464.       $sane_i = __ZN2OT4GDEF8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i], $c_i | 0) & 1;
  13465.       if ((HEAP[$c_i + 16 | 0] | 0) == 0) {
  13466.         label = 1697;
  13467.         break;
  13468.       }
  13469.       $sane_i = 0;
  13470.       label = 1697;
  13471.       break;
  13472.     }
  13473.   } while (0);
  13474.   do {
  13475.     if (label == 1697) {
  13476.       HEAP[$this_addr_i4_i] = $c_i | 0;
  13477.       var $this1_i5_i = HEAP[$this_addr_i4_i];
  13478.       _hb_blob_destroy(HEAP[$this1_i5_i + 20 | 0]);
  13479.       HEAP[$this1_i5_i + 20 | 0] = 0;
  13480.       HEAP[$this1_i5_i + 8 | 0] = 0;
  13481.       HEAP[$this1_i5_i + 4 | 0] = 0;
  13482.       var $89 = HEAP[$blob_addr_i];
  13483.       if ($sane_i & 1) {
  13484.         HEAP[$retval_i1] = $89;
  13485.         break;
  13486.       } else {
  13487.         _hb_blob_destroy($89);
  13488.         HEAP[$retval_i1] = 111632;
  13489.         break;
  13490.       }
  13491.     }
  13492.   } while (0);
  13493.   HEAP[$layout | 0] = HEAP[$retval_i1];
  13494.   HEAP[$blob_addr_i8] = HEAP[$layout | 0];
  13495.   HEAP[$blob_addr_i_i7] = HEAP[$blob_addr_i8];
  13496.   HEAP[$obj_addr_i_i_i] = HEAP[$blob_addr_i_i7];
  13497.   HEAP[$this_addr_i_i_i_i] = HEAP[$obj_addr_i_i_i] | 0;
  13498.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  13499.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) != -1) {
  13500.     HEAP[HEAP[$blob_addr_i_i7] + 44 | 0] = 1;
  13501.   }
  13502.   HEAP[$blob_addr_i1_i] = HEAP[$blob_addr_i8];
  13503.   HEAP[$length_addr_i_i5] = 0;
  13504.   var $118 = HEAP[HEAP[$blob_addr_i1_i] + 48 | 0];
  13505.   HEAP[$base_i] = $118;
  13506.   if (($118 | 0) != 0) {
  13507.     HEAP[$X_addr_i_i6] = HEAP[$base_i];
  13508.     var $cond_i = HEAP[$X_addr_i_i6];
  13509.   } else {
  13510.     HEAP[$X_addr_i_i_i] = 111704;
  13511.     var $cond_i = HEAP[$X_addr_i_i_i];
  13512.   }
  13513.   var $cond_i;
  13514.   HEAP[$layout + 12 | 0] = $cond_i;
  13515.   var $133 = $face_addr;
  13516.   HEAP[$this_addr_i13] = $133;
  13517.   HEAP[$tag_addr_i14] = 1196643650;
  13518.   do {
  13519.     if (($133 | 0) != 0) {
  13520.       if ((HEAP[$133 + 48 | 0] | 0) == 0) {
  13521.         label = 1707;
  13522.         break;
  13523.       }
  13524.       var $call4_i24 = FUNCTION_TABLE[HEAP[$133 + 48 | 0]]($133, HEAP[$tag_addr_i14], HEAP[$133 + 52 | 0]);
  13525.       HEAP[$blob_i15] = $call4_i24;
  13526.       if ((HEAP[$blob_i15] | 0) != 0) {
  13527.         HEAP[$retval_i12] = HEAP[$blob_i15];
  13528.         break;
  13529.       } else {
  13530.         HEAP[$retval_i12] = 111632;
  13531.         break;
  13532.       }
  13533.     } else {
  13534.       label = 1707;
  13535.     }
  13536.   } while (0);
  13537.   if (label == 1707) {
  13538.     HEAP[$retval_i12] = 111632;
  13539.   }
  13540.   HEAP[$blob_addr_i44] = HEAP[$retval_i12];
  13541.   var $154 = $c_i;
  13542.   for (var $$dest = $154, $$stop = $$dest + 24; $$dest < $$stop; $$dest++) {
  13543.     HEAP[$$dest] = 0;
  13544.   }
  13545.   var $155 = HEAP[$blob_addr_i44];
  13546.   HEAP[$this_addr_i_i41] = $c_i | 0;
  13547.   HEAP[$b_addr_i_i42] = $155;
  13548.   var $this1_i_i50 = HEAP[$this_addr_i_i41];
  13549.   var $call_i_i51 = _hb_blob_reference(HEAP[$b_addr_i_i42]);
  13550.   HEAP[$this1_i_i50 + 20 | 0] = $call_i_i51;
  13551.   HEAP[$this1_i_i50 + 12 | 0] = 0;
  13552.   var $arraydecay1_i54 = $c_i | 0;
  13553.   var $start_i56 = $c_i + 4 | 0;
  13554.   var $arraydecay4_i57 = $c_i | 0;
  13555.   var $start5_i58 = $arraydecay4_i57 + 4 | 0;
  13556.   var $arraydecay6_i59 = $c_i | 0;
  13557.   var $edit_count_i61 = $c_i + 16 | 0;
  13558.   var $writable_i63 = $c_i + 12 | 0;
  13559.   var $start37_i65 = $c_i + 4 | 0;
  13560.   var $start39_i67 = $c_i + 4 | 0;
  13561.   var $end_i69 = $c_i + 8 | 0;
  13562.   var $start43_i71 = $c_i + 4 | 0;
  13563.   var $writable47_i73 = $c_i + 12 | 0;
  13564.   while (1) {
  13565.     HEAP[$this_addr_i1_i40] = $arraydecay1_i54;
  13566.     var $this1_i2_i74 = HEAP[$this_addr_i1_i40];
  13567.     HEAP[$blob_addr_i_i_i38] = HEAP[$this1_i2_i74 + 20 | 0];
  13568.     HEAP[$length_addr_i_i_i39] = 0;
  13569.     HEAP[$this1_i2_i74 + 4 | 0] = HEAP[HEAP[$blob_addr_i_i_i38] + 48 | 0];
  13570.     var $182 = HEAP[$this1_i2_i74 + 4 | 0];
  13571.     HEAP[$blob_addr_i1_i_i37] = HEAP[$this1_i2_i74 + 20 | 0];
  13572.     HEAP[$this1_i2_i74 + 8 | 0] = $182 + HEAP[HEAP[$blob_addr_i1_i_i37] + 52 | 0] | 0;
  13573.     HEAP[$this1_i2_i74 + 16 | 0] = 0;
  13574.     HEAP[$this1_i2_i74 | 0] = 0;
  13575.     if ((HEAP[$start_i56] | 0) == 0) {
  13576.       label = 1713;
  13577.       break;
  13578.     }
  13579.     HEAP[$X_addr_i_i34] = HEAP[$start5_i58];
  13580.     HEAP[$t_i47] = HEAP[$X_addr_i_i34];
  13581.     $sane_i46 = __ZN2OT4GSUB8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i47], $arraydecay6_i59) & 1;
  13582.     var $196 = HEAP[$edit_count_i61];
  13583.     if ($sane_i46 & 1) {
  13584.       label = 1715;
  13585.       break;
  13586.     }
  13587.     HEAP[$edit_count28_i48] = $196;
  13588.     if ((HEAP[$edit_count28_i48] | 0) == 0) {
  13589.       label = 1729;
  13590.       break;
  13591.     }
  13592.     if (HEAP[$writable_i63] & 1) {
  13593.       label = 1729;
  13594.       break;
  13595.     }
  13596.     HEAP[$blob_addr_i13_i31] = HEAP[$blob_addr_i44];
  13597.     HEAP[$length_addr_i_i32] = 0;
  13598.     var $call_i14_i113 = __ZL13_try_writableP9hb_blob_t(HEAP[$blob_addr_i13_i31]);
  13599.     var $tobool3_i_i114 = (HEAP[$length_addr_i_i32] | 0) != 0;
  13600.     if ($call_i14_i113) {
  13601.       if ($tobool3_i_i114) {
  13602.         HEAP[HEAP[$length_addr_i_i32]] = HEAP[HEAP[$blob_addr_i13_i31] + 52 | 0];
  13603.       }
  13604.       HEAP[$retval_i_i30] = HEAP[HEAP[$blob_addr_i13_i31] + 48 | 0];
  13605.     } else {
  13606.       if ($tobool3_i_i114) {
  13607.         HEAP[HEAP[$length_addr_i_i32]] = 0;
  13608.       }
  13609.       HEAP[$retval_i_i30] = 0;
  13610.     }
  13611.     HEAP[$start37_i65] = HEAP[$retval_i_i30];
  13612.     var $211 = HEAP[$start39_i67];
  13613.     HEAP[$blob_addr_i_i33] = HEAP[$blob_addr_i44];
  13614.     HEAP[$end_i69] = $211 + HEAP[HEAP[$blob_addr_i_i33] + 52 | 0] | 0;
  13615.     if ((HEAP[$start43_i71] | 0) == 0) {
  13616.       label = 1729;
  13617.       break;
  13618.     }
  13619.     HEAP[$writable47_i73] = 1;
  13620.   }
  13621.   do {
  13622.     if (label == 1715) {
  13623.       if (($196 | 0) == 0) {
  13624.         label = 1729;
  13625.         break;
  13626.       }
  13627.       HEAP[$c_i + 16 | 0] = 0;
  13628.       $sane_i46 = __ZN2OT4GSUB8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i47], $c_i | 0) & 1;
  13629.       if ((HEAP[$c_i + 16 | 0] | 0) == 0) {
  13630.         label = 1729;
  13631.         break;
  13632.       }
  13633.       $sane_i46 = 0;
  13634.       label = 1729;
  13635.       break;
  13636.     } else if (label == 1713) {
  13637.       HEAP[$this_addr_i7_i35] = $arraydecay4_i57;
  13638.       var $this1_i8_i87 = HEAP[$this_addr_i7_i35];
  13639.       _hb_blob_destroy(HEAP[$this1_i8_i87 + 20 | 0]);
  13640.       HEAP[$this1_i8_i87 + 20 | 0] = 0;
  13641.       HEAP[$this1_i8_i87 + 8 | 0] = 0;
  13642.       HEAP[$this1_i8_i87 + 4 | 0] = 0;
  13643.       HEAP[$retval_i43] = HEAP[$blob_addr_i44];
  13644.       break;
  13645.     }
  13646.   } while (0);
  13647.   do {
  13648.     if (label == 1729) {
  13649.       HEAP[$this_addr_i4_i36] = $c_i | 0;
  13650.       var $this1_i5_i130 = HEAP[$this_addr_i4_i36];
  13651.       _hb_blob_destroy(HEAP[$this1_i5_i130 + 20 | 0]);
  13652.       HEAP[$this1_i5_i130 + 20 | 0] = 0;
  13653.       HEAP[$this1_i5_i130 + 8 | 0] = 0;
  13654.       HEAP[$this1_i5_i130 + 4 | 0] = 0;
  13655.       var $220 = HEAP[$blob_addr_i44];
  13656.       if ($sane_i46 & 1) {
  13657.         HEAP[$retval_i43] = $220;
  13658.         break;
  13659.       } else {
  13660.         _hb_blob_destroy($220);
  13661.         HEAP[$retval_i43] = 111632;
  13662.         break;
  13663.       }
  13664.     }
  13665.   } while (0);
  13666.   HEAP[$layout + 4 | 0] = HEAP[$retval_i43];
  13667.   HEAP[$blob_addr_i147] = HEAP[$layout + 4 | 0];
  13668.   HEAP[$blob_addr_i_i146] = HEAP[$blob_addr_i147];
  13669.   HEAP[$obj_addr_i_i_i145] = HEAP[$blob_addr_i_i146];
  13670.   HEAP[$this_addr_i_i_i_i144] = HEAP[$obj_addr_i_i_i145] | 0;
  13671.   HEAP[$this_addr_i_i_i_i_i143] = HEAP[$this_addr_i_i_i_i144] | 0;
  13672.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i143] | 0] | 0) != -1) {
  13673.     HEAP[HEAP[$blob_addr_i_i146] + 44 | 0] = 1;
  13674.   }
  13675.   HEAP[$blob_addr_i1_i139] = HEAP[$blob_addr_i147];
  13676.   HEAP[$length_addr_i_i140] = 0;
  13677.   var $249 = HEAP[HEAP[$blob_addr_i1_i139] + 48 | 0];
  13678.   HEAP[$base_i148] = $249;
  13679.   if (($249 | 0) != 0) {
  13680.     HEAP[$X_addr_i_i142] = HEAP[$base_i148];
  13681.     var $cond_i162 = HEAP[$X_addr_i_i142];
  13682.   } else {
  13683.     HEAP[$X_addr_i_i_i141] = 111704;
  13684.     var $cond_i162 = HEAP[$X_addr_i_i_i141];
  13685.   }
  13686.   var $cond_i162;
  13687.   HEAP[$layout + 16 | 0] = $cond_i162;
  13688.   var $264 = $face_addr;
  13689.   HEAP[$this_addr_i164] = $264;
  13690.   HEAP[$tag_addr_i165] = 1196445523;
  13691.   do {
  13692.     if (($264 | 0) != 0) {
  13693.       if ((HEAP[$264 + 48 | 0] | 0) == 0) {
  13694.         label = 1739;
  13695.         break;
  13696.       }
  13697.       var $call4_i175 = FUNCTION_TABLE[HEAP[$264 + 48 | 0]]($264, HEAP[$tag_addr_i165], HEAP[$264 + 52 | 0]);
  13698.       HEAP[$blob_i166] = $call4_i175;
  13699.       if ((HEAP[$blob_i166] | 0) != 0) {
  13700.         HEAP[$retval_i163] = HEAP[$blob_i166];
  13701.         break;
  13702.       } else {
  13703.         HEAP[$retval_i163] = 111632;
  13704.         break;
  13705.       }
  13706.     } else {
  13707.       label = 1739;
  13708.     }
  13709.   } while (0);
  13710.   if (label == 1739) {
  13711.     HEAP[$retval_i163] = 111632;
  13712.   }
  13713.   HEAP[$blob_addr_i195] = HEAP[$retval_i163];
  13714.   var $285 = $c_i;
  13715.   for (var $$dest = $285, $$stop = $$dest + 24; $$dest < $$stop; $$dest++) {
  13716.     HEAP[$$dest] = 0;
  13717.   }
  13718.   var $286 = HEAP[$blob_addr_i195];
  13719.   HEAP[$this_addr_i_i192] = $c_i | 0;
  13720.   HEAP[$b_addr_i_i193] = $286;
  13721.   var $this1_i_i201 = HEAP[$this_addr_i_i192];
  13722.   var $call_i_i202 = _hb_blob_reference(HEAP[$b_addr_i_i193]);
  13723.   HEAP[$this1_i_i201 + 20 | 0] = $call_i_i202;
  13724.   HEAP[$this1_i_i201 + 12 | 0] = 0;
  13725.   var $arraydecay1_i205 = $c_i | 0;
  13726.   var $start_i207 = $c_i + 4 | 0;
  13727.   var $arraydecay4_i208 = $c_i | 0;
  13728.   var $start5_i209 = $arraydecay4_i208 + 4 | 0;
  13729.   var $arraydecay6_i210 = $c_i | 0;
  13730.   var $edit_count_i212 = $c_i + 16 | 0;
  13731.   var $writable_i214 = $c_i + 12 | 0;
  13732.   var $start37_i216 = $c_i + 4 | 0;
  13733.   var $start39_i218 = $c_i + 4 | 0;
  13734.   var $end_i220 = $c_i + 8 | 0;
  13735.   var $start43_i222 = $c_i + 4 | 0;
  13736.   var $writable47_i224 = $c_i + 12 | 0;
  13737.   while (1) {
  13738.     HEAP[$this_addr_i1_i191] = $arraydecay1_i205;
  13739.     var $this1_i2_i225 = HEAP[$this_addr_i1_i191];
  13740.     HEAP[$blob_addr_i_i_i189] = HEAP[$this1_i2_i225 + 20 | 0];
  13741.     HEAP[$length_addr_i_i_i190] = 0;
  13742.     HEAP[$this1_i2_i225 + 4 | 0] = HEAP[HEAP[$blob_addr_i_i_i189] + 48 | 0];
  13743.     var $313 = HEAP[$this1_i2_i225 + 4 | 0];
  13744.     HEAP[$blob_addr_i1_i_i188] = HEAP[$this1_i2_i225 + 20 | 0];
  13745.     HEAP[$this1_i2_i225 + 8 | 0] = $313 + HEAP[HEAP[$blob_addr_i1_i_i188] + 52 | 0] | 0;
  13746.     HEAP[$this1_i2_i225 + 16 | 0] = 0;
  13747.     HEAP[$this1_i2_i225 | 0] = 0;
  13748.     if ((HEAP[$start_i207] | 0) == 0) {
  13749.       label = 1745;
  13750.       break;
  13751.     }
  13752.     HEAP[$X_addr_i_i185] = HEAP[$start5_i209];
  13753.     HEAP[$t_i198] = HEAP[$X_addr_i_i185];
  13754.     $sane_i197 = __ZN2OT4GPOS8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i198], $arraydecay6_i210) & 1;
  13755.     var $327 = HEAP[$edit_count_i212];
  13756.     if ($sane_i197 & 1) {
  13757.       label = 1747;
  13758.       break;
  13759.     }
  13760.     HEAP[$edit_count28_i199] = $327;
  13761.     if ((HEAP[$edit_count28_i199] | 0) == 0) {
  13762.       label = 1761;
  13763.       break;
  13764.     }
  13765.     if (HEAP[$writable_i214] & 1) {
  13766.       label = 1761;
  13767.       break;
  13768.     }
  13769.     HEAP[$blob_addr_i13_i182] = HEAP[$blob_addr_i195];
  13770.     HEAP[$length_addr_i_i183] = 0;
  13771.     var $call_i14_i264 = __ZL13_try_writableP9hb_blob_t(HEAP[$blob_addr_i13_i182]);
  13772.     var $tobool3_i_i265 = (HEAP[$length_addr_i_i183] | 0) != 0;
  13773.     if ($call_i14_i264) {
  13774.       if ($tobool3_i_i265) {
  13775.         HEAP[HEAP[$length_addr_i_i183]] = HEAP[HEAP[$blob_addr_i13_i182] + 52 | 0];
  13776.       }
  13777.       HEAP[$retval_i_i181] = HEAP[HEAP[$blob_addr_i13_i182] + 48 | 0];
  13778.     } else {
  13779.       if ($tobool3_i_i265) {
  13780.         HEAP[HEAP[$length_addr_i_i183]] = 0;
  13781.       }
  13782.       HEAP[$retval_i_i181] = 0;
  13783.     }
  13784.     HEAP[$start37_i216] = HEAP[$retval_i_i181];
  13785.     var $342 = HEAP[$start39_i218];
  13786.     HEAP[$blob_addr_i_i184] = HEAP[$blob_addr_i195];
  13787.     HEAP[$end_i220] = $342 + HEAP[HEAP[$blob_addr_i_i184] + 52 | 0] | 0;
  13788.     if ((HEAP[$start43_i222] | 0) == 0) {
  13789.       label = 1761;
  13790.       break;
  13791.     }
  13792.     HEAP[$writable47_i224] = 1;
  13793.   }
  13794.   do {
  13795.     if (label == 1745) {
  13796.       HEAP[$this_addr_i7_i186] = $arraydecay4_i208;
  13797.       var $this1_i8_i238 = HEAP[$this_addr_i7_i186];
  13798.       _hb_blob_destroy(HEAP[$this1_i8_i238 + 20 | 0]);
  13799.       HEAP[$this1_i8_i238 + 20 | 0] = 0;
  13800.       HEAP[$this1_i8_i238 + 8 | 0] = 0;
  13801.       HEAP[$this1_i8_i238 + 4 | 0] = 0;
  13802.       HEAP[$retval_i194] = HEAP[$blob_addr_i195];
  13803.       break;
  13804.     } else if (label == 1747) {
  13805.       if (($327 | 0) == 0) {
  13806.         label = 1761;
  13807.         break;
  13808.       }
  13809.       HEAP[$c_i + 16 | 0] = 0;
  13810.       $sane_i197 = __ZN2OT4GPOS8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$t_i198], $c_i | 0) & 1;
  13811.       if ((HEAP[$c_i + 16 | 0] | 0) == 0) {
  13812.         label = 1761;
  13813.         break;
  13814.       }
  13815.       $sane_i197 = 0;
  13816.       label = 1761;
  13817.       break;
  13818.     }
  13819.   } while (0);
  13820.   do {
  13821.     if (label == 1761) {
  13822.       HEAP[$this_addr_i4_i187] = $c_i | 0;
  13823.       var $this1_i5_i281 = HEAP[$this_addr_i4_i187];
  13824.       _hb_blob_destroy(HEAP[$this1_i5_i281 + 20 | 0]);
  13825.       HEAP[$this1_i5_i281 + 20 | 0] = 0;
  13826.       HEAP[$this1_i5_i281 + 8 | 0] = 0;
  13827.       HEAP[$this1_i5_i281 + 4 | 0] = 0;
  13828.       var $351 = HEAP[$blob_addr_i195];
  13829.       if ($sane_i197 & 1) {
  13830.         HEAP[$retval_i194] = $351;
  13831.         break;
  13832.       } else {
  13833.         _hb_blob_destroy($351);
  13834.         HEAP[$retval_i194] = 111632;
  13835.         break;
  13836.       }
  13837.     }
  13838.   } while (0);
  13839.   HEAP[$layout + 8 | 0] = HEAP[$retval_i194];
  13840.   HEAP[$blob_addr_i298] = HEAP[$layout + 8 | 0];
  13841.   HEAP[$blob_addr_i_i297] = HEAP[$blob_addr_i298];
  13842.   HEAP[$obj_addr_i_i_i296] = HEAP[$blob_addr_i_i297];
  13843.   HEAP[$this_addr_i_i_i_i295] = HEAP[$obj_addr_i_i_i296] | 0;
  13844.   HEAP[$this_addr_i_i_i_i_i294] = HEAP[$this_addr_i_i_i_i295] | 0;
  13845.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i294] | 0] | 0) != -1) {
  13846.     HEAP[HEAP[$blob_addr_i_i297] + 44 | 0] = 1;
  13847.   }
  13848.   HEAP[$blob_addr_i1_i290] = HEAP[$blob_addr_i298];
  13849.   HEAP[$length_addr_i_i291] = 0;
  13850.   var $380 = HEAP[HEAP[$blob_addr_i1_i290] + 48 | 0];
  13851.   HEAP[$base_i299] = $380;
  13852.   if (($380 | 0) != 0) {
  13853.     HEAP[$X_addr_i_i293] = HEAP[$base_i299];
  13854.     var $cond_i313 = HEAP[$X_addr_i_i293];
  13855.   } else {
  13856.     HEAP[$X_addr_i_i_i292] = 111704;
  13857.     var $cond_i313 = HEAP[$X_addr_i_i_i292];
  13858.   }
  13859.   var $cond_i313;
  13860.   HEAP[$layout + 20 | 0] = $cond_i313;
  13861.   HEAP[$this_addr_i316] = HEAP[$layout + 16 | 0];
  13862.   var $this1_i317 = HEAP[$this_addr_i316];
  13863.   HEAP[$ref_tmp_i] = $this1_i317;
  13864.   HEAP[$base_addr_i_i] = $ref_tmp_i;
  13865.   HEAP[$offset_addr_i_i] = $this1_i317 + 8 | 0;
  13866.   var $406 = HEAP[HEAP[$base_addr_i_i]];
  13867.   HEAP[$this_addr_i_i_i] = HEAP[$offset_addr_i_i];
  13868.   HEAP[$base_addr_i_i_i] = $406;
  13869.   HEAP[$this_addr_i_i_i_i315] = HEAP[$this_addr_i_i_i];
  13870.   HEAP[$this_addr_i_i_i_i_i314] = HEAP[$this_addr_i_i_i_i315] | 0;
  13871.   var $this1_i_i_i_i_i319 = HEAP[$this_addr_i_i_i_i_i314];
  13872.   var $conv_i_i_i = ((HEAP[$this1_i_i_i_i_i319 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i319 + 1 | 0] & 255) & 65535;
  13873.   HEAP[$offset_i_i_i] = $conv_i_i_i;
  13874.   if (($conv_i_i_i | 0) != 0) {
  13875.     var $423 = HEAP[$offset_i_i_i];
  13876.     HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  13877.     HEAP[$offset_addr_i_i_i_i] = $423;
  13878.     HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  13879.   } else {
  13880.     HEAP[$X_addr_i_i_i_i_i] = 111704;
  13881.     HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  13882.   }
  13883.   HEAP[$this_addr_i321] = HEAP[$retval_i_i_i] | 0;
  13884.   HEAP[$this_addr_i_i320] = HEAP[$this_addr_i321] | 0;
  13885.   var $this1_i_i323 = HEAP[$this_addr_i_i320];
  13886.   HEAP[$layout + 24 | 0] = ((HEAP[$this1_i_i323 | 0] & 255) << 8) + (HEAP[$this1_i_i323 + 1 | 0] & 255) & 65535;
  13887.   HEAP[$this_addr_i335] = HEAP[$layout + 20 | 0];
  13888.   var $this1_i337 = HEAP[$this_addr_i335];
  13889.   HEAP[$ref_tmp_i336] = $this1_i337;
  13890.   HEAP[$base_addr_i_i333] = $ref_tmp_i336;
  13891.   HEAP[$offset_addr_i_i334] = $this1_i337 + 8 | 0;
  13892.   var $459 = HEAP[HEAP[$base_addr_i_i333]];
  13893.   HEAP[$this_addr_i_i_i330] = HEAP[$offset_addr_i_i334];
  13894.   HEAP[$base_addr_i_i_i331] = $459;
  13895.   HEAP[$this_addr_i_i_i_i328] = HEAP[$this_addr_i_i_i330];
  13896.   HEAP[$this_addr_i_i_i_i_i327] = HEAP[$this_addr_i_i_i_i328] | 0;
  13897.   var $this1_i_i_i_i_i342 = HEAP[$this_addr_i_i_i_i_i327];
  13898.   var $conv_i_i_i352 = ((HEAP[$this1_i_i_i_i_i342 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i342 + 1 | 0] & 255) & 65535;
  13899.   HEAP[$offset_i_i_i332] = $conv_i_i_i352;
  13900.   if (($conv_i_i_i352 | 0) != 0) {
  13901.     var $476 = HEAP[$offset_i_i_i332];
  13902.     HEAP[$P_addr_i_i_i_i325] = HEAP[$base_addr_i_i_i331];
  13903.     HEAP[$offset_addr_i_i_i_i326] = $476;
  13904.     HEAP[$retval_i_i_i329] = HEAP[$P_addr_i_i_i_i325] + HEAP[$offset_addr_i_i_i_i326] | 0;
  13905.   } else {
  13906.     HEAP[$X_addr_i_i_i_i_i324] = 111704;
  13907.     HEAP[$retval_i_i_i329] = HEAP[$X_addr_i_i_i_i_i324];
  13908.   }
  13909.   HEAP[$this_addr_i361] = HEAP[$retval_i_i_i329] | 0;
  13910.   HEAP[$this_addr_i_i360] = HEAP[$this_addr_i361] | 0;
  13911.   var $this1_i_i364 = HEAP[$this_addr_i_i360];
  13912.   HEAP[$layout + 28 | 0] = ((HEAP[$this1_i_i364 | 0] & 255) << 8) + (HEAP[$this1_i_i364 + 1 | 0] & 255) & 65535;
  13913.   HEAP[$this_addr_i385] = HEAP[$layout + 16 | 0];
  13914.   var $this1_i387 = HEAP[$this_addr_i385];
  13915.   HEAP[$ref_tmp_i386] = $this1_i387;
  13916.   HEAP[$base_addr_i_i383] = $ref_tmp_i386;
  13917.   HEAP[$offset_addr_i_i384] = $this1_i387 + 8 | 0;
  13918.   var $512 = HEAP[HEAP[$base_addr_i_i383]];
  13919.   HEAP[$this_addr_i_i_i380] = HEAP[$offset_addr_i_i384];
  13920.   HEAP[$base_addr_i_i_i381] = $512;
  13921.   HEAP[$this_addr_i_i_i_i378] = HEAP[$this_addr_i_i_i380];
  13922.   HEAP[$this_addr_i_i_i_i_i377] = HEAP[$this_addr_i_i_i_i378] | 0;
  13923.   var $this1_i_i_i_i_i392 = HEAP[$this_addr_i_i_i_i_i377];
  13924.   var $conv_i_i_i402 = ((HEAP[$this1_i_i_i_i_i392 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i392 + 1 | 0] & 255) & 65535;
  13925.   HEAP[$offset_i_i_i382] = $conv_i_i_i402;
  13926.   if (($conv_i_i_i402 | 0) != 0) {
  13927.     var $529 = HEAP[$offset_i_i_i382];
  13928.     HEAP[$P_addr_i_i_i_i375] = HEAP[$base_addr_i_i_i381];
  13929.     HEAP[$offset_addr_i_i_i_i376] = $529;
  13930.     HEAP[$retval_i_i_i379] = HEAP[$P_addr_i_i_i_i375] + HEAP[$offset_addr_i_i_i_i376] | 0;
  13931.   } else {
  13932.     HEAP[$X_addr_i_i_i_i_i374] = 111704;
  13933.     HEAP[$retval_i_i_i379] = HEAP[$X_addr_i_i_i_i_i374];
  13934.   }
  13935.   HEAP[$this_addr_i411] = HEAP[$retval_i_i_i379] | 0;
  13936.   HEAP[$this_addr_i_i410] = HEAP[$this_addr_i411] | 0;
  13937.   var $this1_i_i414 = HEAP[$this_addr_i_i410];
  13938.   var $553 = _calloc(((HEAP[$this1_i_i414 | 0] & 255) << 8) + (HEAP[$this1_i_i414 + 1 | 0] & 255) & 65535, 12);
  13939.   HEAP[$layout + 32 | 0] = $553;
  13940.   HEAP[$this_addr_i435] = HEAP[$layout + 20 | 0];
  13941.   var $this1_i437 = HEAP[$this_addr_i435];
  13942.   HEAP[$ref_tmp_i436] = $this1_i437;
  13943.   HEAP[$base_addr_i_i433] = $ref_tmp_i436;
  13944.   HEAP[$offset_addr_i_i434] = $this1_i437 + 8 | 0;
  13945.   var $566 = HEAP[HEAP[$base_addr_i_i433]];
  13946.   HEAP[$this_addr_i_i_i430] = HEAP[$offset_addr_i_i434];
  13947.   HEAP[$base_addr_i_i_i431] = $566;
  13948.   HEAP[$this_addr_i_i_i_i428] = HEAP[$this_addr_i_i_i430];
  13949.   HEAP[$this_addr_i_i_i_i_i427] = HEAP[$this_addr_i_i_i_i428] | 0;
  13950.   var $this1_i_i_i_i_i442 = HEAP[$this_addr_i_i_i_i_i427];
  13951.   var $conv_i_i_i452 = ((HEAP[$this1_i_i_i_i_i442 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i442 + 1 | 0] & 255) & 65535;
  13952.   HEAP[$offset_i_i_i432] = $conv_i_i_i452;
  13953.   if (($conv_i_i_i452 | 0) != 0) {
  13954.     var $583 = HEAP[$offset_i_i_i432];
  13955.     HEAP[$P_addr_i_i_i_i425] = HEAP[$base_addr_i_i_i431];
  13956.     HEAP[$offset_addr_i_i_i_i426] = $583;
  13957.     HEAP[$retval_i_i_i429] = HEAP[$P_addr_i_i_i_i425] + HEAP[$offset_addr_i_i_i_i426] | 0;
  13958.   } else {
  13959.     HEAP[$X_addr_i_i_i_i_i424] = 111704;
  13960.     HEAP[$retval_i_i_i429] = HEAP[$X_addr_i_i_i_i_i424];
  13961.   }
  13962.   HEAP[$this_addr_i461] = HEAP[$retval_i_i_i429] | 0;
  13963.   HEAP[$this_addr_i_i460] = HEAP[$this_addr_i461] | 0;
  13964.   var $this1_i_i464 = HEAP[$this_addr_i_i460];
  13965.   var $607 = _calloc(((HEAP[$this1_i_i464 | 0] & 255) << 8) + (HEAP[$this1_i_i464 + 1 | 0] & 255) & 65535, 12);
  13966.   HEAP[$layout + 36 | 0] = $607;
  13967.   do {
  13968.     if ((HEAP[$layout + 24 | 0] | 0) != 0) {
  13969.       if ((HEAP[$layout + 32 | 0] | 0) != 0) {
  13970.         label = 1783;
  13971.         break;
  13972.       } else {
  13973.         break;
  13974.       }
  13975.     } else {
  13976.       label = 1783;
  13977.     }
  13978.   } while (0);
  13979.   do {
  13980.     if (label == 1783) {
  13981.       if ((HEAP[$layout + 28 | 0] | 0) != 0) {
  13982.         if ((HEAP[$layout + 36 | 0] | 0) == 0) {
  13983.           break;
  13984.         }
  13985.       }
  13986.       $i = 0;
  13987.       L2333 : do {
  13988.         if ($i >>> 0 < HEAP[$layout + 24 | 0] >>> 0) {
  13989.           while (1) {
  13990.             HEAP[$this_addr_i475] = HEAP[$layout + 16 | 0];
  13991.             HEAP[$i_addr_i] = $i;
  13992.             var $call_i = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i475], HEAP[$i_addr_i]);
  13993.             HEAP[$X_addr_i_i474] = $call_i;
  13994.             __ZNK2OT11SubstLookup12add_coverageI15hb_set_digest_tEEvPT_(HEAP[$X_addr_i_i474], HEAP[$layout + 32 | 0] + ($i * 12 & -1) | 0);
  13995.             $i = $i + 1 | 0;
  13996.             if ($i >>> 0 >= HEAP[$layout + 24 | 0] >>> 0) {
  13997.               break L2333;
  13998.             }
  13999.           }
  14000.         }
  14001.       } while (0);
  14002.       $i38 = 0;
  14003.       var $660 = $layout;
  14004.       L2338 : do {
  14005.         if ($i38 >>> 0 < HEAP[$layout + 28 | 0] >>> 0) {
  14006.           var $697 = $660;
  14007.           while (1) {
  14008.             var $697;
  14009.             HEAP[$this_addr_i478] = HEAP[$697 + 20 | 0];
  14010.             HEAP[$i_addr_i479] = $i38;
  14011.             var $call_i481 = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i478], HEAP[$i_addr_i479]);
  14012.             HEAP[$X_addr_i_i477] = $call_i481;
  14013.             var $arrayidx46 = HEAP[$layout + 36 | 0] + ($i38 * 12 & -1) | 0;
  14014.             HEAP[$this_addr_i486] = HEAP[$X_addr_i_i477];
  14015.             HEAP[$glyphs_addr_i] = $arrayidx46;
  14016.             var $this1_i488 = HEAP[$this_addr_i486];
  14017.             HEAP[$this_addr_i_i485] = $c_i487;
  14018.             HEAP[$this_addr_i_i_i484] = HEAP[$this_addr_i_i485];
  14019.             HEAP[HEAP[$this_addr_i_i_i484] | 0] = 0;
  14020.             HEAP[$last_i] = 0;
  14021.             HEAP[$this_addr_i2_i] = $this1_i488;
  14022.             HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] + 4 | 0;
  14023.             HEAP[$this_addr_i_i_i_i483] = HEAP[$this_addr_i_i1_i] | 0;
  14024.             var $this1_i_i_i_i491 = HEAP[$this_addr_i_i_i_i483];
  14025.             HEAP[$count_i] = ((HEAP[$this1_i_i_i_i491 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i491 + 1 | 0] & 255) & 65535;
  14026.             HEAP[$i_i] = 0;
  14027.             L2342 : do {
  14028.               if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  14029.                 var $713 = $this1_i488;
  14030.                 while (1) {
  14031.                   var $call2_i = __ZNK2OT9PosLookup12get_subtableEj($this1_i488, HEAP[$i_i]);
  14032.                   HEAP[$this_addr_i7_i482] = $713;
  14033.                   HEAP[$this_addr_i_i6_i] = HEAP[$this_addr_i7_i482] | 0;
  14034.                   HEAP[$this_addr_i_i_i5_i] = HEAP[$this_addr_i_i6_i] | 0;
  14035.                   var $this1_i_i_i11_i = HEAP[$this_addr_i_i_i5_i];
  14036.                   var $call4_i495 = __ZNK2OT17PosLookupSubTable8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_j($call2_i, $c_i487, ((HEAP[$this1_i_i_i11_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i11_i + 1 | 0] & 255) & 65535);
  14037.                   HEAP[$coverage_i] = $call4_i495;
  14038.                   if ((HEAP[$coverage_i] | 0) != (HEAP[$last_i] | 0)) {
  14039.                     __ZNK2OT8Coverage12add_coverageI15hb_set_digest_tEEvPT_(HEAP[$coverage_i], HEAP[$glyphs_addr_i]);
  14040.                     HEAP[$last_i] = HEAP[$coverage_i];
  14041.                   }
  14042.                   HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  14043.                   if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  14044.                     break L2342;
  14045.                   }
  14046.                 }
  14047.               }
  14048.             } while (0);
  14049.             $i38 = $i38 + 1 | 0;
  14050.             var $729 = $layout;
  14051.             if ($i38 >>> 0 < HEAP[$layout + 28 | 0] >>> 0) {
  14052.               var $697 = $729;
  14053.             } else {
  14054.               var $_lcssa = $729;
  14055.               break L2338;
  14056.             }
  14057.           }
  14058.         } else {
  14059.           var $_lcssa = $660;
  14060.         }
  14061.       } while (0);
  14062.       var $_lcssa;
  14063.       $retval = $_lcssa;
  14064.       var $730 = $retval;
  14065.       STACKTOP = __stackBase__;
  14066.       return $730;
  14067.     }
  14068.   } while (0);
  14069.   HEAP[$layout_addr_i] = $layout;
  14070.   _hb_blob_destroy(HEAP[HEAP[$layout_addr_i] | 0]);
  14071.   _hb_blob_destroy(HEAP[HEAP[$layout_addr_i] + 4 | 0]);
  14072.   _hb_blob_destroy(HEAP[HEAP[$layout_addr_i] + 8 | 0]);
  14073.   _free(HEAP[HEAP[$layout_addr_i] + 32 | 0]);
  14074.   _free(HEAP[HEAP[$layout_addr_i] + 36 | 0]);
  14075.   _free(HEAP[$layout_addr_i]);
  14076.   $retval = 0;
  14077.   var $730 = $retval;
  14078.   STACKTOP = __stackBase__;
  14079.   return $730;
  14080. }
  14081. function __Z21_hb_ot_layout_destroyP14hb_ot_layout_t($layout) {
  14082.   var $layout_addr;
  14083.   $layout_addr = $layout;
  14084.   _hb_blob_destroy(HEAP[$layout_addr | 0]);
  14085.   _hb_blob_destroy(HEAP[$layout_addr + 4 | 0]);
  14086.   _hb_blob_destroy(HEAP[$layout_addr + 8 | 0]);
  14087.   _free(HEAP[$layout_addr + 32 | 0]);
  14088.   _free(HEAP[$layout_addr + 36 | 0]);
  14089.   _free($layout_addr);
  14090.   return;
  14091. }
  14092. function __ZNK2OT11SubstLookup12add_coverageI15hb_set_digest_tEEvPT_($this, $glyphs) {
  14093.   var __stackBase__ = STACKTOP;
  14094.   STACKTOP = STACKTOP + 36 | 0;
  14095.   var $this_addr_i_i_i5 = __stackBase__;
  14096.   var $this_addr_i_i6 = __stackBase__ + 4;
  14097.   var $this_addr_i7 = __stackBase__ + 8;
  14098.   var $this_addr_i_i_i = __stackBase__ + 12;
  14099.   var $this_addr_i_i1 = __stackBase__ + 16;
  14100.   var $this_addr_i2 = __stackBase__ + 20;
  14101.   var $this_addr_i_i = __stackBase__ + 24;
  14102.   var $this_addr_i = __stackBase__ + 28;
  14103.   var $glyphs_addr;
  14104.   var $c = __stackBase__ + 32;
  14105.   var $last;
  14106.   var $count;
  14107.   var $i;
  14108.   var $coverage;
  14109.   $glyphs_addr = $glyphs;
  14110.   var $this1 = $this;
  14111.   HEAP[$this_addr_i] = $c;
  14112.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i];
  14113.   HEAP[HEAP[$this_addr_i_i] | 0] = 0;
  14114.   $last = 0;
  14115.   HEAP[$this_addr_i2] = $this1;
  14116.   HEAP[$this_addr_i_i1] = HEAP[$this_addr_i2] + 4 | 0;
  14117.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i1] | 0;
  14118.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  14119.   $count = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  14120.   $i = 0;
  14121.   if ($i >>> 0 >= $count >>> 0) {
  14122.     STACKTOP = __stackBase__;
  14123.     return;
  14124.   }
  14125.   var $16 = $this1;
  14126.   while (1) {
  14127.     var $call2 = __ZNK2OT11SubstLookup12get_subtableEj($this1, $i);
  14128.     HEAP[$this_addr_i7] = $16;
  14129.     HEAP[$this_addr_i_i6] = HEAP[$this_addr_i7] | 0;
  14130.     HEAP[$this_addr_i_i_i5] = HEAP[$this_addr_i_i6] | 0;
  14131.     var $this1_i_i_i11 = HEAP[$this_addr_i_i_i5];
  14132.     $coverage = __ZNK2OT19SubstLookupSubTable8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_j($call2, $c, ((HEAP[$this1_i_i_i11 | 0] & 255) << 8) + (HEAP[$this1_i_i_i11 + 1 | 0] & 255) & 65535);
  14133.     if (($coverage | 0) != ($last | 0)) {
  14134.       __ZNK2OT8Coverage12add_coverageI15hb_set_digest_tEEvPT_($coverage, $glyphs_addr);
  14135.       $last = $coverage;
  14136.     }
  14137.     $i = $i + 1 | 0;
  14138.     if ($i >>> 0 >= $count >>> 0) {
  14139.       break;
  14140.     }
  14141.   }
  14142.   STACKTOP = __stackBase__;
  14143.   return;
  14144. }
  14145. function __ZL18get_gsubgpos_tableP9hb_face_tj($face, $table_tag) {
  14146.   var label = 0;
  14147.   var __stackBase__ = STACKTOP;
  14148.   STACKTOP = STACKTOP + 60 | 0;
  14149.   var $X_addr_i_i = __stackBase__;
  14150.   var $data_addr_i_i = __stackBase__ + 4;
  14151.   var $face_addr_i_i8 = __stackBase__ + 8;
  14152.   var $face_addr_i9 = __stackBase__ + 12;
  14153.   var $data_i = __stackBase__ + 16;
  14154.   var $X_addr_i_i_i1 = __stackBase__ + 20;
  14155.   var $retval_i2 = __stackBase__ + 24;
  14156.   var $face_addr_i3 = __stackBase__ + 28;
  14157.   var $X_addr_i_i_i = __stackBase__ + 32;
  14158.   var $data_addr_i_i_i = __stackBase__ + 36;
  14159.   var $face_addr_i_i_i = __stackBase__ + 40;
  14160.   var $face_addr_i_i = __stackBase__ + 44;
  14161.   var $data_i_i = __stackBase__ + 48;
  14162.   var $retval_i = __stackBase__ + 52;
  14163.   var $face_addr_i = __stackBase__ + 56;
  14164.   var $retval;
  14165.   var $face_addr;
  14166.   $face_addr = $face;
  14167.   var $0 = $table_tag;
  14168.   if (($0 | 0) == 1196643650) {
  14169.     HEAP[$face_addr_i] = $face_addr;
  14170.     HEAP[$face_addr_i_i] = HEAP[$face_addr_i];
  14171.     var $11 = HEAP[HEAP[$face_addr_i_i] + 72 | 0];
  14172.     HEAP[$data_i_i] = $11;
  14173.     L2368 : do {
  14174.       if (($11 | 0) != 0) {
  14175.         label = 1824;
  14176.       } else {
  14177.         while (1) {
  14178.           HEAP[$face_addr_i_i_i] = HEAP[$face_addr_i_i];
  14179.           var $call_i_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i_i]);
  14180.           HEAP[$data_i_i] = $call_i_i_i;
  14181.           if (($call_i_i_i | 0) == 0) {
  14182.             HEAP[$data_i_i] = -1;
  14183.           }
  14184.           var $22 = HEAP[$data_i_i];
  14185.           if ((HEAP[HEAP[$face_addr_i_i] + 72 | 0] | 0) == 0) {
  14186.             break;
  14187.           }
  14188.           do {
  14189.             if (($22 | 0) != 0) {
  14190.               if ((HEAP[$data_i_i] | 0) == -1) {
  14191.                 break;
  14192.               }
  14193.               if ((HEAP[$data_i_i] | 0) == 1) {
  14194.                 break;
  14195.               }
  14196.               HEAP[$data_addr_i_i_i] = HEAP[$data_i_i];
  14197.               __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i_i]);
  14198.             }
  14199.           } while (0);
  14200.           var $33 = HEAP[HEAP[$face_addr_i_i] + 72 | 0];
  14201.           HEAP[$data_i_i] = $33;
  14202.           if (($33 | 0) != 0) {
  14203.             label = 1824;
  14204.             break L2368;
  14205.           }
  14206.         }
  14207.         HEAP[HEAP[$face_addr_i_i] + 72 | 0] = $22;
  14208.         if ((HEAP[$data_i_i] | 0) != 0) {
  14209.           label = 1824;
  14210.           break;
  14211.         }
  14212.         label = 1825;
  14213.         break;
  14214.       }
  14215.     } while (0);
  14216.     do {
  14217.       if (label == 1824) {
  14218.         if (!((HEAP[$data_i_i] | 0) == -1 ^ 1)) {
  14219.           label = 1825;
  14220.           break;
  14221.         }
  14222.         HEAP[$retval_i] = HEAP[HEAP[HEAP[$face_addr_i] + 72 | 0] + 16 | 0];
  14223.         break;
  14224.       }
  14225.     } while (0);
  14226.     if (label == 1825) {
  14227.       HEAP[$X_addr_i_i_i] = 111704;
  14228.       HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  14229.     }
  14230.     $retval = HEAP[$retval_i];
  14231.     var $115 = $retval;
  14232.     STACKTOP = __stackBase__;
  14233.     return $115;
  14234.   } else if (($0 | 0) == 1196445523) {
  14235.     HEAP[$face_addr_i3] = $face_addr;
  14236.     HEAP[$face_addr_i9] = HEAP[$face_addr_i3];
  14237.     var $66 = HEAP[HEAP[$face_addr_i9] + 72 | 0];
  14238.     HEAP[$data_i] = $66;
  14239.     L2393 : do {
  14240.       if (($66 | 0) != 0) {
  14241.         label = 1840;
  14242.       } else {
  14243.         while (1) {
  14244.           HEAP[$face_addr_i_i8] = HEAP[$face_addr_i9];
  14245.           var $call_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i8]);
  14246.           HEAP[$data_i] = $call_i_i;
  14247.           if (($call_i_i | 0) == 0) {
  14248.             HEAP[$data_i] = -1;
  14249.           }
  14250.           var $77 = HEAP[$data_i];
  14251.           if ((HEAP[HEAP[$face_addr_i9] + 72 | 0] | 0) == 0) {
  14252.             break;
  14253.           }
  14254.           do {
  14255.             if (($77 | 0) != 0) {
  14256.               if ((HEAP[$data_i] | 0) == -1) {
  14257.                 break;
  14258.               }
  14259.               if ((HEAP[$data_i] | 0) == 1) {
  14260.                 break;
  14261.               }
  14262.               HEAP[$data_addr_i_i] = HEAP[$data_i];
  14263.               __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i]);
  14264.             }
  14265.           } while (0);
  14266.           var $88 = HEAP[HEAP[$face_addr_i9] + 72 | 0];
  14267.           HEAP[$data_i] = $88;
  14268.           if (($88 | 0) != 0) {
  14269.             label = 1840;
  14270.             break L2393;
  14271.           }
  14272.         }
  14273.         HEAP[HEAP[$face_addr_i9] + 72 | 0] = $77;
  14274.         if ((HEAP[$data_i] | 0) != 0) {
  14275.           label = 1840;
  14276.           break;
  14277.         }
  14278.         label = 1841;
  14279.         break;
  14280.       }
  14281.     } while (0);
  14282.     do {
  14283.       if (label == 1840) {
  14284.         if (!((HEAP[$data_i] | 0) == -1 ^ 1)) {
  14285.           label = 1841;
  14286.           break;
  14287.         }
  14288.         HEAP[$retval_i2] = HEAP[HEAP[HEAP[$face_addr_i3] + 72 | 0] + 20 | 0];
  14289.         break;
  14290.       }
  14291.     } while (0);
  14292.     if (label == 1841) {
  14293.       HEAP[$X_addr_i_i_i1] = 111704;
  14294.       HEAP[$retval_i2] = HEAP[$X_addr_i_i_i1];
  14295.     }
  14296.     $retval = HEAP[$retval_i2];
  14297.     var $115 = $retval;
  14298.     STACKTOP = __stackBase__;
  14299.     return $115;
  14300.   } else {
  14301.     HEAP[$X_addr_i_i] = 111704;
  14302.     $retval = HEAP[$X_addr_i_i];
  14303.     var $115 = $retval;
  14304.     STACKTOP = __stackBase__;
  14305.     return $115;
  14306.   }
  14307. }
  14308. function __ZNK2OT8GSUBGPOS17find_script_indexEjPj($this, $tag, $index) {
  14309.   var __stackBase__ = STACKTOP;
  14310.   STACKTOP = STACKTOP + 129 | 0;
  14311.   var $this_addr_i_i_i_i_i = __stackBase__;
  14312.   var $this_addr_i_i15_i_i = __stackBase__ + 4;
  14313.   var $a_addr_i_i_i_i = __stackBase__ + 8;
  14314.   var $b_i_i_i_i = __stackBase__ + 12;
  14315.   var $this_addr_i16_i_i = __stackBase__ + 16;
  14316.   var $a_addr_i_i_i = __stackBase__ + 20;
  14317.   var $this_addr_i_i1_i_i = __stackBase__ + 24;
  14318.   var $this_addr_i2_i_i = __stackBase__ + 28;
  14319.   var $this_addr_i_i_i_i1 = __stackBase__ + 32;
  14320.   var $this_addr_i_i_i2 = __stackBase__ + 36;
  14321.   var $retval_i_i3 = __stackBase__ + 40;
  14322.   var $this_addr_i_i4 = __stackBase__ + 44;
  14323.   var $x_addr_i_i = __stackBase__ + 48;
  14324.   var $count_i_i = __stackBase__ + 52;
  14325.   var $i_i_i = __stackBase__ + 56;
  14326.   var $p_i_i = __stackBase__ + 60;
  14327.   var $retval_i = __stackBase__ + 64;
  14328.   var $this_addr_i = __stackBase__ + 65;
  14329.   var $tag_addr_i = __stackBase__ + 69;
  14330.   var $index_addr_i = __stackBase__ + 73;
  14331.   var $i_i = __stackBase__ + 77;
  14332.   var $X_addr_i_i_i_i = __stackBase__ + 81;
  14333.   var $P_addr_i_i_i = __stackBase__ + 85;
  14334.   var $offset_addr_i_i_i = __stackBase__ + 89;
  14335.   var $this_addr_i_i_i_i = __stackBase__ + 93;
  14336.   var $this_addr_i_i_i = __stackBase__ + 97;
  14337.   var $retval_i_i = __stackBase__ + 101;
  14338.   var $this_addr_i_i = __stackBase__ + 105;
  14339.   var $base_addr_i_i = __stackBase__ + 109;
  14340.   var $offset_i_i = __stackBase__ + 113;
  14341.   var $base_addr_i = __stackBase__ + 117;
  14342.   var $offset_addr_i = __stackBase__ + 121;
  14343.   var $ref_tmp = __stackBase__ + 125;
  14344.   var $this1 = $this;
  14345.   HEAP[$ref_tmp] = $this1;
  14346.   HEAP[$base_addr_i] = $ref_tmp;
  14347.   HEAP[$offset_addr_i] = $this1 + 4 | 0;
  14348.   var $6 = HEAP[HEAP[$base_addr_i]];
  14349.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  14350.   HEAP[$base_addr_i_i] = $6;
  14351.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  14352.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  14353.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  14354.   HEAP[$offset_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  14355.   if ((HEAP[$offset_i_i] | 0) != 0) {
  14356.     var $24 = HEAP[$offset_i_i];
  14357.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  14358.     HEAP[$offset_addr_i_i_i] = $24;
  14359.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  14360.   } else {
  14361.     HEAP[$X_addr_i_i_i_i] = 111704;
  14362.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  14363.   }
  14364.   HEAP[$this_addr_i] = HEAP[$retval_i_i];
  14365.   HEAP[$tag_addr_i] = $tag;
  14366.   HEAP[$index_addr_i] = $index;
  14367.   HEAP[$this_addr_i_i4] = HEAP[$this_addr_i];
  14368.   HEAP[$x_addr_i_i] = $tag_addr_i;
  14369.   var $this1_i_i5 = HEAP[$this_addr_i_i4];
  14370.   HEAP[$this_addr_i_i_i2] = $this1_i_i5 | 0;
  14371.   HEAP[$this_addr_i_i_i_i1] = HEAP[$this_addr_i_i_i2] | 0;
  14372.   var $this1_i_i_i_i8 = HEAP[$this_addr_i_i_i_i1];
  14373.   var $conv_i_i18 = ((HEAP[$this1_i_i_i_i8 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i8 + 1 | 0] & 255) & 65535;
  14374.   HEAP[$count_i_i] = $conv_i_i18;
  14375.   L2420 : do {
  14376.     if ($conv_i_i18 >>> 0 < 32) {
  14377.       HEAP[$i_i_i] = 0;
  14378.       L2422 : do {
  14379.         if (HEAP[$i_i_i] >>> 0 < HEAP[$count_i_i] >>> 0) {
  14380.           var $array_i_i = $this1_i_i5 + 2 | 0;
  14381.           while (1) {
  14382.             var $78 = HEAP[HEAP[$x_addr_i_i]];
  14383.             HEAP[$this_addr_i16_i_i] = $array_i_i + (HEAP[$i_i_i] * 6 & -1) | 0;
  14384.             HEAP[$a_addr_i_i_i] = $78;
  14385.             var $80 = HEAP[$a_addr_i_i_i];
  14386.             HEAP[$this_addr_i_i15_i_i] = HEAP[$this_addr_i16_i_i] | 0;
  14387.             HEAP[$a_addr_i_i_i_i] = $80;
  14388.             HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i15_i_i] | 0;
  14389.             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  14390.             HEAP[$b_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 3 | 0] & 255) | 0;
  14391.             if (HEAP[$a_addr_i_i_i_i] >>> 0 < HEAP[$b_i_i_i_i] >>> 0) {
  14392.               var $cond3_i_i_i_i = -1;
  14393.             } else {
  14394.               var $cond3_i_i_i_i = (HEAP[$a_addr_i_i_i_i] | 0) == (HEAP[$b_i_i_i_i] | 0) ? 0 : 1;
  14395.             }
  14396.             var $cond3_i_i_i_i;
  14397.             var $89 = HEAP[$i_i_i];
  14398.             if (($cond3_i_i_i_i | 0) == 0) {
  14399.               break;
  14400.             }
  14401.             HEAP[$i_i_i] = $89 + 1 | 0;
  14402.             if (HEAP[$i_i_i] >>> 0 >= HEAP[$count_i_i] >>> 0) {
  14403.               break L2422;
  14404.             }
  14405.           }
  14406.           HEAP[$retval_i_i3] = $89;
  14407.           var $107 = $89;
  14408.           break L2420;
  14409.         }
  14410.       } while (0);
  14411.       HEAP[$retval_i_i3] = -1;
  14412.       var $107 = -1;
  14413.     } else {
  14414.       var $93 = HEAP[$x_addr_i_i];
  14415.       HEAP[$this_addr_i2_i_i] = $this1_i_i5 | 0;
  14416.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] | 0;
  14417.       var $this1_i_i5_i_i = HEAP[$this_addr_i_i1_i_i];
  14418.       var $103 = _bsearch($93, $this1_i_i5 + 2 | 0, ((HEAP[$this1_i_i5_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i + 1 | 0] & 255) & 65535, 6, 24);
  14419.       HEAP[$p_i_i] = $103;
  14420.       if ((HEAP[$p_i_i] | 0) != 0) {
  14421.         var $cond_i_i = (HEAP[$p_i_i] - ($this1_i_i5 + 2) | 0) / 6 & -1;
  14422.       } else {
  14423.         var $cond_i_i = -1;
  14424.       }
  14425.       var $cond_i_i;
  14426.       HEAP[$retval_i_i3] = $cond_i_i;
  14427.       var $107 = $cond_i_i;
  14428.     }
  14429.   } while (0);
  14430.   var $107;
  14431.   HEAP[$i_i] = $107;
  14432.   var $tobool_i = (HEAP[$index_addr_i] | 0) != 0;
  14433.   if (($107 | 0) != -1) {
  14434.     if ($tobool_i) {
  14435.       HEAP[HEAP[$index_addr_i]] = HEAP[$i_i];
  14436.     }
  14437.     HEAP[$retval_i] = 1;
  14438.     var $118 = HEAP[$retval_i];
  14439.     var $119 = $retval_i;
  14440.     var $120 = $this_addr_i;
  14441.     var $121 = $tag_addr_i;
  14442.     var $122 = $index_addr_i;
  14443.     var $123 = $i_i;
  14444.     STACKTOP = __stackBase__;
  14445.     return $118;
  14446.   } else {
  14447.     if ($tobool_i) {
  14448.       HEAP[HEAP[$index_addr_i]] = 65535;
  14449.     }
  14450.     HEAP[$retval_i] = 0;
  14451.     var $118 = HEAP[$retval_i];
  14452.     var $119 = $retval_i;
  14453.     var $120 = $this_addr_i;
  14454.     var $121 = $tag_addr_i;
  14455.     var $122 = $index_addr_i;
  14456.     var $123 = $i_i;
  14457.     STACKTOP = __stackBase__;
  14458.     return $118;
  14459.   }
  14460. }
  14461. function __ZNK2OT8GSUBGPOS10get_scriptEj($this, $i) {
  14462.   var __stackBase__ = STACKTOP;
  14463.   STACKTOP = STACKTOP + 128 | 0;
  14464.   var $X_addr_i_i_i_i_i = __stackBase__;
  14465.   var $P_addr_i_i_i_i = __stackBase__ + 4;
  14466.   var $offset_addr_i_i_i_i = __stackBase__ + 8;
  14467.   var $this_addr_i_i_i_i_i = __stackBase__ + 12;
  14468.   var $this_addr_i_i_i1_i = __stackBase__ + 16;
  14469.   var $retval_i_i_i = __stackBase__ + 20;
  14470.   var $this_addr_i_i2_i = __stackBase__ + 24;
  14471.   var $base_addr_i_i_i = __stackBase__ + 28;
  14472.   var $offset_i_i_i = __stackBase__ + 32;
  14473.   var $base_addr_i_i1 = __stackBase__ + 36;
  14474.   var $offset_addr_i_i = __stackBase__ + 40;
  14475.   var $X_addr_i_i_i_i2 = __stackBase__ + 44;
  14476.   var $this_addr_i_i_i_i3 = __stackBase__ + 48;
  14477.   var $this_addr_i_i_i4 = __stackBase__ + 52;
  14478.   var $retval_i_i5 = __stackBase__ + 56;
  14479.   var $this_addr_i_i6 = __stackBase__ + 60;
  14480.   var $i_addr_i_i = __stackBase__ + 64;
  14481.   var $this_addr_i = __stackBase__ + 68;
  14482.   var $i_addr_i = __stackBase__ + 72;
  14483.   var $ref_tmp_i = __stackBase__ + 76;
  14484.   var $X_addr_i_i_i_i = __stackBase__ + 80;
  14485.   var $P_addr_i_i_i = __stackBase__ + 84;
  14486.   var $offset_addr_i_i_i = __stackBase__ + 88;
  14487.   var $this_addr_i_i_i_i = __stackBase__ + 92;
  14488.   var $this_addr_i_i_i = __stackBase__ + 96;
  14489.   var $retval_i_i = __stackBase__ + 100;
  14490.   var $this_addr_i_i = __stackBase__ + 104;
  14491.   var $base_addr_i_i = __stackBase__ + 108;
  14492.   var $offset_i_i = __stackBase__ + 112;
  14493.   var $base_addr_i = __stackBase__ + 116;
  14494.   var $offset_addr_i = __stackBase__ + 120;
  14495.   var $ref_tmp = __stackBase__ + 124;
  14496.   var $this1 = $this;
  14497.   HEAP[$ref_tmp] = $this1;
  14498.   HEAP[$base_addr_i] = $ref_tmp;
  14499.   HEAP[$offset_addr_i] = $this1 + 4 | 0;
  14500.   var $6 = HEAP[HEAP[$base_addr_i]];
  14501.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  14502.   HEAP[$base_addr_i_i] = $6;
  14503.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  14504.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  14505.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  14506.   HEAP[$offset_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  14507.   if ((HEAP[$offset_i_i] | 0) != 0) {
  14508.     var $24 = HEAP[$offset_i_i];
  14509.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  14510.     HEAP[$offset_addr_i_i_i] = $24;
  14511.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  14512.   } else {
  14513.     HEAP[$X_addr_i_i_i_i] = 111704;
  14514.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  14515.   }
  14516.   HEAP[$this_addr_i] = HEAP[$retval_i_i];
  14517.   HEAP[$i_addr_i] = $i;
  14518.   var $this1_i = HEAP[$this_addr_i];
  14519.   HEAP[$ref_tmp_i] = $this1_i;
  14520.   var $45 = HEAP[$i_addr_i];
  14521.   HEAP[$this_addr_i_i6] = $this1_i;
  14522.   HEAP[$i_addr_i_i] = $45;
  14523.   var $this1_i_i7 = HEAP[$this_addr_i_i6];
  14524.   var $49 = HEAP[$i_addr_i_i];
  14525.   HEAP[$this_addr_i_i_i4] = $this1_i_i7 | 0;
  14526.   HEAP[$this_addr_i_i_i_i3] = HEAP[$this_addr_i_i_i4] | 0;
  14527.   var $this1_i_i_i_i10 = HEAP[$this_addr_i_i_i_i3];
  14528.   if ($49 >>> 0 >= (((HEAP[$this1_i_i_i_i10 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i10 + 1 | 0] & 255) & 65535) >>> 0) {
  14529.     HEAP[$X_addr_i_i_i_i2] = 111704;
  14530.     HEAP[$retval_i_i5] = HEAP[$X_addr_i_i_i_i2];
  14531.   } else {
  14532.     HEAP[$retval_i_i5] = $this1_i_i7 + (HEAP[$i_addr_i_i] * 6 & -1) + 2 | 0;
  14533.   }
  14534.   var $65 = HEAP[$retval_i_i5] + 4 | 0;
  14535.   HEAP[$base_addr_i_i1] = $ref_tmp_i;
  14536.   HEAP[$offset_addr_i_i] = $65;
  14537.   var $71 = HEAP[HEAP[$base_addr_i_i1]];
  14538.   HEAP[$this_addr_i_i2_i] = HEAP[$offset_addr_i_i];
  14539.   HEAP[$base_addr_i_i_i] = $71;
  14540.   HEAP[$this_addr_i_i_i1_i] = HEAP[$this_addr_i_i2_i];
  14541.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i] | 0;
  14542.   var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  14543.   var $conv_i_i_i = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  14544.   HEAP[$offset_i_i_i] = $conv_i_i_i;
  14545.   if (($conv_i_i_i | 0) != 0) {
  14546.     var $88 = HEAP[$offset_i_i_i];
  14547.     HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  14548.     HEAP[$offset_addr_i_i_i_i] = $88;
  14549.     HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  14550.     var $96 = HEAP[$retval_i_i_i];
  14551.     var $97 = $retval_i_i_i;
  14552.     var $98 = $this_addr_i_i2_i;
  14553.     var $99 = $base_addr_i_i_i;
  14554.     var $100 = $offset_i_i_i;
  14555.     var $101 = $base_addr_i_i1;
  14556.     var $102 = $offset_addr_i_i;
  14557.     var $103 = $this_addr_i;
  14558.     var $104 = $i_addr_i;
  14559.     var $105 = $ref_tmp_i;
  14560.     STACKTOP = __stackBase__;
  14561.     return $96;
  14562.   } else {
  14563.     HEAP[$X_addr_i_i_i_i_i] = 111704;
  14564.     HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  14565.     var $96 = HEAP[$retval_i_i_i];
  14566.     var $97 = $retval_i_i_i;
  14567.     var $98 = $this_addr_i_i2_i;
  14568.     var $99 = $base_addr_i_i_i;
  14569.     var $100 = $offset_i_i_i;
  14570.     var $101 = $base_addr_i_i1;
  14571.     var $102 = $offset_addr_i_i;
  14572.     var $103 = $this_addr_i;
  14573.     var $104 = $i_addr_i;
  14574.     var $105 = $ref_tmp_i;
  14575.     STACKTOP = __stackBase__;
  14576.     return $96;
  14577.   }
  14578. }
  14579. function __ZNK2OT6Script19find_lang_sys_indexEjPj($this, $tag, $index) {
  14580.   var __stackBase__ = STACKTOP;
  14581.   STACKTOP = STACKTOP + 81 | 0;
  14582.   var $this_addr_i_i_i_i_i = __stackBase__;
  14583.   var $this_addr_i_i15_i_i = __stackBase__ + 4;
  14584.   var $a_addr_i_i_i_i = __stackBase__ + 8;
  14585.   var $b_i_i_i_i = __stackBase__ + 12;
  14586.   var $this_addr_i16_i_i = __stackBase__ + 16;
  14587.   var $a_addr_i_i_i = __stackBase__ + 20;
  14588.   var $this_addr_i_i1_i_i = __stackBase__ + 24;
  14589.   var $this_addr_i2_i_i = __stackBase__ + 28;
  14590.   var $this_addr_i_i_i_i = __stackBase__ + 32;
  14591.   var $this_addr_i_i_i = __stackBase__ + 36;
  14592.   var $retval_i_i = __stackBase__ + 40;
  14593.   var $this_addr_i_i = __stackBase__ + 44;
  14594.   var $x_addr_i_i = __stackBase__ + 48;
  14595.   var $count_i_i = __stackBase__ + 52;
  14596.   var $i_i_i = __stackBase__ + 56;
  14597.   var $p_i_i = __stackBase__ + 60;
  14598.   var $retval_i = __stackBase__ + 64;
  14599.   var $this_addr_i = __stackBase__ + 65;
  14600.   var $tag_addr_i = __stackBase__ + 69;
  14601.   var $index_addr_i = __stackBase__ + 73;
  14602.   var $i_i = __stackBase__ + 77;
  14603.   HEAP[$this_addr_i] = $this + 2 | 0;
  14604.   HEAP[$tag_addr_i] = $tag;
  14605.   HEAP[$index_addr_i] = $index;
  14606.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i];
  14607.   HEAP[$x_addr_i_i] = $tag_addr_i;
  14608.   var $this1_i_i = HEAP[$this_addr_i_i];
  14609.   HEAP[$this_addr_i_i_i] = $this1_i_i | 0;
  14610.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  14611.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  14612.   HEAP[$count_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  14613.   L2463 : do {
  14614.     if (HEAP[$count_i_i] >>> 0 < 32) {
  14615.       HEAP[$i_i_i] = 0;
  14616.       L2465 : do {
  14617.         if (HEAP[$i_i_i] >>> 0 < HEAP[$count_i_i] >>> 0) {
  14618.           var $array_i_i = $this1_i_i + 2 | 0;
  14619.           while (1) {
  14620.             var $39 = HEAP[HEAP[$x_addr_i_i]];
  14621.             HEAP[$this_addr_i16_i_i] = $array_i_i + (HEAP[$i_i_i] * 6 & -1) | 0;
  14622.             HEAP[$a_addr_i_i_i] = $39;
  14623.             var $41 = HEAP[$a_addr_i_i_i];
  14624.             HEAP[$this_addr_i_i15_i_i] = HEAP[$this_addr_i16_i_i] | 0;
  14625.             HEAP[$a_addr_i_i_i_i] = $41;
  14626.             HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i15_i_i] | 0;
  14627.             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  14628.             HEAP[$b_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 3 | 0] & 255) | 0;
  14629.             if (HEAP[$a_addr_i_i_i_i] >>> 0 < HEAP[$b_i_i_i_i] >>> 0) {
  14630.               var $cond3_i_i_i_i = -1;
  14631.             } else {
  14632.               var $cond3_i_i_i_i = (HEAP[$a_addr_i_i_i_i] | 0) == (HEAP[$b_i_i_i_i] | 0) ? 0 : 1;
  14633.             }
  14634.             var $cond3_i_i_i_i;
  14635.             var $50 = HEAP[$i_i_i];
  14636.             if (($cond3_i_i_i_i | 0) == 0) {
  14637.               break;
  14638.             }
  14639.             HEAP[$i_i_i] = $50 + 1 | 0;
  14640.             if (HEAP[$i_i_i] >>> 0 >= HEAP[$count_i_i] >>> 0) {
  14641.               break L2465;
  14642.             }
  14643.           }
  14644.           HEAP[$retval_i_i] = $50;
  14645.           var $68 = $50;
  14646.           break L2463;
  14647.         }
  14648.       } while (0);
  14649.       HEAP[$retval_i_i] = -1;
  14650.       var $68 = -1;
  14651.     } else {
  14652.       var $54 = HEAP[$x_addr_i_i];
  14653.       HEAP[$this_addr_i2_i_i] = $this1_i_i | 0;
  14654.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] | 0;
  14655.       var $this1_i_i5_i_i = HEAP[$this_addr_i_i1_i_i];
  14656.       var $64 = _bsearch($54, $this1_i_i + 2 | 0, ((HEAP[$this1_i_i5_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i + 1 | 0] & 255) & 65535, 6, 78);
  14657.       HEAP[$p_i_i] = $64;
  14658.       if ((HEAP[$p_i_i] | 0) != 0) {
  14659.         var $cond_i_i = (HEAP[$p_i_i] - ($this1_i_i + 2) | 0) / 6 & -1;
  14660.       } else {
  14661.         var $cond_i_i = -1;
  14662.       }
  14663.       var $cond_i_i;
  14664.       HEAP[$retval_i_i] = $cond_i_i;
  14665.       var $68 = $cond_i_i;
  14666.     }
  14667.   } while (0);
  14668.   var $68;
  14669.   HEAP[$i_i] = $68;
  14670.   var $tobool_i = (HEAP[$index_addr_i] | 0) != 0;
  14671.   if (($68 | 0) != -1) {
  14672.     if ($tobool_i) {
  14673.       HEAP[HEAP[$index_addr_i]] = HEAP[$i_i];
  14674.     }
  14675.     HEAP[$retval_i] = 1;
  14676.     var $79 = HEAP[$retval_i];
  14677.     var $80 = $retval_i;
  14678.     var $81 = $this_addr_i;
  14679.     var $82 = $tag_addr_i;
  14680.     var $83 = $index_addr_i;
  14681.     var $84 = $i_i;
  14682.     STACKTOP = __stackBase__;
  14683.     return $79;
  14684.   } else {
  14685.     if ($tobool_i) {
  14686.       HEAP[HEAP[$index_addr_i]] = 65535;
  14687.     }
  14688.     HEAP[$retval_i] = 0;
  14689.     var $79 = HEAP[$retval_i];
  14690.     var $80 = $retval_i;
  14691.     var $81 = $this_addr_i;
  14692.     var $82 = $tag_addr_i;
  14693.     var $83 = $index_addr_i;
  14694.     var $84 = $i_i;
  14695.     STACKTOP = __stackBase__;
  14696.     return $79;
  14697.   }
  14698. }
  14699. function __ZNK2OT6Script12get_lang_sysEj($this, $i) {
  14700.   var __stackBase__ = STACKTOP;
  14701.   STACKTOP = STACKTOP + 124 | 0;
  14702.   var $X_addr_i_i_i = __stackBase__;
  14703.   var $this_addr_i_i_i7 = __stackBase__ + 4;
  14704.   var $this_addr_i_i8 = __stackBase__ + 8;
  14705.   var $retval_i = __stackBase__ + 12;
  14706.   var $this_addr_i9 = __stackBase__ + 16;
  14707.   var $i_addr_i = __stackBase__ + 20;
  14708.   var $X_addr_i_i_i_i = __stackBase__ + 24;
  14709.   var $P_addr_i_i_i = __stackBase__ + 28;
  14710.   var $offset_addr_i_i_i = __stackBase__ + 32;
  14711.   var $this_addr_i_i_i_i1 = __stackBase__ + 36;
  14712.   var $this_addr_i_i_i2 = __stackBase__ + 40;
  14713.   var $retval_i_i = __stackBase__ + 44;
  14714.   var $this_addr_i_i = __stackBase__ + 48;
  14715.   var $base_addr_i_i3 = __stackBase__ + 52;
  14716.   var $offset_i_i = __stackBase__ + 56;
  14717.   var $base_addr_i = __stackBase__ + 60;
  14718.   var $offset_addr_i = __stackBase__ + 64;
  14719.   var $X_addr_i_i_i_i_i = __stackBase__ + 68;
  14720.   var $P_addr_i_i_i_i = __stackBase__ + 72;
  14721.   var $offset_addr_i_i_i_i = __stackBase__ + 76;
  14722.   var $this_addr_i_i_i_i_i = __stackBase__ + 80;
  14723.   var $this_addr_i_i_i_i = __stackBase__ + 84;
  14724.   var $retval_i_i_i = __stackBase__ + 88;
  14725.   var $this_addr_i_i_i = __stackBase__ + 92;
  14726.   var $base_addr_i_i_i = __stackBase__ + 96;
  14727.   var $offset_i_i_i = __stackBase__ + 100;
  14728.   var $base_addr_i_i = __stackBase__ + 104;
  14729.   var $offset_addr_i_i = __stackBase__ + 108;
  14730.   var $this_addr_i = __stackBase__ + 112;
  14731.   var $ref_tmp_i = __stackBase__ + 116;
  14732.   var $retval;
  14733.   var $i_addr;
  14734.   var $ref_tmp = __stackBase__ + 120;
  14735.   $i_addr = $i;
  14736.   var $this1 = $this;
  14737.   if (($i_addr | 0) == 65535) {
  14738.     HEAP[$this_addr_i] = $this1;
  14739.     var $this1_i = HEAP[$this_addr_i];
  14740.     HEAP[$ref_tmp_i] = $this1_i;
  14741.     HEAP[$base_addr_i_i] = $ref_tmp_i;
  14742.     HEAP[$offset_addr_i_i] = $this1_i | 0;
  14743.     var $9 = HEAP[HEAP[$base_addr_i_i]];
  14744.     HEAP[$this_addr_i_i_i] = HEAP[$offset_addr_i_i];
  14745.     HEAP[$base_addr_i_i_i] = $9;
  14746.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i];
  14747.     HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  14748.     var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  14749.     HEAP[$offset_i_i_i] = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  14750.     if ((HEAP[$offset_i_i_i] | 0) != 0) {
  14751.       var $27 = HEAP[$offset_i_i_i];
  14752.       HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  14753.       HEAP[$offset_addr_i_i_i_i] = $27;
  14754.       HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  14755.     } else {
  14756.       HEAP[$X_addr_i_i_i_i_i] = 111848;
  14757.       HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  14758.     }
  14759.     $retval = HEAP[$retval_i_i_i];
  14760.     var $103 = $retval;
  14761.     STACKTOP = __stackBase__;
  14762.     return $103;
  14763.   }
  14764.   HEAP[$ref_tmp] = $this1;
  14765.   HEAP[$this_addr_i9] = $this1 + 2 | 0;
  14766.   HEAP[$i_addr_i] = $i_addr;
  14767.   var $this1_i10 = HEAP[$this_addr_i9];
  14768.   var $49 = HEAP[$i_addr_i];
  14769.   HEAP[$this_addr_i_i8] = $this1_i10 | 0;
  14770.   HEAP[$this_addr_i_i_i7] = HEAP[$this_addr_i_i8] | 0;
  14771.   var $this1_i_i_i12 = HEAP[$this_addr_i_i_i7];
  14772.   if ($49 >>> 0 >= (((HEAP[$this1_i_i_i12 | 0] & 255) << 8) + (HEAP[$this1_i_i_i12 + 1 | 0] & 255) & 65535) >>> 0) {
  14773.     HEAP[$X_addr_i_i_i] = 111704;
  14774.     HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  14775.   } else {
  14776.     HEAP[$retval_i] = $this1_i10 + (HEAP[$i_addr_i] * 6 & -1) + 2 | 0;
  14777.   }
  14778.   var $65 = HEAP[$retval_i] + 4 | 0;
  14779.   HEAP[$base_addr_i] = $ref_tmp;
  14780.   HEAP[$offset_addr_i] = $65;
  14781.   var $71 = HEAP[HEAP[$base_addr_i]];
  14782.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  14783.   HEAP[$base_addr_i_i3] = $71;
  14784.   HEAP[$this_addr_i_i_i2] = HEAP[$this_addr_i_i];
  14785.   HEAP[$this_addr_i_i_i_i1] = HEAP[$this_addr_i_i_i2] | 0;
  14786.   var $this1_i_i_i_i5 = HEAP[$this_addr_i_i_i_i1];
  14787.   var $conv_i_i = ((HEAP[$this1_i_i_i_i5 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i5 + 1 | 0] & 255) & 65535;
  14788.   HEAP[$offset_i_i] = $conv_i_i;
  14789.   if (($conv_i_i | 0) != 0) {
  14790.     var $88 = HEAP[$offset_i_i];
  14791.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i3];
  14792.     HEAP[$offset_addr_i_i_i] = $88;
  14793.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  14794.   } else {
  14795.     HEAP[$X_addr_i_i_i_i] = 111848;
  14796.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  14797.   }
  14798.   $retval = HEAP[$retval_i_i];
  14799.   var $103 = $retval;
  14800.   STACKTOP = __stackBase__;
  14801.   return $103;
  14802. }
  14803. function _hb_ot_layout_language_find_feature($face, $table_tag, $script_index, $language_index, $feature_tag, $feature_index) {
  14804.   var __stackBase__ = STACKTOP;
  14805.   STACKTOP = STACKTOP + 164 | 0;
  14806.   var $this_addr_i_i1_i = __stackBase__;
  14807.   var $this_addr_i2_i = __stackBase__ + 4;
  14808.   var $X_addr_i_i_i_i16 = __stackBase__ + 8;
  14809.   var $this_addr_i_i_i_i17 = __stackBase__ + 12;
  14810.   var $this_addr_i_i_i18 = __stackBase__ + 16;
  14811.   var $retval_i_i19 = __stackBase__ + 20;
  14812.   var $this_addr_i_i20 = __stackBase__ + 24;
  14813.   var $i_addr_i_i21 = __stackBase__ + 28;
  14814.   var $this_addr_i22 = __stackBase__ + 32;
  14815.   var $i_addr_i23 = __stackBase__ + 36;
  14816.   var $X_addr_i_i_i_i = __stackBase__ + 40;
  14817.   var $X_addr_i_i_i_i1_i = __stackBase__ + 44;
  14818.   var $this_addr_i_i_i_i2_i = __stackBase__ + 48;
  14819.   var $this_addr_i_i1_i_i = __stackBase__ + 52;
  14820.   var $retval_i_i3_i = __stackBase__ + 56;
  14821.   var $this_addr_i2_i_i = __stackBase__ + 60;
  14822.   var $i_addr_i_i_i = __stackBase__ + 64;
  14823.   var $this_addr_i_i_i4_i = __stackBase__ + 68;
  14824.   var $this_addr_i_i5_i = __stackBase__ + 72;
  14825.   var $retval_i_i = __stackBase__ + 76;
  14826.   var $this_addr_i_i6 = __stackBase__ + 80;
  14827.   var $i_addr_i_i = __stackBase__ + 84;
  14828.   var $X_addr_i_i_i_i_i = __stackBase__ + 88;
  14829.   var $P_addr_i_i_i_i = __stackBase__ + 92;
  14830.   var $offset_addr_i_i_i_i = __stackBase__ + 96;
  14831.   var $this_addr_i_i_i_i_i = __stackBase__ + 100;
  14832.   var $this_addr_i_i_i_i = __stackBase__ + 104;
  14833.   var $retval_i_i_i = __stackBase__ + 108;
  14834.   var $this_addr_i_i_i7 = __stackBase__ + 112;
  14835.   var $base_addr_i_i_i = __stackBase__ + 116;
  14836.   var $offset_i_i_i = __stackBase__ + 120;
  14837.   var $base_addr_i_i = __stackBase__ + 124;
  14838.   var $offset_addr_i_i = __stackBase__ + 128;
  14839.   var $this_addr_i8 = __stackBase__ + 132;
  14840.   var $i_addr_i = __stackBase__ + 136;
  14841.   var $ref_tmp_i = __stackBase__ + 140;
  14842.   var $this_addr_i_i1 = __stackBase__ + 144;
  14843.   var $this_addr_i2 = __stackBase__ + 148;
  14844.   var $this_addr_i_i_i = __stackBase__ + 152;
  14845.   var $this_addr_i_i = __stackBase__ + 156;
  14846.   var $this_addr_i = __stackBase__ + 160;
  14847.   var $retval;
  14848.   var $feature_tag_addr;
  14849.   var $feature_index_addr;
  14850.   var $g;
  14851.   var $l;
  14852.   var $num_features;
  14853.   var $i;
  14854.   var $f_index;
  14855.   $feature_tag_addr = $feature_tag;
  14856.   $feature_index_addr = $feature_index;
  14857.   $g = __ZL18get_gsubgpos_tableP9hb_face_tj($face, $table_tag);
  14858.   $l = __ZNK2OT6Script12get_lang_sysEj(__ZNK2OT8GSUBGPOS10get_scriptEj($g, $script_index), $language_index);
  14859.   HEAP[$this_addr_i] = $l;
  14860.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] + 4 | 0;
  14861.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  14862.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  14863.   $num_features = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  14864.   $i = 0;
  14865.   L19 : do {
  14866.     if ($i >>> 0 < $num_features >>> 0) {
  14867.       while (1) {
  14868.         HEAP[$this_addr_i22] = $l;
  14869.         HEAP[$i_addr_i23] = $i;
  14870.         var $96 = HEAP[$i_addr_i23];
  14871.         HEAP[$this_addr_i_i20] = HEAP[$this_addr_i22] + 4 | 0;
  14872.         HEAP[$i_addr_i_i21] = $96;
  14873.         var $this1_i_i26 = HEAP[$this_addr_i_i20];
  14874.         var $97 = HEAP[$i_addr_i_i21];
  14875.         HEAP[$this_addr_i_i_i18] = $this1_i_i26 | 0;
  14876.         HEAP[$this_addr_i_i_i_i17] = HEAP[$this_addr_i_i_i18] | 0;
  14877.         var $this1_i_i_i_i30 = HEAP[$this_addr_i_i_i_i17];
  14878.         if ($97 >>> 0 >= (((HEAP[$this1_i_i_i_i30 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i30 + 1 | 0] & 255) & 65535) >>> 0) {
  14879.           HEAP[$X_addr_i_i_i_i16] = 111864;
  14880.           HEAP[$retval_i_i19] = HEAP[$X_addr_i_i_i_i16];
  14881.         } else {
  14882.           HEAP[$retval_i_i19] = (HEAP[$i_addr_i_i21] << 1) + $this1_i_i26 + 2 | 0;
  14883.         }
  14884.         HEAP[$this_addr_i2_i] = HEAP[$retval_i_i19];
  14885.         HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  14886.         var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  14887.         $f_index = ((HEAP[$this1_i_i4_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i + 1 | 0] & 255) & 65535;
  14888.         var $107 = $feature_tag_addr;
  14889.         HEAP[$this_addr_i8] = $g;
  14890.         HEAP[$i_addr_i] = $f_index;
  14891.         var $this1_i9 = HEAP[$this_addr_i8];
  14892.         HEAP[$ref_tmp_i] = $this1_i9;
  14893.         HEAP[$base_addr_i_i] = $ref_tmp_i;
  14894.         HEAP[$offset_addr_i_i] = $this1_i9 + 6 | 0;
  14895.         var $114 = HEAP[HEAP[$base_addr_i_i]];
  14896.         HEAP[$this_addr_i_i_i7] = HEAP[$offset_addr_i_i];
  14897.         HEAP[$base_addr_i_i_i] = $114;
  14898.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i7];
  14899.         HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  14900.         var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  14901.         var $conv_i_i_i11 = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  14902.         HEAP[$offset_i_i_i] = $conv_i_i_i11;
  14903.         if (($conv_i_i_i11 | 0) != 0) {
  14904.           var $121 = HEAP[$offset_i_i_i];
  14905.           HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  14906.           HEAP[$offset_addr_i_i_i_i] = $121;
  14907.           HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  14908.         } else {
  14909.           HEAP[$X_addr_i_i_i_i_i] = 111704;
  14910.           HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  14911.         }
  14912.         var $127 = HEAP[$i_addr_i];
  14913.         HEAP[$this_addr_i_i6] = HEAP[$retval_i_i_i];
  14914.         HEAP[$i_addr_i_i] = $127;
  14915.         var $this1_i_i12 = HEAP[$this_addr_i_i6];
  14916.         var $128 = HEAP[$i_addr_i_i];
  14917.         HEAP[$this_addr_i_i5_i] = $this1_i_i12 | 0;
  14918.         HEAP[$this_addr_i_i_i4_i] = HEAP[$this_addr_i_i5_i] | 0;
  14919.         var $this1_i_i_i7_i = HEAP[$this_addr_i_i_i4_i];
  14920.         if ($128 >>> 0 >= (((HEAP[$this1_i_i_i7_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i7_i + 1 | 0] & 255) & 65535) >>> 0) {
  14921.           HEAP[$X_addr_i_i_i_i] = 111832;
  14922.           HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  14923.         } else {
  14924.           var $135 = HEAP[$i_addr_i_i];
  14925.           HEAP[$this_addr_i2_i_i] = $this1_i_i12;
  14926.           HEAP[$i_addr_i_i_i] = $135;
  14927.           var $this1_i3_i_i = HEAP[$this_addr_i2_i_i];
  14928.           var $136 = HEAP[$i_addr_i_i_i];
  14929.           HEAP[$this_addr_i_i1_i_i] = $this1_i3_i_i | 0;
  14930.           HEAP[$this_addr_i_i_i_i2_i] = HEAP[$this_addr_i_i1_i_i] | 0;
  14931.           var $this1_i_i_i_i9_i = HEAP[$this_addr_i_i_i_i2_i];
  14932.           if ($136 >>> 0 >= (((HEAP[$this1_i_i_i_i9_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i9_i + 1 | 0] & 255) & 65535) >>> 0) {
  14933.             HEAP[$X_addr_i_i_i_i1_i] = 111704;
  14934.             HEAP[$retval_i_i3_i] = HEAP[$X_addr_i_i_i_i1_i];
  14935.           } else {
  14936.             HEAP[$retval_i_i3_i] = $this1_i3_i_i + (HEAP[$i_addr_i_i_i] * 6 & -1) + 2 | 0;
  14937.           }
  14938.           HEAP[$retval_i_i] = HEAP[$retval_i_i3_i] | 0;
  14939.         }
  14940.         HEAP[$this_addr_i2] = HEAP[$retval_i_i];
  14941.         HEAP[$this_addr_i_i1] = HEAP[$this_addr_i2] | 0;
  14942.         var $this1_i_i4 = HEAP[$this_addr_i_i1];
  14943.         if (($107 | 0) == (((HEAP[$this1_i_i4 + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i4 | 0] & 255) << 24) + ((HEAP[$this1_i_i4 + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i4 + 3 | 0] & 255) | 0)) {
  14944.           break;
  14945.         }
  14946.         $i = $i + 1 | 0;
  14947.         if ($i >>> 0 >= $num_features >>> 0) {
  14948.           break L19;
  14949.         }
  14950.       }
  14951.       if (($feature_index_addr | 0) != 0) {
  14952.         HEAP[$feature_index_addr] = $f_index;
  14953.       }
  14954.       $retval = 1;
  14955.       var $157 = $retval;
  14956.       STACKTOP = __stackBase__;
  14957.       return $157;
  14958.     }
  14959.   } while (0);
  14960.   if (($feature_index_addr | 0) != 0) {
  14961.     HEAP[$feature_index_addr] = 65535;
  14962.   }
  14963.   $retval = 0;
  14964.   var $157 = $retval;
  14965.   STACKTOP = __stackBase__;
  14966.   return $157;
  14967. }
  14968. function __Z30hb_ot_layout_substitute_lookupP9hb_font_tP11hb_buffer_tjji($font, $buffer, $lookup_index, $mask, $auto_zwj) {
  14969.   var __stackBase__ = STACKTOP;
  14970.   STACKTOP = STACKTOP + 64 | 0;
  14971.   var $X_addr_i_i = __stackBase__;
  14972.   var $this_addr_i = __stackBase__ + 4;
  14973.   var $i_addr_i = __stackBase__ + 8;
  14974.   var $retval;
  14975.   var $font_addr;
  14976.   var $lookup_index_addr;
  14977.   var $c = __stackBase__ + 12;
  14978.   $font_addr = $font;
  14979.   $lookup_index_addr = $lookup_index;
  14980.   if ($lookup_index_addr >>> 0 >= HEAP[HEAP[HEAP[$font_addr + 52 | 0] + 72 | 0] + 24 | 0] >>> 0) {
  14981.     $retval = 0;
  14982.     STACKTOP = __stackBase__;
  14983.     return;
  14984.   } else {
  14985.     __ZN2OT18hb_apply_context_tC1EjP9hb_font_tP11hb_buffer_tjb($c, 0, $font_addr, $buffer, $mask, ($auto_zwj | 0) != 0);
  14986.     HEAP[$this_addr_i] = HEAP[HEAP[HEAP[$font_addr + 52 | 0] + 72 | 0] + 16 | 0];
  14987.     HEAP[$i_addr_i] = $lookup_index_addr;
  14988.     var $call_i = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i], HEAP[$i_addr_i]);
  14989.     HEAP[$X_addr_i_i] = $call_i;
  14990.     $retval = __ZNK2OT11SubstLookup12apply_stringEPNS_18hb_apply_context_tEPK15hb_set_digest_t(HEAP[$X_addr_i_i], $c, HEAP[HEAP[HEAP[$font_addr + 52 | 0] + 72 | 0] + 32 | 0] + ($lookup_index_addr * 12 & -1) | 0) & 1;
  14991.     STACKTOP = __stackBase__;
  14992.     return;
  14993.   }
  14994. }
  14995. function __ZN2OT18hb_apply_context_tC1EjP9hb_font_tP11hb_buffer_tjb($this, $table_index_, $font_, $buffer_, $lookup_mask_, $auto_zwj_) {
  14996.   var __stackBase__ = STACKTOP;
  14997.   STACKTOP = STACKTOP + 32 | 0;
  14998.   var $this_addr_i_i_i_i = __stackBase__;
  14999.   var $this_addr_i_i_i = __stackBase__ + 4;
  15000.   var $this_addr_i_i = __stackBase__ + 8;
  15001.   var $this_addr_i = __stackBase__ + 12;
  15002.   var $table_index__addr_i = __stackBase__ + 16;
  15003.   var $font__addr_i = __stackBase__ + 20;
  15004.   var $buffer__addr_i = __stackBase__ + 24;
  15005.   var $lookup_mask__addr_i = __stackBase__ + 28;
  15006.   HEAP[$this_addr_i] = $this;
  15007.   HEAP[$table_index__addr_i] = $table_index_;
  15008.   HEAP[$font__addr_i] = $font_;
  15009.   HEAP[$buffer__addr_i] = $buffer_;
  15010.   HEAP[$lookup_mask__addr_i] = $lookup_mask_;
  15011.   var $this1_i = HEAP[$this_addr_i];
  15012.   HEAP[$this1_i | 0] = HEAP[$table_index__addr_i];
  15013.   HEAP[$this1_i + 4 | 0] = HEAP[$font__addr_i];
  15014.   HEAP[$this1_i + 8 | 0] = HEAP[HEAP[$this1_i + 4 | 0] + 52 | 0];
  15015.   HEAP[$this1_i + 12 | 0] = HEAP[$buffer__addr_i];
  15016.   HEAP[$this1_i + 16 | 0] = HEAP[HEAP[$buffer__addr_i] + 48 | 0];
  15017.   HEAP[$this1_i + 20 | 0] = HEAP[$lookup_mask__addr_i];
  15018.   HEAP[$this1_i + 24 | 0] = $auto_zwj_ & 1 & 1 & 1;
  15019.   HEAP[$this1_i + 28 | 0] = 0;
  15020.   HEAP[$this1_i + 32 | 0] = 8;
  15021.   HEAP[$this1_i + 36 | 0] = 0;
  15022.   HEAP[$this1_i + 40 | 0] = HEAP[HEAP[HEAP[$this1_i + 8 | 0] + 72 | 0] + 12 | 0];
  15023.   HEAP[$this_addr_i_i] = HEAP[$this1_i + 40 | 0];
  15024.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] + 4 | 0;
  15025.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  15026.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  15027.   HEAP[$this1_i + 44 | 0] = (((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535 | 0) != 0 & 1;
  15028.   HEAP[$this1_i + 48 | 0] = 0;
  15029.   STACKTOP = __stackBase__;
  15030.   return;
  15031. }
  15032. function __ZNK2OT11SubstLookup12apply_stringEPNS_18hb_apply_context_tEPK15hb_set_digest_t($this, $c, $digest) {
  15033.   var label = 0;
  15034.   var __stackBase__ = STACKTOP;
  15035.   STACKTOP = STACKTOP + 173 | 0;
  15036.   var $g_addr_i_i_i79 = __stackBase__;
  15037.   var $this_addr_i1_i80 = __stackBase__ + 4;
  15038.   var $g_addr_i2_i81 = __stackBase__ + 8;
  15039.   var $this_addr_i_i82 = __stackBase__ + 12;
  15040.   var $g_addr_i_i83 = __stackBase__ + 16;
  15041.   var $this_addr_i84 = __stackBase__ + 20;
  15042.   var $g_addr_i85 = __stackBase__ + 24;
  15043.   var $this_addr_i65 = __stackBase__ + 28;
  15044.   var $this_addr_i58 = __stackBase__ + 32;
  15045.   var $i_addr_i59 = __stackBase__ + 36;
  15046.   var $this_addr_i49 = __stackBase__ + 40;
  15047.   var $tmp_string_i = __stackBase__ + 44;
  15048.   var $tmp_i = __stackBase__ + 48;
  15049.   var $this_addr_i_i_i_i32 = __stackBase__ + 52;
  15050.   var $this_addr_i_i_i33 = __stackBase__ + 56;
  15051.   var $obj_addr_i_i34 = __stackBase__ + 60;
  15052.   var $this_addr_i35 = __stackBase__ + 64;
  15053.   var $this_addr_i25 = __stackBase__ + 68;
  15054.   var $i_addr_i26 = __stackBase__ + 72;
  15055.   var $this_addr_i18 = __stackBase__ + 76;
  15056.   var $i_addr_i19 = __stackBase__ + 80;
  15057.   var $g_addr_i_i_i = __stackBase__ + 84;
  15058.   var $this_addr_i1_i = __stackBase__ + 88;
  15059.   var $g_addr_i2_i = __stackBase__ + 92;
  15060.   var $this_addr_i_i13 = __stackBase__ + 96;
  15061.   var $g_addr_i_i = __stackBase__ + 100;
  15062.   var $this_addr_i14 = __stackBase__ + 104;
  15063.   var $g_addr_i = __stackBase__ + 108;
  15064.   var $this_addr_i10 = __stackBase__ + 112;
  15065.   var $i_addr_i = __stackBase__ + 116;
  15066.   var $this_addr_i_i_i_i3 = __stackBase__ + 120;
  15067.   var $this_addr_i_i_i4 = __stackBase__ + 124;
  15068.   var $obj_addr_i_i = __stackBase__ + 128;
  15069.   var $this_addr_i5 = __stackBase__ + 132;
  15070.   var $X_addr_i_i = __stackBase__ + 136;
  15071.   var $lookup_type_addr_i_i = __stackBase__ + 140;
  15072.   var $this_addr_i_i_i_i = __stackBase__ + 144;
  15073.   var $this_addr_i_i_i = __stackBase__ + 148;
  15074.   var $this_addr_i_i = __stackBase__ + 152;
  15075.   var $retval_i = __stackBase__ + 156;
  15076.   var $this_addr_i1 = __stackBase__ + 157;
  15077.   var $type_i = __stackBase__ + 161;
  15078.   var $this_addr_i = __stackBase__ + 165;
  15079.   var $func_addr_i = __stackBase__ + 169;
  15080.   var $retval;
  15081.   var $c_addr;
  15082.   var $digest_addr;
  15083.   var $ret;
  15084.   $c_addr = $c;
  15085.   $digest_addr = $digest;
  15086.   var $this1 = $this;
  15087.   $ret = 0;
  15088.   do {
  15089.     if ((HEAP[HEAP[$c_addr + 12 | 0] + 84 | 0] | 0) != 0) {
  15090.       if ((HEAP[$c_addr + 20 | 0] | 0) == 0) {
  15091.         break;
  15092.       }
  15093.       HEAP[$this_addr_i] = $c_addr;
  15094.       HEAP[$func_addr_i] = 86;
  15095.       HEAP[HEAP[$this_addr_i] + 28 | 0] = HEAP[$func_addr_i];
  15096.       __ZN2OT18hb_apply_context_t10set_lookupERKNS_6LookupE($c_addr, $this1);
  15097.       HEAP[$this_addr_i1] = $this1;
  15098.       var $this1_i2 = HEAP[$this_addr_i1];
  15099.       HEAP[$this_addr_i_i] = $this1_i2;
  15100.       HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  15101.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  15102.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  15103.       HEAP[$type_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  15104.       if ((HEAP[$type_i] | 0) == 7) {
  15105.         var $call2_i = __ZNK2OT11SubstLookup12get_subtableEj($this1_i2, 0);
  15106.         HEAP[$X_addr_i_i] = $call2_i;
  15107.         var $call4_i = __ZNK2OT14ExtensionSubst10is_reverseEv(HEAP[$X_addr_i_i]);
  15108.         HEAP[$retval_i] = $call4_i;
  15109.         var $34 = $call4_i;
  15110.       } else {
  15111.         HEAP[$lookup_type_addr_i_i] = HEAP[$type_i];
  15112.         var $cmp_i_i = (HEAP[$lookup_type_addr_i_i] | 0) == 8;
  15113.         HEAP[$retval_i] = $cmp_i_i;
  15114.         var $34 = $cmp_i_i;
  15115.       }
  15116.       var $34;
  15117.       var $39 = HEAP[$c_addr + 12 | 0];
  15118.       L65 : do {
  15119.         if ($34) {
  15120.           HEAP[$this_addr_i35] = $39;
  15121.           var $this1_i36 = HEAP[$this_addr_i35];
  15122.           HEAP[$obj_addr_i_i34] = $this1_i36;
  15123.           HEAP[$this_addr_i_i_i33] = HEAP[$obj_addr_i_i34] | 0;
  15124.           HEAP[$this_addr_i_i_i_i32] = HEAP[$this_addr_i_i_i33] | 0;
  15125.           if ((HEAP[HEAP[$this_addr_i_i_i_i32] | 0] | 0) != -1) {
  15126.             HEAP[$this1_i36 + 77 | 0] = 0;
  15127.             HEAP[$this1_i36 + 78 | 0] = 0;
  15128.             HEAP[$this1_i36 + 88 | 0] = 0;
  15129.             HEAP[$this1_i36 + 100 | 0] = HEAP[$this1_i36 + 96 | 0];
  15130.           }
  15131.           HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] = HEAP[HEAP[$c_addr + 12 | 0] + 84 | 0] - 1 | 0;
  15132.           while (1) {
  15133.             HEAP[$this_addr_i25] = HEAP[$c_addr + 12 | 0];
  15134.             HEAP[$i_addr_i26] = 0;
  15135.             var $this1_i27 = HEAP[$this_addr_i25];
  15136.             do {
  15137.               if ((HEAP[$c_addr + 20 | 0] & HEAP[HEAP[$this1_i27 + 96 | 0] + ((HEAP[$i_addr_i26] + HEAP[$this1_i27 + 80 | 0]) * 20 & -1) + 4 | 0] | 0) != 0) {
  15138.                 HEAP[$this_addr_i18] = HEAP[$c_addr + 12 | 0];
  15139.                 HEAP[$i_addr_i19] = 0;
  15140.                 var $this1_i20 = HEAP[$this_addr_i18];
  15141.                 var $205 = HEAP[HEAP[$this1_i20 + 96 | 0] + ((HEAP[$i_addr_i19] + HEAP[$this1_i20 + 80 | 0]) * 20 & -1) | 0];
  15142.                 HEAP[$this_addr_i14] = $digest_addr;
  15143.                 HEAP[$g_addr_i] = $205;
  15144.                 var $this1_i15 = HEAP[$this_addr_i14];
  15145.                 var $206 = HEAP[$g_addr_i];
  15146.                 HEAP[$this_addr_i_i13] = $this1_i15 | 0;
  15147.                 HEAP[$g_addr_i_i] = $206;
  15148.                 var $this1_i_i16 = HEAP[$this_addr_i_i13];
  15149.                 if ((HEAP[$this1_i_i16 | 0] & HEAP[$g_addr_i_i] | 0) != (HEAP[$this1_i_i16 + 4 | 0] | 0)) {
  15150.                   label = 88;
  15151.                   break;
  15152.                 }
  15153.                 var $210 = HEAP[$g_addr_i];
  15154.                 HEAP[$this_addr_i1_i] = $this1_i15 + 8 | 0;
  15155.                 HEAP[$g_addr_i2_i] = $210;
  15156.                 var $211 = HEAP[HEAP[$this_addr_i1_i] | 0];
  15157.                 HEAP[$g_addr_i_i_i] = HEAP[$g_addr_i2_i];
  15158.                 if ((1 << (HEAP[$g_addr_i_i_i] & 31) & $211 | 0) == 0) {
  15159.                   label = 88;
  15160.                   break;
  15161.                 }
  15162.                 if (!__ZNK2OT11SubstLookup10apply_onceEPNS_18hb_apply_context_tE($this1, $c_addr)) {
  15163.                   label = 88;
  15164.                   break;
  15165.                 }
  15166.                 $ret = 1;
  15167.                 break;
  15168.               } else {
  15169.                 label = 88;
  15170.               }
  15171.             } while (0);
  15172.             if (label == 88) {
  15173.               label = 0;
  15174.               var $idx48 = HEAP[$c_addr + 12 | 0] + 80 | 0;
  15175.               HEAP[$idx48] = HEAP[$idx48] - 1 | 0;
  15176.             }
  15177.             if (!((HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] | 0) >= 0)) {
  15178.               break L65;
  15179.             }
  15180.           }
  15181.         } else {
  15182.           HEAP[$this_addr_i5] = $39;
  15183.           var $this1_i6 = HEAP[$this_addr_i5];
  15184.           HEAP[$obj_addr_i_i] = $this1_i6;
  15185.           HEAP[$this_addr_i_i_i4] = HEAP[$obj_addr_i_i] | 0;
  15186.           HEAP[$this_addr_i_i_i_i3] = HEAP[$this_addr_i_i_i4] | 0;
  15187.           if ((HEAP[HEAP[$this_addr_i_i_i_i3] | 0] | 0) != -1) {
  15188.             HEAP[$this1_i6 + 77 | 0] = 1;
  15189.             HEAP[$this1_i6 + 78 | 0] = 0;
  15190.             HEAP[$this1_i6 + 88 | 0] = 0;
  15191.             HEAP[$this1_i6 + 100 | 0] = HEAP[$this1_i6 + 96 | 0];
  15192.           }
  15193.           HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] = 0;
  15194.           L84 : do {
  15195.             if (HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] >>> 0 < HEAP[HEAP[$c_addr + 12 | 0] + 84 | 0] >>> 0) {
  15196.               while (1) {
  15197.                 HEAP[$this_addr_i10] = HEAP[$c_addr + 12 | 0];
  15198.                 HEAP[$i_addr_i] = 0;
  15199.                 var $this1_i11 = HEAP[$this_addr_i10];
  15200.                 do {
  15201.                   if ((HEAP[$c_addr + 20 | 0] & HEAP[HEAP[$this1_i11 + 96 | 0] + ((HEAP[$i_addr_i] + HEAP[$this1_i11 + 80 | 0]) * 20 & -1) + 4 | 0] | 0) != 0) {
  15202.                     HEAP[$this_addr_i58] = HEAP[$c_addr + 12 | 0];
  15203.                     HEAP[$i_addr_i59] = 0;
  15204.                     var $this1_i60 = HEAP[$this_addr_i58];
  15205.                     var $99 = HEAP[HEAP[$this1_i60 + 96 | 0] + ((HEAP[$i_addr_i59] + HEAP[$this1_i60 + 80 | 0]) * 20 & -1) | 0];
  15206.                     HEAP[$this_addr_i84] = $digest_addr;
  15207.                     HEAP[$g_addr_i85] = $99;
  15208.                     var $this1_i86 = HEAP[$this_addr_i84];
  15209.                     var $100 = HEAP[$g_addr_i85];
  15210.                     HEAP[$this_addr_i_i82] = $this1_i86 | 0;
  15211.                     HEAP[$g_addr_i_i83] = $100;
  15212.                     var $this1_i_i88 = HEAP[$this_addr_i_i82];
  15213.                     if ((HEAP[$this1_i_i88 | 0] & HEAP[$g_addr_i_i83] | 0) != (HEAP[$this1_i_i88 + 4 | 0] | 0)) {
  15214.                       label = 64;
  15215.                       break;
  15216.                     }
  15217.                     var $104 = HEAP[$g_addr_i85];
  15218.                     HEAP[$this_addr_i1_i80] = $this1_i86 + 8 | 0;
  15219.                     HEAP[$g_addr_i2_i81] = $104;
  15220.                     var $105 = HEAP[HEAP[$this_addr_i1_i80] | 0];
  15221.                     HEAP[$g_addr_i_i_i79] = HEAP[$g_addr_i2_i81];
  15222.                     if ((1 << (HEAP[$g_addr_i_i_i79] & 31) & $105 | 0) == 0) {
  15223.                       label = 64;
  15224.                       break;
  15225.                     }
  15226.                     if (!__ZNK2OT11SubstLookup10apply_onceEPNS_18hb_apply_context_tE($this1, $c_addr)) {
  15227.                       label = 64;
  15228.                       break;
  15229.                     }
  15230.                     $ret = 1;
  15231.                     break;
  15232.                   } else {
  15233.                     label = 64;
  15234.                   }
  15235.                 } while (0);
  15236.                 do {
  15237.                   if (label == 64) {
  15238.                     label = 0;
  15239.                     HEAP[$this_addr_i65] = HEAP[$c_addr + 12 | 0];
  15240.                     var $this1_i66 = HEAP[$this_addr_i65];
  15241.                     if (HEAP[$this1_i66 + 77 | 0] & 1) {
  15242.                       do {
  15243.                         if ((HEAP[$this1_i66 + 100 | 0] | 0) != (HEAP[$this1_i66 + 96 | 0] | 0)) {
  15244.                           label = 67;
  15245.                         } else {
  15246.                           if ((HEAP[$this1_i66 + 88 | 0] | 0) != (HEAP[$this1_i66 + 80 | 0] | 0)) {
  15247.                             label = 67;
  15248.                             break;
  15249.                           } else {
  15250.                             break;
  15251.                           }
  15252.                         }
  15253.                       } while (0);
  15254.                       if (label == 67) {
  15255.                         label = 0;
  15256.                         if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i66, 1, 1)) {
  15257.                           break;
  15258.                         }
  15259.                         var $120 = HEAP[$this1_i66 + 100 | 0] + (HEAP[$this1_i66 + 88 | 0] * 20 & -1) | 0;
  15260.                         var $121 = HEAP[$this1_i66 + 96 | 0] + (HEAP[$this1_i66 + 80 | 0] * 20 & -1) | 0;
  15261.                         for (var $$src = $121, $$dest = $120, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  15262.                           HEAP[$$dest] = HEAP[$$src];
  15263.                         }
  15264.                       }
  15265.                       var $out_len11_i = $this1_i66 + 88 | 0;
  15266.                       HEAP[$out_len11_i] = HEAP[$out_len11_i] + 1 | 0;
  15267.                     }
  15268.                     var $idx13_i = $this1_i66 + 80 | 0;
  15269.                     HEAP[$idx13_i] = HEAP[$idx13_i] + 1 | 0;
  15270.                   }
  15271.                 } while (0);
  15272.                 if (HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] >>> 0 >= HEAP[HEAP[$c_addr + 12 | 0] + 84 | 0] >>> 0) {
  15273.                   break L84;
  15274.                 }
  15275.               }
  15276.             }
  15277.           } while (0);
  15278.           if (!($ret & 1)) {
  15279.             break;
  15280.           }
  15281.           HEAP[$this_addr_i49] = HEAP[$c_addr + 12 | 0];
  15282.           var $this1_i50 = HEAP[$this_addr_i49];
  15283.           if (!(HEAP[$this1_i50 + 76 | 0] & 1)) {
  15284.             if (!(HEAP[$this1_i50 + 77 | 0] & 1)) {
  15285.               ___assert_func(102952, 274, 108904, 103776);
  15286.             }
  15287.             HEAP[$this1_i50 + 77 | 0] = 0;
  15288.             if ((HEAP[$this1_i50 + 100 | 0] | 0) != (HEAP[$this1_i50 + 96 | 0] | 0)) {
  15289.               HEAP[$tmp_string_i] = HEAP[$this1_i50 + 96 | 0];
  15290.               HEAP[$this1_i50 + 96 | 0] = HEAP[$this1_i50 + 100 | 0];
  15291.               HEAP[$this1_i50 + 100 | 0] = HEAP[$tmp_string_i];
  15292.               HEAP[$this1_i50 + 104 | 0] = HEAP[$this1_i50 + 100 | 0];
  15293.             }
  15294.             HEAP[$tmp_i] = HEAP[$this1_i50 + 84 | 0];
  15295.             HEAP[$this1_i50 + 84 | 0] = HEAP[$this1_i50 + 88 | 0];
  15296.             HEAP[$this1_i50 + 88 | 0] = HEAP[$tmp_i];
  15297.             HEAP[$this1_i50 + 80 | 0] = 0;
  15298.           }
  15299.         }
  15300.       } while (0);
  15301.       $retval = $ret & 1;
  15302.       var $222 = $retval;
  15303.       STACKTOP = __stackBase__;
  15304.       return $222;
  15305.     }
  15306.   } while (0);
  15307.   $retval = 0;
  15308.   var $222 = $retval;
  15309.   STACKTOP = __stackBase__;
  15310.   return $222;
  15311. }
  15312. function __ZNK2OT9PosLookup12get_subtableEj($this, $i) {
  15313.   var __stackBase__ = STACKTOP;
  15314.   STACKTOP = STACKTOP + 76 | 0;
  15315.   var $X_addr_i_i_i = __stackBase__;
  15316.   var $this_addr_i_i_i1 = __stackBase__ + 4;
  15317.   var $this_addr_i_i2 = __stackBase__ + 8;
  15318.   var $retval_i = __stackBase__ + 12;
  15319.   var $this_addr_i = __stackBase__ + 16;
  15320.   var $i_addr_i = __stackBase__ + 20;
  15321.   var $X_addr_i_i_i_i = __stackBase__ + 24;
  15322.   var $P_addr_i_i_i = __stackBase__ + 28;
  15323.   var $offset_addr_i_i_i = __stackBase__ + 32;
  15324.   var $this_addr_i_i_i_i = __stackBase__ + 36;
  15325.   var $this_addr_i_i_i = __stackBase__ + 40;
  15326.   var $retval_i_i = __stackBase__ + 44;
  15327.   var $this_addr_i_i = __stackBase__ + 48;
  15328.   var $base_addr_i_i = __stackBase__ + 52;
  15329.   var $offset_i_i = __stackBase__ + 56;
  15330.   var $base_addr_i = __stackBase__ + 60;
  15331.   var $offset_addr_i = __stackBase__ + 64;
  15332.   var $X_addr_i = __stackBase__ + 68;
  15333.   var $ref_tmp = __stackBase__ + 72;
  15334.   var $this1 = $this;
  15335.   HEAP[$ref_tmp] = $this1;
  15336.   HEAP[$X_addr_i] = $this1 + 4 | 0;
  15337.   HEAP[$this_addr_i] = HEAP[$X_addr_i];
  15338.   HEAP[$i_addr_i] = $i;
  15339.   var $this1_i = HEAP[$this_addr_i];
  15340.   var $10 = HEAP[$i_addr_i];
  15341.   HEAP[$this_addr_i_i2] = $this1_i | 0;
  15342.   HEAP[$this_addr_i_i_i1] = HEAP[$this_addr_i_i2] | 0;
  15343.   var $this1_i_i_i4 = HEAP[$this_addr_i_i_i1];
  15344.   if ($10 >>> 0 >= (((HEAP[$this1_i_i_i4 | 0] & 255) << 8) + (HEAP[$this1_i_i_i4 + 1 | 0] & 255) & 65535) >>> 0) {
  15345.     HEAP[$X_addr_i_i_i] = 111704;
  15346.     HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  15347.   } else {
  15348.     HEAP[$retval_i] = (HEAP[$i_addr_i] << 1) + $this1_i + 2 | 0;
  15349.   }
  15350.   var $26 = HEAP[$retval_i];
  15351.   HEAP[$base_addr_i] = $ref_tmp;
  15352.   HEAP[$offset_addr_i] = $26;
  15353.   var $32 = HEAP[HEAP[$base_addr_i]];
  15354.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  15355.   HEAP[$base_addr_i_i] = $32;
  15356.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  15357.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  15358.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  15359.   var $conv_i_i = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  15360.   HEAP[$offset_i_i] = $conv_i_i;
  15361.   if (($conv_i_i | 0) != 0) {
  15362.     var $49 = HEAP[$offset_i_i];
  15363.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  15364.     HEAP[$offset_addr_i_i_i] = $49;
  15365.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  15366.     var $57 = HEAP[$retval_i_i];
  15367.     var $58 = $retval_i_i;
  15368.     var $59 = $this_addr_i_i;
  15369.     var $60 = $base_addr_i_i;
  15370.     var $61 = $offset_i_i;
  15371.     var $62 = $base_addr_i;
  15372.     var $63 = $offset_addr_i;
  15373.     STACKTOP = __stackBase__;
  15374.     return $57;
  15375.   } else {
  15376.     HEAP[$X_addr_i_i_i_i] = 111704;
  15377.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  15378.     var $57 = HEAP[$retval_i_i];
  15379.     var $58 = $retval_i_i;
  15380.     var $59 = $this_addr_i_i;
  15381.     var $60 = $base_addr_i_i;
  15382.     var $61 = $offset_i_i;
  15383.     var $62 = $base_addr_i;
  15384.     var $63 = $offset_addr_i;
  15385.     STACKTOP = __stackBase__;
  15386.     return $57;
  15387.   }
  15388. }
  15389. function __Z28hb_ot_layout_position_lookupP9hb_font_tP11hb_buffer_tjji($font, $buffer, $lookup_index, $mask, $auto_zwj) {
  15390.   var label = 0;
  15391.   var __stackBase__ = STACKTOP;
  15392.   STACKTOP = STACKTOP + 129 | 0;
  15393.   var $this_addr_i5_i = __stackBase__;
  15394.   var $i_addr_i6_i = __stackBase__ + 4;
  15395.   var $g_addr_i_i_i_i = __stackBase__ + 8;
  15396.   var $this_addr_i1_i_i = __stackBase__ + 12;
  15397.   var $g_addr_i2_i_i = __stackBase__ + 16;
  15398.   var $this_addr_i_i_i = __stackBase__ + 20;
  15399.   var $g_addr_i_i_i = __stackBase__ + 24;
  15400.   var $this_addr_i3_i = __stackBase__ + 28;
  15401.   var $g_addr_i_i = __stackBase__ + 32;
  15402.   var $this_addr_i1_i = __stackBase__ + 36;
  15403.   var $i_addr_i_i = __stackBase__ + 40;
  15404.   var $this_addr_i_i = __stackBase__ + 44;
  15405.   var $func_addr_i_i = __stackBase__ + 48;
  15406.   var $retval_i = __stackBase__ + 52;
  15407.   var $this_addr_i1 = __stackBase__ + 53;
  15408.   var $c_addr_i = __stackBase__ + 57;
  15409.   var $digest_addr_i = __stackBase__ + 61;
  15410.   var $ret_i;
  15411.   var $X_addr_i_i = __stackBase__ + 65;
  15412.   var $this_addr_i = __stackBase__ + 69;
  15413.   var $i_addr_i = __stackBase__ + 73;
  15414.   var $retval;
  15415.   var $font_addr;
  15416.   var $lookup_index_addr;
  15417.   var $c = __stackBase__ + 77;
  15418.   $font_addr = $font;
  15419.   $lookup_index_addr = $lookup_index;
  15420.   if ($lookup_index_addr >>> 0 >= HEAP[HEAP[HEAP[$font_addr + 52 | 0] + 72 | 0] + 28 | 0] >>> 0) {
  15421.     $retval = 0;
  15422.     STACKTOP = __stackBase__;
  15423.     return;
  15424.   }
  15425.   __ZN2OT18hb_apply_context_tC1EjP9hb_font_tP11hb_buffer_tjb($c, 1, $font_addr, $buffer, $mask, ($auto_zwj | 0) != 0);
  15426.   HEAP[$this_addr_i] = HEAP[HEAP[HEAP[$font_addr + 52 | 0] + 72 | 0] + 20 | 0];
  15427.   HEAP[$i_addr_i] = $lookup_index_addr;
  15428.   var $call_i = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i], HEAP[$i_addr_i]);
  15429.   HEAP[$X_addr_i_i] = $call_i;
  15430.   var $arrayidx = HEAP[HEAP[HEAP[$font_addr + 52 | 0] + 72 | 0] + 36 | 0] + ($lookup_index_addr * 12 & -1) | 0;
  15431.   HEAP[$this_addr_i1] = HEAP[$X_addr_i_i];
  15432.   HEAP[$c_addr_i] = $c;
  15433.   HEAP[$digest_addr_i] = $arrayidx;
  15434.   var $this1_i2 = HEAP[$this_addr_i1];
  15435.   $ret_i = 0;
  15436.   do {
  15437.     if ((HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 84 | 0] | 0) != 0) {
  15438.       if ((HEAP[HEAP[$c_addr_i] + 20 | 0] | 0) == 0) {
  15439.         label = 107;
  15440.         break;
  15441.       }
  15442.       HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  15443.       HEAP[$func_addr_i_i] = 112;
  15444.       HEAP[HEAP[$this_addr_i_i] + 28 | 0] = HEAP[$func_addr_i_i];
  15445.       __ZN2OT18hb_apply_context_t10set_lookupERKNS_6LookupE(HEAP[$c_addr_i], $this1_i2);
  15446.       HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 80 | 0] = 0;
  15447.       L138 : do {
  15448.         if (HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 80 | 0] >>> 0 < HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 84 | 0] >>> 0) {
  15449.           while (1) {
  15450.             HEAP[$this_addr_i1_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  15451.             HEAP[$i_addr_i_i] = 0;
  15452.             var $this1_i2_i = HEAP[$this_addr_i1_i];
  15453.             do {
  15454.               if ((HEAP[HEAP[$c_addr_i] + 20 | 0] & HEAP[HEAP[$this1_i2_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i2_i + 80 | 0]) * 20 & -1) + 4 | 0] | 0) != 0) {
  15455.                 var $88 = HEAP[$digest_addr_i];
  15456.                 HEAP[$this_addr_i5_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  15457.                 HEAP[$i_addr_i6_i] = 0;
  15458.                 var $this1_i7_i = HEAP[$this_addr_i5_i];
  15459.                 var $94 = HEAP[HEAP[$this1_i7_i + 96 | 0] + ((HEAP[$i_addr_i6_i] + HEAP[$this1_i7_i + 80 | 0]) * 20 & -1) | 0];
  15460.                 HEAP[$this_addr_i3_i] = $88;
  15461.                 HEAP[$g_addr_i_i] = $94;
  15462.                 var $this1_i4_i = HEAP[$this_addr_i3_i];
  15463.                 var $95 = HEAP[$g_addr_i_i];
  15464.                 HEAP[$this_addr_i_i_i] = $this1_i4_i | 0;
  15465.                 HEAP[$g_addr_i_i_i] = $95;
  15466.                 var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  15467.                 if ((HEAP[$this1_i_i_i | 0] & HEAP[$g_addr_i_i_i] | 0) != (HEAP[$this1_i_i_i + 4 | 0] | 0)) {
  15468.                   label = 115;
  15469.                   break;
  15470.                 }
  15471.                 var $99 = HEAP[$g_addr_i_i];
  15472.                 HEAP[$this_addr_i1_i_i] = $this1_i4_i + 8 | 0;
  15473.                 HEAP[$g_addr_i2_i_i] = $99;
  15474.                 var $100 = HEAP[HEAP[$this_addr_i1_i_i] | 0];
  15475.                 HEAP[$g_addr_i_i_i_i] = HEAP[$g_addr_i2_i_i];
  15476.                 if ((1 << (HEAP[$g_addr_i_i_i_i] & 31) & $100 | 0) == 0) {
  15477.                   label = 115;
  15478.                   break;
  15479.                 }
  15480.                 if (!__ZNK2OT9PosLookup10apply_onceEPNS_18hb_apply_context_tE($this1_i2, HEAP[$c_addr_i])) {
  15481.                   label = 115;
  15482.                   break;
  15483.                 }
  15484.                 $ret_i = 1;
  15485.                 break;
  15486.               } else {
  15487.                 label = 115;
  15488.               }
  15489.             } while (0);
  15490.             if (label == 115) {
  15491.               label = 0;
  15492.               var $idx18_i = HEAP[HEAP[$c_addr_i] + 12 | 0] + 80 | 0;
  15493.               HEAP[$idx18_i] = HEAP[$idx18_i] + 1 | 0;
  15494.             }
  15495.             if (HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 80 | 0] >>> 0 >= HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 84 | 0] >>> 0) {
  15496.               break L138;
  15497.             }
  15498.           }
  15499.         }
  15500.       } while (0);
  15501.       HEAP[$retval_i] = $ret_i & 1;
  15502.       break;
  15503.     } else {
  15504.       label = 107;
  15505.     }
  15506.   } while (0);
  15507.   if (label == 107) {
  15508.     HEAP[$retval_i] = 0;
  15509.   }
  15510.   $retval = HEAP[$retval_i] & 1;
  15511.   STACKTOP = __stackBase__;
  15512.   return;
  15513. }
  15514. function __ZNK2OT17PosLookupSubTable8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_j($this, $c, $lookup_type) {
  15515.   var __stackBase__ = STACKTOP;
  15516.   STACKTOP = STACKTOP + 760 | 0;
  15517.   var $this_addr_i_i_i_i_i362 = __stackBase__;
  15518.   var $this_addr_i_i1_i_i = __stackBase__ + 4;
  15519.   var $this_addr_i2_i_i = __stackBase__ + 8;
  15520.   var $this_addr_i_i_i_i = __stackBase__ + 12;
  15521.   var $this_addr_i_i_i363 = __stackBase__ + 16;
  15522.   var $retval_i_i = __stackBase__ + 20;
  15523.   var $this_addr_i_i364 = __stackBase__ + 24;
  15524.   var $this_addr_i365 = __stackBase__ + 28;
  15525.   var $c_addr_i366 = __stackBase__ + 32;
  15526.   var $v_addr_i361 = __stackBase__ + 36;
  15527.   var $X_addr_i_i_i = __stackBase__ + 40;
  15528.   var $v_addr_i360 = __stackBase__ + 44;
  15529.   var $v_addr_i359 = __stackBase__ + 48;
  15530.   var $v_addr_i358 = __stackBase__ + 52;
  15531.   var $this_addr_i_i2_i295 = __stackBase__ + 56;
  15532.   var $this_addr_i3_i296 = __stackBase__ + 60;
  15533.   var $X_addr_i_i_i_i_i_i_i297 = __stackBase__ + 64;
  15534.   var $P_addr_i_i_i_i_i_i298 = __stackBase__ + 68;
  15535.   var $offset_addr_i_i_i_i_i_i299 = __stackBase__ + 72;
  15536.   var $this_addr_i_i_i_i_i_i_i300 = __stackBase__ + 76;
  15537.   var $this_addr_i_i_i_i_i_i301 = __stackBase__ + 80;
  15538.   var $retval_i_i_i_i_i302 = __stackBase__ + 84;
  15539.   var $this_addr_i_i_i_i_i303 = __stackBase__ + 88;
  15540.   var $base_addr_i_i_i_i_i304 = __stackBase__ + 92;
  15541.   var $offset_i_i_i_i_i305 = __stackBase__ + 96;
  15542.   var $base_addr_i_i_i_i306 = __stackBase__ + 100;
  15543.   var $offset_addr_i_i_i_i307 = __stackBase__ + 104;
  15544.   var $this_addr_i_i_i308 = __stackBase__ + 108;
  15545.   var $ref_tmp_i_i_i309 = __stackBase__ + 112;
  15546.   var $this_addr_i_i310 = __stackBase__ + 116;
  15547.   var $obj_addr_i_i311 = __stackBase__ + 120;
  15548.   var $v_addr_i1_i312 = __stackBase__ + 124;
  15549.   var $X_addr_i_i_i_i313 = __stackBase__ + 128;
  15550.   var $v_addr_i_i314 = __stackBase__ + 132;
  15551.   var $retval_i315 = __stackBase__ + 136;
  15552.   var $this_addr_i316 = __stackBase__ + 140;
  15553.   var $c_addr_i317 = __stackBase__ + 144;
  15554.   var $v_addr_i294 = __stackBase__ + 148;
  15555.   var $this_addr_i_i2_i230 = __stackBase__ + 152;
  15556.   var $this_addr_i3_i231 = __stackBase__ + 156;
  15557.   var $X_addr_i_i_i_i_i_i_i232 = __stackBase__ + 160;
  15558.   var $P_addr_i_i_i_i_i_i233 = __stackBase__ + 164;
  15559.   var $offset_addr_i_i_i_i_i_i234 = __stackBase__ + 168;
  15560.   var $this_addr_i_i_i_i_i_i_i235 = __stackBase__ + 172;
  15561.   var $this_addr_i_i_i_i_i_i236 = __stackBase__ + 176;
  15562.   var $retval_i_i_i_i_i237 = __stackBase__ + 180;
  15563.   var $this_addr_i_i_i_i_i238 = __stackBase__ + 184;
  15564.   var $base_addr_i_i_i_i_i239 = __stackBase__ + 188;
  15565.   var $offset_i_i_i_i_i240 = __stackBase__ + 192;
  15566.   var $base_addr_i_i_i_i241 = __stackBase__ + 196;
  15567.   var $offset_addr_i_i_i_i242 = __stackBase__ + 200;
  15568.   var $this_addr_i_i_i243 = __stackBase__ + 204;
  15569.   var $ref_tmp_i_i_i244 = __stackBase__ + 208;
  15570.   var $this_addr_i_i245 = __stackBase__ + 212;
  15571.   var $obj_addr_i_i246 = __stackBase__ + 216;
  15572.   var $v_addr_i1_i247 = __stackBase__ + 220;
  15573.   var $X_addr_i_i_i_i248 = __stackBase__ + 224;
  15574.   var $v_addr_i_i249 = __stackBase__ + 228;
  15575.   var $retval_i250 = __stackBase__ + 232;
  15576.   var $this_addr_i251 = __stackBase__ + 236;
  15577.   var $c_addr_i252 = __stackBase__ + 240;
  15578.   var $v_addr_i229 = __stackBase__ + 244;
  15579.   var $this_addr_i_i2_i166 = __stackBase__ + 248;
  15580.   var $this_addr_i3_i167 = __stackBase__ + 252;
  15581.   var $X_addr_i_i_i_i_i_i_i168 = __stackBase__ + 256;
  15582.   var $P_addr_i_i_i_i_i_i169 = __stackBase__ + 260;
  15583.   var $offset_addr_i_i_i_i_i_i170 = __stackBase__ + 264;
  15584.   var $this_addr_i_i_i_i_i_i_i171 = __stackBase__ + 268;
  15585.   var $this_addr_i_i_i_i_i_i172 = __stackBase__ + 272;
  15586.   var $retval_i_i_i_i_i173 = __stackBase__ + 276;
  15587.   var $this_addr_i_i_i_i_i174 = __stackBase__ + 280;
  15588.   var $base_addr_i_i_i_i_i175 = __stackBase__ + 284;
  15589.   var $offset_i_i_i_i_i176 = __stackBase__ + 288;
  15590.   var $base_addr_i_i_i_i177 = __stackBase__ + 292;
  15591.   var $offset_addr_i_i_i_i178 = __stackBase__ + 296;
  15592.   var $this_addr_i_i_i179 = __stackBase__ + 300;
  15593.   var $ref_tmp_i_i_i180 = __stackBase__ + 304;
  15594.   var $this_addr_i_i181 = __stackBase__ + 308;
  15595.   var $obj_addr_i_i182 = __stackBase__ + 312;
  15596.   var $v_addr_i1_i183 = __stackBase__ + 316;
  15597.   var $X_addr_i_i_i_i184 = __stackBase__ + 320;
  15598.   var $v_addr_i_i185 = __stackBase__ + 324;
  15599.   var $retval_i186 = __stackBase__ + 328;
  15600.   var $this_addr_i187 = __stackBase__ + 332;
  15601.   var $c_addr_i188 = __stackBase__ + 336;
  15602.   var $v_addr_i165 = __stackBase__ + 340;
  15603.   var $this_addr_i_i2_i = __stackBase__ + 344;
  15604.   var $this_addr_i3_i = __stackBase__ + 348;
  15605.   var $X_addr_i_i_i_i_i_i_i105 = __stackBase__ + 352;
  15606.   var $P_addr_i_i_i_i_i_i106 = __stackBase__ + 356;
  15607.   var $offset_addr_i_i_i_i_i_i107 = __stackBase__ + 360;
  15608.   var $this_addr_i_i_i_i_i_i_i108 = __stackBase__ + 364;
  15609.   var $this_addr_i_i_i_i_i_i109 = __stackBase__ + 368;
  15610.   var $retval_i_i_i_i_i110 = __stackBase__ + 372;
  15611.   var $this_addr_i_i_i_i_i111 = __stackBase__ + 376;
  15612.   var $base_addr_i_i_i_i_i112 = __stackBase__ + 380;
  15613.   var $offset_i_i_i_i_i113 = __stackBase__ + 384;
  15614.   var $base_addr_i_i_i_i114 = __stackBase__ + 388;
  15615.   var $offset_addr_i_i_i_i115 = __stackBase__ + 392;
  15616.   var $this_addr_i_i_i116 = __stackBase__ + 396;
  15617.   var $ref_tmp_i_i_i117 = __stackBase__ + 400;
  15618.   var $this_addr_i_i118 = __stackBase__ + 404;
  15619.   var $obj_addr_i_i119 = __stackBase__ + 408;
  15620.   var $v_addr_i1_i120 = __stackBase__ + 412;
  15621.   var $X_addr_i_i_i_i121 = __stackBase__ + 416;
  15622.   var $v_addr_i_i122 = __stackBase__ + 420;
  15623.   var $retval_i123 = __stackBase__ + 424;
  15624.   var $this_addr_i124 = __stackBase__ + 428;
  15625.   var $c_addr_i125 = __stackBase__ + 432;
  15626.   var $v_addr_i104 = __stackBase__ + 436;
  15627.   var $this_addr_i_i38_i2 = __stackBase__ + 440;
  15628.   var $this_addr_i39_i3 = __stackBase__ + 444;
  15629.   var $X_addr_i_i_i_i_i_i3_i4 = __stackBase__ + 448;
  15630.   var $P_addr_i_i_i_i_i4_i5 = __stackBase__ + 452;
  15631.   var $offset_addr_i_i_i_i_i5_i6 = __stackBase__ + 456;
  15632.   var $this_addr_i_i_i_i_i_i6_i7 = __stackBase__ + 460;
  15633.   var $this_addr_i_i_i_i_i7_i8 = __stackBase__ + 464;
  15634.   var $retval_i_i_i_i8_i9 = __stackBase__ + 468;
  15635.   var $this_addr_i_i_i_i9_i10 = __stackBase__ + 472;
  15636.   var $base_addr_i_i_i_i10_i11 = __stackBase__ + 476;
  15637.   var $offset_i_i_i_i11_i12 = __stackBase__ + 480;
  15638.   var $base_addr_i_i_i12_i13 = __stackBase__ + 484;
  15639.   var $offset_addr_i_i_i13_i14 = __stackBase__ + 488;
  15640.   var $this_addr_i_i14_i15 = __stackBase__ + 492;
  15641.   var $ref_tmp_i_i15_i16 = __stackBase__ + 496;
  15642.   var $this_addr_i16_i17 = __stackBase__ + 500;
  15643.   var $obj_addr_i17_i18 = __stackBase__ + 504;
  15644.   var $v_addr_i2_i19 = __stackBase__ + 508;
  15645.   var $X_addr_i_i_i_i_i_i_i20 = __stackBase__ + 512;
  15646.   var $P_addr_i_i_i_i_i_i21 = __stackBase__ + 516;
  15647.   var $offset_addr_i_i_i_i_i_i22 = __stackBase__ + 520;
  15648.   var $this_addr_i_i_i_i_i_i_i23 = __stackBase__ + 524;
  15649.   var $this_addr_i_i_i_i_i_i24 = __stackBase__ + 528;
  15650.   var $retval_i_i_i_i_i25 = __stackBase__ + 532;
  15651.   var $this_addr_i_i_i_i_i26 = __stackBase__ + 536;
  15652.   var $base_addr_i_i_i_i_i27 = __stackBase__ + 540;
  15653.   var $offset_i_i_i_i_i28 = __stackBase__ + 544;
  15654.   var $base_addr_i_i_i_i29 = __stackBase__ + 548;
  15655.   var $offset_addr_i_i_i_i30 = __stackBase__ + 552;
  15656.   var $this_addr_i_i_i31 = __stackBase__ + 556;
  15657.   var $ref_tmp_i_i_i32 = __stackBase__ + 560;
  15658.   var $this_addr_i_i33 = __stackBase__ + 564;
  15659.   var $obj_addr_i_i34 = __stackBase__ + 568;
  15660.   var $v_addr_i1_i35 = __stackBase__ + 572;
  15661.   var $X_addr_i_i_i_i36 = __stackBase__ + 576;
  15662.   var $v_addr_i_i37 = __stackBase__ + 580;
  15663.   var $retval_i38 = __stackBase__ + 584;
  15664.   var $this_addr_i39 = __stackBase__ + 588;
  15665.   var $c_addr_i40 = __stackBase__ + 592;
  15666.   var $v_addr_i1 = __stackBase__ + 596;
  15667.   var $this_addr_i_i38_i = __stackBase__ + 600;
  15668.   var $this_addr_i39_i = __stackBase__ + 604;
  15669.   var $X_addr_i_i_i_i_i_i3_i = __stackBase__ + 608;
  15670.   var $P_addr_i_i_i_i_i4_i = __stackBase__ + 612;
  15671.   var $offset_addr_i_i_i_i_i5_i = __stackBase__ + 616;
  15672.   var $this_addr_i_i_i_i_i_i6_i = __stackBase__ + 620;
  15673.   var $this_addr_i_i_i_i_i7_i = __stackBase__ + 624;
  15674.   var $retval_i_i_i_i8_i = __stackBase__ + 628;
  15675.   var $this_addr_i_i_i_i9_i = __stackBase__ + 632;
  15676.   var $base_addr_i_i_i_i10_i = __stackBase__ + 636;
  15677.   var $offset_i_i_i_i11_i = __stackBase__ + 640;
  15678.   var $base_addr_i_i_i12_i = __stackBase__ + 644;
  15679.   var $offset_addr_i_i_i13_i = __stackBase__ + 648;
  15680.   var $this_addr_i_i14_i = __stackBase__ + 652;
  15681.   var $ref_tmp_i_i15_i = __stackBase__ + 656;
  15682.   var $this_addr_i16_i = __stackBase__ + 660;
  15683.   var $obj_addr_i17_i = __stackBase__ + 664;
  15684.   var $v_addr_i2_i = __stackBase__ + 668;
  15685.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 672;
  15686.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 676;
  15687.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 680;
  15688.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 684;
  15689.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 688;
  15690.   var $retval_i_i_i_i_i = __stackBase__ + 692;
  15691.   var $this_addr_i_i_i_i_i = __stackBase__ + 696;
  15692.   var $base_addr_i_i_i_i_i = __stackBase__ + 700;
  15693.   var $offset_i_i_i_i_i = __stackBase__ + 704;
  15694.   var $base_addr_i_i_i_i = __stackBase__ + 708;
  15695.   var $offset_addr_i_i_i_i = __stackBase__ + 712;
  15696.   var $this_addr_i_i_i = __stackBase__ + 716;
  15697.   var $ref_tmp_i_i_i = __stackBase__ + 720;
  15698.   var $this_addr_i_i = __stackBase__ + 724;
  15699.   var $obj_addr_i_i = __stackBase__ + 728;
  15700.   var $v_addr_i1_i = __stackBase__ + 732;
  15701.   var $X_addr_i_i_i_i = __stackBase__ + 736;
  15702.   var $v_addr_i_i = __stackBase__ + 740;
  15703.   var $retval_i = __stackBase__ + 744;
  15704.   var $this_addr_i = __stackBase__ + 748;
  15705.   var $c_addr_i = __stackBase__ + 752;
  15706.   var $v_addr_i = __stackBase__ + 756;
  15707.   var $retval;
  15708.   var $c_addr;
  15709.   $c_addr = $c;
  15710.   var $this1 = $this;
  15711.   var $0 = $lookup_type;
  15712.   if (($0 | 0) == 4) {
  15713.     HEAP[$this_addr_i187] = $this1 | 0;
  15714.     HEAP[$c_addr_i188] = $c_addr;
  15715.     var $this1_i189 = HEAP[$this_addr_i187];
  15716.     HEAP[$this_addr_i3_i167] = $this1_i189 | 0;
  15717.     HEAP[$this_addr_i_i2_i166] = HEAP[$this_addr_i3_i167] | 0;
  15718.     var $this1_i_i4_i194 = HEAP[$this_addr_i_i2_i166];
  15719.     if ((((HEAP[$this1_i_i4_i194 | 0] & 255) << 8) + (HEAP[$this1_i_i4_i194 + 1 | 0] & 255) & 65535 | 0) == 1) {
  15720.       HEAP[$this_addr_i_i181] = HEAP[$c_addr_i188];
  15721.       HEAP[$obj_addr_i_i182] = $this1_i189 | 0;
  15722.       HEAP[$this_addr_i_i_i179] = HEAP[$obj_addr_i_i182];
  15723.       var $this1_i_i_i208 = HEAP[$this_addr_i_i_i179];
  15724.       HEAP[$ref_tmp_i_i_i180] = $this1_i_i_i208;
  15725.       HEAP[$base_addr_i_i_i_i177] = $ref_tmp_i_i_i180;
  15726.       HEAP[$offset_addr_i_i_i_i178] = $this1_i_i_i208 + 2 | 0;
  15727.       var $355 = HEAP[HEAP[$base_addr_i_i_i_i177]];
  15728.       HEAP[$this_addr_i_i_i_i_i174] = HEAP[$offset_addr_i_i_i_i178];
  15729.       HEAP[$base_addr_i_i_i_i_i175] = $355;
  15730.       HEAP[$this_addr_i_i_i_i_i_i172] = HEAP[$this_addr_i_i_i_i_i174];
  15731.       HEAP[$this_addr_i_i_i_i_i_i_i171] = HEAP[$this_addr_i_i_i_i_i_i172] | 0;
  15732.       var $this1_i_i_i_i_i_i_i212 = HEAP[$this_addr_i_i_i_i_i_i_i171];
  15733.       HEAP[$offset_i_i_i_i_i176] = ((HEAP[$this1_i_i_i_i_i_i_i212 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i212 + 1 | 0] & 255) & 65535;
  15734.       if ((HEAP[$offset_i_i_i_i_i176] | 0) != 0) {
  15735.         var $373 = HEAP[$offset_i_i_i_i_i176];
  15736.         HEAP[$P_addr_i_i_i_i_i_i169] = HEAP[$base_addr_i_i_i_i_i175];
  15737.         HEAP[$offset_addr_i_i_i_i_i_i170] = $373;
  15738.         HEAP[$retval_i_i_i_i_i173] = HEAP[$P_addr_i_i_i_i_i_i169] + HEAP[$offset_addr_i_i_i_i_i_i170] | 0;
  15739.       } else {
  15740.         HEAP[$X_addr_i_i_i_i_i_i_i168] = 111704;
  15741.         HEAP[$retval_i_i_i_i_i173] = HEAP[$X_addr_i_i_i_i_i_i_i168];
  15742.       }
  15743.       HEAP[$v_addr_i1_i183] = HEAP[$retval_i_i_i_i_i173];
  15744.       HEAP[$retval_i186] = HEAP[$v_addr_i1_i183];
  15745.     } else {
  15746.       HEAP[$X_addr_i_i_i_i184] = 111704;
  15747.       HEAP[$v_addr_i_i185] = HEAP[$X_addr_i_i_i_i184];
  15748.       HEAP[$retval_i186] = HEAP[$v_addr_i_i185];
  15749.     }
  15750.     HEAP[$v_addr_i229] = HEAP[$retval_i186];
  15751.     $retval = HEAP[$v_addr_i229];
  15752.     var $607 = $retval;
  15753.     STACKTOP = __stackBase__;
  15754.     return $607;
  15755.   } else if (($0 | 0) == 2) {
  15756.     HEAP[$this_addr_i39] = $this1 | 0;
  15757.     HEAP[$c_addr_i40] = $c_addr;
  15758.     var $this1_i41 = HEAP[$this_addr_i39];
  15759.     HEAP[$this_addr_i39_i3] = $this1_i41 | 0;
  15760.     HEAP[$this_addr_i_i38_i2] = HEAP[$this_addr_i39_i3] | 0;
  15761.     var $this1_i_i40_i46 = HEAP[$this_addr_i_i38_i2];
  15762.     var $conv_i56 = ((HEAP[$this1_i_i40_i46 | 0] & 255) << 8) + (HEAP[$this1_i_i40_i46 + 1 | 0] & 255) & 65535;
  15763.     if (($conv_i56 | 0) == 1) {
  15764.       HEAP[$this_addr_i16_i17] = HEAP[$c_addr_i40];
  15765.       HEAP[$obj_addr_i17_i18] = $this1_i41 | 0;
  15766.       HEAP[$this_addr_i_i14_i15] = HEAP[$obj_addr_i17_i18];
  15767.       var $this1_i_i18_i59 = HEAP[$this_addr_i_i14_i15];
  15768.       HEAP[$ref_tmp_i_i15_i16] = $this1_i_i18_i59;
  15769.       HEAP[$base_addr_i_i_i12_i13] = $ref_tmp_i_i15_i16;
  15770.       HEAP[$offset_addr_i_i_i13_i14] = $this1_i_i18_i59 + 2 | 0;
  15771.       var $151 = HEAP[HEAP[$base_addr_i_i_i12_i13]];
  15772.       HEAP[$this_addr_i_i_i_i9_i10] = HEAP[$offset_addr_i_i_i13_i14];
  15773.       HEAP[$base_addr_i_i_i_i10_i11] = $151;
  15774.       HEAP[$this_addr_i_i_i_i_i7_i8] = HEAP[$this_addr_i_i_i_i9_i10];
  15775.       HEAP[$this_addr_i_i_i_i_i_i6_i7] = HEAP[$this_addr_i_i_i_i_i7_i8] | 0;
  15776.       var $this1_i_i_i_i_i_i23_i64 = HEAP[$this_addr_i_i_i_i_i_i6_i7];
  15777.       HEAP[$offset_i_i_i_i11_i12] = ((HEAP[$this1_i_i_i_i_i_i23_i64 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i23_i64 + 1 | 0] & 255) & 65535;
  15778.       if ((HEAP[$offset_i_i_i_i11_i12] | 0) != 0) {
  15779.         var $169 = HEAP[$offset_i_i_i_i11_i12];
  15780.         HEAP[$P_addr_i_i_i_i_i4_i5] = HEAP[$base_addr_i_i_i_i10_i11];
  15781.         HEAP[$offset_addr_i_i_i_i_i5_i6] = $169;
  15782.         HEAP[$retval_i_i_i_i8_i9] = HEAP[$P_addr_i_i_i_i_i4_i5] + HEAP[$offset_addr_i_i_i_i_i5_i6] | 0;
  15783.       } else {
  15784.         HEAP[$X_addr_i_i_i_i_i_i3_i4] = 111704;
  15785.         HEAP[$retval_i_i_i_i8_i9] = HEAP[$X_addr_i_i_i_i_i_i3_i4];
  15786.       }
  15787.       HEAP[$v_addr_i2_i19] = HEAP[$retval_i_i_i_i8_i9];
  15788.       HEAP[$retval_i38] = HEAP[$v_addr_i2_i19];
  15789.     } else if (($conv_i56 | 0) == 2) {
  15790.       HEAP[$this_addr_i_i33] = HEAP[$c_addr_i40];
  15791.       HEAP[$obj_addr_i_i34] = $this1_i41 | 0;
  15792.       HEAP[$this_addr_i_i_i31] = HEAP[$obj_addr_i_i34];
  15793.       var $this1_i_i_i82 = HEAP[$this_addr_i_i_i31];
  15794.       HEAP[$ref_tmp_i_i_i32] = $this1_i_i_i82;
  15795.       HEAP[$base_addr_i_i_i_i29] = $ref_tmp_i_i_i32;
  15796.       HEAP[$offset_addr_i_i_i_i30] = $this1_i_i_i82 + 2 | 0;
  15797.       var $203 = HEAP[HEAP[$base_addr_i_i_i_i29]];
  15798.       HEAP[$this_addr_i_i_i_i_i26] = HEAP[$offset_addr_i_i_i_i30];
  15799.       HEAP[$base_addr_i_i_i_i_i27] = $203;
  15800.       HEAP[$this_addr_i_i_i_i_i_i24] = HEAP[$this_addr_i_i_i_i_i26];
  15801.       HEAP[$this_addr_i_i_i_i_i_i_i23] = HEAP[$this_addr_i_i_i_i_i_i24] | 0;
  15802.       var $this1_i_i_i_i_i_i_i87 = HEAP[$this_addr_i_i_i_i_i_i_i23];
  15803.       HEAP[$offset_i_i_i_i_i28] = ((HEAP[$this1_i_i_i_i_i_i_i87 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i87 + 1 | 0] & 255) & 65535;
  15804.       if ((HEAP[$offset_i_i_i_i_i28] | 0) != 0) {
  15805.         var $221 = HEAP[$offset_i_i_i_i_i28];
  15806.         HEAP[$P_addr_i_i_i_i_i_i21] = HEAP[$base_addr_i_i_i_i_i27];
  15807.         HEAP[$offset_addr_i_i_i_i_i_i22] = $221;
  15808.         HEAP[$retval_i_i_i_i_i25] = HEAP[$P_addr_i_i_i_i_i_i21] + HEAP[$offset_addr_i_i_i_i_i_i22] | 0;
  15809.       } else {
  15810.         HEAP[$X_addr_i_i_i_i_i_i_i20] = 111704;
  15811.         HEAP[$retval_i_i_i_i_i25] = HEAP[$X_addr_i_i_i_i_i_i_i20];
  15812.       }
  15813.       HEAP[$v_addr_i1_i35] = HEAP[$retval_i_i_i_i_i25];
  15814.       HEAP[$retval_i38] = HEAP[$v_addr_i1_i35];
  15815.     } else {
  15816.       HEAP[$X_addr_i_i_i_i36] = 111704;
  15817.       HEAP[$v_addr_i_i37] = HEAP[$X_addr_i_i_i_i36];
  15818.       HEAP[$retval_i38] = HEAP[$v_addr_i_i37];
  15819.     }
  15820.     HEAP[$v_addr_i104] = HEAP[$retval_i38];
  15821.     $retval = HEAP[$v_addr_i104];
  15822.     var $607 = $retval;
  15823.     STACKTOP = __stackBase__;
  15824.     return $607;
  15825.   } else if (($0 | 0) == 1) {
  15826.     HEAP[$this_addr_i] = $this1 | 0;
  15827.     HEAP[$c_addr_i] = $c_addr;
  15828.     var $this1_i = HEAP[$this_addr_i];
  15829.     HEAP[$this_addr_i39_i] = $this1_i | 0;
  15830.     HEAP[$this_addr_i_i38_i] = HEAP[$this_addr_i39_i] | 0;
  15831.     var $this1_i_i40_i = HEAP[$this_addr_i_i38_i];
  15832.     var $conv_i = ((HEAP[$this1_i_i40_i | 0] & 255) << 8) + (HEAP[$this1_i_i40_i + 1 | 0] & 255) & 65535;
  15833.     if (($conv_i | 0) == 1) {
  15834.       HEAP[$this_addr_i16_i] = HEAP[$c_addr_i];
  15835.       HEAP[$obj_addr_i17_i] = $this1_i | 0;
  15836.       HEAP[$this_addr_i_i14_i] = HEAP[$obj_addr_i17_i];
  15837.       var $this1_i_i18_i = HEAP[$this_addr_i_i14_i];
  15838.       HEAP[$ref_tmp_i_i15_i] = $this1_i_i18_i;
  15839.       HEAP[$base_addr_i_i_i12_i] = $ref_tmp_i_i15_i;
  15840.       HEAP[$offset_addr_i_i_i13_i] = $this1_i_i18_i + 2 | 0;
  15841.       var $23 = HEAP[HEAP[$base_addr_i_i_i12_i]];
  15842.       HEAP[$this_addr_i_i_i_i9_i] = HEAP[$offset_addr_i_i_i13_i];
  15843.       HEAP[$base_addr_i_i_i_i10_i] = $23;
  15844.       HEAP[$this_addr_i_i_i_i_i7_i] = HEAP[$this_addr_i_i_i_i9_i];
  15845.       HEAP[$this_addr_i_i_i_i_i_i6_i] = HEAP[$this_addr_i_i_i_i_i7_i] | 0;
  15846.       var $this1_i_i_i_i_i_i23_i = HEAP[$this_addr_i_i_i_i_i_i6_i];
  15847.       HEAP[$offset_i_i_i_i11_i] = ((HEAP[$this1_i_i_i_i_i_i23_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i23_i + 1 | 0] & 255) & 65535;
  15848.       if ((HEAP[$offset_i_i_i_i11_i] | 0) != 0) {
  15849.         var $41 = HEAP[$offset_i_i_i_i11_i];
  15850.         HEAP[$P_addr_i_i_i_i_i4_i] = HEAP[$base_addr_i_i_i_i10_i];
  15851.         HEAP[$offset_addr_i_i_i_i_i5_i] = $41;
  15852.         HEAP[$retval_i_i_i_i8_i] = HEAP[$P_addr_i_i_i_i_i4_i] + HEAP[$offset_addr_i_i_i_i_i5_i] | 0;
  15853.       } else {
  15854.         HEAP[$X_addr_i_i_i_i_i_i3_i] = 111704;
  15855.         HEAP[$retval_i_i_i_i8_i] = HEAP[$X_addr_i_i_i_i_i_i3_i];
  15856.       }
  15857.       HEAP[$v_addr_i2_i] = HEAP[$retval_i_i_i_i8_i];
  15858.       HEAP[$retval_i] = HEAP[$v_addr_i2_i];
  15859.     } else if (($conv_i | 0) == 2) {
  15860.       HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  15861.       HEAP[$obj_addr_i_i] = $this1_i | 0;
  15862.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i];
  15863.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  15864.       HEAP[$ref_tmp_i_i_i] = $this1_i_i_i;
  15865.       HEAP[$base_addr_i_i_i_i] = $ref_tmp_i_i_i;
  15866.       HEAP[$offset_addr_i_i_i_i] = $this1_i_i_i + 2 | 0;
  15867.       var $75 = HEAP[HEAP[$base_addr_i_i_i_i]];
  15868.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  15869.       HEAP[$base_addr_i_i_i_i_i] = $75;
  15870.       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i];
  15871.       HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i] | 0;
  15872.       var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  15873.       HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  15874.       if ((HEAP[$offset_i_i_i_i_i] | 0) != 0) {
  15875.         var $93 = HEAP[$offset_i_i_i_i_i];
  15876.         HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  15877.         HEAP[$offset_addr_i_i_i_i_i_i] = $93;
  15878.         HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  15879.       } else {
  15880.         HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  15881.         HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  15882.       }
  15883.       HEAP[$v_addr_i1_i] = HEAP[$retval_i_i_i_i_i];
  15884.       HEAP[$retval_i] = HEAP[$v_addr_i1_i];
  15885.     } else {
  15886.       HEAP[$X_addr_i_i_i_i] = 111704;
  15887.       HEAP[$v_addr_i_i] = HEAP[$X_addr_i_i_i_i];
  15888.       HEAP[$retval_i] = HEAP[$v_addr_i_i];
  15889.     }
  15890.     HEAP[$v_addr_i1] = HEAP[$retval_i];
  15891.     $retval = HEAP[$v_addr_i1];
  15892.     var $607 = $retval;
  15893.     STACKTOP = __stackBase__;
  15894.     return $607;
  15895.   } else if (($0 | 0) == 3) {
  15896.     HEAP[$this_addr_i124] = $this1 | 0;
  15897.     HEAP[$c_addr_i125] = $c_addr;
  15898.     var $this1_i126 = HEAP[$this_addr_i124];
  15899.     HEAP[$this_addr_i3_i] = $this1_i126 | 0;
  15900.     HEAP[$this_addr_i_i2_i] = HEAP[$this_addr_i3_i] | 0;
  15901.     var $this1_i_i4_i = HEAP[$this_addr_i_i2_i];
  15902.     if ((((HEAP[$this1_i_i4_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  15903.       HEAP[$this_addr_i_i118] = HEAP[$c_addr_i125];
  15904.       HEAP[$obj_addr_i_i119] = $this1_i126 | 0;
  15905.       HEAP[$this_addr_i_i_i116] = HEAP[$obj_addr_i_i119];
  15906.       var $this1_i_i_i143 = HEAP[$this_addr_i_i_i116];
  15907.       HEAP[$ref_tmp_i_i_i117] = $this1_i_i_i143;
  15908.       HEAP[$base_addr_i_i_i_i114] = $ref_tmp_i_i_i117;
  15909.       HEAP[$offset_addr_i_i_i_i115] = $this1_i_i_i143 + 2 | 0;
  15910.       var $279 = HEAP[HEAP[$base_addr_i_i_i_i114]];
  15911.       HEAP[$this_addr_i_i_i_i_i111] = HEAP[$offset_addr_i_i_i_i115];
  15912.       HEAP[$base_addr_i_i_i_i_i112] = $279;
  15913.       HEAP[$this_addr_i_i_i_i_i_i109] = HEAP[$this_addr_i_i_i_i_i111];
  15914.       HEAP[$this_addr_i_i_i_i_i_i_i108] = HEAP[$this_addr_i_i_i_i_i_i109] | 0;
  15915.       var $this1_i_i_i_i_i_i_i148 = HEAP[$this_addr_i_i_i_i_i_i_i108];
  15916.       HEAP[$offset_i_i_i_i_i113] = ((HEAP[$this1_i_i_i_i_i_i_i148 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i148 + 1 | 0] & 255) & 65535;
  15917.       if ((HEAP[$offset_i_i_i_i_i113] | 0) != 0) {
  15918.         var $297 = HEAP[$offset_i_i_i_i_i113];
  15919.         HEAP[$P_addr_i_i_i_i_i_i106] = HEAP[$base_addr_i_i_i_i_i112];
  15920.         HEAP[$offset_addr_i_i_i_i_i_i107] = $297;
  15921.         HEAP[$retval_i_i_i_i_i110] = HEAP[$P_addr_i_i_i_i_i_i106] + HEAP[$offset_addr_i_i_i_i_i_i107] | 0;
  15922.       } else {
  15923.         HEAP[$X_addr_i_i_i_i_i_i_i105] = 111704;
  15924.         HEAP[$retval_i_i_i_i_i110] = HEAP[$X_addr_i_i_i_i_i_i_i105];
  15925.       }
  15926.       HEAP[$v_addr_i1_i120] = HEAP[$retval_i_i_i_i_i110];
  15927.       HEAP[$retval_i123] = HEAP[$v_addr_i1_i120];
  15928.     } else {
  15929.       HEAP[$X_addr_i_i_i_i121] = 111704;
  15930.       HEAP[$v_addr_i_i122] = HEAP[$X_addr_i_i_i_i121];
  15931.       HEAP[$retval_i123] = HEAP[$v_addr_i_i122];
  15932.     }
  15933.     HEAP[$v_addr_i165] = HEAP[$retval_i123];
  15934.     $retval = HEAP[$v_addr_i165];
  15935.     var $607 = $retval;
  15936.     STACKTOP = __stackBase__;
  15937.     return $607;
  15938.   } else if (($0 | 0) == 5) {
  15939.     HEAP[$this_addr_i251] = $this1 | 0;
  15940.     HEAP[$c_addr_i252] = $c_addr;
  15941.     var $this1_i253 = HEAP[$this_addr_i251];
  15942.     HEAP[$this_addr_i3_i231] = $this1_i253 | 0;
  15943.     HEAP[$this_addr_i_i2_i230] = HEAP[$this_addr_i3_i231] | 0;
  15944.     var $this1_i_i4_i258 = HEAP[$this_addr_i_i2_i230];
  15945.     if ((((HEAP[$this1_i_i4_i258 | 0] & 255) << 8) + (HEAP[$this1_i_i4_i258 + 1 | 0] & 255) & 65535 | 0) == 1) {
  15946.       HEAP[$this_addr_i_i245] = HEAP[$c_addr_i252];
  15947.       HEAP[$obj_addr_i_i246] = $this1_i253 | 0;
  15948.       HEAP[$this_addr_i_i_i243] = HEAP[$obj_addr_i_i246];
  15949.       var $this1_i_i_i272 = HEAP[$this_addr_i_i_i243];
  15950.       HEAP[$ref_tmp_i_i_i244] = $this1_i_i_i272;
  15951.       HEAP[$base_addr_i_i_i_i241] = $ref_tmp_i_i_i244;
  15952.       HEAP[$offset_addr_i_i_i_i242] = $this1_i_i_i272 + 2 | 0;
  15953.       var $431 = HEAP[HEAP[$base_addr_i_i_i_i241]];
  15954.       HEAP[$this_addr_i_i_i_i_i238] = HEAP[$offset_addr_i_i_i_i242];
  15955.       HEAP[$base_addr_i_i_i_i_i239] = $431;
  15956.       HEAP[$this_addr_i_i_i_i_i_i236] = HEAP[$this_addr_i_i_i_i_i238];
  15957.       HEAP[$this_addr_i_i_i_i_i_i_i235] = HEAP[$this_addr_i_i_i_i_i_i236] | 0;
  15958.       var $this1_i_i_i_i_i_i_i277 = HEAP[$this_addr_i_i_i_i_i_i_i235];
  15959.       HEAP[$offset_i_i_i_i_i240] = ((HEAP[$this1_i_i_i_i_i_i_i277 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i277 + 1 | 0] & 255) & 65535;
  15960.       if ((HEAP[$offset_i_i_i_i_i240] | 0) != 0) {
  15961.         var $449 = HEAP[$offset_i_i_i_i_i240];
  15962.         HEAP[$P_addr_i_i_i_i_i_i233] = HEAP[$base_addr_i_i_i_i_i239];
  15963.         HEAP[$offset_addr_i_i_i_i_i_i234] = $449;
  15964.         HEAP[$retval_i_i_i_i_i237] = HEAP[$P_addr_i_i_i_i_i_i233] + HEAP[$offset_addr_i_i_i_i_i_i234] | 0;
  15965.       } else {
  15966.         HEAP[$X_addr_i_i_i_i_i_i_i232] = 111704;
  15967.         HEAP[$retval_i_i_i_i_i237] = HEAP[$X_addr_i_i_i_i_i_i_i232];
  15968.       }
  15969.       HEAP[$v_addr_i1_i247] = HEAP[$retval_i_i_i_i_i237];
  15970.       HEAP[$retval_i250] = HEAP[$v_addr_i1_i247];
  15971.     } else {
  15972.       HEAP[$X_addr_i_i_i_i248] = 111704;
  15973.       HEAP[$v_addr_i_i249] = HEAP[$X_addr_i_i_i_i248];
  15974.       HEAP[$retval_i250] = HEAP[$v_addr_i_i249];
  15975.     }
  15976.     HEAP[$v_addr_i294] = HEAP[$retval_i250];
  15977.     $retval = HEAP[$v_addr_i294];
  15978.     var $607 = $retval;
  15979.     STACKTOP = __stackBase__;
  15980.     return $607;
  15981.   } else if (($0 | 0) == 6) {
  15982.     HEAP[$this_addr_i316] = $this1 | 0;
  15983.     HEAP[$c_addr_i317] = $c_addr;
  15984.     var $this1_i318 = HEAP[$this_addr_i316];
  15985.     HEAP[$this_addr_i3_i296] = $this1_i318 | 0;
  15986.     HEAP[$this_addr_i_i2_i295] = HEAP[$this_addr_i3_i296] | 0;
  15987.     var $this1_i_i4_i323 = HEAP[$this_addr_i_i2_i295];
  15988.     if ((((HEAP[$this1_i_i4_i323 | 0] & 255) << 8) + (HEAP[$this1_i_i4_i323 + 1 | 0] & 255) & 65535 | 0) == 1) {
  15989.       HEAP[$this_addr_i_i310] = HEAP[$c_addr_i317];
  15990.       HEAP[$obj_addr_i_i311] = $this1_i318 | 0;
  15991.       HEAP[$this_addr_i_i_i308] = HEAP[$obj_addr_i_i311];
  15992.       var $this1_i_i_i337 = HEAP[$this_addr_i_i_i308];
  15993.       HEAP[$ref_tmp_i_i_i309] = $this1_i_i_i337;
  15994.       HEAP[$base_addr_i_i_i_i306] = $ref_tmp_i_i_i309;
  15995.       HEAP[$offset_addr_i_i_i_i307] = $this1_i_i_i337 + 2 | 0;
  15996.       var $507 = HEAP[HEAP[$base_addr_i_i_i_i306]];
  15997.       HEAP[$this_addr_i_i_i_i_i303] = HEAP[$offset_addr_i_i_i_i307];
  15998.       HEAP[$base_addr_i_i_i_i_i304] = $507;
  15999.       HEAP[$this_addr_i_i_i_i_i_i301] = HEAP[$this_addr_i_i_i_i_i303];
  16000.       HEAP[$this_addr_i_i_i_i_i_i_i300] = HEAP[$this_addr_i_i_i_i_i_i301] | 0;
  16001.       var $this1_i_i_i_i_i_i_i341 = HEAP[$this_addr_i_i_i_i_i_i_i300];
  16002.       HEAP[$offset_i_i_i_i_i305] = ((HEAP[$this1_i_i_i_i_i_i_i341 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i341 + 1 | 0] & 255) & 65535;
  16003.       if ((HEAP[$offset_i_i_i_i_i305] | 0) != 0) {
  16004.         var $525 = HEAP[$offset_i_i_i_i_i305];
  16005.         HEAP[$P_addr_i_i_i_i_i_i298] = HEAP[$base_addr_i_i_i_i_i304];
  16006.         HEAP[$offset_addr_i_i_i_i_i_i299] = $525;
  16007.         HEAP[$retval_i_i_i_i_i302] = HEAP[$P_addr_i_i_i_i_i_i298] + HEAP[$offset_addr_i_i_i_i_i_i299] | 0;
  16008.       } else {
  16009.         HEAP[$X_addr_i_i_i_i_i_i_i297] = 111704;
  16010.         HEAP[$retval_i_i_i_i_i302] = HEAP[$X_addr_i_i_i_i_i_i_i297];
  16011.       }
  16012.       HEAP[$v_addr_i1_i312] = HEAP[$retval_i_i_i_i_i302];
  16013.       HEAP[$retval_i315] = HEAP[$v_addr_i1_i312];
  16014.     } else {
  16015.       HEAP[$X_addr_i_i_i_i313] = 111704;
  16016.       HEAP[$v_addr_i_i314] = HEAP[$X_addr_i_i_i_i313];
  16017.       HEAP[$retval_i315] = HEAP[$v_addr_i_i314];
  16018.     }
  16019.     HEAP[$v_addr_i358] = HEAP[$retval_i315];
  16020.     $retval = HEAP[$v_addr_i358];
  16021.     var $607 = $retval;
  16022.     STACKTOP = __stackBase__;
  16023.     return $607;
  16024.   } else if (($0 | 0) == 7) {
  16025.     var $call26 = __ZNK2OT7Context8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr);
  16026.     HEAP[$v_addr_i359] = $call26;
  16027.     $retval = HEAP[$v_addr_i359];
  16028.     var $607 = $retval;
  16029.     STACKTOP = __stackBase__;
  16030.     return $607;
  16031.   } else if (($0 | 0) == 8) {
  16032.     var $call30 = __ZNK2OT12ChainContext8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr);
  16033.     HEAP[$v_addr_i360] = $call30;
  16034.     $retval = HEAP[$v_addr_i360];
  16035.     var $607 = $retval;
  16036.     STACKTOP = __stackBase__;
  16037.     return $607;
  16038.   } else if (($0 | 0) == 9) {
  16039.     HEAP[$this_addr_i365] = $this1 | 0;
  16040.     HEAP[$c_addr_i366] = $c_addr;
  16041.     var $this1_i367 = HEAP[$this_addr_i365];
  16042.     var $call_i = __ZNK2OT9ExtensionINS_12ExtensionPosEE12get_subtableINS_17PosLookupSubTableEEERKT_v($this1_i367);
  16043.     var $575 = HEAP[$c_addr_i366];
  16044.     HEAP[$this_addr_i_i364] = $this1_i367;
  16045.     var $this1_i_i368 = HEAP[$this_addr_i_i364];
  16046.     HEAP[$this_addr_i_i_i363] = $this1_i_i368 | 0;
  16047.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i363] | 0;
  16048.     var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  16049.     if ((((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  16050.       HEAP[$this_addr_i2_i_i] = $this1_i_i368 | 0;
  16051.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] + 2 | 0;
  16052.       HEAP[$this_addr_i_i_i_i_i362] = HEAP[$this_addr_i_i1_i_i] | 0;
  16053.       var $this1_i_i_i_i_i371 = HEAP[$this_addr_i_i_i_i_i362];
  16054.       HEAP[$retval_i_i] = ((HEAP[$this1_i_i_i_i_i371 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i371 + 1 | 0] & 255) & 65535;
  16055.     } else {
  16056.       HEAP[$retval_i_i] = 0;
  16057.     }
  16058.     var $call3_i = __ZNK2OT17PosLookupSubTable8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_j($call_i, $575, HEAP[$retval_i_i]);
  16059.     HEAP[$v_addr_i361] = $call3_i;
  16060.     $retval = HEAP[$v_addr_i361];
  16061.     var $607 = $retval;
  16062.     STACKTOP = __stackBase__;
  16063.     return $607;
  16064.   } else {
  16065.     HEAP[$X_addr_i_i_i] = 111704;
  16066.     HEAP[$v_addr_i] = HEAP[$X_addr_i_i_i];
  16067.     $retval = HEAP[$v_addr_i];
  16068.     var $607 = $retval;
  16069.     STACKTOP = __stackBase__;
  16070.     return $607;
  16071.   }
  16072. }
  16073. function __ZNK2OT8Coverage12add_coverageI15hb_set_digest_tEEvPT_($this, $glyphs) {
  16074.   var __stackBase__ = STACKTOP;
  16075.   STACKTOP = STACKTOP + 224 | 0;
  16076.   var $X_addr_i_i_i_i8 = __stackBase__;
  16077.   var $this_addr_i_i_i_i9 = __stackBase__ + 4;
  16078.   var $this_addr_i_i19_i = __stackBase__ + 8;
  16079.   var $retval_i_i10 = __stackBase__ + 12;
  16080.   var $this_addr_i20_i = __stackBase__ + 16;
  16081.   var $i_addr_i_i11 = __stackBase__ + 20;
  16082.   var $this_addr_i_i5_i = __stackBase__ + 24;
  16083.   var $this_addr_i6_i = __stackBase__ + 28;
  16084.   var $g_addr_i_i_i_i = __stackBase__ + 32;
  16085.   var $this_addr_i1_i_i = __stackBase__ + 36;
  16086.   var $g_addr_i2_i_i = __stackBase__ + 40;
  16087.   var $this_addr_i_i1_i12 = __stackBase__ + 44;
  16088.   var $g_addr_i_i_i = __stackBase__ + 48;
  16089.   var $this_addr_i2_i13 = __stackBase__ + 52;
  16090.   var $g_addr_i_i = __stackBase__ + 56;
  16091.   var $this_addr_i_i_i14 = __stackBase__ + 60;
  16092.   var $this_addr_i_i15 = __stackBase__ + 64;
  16093.   var $this_addr_i16 = __stackBase__ + 68;
  16094.   var $glyphs_addr_i17 = __stackBase__ + 72;
  16095.   var $count_i18 = __stackBase__ + 76;
  16096.   var $i_i19 = __stackBase__ + 80;
  16097.   var $X_addr_i_i_i_i = __stackBase__ + 84;
  16098.   var $this_addr_i_i_i6_i = __stackBase__ + 88;
  16099.   var $this_addr_i_i7_i = __stackBase__ + 92;
  16100.   var $retval_i_i = __stackBase__ + 96;
  16101.   var $this_addr_i8_i = __stackBase__ + 100;
  16102.   var $i_addr_i_i = __stackBase__ + 104;
  16103.   var $this_addr_i_i8_i_i = __stackBase__ + 108;
  16104.   var $this_addr_i9_i_i = __stackBase__ + 112;
  16105.   var $g_addr_i1_i_i_i_i = __stackBase__ + 116;
  16106.   var $g_addr_i_i_i_i_i = __stackBase__ + 120;
  16107.   var $this_addr_i1_i_i_i = __stackBase__ + 124;
  16108.   var $a_addr_i2_i_i_i = __stackBase__ + 128;
  16109.   var $b_addr_i3_i_i_i = __stackBase__ + 132;
  16110.   var $ma_i_i_i_i = __stackBase__ + 136;
  16111.   var $mb_i_i_i_i = __stackBase__ + 140;
  16112.   var $number_addr_i_i_i_i_i = __stackBase__ + 144;
  16113.   var $n_bits_i_i_i_i_i = __stackBase__ + 148;
  16114.   var $this_addr_i_i1_i_i = __stackBase__ + 152;
  16115.   var $a_addr_i_i_i_i = __stackBase__ + 156;
  16116.   var $b_addr_i_i_i_i = __stackBase__ + 160;
  16117.   var $this_addr_i2_i_i = __stackBase__ + 164;
  16118.   var $a_addr_i_i_i = __stackBase__ + 168;
  16119.   var $b_addr_i_i_i = __stackBase__ + 172;
  16120.   var $this_addr_i_i_i_i = __stackBase__ + 176;
  16121.   var $this_addr_i_i1_i = __stackBase__ + 180;
  16122.   var $this_addr_i2_i = __stackBase__ + 184;
  16123.   var $glyphs_addr_i_i = __stackBase__ + 188;
  16124.   var $this_addr_i_i_i = __stackBase__ + 192;
  16125.   var $this_addr_i_i1 = __stackBase__ + 196;
  16126.   var $this_addr_i2 = __stackBase__ + 200;
  16127.   var $glyphs_addr_i = __stackBase__ + 204;
  16128.   var $count_i = __stackBase__ + 208;
  16129.   var $i_i = __stackBase__ + 212;
  16130.   var $this_addr_i_i = __stackBase__ + 216;
  16131.   var $this_addr_i = __stackBase__ + 220;
  16132.   var $glyphs_addr;
  16133.   $glyphs_addr = $glyphs;
  16134.   var $this1 = $this;
  16135.   HEAP[$this_addr_i] = $this1 | 0;
  16136.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  16137.   var $this1_i_i = HEAP[$this_addr_i_i];
  16138.   var $conv = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  16139.   if (($conv | 0) == 1) {
  16140.     HEAP[$this_addr_i16] = $this1 | 0;
  16141.     HEAP[$glyphs_addr_i17] = $glyphs_addr;
  16142.     var $this1_i20 = HEAP[$this_addr_i16];
  16143.     HEAP[$this_addr_i_i15] = $this1_i20 + 2 | 0;
  16144.     HEAP[$this_addr_i_i_i14] = HEAP[$this_addr_i_i15] | 0;
  16145.     var $this1_i_i_i24 = HEAP[$this_addr_i_i_i14];
  16146.     HEAP[$count_i18] = ((HEAP[$this1_i_i_i24 | 0] & 255) << 8) + (HEAP[$this1_i_i_i24 + 1 | 0] & 255) & 65535;
  16147.     HEAP[$i_i19] = 0;
  16148.     L242 : do {
  16149.       if (HEAP[$i_i19] >>> 0 < HEAP[$count_i18] >>> 0) {
  16150.         var $20 = $this1_i20 + 2 | 0;
  16151.         while (1) {
  16152.           var $51 = HEAP[$glyphs_addr_i17];
  16153.           var $52 = HEAP[$i_i19];
  16154.           HEAP[$this_addr_i20_i] = $20;
  16155.           HEAP[$i_addr_i_i11] = $52;
  16156.           var $this1_i21_i = HEAP[$this_addr_i20_i];
  16157.           var $53 = HEAP[$i_addr_i_i11];
  16158.           HEAP[$this_addr_i_i19_i] = $this1_i21_i | 0;
  16159.           HEAP[$this_addr_i_i_i_i9] = HEAP[$this_addr_i_i19_i] | 0;
  16160.           var $this1_i_i_i_i37 = HEAP[$this_addr_i_i_i_i9];
  16161.           if ($53 >>> 0 >= (((HEAP[$this1_i_i_i_i37 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i37 + 1 | 0] & 255) & 65535) >>> 0) {
  16162.             HEAP[$X_addr_i_i_i_i8] = 111704;
  16163.             HEAP[$retval_i_i10] = HEAP[$X_addr_i_i_i_i8];
  16164.           } else {
  16165.             HEAP[$retval_i_i10] = (HEAP[$i_addr_i_i11] << 1) + $this1_i21_i + 2 | 0;
  16166.           }
  16167.           HEAP[$this_addr_i6_i] = HEAP[$retval_i_i10];
  16168.           HEAP[$this_addr_i_i5_i] = HEAP[$this_addr_i6_i] | 0;
  16169.           var $this1_i_i9_i = HEAP[$this_addr_i_i5_i];
  16170.           var $conv5_i = ((HEAP[$this1_i_i9_i | 0] & 255) << 8) + (HEAP[$this1_i_i9_i + 1 | 0] & 255) & 65535;
  16171.           HEAP[$this_addr_i2_i13] = $51;
  16172.           HEAP[$g_addr_i_i] = $conv5_i;
  16173.           var $this1_i3_i53 = HEAP[$this_addr_i2_i13];
  16174.           var $62 = HEAP[$g_addr_i_i];
  16175.           HEAP[$this_addr_i_i1_i12] = $this1_i3_i53 | 0;
  16176.           HEAP[$g_addr_i_i_i] = $62;
  16177.           var $this1_i_i4_i54 = HEAP[$this_addr_i_i1_i12];
  16178.           var $64 = HEAP[$g_addr_i_i_i];
  16179.           if ((HEAP[$this1_i_i4_i54 + 4 | 0] | 0) == -1) {
  16180.             HEAP[$this1_i_i4_i54 + 4 | 0] = $64;
  16181.           } else {
  16182.             var $mask4_i_i_i = $this1_i_i4_i54 | 0;
  16183.             HEAP[$mask4_i_i_i] = HEAP[$this1_i_i4_i54 | 0] & $64 ^ HEAP[$this1_i_i4_i54 + 4 | 0] ^ HEAP[$mask4_i_i_i];
  16184.             var $value7_i_i_i = $this1_i_i4_i54 + 4 | 0;
  16185.             HEAP[$value7_i_i_i] = HEAP[$value7_i_i_i] & HEAP[$this1_i_i4_i54 | 0];
  16186.           }
  16187.           var $70 = HEAP[$g_addr_i_i];
  16188.           HEAP[$this_addr_i1_i_i] = $this1_i3_i53 + 8 | 0;
  16189.           HEAP[$g_addr_i2_i_i] = $70;
  16190.           var $this1_i3_i_i55 = HEAP[$this_addr_i1_i_i];
  16191.           HEAP[$g_addr_i_i_i_i] = HEAP[$g_addr_i2_i_i];
  16192.           var $mask_i4_i_i = $this1_i3_i_i55 | 0;
  16193.           HEAP[$mask_i4_i_i] = HEAP[$mask_i4_i_i] | 1 << (HEAP[$g_addr_i_i_i_i] & 31);
  16194.           HEAP[$i_i19] = HEAP[$i_i19] + 1 | 0;
  16195.           if (HEAP[$i_i19] >>> 0 >= HEAP[$count_i18] >>> 0) {
  16196.             break L242;
  16197.           }
  16198.         }
  16199.       }
  16200.     } while (0);
  16201.     STACKTOP = __stackBase__;
  16202.     return;
  16203.   } else if (($conv | 0) == 2) {
  16204.     HEAP[$this_addr_i2] = $this1 | 0;
  16205.     HEAP[$glyphs_addr_i] = $glyphs_addr;
  16206.     var $this1_i3 = HEAP[$this_addr_i2];
  16207.     HEAP[$this_addr_i_i1] = $this1_i3 + 2 | 0;
  16208.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i1] | 0;
  16209.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  16210.     HEAP[$count_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  16211.     HEAP[$i_i] = 0;
  16212.     L258 : do {
  16213.       if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  16214.         var $95 = $this1_i3 + 2 | 0;
  16215.         while (1) {
  16216.           var $150 = HEAP[$i_i];
  16217.           HEAP[$this_addr_i8_i] = $95;
  16218.           HEAP[$i_addr_i_i] = $150;
  16219.           var $this1_i9_i = HEAP[$this_addr_i8_i];
  16220.           var $151 = HEAP[$i_addr_i_i];
  16221.           HEAP[$this_addr_i_i7_i] = $this1_i9_i | 0;
  16222.           HEAP[$this_addr_i_i_i6_i] = HEAP[$this_addr_i_i7_i] | 0;
  16223.           var $this1_i_i_i12_i = HEAP[$this_addr_i_i_i6_i];
  16224.           if ($151 >>> 0 >= (((HEAP[$this1_i_i_i12_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i12_i + 1 | 0] & 255) & 65535) >>> 0) {
  16225.             HEAP[$X_addr_i_i_i_i] = 111840;
  16226.             HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  16227.           } else {
  16228.             HEAP[$retval_i_i] = $this1_i9_i + (HEAP[$i_addr_i_i] * 6 & -1) + 2 | 0;
  16229.           }
  16230.           var $158 = HEAP[$glyphs_addr_i];
  16231.           HEAP[$this_addr_i2_i] = HEAP[$retval_i_i];
  16232.           HEAP[$glyphs_addr_i_i] = $158;
  16233.           var $this1_i3_i = HEAP[$this_addr_i2_i];
  16234.           var $159 = HEAP[$glyphs_addr_i_i];
  16235.           HEAP[$this_addr_i_i1_i] = $this1_i3_i | 0;
  16236.           HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  16237.           var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  16238.           var $conv_i_i7 = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  16239.           HEAP[$this_addr_i9_i_i] = $this1_i3_i + 2 | 0;
  16240.           HEAP[$this_addr_i_i8_i_i] = HEAP[$this_addr_i9_i_i] | 0;
  16241.           var $this1_i_i12_i_i = HEAP[$this_addr_i_i8_i_i];
  16242.           var $conv3_i_i = ((HEAP[$this1_i_i12_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i12_i_i + 1 | 0] & 255) & 65535;
  16243.           HEAP[$this_addr_i2_i_i] = $159;
  16244.           HEAP[$a_addr_i_i_i] = $conv_i_i7;
  16245.           HEAP[$b_addr_i_i_i] = $conv3_i_i;
  16246.           var $this1_i3_i_i = HEAP[$this_addr_i2_i_i];
  16247.           var $164 = HEAP[$a_addr_i_i_i];
  16248.           var $165 = HEAP[$b_addr_i_i_i];
  16249.           HEAP[$this_addr_i_i1_i_i] = $this1_i3_i_i | 0;
  16250.           HEAP[$a_addr_i_i_i_i] = $164;
  16251.           HEAP[$b_addr_i_i_i_i] = $165;
  16252.           var $this1_i_i4_i_i = HEAP[$this_addr_i_i1_i_i];
  16253.           var $xor_i_i_i_i = HEAP[$b_addr_i_i_i_i] ^ HEAP[$a_addr_i_i_i_i];
  16254.           HEAP[$number_addr_i_i_i_i_i] = $xor_i_i_i_i;
  16255.           HEAP[$n_bits_i_i_i_i_i] = 0;
  16256.           var $168 = HEAP[$n_bits_i_i_i_i_i];
  16257.           L266 : do {
  16258.             if (($xor_i_i_i_i | 0) != 0) {
  16259.               var $169 = $168;
  16260.               while (1) {
  16261.                 var $169;
  16262.                 HEAP[$n_bits_i_i_i_i_i] = $169 + 1 | 0;
  16263.                 var $shr_i_i_i_i_i = HEAP[$number_addr_i_i_i_i_i] >>> 1;
  16264.                 HEAP[$number_addr_i_i_i_i_i] = $shr_i_i_i_i_i;
  16265.                 var $171 = HEAP[$n_bits_i_i_i_i_i];
  16266.                 if (($shr_i_i_i_i_i | 0) != 0) {
  16267.                   var $169 = $171;
  16268.                 } else {
  16269.                   var $_lcssa_i_i_i_i_i = $171;
  16270.                   break L266;
  16271.                 }
  16272.               }
  16273.             } else {
  16274.               var $_lcssa_i_i_i_i_i = $168;
  16275.             }
  16276.           } while (0);
  16277.           var $_lcssa_i_i_i_i_i;
  16278.           var $mask_i_i_i_i = $this1_i_i4_i_i | 0;
  16279.           HEAP[$mask_i_i_i_i] = HEAP[$mask_i_i_i_i] & -(1 << $_lcssa_i_i_i_i_i);
  16280.           var $value_i_i_i_i = $this1_i_i4_i_i + 4 | 0;
  16281.           HEAP[$value_i_i_i_i] = HEAP[$value_i_i_i_i] & HEAP[$this1_i_i4_i_i | 0];
  16282.           var $175 = HEAP[$a_addr_i_i_i];
  16283.           var $176 = HEAP[$b_addr_i_i_i];
  16284.           HEAP[$this_addr_i1_i_i_i] = $this1_i3_i_i + 8 | 0;
  16285.           HEAP[$a_addr_i2_i_i_i] = $175;
  16286.           HEAP[$b_addr_i3_i_i_i] = $176;
  16287.           var $this1_i4_i_i_i = HEAP[$this_addr_i1_i_i_i];
  16288.           if ((HEAP[$b_addr_i3_i_i_i] - HEAP[$a_addr_i2_i_i_i] | 0) >>> 0 >= 31) {
  16289.             HEAP[$this1_i4_i_i_i | 0] = -1;
  16290.           } else {
  16291.             HEAP[$g_addr_i_i_i_i_i] = HEAP[$a_addr_i2_i_i_i];
  16292.             HEAP[$ma_i_i_i_i] = 1 << (HEAP[$g_addr_i_i_i_i_i] & 31);
  16293.             HEAP[$g_addr_i1_i_i_i_i] = HEAP[$b_addr_i3_i_i_i];
  16294.             HEAP[$mb_i_i_i_i] = 1 << (HEAP[$g_addr_i1_i_i_i_i] & 31);
  16295.             var $mask6_i_i_i_i = $this1_i4_i_i_i | 0;
  16296.             HEAP[$mask6_i_i_i_i] = HEAP[$mb_i_i_i_i] + HEAP[$mb_i_i_i_i] + -HEAP[$ma_i_i_i_i] + -(HEAP[$mb_i_i_i_i] >>> 0 < HEAP[$ma_i_i_i_i] >>> 0 & 1) | HEAP[$mask6_i_i_i_i];
  16297.           }
  16298.           HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  16299.           if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  16300.             break L258;
  16301.           }
  16302.         }
  16303.       }
  16304.     } while (0);
  16305.     STACKTOP = __stackBase__;
  16306.     return;
  16307.   } else {
  16308.     STACKTOP = __stackBase__;
  16309.     return;
  16310.   }
  16311. }
  16312. function __ZNK2OT7Context8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_($this, $c) {
  16313.   var __stackBase__ = STACKTOP;
  16314.   STACKTOP = STACKTOP + 208 | 0;
  16315.   var $this_addr_i_i74 = __stackBase__;
  16316.   var $this_addr_i75 = __stackBase__ + 4;
  16317.   var $X_addr_i_i_i_i_i_i39 = __stackBase__ + 8;
  16318.   var $P_addr_i_i_i_i_i40 = __stackBase__ + 12;
  16319.   var $offset_addr_i_i_i_i_i41 = __stackBase__ + 16;
  16320.   var $this_addr_i_i_i_i_i_i42 = __stackBase__ + 20;
  16321.   var $this_addr_i_i_i_i_i43 = __stackBase__ + 24;
  16322.   var $retval_i_i_i_i44 = __stackBase__ + 28;
  16323.   var $this_addr_i_i_i_i45 = __stackBase__ + 32;
  16324.   var $base_addr_i_i_i_i46 = __stackBase__ + 36;
  16325.   var $offset_i_i_i_i47 = __stackBase__ + 40;
  16326.   var $base_addr_i_i_i48 = __stackBase__ + 44;
  16327.   var $offset_addr_i_i_i49 = __stackBase__ + 48;
  16328.   var $this_addr_i_i50 = __stackBase__ + 52;
  16329.   var $ref_tmp_i_i51 = __stackBase__ + 56;
  16330.   var $this_addr_i52 = __stackBase__ + 60;
  16331.   var $obj_addr_i53 = __stackBase__ + 64;
  16332.   var $v_addr_i38 = __stackBase__ + 68;
  16333.   var $X_addr_i_i_i_i_i_i3 = __stackBase__ + 72;
  16334.   var $P_addr_i_i_i_i_i4 = __stackBase__ + 76;
  16335.   var $offset_addr_i_i_i_i_i5 = __stackBase__ + 80;
  16336.   var $this_addr_i_i_i_i_i_i6 = __stackBase__ + 84;
  16337.   var $this_addr_i_i_i_i_i7 = __stackBase__ + 88;
  16338.   var $retval_i_i_i_i8 = __stackBase__ + 92;
  16339.   var $this_addr_i_i_i_i9 = __stackBase__ + 96;
  16340.   var $base_addr_i_i_i_i10 = __stackBase__ + 100;
  16341.   var $offset_i_i_i_i11 = __stackBase__ + 104;
  16342.   var $base_addr_i_i_i12 = __stackBase__ + 108;
  16343.   var $offset_addr_i_i_i13 = __stackBase__ + 112;
  16344.   var $this_addr_i_i14 = __stackBase__ + 116;
  16345.   var $ref_tmp_i_i15 = __stackBase__ + 120;
  16346.   var $this_addr_i16 = __stackBase__ + 124;
  16347.   var $obj_addr_i17 = __stackBase__ + 128;
  16348.   var $v_addr_i2 = __stackBase__ + 132;
  16349.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 136;
  16350.   var $P_addr_i_i_i_i_i = __stackBase__ + 140;
  16351.   var $offset_addr_i_i_i_i_i = __stackBase__ + 144;
  16352.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 148;
  16353.   var $this_addr_i_i_i_i_i = __stackBase__ + 152;
  16354.   var $retval_i_i_i_i = __stackBase__ + 156;
  16355.   var $this_addr_i_i_i_i = __stackBase__ + 160;
  16356.   var $base_addr_i_i_i_i = __stackBase__ + 164;
  16357.   var $offset_i_i_i_i = __stackBase__ + 168;
  16358.   var $base_addr_i_i_i = __stackBase__ + 172;
  16359.   var $offset_addr_i_i_i = __stackBase__ + 176;
  16360.   var $this_addr_i_i = __stackBase__ + 180;
  16361.   var $ref_tmp_i_i = __stackBase__ + 184;
  16362.   var $obj_addr_i = __stackBase__ + 192;
  16363.   var $v_addr_i1 = __stackBase__ + 196;
  16364.   var $X_addr_i_i_i = __stackBase__ + 200;
  16365.   var $v_addr_i = __stackBase__ + 204;
  16366.   var $retval;
  16367.   var $c_addr;
  16368.   $c_addr = $c;
  16369.   var $this1 = $this;
  16370.   HEAP[$this_addr_i75] = $this1 | 0;
  16371.   HEAP[$this_addr_i_i74] = HEAP[$this_addr_i75] | 0;
  16372.   var $this1_i_i76 = HEAP[$this_addr_i_i74];
  16373.   var $conv = ((HEAP[$this1_i_i76 | 0] & 255) << 8) + (HEAP[$this1_i_i76 + 1 | 0] & 255) & 65535;
  16374.   if (($conv | 0) == 3) {
  16375.     HEAP[__stackBase__ + 188] = $c_addr;
  16376.     HEAP[$obj_addr_i] = $this1 | 0;
  16377.     HEAP[$this_addr_i_i] = HEAP[$obj_addr_i];
  16378.     var $this1_i_i = HEAP[$this_addr_i_i];
  16379.     HEAP[$ref_tmp_i_i] = $this1_i_i;
  16380.     HEAP[$base_addr_i_i_i] = $ref_tmp_i_i;
  16381.     HEAP[$offset_addr_i_i_i] = $this1_i_i + 6 | 0;
  16382.     var $122 = HEAP[HEAP[$base_addr_i_i_i]];
  16383.     HEAP[$this_addr_i_i_i_i] = HEAP[$offset_addr_i_i_i];
  16384.     HEAP[$base_addr_i_i_i_i] = $122;
  16385.     HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i];
  16386.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  16387.     var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  16388.     HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  16389.     if ((HEAP[$offset_i_i_i_i] | 0) != 0) {
  16390.       var $140 = HEAP[$offset_i_i_i_i];
  16391.       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  16392.       HEAP[$offset_addr_i_i_i_i_i] = $140;
  16393.       HEAP[$retval_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  16394.     } else {
  16395.       HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  16396.       HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  16397.     }
  16398.     HEAP[$v_addr_i1] = HEAP[$retval_i_i_i_i];
  16399.     $retval = HEAP[$v_addr_i1];
  16400.     var $169 = $retval;
  16401.     STACKTOP = __stackBase__;
  16402.     return $169;
  16403.   } else if (($conv | 0) == 1) {
  16404.     HEAP[$this_addr_i52] = $c_addr;
  16405.     HEAP[$obj_addr_i53] = $this1 | 0;
  16406.     HEAP[$this_addr_i_i50] = HEAP[$obj_addr_i53];
  16407.     var $this1_i_i54 = HEAP[$this_addr_i_i50];
  16408.     HEAP[$ref_tmp_i_i51] = $this1_i_i54;
  16409.     HEAP[$base_addr_i_i_i48] = $ref_tmp_i_i51;
  16410.     HEAP[$offset_addr_i_i_i49] = $this1_i_i54 + 2 | 0;
  16411.     var $18 = HEAP[HEAP[$base_addr_i_i_i48]];
  16412.     HEAP[$this_addr_i_i_i_i45] = HEAP[$offset_addr_i_i_i49];
  16413.     HEAP[$base_addr_i_i_i_i46] = $18;
  16414.     HEAP[$this_addr_i_i_i_i_i43] = HEAP[$this_addr_i_i_i_i45];
  16415.     HEAP[$this_addr_i_i_i_i_i_i42] = HEAP[$this_addr_i_i_i_i_i43] | 0;
  16416.     var $this1_i_i_i_i_i_i59 = HEAP[$this_addr_i_i_i_i_i_i42];
  16417.     HEAP[$offset_i_i_i_i47] = ((HEAP[$this1_i_i_i_i_i_i59 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i59 + 1 | 0] & 255) & 65535;
  16418.     if ((HEAP[$offset_i_i_i_i47] | 0) != 0) {
  16419.       var $36 = HEAP[$offset_i_i_i_i47];
  16420.       HEAP[$P_addr_i_i_i_i_i40] = HEAP[$base_addr_i_i_i_i46];
  16421.       HEAP[$offset_addr_i_i_i_i_i41] = $36;
  16422.       HEAP[$retval_i_i_i_i44] = HEAP[$P_addr_i_i_i_i_i40] + HEAP[$offset_addr_i_i_i_i_i41] | 0;
  16423.     } else {
  16424.       HEAP[$X_addr_i_i_i_i_i_i39] = 111704;
  16425.       HEAP[$retval_i_i_i_i44] = HEAP[$X_addr_i_i_i_i_i_i39];
  16426.     }
  16427.     HEAP[$v_addr_i38] = HEAP[$retval_i_i_i_i44];
  16428.     $retval = HEAP[$v_addr_i38];
  16429.     var $169 = $retval;
  16430.     STACKTOP = __stackBase__;
  16431.     return $169;
  16432.   } else if (($conv | 0) == 2) {
  16433.     HEAP[$this_addr_i16] = $c_addr;
  16434.     HEAP[$obj_addr_i17] = $this1 | 0;
  16435.     HEAP[$this_addr_i_i14] = HEAP[$obj_addr_i17];
  16436.     var $this1_i_i18 = HEAP[$this_addr_i_i14];
  16437.     HEAP[$ref_tmp_i_i15] = $this1_i_i18;
  16438.     HEAP[$base_addr_i_i_i12] = $ref_tmp_i_i15;
  16439.     HEAP[$offset_addr_i_i_i13] = $this1_i_i18 + 2 | 0;
  16440.     var $70 = HEAP[HEAP[$base_addr_i_i_i12]];
  16441.     HEAP[$this_addr_i_i_i_i9] = HEAP[$offset_addr_i_i_i13];
  16442.     HEAP[$base_addr_i_i_i_i10] = $70;
  16443.     HEAP[$this_addr_i_i_i_i_i7] = HEAP[$this_addr_i_i_i_i9];
  16444.     HEAP[$this_addr_i_i_i_i_i_i6] = HEAP[$this_addr_i_i_i_i_i7] | 0;
  16445.     var $this1_i_i_i_i_i_i23 = HEAP[$this_addr_i_i_i_i_i_i6];
  16446.     HEAP[$offset_i_i_i_i11] = ((HEAP[$this1_i_i_i_i_i_i23 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i23 + 1 | 0] & 255) & 65535;
  16447.     if ((HEAP[$offset_i_i_i_i11] | 0) != 0) {
  16448.       var $88 = HEAP[$offset_i_i_i_i11];
  16449.       HEAP[$P_addr_i_i_i_i_i4] = HEAP[$base_addr_i_i_i_i10];
  16450.       HEAP[$offset_addr_i_i_i_i_i5] = $88;
  16451.       HEAP[$retval_i_i_i_i8] = HEAP[$P_addr_i_i_i_i_i4] + HEAP[$offset_addr_i_i_i_i_i5] | 0;
  16452.     } else {
  16453.       HEAP[$X_addr_i_i_i_i_i_i3] = 111704;
  16454.       HEAP[$retval_i_i_i_i8] = HEAP[$X_addr_i_i_i_i_i_i3];
  16455.     }
  16456.     HEAP[$v_addr_i2] = HEAP[$retval_i_i_i_i8];
  16457.     $retval = HEAP[$v_addr_i2];
  16458.     var $169 = $retval;
  16459.     STACKTOP = __stackBase__;
  16460.     return $169;
  16461.   } else {
  16462.     HEAP[$X_addr_i_i_i] = 111704;
  16463.     HEAP[$v_addr_i] = HEAP[$X_addr_i_i_i];
  16464.     $retval = HEAP[$v_addr_i];
  16465.     var $169 = $retval;
  16466.     STACKTOP = __stackBase__;
  16467.     return $169;
  16468.   }
  16469. }
  16470. function __ZNK2OT12ChainContext8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_($this, $c) {
  16471.   var __stackBase__ = STACKTOP;
  16472.   STACKTOP = STACKTOP + 260 | 0;
  16473.   var $this_addr_i_i74 = __stackBase__;
  16474.   var $this_addr_i75 = __stackBase__ + 4;
  16475.   var $X_addr_i_i_i_i_i_i39 = __stackBase__ + 8;
  16476.   var $P_addr_i_i_i_i_i40 = __stackBase__ + 12;
  16477.   var $offset_addr_i_i_i_i_i41 = __stackBase__ + 16;
  16478.   var $this_addr_i_i_i_i_i_i42 = __stackBase__ + 20;
  16479.   var $this_addr_i_i_i_i_i43 = __stackBase__ + 24;
  16480.   var $retval_i_i_i_i44 = __stackBase__ + 28;
  16481.   var $this_addr_i_i_i_i45 = __stackBase__ + 32;
  16482.   var $base_addr_i_i_i_i46 = __stackBase__ + 36;
  16483.   var $offset_i_i_i_i47 = __stackBase__ + 40;
  16484.   var $base_addr_i_i_i48 = __stackBase__ + 44;
  16485.   var $offset_addr_i_i_i49 = __stackBase__ + 48;
  16486.   var $this_addr_i_i50 = __stackBase__ + 52;
  16487.   var $ref_tmp_i_i51 = __stackBase__ + 56;
  16488.   var $obj_addr_i53 = __stackBase__ + 64;
  16489.   var $v_addr_i38 = __stackBase__ + 68;
  16490.   var $X_addr_i_i_i_i_i_i4 = __stackBase__ + 72;
  16491.   var $P_addr_i_i_i_i_i5 = __stackBase__ + 76;
  16492.   var $offset_addr_i_i_i_i_i6 = __stackBase__ + 80;
  16493.   var $this_addr_i_i_i_i_i_i7 = __stackBase__ + 84;
  16494.   var $this_addr_i_i_i_i_i8 = __stackBase__ + 88;
  16495.   var $retval_i_i_i_i9 = __stackBase__ + 92;
  16496.   var $this_addr_i_i_i_i10 = __stackBase__ + 96;
  16497.   var $base_addr_i_i_i_i11 = __stackBase__ + 100;
  16498.   var $offset_i_i_i_i12 = __stackBase__ + 104;
  16499.   var $base_addr_i_i_i13 = __stackBase__ + 108;
  16500.   var $offset_addr_i_i_i14 = __stackBase__ + 112;
  16501.   var $this_addr_i_i15 = __stackBase__ + 116;
  16502.   var $ref_tmp_i_i16 = __stackBase__ + 120;
  16503.   var $this_addr_i17 = __stackBase__ + 124;
  16504.   var $obj_addr_i18 = __stackBase__ + 128;
  16505.   var $v_addr_i3 = __stackBase__ + 132;
  16506.   var $X_addr_i_i_i_i_i = __stackBase__ + 136;
  16507.   var $this_addr_i_i_i18_i_i = __stackBase__ + 140;
  16508.   var $this_addr_i_i19_i_i = __stackBase__ + 144;
  16509.   var $retval_i_i_i = __stackBase__ + 148;
  16510.   var $this_addr_i_i_i = __stackBase__ + 152;
  16511.   var $i_addr_i_i_i = __stackBase__ + 156;
  16512.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 160;
  16513.   var $P_addr_i_i_i_i_i = __stackBase__ + 164;
  16514.   var $offset_addr_i_i_i_i_i = __stackBase__ + 168;
  16515.   var $this_addr_i_i_i_i1_i_i = __stackBase__ + 172;
  16516.   var $this_addr_i_i_i2_i_i = __stackBase__ + 176;
  16517.   var $retval_i_i_i_i = __stackBase__ + 180;
  16518.   var $this_addr_i_i3_i_i = __stackBase__ + 184;
  16519.   var $base_addr_i_i_i_i = __stackBase__ + 188;
  16520.   var $offset_i_i_i_i = __stackBase__ + 192;
  16521.   var $base_addr_i_i_i = __stackBase__ + 196;
  16522.   var $offset_addr_i_i_i = __stackBase__ + 200;
  16523.   var $P_addr_i_i_i_i = __stackBase__ + 204;
  16524.   var $offset_addr_i_i_i_i = __stackBase__ + 208;
  16525.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 212;
  16526.   var $this_addr_i_i_i_i_i = __stackBase__ + 216;
  16527.   var $this_addr_i_i_i_i = __stackBase__ + 220;
  16528.   var $X_addr_i_i_i2 = __stackBase__ + 224;
  16529.   var $this_addr_i_i = __stackBase__ + 228;
  16530.   var $input_i_i = __stackBase__ + 232;
  16531.   var $ref_tmp_i_i = __stackBase__ + 236;
  16532.   var $this_addr_i = __stackBase__ + 240;
  16533.   var $obj_addr_i = __stackBase__ + 244;
  16534.   var $v_addr_i1 = __stackBase__ + 248;
  16535.   var $X_addr_i_i_i = __stackBase__ + 252;
  16536.   var $v_addr_i = __stackBase__ + 256;
  16537.   var $retval;
  16538.   var $c_addr;
  16539.   $c_addr = $c;
  16540.   var $this1 = $this;
  16541.   HEAP[$this_addr_i75] = $this1 | 0;
  16542.   HEAP[$this_addr_i_i74] = HEAP[$this_addr_i75] | 0;
  16543.   var $this1_i_i76 = HEAP[$this_addr_i_i74];
  16544.   var $conv = ((HEAP[$this1_i_i76 | 0] & 255) << 8) + (HEAP[$this1_i_i76 + 1 | 0] & 255) & 65535;
  16545.   if (($conv | 0) == 1) {
  16546.     HEAP[__stackBase__ + 60] = $c_addr;
  16547.     HEAP[$obj_addr_i53] = $this1 | 0;
  16548.     HEAP[$this_addr_i_i50] = HEAP[$obj_addr_i53];
  16549.     var $this1_i_i54 = HEAP[$this_addr_i_i50];
  16550.     HEAP[$ref_tmp_i_i51] = $this1_i_i54;
  16551.     HEAP[$base_addr_i_i_i48] = $ref_tmp_i_i51;
  16552.     HEAP[$offset_addr_i_i_i49] = $this1_i_i54 + 2 | 0;
  16553.     var $18 = HEAP[HEAP[$base_addr_i_i_i48]];
  16554.     HEAP[$this_addr_i_i_i_i45] = HEAP[$offset_addr_i_i_i49];
  16555.     HEAP[$base_addr_i_i_i_i46] = $18;
  16556.     HEAP[$this_addr_i_i_i_i_i43] = HEAP[$this_addr_i_i_i_i45];
  16557.     HEAP[$this_addr_i_i_i_i_i_i42] = HEAP[$this_addr_i_i_i_i_i43] | 0;
  16558.     var $this1_i_i_i_i_i_i59 = HEAP[$this_addr_i_i_i_i_i_i42];
  16559.     HEAP[$offset_i_i_i_i47] = ((HEAP[$this1_i_i_i_i_i_i59 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i59 + 1 | 0] & 255) & 65535;
  16560.     if ((HEAP[$offset_i_i_i_i47] | 0) != 0) {
  16561.       var $36 = HEAP[$offset_i_i_i_i47];
  16562.       HEAP[$P_addr_i_i_i_i_i40] = HEAP[$base_addr_i_i_i_i46];
  16563.       HEAP[$offset_addr_i_i_i_i_i41] = $36;
  16564.       HEAP[$retval_i_i_i_i44] = HEAP[$P_addr_i_i_i_i_i40] + HEAP[$offset_addr_i_i_i_i_i41] | 0;
  16565.     } else {
  16566.       HEAP[$X_addr_i_i_i_i_i_i39] = 111704;
  16567.       HEAP[$retval_i_i_i_i44] = HEAP[$X_addr_i_i_i_i_i_i39];
  16568.     }
  16569.     HEAP[$v_addr_i38] = HEAP[$retval_i_i_i_i44];
  16570.     $retval = HEAP[$v_addr_i38];
  16571.     var $212 = $retval;
  16572.     STACKTOP = __stackBase__;
  16573.     return $212;
  16574.   } else if (($conv | 0) == 2) {
  16575.     HEAP[$this_addr_i17] = $c_addr;
  16576.     HEAP[$obj_addr_i18] = $this1 | 0;
  16577.     HEAP[$this_addr_i_i15] = HEAP[$obj_addr_i18];
  16578.     var $this1_i_i19 = HEAP[$this_addr_i_i15];
  16579.     HEAP[$ref_tmp_i_i16] = $this1_i_i19;
  16580.     HEAP[$base_addr_i_i_i13] = $ref_tmp_i_i16;
  16581.     HEAP[$offset_addr_i_i_i14] = $this1_i_i19 + 2 | 0;
  16582.     var $70 = HEAP[HEAP[$base_addr_i_i_i13]];
  16583.     HEAP[$this_addr_i_i_i_i10] = HEAP[$offset_addr_i_i_i14];
  16584.     HEAP[$base_addr_i_i_i_i11] = $70;
  16585.     HEAP[$this_addr_i_i_i_i_i8] = HEAP[$this_addr_i_i_i_i10];
  16586.     HEAP[$this_addr_i_i_i_i_i_i7] = HEAP[$this_addr_i_i_i_i_i8] | 0;
  16587.     var $this1_i_i_i_i_i_i23 = HEAP[$this_addr_i_i_i_i_i_i7];
  16588.     HEAP[$offset_i_i_i_i12] = ((HEAP[$this1_i_i_i_i_i_i23 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i23 + 1 | 0] & 255) & 65535;
  16589.     if ((HEAP[$offset_i_i_i_i12] | 0) != 0) {
  16590.       var $88 = HEAP[$offset_i_i_i_i12];
  16591.       HEAP[$P_addr_i_i_i_i_i5] = HEAP[$base_addr_i_i_i_i11];
  16592.       HEAP[$offset_addr_i_i_i_i_i6] = $88;
  16593.       HEAP[$retval_i_i_i_i9] = HEAP[$P_addr_i_i_i_i_i5] + HEAP[$offset_addr_i_i_i_i_i6] | 0;
  16594.     } else {
  16595.       HEAP[$X_addr_i_i_i_i_i_i4] = 111704;
  16596.       HEAP[$retval_i_i_i_i9] = HEAP[$X_addr_i_i_i_i_i_i4];
  16597.     }
  16598.     HEAP[$v_addr_i3] = HEAP[$retval_i_i_i_i9];
  16599.     $retval = HEAP[$v_addr_i3];
  16600.     var $212 = $retval;
  16601.     STACKTOP = __stackBase__;
  16602.     return $212;
  16603.   } else if (($conv | 0) == 3) {
  16604.     HEAP[$this_addr_i] = $c_addr;
  16605.     HEAP[$obj_addr_i] = $this1 | 0;
  16606.     HEAP[$this_addr_i_i] = HEAP[$obj_addr_i];
  16607.     var $this1_i_i = HEAP[$this_addr_i_i];
  16608.     HEAP[$X_addr_i_i_i2] = $this1_i_i + 2 | 0;
  16609.     var $119 = HEAP[$X_addr_i_i_i2];
  16610.     HEAP[$this_addr_i_i_i_i] = HEAP[$X_addr_i_i_i2];
  16611.     HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  16612.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  16613.     var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  16614.     var $add_i_i_i_i = ((((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  16615.     HEAP[$P_addr_i_i_i_i] = $119;
  16616.     HEAP[$offset_addr_i_i_i_i] = $add_i_i_i_i;
  16617.     HEAP[$input_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  16618.     HEAP[$ref_tmp_i_i] = $this1_i_i;
  16619.     HEAP[$this_addr_i_i_i] = HEAP[$input_i_i];
  16620.     HEAP[$i_addr_i_i_i] = 0;
  16621.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  16622.     var $143 = HEAP[$i_addr_i_i_i];
  16623.     HEAP[$this_addr_i_i19_i_i] = $this1_i_i_i | 0;
  16624.     HEAP[$this_addr_i_i_i18_i_i] = HEAP[$this_addr_i_i19_i_i] | 0;
  16625.     var $this1_i_i_i21_i_i = HEAP[$this_addr_i_i_i18_i_i];
  16626.     if ($143 >>> 0 >= (((HEAP[$this1_i_i_i21_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i21_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  16627.       HEAP[$X_addr_i_i_i_i_i] = 111704;
  16628.       HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  16629.     } else {
  16630.       HEAP[$retval_i_i_i] = (HEAP[$i_addr_i_i_i] << 1) + $this1_i_i_i + 2 | 0;
  16631.     }
  16632.     var $159 = HEAP[$retval_i_i_i];
  16633.     HEAP[$base_addr_i_i_i] = $ref_tmp_i_i;
  16634.     HEAP[$offset_addr_i_i_i] = $159;
  16635.     var $165 = HEAP[HEAP[$base_addr_i_i_i]];
  16636.     HEAP[$this_addr_i_i3_i_i] = HEAP[$offset_addr_i_i_i];
  16637.     HEAP[$base_addr_i_i_i_i] = $165;
  16638.     HEAP[$this_addr_i_i_i2_i_i] = HEAP[$this_addr_i_i3_i_i];
  16639.     HEAP[$this_addr_i_i_i_i1_i_i] = HEAP[$this_addr_i_i_i2_i_i] | 0;
  16640.     var $this1_i_i_i_i7_i_i = HEAP[$this_addr_i_i_i_i1_i_i];
  16641.     var $conv_i_i17_i_i = ((HEAP[$this1_i_i_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i7_i_i + 1 | 0] & 255) & 65535;
  16642.     HEAP[$offset_i_i_i_i] = $conv_i_i17_i_i;
  16643.     if (($conv_i_i17_i_i | 0) != 0) {
  16644.       var $182 = HEAP[$offset_i_i_i_i];
  16645.       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  16646.       HEAP[$offset_addr_i_i_i_i_i] = $182;
  16647.       HEAP[$retval_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  16648.     } else {
  16649.       HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  16650.       HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  16651.     }
  16652.     HEAP[$v_addr_i1] = HEAP[$retval_i_i_i_i];
  16653.     $retval = HEAP[$v_addr_i1];
  16654.     var $212 = $retval;
  16655.     STACKTOP = __stackBase__;
  16656.     return $212;
  16657.   } else {
  16658.     HEAP[$X_addr_i_i_i] = 111704;
  16659.     HEAP[$v_addr_i] = HEAP[$X_addr_i_i_i];
  16660.     $retval = HEAP[$v_addr_i];
  16661.     var $212 = $retval;
  16662.     STACKTOP = __stackBase__;
  16663.     return $212;
  16664.   }
  16665. }
  16666. function __ZNK2OT9ExtensionINS_12ExtensionPosEE12get_subtableINS_17PosLookupSubTableEEERKT_v($this) {
  16667.   var __stackBase__ = STACKTOP;
  16668.   STACKTOP = STACKTOP + 40 | 0;
  16669.   var $X_addr_i_i = __stackBase__;
  16670.   var $P_addr_i = __stackBase__ + 4;
  16671.   var $offset_addr_i = __stackBase__ + 8;
  16672.   var $this_addr_i_i_i_i = __stackBase__ + 12;
  16673.   var $this_addr_i_i1_i = __stackBase__ + 16;
  16674.   var $this_addr_i2_i = __stackBase__ + 20;
  16675.   var $this_addr_i_i_i = __stackBase__ + 24;
  16676.   var $this_addr_i_i = __stackBase__ + 28;
  16677.   var $retval_i = __stackBase__ + 32;
  16678.   var $this_addr_i = __stackBase__ + 36;
  16679.   var $retval;
  16680.   var $offset;
  16681.   var $this1 = $this;
  16682.   HEAP[$this_addr_i] = $this1;
  16683.   var $this1_i = HEAP[$this_addr_i];
  16684.   HEAP[$this_addr_i_i] = $this1_i | 0;
  16685.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  16686.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  16687.   do {
  16688.     if ((((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  16689.       HEAP[$this_addr_i2_i] = $this1_i | 0;
  16690.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] + 4 | 0;
  16691.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  16692.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  16693.       var $add14_i_i_i_i = ((HEAP[$this1_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 3 | 0] & 255) | 0;
  16694.       HEAP[$retval_i] = $add14_i_i_i_i;
  16695.       $offset = $add14_i_i_i_i;
  16696.       if (($add14_i_i_i_i | 0) == 0) {
  16697.         break;
  16698.       }
  16699.       HEAP[$P_addr_i] = $this1;
  16700.       HEAP[$offset_addr_i] = $offset;
  16701.       $retval = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  16702.       var $35 = $retval;
  16703.       STACKTOP = __stackBase__;
  16704.       return $35;
  16705.     } else {
  16706.       HEAP[$retval_i] = 0;
  16707.       $offset = 0;
  16708.     }
  16709.   } while (0);
  16710.   HEAP[$X_addr_i_i] = 111704;
  16711.   $retval = HEAP[$X_addr_i_i];
  16712.   var $35 = $retval;
  16713.   STACKTOP = __stackBase__;
  16714.   return $35;
  16715. }
  16716. function __ZNK2OT11SubstLookup12get_subtableEj($this, $i) {
  16717.   var __stackBase__ = STACKTOP;
  16718.   STACKTOP = STACKTOP + 76 | 0;
  16719.   var $X_addr_i_i_i = __stackBase__;
  16720.   var $this_addr_i_i_i1 = __stackBase__ + 4;
  16721.   var $this_addr_i_i2 = __stackBase__ + 8;
  16722.   var $retval_i = __stackBase__ + 12;
  16723.   var $this_addr_i = __stackBase__ + 16;
  16724.   var $i_addr_i = __stackBase__ + 20;
  16725.   var $X_addr_i_i_i_i = __stackBase__ + 24;
  16726.   var $P_addr_i_i_i = __stackBase__ + 28;
  16727.   var $offset_addr_i_i_i = __stackBase__ + 32;
  16728.   var $this_addr_i_i_i_i = __stackBase__ + 36;
  16729.   var $this_addr_i_i_i = __stackBase__ + 40;
  16730.   var $retval_i_i = __stackBase__ + 44;
  16731.   var $this_addr_i_i = __stackBase__ + 48;
  16732.   var $base_addr_i_i = __stackBase__ + 52;
  16733.   var $offset_i_i = __stackBase__ + 56;
  16734.   var $base_addr_i = __stackBase__ + 60;
  16735.   var $offset_addr_i = __stackBase__ + 64;
  16736.   var $X_addr_i = __stackBase__ + 68;
  16737.   var $ref_tmp = __stackBase__ + 72;
  16738.   var $this1 = $this;
  16739.   HEAP[$ref_tmp] = $this1;
  16740.   HEAP[$X_addr_i] = $this1 + 4 | 0;
  16741.   HEAP[$this_addr_i] = HEAP[$X_addr_i];
  16742.   HEAP[$i_addr_i] = $i;
  16743.   var $this1_i = HEAP[$this_addr_i];
  16744.   var $10 = HEAP[$i_addr_i];
  16745.   HEAP[$this_addr_i_i2] = $this1_i | 0;
  16746.   HEAP[$this_addr_i_i_i1] = HEAP[$this_addr_i_i2] | 0;
  16747.   var $this1_i_i_i4 = HEAP[$this_addr_i_i_i1];
  16748.   if ($10 >>> 0 >= (((HEAP[$this1_i_i_i4 | 0] & 255) << 8) + (HEAP[$this1_i_i_i4 + 1 | 0] & 255) & 65535) >>> 0) {
  16749.     HEAP[$X_addr_i_i_i] = 111704;
  16750.     HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  16751.   } else {
  16752.     HEAP[$retval_i] = (HEAP[$i_addr_i] << 1) + $this1_i + 2 | 0;
  16753.   }
  16754.   var $26 = HEAP[$retval_i];
  16755.   HEAP[$base_addr_i] = $ref_tmp;
  16756.   HEAP[$offset_addr_i] = $26;
  16757.   var $32 = HEAP[HEAP[$base_addr_i]];
  16758.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  16759.   HEAP[$base_addr_i_i] = $32;
  16760.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  16761.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  16762.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  16763.   var $conv_i_i = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  16764.   HEAP[$offset_i_i] = $conv_i_i;
  16765.   if (($conv_i_i | 0) != 0) {
  16766.     var $49 = HEAP[$offset_i_i];
  16767.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  16768.     HEAP[$offset_addr_i_i_i] = $49;
  16769.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  16770.     var $57 = HEAP[$retval_i_i];
  16771.     var $58 = $retval_i_i;
  16772.     var $59 = $this_addr_i_i;
  16773.     var $60 = $base_addr_i_i;
  16774.     var $61 = $offset_i_i;
  16775.     var $62 = $base_addr_i;
  16776.     var $63 = $offset_addr_i;
  16777.     STACKTOP = __stackBase__;
  16778.     return $57;
  16779.   } else {
  16780.     HEAP[$X_addr_i_i_i_i] = 111704;
  16781.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  16782.     var $57 = HEAP[$retval_i_i];
  16783.     var $58 = $retval_i_i;
  16784.     var $59 = $this_addr_i_i;
  16785.     var $60 = $base_addr_i_i;
  16786.     var $61 = $offset_i_i;
  16787.     var $62 = $base_addr_i;
  16788.     var $63 = $offset_addr_i;
  16789.     STACKTOP = __stackBase__;
  16790.     return $57;
  16791.   }
  16792. }
  16793. function __ZNK2OT19SubstLookupSubTable8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_j($this, $c, $lookup_type) {
  16794.   var __stackBase__ = STACKTOP;
  16795.   STACKTOP = STACKTOP + 600 | 0;
  16796.   var $this_addr_i_i_i_i_i261 = __stackBase__;
  16797.   var $this_addr_i_i1_i_i = __stackBase__ + 4;
  16798.   var $this_addr_i2_i_i = __stackBase__ + 8;
  16799.   var $this_addr_i_i_i_i = __stackBase__ + 12;
  16800.   var $this_addr_i_i_i262 = __stackBase__ + 16;
  16801.   var $retval_i_i = __stackBase__ + 20;
  16802.   var $this_addr_i_i263 = __stackBase__ + 24;
  16803.   var $this_addr_i264 = __stackBase__ + 28;
  16804.   var $c_addr_i265 = __stackBase__ + 32;
  16805.   var $v_addr_i260 = __stackBase__ + 36;
  16806.   var $this_addr_i_i2_i196 = __stackBase__ + 40;
  16807.   var $this_addr_i3_i197 = __stackBase__ + 44;
  16808.   var $X_addr_i_i_i_i_i_i_i198 = __stackBase__ + 48;
  16809.   var $P_addr_i_i_i_i_i_i199 = __stackBase__ + 52;
  16810.   var $offset_addr_i_i_i_i_i_i200 = __stackBase__ + 56;
  16811.   var $this_addr_i_i_i_i_i_i_i201 = __stackBase__ + 60;
  16812.   var $this_addr_i_i_i_i_i_i202 = __stackBase__ + 64;
  16813.   var $retval_i_i_i_i_i203 = __stackBase__ + 68;
  16814.   var $this_addr_i_i_i_i_i204 = __stackBase__ + 72;
  16815.   var $base_addr_i_i_i_i_i205 = __stackBase__ + 76;
  16816.   var $offset_i_i_i_i_i206 = __stackBase__ + 80;
  16817.   var $base_addr_i_i_i_i207 = __stackBase__ + 84;
  16818.   var $offset_addr_i_i_i_i208 = __stackBase__ + 88;
  16819.   var $this_addr_i_i_i209 = __stackBase__ + 92;
  16820.   var $ref_tmp_i_i_i210 = __stackBase__ + 96;
  16821.   var $this_addr_i_i211 = __stackBase__ + 100;
  16822.   var $obj_addr_i_i212 = __stackBase__ + 104;
  16823.   var $v_addr_i1_i213 = __stackBase__ + 108;
  16824.   var $X_addr_i_i_i_i214 = __stackBase__ + 112;
  16825.   var $v_addr_i_i215 = __stackBase__ + 116;
  16826.   var $retval_i216 = __stackBase__ + 120;
  16827.   var $this_addr_i217 = __stackBase__ + 124;
  16828.   var $c_addr_i218 = __stackBase__ + 128;
  16829.   var $v_addr_i195 = __stackBase__ + 132;
  16830.   var $X_addr_i_i_i = __stackBase__ + 136;
  16831.   var $v_addr_i194 = __stackBase__ + 140;
  16832.   var $v_addr_i193 = __stackBase__ + 144;
  16833.   var $v_addr_i192 = __stackBase__ + 148;
  16834.   var $this_addr_i_i2_i128 = __stackBase__ + 152;
  16835.   var $this_addr_i3_i129 = __stackBase__ + 156;
  16836.   var $X_addr_i_i_i_i_i_i_i130 = __stackBase__ + 160;
  16837.   var $P_addr_i_i_i_i_i_i131 = __stackBase__ + 164;
  16838.   var $offset_addr_i_i_i_i_i_i132 = __stackBase__ + 168;
  16839.   var $this_addr_i_i_i_i_i_i_i133 = __stackBase__ + 172;
  16840.   var $this_addr_i_i_i_i_i_i134 = __stackBase__ + 176;
  16841.   var $retval_i_i_i_i_i135 = __stackBase__ + 180;
  16842.   var $this_addr_i_i_i_i_i136 = __stackBase__ + 184;
  16843.   var $base_addr_i_i_i_i_i137 = __stackBase__ + 188;
  16844.   var $offset_i_i_i_i_i138 = __stackBase__ + 192;
  16845.   var $base_addr_i_i_i_i139 = __stackBase__ + 196;
  16846.   var $offset_addr_i_i_i_i140 = __stackBase__ + 200;
  16847.   var $this_addr_i_i_i141 = __stackBase__ + 204;
  16848.   var $ref_tmp_i_i_i142 = __stackBase__ + 208;
  16849.   var $this_addr_i_i143 = __stackBase__ + 212;
  16850.   var $obj_addr_i_i144 = __stackBase__ + 216;
  16851.   var $v_addr_i1_i145 = __stackBase__ + 220;
  16852.   var $X_addr_i_i_i_i146 = __stackBase__ + 224;
  16853.   var $v_addr_i_i147 = __stackBase__ + 228;
  16854.   var $retval_i148 = __stackBase__ + 232;
  16855.   var $this_addr_i149 = __stackBase__ + 236;
  16856.   var $c_addr_i150 = __stackBase__ + 240;
  16857.   var $v_addr_i127 = __stackBase__ + 244;
  16858.   var $this_addr_i_i2_i63 = __stackBase__ + 248;
  16859.   var $this_addr_i3_i64 = __stackBase__ + 252;
  16860.   var $X_addr_i_i_i_i_i_i_i65 = __stackBase__ + 256;
  16861.   var $P_addr_i_i_i_i_i_i66 = __stackBase__ + 260;
  16862.   var $offset_addr_i_i_i_i_i_i67 = __stackBase__ + 264;
  16863.   var $this_addr_i_i_i_i_i_i_i68 = __stackBase__ + 268;
  16864.   var $this_addr_i_i_i_i_i_i69 = __stackBase__ + 272;
  16865.   var $retval_i_i_i_i_i70 = __stackBase__ + 276;
  16866.   var $this_addr_i_i_i_i_i71 = __stackBase__ + 280;
  16867.   var $base_addr_i_i_i_i_i72 = __stackBase__ + 284;
  16868.   var $offset_i_i_i_i_i73 = __stackBase__ + 288;
  16869.   var $base_addr_i_i_i_i74 = __stackBase__ + 292;
  16870.   var $offset_addr_i_i_i_i75 = __stackBase__ + 296;
  16871.   var $this_addr_i_i_i76 = __stackBase__ + 300;
  16872.   var $ref_tmp_i_i_i77 = __stackBase__ + 304;
  16873.   var $this_addr_i_i78 = __stackBase__ + 308;
  16874.   var $obj_addr_i_i79 = __stackBase__ + 312;
  16875.   var $v_addr_i1_i80 = __stackBase__ + 316;
  16876.   var $X_addr_i_i_i_i81 = __stackBase__ + 320;
  16877.   var $v_addr_i_i82 = __stackBase__ + 324;
  16878.   var $retval_i83 = __stackBase__ + 328;
  16879.   var $this_addr_i84 = __stackBase__ + 332;
  16880.   var $c_addr_i85 = __stackBase__ + 336;
  16881.   var $v_addr_i62 = __stackBase__ + 340;
  16882.   var $this_addr_i_i2_i = __stackBase__ + 344;
  16883.   var $this_addr_i3_i = __stackBase__ + 348;
  16884.   var $X_addr_i_i_i_i_i_i_i2 = __stackBase__ + 352;
  16885.   var $P_addr_i_i_i_i_i_i3 = __stackBase__ + 356;
  16886.   var $offset_addr_i_i_i_i_i_i4 = __stackBase__ + 360;
  16887.   var $this_addr_i_i_i_i_i_i_i5 = __stackBase__ + 364;
  16888.   var $this_addr_i_i_i_i_i_i6 = __stackBase__ + 368;
  16889.   var $retval_i_i_i_i_i7 = __stackBase__ + 372;
  16890.   var $this_addr_i_i_i_i_i8 = __stackBase__ + 376;
  16891.   var $base_addr_i_i_i_i_i9 = __stackBase__ + 380;
  16892.   var $offset_i_i_i_i_i10 = __stackBase__ + 384;
  16893.   var $base_addr_i_i_i_i11 = __stackBase__ + 388;
  16894.   var $offset_addr_i_i_i_i12 = __stackBase__ + 392;
  16895.   var $this_addr_i_i_i13 = __stackBase__ + 396;
  16896.   var $ref_tmp_i_i_i14 = __stackBase__ + 400;
  16897.   var $this_addr_i_i15 = __stackBase__ + 404;
  16898.   var $obj_addr_i_i16 = __stackBase__ + 408;
  16899.   var $v_addr_i1_i17 = __stackBase__ + 412;
  16900.   var $X_addr_i_i_i_i18 = __stackBase__ + 416;
  16901.   var $v_addr_i_i19 = __stackBase__ + 420;
  16902.   var $retval_i20 = __stackBase__ + 424;
  16903.   var $this_addr_i21 = __stackBase__ + 428;
  16904.   var $c_addr_i22 = __stackBase__ + 432;
  16905.   var $v_addr_i1 = __stackBase__ + 436;
  16906.   var $this_addr_i_i38_i = __stackBase__ + 440;
  16907.   var $this_addr_i39_i = __stackBase__ + 444;
  16908.   var $X_addr_i_i_i_i_i_i3_i = __stackBase__ + 448;
  16909.   var $P_addr_i_i_i_i_i4_i = __stackBase__ + 452;
  16910.   var $offset_addr_i_i_i_i_i5_i = __stackBase__ + 456;
  16911.   var $this_addr_i_i_i_i_i_i6_i = __stackBase__ + 460;
  16912.   var $this_addr_i_i_i_i_i7_i = __stackBase__ + 464;
  16913.   var $retval_i_i_i_i8_i = __stackBase__ + 468;
  16914.   var $this_addr_i_i_i_i9_i = __stackBase__ + 472;
  16915.   var $base_addr_i_i_i_i10_i = __stackBase__ + 476;
  16916.   var $offset_i_i_i_i11_i = __stackBase__ + 480;
  16917.   var $base_addr_i_i_i12_i = __stackBase__ + 484;
  16918.   var $offset_addr_i_i_i13_i = __stackBase__ + 488;
  16919.   var $this_addr_i_i14_i = __stackBase__ + 492;
  16920.   var $ref_tmp_i_i15_i = __stackBase__ + 496;
  16921.   var $this_addr_i16_i = __stackBase__ + 500;
  16922.   var $obj_addr_i17_i = __stackBase__ + 504;
  16923.   var $v_addr_i2_i = __stackBase__ + 508;
  16924.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 512;
  16925.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 516;
  16926.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 520;
  16927.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 524;
  16928.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 528;
  16929.   var $retval_i_i_i_i_i = __stackBase__ + 532;
  16930.   var $this_addr_i_i_i_i_i = __stackBase__ + 536;
  16931.   var $base_addr_i_i_i_i_i = __stackBase__ + 540;
  16932.   var $offset_i_i_i_i_i = __stackBase__ + 544;
  16933.   var $base_addr_i_i_i_i = __stackBase__ + 548;
  16934.   var $offset_addr_i_i_i_i = __stackBase__ + 552;
  16935.   var $this_addr_i_i_i = __stackBase__ + 556;
  16936.   var $ref_tmp_i_i_i = __stackBase__ + 560;
  16937.   var $this_addr_i_i = __stackBase__ + 564;
  16938.   var $obj_addr_i_i = __stackBase__ + 568;
  16939.   var $v_addr_i1_i = __stackBase__ + 572;
  16940.   var $X_addr_i_i_i_i = __stackBase__ + 576;
  16941.   var $v_addr_i_i = __stackBase__ + 580;
  16942.   var $retval_i = __stackBase__ + 584;
  16943.   var $this_addr_i = __stackBase__ + 588;
  16944.   var $c_addr_i = __stackBase__ + 592;
  16945.   var $v_addr_i = __stackBase__ + 596;
  16946.   var $retval;
  16947.   var $c_addr;
  16948.   $c_addr = $c;
  16949.   var $this1 = $this;
  16950.   var $0 = $lookup_type;
  16951.   if (($0 | 0) == 1) {
  16952.     HEAP[$this_addr_i] = $this1 | 0;
  16953.     HEAP[$c_addr_i] = $c_addr;
  16954.     var $this1_i = HEAP[$this_addr_i];
  16955.     HEAP[$this_addr_i39_i] = $this1_i | 0;
  16956.     HEAP[$this_addr_i_i38_i] = HEAP[$this_addr_i39_i] | 0;
  16957.     var $this1_i_i40_i = HEAP[$this_addr_i_i38_i];
  16958.     var $conv_i = ((HEAP[$this1_i_i40_i | 0] & 255) << 8) + (HEAP[$this1_i_i40_i + 1 | 0] & 255) & 65535;
  16959.     if (($conv_i | 0) == 1) {
  16960.       HEAP[$this_addr_i16_i] = HEAP[$c_addr_i];
  16961.       HEAP[$obj_addr_i17_i] = $this1_i | 0;
  16962.       HEAP[$this_addr_i_i14_i] = HEAP[$obj_addr_i17_i];
  16963.       var $this1_i_i18_i = HEAP[$this_addr_i_i14_i];
  16964.       HEAP[$ref_tmp_i_i15_i] = $this1_i_i18_i;
  16965.       HEAP[$base_addr_i_i_i12_i] = $ref_tmp_i_i15_i;
  16966.       HEAP[$offset_addr_i_i_i13_i] = $this1_i_i18_i + 2 | 0;
  16967.       var $23 = HEAP[HEAP[$base_addr_i_i_i12_i]];
  16968.       HEAP[$this_addr_i_i_i_i9_i] = HEAP[$offset_addr_i_i_i13_i];
  16969.       HEAP[$base_addr_i_i_i_i10_i] = $23;
  16970.       HEAP[$this_addr_i_i_i_i_i7_i] = HEAP[$this_addr_i_i_i_i9_i];
  16971.       HEAP[$this_addr_i_i_i_i_i_i6_i] = HEAP[$this_addr_i_i_i_i_i7_i] | 0;
  16972.       var $this1_i_i_i_i_i_i23_i = HEAP[$this_addr_i_i_i_i_i_i6_i];
  16973.       HEAP[$offset_i_i_i_i11_i] = ((HEAP[$this1_i_i_i_i_i_i23_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i23_i + 1 | 0] & 255) & 65535;
  16974.       if ((HEAP[$offset_i_i_i_i11_i] | 0) != 0) {
  16975.         var $41 = HEAP[$offset_i_i_i_i11_i];
  16976.         HEAP[$P_addr_i_i_i_i_i4_i] = HEAP[$base_addr_i_i_i_i10_i];
  16977.         HEAP[$offset_addr_i_i_i_i_i5_i] = $41;
  16978.         HEAP[$retval_i_i_i_i8_i] = HEAP[$P_addr_i_i_i_i_i4_i] + HEAP[$offset_addr_i_i_i_i_i5_i] | 0;
  16979.       } else {
  16980.         HEAP[$X_addr_i_i_i_i_i_i3_i] = 111704;
  16981.         HEAP[$retval_i_i_i_i8_i] = HEAP[$X_addr_i_i_i_i_i_i3_i];
  16982.       }
  16983.       HEAP[$v_addr_i2_i] = HEAP[$retval_i_i_i_i8_i];
  16984.       HEAP[$retval_i] = HEAP[$v_addr_i2_i];
  16985.     } else if (($conv_i | 0) == 2) {
  16986.       HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  16987.       HEAP[$obj_addr_i_i] = $this1_i | 0;
  16988.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i];
  16989.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  16990.       HEAP[$ref_tmp_i_i_i] = $this1_i_i_i;
  16991.       HEAP[$base_addr_i_i_i_i] = $ref_tmp_i_i_i;
  16992.       HEAP[$offset_addr_i_i_i_i] = $this1_i_i_i + 2 | 0;
  16993.       var $75 = HEAP[HEAP[$base_addr_i_i_i_i]];
  16994.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  16995.       HEAP[$base_addr_i_i_i_i_i] = $75;
  16996.       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i];
  16997.       HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i] | 0;
  16998.       var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  16999.       HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  17000.       if ((HEAP[$offset_i_i_i_i_i] | 0) != 0) {
  17001.         var $93 = HEAP[$offset_i_i_i_i_i];
  17002.         HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  17003.         HEAP[$offset_addr_i_i_i_i_i_i] = $93;
  17004.         HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  17005.       } else {
  17006.         HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  17007.         HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  17008.       }
  17009.       HEAP[$v_addr_i1_i] = HEAP[$retval_i_i_i_i_i];
  17010.       HEAP[$retval_i] = HEAP[$v_addr_i1_i];
  17011.     } else {
  17012.       HEAP[$X_addr_i_i_i_i] = 111704;
  17013.       HEAP[$v_addr_i_i] = HEAP[$X_addr_i_i_i_i];
  17014.       HEAP[$retval_i] = HEAP[$v_addr_i_i];
  17015.     }
  17016.     HEAP[$v_addr_i1] = HEAP[$retval_i];
  17017.     $retval = HEAP[$v_addr_i1];
  17018.     var $479 = $retval;
  17019.     STACKTOP = __stackBase__;
  17020.     return $479;
  17021.   } else if (($0 | 0) == 8) {
  17022.     HEAP[$this_addr_i217] = $this1 | 0;
  17023.     HEAP[$c_addr_i218] = $c_addr;
  17024.     var $this1_i219 = HEAP[$this_addr_i217];
  17025.     HEAP[$this_addr_i3_i197] = $this1_i219 | 0;
  17026.     HEAP[$this_addr_i_i2_i196] = HEAP[$this_addr_i3_i197] | 0;
  17027.     var $this1_i_i4_i224 = HEAP[$this_addr_i_i2_i196];
  17028.     if ((((HEAP[$this1_i_i4_i224 | 0] & 255) << 8) + (HEAP[$this1_i_i4_i224 + 1 | 0] & 255) & 65535 | 0) == 1) {
  17029.       HEAP[$this_addr_i_i211] = HEAP[$c_addr_i218];
  17030.       HEAP[$obj_addr_i_i212] = $this1_i219 | 0;
  17031.       HEAP[$this_addr_i_i_i209] = HEAP[$obj_addr_i_i212];
  17032.       var $this1_i_i_i238 = HEAP[$this_addr_i_i_i209];
  17033.       HEAP[$ref_tmp_i_i_i210] = $this1_i_i_i238;
  17034.       HEAP[$base_addr_i_i_i_i207] = $ref_tmp_i_i_i210;
  17035.       HEAP[$offset_addr_i_i_i_i208] = $this1_i_i_i238 + 2 | 0;
  17036.       var $418 = HEAP[HEAP[$base_addr_i_i_i_i207]];
  17037.       HEAP[$this_addr_i_i_i_i_i204] = HEAP[$offset_addr_i_i_i_i208];
  17038.       HEAP[$base_addr_i_i_i_i_i205] = $418;
  17039.       HEAP[$this_addr_i_i_i_i_i_i202] = HEAP[$this_addr_i_i_i_i_i204];
  17040.       HEAP[$this_addr_i_i_i_i_i_i_i201] = HEAP[$this_addr_i_i_i_i_i_i202] | 0;
  17041.       var $this1_i_i_i_i_i_i_i243 = HEAP[$this_addr_i_i_i_i_i_i_i201];
  17042.       HEAP[$offset_i_i_i_i_i206] = ((HEAP[$this1_i_i_i_i_i_i_i243 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i243 + 1 | 0] & 255) & 65535;
  17043.       if ((HEAP[$offset_i_i_i_i_i206] | 0) != 0) {
  17044.         var $436 = HEAP[$offset_i_i_i_i_i206];
  17045.         HEAP[$P_addr_i_i_i_i_i_i199] = HEAP[$base_addr_i_i_i_i_i205];
  17046.         HEAP[$offset_addr_i_i_i_i_i_i200] = $436;
  17047.         HEAP[$retval_i_i_i_i_i203] = HEAP[$P_addr_i_i_i_i_i_i199] + HEAP[$offset_addr_i_i_i_i_i_i200] | 0;
  17048.       } else {
  17049.         HEAP[$X_addr_i_i_i_i_i_i_i198] = 111704;
  17050.         HEAP[$retval_i_i_i_i_i203] = HEAP[$X_addr_i_i_i_i_i_i_i198];
  17051.       }
  17052.       HEAP[$v_addr_i1_i213] = HEAP[$retval_i_i_i_i_i203];
  17053.       HEAP[$retval_i216] = HEAP[$v_addr_i1_i213];
  17054.     } else {
  17055.       HEAP[$X_addr_i_i_i_i214] = 111704;
  17056.       HEAP[$v_addr_i_i215] = HEAP[$X_addr_i_i_i_i214];
  17057.       HEAP[$retval_i216] = HEAP[$v_addr_i_i215];
  17058.     }
  17059.     HEAP[$v_addr_i260] = HEAP[$retval_i216];
  17060.     $retval = HEAP[$v_addr_i260];
  17061.     var $479 = $retval;
  17062.     STACKTOP = __stackBase__;
  17063.     return $479;
  17064.   } else if (($0 | 0) == 2) {
  17065.     HEAP[$this_addr_i21] = $this1 | 0;
  17066.     HEAP[$c_addr_i22] = $c_addr;
  17067.     var $this1_i23 = HEAP[$this_addr_i21];
  17068.     HEAP[$this_addr_i3_i] = $this1_i23 | 0;
  17069.     HEAP[$this_addr_i_i2_i] = HEAP[$this_addr_i3_i] | 0;
  17070.     var $this1_i_i4_i = HEAP[$this_addr_i_i2_i];
  17071.     if ((((HEAP[$this1_i_i4_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  17072.       HEAP[$this_addr_i_i15] = HEAP[$c_addr_i22];
  17073.       HEAP[$obj_addr_i_i16] = $this1_i23 | 0;
  17074.       HEAP[$this_addr_i_i_i13] = HEAP[$obj_addr_i_i16];
  17075.       var $this1_i_i_i40 = HEAP[$this_addr_i_i_i13];
  17076.       HEAP[$ref_tmp_i_i_i14] = $this1_i_i_i40;
  17077.       HEAP[$base_addr_i_i_i_i11] = $ref_tmp_i_i_i14;
  17078.       HEAP[$offset_addr_i_i_i_i12] = $this1_i_i_i40 + 2 | 0;
  17079.       var $151 = HEAP[HEAP[$base_addr_i_i_i_i11]];
  17080.       HEAP[$this_addr_i_i_i_i_i8] = HEAP[$offset_addr_i_i_i_i12];
  17081.       HEAP[$base_addr_i_i_i_i_i9] = $151;
  17082.       HEAP[$this_addr_i_i_i_i_i_i6] = HEAP[$this_addr_i_i_i_i_i8];
  17083.       HEAP[$this_addr_i_i_i_i_i_i_i5] = HEAP[$this_addr_i_i_i_i_i_i6] | 0;
  17084.       var $this1_i_i_i_i_i_i_i45 = HEAP[$this_addr_i_i_i_i_i_i_i5];
  17085.       HEAP[$offset_i_i_i_i_i10] = ((HEAP[$this1_i_i_i_i_i_i_i45 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i45 + 1 | 0] & 255) & 65535;
  17086.       if ((HEAP[$offset_i_i_i_i_i10] | 0) != 0) {
  17087.         var $169 = HEAP[$offset_i_i_i_i_i10];
  17088.         HEAP[$P_addr_i_i_i_i_i_i3] = HEAP[$base_addr_i_i_i_i_i9];
  17089.         HEAP[$offset_addr_i_i_i_i_i_i4] = $169;
  17090.         HEAP[$retval_i_i_i_i_i7] = HEAP[$P_addr_i_i_i_i_i_i3] + HEAP[$offset_addr_i_i_i_i_i_i4] | 0;
  17091.       } else {
  17092.         HEAP[$X_addr_i_i_i_i_i_i_i2] = 111704;
  17093.         HEAP[$retval_i_i_i_i_i7] = HEAP[$X_addr_i_i_i_i_i_i_i2];
  17094.       }
  17095.       HEAP[$v_addr_i1_i17] = HEAP[$retval_i_i_i_i_i7];
  17096.       HEAP[$retval_i20] = HEAP[$v_addr_i1_i17];
  17097.     } else {
  17098.       HEAP[$X_addr_i_i_i_i18] = 111704;
  17099.       HEAP[$v_addr_i_i19] = HEAP[$X_addr_i_i_i_i18];
  17100.       HEAP[$retval_i20] = HEAP[$v_addr_i_i19];
  17101.     }
  17102.     HEAP[$v_addr_i62] = HEAP[$retval_i20];
  17103.     $retval = HEAP[$v_addr_i62];
  17104.     var $479 = $retval;
  17105.     STACKTOP = __stackBase__;
  17106.     return $479;
  17107.   } else if (($0 | 0) == 3) {
  17108.     HEAP[$this_addr_i84] = $this1 | 0;
  17109.     HEAP[$c_addr_i85] = $c_addr;
  17110.     var $this1_i86 = HEAP[$this_addr_i84];
  17111.     HEAP[$this_addr_i3_i64] = $this1_i86 | 0;
  17112.     HEAP[$this_addr_i_i2_i63] = HEAP[$this_addr_i3_i64] | 0;
  17113.     var $this1_i_i4_i91 = HEAP[$this_addr_i_i2_i63];
  17114.     if ((((HEAP[$this1_i_i4_i91 | 0] & 255) << 8) + (HEAP[$this1_i_i4_i91 + 1 | 0] & 255) & 65535 | 0) == 1) {
  17115.       HEAP[$this_addr_i_i78] = HEAP[$c_addr_i85];
  17116.       HEAP[$obj_addr_i_i79] = $this1_i86 | 0;
  17117.       HEAP[$this_addr_i_i_i76] = HEAP[$obj_addr_i_i79];
  17118.       var $this1_i_i_i105 = HEAP[$this_addr_i_i_i76];
  17119.       HEAP[$ref_tmp_i_i_i77] = $this1_i_i_i105;
  17120.       HEAP[$base_addr_i_i_i_i74] = $ref_tmp_i_i_i77;
  17121.       HEAP[$offset_addr_i_i_i_i75] = $this1_i_i_i105 + 2 | 0;
  17122.       var $227 = HEAP[HEAP[$base_addr_i_i_i_i74]];
  17123.       HEAP[$this_addr_i_i_i_i_i71] = HEAP[$offset_addr_i_i_i_i75];
  17124.       HEAP[$base_addr_i_i_i_i_i72] = $227;
  17125.       HEAP[$this_addr_i_i_i_i_i_i69] = HEAP[$this_addr_i_i_i_i_i71];
  17126.       HEAP[$this_addr_i_i_i_i_i_i_i68] = HEAP[$this_addr_i_i_i_i_i_i69] | 0;
  17127.       var $this1_i_i_i_i_i_i_i110 = HEAP[$this_addr_i_i_i_i_i_i_i68];
  17128.       HEAP[$offset_i_i_i_i_i73] = ((HEAP[$this1_i_i_i_i_i_i_i110 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i110 + 1 | 0] & 255) & 65535;
  17129.       if ((HEAP[$offset_i_i_i_i_i73] | 0) != 0) {
  17130.         var $245 = HEAP[$offset_i_i_i_i_i73];
  17131.         HEAP[$P_addr_i_i_i_i_i_i66] = HEAP[$base_addr_i_i_i_i_i72];
  17132.         HEAP[$offset_addr_i_i_i_i_i_i67] = $245;
  17133.         HEAP[$retval_i_i_i_i_i70] = HEAP[$P_addr_i_i_i_i_i_i66] + HEAP[$offset_addr_i_i_i_i_i_i67] | 0;
  17134.       } else {
  17135.         HEAP[$X_addr_i_i_i_i_i_i_i65] = 111704;
  17136.         HEAP[$retval_i_i_i_i_i70] = HEAP[$X_addr_i_i_i_i_i_i_i65];
  17137.       }
  17138.       HEAP[$v_addr_i1_i80] = HEAP[$retval_i_i_i_i_i70];
  17139.       HEAP[$retval_i83] = HEAP[$v_addr_i1_i80];
  17140.     } else {
  17141.       HEAP[$X_addr_i_i_i_i81] = 111704;
  17142.       HEAP[$v_addr_i_i82] = HEAP[$X_addr_i_i_i_i81];
  17143.       HEAP[$retval_i83] = HEAP[$v_addr_i_i82];
  17144.     }
  17145.     HEAP[$v_addr_i127] = HEAP[$retval_i83];
  17146.     $retval = HEAP[$v_addr_i127];
  17147.     var $479 = $retval;
  17148.     STACKTOP = __stackBase__;
  17149.     return $479;
  17150.   } else if (($0 | 0) == 5) {
  17151.     var $call18 = __ZNK2OT7Context8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr);
  17152.     HEAP[$v_addr_i193] = $call18;
  17153.     $retval = HEAP[$v_addr_i193];
  17154.     var $479 = $retval;
  17155.     STACKTOP = __stackBase__;
  17156.     return $479;
  17157.   } else if (($0 | 0) == 6) {
  17158.     var $call22 = __ZNK2OT12ChainContext8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr);
  17159.     HEAP[$v_addr_i194] = $call22;
  17160.     $retval = HEAP[$v_addr_i194];
  17161.     var $479 = $retval;
  17162.     STACKTOP = __stackBase__;
  17163.     return $479;
  17164.   } else if (($0 | 0) == 7) {
  17165.     HEAP[$this_addr_i264] = $this1 | 0;
  17166.     HEAP[$c_addr_i265] = $c_addr;
  17167.     var $this1_i266 = HEAP[$this_addr_i264];
  17168.     var $call_i = __ZNK2OT9ExtensionINS_14ExtensionSubstEE12get_subtableINS_19SubstLookupSubTableEEERKT_v($this1_i266);
  17169.     var $371 = HEAP[$c_addr_i265];
  17170.     HEAP[$this_addr_i_i263] = $this1_i266;
  17171.     var $this1_i_i267 = HEAP[$this_addr_i_i263];
  17172.     HEAP[$this_addr_i_i_i262] = $this1_i_i267 | 0;
  17173.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i262] | 0;
  17174.     var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  17175.     if ((((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  17176.       HEAP[$this_addr_i2_i_i] = $this1_i_i267 | 0;
  17177.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] + 2 | 0;
  17178.       HEAP[$this_addr_i_i_i_i_i261] = HEAP[$this_addr_i_i1_i_i] | 0;
  17179.       var $this1_i_i_i_i_i270 = HEAP[$this_addr_i_i_i_i_i261];
  17180.       HEAP[$retval_i_i] = ((HEAP[$this1_i_i_i_i_i270 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i270 + 1 | 0] & 255) & 65535;
  17181.     } else {
  17182.       HEAP[$retval_i_i] = 0;
  17183.     }
  17184.     var $call3_i = __ZNK2OT19SubstLookupSubTable8dispatchINS_25hb_get_coverage_context_tEEENT_8return_tEPS3_j($call_i, $371, HEAP[$retval_i_i]);
  17185.     HEAP[$v_addr_i195] = $call3_i;
  17186.     $retval = HEAP[$v_addr_i195];
  17187.     var $479 = $retval;
  17188.     STACKTOP = __stackBase__;
  17189.     return $479;
  17190.   } else if (($0 | 0) == 4) {
  17191.     HEAP[$this_addr_i149] = $this1 | 0;
  17192.     HEAP[$c_addr_i150] = $c_addr;
  17193.     var $this1_i151 = HEAP[$this_addr_i149];
  17194.     HEAP[$this_addr_i3_i129] = $this1_i151 | 0;
  17195.     HEAP[$this_addr_i_i2_i128] = HEAP[$this_addr_i3_i129] | 0;
  17196.     var $this1_i_i4_i156 = HEAP[$this_addr_i_i2_i128];
  17197.     if ((((HEAP[$this1_i_i4_i156 | 0] & 255) << 8) + (HEAP[$this1_i_i4_i156 + 1 | 0] & 255) & 65535 | 0) == 1) {
  17198.       HEAP[$this_addr_i_i143] = HEAP[$c_addr_i150];
  17199.       HEAP[$obj_addr_i_i144] = $this1_i151 | 0;
  17200.       HEAP[$this_addr_i_i_i141] = HEAP[$obj_addr_i_i144];
  17201.       var $this1_i_i_i170 = HEAP[$this_addr_i_i_i141];
  17202.       HEAP[$ref_tmp_i_i_i142] = $this1_i_i_i170;
  17203.       HEAP[$base_addr_i_i_i_i139] = $ref_tmp_i_i_i142;
  17204.       HEAP[$offset_addr_i_i_i_i140] = $this1_i_i_i170 + 2 | 0;
  17205.       var $303 = HEAP[HEAP[$base_addr_i_i_i_i139]];
  17206.       HEAP[$this_addr_i_i_i_i_i136] = HEAP[$offset_addr_i_i_i_i140];
  17207.       HEAP[$base_addr_i_i_i_i_i137] = $303;
  17208.       HEAP[$this_addr_i_i_i_i_i_i134] = HEAP[$this_addr_i_i_i_i_i136];
  17209.       HEAP[$this_addr_i_i_i_i_i_i_i133] = HEAP[$this_addr_i_i_i_i_i_i134] | 0;
  17210.       var $this1_i_i_i_i_i_i_i175 = HEAP[$this_addr_i_i_i_i_i_i_i133];
  17211.       HEAP[$offset_i_i_i_i_i138] = ((HEAP[$this1_i_i_i_i_i_i_i175 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i175 + 1 | 0] & 255) & 65535;
  17212.       if ((HEAP[$offset_i_i_i_i_i138] | 0) != 0) {
  17213.         var $321 = HEAP[$offset_i_i_i_i_i138];
  17214.         HEAP[$P_addr_i_i_i_i_i_i131] = HEAP[$base_addr_i_i_i_i_i137];
  17215.         HEAP[$offset_addr_i_i_i_i_i_i132] = $321;
  17216.         HEAP[$retval_i_i_i_i_i135] = HEAP[$P_addr_i_i_i_i_i_i131] + HEAP[$offset_addr_i_i_i_i_i_i132] | 0;
  17217.       } else {
  17218.         HEAP[$X_addr_i_i_i_i_i_i_i130] = 111704;
  17219.         HEAP[$retval_i_i_i_i_i135] = HEAP[$X_addr_i_i_i_i_i_i_i130];
  17220.       }
  17221.       HEAP[$v_addr_i1_i145] = HEAP[$retval_i_i_i_i_i135];
  17222.       HEAP[$retval_i148] = HEAP[$v_addr_i1_i145];
  17223.     } else {
  17224.       HEAP[$X_addr_i_i_i_i146] = 111704;
  17225.       HEAP[$v_addr_i_i147] = HEAP[$X_addr_i_i_i_i146];
  17226.       HEAP[$retval_i148] = HEAP[$v_addr_i_i147];
  17227.     }
  17228.     HEAP[$v_addr_i192] = HEAP[$retval_i148];
  17229.     $retval = HEAP[$v_addr_i192];
  17230.     var $479 = $retval;
  17231.     STACKTOP = __stackBase__;
  17232.     return $479;
  17233.   } else {
  17234.     HEAP[$X_addr_i_i_i] = 111704;
  17235.     HEAP[$v_addr_i] = HEAP[$X_addr_i_i_i];
  17236.     $retval = HEAP[$v_addr_i];
  17237.     var $479 = $retval;
  17238.     STACKTOP = __stackBase__;
  17239.     return $479;
  17240.   }
  17241. }
  17242. function __ZNK2OT9ExtensionINS_14ExtensionSubstEE12get_subtableINS_19SubstLookupSubTableEEERKT_v($this) {
  17243.   var __stackBase__ = STACKTOP;
  17244.   STACKTOP = STACKTOP + 40 | 0;
  17245.   var $X_addr_i_i = __stackBase__;
  17246.   var $P_addr_i = __stackBase__ + 4;
  17247.   var $offset_addr_i = __stackBase__ + 8;
  17248.   var $this_addr_i_i_i_i = __stackBase__ + 12;
  17249.   var $this_addr_i_i1_i = __stackBase__ + 16;
  17250.   var $this_addr_i2_i = __stackBase__ + 20;
  17251.   var $this_addr_i_i_i = __stackBase__ + 24;
  17252.   var $this_addr_i_i = __stackBase__ + 28;
  17253.   var $retval_i = __stackBase__ + 32;
  17254.   var $this_addr_i = __stackBase__ + 36;
  17255.   var $retval;
  17256.   var $offset;
  17257.   var $this1 = $this;
  17258.   HEAP[$this_addr_i] = $this1;
  17259.   var $this1_i = HEAP[$this_addr_i];
  17260.   HEAP[$this_addr_i_i] = $this1_i | 0;
  17261.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  17262.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  17263.   do {
  17264.     if ((((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  17265.       HEAP[$this_addr_i2_i] = $this1_i | 0;
  17266.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] + 4 | 0;
  17267.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  17268.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  17269.       var $add14_i_i_i_i = ((HEAP[$this1_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 3 | 0] & 255) | 0;
  17270.       HEAP[$retval_i] = $add14_i_i_i_i;
  17271.       $offset = $add14_i_i_i_i;
  17272.       if (($add14_i_i_i_i | 0) == 0) {
  17273.         break;
  17274.       }
  17275.       HEAP[$P_addr_i] = $this1;
  17276.       HEAP[$offset_addr_i] = $offset;
  17277.       $retval = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  17278.       var $35 = $retval;
  17279.       STACKTOP = __stackBase__;
  17280.       return $35;
  17281.     } else {
  17282.       HEAP[$retval_i] = 0;
  17283.       $offset = 0;
  17284.     }
  17285.   } while (0);
  17286.   HEAP[$X_addr_i_i] = 111704;
  17287.   $retval = HEAP[$X_addr_i_i];
  17288.   var $35 = $retval;
  17289.   STACKTOP = __stackBase__;
  17290.   return $35;
  17291. }
  17292. function __ZN2OT4GPOS8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  17293.   var label = 0;
  17294.   var __stackBase__ = STACKTOP;
  17295.   STACKTOP = STACKTOP + 484 | 0;
  17296.   var $X_addr_i = __stackBase__;
  17297.   var $P_addr_i_i = __stackBase__ + 4;
  17298.   var $offset_addr_i_i = __stackBase__ + 8;
  17299.   var $this_addr_i_i31_i = __stackBase__ + 12;
  17300.   var $this_addr_i32_i = __stackBase__ + 16;
  17301.   var $this_addr_i_i19_i = __stackBase__ + 20;
  17302.   var $base_addr_i_i20_i = __stackBase__ + 24;
  17303.   var $len_addr_i_i21_i = __stackBase__ + 28;
  17304.   var $p_i_i22_i = __stackBase__ + 32;
  17305.   var $this_addr_i23_i = __stackBase__ + 36;
  17306.   var $obj_addr_i_i = __stackBase__ + 40;
  17307.   var $this_addr_i_i45_i_i_i = __stackBase__ + 44;
  17308.   var $this_addr_i46_i_i_i = __stackBase__ + 48;
  17309.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 52;
  17310.   var $base_addr_i_i_i5_i_i_i = __stackBase__ + 56;
  17311.   var $len_addr_i_i_i6_i_i_i = __stackBase__ + 60;
  17312.   var $p_i_i_i7_i_i_i = __stackBase__ + 64;
  17313.   var $this_addr_i2_i_i_i_i = __stackBase__ + 68;
  17314.   var $obj_addr_i_i8_i_i_i = __stackBase__ + 72;
  17315.   var $this_addr_i_i_i9_i_i_i = __stackBase__ + 76;
  17316.   var $this_addr_i_i10_i_i_i = __stackBase__ + 80;
  17317.   var $this_addr_i12_i_i_i = __stackBase__ + 84;
  17318.   var $c_addr_i13_i_i_i = __stackBase__ + 88;
  17319.   var $this_addr_i_i36_i_i_i_i = __stackBase__ + 92;
  17320.   var $this_addr_i37_i_i_i_i = __stackBase__ + 96;
  17321.   var $P_addr_i_i_i_i_i = __stackBase__ + 100;
  17322.   var $offset_addr_i_i_i_i_i = __stackBase__ + 104;
  17323.   var $this_addr_i_i22_i_i_i_i = __stackBase__ + 108;
  17324.   var $base_addr_i_i23_i_i_i_i = __stackBase__ + 112;
  17325.   var $len_addr_i_i24_i_i_i_i = __stackBase__ + 116;
  17326.   var $p_i_i25_i_i_i_i = __stackBase__ + 120;
  17327.   var $this_addr_i26_i_i_i_i = __stackBase__ + 124;
  17328.   var $obj_addr_i_i_i_i_i = __stackBase__ + 128;
  17329.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 132;
  17330.   var $this_addr_i_i_i3_i_i_i_i_i = __stackBase__ + 136;
  17331.   var $this_addr_i_i4_i_i_i_i_i = __stackBase__ + 140;
  17332.   var $this_addr_i5_i_i_i_i_i = __stackBase__ + 144;
  17333.   var $this_addr_i_i1_i_i_i_i_i_i_i = __stackBase__ + 148;
  17334.   var $base_addr_i_i_i12_i_i_i_i_i_i = __stackBase__ + 152;
  17335.   var $len_addr_i_i_i13_i_i_i_i_i_i = __stackBase__ + 156;
  17336.   var $p_i_i_i14_i_i_i_i_i_i = __stackBase__ + 160;
  17337.   var $this_addr_i2_i_i_i_i_i_i_i = __stackBase__ + 164;
  17338.   var $obj_addr_i_i15_i_i_i_i_i_i = __stackBase__ + 168;
  17339.   var $this_addr_i_i_i16_i_i_i_i_i_i = __stackBase__ + 172;
  17340.   var $this_addr_i_i17_i_i_i_i_i_i = __stackBase__ + 176;
  17341.   var $this_addr_i19_i_i_i_i_i_i = __stackBase__ + 180;
  17342.   var $c_addr_i20_i_i_i_i_i_i = __stackBase__ + 184;
  17343.   var $this_addr_i_i4_i_i_i_i_i_i = __stackBase__ + 188;
  17344.   var $this_addr_i5_i_i_i_i_i_i = __stackBase__ + 192;
  17345.   var $this_addr_i_i11_i_i_i_i_i_i_i = __stackBase__ + 196;
  17346.   var $base_addr_i_i12_i_i_i_i_i_i_i = __stackBase__ + 200;
  17347.   var $len_addr_i_i13_i_i_i_i_i_i_i = __stackBase__ + 204;
  17348.   var $p_i_i14_i_i_i_i_i_i_i = __stackBase__ + 208;
  17349.   var $this_addr_i15_i_i_i_i_i_i_i = __stackBase__ + 212;
  17350.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 216;
  17351.   var $this_addr_i_i3_i_i_i_i_i_i_i = __stackBase__ + 220;
  17352.   var $this_addr_i4_i_i_i_i_i_i_i = __stackBase__ + 224;
  17353.   var $P_addr_i_i_i_i_i_i_i_i = __stackBase__ + 228;
  17354.   var $offset_addr_i_i_i_i_i_i_i_i = __stackBase__ + 232;
  17355.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 236;
  17356.   var $i_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 240;
  17357.   var $this_addr_i1_i_i_i_i_i_i_i_i = __stackBase__ + 242;
  17358.   var $i_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 246;
  17359.   var $retval_i_i_i_i_i_i_i_i_i = __stackBase__ + 248;
  17360.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 249;
  17361.   var $base_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 253;
  17362.   var $len_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 257;
  17363.   var $p_i_i_i_i_i_i_i_i_i = __stackBase__ + 261;
  17364.   var $retval_i_i_i_i_i_i_i_i = __stackBase__ + 265;
  17365.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 266;
  17366.   var $c_addr_i_i_i_i_i_i_i_i = __stackBase__ + 270;
  17367.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 274;
  17368.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 275;
  17369.   var $c_addr_i_i_i_i_i_i_i = __stackBase__ + 279;
  17370.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 283;
  17371.   var $user_data_addr_i_i_i_i_i_i_i = __stackBase__ + 287;
  17372.   var $offset_i_i_i_i_i_i_i = __stackBase__ + 291;
  17373.   var $obj_i_i_i_i_i_i_i = __stackBase__ + 295;
  17374.   var $retval_i_i3_i_i_i_i = __stackBase__ + 299;
  17375.   var $this_addr_i_i4_i_i_i_i = __stackBase__ + 300;
  17376.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 304;
  17377.   var $base_addr_i_i5_i_i_i_i = __stackBase__ + 308;
  17378.   var $user_data_addr_i_i_i_i_i_i = __stackBase__ + 312;
  17379.   var $count_i_i_i_i_i_i = __stackBase__ + 316;
  17380.   var $i_i_i_i_i_i_i = __stackBase__ + 320;
  17381.   var $retval_i6_i_i_i_i = __stackBase__ + 324;
  17382.   var $this_addr_i7_i_i_i_i = __stackBase__ + 325;
  17383.   var $c_addr_i8_i_i_i_i = __stackBase__ + 329;
  17384.   var $list_i_i_i_i_i = __stackBase__ + 333;
  17385.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 337;
  17386.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 341;
  17387.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 343;
  17388.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 347;
  17389.   var $retval_i_i_i_i_i_i = __stackBase__ + 349;
  17390.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 350;
  17391.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 354;
  17392.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 358;
  17393.   var $p_i_i_i_i_i_i = __stackBase__ + 362;
  17394.   var $retval_i_i_i_i_i = __stackBase__ + 366;
  17395.   var $this_addr_i_i_i_i_i = __stackBase__ + 367;
  17396.   var $c_addr_i_i_i_i_i = __stackBase__ + 371;
  17397.   var $retval_i_i_i_i = __stackBase__ + 375;
  17398.   var $this_addr_i_i_i1_i = __stackBase__ + 376;
  17399.   var $c_addr_i_i_i_i = __stackBase__ + 380;
  17400.   var $base_addr_i_i_i_i = __stackBase__ + 384;
  17401.   var $offset_i_i_i_i = __stackBase__ + 388;
  17402.   var $obj_i_i_i_i = __stackBase__ + 392;
  17403.   var $retval_i_i3_i = __stackBase__ + 396;
  17404.   var $this_addr_i_i4_i = __stackBase__ + 397;
  17405.   var $c_addr_i_i_i = __stackBase__ + 401;
  17406.   var $base_addr_i_i5_i = __stackBase__ + 405;
  17407.   var $count_i_i_i = __stackBase__ + 409;
  17408.   var $i_i_i_i = __stackBase__ + 413;
  17409.   var $this_addr_i6_i = __stackBase__ + 417;
  17410.   var $c_addr_i7_i = __stackBase__ + 421;
  17411.   var $this_addr_i_i_i_i = __stackBase__ + 425;
  17412.   var $i_addr_i_i_i_i = __stackBase__ + 429;
  17413.   var $this_addr_i1_i_i = __stackBase__ + 431;
  17414.   var $i_addr_i_i_i = __stackBase__ + 435;
  17415.   var $retval_i_i_i = __stackBase__ + 437;
  17416.   var $this_addr_i_i_i = __stackBase__ + 438;
  17417.   var $base_addr_i_i_i = __stackBase__ + 442;
  17418.   var $len_addr_i_i_i = __stackBase__ + 446;
  17419.   var $p_i_i_i = __stackBase__ + 450;
  17420.   var $retval_i_i = __stackBase__ + 454;
  17421.   var $this_addr_i_i = __stackBase__ + 455;
  17422.   var $c_addr_i_i = __stackBase__ + 459;
  17423.   var $retval_i = __stackBase__ + 463;
  17424.   var $this_addr_i = __stackBase__ + 464;
  17425.   var $c_addr_i = __stackBase__ + 468;
  17426.   var $base_addr_i = __stackBase__ + 472;
  17427.   var $offset_i = __stackBase__ + 476;
  17428.   var $obj_i = __stackBase__ + 480;
  17429.   var $retval;
  17430.   var $c_addr;
  17431.   $c_addr = $c;
  17432.   var $this1 = $this;
  17433.   if (!__ZN2OT8GSUBGPOS8sanitizeEPNS_21hb_sanitize_context_tE($this1, $c_addr)) {
  17434.     $retval = 0;
  17435.     var $510 = $retval;
  17436.     STACKTOP = __stackBase__;
  17437.     return $510;
  17438.   }
  17439.   HEAP[$X_addr_i] = $this1 + 8 | 0;
  17440.   HEAP[$this_addr_i] = HEAP[$X_addr_i];
  17441.   HEAP[$c_addr_i] = $c_addr;
  17442.   HEAP[$base_addr_i] = $this1;
  17443.   var $this1_i = HEAP[$this_addr_i];
  17444.   HEAP[$this_addr_i23_i] = HEAP[$c_addr_i];
  17445.   HEAP[$obj_addr_i_i] = $this1_i;
  17446.   var $22 = HEAP[$obj_addr_i_i];
  17447.   HEAP[$this_addr_i_i19_i] = HEAP[$this_addr_i23_i];
  17448.   HEAP[$base_addr_i_i20_i] = $22;
  17449.   HEAP[$len_addr_i_i21_i] = 2;
  17450.   var $this1_i_i25_i = HEAP[$this_addr_i_i19_i];
  17451.   HEAP[$p_i_i22_i] = HEAP[$base_addr_i_i20_i];
  17452.   do {
  17453.     if (HEAP[$this1_i_i25_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i] >>> 0) {
  17454.       if (!(HEAP[$p_i_i22_i] >>> 0 <= HEAP[$this1_i_i25_i + 8 | 0] >>> 0)) {
  17455.         var $35 = 0;
  17456.         break;
  17457.       }
  17458.       var $35 = (HEAP[$this1_i_i25_i + 8 | 0] - HEAP[$p_i_i22_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i] >>> 0;
  17459.     } else {
  17460.       var $35 = 0;
  17461.     }
  17462.   } while (0);
  17463.   var $35;
  17464.   do {
  17465.     if ($35 & 1) {
  17466.       HEAP[$this_addr_i32_i] = $this1_i;
  17467.       HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  17468.       var $this1_i_i34_i = HEAP[$this_addr_i_i31_i];
  17469.       HEAP[$offset_i] = ((HEAP[$this1_i_i34_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i + 1 | 0] & 255) & 65535;
  17470.       if ((HEAP[$offset_i] | 0) == 0) {
  17471.         HEAP[$retval_i] = 1;
  17472.         break;
  17473.       }
  17474.       var $54 = HEAP[$offset_i];
  17475.       HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  17476.       HEAP[$offset_addr_i_i] = $54;
  17477.       HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  17478.       var $63 = HEAP[$c_addr_i];
  17479.       HEAP[$this_addr_i6_i] = HEAP[$obj_i];
  17480.       HEAP[$c_addr_i7_i] = $63;
  17481.       var $this1_i8_i = HEAP[$this_addr_i6_i];
  17482.       var $68 = HEAP[$c_addr_i7_i];
  17483.       HEAP[$this_addr_i_i4_i] = $this1_i8_i;
  17484.       HEAP[$c_addr_i_i_i] = $68;
  17485.       HEAP[$base_addr_i_i5_i] = $this1_i8_i;
  17486.       var $this1_i_i9_i = HEAP[$this_addr_i_i4_i];
  17487.       var $76 = HEAP[$c_addr_i_i_i];
  17488.       HEAP[$this_addr_i12_i_i_i] = $this1_i_i9_i;
  17489.       HEAP[$c_addr_i13_i_i_i] = $76;
  17490.       var $this1_i14_i_i_i = HEAP[$this_addr_i12_i_i_i];
  17491.       HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i13_i_i_i];
  17492.       HEAP[$obj_addr_i_i8_i_i_i] = $this1_i14_i_i_i;
  17493.       var $83 = HEAP[$obj_addr_i_i8_i_i_i];
  17494.       HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  17495.       HEAP[$base_addr_i_i_i5_i_i_i] = $83;
  17496.       HEAP[$len_addr_i_i_i6_i_i_i] = 2;
  17497.       var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  17498.       HEAP[$p_i_i_i7_i_i_i] = HEAP[$base_addr_i_i_i5_i_i_i];
  17499.       do {
  17500.         if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i_i_i] >>> 0) {
  17501.           if (!(HEAP[$p_i_i_i7_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  17502.             var $96 = 0;
  17503.             break;
  17504.           }
  17505.           var $96 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i7_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i_i_i] >>> 0;
  17506.         } else {
  17507.           var $96 = 0;
  17508.         }
  17509.       } while (0);
  17510.       var $96;
  17511.       if ($96 & 1) {
  17512.         var $104 = HEAP[$c_addr_i13_i_i_i];
  17513.         HEAP[$this_addr_i_i10_i_i_i] = $this1_i14_i_i_i | 0;
  17514.         HEAP[$this_addr_i_i_i9_i_i_i] = HEAP[$this_addr_i_i10_i_i_i] | 0;
  17515.         var $this1_i_i_i30_i_i_i = HEAP[$this_addr_i_i_i9_i_i_i];
  17516.         var $112 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($104, $this1_i14_i_i_i, 2, ((HEAP[$this1_i_i_i30_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i30_i_i_i + 1 | 0] & 255) & 65535);
  17517.       } else {
  17518.         var $112 = 0;
  17519.       }
  17520.       var $112;
  17521.       L441 : do {
  17522.         if ($112 & 1) {
  17523.           HEAP[$this_addr_i46_i_i_i] = $this1_i_i9_i | 0;
  17524.           HEAP[$this_addr_i_i45_i_i_i] = HEAP[$this_addr_i46_i_i_i] | 0;
  17525.           var $this1_i_i48_i_i_i = HEAP[$this_addr_i_i45_i_i_i];
  17526.           HEAP[$count_i_i_i] = ((HEAP[$this1_i_i48_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i48_i_i_i + 1 | 0] & 255) & 65535;
  17527.           HEAP[$i_i_i_i] = 0;
  17528.           L444 : do {
  17529.             if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  17530.               var $array_i_i_i = $this1_i_i9_i + 2 | 0;
  17531.               while (1) {
  17532.                 var $305 = HEAP[$c_addr_i_i_i];
  17533.                 var $306 = HEAP[$base_addr_i_i5_i];
  17534.                 HEAP[$this_addr_i_i_i1_i] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  17535.                 HEAP[$c_addr_i_i_i_i] = $305;
  17536.                 HEAP[$base_addr_i_i_i_i] = $306;
  17537.                 var $this1_i_i_i13_i = HEAP[$this_addr_i_i_i1_i];
  17538.                 HEAP[$this_addr_i26_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  17539.                 HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  17540.                 var $309 = HEAP[$obj_addr_i_i_i_i_i];
  17541.                 HEAP[$this_addr_i_i22_i_i_i_i] = HEAP[$this_addr_i26_i_i_i_i];
  17542.                 HEAP[$base_addr_i_i23_i_i_i_i] = $309;
  17543.                 HEAP[$len_addr_i_i24_i_i_i_i] = 2;
  17544.                 var $this1_i_i28_i_i_i_i = HEAP[$this_addr_i_i22_i_i_i_i];
  17545.                 HEAP[$p_i_i25_i_i_i_i] = HEAP[$base_addr_i_i23_i_i_i_i];
  17546.                 do {
  17547.                   if (HEAP[$this1_i_i28_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i25_i_i_i_i] >>> 0) {
  17548.                     if (!(HEAP[$p_i_i25_i_i_i_i] >>> 0 <= HEAP[$this1_i_i28_i_i_i_i + 8 | 0] >>> 0)) {
  17549.                       var $318 = 0;
  17550.                       break;
  17551.                     }
  17552.                     var $318 = (HEAP[$this1_i_i28_i_i_i_i + 8 | 0] - HEAP[$p_i_i25_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i24_i_i_i_i] >>> 0;
  17553.                   } else {
  17554.                     var $318 = 0;
  17555.                   }
  17556.                 } while (0);
  17557.                 var $318;
  17558.                 do {
  17559.                   if ($318 & 1) {
  17560.                     HEAP[$this_addr_i37_i_i_i_i] = $this1_i_i_i13_i;
  17561.                     HEAP[$this_addr_i_i36_i_i_i_i] = HEAP[$this_addr_i37_i_i_i_i] | 0;
  17562.                     var $this1_i_i39_i_i_i_i = HEAP[$this_addr_i_i36_i_i_i_i];
  17563.                     HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i39_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i39_i_i_i_i + 1 | 0] & 255) & 65535;
  17564.                     if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  17565.                       var $tobool_i35_i_i_i_i = 1;
  17566.                       HEAP[$retval_i_i_i_i] = $tobool_i35_i_i_i_i;
  17567.                       var $442 = $tobool_i35_i_i_i_i;
  17568.                       break;
  17569.                     }
  17570.                     var $327 = HEAP[$offset_i_i_i_i];
  17571.                     HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  17572.                     HEAP[$offset_addr_i_i_i_i_i] = $327;
  17573.                     HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  17574.                     var $332 = HEAP[$c_addr_i_i_i_i];
  17575.                     HEAP[$this_addr_i7_i_i_i_i] = HEAP[$obj_i_i_i_i];
  17576.                     HEAP[$c_addr_i8_i_i_i_i] = $332;
  17577.                     var $this1_i9_i_i_i_i = HEAP[$this_addr_i7_i_i_i_i];
  17578.                     if (__ZN2OT6Lookup8sanitizeEPNS_21hb_sanitize_context_tE($this1_i9_i_i_i_i, HEAP[$c_addr_i8_i_i_i_i])) {
  17579.                       HEAP[$X_addr_i_i_i_i_i_i] = $this1_i9_i_i_i_i + 4 | 0;
  17580.                       HEAP[$list_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  17581.                       var $340 = HEAP[$list_i_i_i_i_i];
  17582.                       var $341 = HEAP[$c_addr_i8_i_i_i_i];
  17583.                       HEAP[$this_addr_i5_i_i_i_i_i] = $this1_i9_i_i_i_i;
  17584.                       HEAP[$this_addr_i_i4_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i] | 0;
  17585.                       HEAP[$this_addr_i_i_i3_i_i_i_i_i] = HEAP[$this_addr_i_i4_i_i_i_i_i] | 0;
  17586.                       var $this1_i_i_i9_i_i_i_i_i = HEAP[$this_addr_i_i_i3_i_i_i_i_i];
  17587.                       var $conv_i19_i_i_i_i_i = ((HEAP[$this1_i_i_i9_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i9_i_i_i_i_i + 1 | 0] & 255) & 65535;
  17588.                       HEAP[$this_addr_i_i4_i_i_i_i] = $340;
  17589.                       HEAP[$c_addr_i_i_i_i_i_i] = $341;
  17590.                       HEAP[$base_addr_i_i5_i_i_i_i] = $this1_i9_i_i_i_i;
  17591.                       HEAP[$user_data_addr_i_i_i_i_i_i] = $conv_i19_i_i_i_i_i;
  17592.                       var $this1_i_i11_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i];
  17593.                       var $346 = HEAP[$c_addr_i_i_i_i_i_i];
  17594.                       HEAP[$this_addr_i19_i_i_i_i_i_i] = $this1_i_i11_i_i_i_i;
  17595.                       HEAP[$c_addr_i20_i_i_i_i_i_i] = $346;
  17596.                       var $this1_i21_i_i_i_i_i_i = HEAP[$this_addr_i19_i_i_i_i_i_i];
  17597.                       HEAP[$this_addr_i2_i_i_i_i_i_i_i] = HEAP[$c_addr_i20_i_i_i_i_i_i];
  17598.                       HEAP[$obj_addr_i_i15_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i;
  17599.                       var $349 = HEAP[$obj_addr_i_i15_i_i_i_i_i_i];
  17600.                       HEAP[$this_addr_i_i1_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i];
  17601.                       HEAP[$base_addr_i_i_i12_i_i_i_i_i_i] = $349;
  17602.                       HEAP[$len_addr_i_i_i13_i_i_i_i_i_i] = 2;
  17603.                       var $this1_i_i4_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i];
  17604.                       HEAP[$p_i_i_i14_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i_i_i_i];
  17605.                       do {
  17606.                         if (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i_i_i_i] >>> 0) {
  17607.                           if (!(HEAP[$p_i_i_i14_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  17608.                             var $358 = 0;
  17609.                             break;
  17610.                           }
  17611.                           var $358 = (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i_i_i_i] >>> 0;
  17612.                         } else {
  17613.                           var $358 = 0;
  17614.                         }
  17615.                       } while (0);
  17616.                       var $358;
  17617.                       if ($358 & 1) {
  17618.                         var $360 = HEAP[$c_addr_i20_i_i_i_i_i_i];
  17619.                         HEAP[$this_addr_i_i17_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i | 0;
  17620.                         HEAP[$this_addr_i_i_i16_i_i_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i_i_i] | 0;
  17621.                         var $this1_i_i_i37_i_i_i_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i_i_i_i];
  17622.                         var $364 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($360, $this1_i21_i_i_i_i_i_i, 2, ((HEAP[$this1_i_i_i37_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  17623.                       } else {
  17624.                         var $364 = 0;
  17625.                       }
  17626.                       var $364;
  17627.                       L468 : do {
  17628.                         if ($364 & 1) {
  17629.                           HEAP[$this_addr_i5_i_i_i_i_i_i] = $this1_i_i11_i_i_i_i | 0;
  17630.                           HEAP[$this_addr_i_i4_i_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i_i] | 0;
  17631.                           var $this1_i_i7_i_i_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i_i_i];
  17632.                           HEAP[$count_i_i_i_i_i_i] = ((HEAP[$this1_i_i7_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  17633.                           HEAP[$i_i_i_i_i_i_i] = 0;
  17634.                           L471 : do {
  17635.                             if (HEAP[$i_i_i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i_i_i] >>> 0) {
  17636.                               var $array_i_i_i_i_i_i = $this1_i_i11_i_i_i_i + 2 | 0;
  17637.                               while (1) {
  17638.                                 var $373 = HEAP[$c_addr_i_i_i_i_i_i];
  17639.                                 var $374 = HEAP[$base_addr_i_i5_i_i_i_i];
  17640.                                 var $375 = HEAP[$user_data_addr_i_i_i_i_i_i];
  17641.                                 HEAP[$this_addr_i_i_i1_i_i_i_i] = (HEAP[$i_i_i_i_i_i_i] << 1) + $array_i_i_i_i_i_i | 0;
  17642.                                 HEAP[$c_addr_i_i_i_i_i_i_i] = $373;
  17643.                                 HEAP[$base_addr_i_i_i_i_i_i_i] = $374;
  17644.                                 HEAP[$user_data_addr_i_i_i_i_i_i_i] = $375;
  17645.                                 var $this1_i_i_i16_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i];
  17646.                                 HEAP[$this_addr_i15_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  17647.                                 HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i16_i_i_i_i;
  17648.                                 var $378 = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  17649.                                 HEAP[$this_addr_i_i11_i_i_i_i_i_i_i] = HEAP[$this_addr_i15_i_i_i_i_i_i_i];
  17650.                                 HEAP[$base_addr_i_i12_i_i_i_i_i_i_i] = $378;
  17651.                                 HEAP[$len_addr_i_i13_i_i_i_i_i_i_i] = 2;
  17652.                                 var $this1_i_i17_i_i_i_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i_i_i_i];
  17653.                                 HEAP[$p_i_i14_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i12_i_i_i_i_i_i_i];
  17654.                                 do {
  17655.                                   if (HEAP[$this1_i_i17_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i14_i_i_i_i_i_i_i] >>> 0) {
  17656.                                     if (!(HEAP[$p_i_i14_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i17_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  17657.                                       var $387 = 0;
  17658.                                       break;
  17659.                                     }
  17660.                                     var $387 = (HEAP[$this1_i_i17_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i14_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i13_i_i_i_i_i_i_i] >>> 0;
  17661.                                   } else {
  17662.                                     var $387 = 0;
  17663.                                   }
  17664.                                 } while (0);
  17665.                                 var $387;
  17666.                                 do {
  17667.                                   if ($387 & 1) {
  17668.                                     HEAP[$this_addr_i4_i_i_i_i_i_i_i] = $this1_i_i_i16_i_i_i_i;
  17669.                                     HEAP[$this_addr_i_i3_i_i_i_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i_i_i_i] | 0;
  17670.                                     var $this1_i_i6_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i];
  17671.                                     HEAP[$offset_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i6_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  17672.                                     if ((HEAP[$offset_i_i_i_i_i_i_i] | 0) == 0) {
  17673.                                       var $tobool_i2_i_i_i_i_i_i_i = 1;
  17674.                                       HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i2_i_i_i_i_i_i_i;
  17675.                                       var $418 = $tobool_i2_i_i_i_i_i_i_i;
  17676.                                       break;
  17677.                                     }
  17678.                                     var $396 = HEAP[$offset_i_i_i_i_i_i_i];
  17679.                                     HEAP[$P_addr_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  17680.                                     HEAP[$offset_addr_i_i_i_i_i_i_i_i] = $396;
  17681.                                     HEAP[$obj_i_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i_i] | 0;
  17682.                                     if (__ZN2OT17PosLookupSubTable8sanitizeEPNS_21hb_sanitize_context_tEj(HEAP[$obj_i_i_i_i_i_i_i], HEAP[$c_addr_i_i_i_i_i_i_i], HEAP[$user_data_addr_i_i_i_i_i_i_i])) {
  17683.                                       var $416 = 1;
  17684.                                     } else {
  17685.                                       var $403 = HEAP[$c_addr_i_i_i_i_i_i_i];
  17686.                                       HEAP[$this_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i16_i_i_i_i;
  17687.                                       HEAP[$c_addr_i_i_i_i_i_i_i_i] = $403;
  17688.                                       var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  17689.                                       HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i];
  17690.                                       HEAP[$base_addr_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i;
  17691.                                       HEAP[$len_addr_i_i_i_i_i_i_i_i_i] = 2;
  17692.                                       var $this1_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i];
  17693.                                       do {
  17694.                                         if (HEAP[$this1_i_i_i_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  17695.                                           HEAP[$retval_i_i_i_i_i_i_i_i_i] = 0;
  17696.                                           label = 389;
  17697.                                           break;
  17698.                                         } else {
  17699.                                           HEAP[$p_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i];
  17700.                                           var $edit_count2_i_i_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i_i_i + 16 | 0;
  17701.                                           HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] + 1 | 0;
  17702.                                           var $tobool_i_i_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  17703.                                           HEAP[$retval_i_i_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i_i;
  17704.                                           if (!$tobool_i_i_i_i_i_i_i_i_i_i) {
  17705.                                             label = 389;
  17706.                                             break;
  17707.                                           }
  17708.                                           HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i;
  17709.                                           HEAP[$i_addr_i_i_i_i_i_i_i_i_i] = 0;
  17710.                                           var $412 = HEAP[$i_addr_i_i_i_i_i_i_i_i_i];
  17711.                                           HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] | 0;
  17712.                                           HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] = $412;
  17713.                                           var $this1_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i];
  17714.                                           HEAP[$this1_i_i_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  17715.                                           HEAP[$this1_i_i_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 255;
  17716.                                           HEAP[$retval_i_i_i_i_i_i_i_i] = 1;
  17717.                                           break;
  17718.                                         }
  17719.                                       } while (0);
  17720.                                       if (label == 389) {
  17721.                                         label = 0;
  17722.                                         HEAP[$retval_i_i_i_i_i_i_i_i] = 0;
  17723.                                       }
  17724.                                       var $416 = HEAP[$retval_i_i_i_i_i_i_i_i];
  17725.                                     }
  17726.                                     var $416;
  17727.                                     var $tobool_i_i_i_i_i_i_i_i = $416 & 1;
  17728.                                     HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i;
  17729.                                     var $418 = $tobool_i_i_i_i_i_i_i_i;
  17730.                                   } else {
  17731.                                     var $tobool_i9_i_i_i_i_i_i_i = 0;
  17732.                                     HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i9_i_i_i_i_i_i_i;
  17733.                                     var $418 = $tobool_i9_i_i_i_i_i_i_i;
  17734.                                   }
  17735.                                 } while (0);
  17736.                                 var $418;
  17737.                                 if (!$418) {
  17738.                                   break;
  17739.                                 }
  17740.                                 HEAP[$i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i] + 1 | 0;
  17741.                                 if (HEAP[$i_i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i_i] >>> 0) {
  17742.                                   break L471;
  17743.                                 }
  17744.                               }
  17745.                               HEAP[$retval_i_i3_i_i_i_i] = 0;
  17746.                               break L468;
  17747.                             }
  17748.                           } while (0);
  17749.                           HEAP[$retval_i_i3_i_i_i_i] = 1;
  17750.                         } else {
  17751.                           HEAP[$retval_i_i3_i_i_i_i] = 0;
  17752.                         }
  17753.                       } while (0);
  17754.                       var $tobool_i_i_i_i_i_i = HEAP[$retval_i_i3_i_i_i_i] & 1;
  17755.                       HEAP[$retval_i6_i_i_i_i] = $tobool_i_i_i_i_i_i;
  17756.                       var $426 = $tobool_i_i_i_i_i_i;
  17757.                     } else {
  17758.                       var $tobool_i2_i_i_i_i_i = 0;
  17759.                       HEAP[$retval_i6_i_i_i_i] = $tobool_i2_i_i_i_i_i;
  17760.                       var $426 = $tobool_i2_i_i_i_i_i;
  17761.                     }
  17762.                     var $426;
  17763.                     if ($426) {
  17764.                       var $440 = 1;
  17765.                     } else {
  17766.                       var $427 = HEAP[$c_addr_i_i_i_i];
  17767.                       HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  17768.                       HEAP[$c_addr_i_i_i_i_i] = $427;
  17769.                       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  17770.                       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  17771.                       HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  17772.                       HEAP[$len_addr_i_i_i_i_i_i] = 2;
  17773.                       var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  17774.                       do {
  17775.                         if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  17776.                           HEAP[$retval_i_i_i_i_i_i] = 0;
  17777.                           label = 402;
  17778.                           break;
  17779.                         } else {
  17780.                           HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  17781.                           var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  17782.                           HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  17783.                           var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  17784.                           HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  17785.                           if (!$tobool_i_i_i_i_i_i_i) {
  17786.                             label = 402;
  17787.                             break;
  17788.                           }
  17789.                           HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i;
  17790.                           HEAP[$i_addr_i_i_i_i_i_i] = 0;
  17791.                           var $436 = HEAP[$i_addr_i_i_i_i_i_i];
  17792.                           HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  17793.                           HEAP[$i_addr_i_i_i_i_i_i_i] = $436;
  17794.                           var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  17795.                           HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  17796.                           HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  17797.                           HEAP[$retval_i_i_i_i_i] = 1;
  17798.                           break;
  17799.                         }
  17800.                       } while (0);
  17801.                       if (label == 402) {
  17802.                         label = 0;
  17803.                         HEAP[$retval_i_i_i_i_i] = 0;
  17804.                       }
  17805.                       var $440 = HEAP[$retval_i_i_i_i_i];
  17806.                     }
  17807.                     var $440;
  17808.                     var $tobool_i_i_i_i_i = $440 & 1;
  17809.                     HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i;
  17810.                     var $442 = $tobool_i_i_i_i_i;
  17811.                   } else {
  17812.                     var $tobool_i33_i_i_i_i = 0;
  17813.                     HEAP[$retval_i_i_i_i] = $tobool_i33_i_i_i_i;
  17814.                     var $442 = $tobool_i33_i_i_i_i;
  17815.                   }
  17816.                 } while (0);
  17817.                 var $442;
  17818.                 if (!$442) {
  17819.                   break;
  17820.                 }
  17821.                 HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  17822.                 if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  17823.                   break L444;
  17824.                 }
  17825.               }
  17826.               HEAP[$retval_i_i3_i] = 0;
  17827.               break L441;
  17828.             }
  17829.           } while (0);
  17830.           HEAP[$retval_i_i3_i] = 1;
  17831.         } else {
  17832.           HEAP[$retval_i_i3_i] = 0;
  17833.         }
  17834.       } while (0);
  17835.       if (HEAP[$retval_i_i3_i] & 1) {
  17836.         var $500 = 1;
  17837.       } else {
  17838.         var $458 = HEAP[$c_addr_i];
  17839.         HEAP[$this_addr_i_i] = $this1_i;
  17840.         HEAP[$c_addr_i_i] = $458;
  17841.         var $this1_i_i = HEAP[$this_addr_i_i];
  17842.         HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  17843.         HEAP[$base_addr_i_i_i] = $this1_i_i;
  17844.         HEAP[$len_addr_i_i_i] = 2;
  17845.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  17846.         do {
  17847.           if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  17848.             HEAP[$retval_i_i_i] = 0;
  17849.             label = 414;
  17850.             break;
  17851.           } else {
  17852.             HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  17853.             var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  17854.             HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  17855.             var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  17856.             HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  17857.             if (!$tobool_i_i_i_i) {
  17858.               label = 414;
  17859.               break;
  17860.             }
  17861.             HEAP[$this_addr_i1_i_i] = $this1_i_i;
  17862.             HEAP[$i_addr_i_i_i] = 0;
  17863.             var $487 = HEAP[$i_addr_i_i_i];
  17864.             HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  17865.             HEAP[$i_addr_i_i_i_i] = $487;
  17866.             var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  17867.             HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  17868.             HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  17869.             HEAP[$retval_i_i] = 1;
  17870.             break;
  17871.           }
  17872.         } while (0);
  17873.         if (label == 414) {
  17874.           HEAP[$retval_i_i] = 0;
  17875.         }
  17876.         var $500 = HEAP[$retval_i_i];
  17877.       }
  17878.       var $500;
  17879.       HEAP[$retval_i] = $500 & 1;
  17880.     } else {
  17881.       HEAP[$retval_i] = 0;
  17882.     }
  17883.   } while (0);
  17884.   $retval = HEAP[$retval_i] & 1;
  17885.   var $510 = $retval;
  17886.   STACKTOP = __stackBase__;
  17887.   return $510;
  17888. }
  17889. function __ZN2OT8GSUBGPOS8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  17890.   var label = 0;
  17891.   var __stackBase__ = STACKTOP;
  17892.   STACKTOP = STACKTOP + 1523 | 0;
  17893.   var $P_addr_i_i230 = __stackBase__;
  17894.   var $offset_addr_i_i231 = __stackBase__ + 4;
  17895.   var $this_addr_i_i31_i232 = __stackBase__ + 8;
  17896.   var $this_addr_i32_i233 = __stackBase__ + 12;
  17897.   var $this_addr_i_i19_i236 = __stackBase__ + 16;
  17898.   var $base_addr_i_i20_i237 = __stackBase__ + 20;
  17899.   var $len_addr_i_i21_i238 = __stackBase__ + 24;
  17900.   var $p_i_i22_i239 = __stackBase__ + 28;
  17901.   var $this_addr_i23_i240 = __stackBase__ + 32;
  17902.   var $obj_addr_i_i241 = __stackBase__ + 36;
  17903.   var $this_addr_i_i43_i_i_i242 = __stackBase__ + 40;
  17904.   var $this_addr_i44_i_i_i243 = __stackBase__ + 44;
  17905.   var $this_addr_i_i1_i_i_i_i246 = __stackBase__ + 48;
  17906.   var $base_addr_i_i_i4_i_i_i247 = __stackBase__ + 52;
  17907.   var $len_addr_i_i_i5_i_i_i248 = __stackBase__ + 56;
  17908.   var $p_i_i_i6_i_i_i249 = __stackBase__ + 60;
  17909.   var $this_addr_i2_i_i_i_i250 = __stackBase__ + 64;
  17910.   var $obj_addr_i_i7_i_i_i251 = __stackBase__ + 68;
  17911.   var $this_addr_i_i_i8_i_i_i252 = __stackBase__ + 72;
  17912.   var $this_addr_i_i9_i_i_i253 = __stackBase__ + 76;
  17913.   var $this_addr_i11_i_i_i255 = __stackBase__ + 80;
  17914.   var $c_addr_i12_i_i_i256 = __stackBase__ + 84;
  17915.   var $this_addr_i_i8_i_i_i_i = __stackBase__ + 88;
  17916.   var $base_addr_i_i_i_i_i_i257 = __stackBase__ + 92;
  17917.   var $len_addr_i_i_i_i_i_i258 = __stackBase__ + 96;
  17918.   var $p_i_i_i_i_i_i259 = __stackBase__ + 100;
  17919.   var $this_addr_i9_i_i_i_i = __stackBase__ + 104;
  17920.   var $obj_addr_i_i_i_i_i260 = __stackBase__ + 108;
  17921.   var $this_addr_i_i2_i_i_i_i261 = __stackBase__ + 112;
  17922.   var $this_addr_i3_i_i_i_i262 = __stackBase__ + 116;
  17923.   var $this_addr_i_i34_i_i_i_i_i = __stackBase__ + 120;
  17924.   var $this_addr_i35_i_i_i_i_i = __stackBase__ + 124;
  17925.   var $P_addr_i_i_i_i_i_i263 = __stackBase__ + 128;
  17926.   var $offset_addr_i_i_i_i_i_i264 = __stackBase__ + 132;
  17927.   var $this_addr_i_i20_i_i_i_i_i = __stackBase__ + 136;
  17928.   var $base_addr_i_i21_i_i_i_i_i = __stackBase__ + 140;
  17929.   var $len_addr_i_i22_i_i_i_i_i = __stackBase__ + 144;
  17930.   var $p_i_i23_i_i_i_i_i = __stackBase__ + 148;
  17931.   var $this_addr_i24_i_i_i_i_i = __stackBase__ + 152;
  17932.   var $obj_addr_i_i_i_i_i_i265 = __stackBase__ + 156;
  17933.   var $this_addr_i_i18_i_i_i_i_i_i_i = __stackBase__ + 160;
  17934.   var $base_addr_i_i19_i_i_i_i_i_i_i = __stackBase__ + 164;
  17935.   var $len_addr_i_i20_i_i_i_i_i_i_i = __stackBase__ + 168;
  17936.   var $p_i_i21_i_i_i_i_i_i_i = __stackBase__ + 172;
  17937.   var $this_addr_i22_i_i_i_i_i_i_i = __stackBase__ + 176;
  17938.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 180;
  17939.   var $this_addr_i_i10_i_i_i_i_i_i_i = __stackBase__ + 184;
  17940.   var $this_addr_i11_i_i_i_i_i_i_i = __stackBase__ + 188;
  17941.   var $P_addr_i_i_i_i_i_i_i_i = __stackBase__ + 192;
  17942.   var $offset_addr_i_i_i_i_i_i_i_i = __stackBase__ + 196;
  17943.   var $this_addr_i_i_i1_i_i_i_i_i_i_i = __stackBase__ + 200;
  17944.   var $base_addr_i_i_i_i2_i_i_i_i_i_i = __stackBase__ + 204;
  17945.   var $len_addr_i_i_i_i3_i_i_i_i_i_i = __stackBase__ + 208;
  17946.   var $p_i_i_i_i4_i_i_i_i_i_i = __stackBase__ + 212;
  17947.   var $this_addr_i_i2_i_i_i_i_i_i_i = __stackBase__ + 216;
  17948.   var $obj_addr_i_i_i5_i_i_i_i_i_i = __stackBase__ + 220;
  17949.   var $this_addr_i3_i_i_i_i_i_i_i = __stackBase__ + 224;
  17950.   var $c_addr_i4_i_i_i_i_i_i_i = __stackBase__ + 228;
  17951.   var $_addr_i_i_i_i_i_i_i_i = __stackBase__ + 232;
  17952.   var $this_addr_i_i_i_i7_i_i_i_i_i_i = __stackBase__ + 236;
  17953.   var $i_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 240;
  17954.   var $this_addr_i1_i_i_i_i_i_i_i_i = __stackBase__ + 242;
  17955.   var $i_addr_i_i_i_i_i_i_i_i_i266 = __stackBase__ + 246;
  17956.   var $retval_i_i_i9_i_i_i_i_i_i = __stackBase__ + 248;
  17957.   var $this_addr_i_i_i10_i_i_i_i_i_i = __stackBase__ + 249;
  17958.   var $base_addr_i_i_i11_i_i_i_i_i_i = __stackBase__ + 253;
  17959.   var $len_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 257;
  17960.   var $p_i_i_i_i_i_i_i_i_i = __stackBase__ + 261;
  17961.   var $retval_i_i_i_i_i_i_i_i267 = __stackBase__ + 265;
  17962.   var $this_addr_i_i12_i_i_i_i_i_i = __stackBase__ + 266;
  17963.   var $c_addr_i_i13_i_i_i_i_i_i = __stackBase__ + 270;
  17964.   var $retval_i15_i_i_i_i_i_i = __stackBase__ + 274;
  17965.   var $this_addr_i16_i_i_i_i_i_i = __stackBase__ + 275;
  17966.   var $c_addr_i17_i_i_i_i_i_i = __stackBase__ + 279;
  17967.   var $base_addr_i18_i_i_i_i_i_i = __stackBase__ + 283;
  17968.   var $offset_i_i_i_i_i_i_i = __stackBase__ + 287;
  17969.   var $obj_i_i_i_i_i_i_i = __stackBase__ + 291;
  17970.   var $this_addr_i_i1_i_i_i_i_i_i_i_i = __stackBase__ + 295;
  17971.   var $base_addr_i_i_i12_i_i_i_i_i_i_i = __stackBase__ + 299;
  17972.   var $len_addr_i_i_i13_i_i_i_i_i_i_i = __stackBase__ + 303;
  17973.   var $p_i_i_i14_i_i_i_i_i_i_i = __stackBase__ + 307;
  17974.   var $this_addr_i2_i_i_i_i_i_i_i_i = __stackBase__ + 311;
  17975.   var $obj_addr_i_i15_i_i_i_i_i_i_i = __stackBase__ + 315;
  17976.   var $this_addr_i_i_i16_i_i_i_i_i_i_i = __stackBase__ + 319;
  17977.   var $this_addr_i_i17_i_i_i_i_i_i_i = __stackBase__ + 323;
  17978.   var $this_addr_i19_i_i_i_i_i_i_i = __stackBase__ + 327;
  17979.   var $c_addr_i20_i_i_i_i_i_i_i = __stackBase__ + 331;
  17980.   var $this_addr_i_i3_i_i_i_i_i_i_i268 = __stackBase__ + 335;
  17981.   var $this_addr_i4_i_i_i_i_i_i_i269 = __stackBase__ + 339;
  17982.   var $this_addr_i_i10_i_i_i_i_i_i_i_i = __stackBase__ + 343;
  17983.   var $this_addr_i11_i_i_i_i_i_i_i_i = __stackBase__ + 347;
  17984.   var $this_addr_i_i3_i_i_i_i_i_i_i_i = __stackBase__ + 351;
  17985.   var $base_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 355;
  17986.   var $len_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 359;
  17987.   var $p_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 363;
  17988.   var $this_addr_i4_i_i_i_i_i_i_i_i = __stackBase__ + 367;
  17989.   var $obj_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 371;
  17990.   var $this_addr_i_i18_i_i_i_i_i_i_i_i_i = __stackBase__ + 375;
  17991.   var $base_addr_i_i19_i_i_i_i_i_i_i_i_i = __stackBase__ + 379;
  17992.   var $len_addr_i_i20_i_i_i_i_i_i_i_i_i = __stackBase__ + 383;
  17993.   var $p_i_i21_i_i_i_i_i_i_i_i_i = __stackBase__ + 387;
  17994.   var $this_addr_i22_i_i_i_i_i_i_i_i_i = __stackBase__ + 391;
  17995.   var $obj_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 395;
  17996.   var $this_addr_i_i10_i_i_i_i_i_i_i_i_i = __stackBase__ + 399;
  17997.   var $this_addr_i11_i_i_i_i_i_i_i_i_i = __stackBase__ + 403;
  17998.   var $P_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 407;
  17999.   var $offset_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 411;
  18000.   var $this_addr_i_i_i1_i_i_i_i_i_i_i_i_i = __stackBase__ + 415;
  18001.   var $base_addr_i_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 419;
  18002.   var $len_addr_i_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 423;
  18003.   var $p_i_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 427;
  18004.   var $this_addr_i_i2_i_i_i_i_i_i_i_i_i = __stackBase__ + 431;
  18005.   var $obj_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 435;
  18006.   var $this_addr_i3_i_i_i_i_i_i_i_i_i = __stackBase__ + 439;
  18007.   var $c_addr_i4_i_i_i_i_i_i_i_i_i = __stackBase__ + 443;
  18008.   var $_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 447;
  18009.   var $this_addr_i_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 451;
  18010.   var $i_addr_i_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 455;
  18011.   var $this_addr_i1_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 457;
  18012.   var $i_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 461;
  18013.   var $retval_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 463;
  18014.   var $this_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 464;
  18015.   var $base_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 468;
  18016.   var $len_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 472;
  18017.   var $p_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 476;
  18018.   var $retval_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 480;
  18019.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 481;
  18020.   var $c_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 485;
  18021.   var $retval_i_i_i_i_i_i_i_i_i = __stackBase__ + 489;
  18022.   var $this_addr_i_i_i_i_i_i_i_i_i270 = __stackBase__ + 490;
  18023.   var $c_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 494;
  18024.   var $base_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 498;
  18025.   var $user_data_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 502;
  18026.   var $offset_i_i_i_i_i_i_i_i_i = __stackBase__ + 506;
  18027.   var $obj_i_i_i_i_i_i_i_i_i = __stackBase__ + 510;
  18028.   var $this_addr_i_i_i1_i_i_i_i_i = __stackBase__ + 514;
  18029.   var $c_addr_i_i_i_i_i_i_i_i = __stackBase__ + 518;
  18030.   var $base_addr_i_i_i_i_i_i_i_i272 = __stackBase__ + 522;
  18031.   var $closure_i_i_i_i_i_i_i_i = __stackBase__ + 526;
  18032.   var $retval_i_i3_i_i_i_i_i = __stackBase__ + 534;
  18033.   var $this_addr_i_i4_i_i_i_i_i = __stackBase__ + 535;
  18034.   var $c_addr_i_i_i_i_i_i_i273 = __stackBase__ + 539;
  18035.   var $base_addr_i_i5_i_i_i_i_i = __stackBase__ + 543;
  18036.   var $count_i_i_i_i_i_i_i = __stackBase__ + 547;
  18037.   var $i_i_i_i_i_i_i_i = __stackBase__ + 551;
  18038.   var $this_addr_i6_i_i_i_i_i = __stackBase__ + 555;
  18039.   var $c_addr_i7_i_i_i_i_i = __stackBase__ + 559;
  18040.   var $_addr_i_i_i_i_i_i = __stackBase__ + 563;
  18041.   var $this_addr_i_i_i_i_i_i_i_i275 = __stackBase__ + 567;
  18042.   var $i_addr_i_i_i_i_i_i_i_i276 = __stackBase__ + 571;
  18043.   var $this_addr_i1_i_i_i_i_i_i277 = __stackBase__ + 573;
  18044.   var $i_addr_i_i_i_i_i_i_i278 = __stackBase__ + 577;
  18045.   var $retval_i_i_i_i_i_i_i280 = __stackBase__ + 579;
  18046.   var $this_addr_i_i_i_i_i_i_i281 = __stackBase__ + 580;
  18047.   var $base_addr_i_i_i_i_i_i_i282 = __stackBase__ + 584;
  18048.   var $len_addr_i_i_i_i_i_i_i283 = __stackBase__ + 588;
  18049.   var $p_i_i_i_i_i_i_i284 = __stackBase__ + 592;
  18050.   var $retval_i_i_i_i_i_i285 = __stackBase__ + 596;
  18051.   var $this_addr_i_i_i_i_i_i286 = __stackBase__ + 597;
  18052.   var $c_addr_i_i_i_i_i_i287 = __stackBase__ + 601;
  18053.   var $retval_i_i_i_i_i289 = __stackBase__ + 605;
  18054.   var $this_addr_i_i_i_i_i290 = __stackBase__ + 606;
  18055.   var $c_addr_i_i_i_i_i291 = __stackBase__ + 610;
  18056.   var $base_addr_i_i_i_i_i292 = __stackBase__ + 614;
  18057.   var $user_data_addr_i_i_i_i_i293 = __stackBase__ + 618;
  18058.   var $offset_i_i_i_i_i294 = __stackBase__ + 622;
  18059.   var $obj_i_i_i_i_i295 = __stackBase__ + 626;
  18060.   var $this_addr_i_i_i1_i297 = __stackBase__ + 630;
  18061.   var $c_addr_i_i_i_i298 = __stackBase__ + 634;
  18062.   var $base_addr_i_i_i_i299 = __stackBase__ + 638;
  18063.   var $closure_i_i_i_i300 = __stackBase__ + 642;
  18064.   var $retval_i_i3_i303 = __stackBase__ + 650;
  18065.   var $this_addr_i_i4_i304 = __stackBase__ + 651;
  18066.   var $c_addr_i_i_i305 = __stackBase__ + 655;
  18067.   var $base_addr_i_i5_i306 = __stackBase__ + 659;
  18068.   var $count_i_i_i307 = __stackBase__ + 663;
  18069.   var $i_i_i_i308 = __stackBase__ + 667;
  18070.   var $this_addr_i6_i310 = __stackBase__ + 671;
  18071.   var $c_addr_i7_i311 = __stackBase__ + 675;
  18072.   var $this_addr_i_i_i_i312 = __stackBase__ + 679;
  18073.   var $i_addr_i_i_i_i313 = __stackBase__ + 683;
  18074.   var $this_addr_i1_i_i314 = __stackBase__ + 685;
  18075.   var $i_addr_i_i_i315 = __stackBase__ + 689;
  18076.   var $retval_i_i_i317 = __stackBase__ + 691;
  18077.   var $this_addr_i_i_i318 = __stackBase__ + 692;
  18078.   var $base_addr_i_i_i319 = __stackBase__ + 696;
  18079.   var $len_addr_i_i_i320 = __stackBase__ + 700;
  18080.   var $p_i_i_i321 = __stackBase__ + 704;
  18081.   var $retval_i_i322 = __stackBase__ + 708;
  18082.   var $this_addr_i_i323 = __stackBase__ + 709;
  18083.   var $c_addr_i_i324 = __stackBase__ + 713;
  18084.   var $retval_i326 = __stackBase__ + 717;
  18085.   var $this_addr_i327 = __stackBase__ + 718;
  18086.   var $c_addr_i328 = __stackBase__ + 722;
  18087.   var $base_addr_i329 = __stackBase__ + 726;
  18088.   var $offset_i330 = __stackBase__ + 730;
  18089.   var $obj_i331 = __stackBase__ + 734;
  18090.   var $this_addr_i_i224 = __stackBase__ + 738;
  18091.   var $this_addr_i225 = __stackBase__ + 742;
  18092.   var $P_addr_i_i31 = __stackBase__ + 746;
  18093.   var $offset_addr_i_i32 = __stackBase__ + 750;
  18094.   var $this_addr_i_i31_i33 = __stackBase__ + 754;
  18095.   var $this_addr_i32_i34 = __stackBase__ + 758;
  18096.   var $this_addr_i_i19_i37 = __stackBase__ + 762;
  18097.   var $base_addr_i_i20_i38 = __stackBase__ + 766;
  18098.   var $len_addr_i_i21_i39 = __stackBase__ + 770;
  18099.   var $p_i_i22_i40 = __stackBase__ + 774;
  18100.   var $this_addr_i23_i41 = __stackBase__ + 778;
  18101.   var $obj_addr_i_i42 = __stackBase__ + 782;
  18102.   var $this_addr_i_i43_i_i_i = __stackBase__ + 786;
  18103.   var $this_addr_i44_i_i_i = __stackBase__ + 790;
  18104.   var $this_addr_i_i1_i_i_i_i43 = __stackBase__ + 794;
  18105.   var $base_addr_i_i_i4_i_i_i = __stackBase__ + 798;
  18106.   var $len_addr_i_i_i5_i_i_i = __stackBase__ + 802;
  18107.   var $p_i_i_i6_i_i_i = __stackBase__ + 806;
  18108.   var $this_addr_i2_i_i_i_i44 = __stackBase__ + 810;
  18109.   var $obj_addr_i_i7_i_i_i = __stackBase__ + 814;
  18110.   var $this_addr_i_i_i8_i_i_i = __stackBase__ + 818;
  18111.   var $this_addr_i_i9_i_i_i = __stackBase__ + 822;
  18112.   var $this_addr_i11_i_i_i = __stackBase__ + 826;
  18113.   var $c_addr_i12_i_i_i = __stackBase__ + 830;
  18114.   var $this_addr_i_i9_i_i_i_i = __stackBase__ + 834;
  18115.   var $base_addr_i_i_i_i_i_i45 = __stackBase__ + 838;
  18116.   var $len_addr_i_i_i_i_i_i46 = __stackBase__ + 842;
  18117.   var $p_i_i_i_i_i_i47 = __stackBase__ + 846;
  18118.   var $this_addr_i10_i_i_i_i = __stackBase__ + 850;
  18119.   var $obj_addr_i_i_i_i_i48 = __stackBase__ + 854;
  18120.   var $this_addr_i_i2_i_i_i_i = __stackBase__ + 858;
  18121.   var $this_addr_i3_i_i_i_i = __stackBase__ + 862;
  18122.   var $this_addr_i_i41_i_i_i_i_i = __stackBase__ + 866;
  18123.   var $this_addr_i42_i_i_i_i_i = __stackBase__ + 870;
  18124.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 874;
  18125.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 878;
  18126.   var $this_addr_i_i27_i_i_i_i_i = __stackBase__ + 882;
  18127.   var $base_addr_i_i28_i_i_i_i_i = __stackBase__ + 886;
  18128.   var $len_addr_i_i29_i_i_i_i_i = __stackBase__ + 890;
  18129.   var $p_i_i30_i_i_i_i_i = __stackBase__ + 894;
  18130.   var $this_addr_i31_i_i_i_i_i = __stackBase__ + 898;
  18131.   var $obj_addr_i_i_i_i_i_i = __stackBase__ + 902;
  18132.   var $this_addr_i_i65_i_i_i_i_i_i = __stackBase__ + 906;
  18133.   var $base_addr_i_i66_i_i_i_i_i_i = __stackBase__ + 910;
  18134.   var $len_addr_i_i67_i_i_i_i_i_i = __stackBase__ + 914;
  18135.   var $p_i_i68_i_i_i_i_i_i = __stackBase__ + 918;
  18136.   var $this_addr_i69_i_i_i_i_i_i = __stackBase__ + 922;
  18137.   var $obj_addr_i_i_i_i_i_i_i = __stackBase__ + 926;
  18138.   var $this_addr_i_i48_i_i_i_i_i_i = __stackBase__ + 930;
  18139.   var $this_addr_i49_i_i_i_i_i_i = __stackBase__ + 934;
  18140.   var $this_addr_i_i32_i_i_i_i_i_i = __stackBase__ + 938;
  18141.   var $this_addr_i33_i_i_i_i_i_i = __stackBase__ + 942;
  18142.   var $this_addr_i_i18_i_i_i_i_i_i = __stackBase__ + 946;
  18143.   var $this_addr_i19_i_i_i_i_i_i = __stackBase__ + 950;
  18144.   var $this_addr_i_i9_i_i_i_i_i_i = __stackBase__ + 954;
  18145.   var $i_addr_i_i10_i_i_i_i_i_i = __stackBase__ + 958;
  18146.   var $this_addr_i11_i_i_i_i_i_i = __stackBase__ + 960;
  18147.   var $i_addr_i_i1_i_i_i_i_i = __stackBase__ + 964;
  18148.   var $this_addr_i_i4_i_i_i_i_i_i = __stackBase__ + 966;
  18149.   var $this_addr_i5_i_i_i_i_i_i = __stackBase__ + 970;
  18150.   var $this_addr_i_i3_i_i_i_i_i_i_i = __stackBase__ + 974;
  18151.   var $this_addr_i4_i_i_i_i_i_i_i = __stackBase__ + 978;
  18152.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 982;
  18153.   var $i_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 986;
  18154.   var $this_addr_i1_i_i_i_i_i_i_i = __stackBase__ + 988;
  18155.   var $i_addr_i_i_i2_i_i_i_i_i = __stackBase__ + 992;
  18156.   var $retval_i_i_i_i_i_i_i_i = __stackBase__ + 994;
  18157.   var $this_addr_i_i_i3_i_i_i_i_i = __stackBase__ + 995;
  18158.   var $base_addr_i_i_i_i_i_i_i_i = __stackBase__ + 999;
  18159.   var $len_addr_i_i_i_i_i_i_i_i = __stackBase__ + 1003;
  18160.   var $p_i_i_i_i_i_i_i_i = __stackBase__ + 1007;
  18161.   var $retval_i_i4_i_i_i_i_i = __stackBase__ + 1011;
  18162.   var $this_addr_i_i5_i_i_i_i_i = __stackBase__ + 1012;
  18163.   var $c_addr_i_i_i_i_i_i_i = __stackBase__ + 1016;
  18164.   var $v_addr_i3_i_i_i_i_i_i = __stackBase__ + 1020;
  18165.   var $retval_i6_i_i_i_i_i = __stackBase__ + 1024;
  18166.   var $this_addr_i7_i_i_i_i_i = __stackBase__ + 1025;
  18167.   var $c_addr_i8_i_i_i_i_i = __stackBase__ + 1029;
  18168.   var $closure_addr_i_i_i_i_i_i = __stackBase__ + 1033;
  18169.   var $orig_offset_i_i_i_i_i_i = __stackBase__ + 1037;
  18170.   var $new_offset_int_i_i_i_i_i_i = __stackBase__ + 1039;
  18171.   var $new_offset_i_i_i_i_i_i = __stackBase__ + 1043;
  18172.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 1045;
  18173.   var $i_addr_i_i_i_i_i_i_i_i = __stackBase__ + 1049;
  18174.   var $this_addr_i1_i_i_i_i_i_i = __stackBase__ + 1051;
  18175.   var $i_addr_i_i_i_i_i_i_i50 = __stackBase__ + 1055;
  18176.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 1057;
  18177.   var $this_addr_i_i_i_i_i_i_i51 = __stackBase__ + 1058;
  18178.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 1062;
  18179.   var $len_addr_i_i_i_i_i_i_i = __stackBase__ + 1066;
  18180.   var $p_i_i_i_i_i_i_i = __stackBase__ + 1070;
  18181.   var $retval_i_i_i_i_i_i52 = __stackBase__ + 1074;
  18182.   var $this_addr_i_i_i_i_i_i53 = __stackBase__ + 1075;
  18183.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 1079;
  18184.   var $retval_i_i_i_i_i54 = __stackBase__ + 1083;
  18185.   var $this_addr_i_i_i_i_i55 = __stackBase__ + 1084;
  18186.   var $c_addr_i_i_i_i_i56 = __stackBase__ + 1088;
  18187.   var $base_addr_i_i_i_i_i = __stackBase__ + 1092;
  18188.   var $user_data_addr_i_i_i_i_i = __stackBase__ + 1096;
  18189.   var $offset_i_i_i_i_i = __stackBase__ + 1100;
  18190.   var $obj_i_i_i_i_i = __stackBase__ + 1104;
  18191.   var $this_addr_i_i_i1_i58 = __stackBase__ + 1108;
  18192.   var $c_addr_i_i_i_i59 = __stackBase__ + 1112;
  18193.   var $base_addr_i_i_i_i60 = __stackBase__ + 1116;
  18194.   var $closure_i_i_i_i = __stackBase__ + 1120;
  18195.   var $retval_i_i3_i63 = __stackBase__ + 1128;
  18196.   var $this_addr_i_i4_i64 = __stackBase__ + 1129;
  18197.   var $c_addr_i_i_i65 = __stackBase__ + 1133;
  18198.   var $base_addr_i_i5_i66 = __stackBase__ + 1137;
  18199.   var $count_i_i_i67 = __stackBase__ + 1141;
  18200.   var $i_i_i_i68 = __stackBase__ + 1145;
  18201.   var $this_addr_i6_i70 = __stackBase__ + 1149;
  18202.   var $c_addr_i7_i71 = __stackBase__ + 1153;
  18203.   var $this_addr_i_i_i_i72 = __stackBase__ + 1157;
  18204.   var $i_addr_i_i_i_i73 = __stackBase__ + 1161;
  18205.   var $this_addr_i1_i_i74 = __stackBase__ + 1163;
  18206.   var $i_addr_i_i_i75 = __stackBase__ + 1167;
  18207.   var $retval_i_i_i77 = __stackBase__ + 1169;
  18208.   var $this_addr_i_i_i78 = __stackBase__ + 1170;
  18209.   var $base_addr_i_i_i79 = __stackBase__ + 1174;
  18210.   var $len_addr_i_i_i80 = __stackBase__ + 1178;
  18211.   var $p_i_i_i81 = __stackBase__ + 1182;
  18212.   var $retval_i_i82 = __stackBase__ + 1186;
  18213.   var $this_addr_i_i83 = __stackBase__ + 1187;
  18214.   var $c_addr_i_i84 = __stackBase__ + 1191;
  18215.   var $retval_i86 = __stackBase__ + 1195;
  18216.   var $this_addr_i87 = __stackBase__ + 1196;
  18217.   var $c_addr_i88 = __stackBase__ + 1200;
  18218.   var $base_addr_i89 = __stackBase__ + 1204;
  18219.   var $offset_i90 = __stackBase__ + 1208;
  18220.   var $obj_i91 = __stackBase__ + 1212;
  18221.   var $this_addr_i_i_i3 = __stackBase__ + 1216;
  18222.   var $base_addr_i_i_i4 = __stackBase__ + 1220;
  18223.   var $len_addr_i_i_i5 = __stackBase__ + 1224;
  18224.   var $p_i_i_i6 = __stackBase__ + 1228;
  18225.   var $this_addr_i_i7 = __stackBase__ + 1232;
  18226.   var $obj_addr_i_i8 = __stackBase__ + 1236;
  18227.   var $this_addr_i10 = __stackBase__ + 1240;
  18228.   var $c_addr_i11 = __stackBase__ + 1244;
  18229.   var $this_addr_i_i31_i = __stackBase__ + 1248;
  18230.   var $this_addr_i32_i = __stackBase__ + 1252;
  18231.   var $P_addr_i_i = __stackBase__ + 1256;
  18232.   var $offset_addr_i_i = __stackBase__ + 1260;
  18233.   var $this_addr_i_i19_i = __stackBase__ + 1264;
  18234.   var $base_addr_i_i20_i = __stackBase__ + 1268;
  18235.   var $len_addr_i_i21_i = __stackBase__ + 1272;
  18236.   var $p_i_i22_i = __stackBase__ + 1276;
  18237.   var $this_addr_i23_i = __stackBase__ + 1280;
  18238.   var $obj_addr_i_i = __stackBase__ + 1284;
  18239.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 1288;
  18240.   var $base_addr_i_i_i12_i_i_i = __stackBase__ + 1292;
  18241.   var $len_addr_i_i_i13_i_i_i = __stackBase__ + 1296;
  18242.   var $p_i_i_i14_i_i_i = __stackBase__ + 1300;
  18243.   var $this_addr_i2_i_i_i_i = __stackBase__ + 1304;
  18244.   var $obj_addr_i_i15_i_i_i = __stackBase__ + 1308;
  18245.   var $this_addr_i_i_i16_i_i_i = __stackBase__ + 1312;
  18246.   var $this_addr_i_i17_i_i_i = __stackBase__ + 1316;
  18247.   var $this_addr_i19_i_i_i = __stackBase__ + 1320;
  18248.   var $c_addr_i20_i_i_i = __stackBase__ + 1324;
  18249.   var $this_addr_i_i4_i_i_i = __stackBase__ + 1328;
  18250.   var $this_addr_i5_i_i_i = __stackBase__ + 1332;
  18251.   var $this_addr_i_i11_i_i_i_i = __stackBase__ + 1336;
  18252.   var $base_addr_i_i12_i_i_i_i = __stackBase__ + 1340;
  18253.   var $len_addr_i_i13_i_i_i_i = __stackBase__ + 1344;
  18254.   var $p_i_i14_i_i_i_i = __stackBase__ + 1348;
  18255.   var $this_addr_i15_i_i_i_i = __stackBase__ + 1352;
  18256.   var $obj_addr_i_i_i_i_i = __stackBase__ + 1356;
  18257.   var $this_addr_i_i3_i_i_i_i = __stackBase__ + 1360;
  18258.   var $this_addr_i4_i_i_i_i = __stackBase__ + 1364;
  18259.   var $P_addr_i_i_i_i_i = __stackBase__ + 1368;
  18260.   var $offset_addr_i_i_i_i_i = __stackBase__ + 1372;
  18261.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 1376;
  18262.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 1380;
  18263.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 1382;
  18264.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 1386;
  18265.   var $retval_i_i_i_i_i_i = __stackBase__ + 1388;
  18266.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 1389;
  18267.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 1393;
  18268.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 1397;
  18269.   var $p_i_i_i_i_i_i = __stackBase__ + 1401;
  18270.   var $retval_i_i_i_i_i = __stackBase__ + 1405;
  18271.   var $this_addr_i_i_i_i_i = __stackBase__ + 1406;
  18272.   var $c_addr_i_i_i_i_i = __stackBase__ + 1410;
  18273.   var $retval_i_i_i_i = __stackBase__ + 1414;
  18274.   var $this_addr_i_i_i1_i = __stackBase__ + 1415;
  18275.   var $c_addr_i_i_i_i = __stackBase__ + 1419;
  18276.   var $base_addr_i_i_i_i = __stackBase__ + 1423;
  18277.   var $offset_i_i_i_i = __stackBase__ + 1427;
  18278.   var $obj_i_i_i_i = __stackBase__ + 1431;
  18279.   var $retval_i_i3_i = __stackBase__ + 1435;
  18280.   var $this_addr_i_i4_i = __stackBase__ + 1436;
  18281.   var $c_addr_i_i_i = __stackBase__ + 1440;
  18282.   var $base_addr_i_i5_i = __stackBase__ + 1444;
  18283.   var $count_i_i_i = __stackBase__ + 1448;
  18284.   var $i_i_i_i = __stackBase__ + 1452;
  18285.   var $this_addr_i6_i = __stackBase__ + 1456;
  18286.   var $c_addr_i7_i = __stackBase__ + 1460;
  18287.   var $this_addr_i_i_i_i = __stackBase__ + 1464;
  18288.   var $i_addr_i_i_i_i = __stackBase__ + 1468;
  18289.   var $this_addr_i1_i_i = __stackBase__ + 1470;
  18290.   var $i_addr_i_i_i = __stackBase__ + 1474;
  18291.   var $retval_i_i_i = __stackBase__ + 1476;
  18292.   var $this_addr_i_i_i = __stackBase__ + 1477;
  18293.   var $base_addr_i_i_i = __stackBase__ + 1481;
  18294.   var $len_addr_i_i_i = __stackBase__ + 1485;
  18295.   var $p_i_i_i = __stackBase__ + 1489;
  18296.   var $retval_i_i = __stackBase__ + 1493;
  18297.   var $this_addr_i_i = __stackBase__ + 1494;
  18298.   var $c_addr_i_i = __stackBase__ + 1498;
  18299.   var $retval_i = __stackBase__ + 1502;
  18300.   var $this_addr_i = __stackBase__ + 1503;
  18301.   var $c_addr_i = __stackBase__ + 1507;
  18302.   var $base_addr_i = __stackBase__ + 1511;
  18303.   var $offset_i = __stackBase__ + 1515;
  18304.   var $obj_i = __stackBase__ + 1519;
  18305.   var $v_addr_i;
  18306.   var $c_addr;
  18307.   $c_addr = $c;
  18308.   var $this1 = $this;
  18309.   HEAP[$this_addr_i10] = $this1 | 0;
  18310.   HEAP[$c_addr_i11] = $c_addr;
  18311.   var $this1_i12 = HEAP[$this_addr_i10];
  18312.   HEAP[$this_addr_i_i7] = HEAP[$c_addr_i11];
  18313.   HEAP[$obj_addr_i_i8] = $this1_i12;
  18314.   var $7 = HEAP[$obj_addr_i_i8];
  18315.   HEAP[$this_addr_i_i_i3] = HEAP[$this_addr_i_i7];
  18316.   HEAP[$base_addr_i_i_i4] = $7;
  18317.   HEAP[$len_addr_i_i_i5] = 4;
  18318.   var $this1_i_i_i14 = HEAP[$this_addr_i_i_i3];
  18319.   HEAP[$p_i_i_i6] = HEAP[$base_addr_i_i_i4];
  18320.   do {
  18321.     if (HEAP[$this1_i_i_i14 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i6] >>> 0) {
  18322.       if (!(HEAP[$p_i_i_i6] >>> 0 <= HEAP[$this1_i_i_i14 + 8 | 0] >>> 0)) {
  18323.         var $20 = 0;
  18324.         break;
  18325.       }
  18326.       var $20 = (HEAP[$this1_i_i_i14 + 8 | 0] - HEAP[$p_i_i_i6] | 0) >>> 0 >= HEAP[$len_addr_i_i_i5] >>> 0;
  18327.     } else {
  18328.       var $20 = 0;
  18329.     }
  18330.   } while (0);
  18331.   var $20;
  18332.   if (!($20 & 1 & 1)) {
  18333.     var $1586 = 0;
  18334.     var $1586;
  18335.     var $frombool_i = $1586 & 1;
  18336.     $v_addr_i = $frombool_i;
  18337.     var $1587 = $v_addr_i;
  18338.     var $tobool_i = $1587 & 1;
  18339.     STACKTOP = __stackBase__;
  18340.     return $tobool_i;
  18341.   }
  18342.   HEAP[$this_addr_i225] = $this1 | 0;
  18343.   HEAP[$this_addr_i_i224] = HEAP[$this_addr_i225] | 0;
  18344.   var $this1_i_i227 = HEAP[$this_addr_i_i224];
  18345.   if ((((HEAP[$this1_i_i227 | 0] & 255) << 8) + (HEAP[$this1_i_i227 + 1 | 0] & 255) & 65535 | 0) != 1) {
  18346.     var $1586 = 0;
  18347.     var $1586;
  18348.     var $frombool_i = $1586 & 1;
  18349.     $v_addr_i = $frombool_i;
  18350.     var $1587 = $v_addr_i;
  18351.     var $tobool_i = $1587 & 1;
  18352.     STACKTOP = __stackBase__;
  18353.     return $tobool_i;
  18354.   }
  18355.   HEAP[$this_addr_i327] = $this1 + 4 | 0;
  18356.   HEAP[$c_addr_i328] = $c_addr;
  18357.   HEAP[$base_addr_i329] = $this1;
  18358.   var $this1_i332 = HEAP[$this_addr_i327];
  18359.   HEAP[$this_addr_i23_i240] = HEAP[$c_addr_i328];
  18360.   HEAP[$obj_addr_i_i241] = $this1_i332;
  18361.   var $50 = HEAP[$obj_addr_i_i241];
  18362.   HEAP[$this_addr_i_i19_i236] = HEAP[$this_addr_i23_i240];
  18363.   HEAP[$base_addr_i_i20_i237] = $50;
  18364.   HEAP[$len_addr_i_i21_i238] = 2;
  18365.   var $this1_i_i25_i334 = HEAP[$this_addr_i_i19_i236];
  18366.   HEAP[$p_i_i22_i239] = HEAP[$base_addr_i_i20_i237];
  18367.   do {
  18368.     if (HEAP[$this1_i_i25_i334 + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i239] >>> 0) {
  18369.       if (!(HEAP[$p_i_i22_i239] >>> 0 <= HEAP[$this1_i_i25_i334 + 8 | 0] >>> 0)) {
  18370.         var $63 = 0;
  18371.         break;
  18372.       }
  18373.       var $63 = (HEAP[$this1_i_i25_i334 + 8 | 0] - HEAP[$p_i_i22_i239] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i238] >>> 0;
  18374.     } else {
  18375.       var $63 = 0;
  18376.     }
  18377.   } while (0);
  18378.   var $63;
  18379.   do {
  18380.     if ($63 & 1) {
  18381.       HEAP[$this_addr_i32_i233] = $this1_i332;
  18382.       HEAP[$this_addr_i_i31_i232] = HEAP[$this_addr_i32_i233] | 0;
  18383.       var $this1_i_i34_i352 = HEAP[$this_addr_i_i31_i232];
  18384.       HEAP[$offset_i330] = ((HEAP[$this1_i_i34_i352 | 0] & 255) << 8) + (HEAP[$this1_i_i34_i352 + 1 | 0] & 255) & 65535;
  18385.       if ((HEAP[$offset_i330] | 0) == 0) {
  18386.         var $tobool_i39_i365 = 1;
  18387.         HEAP[$retval_i326] = $tobool_i39_i365;
  18388.         var $780 = $tobool_i39_i365;
  18389.         break;
  18390.       }
  18391.       var $82 = HEAP[$offset_i330];
  18392.       HEAP[$P_addr_i_i230] = HEAP[$base_addr_i329];
  18393.       HEAP[$offset_addr_i_i231] = $82;
  18394.       HEAP[$obj_i331] = HEAP[$P_addr_i_i230] + HEAP[$offset_addr_i_i231] | 0;
  18395.       var $91 = HEAP[$c_addr_i328];
  18396.       HEAP[$this_addr_i6_i310] = HEAP[$obj_i331];
  18397.       HEAP[$c_addr_i7_i311] = $91;
  18398.       var $this1_i8_i368 = HEAP[$this_addr_i6_i310];
  18399.       var $96 = HEAP[$c_addr_i7_i311];
  18400.       HEAP[$this_addr_i_i4_i304] = $this1_i8_i368;
  18401.       HEAP[$c_addr_i_i_i305] = $96;
  18402.       HEAP[$base_addr_i_i5_i306] = $this1_i8_i368;
  18403.       var $this1_i_i9_i369 = HEAP[$this_addr_i_i4_i304];
  18404.       var $104 = HEAP[$c_addr_i_i_i305];
  18405.       HEAP[$this_addr_i11_i_i_i255] = $this1_i_i9_i369;
  18406.       HEAP[$c_addr_i12_i_i_i256] = $104;
  18407.       var $this1_i13_i_i_i370 = HEAP[$this_addr_i11_i_i_i255];
  18408.       HEAP[$this_addr_i2_i_i_i_i250] = HEAP[$c_addr_i12_i_i_i256];
  18409.       HEAP[$obj_addr_i_i7_i_i_i251] = $this1_i13_i_i_i370;
  18410.       var $111 = HEAP[$obj_addr_i_i7_i_i_i251];
  18411.       HEAP[$this_addr_i_i1_i_i_i_i246] = HEAP[$this_addr_i2_i_i_i_i250];
  18412.       HEAP[$base_addr_i_i_i4_i_i_i247] = $111;
  18413.       HEAP[$len_addr_i_i_i5_i_i_i248] = 2;
  18414.       var $this1_i_i4_i_i_i_i372 = HEAP[$this_addr_i_i1_i_i_i_i246];
  18415.       HEAP[$p_i_i_i6_i_i_i249] = HEAP[$base_addr_i_i_i4_i_i_i247];
  18416.       do {
  18417.         if (HEAP[$this1_i_i4_i_i_i_i372 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i6_i_i_i249] >>> 0) {
  18418.           if (!(HEAP[$p_i_i_i6_i_i_i249] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i372 + 8 | 0] >>> 0)) {
  18419.             var $124 = 0;
  18420.             break;
  18421.           }
  18422.           var $124 = (HEAP[$this1_i_i4_i_i_i_i372 + 8 | 0] - HEAP[$p_i_i_i6_i_i_i249] | 0) >>> 0 >= HEAP[$len_addr_i_i_i5_i_i_i248] >>> 0;
  18423.         } else {
  18424.           var $124 = 0;
  18425.         }
  18426.       } while (0);
  18427.       var $124;
  18428.       if ($124 & 1) {
  18429.         var $132 = HEAP[$c_addr_i12_i_i_i256];
  18430.         HEAP[$this_addr_i_i9_i_i_i253] = $this1_i13_i_i_i370 | 0;
  18431.         HEAP[$this_addr_i_i_i8_i_i_i252] = HEAP[$this_addr_i_i9_i_i_i253] | 0;
  18432.         var $this1_i_i_i29_i_i_i390 = HEAP[$this_addr_i_i_i8_i_i_i252];
  18433.         var $140 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($132, $this1_i13_i_i_i370, 6, ((HEAP[$this1_i_i_i29_i_i_i390 | 0] & 255) << 8) + (HEAP[$this1_i_i_i29_i_i_i390 + 1 | 0] & 255) & 65535);
  18434.       } else {
  18435.         var $140 = 0;
  18436.       }
  18437.       var $140;
  18438.       L555 : do {
  18439.         if ($140 & 1) {
  18440.           HEAP[$this_addr_i44_i_i_i243] = $this1_i_i9_i369 | 0;
  18441.           HEAP[$this_addr_i_i43_i_i_i242] = HEAP[$this_addr_i44_i_i_i243] | 0;
  18442.           var $this1_i_i46_i_i_i410 = HEAP[$this_addr_i_i43_i_i_i242];
  18443.           HEAP[$count_i_i_i307] = ((HEAP[$this1_i_i46_i_i_i410 | 0] & 255) << 8) + (HEAP[$this1_i_i46_i_i_i410 + 1 | 0] & 255) & 65535;
  18444.           HEAP[$i_i_i_i308] = 0;
  18445.           L558 : do {
  18446.             if (HEAP[$i_i_i_i308] >>> 0 < HEAP[$count_i_i_i307] >>> 0) {
  18447.               var $array_i_i_i423 = $this1_i_i9_i369 + 2 | 0;
  18448.               var $tag_i_i_i_i424 = $closure_i_i_i_i300 | 0;
  18449.               var $list_base_i_i_i_i425 = $closure_i_i_i_i300 + 4 | 0;
  18450.               var $tag_i_i_i_i_i_i_i_i = $closure_i_i_i_i_i_i_i_i | 0;
  18451.               var $list_base_i_i_i_i_i_i_i_i = $closure_i_i_i_i_i_i_i_i + 4 | 0;
  18452.               while (1) {
  18453.                 var $467 = HEAP[$c_addr_i_i_i305];
  18454.                 var $468 = HEAP[$base_addr_i_i5_i306];
  18455.                 HEAP[$this_addr_i_i_i1_i297] = $array_i_i_i423 + (HEAP[$i_i_i_i308] * 6 & -1) | 0;
  18456.                 HEAP[$c_addr_i_i_i_i298] = $467;
  18457.                 HEAP[$base_addr_i_i_i_i299] = $468;
  18458.                 var $this1_i_i_i14_i428 = HEAP[$this_addr_i_i_i1_i297];
  18459.                 HEAP[$this_addr_i3_i_i_i_i262] = $this1_i_i_i14_i428 | 0;
  18460.                 HEAP[$this_addr_i_i2_i_i_i_i261] = HEAP[$this_addr_i3_i_i_i_i262] | 0;
  18461.                 var $this1_i_i5_i_i_i_i432 = HEAP[$this_addr_i_i2_i_i_i_i261];
  18462.                 HEAP[$tag_i_i_i_i424] = ((HEAP[$this1_i_i5_i_i_i_i432 + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i5_i_i_i_i432 | 0] & 255) << 24) + ((HEAP[$this1_i_i5_i_i_i_i432 + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i_i432 + 3 | 0] & 255) | 0;
  18463.                 HEAP[$list_base_i_i_i_i425] = HEAP[$base_addr_i_i_i_i299];
  18464.                 HEAP[$this_addr_i9_i_i_i_i] = HEAP[$c_addr_i_i_i_i298];
  18465.                 HEAP[$obj_addr_i_i_i_i_i260] = $this1_i_i_i14_i428;
  18466.                 var $477 = HEAP[$obj_addr_i_i_i_i_i260];
  18467.                 HEAP[$this_addr_i_i8_i_i_i_i] = HEAP[$this_addr_i9_i_i_i_i];
  18468.                 HEAP[$base_addr_i_i_i_i_i_i257] = $477;
  18469.                 HEAP[$len_addr_i_i_i_i_i_i258] = 6;
  18470.                 var $this1_i_i11_i_i_i_i = HEAP[$this_addr_i_i8_i_i_i_i];
  18471.                 HEAP[$p_i_i_i_i_i_i259] = HEAP[$base_addr_i_i_i_i_i_i257];
  18472.                 do {
  18473.                   if (HEAP[$this1_i_i11_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i259] >>> 0) {
  18474.                     if (!(HEAP[$p_i_i_i_i_i_i259] >>> 0 <= HEAP[$this1_i_i11_i_i_i_i + 8 | 0] >>> 0)) {
  18475.                       var $486 = 0;
  18476.                       break;
  18477.                     }
  18478.                     var $486 = (HEAP[$this1_i_i11_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i259] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i258] >>> 0;
  18479.                   } else {
  18480.                     var $486 = 0;
  18481.                   }
  18482.                 } while (0);
  18483.                 var $486;
  18484.                 if ($486 & 1) {
  18485.                   var $489 = HEAP[$c_addr_i_i_i_i298];
  18486.                   var $490 = HEAP[$base_addr_i_i_i_i299];
  18487.                   HEAP[$this_addr_i_i_i_i_i290] = $this1_i_i_i14_i428 + 4 | 0;
  18488.                   HEAP[$c_addr_i_i_i_i_i291] = $489;
  18489.                   HEAP[$base_addr_i_i_i_i_i292] = $490;
  18490.                   HEAP[$user_data_addr_i_i_i_i_i293] = $closure_i_i_i_i300;
  18491.                   var $this1_i_i_i_i_i463 = HEAP[$this_addr_i_i_i_i_i290];
  18492.                   HEAP[$this_addr_i24_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i291];
  18493.                   HEAP[$obj_addr_i_i_i_i_i_i265] = $this1_i_i_i_i_i463;
  18494.                   var $493 = HEAP[$obj_addr_i_i_i_i_i_i265];
  18495.                   HEAP[$this_addr_i_i20_i_i_i_i_i] = HEAP[$this_addr_i24_i_i_i_i_i];
  18496.                   HEAP[$base_addr_i_i21_i_i_i_i_i] = $493;
  18497.                   HEAP[$len_addr_i_i22_i_i_i_i_i] = 2;
  18498.                   var $this1_i_i26_i_i_i_i_i = HEAP[$this_addr_i_i20_i_i_i_i_i];
  18499.                   HEAP[$p_i_i23_i_i_i_i_i] = HEAP[$base_addr_i_i21_i_i_i_i_i];
  18500.                   do {
  18501.                     if (HEAP[$this1_i_i26_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i23_i_i_i_i_i] >>> 0) {
  18502.                       if (!(HEAP[$p_i_i23_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i26_i_i_i_i_i + 8 | 0] >>> 0)) {
  18503.                         var $502 = 0;
  18504.                         break;
  18505.                       }
  18506.                       var $502 = (HEAP[$this1_i_i26_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i23_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i22_i_i_i_i_i] >>> 0;
  18507.                     } else {
  18508.                       var $502 = 0;
  18509.                     }
  18510.                   } while (0);
  18511.                   var $502;
  18512.                   do {
  18513.                     if ($502 & 1) {
  18514.                       HEAP[$this_addr_i35_i_i_i_i_i] = $this1_i_i_i_i_i463;
  18515.                       HEAP[$this_addr_i_i34_i_i_i_i_i] = HEAP[$this_addr_i35_i_i_i_i_i] | 0;
  18516.                       var $this1_i_i37_i_i_i_i_i = HEAP[$this_addr_i_i34_i_i_i_i_i];
  18517.                       HEAP[$offset_i_i_i_i_i294] = ((HEAP[$this1_i_i37_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i37_i_i_i_i_i + 1 | 0] & 255) & 65535;
  18518.                       if ((HEAP[$offset_i_i_i_i_i294] | 0) == 0) {
  18519.                         HEAP[$retval_i_i_i_i_i289] = 1;
  18520.                         break;
  18521.                       }
  18522.                       var $511 = HEAP[$offset_i_i_i_i_i294];
  18523.                       HEAP[$P_addr_i_i_i_i_i_i263] = HEAP[$base_addr_i_i_i_i_i292];
  18524.                       HEAP[$offset_addr_i_i_i_i_i_i264] = $511;
  18525.                       HEAP[$obj_i_i_i_i_i295] = HEAP[$P_addr_i_i_i_i_i_i263] + HEAP[$offset_addr_i_i_i_i_i_i264] | 0;
  18526.                       var $516 = HEAP[$c_addr_i_i_i_i_i291];
  18527.                       var $517 = HEAP[$user_data_addr_i_i_i_i_i293];
  18528.                       HEAP[$this_addr_i6_i_i_i_i_i] = HEAP[$obj_i_i_i_i_i295];
  18529.                       HEAP[$c_addr_i7_i_i_i_i_i] = $516;
  18530.                       HEAP[$_addr_i_i_i_i_i_i] = $517;
  18531.                       var $this1_i8_i_i_i_i_i = HEAP[$this_addr_i6_i_i_i_i_i];
  18532.                       var $519 = HEAP[$c_addr_i7_i_i_i_i_i];
  18533.                       HEAP[$this_addr_i16_i_i_i_i_i_i] = $this1_i8_i_i_i_i_i | 0;
  18534.                       HEAP[$c_addr_i17_i_i_i_i_i_i] = $519;
  18535.                       HEAP[$base_addr_i18_i_i_i_i_i_i] = $this1_i8_i_i_i_i_i;
  18536.                       var $this1_i19_i_i_i_i_i_i = HEAP[$this_addr_i16_i_i_i_i_i_i];
  18537.                       HEAP[$this_addr_i22_i_i_i_i_i_i_i] = HEAP[$c_addr_i17_i_i_i_i_i_i];
  18538.                       HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i19_i_i_i_i_i_i;
  18539.                       var $523 = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  18540.                       HEAP[$this_addr_i_i18_i_i_i_i_i_i_i] = HEAP[$this_addr_i22_i_i_i_i_i_i_i];
  18541.                       HEAP[$base_addr_i_i19_i_i_i_i_i_i_i] = $523;
  18542.                       HEAP[$len_addr_i_i20_i_i_i_i_i_i_i] = 2;
  18543.                       var $this1_i_i24_i_i_i_i_i_i_i = HEAP[$this_addr_i_i18_i_i_i_i_i_i_i];
  18544.                       HEAP[$p_i_i21_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i19_i_i_i_i_i_i_i];
  18545.                       do {
  18546.                         if (HEAP[$this1_i_i24_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i21_i_i_i_i_i_i_i] >>> 0) {
  18547.                           if (!(HEAP[$p_i_i21_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i24_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  18548.                             var $532 = 0;
  18549.                             break;
  18550.                           }
  18551.                           var $532 = (HEAP[$this1_i_i24_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i21_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i20_i_i_i_i_i_i_i] >>> 0;
  18552.                         } else {
  18553.                           var $532 = 0;
  18554.                         }
  18555.                       } while (0);
  18556.                       var $532;
  18557.                       do {
  18558.                         if ($532 & 1) {
  18559.                           HEAP[$this_addr_i11_i_i_i_i_i_i_i] = $this1_i19_i_i_i_i_i_i;
  18560.                           HEAP[$this_addr_i_i10_i_i_i_i_i_i_i] = HEAP[$this_addr_i11_i_i_i_i_i_i_i] | 0;
  18561.                           var $this1_i_i13_i_i_i_i_i_i_i = HEAP[$this_addr_i_i10_i_i_i_i_i_i_i];
  18562.                           HEAP[$offset_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i13_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i13_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  18563.                           if ((HEAP[$offset_i_i_i_i_i_i_i] | 0) == 0) {
  18564.                             var $tobool_i9_i_i_i_i_i_i_i = 1;
  18565.                             HEAP[$retval_i15_i_i_i_i_i_i] = $tobool_i9_i_i_i_i_i_i_i;
  18566.                             var $579 = $tobool_i9_i_i_i_i_i_i_i;
  18567.                             break;
  18568.                           }
  18569.                           var $541 = HEAP[$offset_i_i_i_i_i_i_i];
  18570.                           HEAP[$P_addr_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i18_i_i_i_i_i_i];
  18571.                           HEAP[$offset_addr_i_i_i_i_i_i_i_i] = $541;
  18572.                           HEAP[$obj_i_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i_i] | 0;
  18573.                           var $546 = HEAP[$c_addr_i17_i_i_i_i_i_i];
  18574.                           HEAP[$this_addr_i3_i_i_i_i_i_i_i] = HEAP[$obj_i_i_i_i_i_i_i];
  18575.                           HEAP[$c_addr_i4_i_i_i_i_i_i_i] = $546;
  18576.                           HEAP[$_addr_i_i_i_i_i_i_i_i] = 0;
  18577.                           var $this1_i5_i33_i_i_i_i_i_i = HEAP[$this_addr_i3_i_i_i_i_i_i_i];
  18578.                           HEAP[$this_addr_i_i2_i_i_i_i_i_i_i] = HEAP[$c_addr_i4_i_i_i_i_i_i_i];
  18579.                           HEAP[$obj_addr_i_i_i5_i_i_i_i_i_i] = $this1_i5_i33_i_i_i_i_i_i;
  18580.                           var $549 = HEAP[$obj_addr_i_i_i5_i_i_i_i_i_i];
  18581.                           HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i2_i_i_i_i_i_i_i];
  18582.                           HEAP[$base_addr_i_i_i_i2_i_i_i_i_i_i] = $549;
  18583.                           HEAP[$len_addr_i_i_i_i3_i_i_i_i_i_i] = 6;
  18584.                           var $this1_i_i_i7_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i];
  18585.                           HEAP[$p_i_i_i_i4_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i2_i_i_i_i_i_i];
  18586.                           do {
  18587.                             if (HEAP[$this1_i_i_i7_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i4_i_i_i_i_i_i] >>> 0) {
  18588.                               if (!(HEAP[$p_i_i_i_i4_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i7_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  18589.                                 var $558 = 0;
  18590.                                 break;
  18591.                               }
  18592.                               var $558 = (HEAP[$this1_i_i_i7_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i4_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i3_i_i_i_i_i_i] >>> 0;
  18593.                             } else {
  18594.                               var $558 = 0;
  18595.                             }
  18596.                           } while (0);
  18597.                           var $558;
  18598.                           if ($558 & 1) {
  18599.                             var $562 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_5IndexEE8sanitizeEPNS_21hb_sanitize_context_tE($this1_i5_i33_i_i_i_i_i_i + 4 | 0, HEAP[$c_addr_i4_i_i_i_i_i_i_i]);
  18600.                           } else {
  18601.                             var $562 = 0;
  18602.                           }
  18603.                           var $562;
  18604.                           if ($562 & 1) {
  18605.                             var $577 = 1;
  18606.                           } else {
  18607.                             var $564 = HEAP[$c_addr_i17_i_i_i_i_i_i];
  18608.                             HEAP[$this_addr_i_i12_i_i_i_i_i_i] = $this1_i19_i_i_i_i_i_i;
  18609.                             HEAP[$c_addr_i_i13_i_i_i_i_i_i] = $564;
  18610.                             var $this1_i_i51_i_i_i_i_i_i = HEAP[$this_addr_i_i12_i_i_i_i_i_i];
  18611.                             HEAP[$this_addr_i_i_i10_i_i_i_i_i_i] = HEAP[$c_addr_i_i13_i_i_i_i_i_i];
  18612.                             HEAP[$base_addr_i_i_i11_i_i_i_i_i_i] = $this1_i_i51_i_i_i_i_i_i;
  18613.                             HEAP[$len_addr_i_i_i_i_i_i_i_i_i] = 2;
  18614.                             var $this1_i_i_i52_i_i_i_i_i_i = HEAP[$this_addr_i_i_i10_i_i_i_i_i_i];
  18615.                             do {
  18616.                               if (HEAP[$this1_i_i_i52_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  18617.                                 HEAP[$retval_i_i_i9_i_i_i_i_i_i] = 0;
  18618.                                 label = 470;
  18619.                                 break;
  18620.                               } else {
  18621.                                 HEAP[$p_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i11_i_i_i_i_i_i];
  18622.                                 var $edit_count2_i_i_i_i_i_i_i_i_i = $this1_i_i_i52_i_i_i_i_i_i + 16 | 0;
  18623.                                 HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] + 1 | 0;
  18624.                                 var $tobool_i_i_i_i55_i_i_i_i_i_i = HEAP[$this1_i_i_i52_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  18625.                                 HEAP[$retval_i_i_i9_i_i_i_i_i_i] = $tobool_i_i_i_i55_i_i_i_i_i_i;
  18626.                                 if (!$tobool_i_i_i_i55_i_i_i_i_i_i) {
  18627.                                   label = 470;
  18628.                                   break;
  18629.                                 }
  18630.                                 HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] = $this1_i_i51_i_i_i_i_i_i;
  18631.                                 HEAP[$i_addr_i_i_i_i_i_i_i_i_i266] = 0;
  18632.                                 var $573 = HEAP[$i_addr_i_i_i_i_i_i_i_i_i266];
  18633.                                 HEAP[$this_addr_i_i_i_i7_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] | 0;
  18634.                                 HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] = $573;
  18635.                                 var $this1_i_i_i_i58_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i7_i_i_i_i_i_i];
  18636.                                 HEAP[$this1_i_i_i_i58_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  18637.                                 HEAP[$this1_i_i_i_i58_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 255;
  18638.                                 HEAP[$retval_i_i_i_i_i_i_i_i267] = 1;
  18639.                                 break;
  18640.                               }
  18641.                             } while (0);
  18642.                             if (label == 470) {
  18643.                               label = 0;
  18644.                               HEAP[$retval_i_i_i_i_i_i_i_i267] = 0;
  18645.                             }
  18646.                             var $577 = HEAP[$retval_i_i_i_i_i_i_i_i267];
  18647.                           }
  18648.                           var $577;
  18649.                           var $tobool_i_i62_i_i_i_i_i_i = $577 & 1;
  18650.                           HEAP[$retval_i15_i_i_i_i_i_i] = $tobool_i_i62_i_i_i_i_i_i;
  18651.                           var $579 = $tobool_i_i62_i_i_i_i_i_i;
  18652.                         } else {
  18653.                           var $tobool_i16_i_i_i_i_i_i_i = 0;
  18654.                           HEAP[$retval_i15_i_i_i_i_i_i] = $tobool_i16_i_i_i_i_i_i_i;
  18655.                           var $579 = $tobool_i16_i_i_i_i_i_i_i;
  18656.                         }
  18657.                       } while (0);
  18658.                       var $579;
  18659.                       if ($579) {
  18660.                         var $581 = HEAP[$c_addr_i7_i_i_i_i_i];
  18661.                         HEAP[$this_addr_i_i4_i_i_i_i_i] = $this1_i8_i_i_i_i_i + 2 | 0;
  18662.                         HEAP[$c_addr_i_i_i_i_i_i_i273] = $581;
  18663.                         HEAP[$base_addr_i_i5_i_i_i_i_i] = $this1_i8_i_i_i_i_i;
  18664.                         var $this1_i_i10_i_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i_i];
  18665.                         var $583 = HEAP[$c_addr_i_i_i_i_i_i_i273];
  18666.                         HEAP[$this_addr_i19_i_i_i_i_i_i_i] = $this1_i_i10_i_i_i_i_i;
  18667.                         HEAP[$c_addr_i20_i_i_i_i_i_i_i] = $583;
  18668.                         var $this1_i21_i_i_i_i_i_i_i = HEAP[$this_addr_i19_i_i_i_i_i_i_i];
  18669.                         HEAP[$this_addr_i2_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i20_i_i_i_i_i_i_i];
  18670.                         HEAP[$obj_addr_i_i15_i_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i_i;
  18671.                         var $586 = HEAP[$obj_addr_i_i15_i_i_i_i_i_i_i];
  18672.                         HEAP[$this_addr_i_i1_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i_i];
  18673.                         HEAP[$base_addr_i_i_i12_i_i_i_i_i_i_i] = $586;
  18674.                         HEAP[$len_addr_i_i_i13_i_i_i_i_i_i_i] = 2;
  18675.                         var $this1_i_i4_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i_i];
  18676.                         HEAP[$p_i_i_i14_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i_i_i_i_i];
  18677.                         do {
  18678.                           if (HEAP[$this1_i_i4_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i_i_i_i_i] >>> 0) {
  18679.                             if (!(HEAP[$p_i_i_i14_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  18680.                               var $595 = 0;
  18681.                               break;
  18682.                             }
  18683.                             var $595 = (HEAP[$this1_i_i4_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i_i_i_i_i] >>> 0;
  18684.                           } else {
  18685.                             var $595 = 0;
  18686.                           }
  18687.                         } while (0);
  18688.                         var $595;
  18689.                         if ($595 & 1) {
  18690.                           var $597 = HEAP[$c_addr_i20_i_i_i_i_i_i_i];
  18691.                           HEAP[$this_addr_i_i17_i_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i_i | 0;
  18692.                           HEAP[$this_addr_i_i_i16_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i_i_i_i] | 0;
  18693.                           var $this1_i_i_i37_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i_i_i_i_i];
  18694.                           var $601 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($597, $this1_i21_i_i_i_i_i_i_i, 6, ((HEAP[$this1_i_i_i37_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  18695.                         } else {
  18696.                           var $601 = 0;
  18697.                         }
  18698.                         var $601;
  18699.                         L614 : do {
  18700.                           if ($601 & 1) {
  18701.                             HEAP[$this_addr_i4_i_i_i_i_i_i_i269] = $this1_i_i10_i_i_i_i_i | 0;
  18702.                             HEAP[$this_addr_i_i3_i_i_i_i_i_i_i268] = HEAP[$this_addr_i4_i_i_i_i_i_i_i269] | 0;
  18703.                             var $this1_i_i6_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i268];
  18704.                             HEAP[$count_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i6_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  18705.                             HEAP[$i_i_i_i_i_i_i_i] = 0;
  18706.                             L617 : do {
  18707.                               if (HEAP[$i_i_i_i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i_i_i_i] >>> 0) {
  18708.                                 var $array_i_i_i_i_i_i_i = $this1_i_i10_i_i_i_i_i + 2 | 0;
  18709.                                 while (1) {
  18710.                                   var $609 = HEAP[$c_addr_i_i_i_i_i_i_i273];
  18711.                                   var $610 = HEAP[$base_addr_i_i5_i_i_i_i_i];
  18712.                                   HEAP[$this_addr_i_i_i1_i_i_i_i_i] = $array_i_i_i_i_i_i_i + (HEAP[$i_i_i_i_i_i_i_i] * 6 & -1) | 0;
  18713.                                   HEAP[$c_addr_i_i_i_i_i_i_i_i] = $609;
  18714.                                   HEAP[$base_addr_i_i_i_i_i_i_i_i272] = $610;
  18715.                                   var $this1_i_i_i15_i_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i_i];
  18716.                                   HEAP[$this_addr_i11_i_i_i_i_i_i_i_i] = $this1_i_i_i15_i_i_i_i_i | 0;
  18717.                                   HEAP[$this_addr_i_i10_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i11_i_i_i_i_i_i_i_i] | 0;
  18718.                                   var $this1_i_i13_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i10_i_i_i_i_i_i_i_i];
  18719.                                   HEAP[$tag_i_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i13_i_i_i_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i13_i_i_i_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i13_i_i_i_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i13_i_i_i_i_i_i_i_i + 3 | 0] & 255) | 0;
  18720.                                   HEAP[$list_base_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i272];
  18721.                                   HEAP[$this_addr_i4_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i];
  18722.                                   HEAP[$obj_addr_i_i_i_i_i_i_i_i_i] = $this1_i_i_i15_i_i_i_i_i;
  18723.                                   var $619 = HEAP[$obj_addr_i_i_i_i_i_i_i_i_i];
  18724.                                   HEAP[$this_addr_i_i3_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i_i_i_i_i];
  18725.                                   HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i] = $619;
  18726.                                   HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i] = 6;
  18727.                                   var $this1_i_i6_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i_i];
  18728.                                   HEAP[$p_i_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i];
  18729.                                   do {
  18730.                                     if (HEAP[$this1_i_i6_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i_i_i_i] >>> 0) {
  18731.                                       if (!(HEAP[$p_i_i_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i6_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  18732.                                         var $628 = 0;
  18733.                                         break;
  18734.                                       }
  18735.                                       var $628 = (HEAP[$this1_i_i6_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i] >>> 0;
  18736.                                     } else {
  18737.                                       var $628 = 0;
  18738.                                     }
  18739.                                   } while (0);
  18740.                                   var $628;
  18741.                                   if ($628 & 1) {
  18742.                                     var $631 = HEAP[$c_addr_i_i_i_i_i_i_i_i];
  18743.                                     var $632 = HEAP[$base_addr_i_i_i_i_i_i_i_i272];
  18744.                                     HEAP[$this_addr_i_i_i_i_i_i_i_i_i270] = $this1_i_i_i15_i_i_i_i_i + 4 | 0;
  18745.                                     HEAP[$c_addr_i_i_i_i_i_i_i_i_i] = $631;
  18746.                                     HEAP[$base_addr_i_i_i_i_i_i_i_i_i] = $632;
  18747.                                     HEAP[$user_data_addr_i_i_i_i_i_i_i_i_i] = $closure_i_i_i_i_i_i_i_i;
  18748.                                     var $this1_i_i_i_i_i_i_i_i_i503 = HEAP[$this_addr_i_i_i_i_i_i_i_i_i270];
  18749.                                     HEAP[$this_addr_i22_i_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i_i];
  18750.                                     HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i_i503;
  18751.                                     var $635 = HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i];
  18752.                                     HEAP[$this_addr_i_i18_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i22_i_i_i_i_i_i_i_i_i];
  18753.                                     HEAP[$base_addr_i_i19_i_i_i_i_i_i_i_i_i] = $635;
  18754.                                     HEAP[$len_addr_i_i20_i_i_i_i_i_i_i_i_i] = 2;
  18755.                                     var $this1_i_i24_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i18_i_i_i_i_i_i_i_i_i];
  18756.                                     HEAP[$p_i_i21_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i19_i_i_i_i_i_i_i_i_i];
  18757.                                     do {
  18758.                                       if (HEAP[$this1_i_i24_i_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i21_i_i_i_i_i_i_i_i_i] >>> 0) {
  18759.                                         if (!(HEAP[$p_i_i21_i_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i24_i_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  18760.                                           var $644 = 0;
  18761.                                           break;
  18762.                                         }
  18763.                                         var $644 = (HEAP[$this1_i_i24_i_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i21_i_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i20_i_i_i_i_i_i_i_i_i] >>> 0;
  18764.                                       } else {
  18765.                                         var $644 = 0;
  18766.                                       }
  18767.                                     } while (0);
  18768.                                     var $644;
  18769.                                     do {
  18770.                                       if ($644 & 1) {
  18771.                                         HEAP[$this_addr_i11_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i_i503;
  18772.                                         HEAP[$this_addr_i_i10_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i11_i_i_i_i_i_i_i_i_i] | 0;
  18773.                                         var $this1_i_i13_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i10_i_i_i_i_i_i_i_i_i];
  18774.                                         HEAP[$offset_i_i_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i13_i_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i13_i_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  18775.                                         if ((HEAP[$offset_i_i_i_i_i_i_i_i_i] | 0) == 0) {
  18776.                                           HEAP[$retval_i_i_i_i_i_i_i_i_i] = 1;
  18777.                                           break;
  18778.                                         }
  18779.                                         var $653 = HEAP[$offset_i_i_i_i_i_i_i_i_i];
  18780.                                         HEAP[$P_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i];
  18781.                                         HEAP[$offset_addr_i_i_i_i_i_i_i_i_i_i] = $653;
  18782.                                         HEAP[$obj_i_i_i_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i_i_i_i] | 0;
  18783.                                         var $658 = HEAP[$c_addr_i_i_i_i_i_i_i_i_i];
  18784.                                         var $659 = HEAP[$user_data_addr_i_i_i_i_i_i_i_i_i];
  18785.                                         HEAP[$this_addr_i3_i_i_i_i_i_i_i_i_i] = HEAP[$obj_i_i_i_i_i_i_i_i_i];
  18786.                                         HEAP[$c_addr_i4_i_i_i_i_i_i_i_i_i] = $658;
  18787.                                         HEAP[$_addr_i_i_i_i_i_i_i_i_i_i] = $659;
  18788.                                         var $this1_i5_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i3_i_i_i_i_i_i_i_i_i];
  18789.                                         HEAP[$this_addr_i_i2_i_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i4_i_i_i_i_i_i_i_i_i];
  18790.                                         HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i_i] = $this1_i5_i_i_i_i_i_i_i_i_i;
  18791.                                         var $662 = HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i_i];
  18792.                                         HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i2_i_i_i_i_i_i_i_i_i];
  18793.                                         HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i_i] = $662;
  18794.                                         HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i_i] = 6;
  18795.                                         var $this1_i_i_i7_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i_i_i];
  18796.                                         HEAP[$p_i_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i_i];
  18797.                                         do {
  18798.                                           if (HEAP[$this1_i_i_i7_i_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i_i_i_i_i_i] >>> 0) {
  18799.                                             if (!(HEAP[$p_i_i_i_i_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i7_i_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  18800.                                               var $671 = 0;
  18801.                                               break;
  18802.                                             }
  18803.                                             var $671 = (HEAP[$this1_i_i_i7_i_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i_i] >>> 0;
  18804.                                           } else {
  18805.                                             var $671 = 0;
  18806.                                           }
  18807.                                         } while (0);
  18808.                                         var $671;
  18809.                                         if ($671 & 1) {
  18810.                                           var $675 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_5IndexEE8sanitizeEPNS_21hb_sanitize_context_tE($this1_i5_i_i_i_i_i_i_i_i_i + 4 | 0, HEAP[$c_addr_i4_i_i_i_i_i_i_i_i_i]);
  18811.                                         } else {
  18812.                                           var $675 = 0;
  18813.                                         }
  18814.                                         var $675;
  18815.                                         if ($675 & 1) {
  18816.                                           var $690 = 1;
  18817.                                         } else {
  18818.                                           var $677 = HEAP[$c_addr_i_i_i_i_i_i_i_i_i];
  18819.                                           HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i_i503;
  18820.                                           HEAP[$c_addr_i_i_i_i_i_i_i_i_i_i] = $677;
  18821.                                           var $this1_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i];
  18822.                                           HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i_i_i];
  18823.                                           HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i_i_i;
  18824.                                           HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i] = 2;
  18825.                                           var $this1_i_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i];
  18826.                                           do {
  18827.                                             if (HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  18828.                                               HEAP[$retval_i_i_i_i_i_i_i_i_i_i_i] = 0;
  18829.                                               label = 504;
  18830.                                               break;
  18831.                                             } else {
  18832.                                               HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i];
  18833.                                               var $edit_count2_i_i_i_i_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i_i_i_i_i + 16 | 0;
  18834.                                               HEAP[$edit_count2_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i_i_i_i] + 1 | 0;
  18835.                                               var $tobool_i_i_i_i_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  18836.                                               HEAP[$retval_i_i_i_i_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i_i_i_i;
  18837.                                               if (!$tobool_i_i_i_i_i_i_i_i_i_i_i_i) {
  18838.                                                 label = 504;
  18839.                                                 break;
  18840.                                               }
  18841.                                               HEAP[$this_addr_i1_i_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i_i_i;
  18842.                                               HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i_i] = 0;
  18843.                                               var $686 = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i_i];
  18844.                                               HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i_i_i] | 0;
  18845.                                               HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i_i_i] = $686;
  18846.                                               var $this1_i_i_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i_i];
  18847.                                               HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  18848.                                               HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i_i_i] & 255;
  18849.                                               HEAP[$retval_i_i_i_i_i_i_i_i_i_i] = 1;
  18850.                                               break;
  18851.                                             }
  18852.                                           } while (0);
  18853.                                           if (label == 504) {
  18854.                                             label = 0;
  18855.                                             HEAP[$retval_i_i_i_i_i_i_i_i_i_i] = 0;
  18856.                                           }
  18857.                                           var $690 = HEAP[$retval_i_i_i_i_i_i_i_i_i_i];
  18858.                                         }
  18859.                                         var $690;
  18860.                                         HEAP[$retval_i_i_i_i_i_i_i_i_i] = $690 & 1;
  18861.                                       } else {
  18862.                                         HEAP[$retval_i_i_i_i_i_i_i_i_i] = 0;
  18863.                                       }
  18864.                                     } while (0);
  18865.                                     var $693 = HEAP[$retval_i_i_i_i_i_i_i_i_i];
  18866.                                   } else {
  18867.                                     var $693 = 0;
  18868.                                   }
  18869.                                   var $693;
  18870.                                   if (!($693 & 1)) {
  18871.                                     break;
  18872.                                   }
  18873.                                   HEAP[$i_i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i_i] + 1 | 0;
  18874.                                   if (HEAP[$i_i_i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i_i_i] >>> 0) {
  18875.                                     break L617;
  18876.                                   }
  18877.                                 }
  18878.                                 HEAP[$retval_i_i3_i_i_i_i_i] = 0;
  18879.                                 break L614;
  18880.                               }
  18881.                             } while (0);
  18882.                             HEAP[$retval_i_i3_i_i_i_i_i] = 1;
  18883.                           } else {
  18884.                             HEAP[$retval_i_i3_i_i_i_i_i] = 0;
  18885.                           }
  18886.                         } while (0);
  18887.                         var $701 = HEAP[$retval_i_i3_i_i_i_i_i];
  18888.                       } else {
  18889.                         var $701 = 0;
  18890.                       }
  18891.                       var $701;
  18892.                       if ($701 & 1) {
  18893.                         var $716 = 1;
  18894.                       } else {
  18895.                         var $703 = HEAP[$c_addr_i_i_i_i_i291];
  18896.                         HEAP[$this_addr_i_i_i_i_i_i286] = $this1_i_i_i_i_i463;
  18897.                         HEAP[$c_addr_i_i_i_i_i_i287] = $703;
  18898.                         var $this1_i_i_i_i_i_i510 = HEAP[$this_addr_i_i_i_i_i_i286];
  18899.                         HEAP[$this_addr_i_i_i_i_i_i_i281] = HEAP[$c_addr_i_i_i_i_i_i287];
  18900.                         HEAP[$base_addr_i_i_i_i_i_i_i282] = $this1_i_i_i_i_i_i510;
  18901.                         HEAP[$len_addr_i_i_i_i_i_i_i283] = 2;
  18902.                         var $this1_i_i_i_i_i_i_i511 = HEAP[$this_addr_i_i_i_i_i_i_i281];
  18903.                         do {
  18904.                           if (HEAP[$this1_i_i_i_i_i_i_i511 + 16 | 0] >>> 0 >= 100) {
  18905.                             HEAP[$retval_i_i_i_i_i_i_i280] = 0;
  18906.                             label = 518;
  18907.                             break;
  18908.                           } else {
  18909.                             HEAP[$p_i_i_i_i_i_i_i284] = HEAP[$base_addr_i_i_i_i_i_i_i282];
  18910.                             var $edit_count2_i_i_i_i_i_i_i516 = $this1_i_i_i_i_i_i_i511 + 16 | 0;
  18911.                             HEAP[$edit_count2_i_i_i_i_i_i_i516] = HEAP[$edit_count2_i_i_i_i_i_i_i516] + 1 | 0;
  18912.                             var $tobool_i_i_i_i_i_i_i_i521 = HEAP[$this1_i_i_i_i_i_i_i511 + 12 | 0] & 1 & 1;
  18913.                             HEAP[$retval_i_i_i_i_i_i_i280] = $tobool_i_i_i_i_i_i_i_i521;
  18914.                             if (!$tobool_i_i_i_i_i_i_i_i521) {
  18915.                               label = 518;
  18916.                               break;
  18917.                             }
  18918.                             HEAP[$this_addr_i1_i_i_i_i_i_i277] = $this1_i_i_i_i_i_i510;
  18919.                             HEAP[$i_addr_i_i_i_i_i_i_i278] = 0;
  18920.                             var $712 = HEAP[$i_addr_i_i_i_i_i_i_i278];
  18921.                             HEAP[$this_addr_i_i_i_i_i_i_i_i275] = HEAP[$this_addr_i1_i_i_i_i_i_i277] | 0;
  18922.                             HEAP[$i_addr_i_i_i_i_i_i_i_i276] = $712;
  18923.                             var $this1_i_i_i_i_i_i_i_i525 = HEAP[$this_addr_i_i_i_i_i_i_i_i275];
  18924.                             HEAP[$this1_i_i_i_i_i_i_i_i525 | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i276] & 65535) >> 8 & 255;
  18925.                             HEAP[$this1_i_i_i_i_i_i_i_i525 + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i276] & 255;
  18926.                             HEAP[$retval_i_i_i_i_i_i285] = 1;
  18927.                             break;
  18928.                           }
  18929.                         } while (0);
  18930.                         if (label == 518) {
  18931.                           label = 0;
  18932.                           HEAP[$retval_i_i_i_i_i_i285] = 0;
  18933.                         }
  18934.                         var $716 = HEAP[$retval_i_i_i_i_i_i285];
  18935.                       }
  18936.                       var $716;
  18937.                       HEAP[$retval_i_i_i_i_i289] = $716 & 1;
  18938.                     } else {
  18939.                       HEAP[$retval_i_i_i_i_i289] = 0;
  18940.                     }
  18941.                   } while (0);
  18942.                   var $719 = HEAP[$retval_i_i_i_i_i289];
  18943.                 } else {
  18944.                   var $719 = 0;
  18945.                 }
  18946.                 var $719;
  18947.                 if (!($719 & 1)) {
  18948.                   break;
  18949.                 }
  18950.                 HEAP[$i_i_i_i308] = HEAP[$i_i_i_i308] + 1 | 0;
  18951.                 if (HEAP[$i_i_i_i308] >>> 0 >= HEAP[$count_i_i_i307] >>> 0) {
  18952.                   break L558;
  18953.                 }
  18954.               }
  18955.               HEAP[$retval_i_i3_i303] = 0;
  18956.               break L555;
  18957.             }
  18958.           } while (0);
  18959.           HEAP[$retval_i_i3_i303] = 1;
  18960.         } else {
  18961.           HEAP[$retval_i_i3_i303] = 0;
  18962.         }
  18963.       } while (0);
  18964.       if (HEAP[$retval_i_i3_i303] & 1) {
  18965.         var $778 = 1;
  18966.       } else {
  18967.         var $736 = HEAP[$c_addr_i328];
  18968.         HEAP[$this_addr_i_i323] = $this1_i332;
  18969.         HEAP[$c_addr_i_i324] = $736;
  18970.         var $this1_i_i550 = HEAP[$this_addr_i_i323];
  18971.         HEAP[$this_addr_i_i_i318] = HEAP[$c_addr_i_i324];
  18972.         HEAP[$base_addr_i_i_i319] = $this1_i_i550;
  18973.         HEAP[$len_addr_i_i_i320] = 2;
  18974.         var $this1_i_i_i551 = HEAP[$this_addr_i_i_i318];
  18975.         do {
  18976.           if (HEAP[$this1_i_i_i551 + 16 | 0] >>> 0 >= 100) {
  18977.             HEAP[$retval_i_i_i317] = 0;
  18978.             label = 531;
  18979.             break;
  18980.           } else {
  18981.             HEAP[$p_i_i_i321] = HEAP[$base_addr_i_i_i319];
  18982.             var $edit_count2_i_i_i556 = $this1_i_i_i551 + 16 | 0;
  18983.             HEAP[$edit_count2_i_i_i556] = HEAP[$edit_count2_i_i_i556] + 1 | 0;
  18984.             var $tobool_i_i_i_i561 = HEAP[$this1_i_i_i551 + 12 | 0] & 1 & 1;
  18985.             HEAP[$retval_i_i_i317] = $tobool_i_i_i_i561;
  18986.             if (!$tobool_i_i_i_i561) {
  18987.               label = 531;
  18988.               break;
  18989.             }
  18990.             HEAP[$this_addr_i1_i_i314] = $this1_i_i550;
  18991.             HEAP[$i_addr_i_i_i315] = 0;
  18992.             var $765 = HEAP[$i_addr_i_i_i315];
  18993.             HEAP[$this_addr_i_i_i_i312] = HEAP[$this_addr_i1_i_i314] | 0;
  18994.             HEAP[$i_addr_i_i_i_i313] = $765;
  18995.             var $this1_i_i_i_i565 = HEAP[$this_addr_i_i_i_i312];
  18996.             HEAP[$this1_i_i_i_i565 | 0] = (HEAP[$i_addr_i_i_i_i313] & 65535) >> 8 & 255;
  18997.             HEAP[$this1_i_i_i_i565 + 1 | 0] = HEAP[$i_addr_i_i_i_i313] & 255;
  18998.             HEAP[$retval_i_i322] = 1;
  18999.             break;
  19000.           }
  19001.         } while (0);
  19002.         if (label == 531) {
  19003.           HEAP[$retval_i_i322] = 0;
  19004.         }
  19005.         var $778 = HEAP[$retval_i_i322];
  19006.       }
  19007.       var $778;
  19008.       var $tobool_i_i577 = $778 & 1;
  19009.       HEAP[$retval_i326] = $tobool_i_i577;
  19010.       var $780 = $tobool_i_i577;
  19011.     } else {
  19012.       var $tobool_i30_i348 = 0;
  19013.       HEAP[$retval_i326] = $tobool_i30_i348;
  19014.       var $780 = $tobool_i30_i348;
  19015.     }
  19016.   } while (0);
  19017.   var $780;
  19018.   if (!$780) {
  19019.     var $1586 = 0;
  19020.     var $1586;
  19021.     var $frombool_i = $1586 & 1;
  19022.     $v_addr_i = $frombool_i;
  19023.     var $1587 = $v_addr_i;
  19024.     var $tobool_i = $1587 & 1;
  19025.     STACKTOP = __stackBase__;
  19026.     return $tobool_i;
  19027.   }
  19028.   HEAP[$this_addr_i87] = $this1 + 6 | 0;
  19029.   HEAP[$c_addr_i88] = $c_addr;
  19030.   HEAP[$base_addr_i89] = $this1;
  19031.   var $this1_i92 = HEAP[$this_addr_i87];
  19032.   HEAP[$this_addr_i23_i41] = HEAP[$c_addr_i88];
  19033.   HEAP[$obj_addr_i_i42] = $this1_i92;
  19034.   var $800 = HEAP[$obj_addr_i_i42];
  19035.   HEAP[$this_addr_i_i19_i37] = HEAP[$this_addr_i23_i41];
  19036.   HEAP[$base_addr_i_i20_i38] = $800;
  19037.   HEAP[$len_addr_i_i21_i39] = 2;
  19038.   var $this1_i_i25_i94 = HEAP[$this_addr_i_i19_i37];
  19039.   HEAP[$p_i_i22_i40] = HEAP[$base_addr_i_i20_i38];
  19040.   do {
  19041.     if (HEAP[$this1_i_i25_i94 + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i40] >>> 0) {
  19042.       if (!(HEAP[$p_i_i22_i40] >>> 0 <= HEAP[$this1_i_i25_i94 + 8 | 0] >>> 0)) {
  19043.         var $813 = 0;
  19044.         break;
  19045.       }
  19046.       var $813 = (HEAP[$this1_i_i25_i94 + 8 | 0] - HEAP[$p_i_i22_i40] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i39] >>> 0;
  19047.     } else {
  19048.       var $813 = 0;
  19049.     }
  19050.   } while (0);
  19051.   var $813;
  19052.   do {
  19053.     if ($813 & 1) {
  19054.       HEAP[$this_addr_i32_i34] = $this1_i92;
  19055.       HEAP[$this_addr_i_i31_i33] = HEAP[$this_addr_i32_i34] | 0;
  19056.       var $this1_i_i34_i112 = HEAP[$this_addr_i_i31_i33];
  19057.       HEAP[$offset_i90] = ((HEAP[$this1_i_i34_i112 | 0] & 255) << 8) + (HEAP[$this1_i_i34_i112 + 1 | 0] & 255) & 65535;
  19058.       if ((HEAP[$offset_i90] | 0) == 0) {
  19059.         var $tobool_i39_i125 = 1;
  19060.         HEAP[$retval_i86] = $tobool_i39_i125;
  19061.         var $1290 = $tobool_i39_i125;
  19062.         break;
  19063.       }
  19064.       var $832 = HEAP[$offset_i90];
  19065.       HEAP[$P_addr_i_i31] = HEAP[$base_addr_i89];
  19066.       HEAP[$offset_addr_i_i32] = $832;
  19067.       HEAP[$obj_i91] = HEAP[$P_addr_i_i31] + HEAP[$offset_addr_i_i32] | 0;
  19068.       var $841 = HEAP[$c_addr_i88];
  19069.       HEAP[$this_addr_i6_i70] = HEAP[$obj_i91];
  19070.       HEAP[$c_addr_i7_i71] = $841;
  19071.       var $this1_i8_i128 = HEAP[$this_addr_i6_i70];
  19072.       var $846 = HEAP[$c_addr_i7_i71];
  19073.       HEAP[$this_addr_i_i4_i64] = $this1_i8_i128;
  19074.       HEAP[$c_addr_i_i_i65] = $846;
  19075.       HEAP[$base_addr_i_i5_i66] = $this1_i8_i128;
  19076.       var $this1_i_i9_i129 = HEAP[$this_addr_i_i4_i64];
  19077.       var $854 = HEAP[$c_addr_i_i_i65];
  19078.       HEAP[$this_addr_i11_i_i_i] = $this1_i_i9_i129;
  19079.       HEAP[$c_addr_i12_i_i_i] = $854;
  19080.       var $this1_i13_i_i_i = HEAP[$this_addr_i11_i_i_i];
  19081.       HEAP[$this_addr_i2_i_i_i_i44] = HEAP[$c_addr_i12_i_i_i];
  19082.       HEAP[$obj_addr_i_i7_i_i_i] = $this1_i13_i_i_i;
  19083.       var $861 = HEAP[$obj_addr_i_i7_i_i_i];
  19084.       HEAP[$this_addr_i_i1_i_i_i_i43] = HEAP[$this_addr_i2_i_i_i_i44];
  19085.       HEAP[$base_addr_i_i_i4_i_i_i] = $861;
  19086.       HEAP[$len_addr_i_i_i5_i_i_i] = 2;
  19087.       var $this1_i_i4_i_i_i_i131 = HEAP[$this_addr_i_i1_i_i_i_i43];
  19088.       HEAP[$p_i_i_i6_i_i_i] = HEAP[$base_addr_i_i_i4_i_i_i];
  19089.       do {
  19090.         if (HEAP[$this1_i_i4_i_i_i_i131 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i6_i_i_i] >>> 0) {
  19091.           if (!(HEAP[$p_i_i_i6_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i131 + 8 | 0] >>> 0)) {
  19092.             var $874 = 0;
  19093.             break;
  19094.           }
  19095.           var $874 = (HEAP[$this1_i_i4_i_i_i_i131 + 8 | 0] - HEAP[$p_i_i_i6_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i5_i_i_i] >>> 0;
  19096.         } else {
  19097.           var $874 = 0;
  19098.         }
  19099.       } while (0);
  19100.       var $874;
  19101.       if ($874 & 1) {
  19102.         var $882 = HEAP[$c_addr_i12_i_i_i];
  19103.         HEAP[$this_addr_i_i9_i_i_i] = $this1_i13_i_i_i | 0;
  19104.         HEAP[$this_addr_i_i_i8_i_i_i] = HEAP[$this_addr_i_i9_i_i_i] | 0;
  19105.         var $this1_i_i_i29_i_i_i = HEAP[$this_addr_i_i_i8_i_i_i];
  19106.         var $890 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($882, $this1_i13_i_i_i, 6, ((HEAP[$this1_i_i_i29_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i29_i_i_i + 1 | 0] & 255) & 65535);
  19107.       } else {
  19108.         var $890 = 0;
  19109.       }
  19110.       var $890;
  19111.       L710 : do {
  19112.         if ($890 & 1) {
  19113.           HEAP[$this_addr_i44_i_i_i] = $this1_i_i9_i129 | 0;
  19114.           HEAP[$this_addr_i_i43_i_i_i] = HEAP[$this_addr_i44_i_i_i] | 0;
  19115.           var $this1_i_i46_i_i_i = HEAP[$this_addr_i_i43_i_i_i];
  19116.           HEAP[$count_i_i_i67] = ((HEAP[$this1_i_i46_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i46_i_i_i + 1 | 0] & 255) & 65535;
  19117.           HEAP[$i_i_i_i68] = 0;
  19118.           L713 : do {
  19119.             if (HEAP[$i_i_i_i68] >>> 0 < HEAP[$count_i_i_i67] >>> 0) {
  19120.               var $array_i_i_i145 = $this1_i_i9_i129 + 2 | 0;
  19121.               var $tag_i_i_i_i = $closure_i_i_i_i | 0;
  19122.               var $list_base_i_i_i_i = $closure_i_i_i_i + 4 | 0;
  19123.               var $969 = $orig_offset_i_i_i_i_i_i;
  19124.               var $970 = $orig_offset_i_i_i_i_i_i;
  19125.               var $979 = $orig_offset_i_i_i_i_i_i;
  19126.               var $984 = $new_offset_i_i_i_i_i_i;
  19127.               var $993 = $new_offset_i_i_i_i_i_i;
  19128.               while (1) {
  19129.                 var $1085 = HEAP[$c_addr_i_i_i65];
  19130.                 var $1086 = HEAP[$base_addr_i_i5_i66];
  19131.                 HEAP[$this_addr_i_i_i1_i58] = $array_i_i_i145 + (HEAP[$i_i_i_i68] * 6 & -1) | 0;
  19132.                 HEAP[$c_addr_i_i_i_i59] = $1085;
  19133.                 HEAP[$base_addr_i_i_i_i60] = $1086;
  19134.                 var $this1_i_i_i14_i = HEAP[$this_addr_i_i_i1_i58];
  19135.                 HEAP[$this_addr_i3_i_i_i_i] = $this1_i_i_i14_i | 0;
  19136.                 HEAP[$this_addr_i_i2_i_i_i_i] = HEAP[$this_addr_i3_i_i_i_i] | 0;
  19137.                 var $this1_i_i5_i_i_i_i = HEAP[$this_addr_i_i2_i_i_i_i];
  19138.                 HEAP[$tag_i_i_i_i] = ((HEAP[$this1_i_i5_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i5_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i5_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i_i + 3 | 0] & 255) | 0;
  19139.                 HEAP[$list_base_i_i_i_i] = HEAP[$base_addr_i_i_i_i60];
  19140.                 HEAP[$this_addr_i10_i_i_i_i] = HEAP[$c_addr_i_i_i_i59];
  19141.                 HEAP[$obj_addr_i_i_i_i_i48] = $this1_i_i_i14_i;
  19142.                 var $1095 = HEAP[$obj_addr_i_i_i_i_i48];
  19143.                 HEAP[$this_addr_i_i9_i_i_i_i] = HEAP[$this_addr_i10_i_i_i_i];
  19144.                 HEAP[$base_addr_i_i_i_i_i_i45] = $1095;
  19145.                 HEAP[$len_addr_i_i_i_i_i_i46] = 6;
  19146.                 var $this1_i_i12_i_i_i_i = HEAP[$this_addr_i_i9_i_i_i_i];
  19147.                 HEAP[$p_i_i_i_i_i_i47] = HEAP[$base_addr_i_i_i_i_i_i45];
  19148.                 do {
  19149.                   if (HEAP[$this1_i_i12_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i47] >>> 0) {
  19150.                     if (!(HEAP[$p_i_i_i_i_i_i47] >>> 0 <= HEAP[$this1_i_i12_i_i_i_i + 8 | 0] >>> 0)) {
  19151.                       var $1104 = 0;
  19152.                       break;
  19153.                     }
  19154.                     var $1104 = (HEAP[$this1_i_i12_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i47] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i46] >>> 0;
  19155.                   } else {
  19156.                     var $1104 = 0;
  19157.                   }
  19158.                 } while (0);
  19159.                 var $1104;
  19160.                 if ($1104 & 1) {
  19161.                   var $1107 = HEAP[$c_addr_i_i_i_i59];
  19162.                   var $1108 = HEAP[$base_addr_i_i_i_i60];
  19163.                   HEAP[$this_addr_i_i_i_i_i55] = $this1_i_i_i14_i + 4 | 0;
  19164.                   HEAP[$c_addr_i_i_i_i_i56] = $1107;
  19165.                   HEAP[$base_addr_i_i_i_i_i] = $1108;
  19166.                   HEAP[$user_data_addr_i_i_i_i_i] = $closure_i_i_i_i;
  19167.                   var $this1_i_i_i_i_i165 = HEAP[$this_addr_i_i_i_i_i55];
  19168.                   HEAP[$this_addr_i31_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i56];
  19169.                   HEAP[$obj_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i165;
  19170.                   var $1111 = HEAP[$obj_addr_i_i_i_i_i_i];
  19171.                   HEAP[$this_addr_i_i27_i_i_i_i_i] = HEAP[$this_addr_i31_i_i_i_i_i];
  19172.                   HEAP[$base_addr_i_i28_i_i_i_i_i] = $1111;
  19173.                   HEAP[$len_addr_i_i29_i_i_i_i_i] = 2;
  19174.                   var $this1_i_i33_i_i_i_i_i = HEAP[$this_addr_i_i27_i_i_i_i_i];
  19175.                   HEAP[$p_i_i30_i_i_i_i_i] = HEAP[$base_addr_i_i28_i_i_i_i_i];
  19176.                   do {
  19177.                     if (HEAP[$this1_i_i33_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i30_i_i_i_i_i] >>> 0) {
  19178.                       if (!(HEAP[$p_i_i30_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i33_i_i_i_i_i + 8 | 0] >>> 0)) {
  19179.                         var $1120 = 0;
  19180.                         break;
  19181.                       }
  19182.                       var $1120 = (HEAP[$this1_i_i33_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i30_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i29_i_i_i_i_i] >>> 0;
  19183.                     } else {
  19184.                       var $1120 = 0;
  19185.                     }
  19186.                   } while (0);
  19187.                   var $1120;
  19188.                   do {
  19189.                     if ($1120 & 1) {
  19190.                       HEAP[$this_addr_i42_i_i_i_i_i] = $this1_i_i_i_i_i165;
  19191.                       HEAP[$this_addr_i_i41_i_i_i_i_i] = HEAP[$this_addr_i42_i_i_i_i_i] | 0;
  19192.                       var $this1_i_i44_i_i_i_i_i = HEAP[$this_addr_i_i41_i_i_i_i_i];
  19193.                       HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i44_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i44_i_i_i_i_i + 1 | 0] & 255) & 65535;
  19194.                       if ((HEAP[$offset_i_i_i_i_i] | 0) == 0) {
  19195.                         HEAP[$retval_i_i_i_i_i54] = 1;
  19196.                         break;
  19197.                       }
  19198.                       var $1129 = HEAP[$offset_i_i_i_i_i];
  19199.                       HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  19200.                       HEAP[$offset_addr_i_i_i_i_i_i] = $1129;
  19201.                       HEAP[$obj_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  19202.                       var $1134 = HEAP[$c_addr_i_i_i_i_i56];
  19203.                       var $1135 = HEAP[$user_data_addr_i_i_i_i_i];
  19204.                       HEAP[$this_addr_i7_i_i_i_i_i] = HEAP[$obj_i_i_i_i_i];
  19205.                       HEAP[$c_addr_i8_i_i_i_i_i] = $1134;
  19206.                       HEAP[$closure_addr_i_i_i_i_i_i] = $1135;
  19207.                       var $this1_i9_i_i_i_i_i = HEAP[$this_addr_i7_i_i_i_i_i];
  19208.                       HEAP[$this_addr_i69_i_i_i_i_i_i] = HEAP[$c_addr_i8_i_i_i_i_i];
  19209.                       HEAP[$obj_addr_i_i_i_i_i_i_i] = $this1_i9_i_i_i_i_i;
  19210.                       var $1138 = HEAP[$obj_addr_i_i_i_i_i_i_i];
  19211.                       HEAP[$this_addr_i_i65_i_i_i_i_i_i] = HEAP[$this_addr_i69_i_i_i_i_i_i];
  19212.                       HEAP[$base_addr_i_i66_i_i_i_i_i_i] = $1138;
  19213.                       HEAP[$len_addr_i_i67_i_i_i_i_i_i] = 4;
  19214.                       var $this1_i_i71_i_i_i_i_i_i = HEAP[$this_addr_i_i65_i_i_i_i_i_i];
  19215.                       HEAP[$p_i_i68_i_i_i_i_i_i] = HEAP[$base_addr_i_i66_i_i_i_i_i_i];
  19216.                       do {
  19217.                         if (HEAP[$this1_i_i71_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i68_i_i_i_i_i_i] >>> 0) {
  19218.                           if (!(HEAP[$p_i_i68_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i71_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  19219.                             var $1147 = 0;
  19220.                             break;
  19221.                           }
  19222.                           var $1147 = (HEAP[$this1_i_i71_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i68_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i67_i_i_i_i_i_i] >>> 0;
  19223.                         } else {
  19224.                           var $1147 = 0;
  19225.                         }
  19226.                       } while (0);
  19227.                       var $1147;
  19228.                       L737 : do {
  19229.                         if ($1147 & 1) {
  19230.                           if (!__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_5IndexEE8sanitizeEPNS_21hb_sanitize_context_tE($this1_i9_i_i_i_i_i + 2 | 0, HEAP[$c_addr_i8_i_i_i_i_i])) {
  19231.                             label = 567;
  19232.                             break;
  19233.                           }
  19234.                           var $1153 = $this1_i9_i_i_i_i_i | 0;
  19235.                           HEAP[$969] = HEAP[$1153];
  19236.                           HEAP[$969 + 1] = HEAP[$1153 + 1];
  19237.                           if ((HEAP[$closure_addr_i_i_i_i_i_i] | 0) != 0) {
  19238.                             var $cond_i_i_i_i_i_i = HEAP[HEAP[$closure_addr_i_i_i_i_i_i] | 0];
  19239.                           } else {
  19240.                             var $cond_i_i_i_i_i_i = 0;
  19241.                           }
  19242.                           var $cond_i_i_i_i_i_i;
  19243.                           if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_13FeatureParamsEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_($this1_i9_i_i_i_i_i | 0, HEAP[$c_addr_i8_i_i_i_i_i], $this1_i9_i_i_i_i_i, $cond_i_i_i_i_i_i)) {
  19244.                             var $tobool_i63_i_i_i_i_i_i = 0;
  19245.                             HEAP[$retval_i6_i_i_i_i_i] = $tobool_i63_i_i_i_i_i_i;
  19246.                             var $1212 = $tobool_i63_i_i_i_i_i_i;
  19247.                             break;
  19248.                           }
  19249.                           HEAP[$this_addr_i49_i_i_i_i_i_i] = $970;
  19250.                           HEAP[$this_addr_i_i48_i_i_i_i_i_i] = HEAP[$this_addr_i49_i_i_i_i_i_i] | 0;
  19251.                           var $this1_i_i52_i_i_i_i_i_i = HEAP[$this_addr_i_i48_i_i_i_i_i_i];
  19252.                           if ((((HEAP[$this1_i_i52_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i52_i_i_i_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 == 0) {
  19253.                             var $tobool_i47_i_i_i_i_i_i = 1;
  19254.                             HEAP[$retval_i6_i_i_i_i_i] = $tobool_i47_i_i_i_i_i_i;
  19255.                             var $1212 = $tobool_i47_i_i_i_i_i_i;
  19256.                             break;
  19257.                           }
  19258.                           HEAP[$this_addr_i33_i_i_i_i_i_i] = $this1_i9_i_i_i_i_i | 0;
  19259.                           HEAP[$this_addr_i_i32_i_i_i_i_i_i] = HEAP[$this_addr_i33_i_i_i_i_i_i] | 0;
  19260.                           var $this1_i_i36_i_i_i_i_i_i = HEAP[$this_addr_i_i32_i_i_i_i_i_i];
  19261.                           L749 : do {
  19262.                             if ((((HEAP[$this1_i_i36_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i36_i_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 0) {
  19263.                               if ((HEAP[$closure_addr_i_i_i_i_i_i] | 0) == 0) {
  19264.                                 break;
  19265.                               }
  19266.                               if ((HEAP[HEAP[$closure_addr_i_i_i_i_i_i] | 0] | 0) != 1936292453) {
  19267.                                 break;
  19268.                               }
  19269.                               if ((HEAP[HEAP[$closure_addr_i_i_i_i_i_i] + 4 | 0] | 0) == 0) {
  19270.                                 break;
  19271.                               }
  19272.                               if (HEAP[HEAP[$closure_addr_i_i_i_i_i_i] + 4 | 0] >>> 0 >= $this1_i9_i_i_i_i_i >>> 0) {
  19273.                                 break;
  19274.                               }
  19275.                               HEAP[$this_addr_i19_i_i_i_i_i_i] = $979;
  19276.                               HEAP[$this_addr_i_i18_i_i_i_i_i_i] = HEAP[$this_addr_i19_i_i_i_i_i_i] | 0;
  19277.                               var $this1_i_i22_i_i_i_i_i_i = HEAP[$this_addr_i_i18_i_i_i_i_i_i];
  19278.                               HEAP[$new_offset_int_i_i_i_i_i_i] = (((HEAP[$this1_i_i22_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i22_i_i_i_i_i_i + 1 | 0] & 255) & 65535) + -$this1_i9_i_i_i_i_i + HEAP[HEAP[$closure_addr_i_i_i_i_i_i] + 4 | 0] | 0;
  19279.                               var $conv31_i_i_i_i_i_i = HEAP[$new_offset_int_i_i_i_i_i_i] & 65535;
  19280.                               HEAP[$this_addr_i11_i_i_i_i_i_i] = $984;
  19281.                               HEAP[$i_addr_i_i1_i_i_i_i_i] = $conv31_i_i_i_i_i_i;
  19282.                               var $1181 = HEAP[$i_addr_i_i1_i_i_i_i_i];
  19283.                               HEAP[$this_addr_i_i9_i_i_i_i_i_i] = HEAP[$this_addr_i11_i_i_i_i_i_i] | 0;
  19284.                               HEAP[$i_addr_i_i10_i_i_i_i_i_i] = $1181;
  19285.                               var $this1_i_i14_i_i_i_i_i_i = HEAP[$this_addr_i_i9_i_i_i_i_i_i];
  19286.                               HEAP[$this1_i_i14_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i10_i_i_i_i_i_i] & 65535) >> 8 & 255;
  19287.                               HEAP[$this1_i_i14_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i10_i_i_i_i_i_i] & 255;
  19288.                               HEAP[$this_addr_i5_i_i_i_i_i_i] = $993;
  19289.                               HEAP[$this_addr_i_i4_i_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i_i] | 0;
  19290.                               var $this1_i_i7_i_i_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i_i_i];
  19291.                               if ((((HEAP[$this1_i_i7_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) != (HEAP[$new_offset_int_i_i_i_i_i_i] | 0)) {
  19292.                                 break;
  19293.                               }
  19294.                               var $1188 = HEAP[$c_addr_i8_i_i_i_i_i];
  19295.                               HEAP[$this_addr_i_i5_i_i_i_i_i] = $this1_i9_i_i_i_i_i | 0;
  19296.                               HEAP[$c_addr_i_i_i_i_i_i_i] = $1188;
  19297.                               HEAP[$v_addr_i3_i_i_i_i_i_i] = $new_offset_i_i_i_i_i_i;
  19298.                               var $this1_i_i21_i_i_i_i_i = HEAP[$this_addr_i_i5_i_i_i_i_i];
  19299.                               HEAP[$this_addr_i_i_i3_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  19300.                               HEAP[$base_addr_i_i_i_i_i_i_i_i] = $this1_i_i21_i_i_i_i_i;
  19301.                               HEAP[$len_addr_i_i_i_i_i_i_i_i] = 2;
  19302.                               var $this1_i_i_i22_i_i_i_i_i = HEAP[$this_addr_i_i_i3_i_i_i_i_i];
  19303.                               do {
  19304.                                 if (HEAP[$this1_i_i_i22_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  19305.                                   HEAP[$retval_i_i_i_i_i_i_i_i] = 0;
  19306.                                 } else {
  19307.                                   HEAP[$p_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i];
  19308.                                   var $edit_count2_i_i_i_i_i_i_i_i = $this1_i_i_i22_i_i_i_i_i + 16 | 0;
  19309.                                   HEAP[$edit_count2_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i] + 1 | 0;
  19310.                                   var $tobool_i_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i22_i_i_i_i_i + 12 | 0] & 1 & 1;
  19311.                                   HEAP[$retval_i_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i;
  19312.                                   if (!$tobool_i_i_i_i_i_i_i_i_i) {
  19313.                                     break;
  19314.                                   }
  19315.                                   HEAP[$this_addr_i4_i_i_i_i_i_i_i] = HEAP[$v_addr_i3_i_i_i_i_i_i];
  19316.                                   HEAP[$this_addr_i_i3_i_i_i_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i_i_i_i] | 0;
  19317.                                   var $this1_i_i7_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i];
  19318.                                   var $conv5_i_i_i_i_i_i_i_i_i = ((HEAP[$this1_i_i7_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  19319.                                   HEAP[$this_addr_i1_i_i_i_i_i_i_i] = $this1_i_i21_i_i_i_i_i;
  19320.                                   HEAP[$i_addr_i_i_i2_i_i_i_i_i] = $conv5_i_i_i_i_i_i_i_i_i;
  19321.                                   var $1201 = HEAP[$i_addr_i_i_i2_i_i_i_i_i];
  19322.                                   HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i] | 0;
  19323.                                   HEAP[$i_addr_i_i_i_i_i_i_i_i_i] = $1201;
  19324.                                   var $this1_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i];
  19325.                                   HEAP[$this1_i_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  19326.                                   HEAP[$this1_i_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i] & 255;
  19327.                                   HEAP[$retval_i_i4_i_i_i_i_i] = 1;
  19328.                                   if ((HEAP[$closure_addr_i_i_i_i_i_i] | 0) != 0) {
  19329.                                     var $cond45_i_i_i_i_i_i = HEAP[HEAP[$closure_addr_i_i_i_i_i_i] | 0];
  19330.                                   } else {
  19331.                                     var $cond45_i_i_i_i_i_i = 0;
  19332.                                   }
  19333.                                   var $cond45_i_i_i_i_i_i;
  19334.                                   if (__ZN2OT15GenericOffsetToINS_6OffsetENS_13FeatureParamsEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_($this1_i9_i_i_i_i_i | 0, HEAP[$c_addr_i8_i_i_i_i_i], $this1_i9_i_i_i_i_i, $cond45_i_i_i_i_i_i)) {
  19335.                                     break L749;
  19336.                                   }
  19337.                                   var $tobool_i2_i_i_i_i_i_i = 0;
  19338.                                   HEAP[$retval_i6_i_i_i_i_i] = $tobool_i2_i_i_i_i_i_i;
  19339.                                   var $1212 = $tobool_i2_i_i_i_i_i_i;
  19340.                                   break L737;
  19341.                                 }
  19342.                               } while (0);
  19343.                               HEAP[$retval_i_i4_i_i_i_i_i] = 0;
  19344.                             }
  19345.                           } while (0);
  19346.                           var $tobool_i_i_i_i_i_i_i178 = 1;
  19347.                           HEAP[$retval_i6_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i178;
  19348.                           var $1212 = $tobool_i_i_i_i_i_i_i178;
  19349.                           break;
  19350.                         } else {
  19351.                           label = 567;
  19352.                         }
  19353.                       } while (0);
  19354.                       if (label == 567) {
  19355.                         label = 0;
  19356.                         var $tobool_i76_i_i_i_i_i_i = 0;
  19357.                         HEAP[$retval_i6_i_i_i_i_i] = $tobool_i76_i_i_i_i_i_i;
  19358.                         var $1212 = $tobool_i76_i_i_i_i_i_i;
  19359.                       }
  19360.                       var $1212;
  19361.                       if ($1212) {
  19362.                         var $1226 = 1;
  19363.                       } else {
  19364.                         var $1213 = HEAP[$c_addr_i_i_i_i_i56];
  19365.                         HEAP[$this_addr_i_i_i_i_i_i53] = $this1_i_i_i_i_i165;
  19366.                         HEAP[$c_addr_i_i_i_i_i_i] = $1213;
  19367.                         var $this1_i_i_i_i_i_i179 = HEAP[$this_addr_i_i_i_i_i_i53];
  19368.                         HEAP[$this_addr_i_i_i_i_i_i_i51] = HEAP[$c_addr_i_i_i_i_i_i];
  19369.                         HEAP[$base_addr_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i179;
  19370.                         HEAP[$len_addr_i_i_i_i_i_i_i] = 2;
  19371.                         var $this1_i_i_i_i_i_i_i180 = HEAP[$this_addr_i_i_i_i_i_i_i51];
  19372.                         do {
  19373.                           if (HEAP[$this1_i_i_i_i_i_i_i180 + 16 | 0] >>> 0 >= 100) {
  19374.                             HEAP[$retval_i_i_i_i_i_i_i] = 0;
  19375.                             label = 594;
  19376.                             break;
  19377.                           } else {
  19378.                             HEAP[$p_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  19379.                             var $edit_count2_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i180 + 16 | 0;
  19380.                             HEAP[$edit_count2_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i] + 1 | 0;
  19381.                             var $tobool_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i_i180 + 12 | 0] & 1 & 1;
  19382.                             HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i;
  19383.                             if (!$tobool_i_i_i_i_i_i_i_i) {
  19384.                               label = 594;
  19385.                               break;
  19386.                             }
  19387.                             HEAP[$this_addr_i1_i_i_i_i_i_i] = $this1_i_i_i_i_i_i179;
  19388.                             HEAP[$i_addr_i_i_i_i_i_i_i50] = 0;
  19389.                             var $1222 = HEAP[$i_addr_i_i_i_i_i_i_i50];
  19390.                             HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i] | 0;
  19391.                             HEAP[$i_addr_i_i_i_i_i_i_i_i] = $1222;
  19392.                             var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  19393.                             HEAP[$this1_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  19394.                             HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i] & 255;
  19395.                             HEAP[$retval_i_i_i_i_i_i52] = 1;
  19396.                             break;
  19397.                           }
  19398.                         } while (0);
  19399.                         if (label == 594) {
  19400.                           label = 0;
  19401.                           HEAP[$retval_i_i_i_i_i_i52] = 0;
  19402.                         }
  19403.                         var $1226 = HEAP[$retval_i_i_i_i_i_i52];
  19404.                       }
  19405.                       var $1226;
  19406.                       HEAP[$retval_i_i_i_i_i54] = $1226 & 1;
  19407.                     } else {
  19408.                       HEAP[$retval_i_i_i_i_i54] = 0;
  19409.                     }
  19410.                   } while (0);
  19411.                   var $1229 = HEAP[$retval_i_i_i_i_i54];
  19412.                 } else {
  19413.                   var $1229 = 0;
  19414.                 }
  19415.                 var $1229;
  19416.                 if (!($1229 & 1)) {
  19417.                   break;
  19418.                 }
  19419.                 HEAP[$i_i_i_i68] = HEAP[$i_i_i_i68] + 1 | 0;
  19420.                 if (HEAP[$i_i_i_i68] >>> 0 >= HEAP[$count_i_i_i67] >>> 0) {
  19421.                   break L713;
  19422.                 }
  19423.               }
  19424.               HEAP[$retval_i_i3_i63] = 0;
  19425.               break L710;
  19426.             }
  19427.           } while (0);
  19428.           HEAP[$retval_i_i3_i63] = 1;
  19429.         } else {
  19430.           HEAP[$retval_i_i3_i63] = 0;
  19431.         }
  19432.       } while (0);
  19433.       if (HEAP[$retval_i_i3_i63] & 1) {
  19434.         var $1288 = 1;
  19435.       } else {
  19436.         var $1246 = HEAP[$c_addr_i88];
  19437.         HEAP[$this_addr_i_i83] = $this1_i92;
  19438.         HEAP[$c_addr_i_i84] = $1246;
  19439.         var $this1_i_i195 = HEAP[$this_addr_i_i83];
  19440.         HEAP[$this_addr_i_i_i78] = HEAP[$c_addr_i_i84];
  19441.         HEAP[$base_addr_i_i_i79] = $this1_i_i195;
  19442.         HEAP[$len_addr_i_i_i80] = 2;
  19443.         var $this1_i_i_i196 = HEAP[$this_addr_i_i_i78];
  19444.         do {
  19445.           if (HEAP[$this1_i_i_i196 + 16 | 0] >>> 0 >= 100) {
  19446.             HEAP[$retval_i_i_i77] = 0;
  19447.             label = 607;
  19448.             break;
  19449.           } else {
  19450.             HEAP[$p_i_i_i81] = HEAP[$base_addr_i_i_i79];
  19451.             var $edit_count2_i_i_i201 = $this1_i_i_i196 + 16 | 0;
  19452.             HEAP[$edit_count2_i_i_i201] = HEAP[$edit_count2_i_i_i201] + 1 | 0;
  19453.             var $tobool_i_i_i_i206 = HEAP[$this1_i_i_i196 + 12 | 0] & 1 & 1;
  19454.             HEAP[$retval_i_i_i77] = $tobool_i_i_i_i206;
  19455.             if (!$tobool_i_i_i_i206) {
  19456.               label = 607;
  19457.               break;
  19458.             }
  19459.             HEAP[$this_addr_i1_i_i74] = $this1_i_i195;
  19460.             HEAP[$i_addr_i_i_i75] = 0;
  19461.             var $1275 = HEAP[$i_addr_i_i_i75];
  19462.             HEAP[$this_addr_i_i_i_i72] = HEAP[$this_addr_i1_i_i74] | 0;
  19463.             HEAP[$i_addr_i_i_i_i73] = $1275;
  19464.             var $this1_i_i_i_i210 = HEAP[$this_addr_i_i_i_i72];
  19465.             HEAP[$this1_i_i_i_i210 | 0] = (HEAP[$i_addr_i_i_i_i73] & 65535) >> 8 & 255;
  19466.             HEAP[$this1_i_i_i_i210 + 1 | 0] = HEAP[$i_addr_i_i_i_i73] & 255;
  19467.             HEAP[$retval_i_i82] = 1;
  19468.             break;
  19469.           }
  19470.         } while (0);
  19471.         if (label == 607) {
  19472.           HEAP[$retval_i_i82] = 0;
  19473.         }
  19474.         var $1288 = HEAP[$retval_i_i82];
  19475.       }
  19476.       var $1288;
  19477.       var $tobool_i_i222 = $1288 & 1;
  19478.       HEAP[$retval_i86] = $tobool_i_i222;
  19479.       var $1290 = $tobool_i_i222;
  19480.     } else {
  19481.       var $tobool_i30_i108 = 0;
  19482.       HEAP[$retval_i86] = $tobool_i30_i108;
  19483.       var $1290 = $tobool_i30_i108;
  19484.     }
  19485.   } while (0);
  19486.   var $1290;
  19487.   if (!$1290) {
  19488.     var $1586 = 0;
  19489.     var $1586;
  19490.     var $frombool_i = $1586 & 1;
  19491.     $v_addr_i = $frombool_i;
  19492.     var $1587 = $v_addr_i;
  19493.     var $tobool_i = $1587 & 1;
  19494.     STACKTOP = __stackBase__;
  19495.     return $tobool_i;
  19496.   }
  19497.   HEAP[$this_addr_i] = $this1 + 8 | 0;
  19498.   HEAP[$c_addr_i] = $c_addr;
  19499.   HEAP[$base_addr_i] = $this1;
  19500.   var $this1_i = HEAP[$this_addr_i];
  19501.   HEAP[$this_addr_i23_i] = HEAP[$c_addr_i];
  19502.   HEAP[$obj_addr_i_i] = $this1_i;
  19503.   var $1310 = HEAP[$obj_addr_i_i];
  19504.   HEAP[$this_addr_i_i19_i] = HEAP[$this_addr_i23_i];
  19505.   HEAP[$base_addr_i_i20_i] = $1310;
  19506.   HEAP[$len_addr_i_i21_i] = 2;
  19507.   var $this1_i_i25_i = HEAP[$this_addr_i_i19_i];
  19508.   HEAP[$p_i_i22_i] = HEAP[$base_addr_i_i20_i];
  19509.   do {
  19510.     if (HEAP[$this1_i_i25_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i] >>> 0) {
  19511.       if (!(HEAP[$p_i_i22_i] >>> 0 <= HEAP[$this1_i_i25_i + 8 | 0] >>> 0)) {
  19512.         var $1323 = 0;
  19513.         break;
  19514.       }
  19515.       var $1323 = (HEAP[$this1_i_i25_i + 8 | 0] - HEAP[$p_i_i22_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i] >>> 0;
  19516.     } else {
  19517.       var $1323 = 0;
  19518.     }
  19519.   } while (0);
  19520.   var $1323;
  19521.   do {
  19522.     if ($1323 & 1) {
  19523.       HEAP[$this_addr_i32_i] = $this1_i;
  19524.       HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  19525.       var $this1_i_i34_i = HEAP[$this_addr_i_i31_i];
  19526.       HEAP[$offset_i] = ((HEAP[$this1_i_i34_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i + 1 | 0] & 255) & 65535;
  19527.       if ((HEAP[$offset_i] | 0) == 0) {
  19528.         HEAP[$retval_i] = 1;
  19529.         break;
  19530.       }
  19531.       var $1342 = HEAP[$offset_i];
  19532.       HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  19533.       HEAP[$offset_addr_i_i] = $1342;
  19534.       HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  19535.       var $1351 = HEAP[$c_addr_i];
  19536.       HEAP[$this_addr_i6_i] = HEAP[$obj_i];
  19537.       HEAP[$c_addr_i7_i] = $1351;
  19538.       var $this1_i8_i = HEAP[$this_addr_i6_i];
  19539.       var $1356 = HEAP[$c_addr_i7_i];
  19540.       HEAP[$this_addr_i_i4_i] = $this1_i8_i;
  19541.       HEAP[$c_addr_i_i_i] = $1356;
  19542.       HEAP[$base_addr_i_i5_i] = $this1_i8_i;
  19543.       var $this1_i_i9_i = HEAP[$this_addr_i_i4_i];
  19544.       var $1364 = HEAP[$c_addr_i_i_i];
  19545.       HEAP[$this_addr_i19_i_i_i] = $this1_i_i9_i;
  19546.       HEAP[$c_addr_i20_i_i_i] = $1364;
  19547.       var $this1_i21_i_i_i = HEAP[$this_addr_i19_i_i_i];
  19548.       HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i20_i_i_i];
  19549.       HEAP[$obj_addr_i_i15_i_i_i] = $this1_i21_i_i_i;
  19550.       var $1371 = HEAP[$obj_addr_i_i15_i_i_i];
  19551.       HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  19552.       HEAP[$base_addr_i_i_i12_i_i_i] = $1371;
  19553.       HEAP[$len_addr_i_i_i13_i_i_i] = 2;
  19554.       var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  19555.       HEAP[$p_i_i_i14_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i];
  19556.       do {
  19557.         if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i] >>> 0) {
  19558.           if (!(HEAP[$p_i_i_i14_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  19559.             var $1384 = 0;
  19560.             break;
  19561.           }
  19562.           var $1384 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i] >>> 0;
  19563.         } else {
  19564.           var $1384 = 0;
  19565.         }
  19566.       } while (0);
  19567.       var $1384;
  19568.       if ($1384 & 1) {
  19569.         var $1392 = HEAP[$c_addr_i20_i_i_i];
  19570.         HEAP[$this_addr_i_i17_i_i_i] = $this1_i21_i_i_i | 0;
  19571.         HEAP[$this_addr_i_i_i16_i_i_i] = HEAP[$this_addr_i_i17_i_i_i] | 0;
  19572.         var $this1_i_i_i37_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i];
  19573.         var $1400 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($1392, $this1_i21_i_i_i, 2, ((HEAP[$this1_i_i_i37_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i + 1 | 0] & 255) & 65535);
  19574.       } else {
  19575.         var $1400 = 0;
  19576.       }
  19577.       var $1400;
  19578.       L816 : do {
  19579.         if ($1400 & 1) {
  19580.           HEAP[$this_addr_i5_i_i_i] = $this1_i_i9_i | 0;
  19581.           HEAP[$this_addr_i_i4_i_i_i] = HEAP[$this_addr_i5_i_i_i] | 0;
  19582.           var $this1_i_i7_i_i_i = HEAP[$this_addr_i_i4_i_i_i];
  19583.           HEAP[$count_i_i_i] = ((HEAP[$this1_i_i7_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i + 1 | 0] & 255) & 65535;
  19584.           HEAP[$i_i_i_i] = 0;
  19585.           L819 : do {
  19586.             if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  19587.               var $array_i_i_i = $this1_i_i9_i + 2 | 0;
  19588.               while (1) {
  19589.                 var $1476 = HEAP[$c_addr_i_i_i];
  19590.                 var $1477 = HEAP[$base_addr_i_i5_i];
  19591.                 HEAP[$this_addr_i_i_i1_i] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  19592.                 HEAP[$c_addr_i_i_i_i] = $1476;
  19593.                 HEAP[$base_addr_i_i_i_i] = $1477;
  19594.                 var $this1_i_i_i13_i = HEAP[$this_addr_i_i_i1_i];
  19595.                 HEAP[$this_addr_i15_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  19596.                 HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  19597.                 var $1480 = HEAP[$obj_addr_i_i_i_i_i];
  19598.                 HEAP[$this_addr_i_i11_i_i_i_i] = HEAP[$this_addr_i15_i_i_i_i];
  19599.                 HEAP[$base_addr_i_i12_i_i_i_i] = $1480;
  19600.                 HEAP[$len_addr_i_i13_i_i_i_i] = 2;
  19601.                 var $this1_i_i17_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i];
  19602.                 HEAP[$p_i_i14_i_i_i_i] = HEAP[$base_addr_i_i12_i_i_i_i];
  19603.                 do {
  19604.                   if (HEAP[$this1_i_i17_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i14_i_i_i_i] >>> 0) {
  19605.                     if (!(HEAP[$p_i_i14_i_i_i_i] >>> 0 <= HEAP[$this1_i_i17_i_i_i_i + 8 | 0] >>> 0)) {
  19606.                       var $1489 = 0;
  19607.                       break;
  19608.                     }
  19609.                     var $1489 = (HEAP[$this1_i_i17_i_i_i_i + 8 | 0] - HEAP[$p_i_i14_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i13_i_i_i_i] >>> 0;
  19610.                   } else {
  19611.                     var $1489 = 0;
  19612.                   }
  19613.                 } while (0);
  19614.                 var $1489;
  19615.                 do {
  19616.                   if ($1489 & 1) {
  19617.                     HEAP[$this_addr_i4_i_i_i_i] = $this1_i_i_i13_i;
  19618.                     HEAP[$this_addr_i_i3_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i] | 0;
  19619.                     var $this1_i_i6_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i];
  19620.                     HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i6_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i_i + 1 | 0] & 255) & 65535;
  19621.                     if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  19622.                       var $tobool_i2_i_i_i_i = 1;
  19623.                       HEAP[$retval_i_i_i_i] = $tobool_i2_i_i_i_i;
  19624.                       var $1519 = $tobool_i2_i_i_i_i;
  19625.                       break;
  19626.                     }
  19627.                     var $1498 = HEAP[$offset_i_i_i_i];
  19628.                     HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  19629.                     HEAP[$offset_addr_i_i_i_i_i] = $1498;
  19630.                     HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  19631.                     if (__ZN2OT6Lookup8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$obj_i_i_i_i], HEAP[$c_addr_i_i_i_i])) {
  19632.                       var $1517 = 1;
  19633.                     } else {
  19634.                       var $1504 = HEAP[$c_addr_i_i_i_i];
  19635.                       HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  19636.                       HEAP[$c_addr_i_i_i_i_i] = $1504;
  19637.                       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  19638.                       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  19639.                       HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  19640.                       HEAP[$len_addr_i_i_i_i_i_i] = 2;
  19641.                       var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  19642.                       do {
  19643.                         if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  19644.                           HEAP[$retval_i_i_i_i_i_i] = 0;
  19645.                           label = 639;
  19646.                           break;
  19647.                         } else {
  19648.                           HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  19649.                           var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  19650.                           HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  19651.                           var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  19652.                           HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  19653.                           if (!$tobool_i_i_i_i_i_i_i) {
  19654.                             label = 639;
  19655.                             break;
  19656.                           }
  19657.                           HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i;
  19658.                           HEAP[$i_addr_i_i_i_i_i_i] = 0;
  19659.                           var $1513 = HEAP[$i_addr_i_i_i_i_i_i];
  19660.                           HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  19661.                           HEAP[$i_addr_i_i_i_i_i_i_i] = $1513;
  19662.                           var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  19663.                           HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  19664.                           HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  19665.                           HEAP[$retval_i_i_i_i_i] = 1;
  19666.                           break;
  19667.                         }
  19668.                       } while (0);
  19669.                       if (label == 639) {
  19670.                         label = 0;
  19671.                         HEAP[$retval_i_i_i_i_i] = 0;
  19672.                       }
  19673.                       var $1517 = HEAP[$retval_i_i_i_i_i];
  19674.                     }
  19675.                     var $1517;
  19676.                     var $tobool_i_i_i_i_i = $1517 & 1;
  19677.                     HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i;
  19678.                     var $1519 = $tobool_i_i_i_i_i;
  19679.                   } else {
  19680.                     var $tobool_i9_i_i_i_i = 0;
  19681.                     HEAP[$retval_i_i_i_i] = $tobool_i9_i_i_i_i;
  19682.                     var $1519 = $tobool_i9_i_i_i_i;
  19683.                   }
  19684.                 } while (0);
  19685.                 var $1519;
  19686.                 if (!$1519) {
  19687.                   break;
  19688.                 }
  19689.                 HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  19690.                 if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  19691.                   break L819;
  19692.                 }
  19693.               }
  19694.               HEAP[$retval_i_i3_i] = 0;
  19695.               break L816;
  19696.             }
  19697.           } while (0);
  19698.           HEAP[$retval_i_i3_i] = 1;
  19699.         } else {
  19700.           HEAP[$retval_i_i3_i] = 0;
  19701.         }
  19702.       } while (0);
  19703.       if (HEAP[$retval_i_i3_i] & 1) {
  19704.         var $1577 = 1;
  19705.       } else {
  19706.         var $1535 = HEAP[$c_addr_i];
  19707.         HEAP[$this_addr_i_i] = $this1_i;
  19708.         HEAP[$c_addr_i_i] = $1535;
  19709.         var $this1_i_i = HEAP[$this_addr_i_i];
  19710.         HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  19711.         HEAP[$base_addr_i_i_i] = $this1_i_i;
  19712.         HEAP[$len_addr_i_i_i] = 2;
  19713.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  19714.         do {
  19715.           if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  19716.             HEAP[$retval_i_i_i] = 0;
  19717.             label = 651;
  19718.             break;
  19719.           } else {
  19720.             HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  19721.             var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  19722.             HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  19723.             var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  19724.             HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  19725.             if (!$tobool_i_i_i_i) {
  19726.               label = 651;
  19727.               break;
  19728.             }
  19729.             HEAP[$this_addr_i1_i_i] = $this1_i_i;
  19730.             HEAP[$i_addr_i_i_i] = 0;
  19731.             var $1564 = HEAP[$i_addr_i_i_i];
  19732.             HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  19733.             HEAP[$i_addr_i_i_i_i] = $1564;
  19734.             var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  19735.             HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  19736.             HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  19737.             HEAP[$retval_i_i] = 1;
  19738.             break;
  19739.           }
  19740.         } while (0);
  19741.         if (label == 651) {
  19742.           HEAP[$retval_i_i] = 0;
  19743.         }
  19744.         var $1577 = HEAP[$retval_i_i];
  19745.       }
  19746.       var $1577;
  19747.       HEAP[$retval_i] = $1577 & 1;
  19748.     } else {
  19749.       HEAP[$retval_i] = 0;
  19750.     }
  19751.   } while (0);
  19752.   var $1586 = HEAP[$retval_i];
  19753.   var $1586;
  19754.   var $frombool_i = $1586 & 1;
  19755.   $v_addr_i = $frombool_i;
  19756.   var $1587 = $v_addr_i;
  19757.   var $tobool_i = $1587 & 1;
  19758.   STACKTOP = __stackBase__;
  19759.   return $tobool_i;
  19760. }
  19761. function __ZN2OT6Lookup8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  19762.   var __stackBase__ = STACKTOP;
  19763.   STACKTOP = STACKTOP + 137 | 0;
  19764.   var $this_addr_i_i38 = __stackBase__;
  19765.   var $base_addr_i_i = __stackBase__ + 4;
  19766.   var $len_addr_i_i = __stackBase__ + 8;
  19767.   var $p_i_i = __stackBase__ + 12;
  19768.   var $this_addr_i39 = __stackBase__ + 16;
  19769.   var $obj_addr_i = __stackBase__ + 20;
  19770.   var $this_addr_i_i1_i_i = __stackBase__ + 24;
  19771.   var $base_addr_i_i_i_i = __stackBase__ + 28;
  19772.   var $len_addr_i_i_i_i = __stackBase__ + 32;
  19773.   var $p_i_i_i_i = __stackBase__ + 36;
  19774.   var $this_addr_i2_i_i = __stackBase__ + 40;
  19775.   var $obj_addr_i_i_i = __stackBase__ + 44;
  19776.   var $this_addr_i_i_i_i15 = __stackBase__ + 48;
  19777.   var $this_addr_i_i_i16 = __stackBase__ + 52;
  19778.   var $this_addr_i_i17 = __stackBase__ + 56;
  19779.   var $c_addr_i_i = __stackBase__ + 60;
  19780.   var $retval_i = __stackBase__ + 64;
  19781.   var $this_addr_i19 = __stackBase__ + 65;
  19782.   var $c_addr_i20 = __stackBase__ + 69;
  19783.   var $this_addr_i_i7 = __stackBase__ + 73;
  19784.   var $this_addr_i8 = __stackBase__ + 77;
  19785.   var $P_addr_i_i = __stackBase__ + 81;
  19786.   var $offset_addr_i_i = __stackBase__ + 85;
  19787.   var $this_addr_i_i_i_i = __stackBase__ + 89;
  19788.   var $this_addr_i_i_i3 = __stackBase__ + 93;
  19789.   var $this_addr_i_i4 = __stackBase__ + 97;
  19790.   var $X_addr_i = __stackBase__ + 101;
  19791.   var $this_addr_i_i_i = __stackBase__ + 105;
  19792.   var $base_addr_i_i_i = __stackBase__ + 109;
  19793.   var $len_addr_i_i_i = __stackBase__ + 113;
  19794.   var $p_i_i_i = __stackBase__ + 117;
  19795.   var $this_addr_i_i = __stackBase__ + 121;
  19796.   var $obj_addr_i_i = __stackBase__ + 125;
  19797.   var $this_addr_i = __stackBase__ + 129;
  19798.   var $c_addr_i = __stackBase__ + 133;
  19799.   var $retval;
  19800.   var $c_addr;
  19801.   $c_addr = $c;
  19802.   var $this1 = $this;
  19803.   HEAP[$this_addr_i39] = $c_addr;
  19804.   HEAP[$obj_addr_i] = $this1;
  19805.   var $4 = HEAP[$obj_addr_i];
  19806.   HEAP[$this_addr_i_i38] = HEAP[$this_addr_i39];
  19807.   HEAP[$base_addr_i_i] = $4;
  19808.   HEAP[$len_addr_i_i] = 6;
  19809.   var $this1_i_i41 = HEAP[$this_addr_i_i38];
  19810.   HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  19811.   do {
  19812.     if (HEAP[$this1_i_i41 + 4 | 0] >>> 0 <= HEAP[$p_i_i] >>> 0) {
  19813.       if (!(HEAP[$p_i_i] >>> 0 <= HEAP[$this1_i_i41 + 8 | 0] >>> 0)) {
  19814.         var $17 = 0;
  19815.         break;
  19816.       }
  19817.       var $17 = (HEAP[$this1_i_i41 + 8 | 0] - HEAP[$p_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i] >>> 0;
  19818.     } else {
  19819.       var $17 = 0;
  19820.     }
  19821.   } while (0);
  19822.   var $17;
  19823.   do {
  19824.     if ($17 & 1) {
  19825.       HEAP[$this_addr_i19] = $this1 + 4 | 0;
  19826.       HEAP[$c_addr_i20] = $c_addr;
  19827.       var $30 = HEAP[$c_addr_i20];
  19828.       HEAP[$this_addr_i_i17] = HEAP[$this_addr_i19];
  19829.       HEAP[$c_addr_i_i] = $30;
  19830.       var $this1_i_i22 = HEAP[$this_addr_i_i17];
  19831.       HEAP[$this_addr_i2_i_i] = HEAP[$c_addr_i_i];
  19832.       HEAP[$obj_addr_i_i_i] = $this1_i_i22;
  19833.       var $37 = HEAP[$obj_addr_i_i_i];
  19834.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i];
  19835.       HEAP[$base_addr_i_i_i_i] = $37;
  19836.       HEAP[$len_addr_i_i_i_i] = 2;
  19837.       var $this1_i_i4_i_i = HEAP[$this_addr_i_i1_i_i];
  19838.       HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  19839.       do {
  19840.         if (HEAP[$this1_i_i4_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  19841.           if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i + 8 | 0] >>> 0)) {
  19842.             var $50 = 0;
  19843.             break;
  19844.           }
  19845.           var $50 = (HEAP[$this1_i_i4_i_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  19846.         } else {
  19847.           var $50 = 0;
  19848.         }
  19849.       } while (0);
  19850.       var $50;
  19851.       if ($50 & 1) {
  19852.         var $58 = HEAP[$c_addr_i_i];
  19853.         HEAP[$this_addr_i_i_i16] = $this1_i_i22 | 0;
  19854.         HEAP[$this_addr_i_i_i_i15] = HEAP[$this_addr_i_i_i16] | 0;
  19855.         var $this1_i_i_i_i25 = HEAP[$this_addr_i_i_i_i15];
  19856.         var $66 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($58, $this1_i_i22, 2, ((HEAP[$this1_i_i_i_i25 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i25 + 1 | 0] & 255) & 65535);
  19857.       } else {
  19858.         var $66 = 0;
  19859.       }
  19860.       var $66;
  19861.       if ($66 & 1) {
  19862.         var $tobool_i_i36 = 1;
  19863.         HEAP[$retval_i] = $tobool_i_i36;
  19864.         if (!$tobool_i_i36) {
  19865.           break;
  19866.         }
  19867.       } else {
  19868.         var $tobool_i2_i = 0;
  19869.         HEAP[$retval_i] = $tobool_i2_i;
  19870.         if (!$tobool_i2_i) {
  19871.           break;
  19872.         }
  19873.       }
  19874.       HEAP[$this_addr_i8] = $this1 + 2 | 0;
  19875.       HEAP[$this_addr_i_i7] = HEAP[$this_addr_i8] | 0;
  19876.       var $this1_i_i10 = HEAP[$this_addr_i_i7];
  19877.       do {
  19878.         if ((((HEAP[$this1_i_i10 | 0] & 255) << 8) + (HEAP[$this1_i_i10 + 1 | 0] & 255) & 65535 & 16 | 0) != 0) {
  19879.           HEAP[$X_addr_i] = $this1 + 4 | 0;
  19880.           var $87 = HEAP[$X_addr_i];
  19881.           HEAP[$this_addr_i_i4] = HEAP[$X_addr_i];
  19882.           HEAP[$this_addr_i_i_i3] = HEAP[$this_addr_i_i4] | 0;
  19883.           HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i3] | 0;
  19884.           var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  19885.           var $add_i_i = ((((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  19886.           HEAP[$P_addr_i_i] = $87;
  19887.           HEAP[$offset_addr_i_i] = $add_i_i;
  19888.           HEAP[$this_addr_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  19889.           HEAP[$c_addr_i] = $c_addr;
  19890.           var $this1_i = HEAP[$this_addr_i];
  19891.           HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  19892.           HEAP[$obj_addr_i_i] = $this1_i;
  19893.           var $114 = HEAP[$obj_addr_i_i];
  19894.           HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  19895.           HEAP[$base_addr_i_i_i] = $114;
  19896.           HEAP[$len_addr_i_i_i] = 2;
  19897.           var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  19898.           HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  19899.           do {
  19900.             if (HEAP[$this1_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  19901.               if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i + 8 | 0] >>> 0)) {
  19902.                 var $127 = 0;
  19903.                 break;
  19904.               }
  19905.               var $127 = (HEAP[$this1_i_i_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  19906.             } else {
  19907.               var $127 = 0;
  19908.             }
  19909.           } while (0);
  19910.           var $127;
  19911.           if ($127 & 1 & 1) {
  19912.             break;
  19913.           }
  19914.           $retval = 0;
  19915.           var $140 = $retval;
  19916.           STACKTOP = __stackBase__;
  19917.           return $140;
  19918.         }
  19919.       } while (0);
  19920.       $retval = 1;
  19921.       var $140 = $retval;
  19922.       STACKTOP = __stackBase__;
  19923.       return $140;
  19924.     }
  19925.   } while (0);
  19926.   $retval = 0;
  19927.   var $140 = $retval;
  19928.   STACKTOP = __stackBase__;
  19929.   return $140;
  19930. }
  19931. function __ZN2OT17PosLookupSubTable8sanitizeEPNS_21hb_sanitize_context_tEj($this, $c, $lookup_type) {
  19932.   var label = 0;
  19933.   var __stackBase__ = STACKTOP;
  19934.   STACKTOP = STACKTOP + 1609 | 0;
  19935.   var $this_addr_i_i_i_i29_i = __stackBase__;
  19936.   var $this_addr_i_i1_i30_i = __stackBase__ + 4;
  19937.   var $this_addr_i2_i31_i = __stackBase__ + 8;
  19938.   var $this_addr_i_i_i32_i = __stackBase__ + 12;
  19939.   var $this_addr_i_i33_i761 = __stackBase__ + 16;
  19940.   var $retval_i34_i = __stackBase__ + 20;
  19941.   var $this_addr_i35_i = __stackBase__ + 24;
  19942.   var $P_addr_i_i = __stackBase__ + 28;
  19943.   var $offset_addr_i_i = __stackBase__ + 32;
  19944.   var $this_addr_i_i_i_i1_i = __stackBase__ + 36;
  19945.   var $this_addr_i_i1_i_i762 = __stackBase__ + 40;
  19946.   var $this_addr_i2_i_i763 = __stackBase__ + 44;
  19947.   var $this_addr_i_i_i2_i = __stackBase__ + 48;
  19948.   var $this_addr_i_i3_i = __stackBase__ + 52;
  19949.   var $retval_i4_i = __stackBase__ + 56;
  19950.   var $this_addr_i5_i = __stackBase__ + 60;
  19951.   var $this_addr_i_i_i10_i_i = __stackBase__ + 64;
  19952.   var $base_addr_i_i_i11_i_i = __stackBase__ + 68;
  19953.   var $len_addr_i_i_i12_i_i = __stackBase__ + 72;
  19954.   var $p_i_i_i13_i_i = __stackBase__ + 76;
  19955.   var $this_addr_i_i14_i_i = __stackBase__ + 80;
  19956.   var $obj_addr_i_i15_i_i = __stackBase__ + 84;
  19957.   var $this_addr_i17_i_i = __stackBase__ + 88;
  19958.   var $c_addr_i18_i_i = __stackBase__ + 92;
  19959.   var $this_addr_i_i3_i_i765 = __stackBase__ + 96;
  19960.   var $this_addr_i4_i_i766 = __stackBase__ + 100;
  19961.   var $this_addr_i_i_i_i_i768 = __stackBase__ + 104;
  19962.   var $base_addr_i_i_i_i_i769 = __stackBase__ + 108;
  19963.   var $len_addr_i_i_i_i_i770 = __stackBase__ + 112;
  19964.   var $p_i_i_i_i_i771 = __stackBase__ + 116;
  19965.   var $this_addr_i_i_i_i772 = __stackBase__ + 120;
  19966.   var $obj_addr_i_i_i_i773 = __stackBase__ + 124;
  19967.   var $this_addr_i_i_i775 = __stackBase__ + 128;
  19968.   var $c_addr_i_i_i776 = __stackBase__ + 132;
  19969.   var $retval_i_i779 = __stackBase__ + 136;
  19970.   var $this_addr_i_i780 = __stackBase__ + 137;
  19971.   var $c_addr_i_i781 = __stackBase__ + 141;
  19972.   var $retval_i782 = __stackBase__ + 145;
  19973.   var $this_addr_i783 = __stackBase__ + 146;
  19974.   var $c_addr_i784 = __stackBase__ + 150;
  19975.   var $offset_i = __stackBase__ + 155;
  19976.   var $this_addr_i_i33_i631 = __stackBase__ + 159;
  19977.   var $this_addr_i34_i632 = __stackBase__ + 163;
  19978.   var $this_addr_i_i_i4_i635 = __stackBase__ + 167;
  19979.   var $base_addr_i_i_i5_i636 = __stackBase__ + 171;
  19980.   var $len_addr_i_i_i6_i637 = __stackBase__ + 175;
  19981.   var $p_i_i_i7_i638 = __stackBase__ + 179;
  19982.   var $this_addr_i_i8_i639 = __stackBase__ + 183;
  19983.   var $obj_addr_i_i9_i640 = __stackBase__ + 187;
  19984.   var $this_addr_i11_i642 = __stackBase__ + 191;
  19985.   var $c_addr_i12_i643 = __stackBase__ + 195;
  19986.   var $this_addr_i_i1_i_i645 = __stackBase__ + 199;
  19987.   var $base_addr_i_i_i_i646 = __stackBase__ + 203;
  19988.   var $len_addr_i_i_i_i647 = __stackBase__ + 207;
  19989.   var $p_i_i_i_i648 = __stackBase__ + 211;
  19990.   var $this_addr_i2_i_i649 = __stackBase__ + 215;
  19991.   var $obj_addr_i_i_i650 = __stackBase__ + 219;
  19992.   var $this_addr_i_i_i_i651 = __stackBase__ + 223;
  19993.   var $this_addr_i_i_i652 = __stackBase__ + 227;
  19994.   var $this_addr_i_i654 = __stackBase__ + 231;
  19995.   var $c_addr_i_i655 = __stackBase__ + 235;
  19996.   var $retval_i658 = __stackBase__ + 239;
  19997.   var $this_addr_i659 = __stackBase__ + 240;
  19998.   var $c_addr_i660 = __stackBase__ + 244;
  19999.   var $this_addr_i_i33_i447 = __stackBase__ + 248;
  20000.   var $this_addr_i34_i448 = __stackBase__ + 252;
  20001.   var $this_addr_i_i_i4_i451 = __stackBase__ + 256;
  20002.   var $base_addr_i_i_i5_i452 = __stackBase__ + 260;
  20003.   var $len_addr_i_i_i6_i453 = __stackBase__ + 264;
  20004.   var $p_i_i_i7_i454 = __stackBase__ + 268;
  20005.   var $this_addr_i_i8_i455 = __stackBase__ + 272;
  20006.   var $obj_addr_i_i9_i456 = __stackBase__ + 276;
  20007.   var $this_addr_i11_i458 = __stackBase__ + 280;
  20008.   var $c_addr_i12_i459 = __stackBase__ + 284;
  20009.   var $this_addr_i_i9_i_i = __stackBase__ + 288;
  20010.   var $this_addr_i10_i_i = __stackBase__ + 292;
  20011.   var $this_addr_i_i3_i_i460 = __stackBase__ + 296;
  20012.   var $base_addr_i_i_i_i461 = __stackBase__ + 300;
  20013.   var $len_addr_i_i_i_i462 = __stackBase__ + 304;
  20014.   var $p_i_i_i_i463 = __stackBase__ + 308;
  20015.   var $this_addr_i4_i_i464 = __stackBase__ + 312;
  20016.   var $obj_addr_i_i_i465 = __stackBase__ + 316;
  20017.   var $this_addr_i_i31_i_i_i = __stackBase__ + 320;
  20018.   var $this_addr_i32_i_i_i = __stackBase__ + 324;
  20019.   var $P_addr_i_i_i_i = __stackBase__ + 328;
  20020.   var $offset_addr_i_i_i_i = __stackBase__ + 332;
  20021.   var $this_addr_i_i19_i_i_i = __stackBase__ + 336;
  20022.   var $base_addr_i_i20_i_i_i = __stackBase__ + 340;
  20023.   var $len_addr_i_i21_i_i_i = __stackBase__ + 344;
  20024.   var $p_i_i22_i_i_i = __stackBase__ + 348;
  20025.   var $this_addr_i23_i_i_i = __stackBase__ + 352;
  20026.   var $obj_addr_i_i_i_i = __stackBase__ + 356;
  20027.   var $this_addr_i_i1_i_i_i_i_i_i = __stackBase__ + 360;
  20028.   var $base_addr_i_i_i_i_i_i_i_i = __stackBase__ + 364;
  20029.   var $len_addr_i_i_i_i_i_i_i_i = __stackBase__ + 368;
  20030.   var $p_i_i_i_i_i_i_i_i = __stackBase__ + 372;
  20031.   var $this_addr_i2_i_i_i_i_i_i = __stackBase__ + 376;
  20032.   var $obj_addr_i_i_i_i_i_i_i = __stackBase__ + 380;
  20033.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 384;
  20034.   var $this_addr_i_i5_i_i_i_i_i = __stackBase__ + 388;
  20035.   var $this_addr_i6_i_i_i_i_i = __stackBase__ + 392;
  20036.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 396;
  20037.   var $this_addr_i_i_i_i_i_i_i467 = __stackBase__ + 400;
  20038.   var $this_addr_i_i_i1_i_i_i = __stackBase__ + 404;
  20039.   var $retval_i_i3_i_i_i = __stackBase__ + 408;
  20040.   var $this_addr_i_i4_i_i_i = __stackBase__ + 409;
  20041.   var $c_addr_i_i_i_i_i468 = __stackBase__ + 413;
  20042.   var $base_addr_i_i5_i_i_i = __stackBase__ + 417;
  20043.   var $user_data_addr_i_i_i_i_i = __stackBase__ + 421;
  20044.   var $count_i_i_i_i_i469 = __stackBase__ + 425;
  20045.   var $i_i_i_i_i_i = __stackBase__ + 429;
  20046.   var $this_addr_i6_i_i_i471 = __stackBase__ + 433;
  20047.   var $c_addr_i7_i_i_i = __stackBase__ + 437;
  20048.   var $user_data_addr_i_i_i_i472 = __stackBase__ + 441;
  20049.   var $this_addr_i_i_i_i_i_i473 = __stackBase__ + 445;
  20050.   var $i_addr_i_i_i_i_i_i474 = __stackBase__ + 449;
  20051.   var $this_addr_i1_i_i_i_i = __stackBase__ + 451;
  20052.   var $i_addr_i_i_i_i_i = __stackBase__ + 455;
  20053.   var $retval_i_i_i_i_i476 = __stackBase__ + 457;
  20054.   var $this_addr_i_i_i_i_i477 = __stackBase__ + 458;
  20055.   var $base_addr_i_i_i_i_i = __stackBase__ + 462;
  20056.   var $len_addr_i_i_i_i_i = __stackBase__ + 466;
  20057.   var $p_i_i_i_i_i = __stackBase__ + 470;
  20058.   var $retval_i_i_i_i478 = __stackBase__ + 474;
  20059.   var $this_addr_i_i_i_i479 = __stackBase__ + 475;
  20060.   var $c_addr_i_i_i_i480 = __stackBase__ + 479;
  20061.   var $retval_i_i_i482 = __stackBase__ + 483;
  20062.   var $this_addr_i_i_i483 = __stackBase__ + 484;
  20063.   var $c_addr_i_i_i484 = __stackBase__ + 488;
  20064.   var $base_addr_i_i_i485 = __stackBase__ + 492;
  20065.   var $user_data_addr_i_i_i486 = __stackBase__ + 496;
  20066.   var $offset_i_i_i = __stackBase__ + 500;
  20067.   var $obj_i_i_i = __stackBase__ + 504;
  20068.   var $this_addr_i_i488 = __stackBase__ + 508;
  20069.   var $c_addr_i_i489 = __stackBase__ + 512;
  20070.   var $retval_i492 = __stackBase__ + 516;
  20071.   var $this_addr_i493 = __stackBase__ + 517;
  20072.   var $c_addr_i494 = __stackBase__ + 521;
  20073.   var $this_addr_i_i33_i328 = __stackBase__ + 525;
  20074.   var $this_addr_i34_i329 = __stackBase__ + 529;
  20075.   var $this_addr_i_i_i4_i332 = __stackBase__ + 533;
  20076.   var $base_addr_i_i_i5_i333 = __stackBase__ + 537;
  20077.   var $len_addr_i_i_i6_i334 = __stackBase__ + 541;
  20078.   var $p_i_i_i7_i335 = __stackBase__ + 545;
  20079.   var $this_addr_i_i8_i336 = __stackBase__ + 549;
  20080.   var $obj_addr_i_i9_i337 = __stackBase__ + 553;
  20081.   var $this_addr_i11_i339 = __stackBase__ + 557;
  20082.   var $c_addr_i12_i340 = __stackBase__ + 561;
  20083.   var $this_addr_i_i1_i_i342 = __stackBase__ + 565;
  20084.   var $base_addr_i_i_i_i343 = __stackBase__ + 569;
  20085.   var $len_addr_i_i_i_i344 = __stackBase__ + 573;
  20086.   var $p_i_i_i_i345 = __stackBase__ + 577;
  20087.   var $this_addr_i2_i_i346 = __stackBase__ + 581;
  20088.   var $obj_addr_i_i_i347 = __stackBase__ + 585;
  20089.   var $this_addr_i_i_i_i348 = __stackBase__ + 589;
  20090.   var $this_addr_i_i_i349 = __stackBase__ + 593;
  20091.   var $this_addr_i_i351 = __stackBase__ + 597;
  20092.   var $c_addr_i_i352 = __stackBase__ + 601;
  20093.   var $retval_i355 = __stackBase__ + 605;
  20094.   var $this_addr_i356 = __stackBase__ + 606;
  20095.   var $c_addr_i357 = __stackBase__ + 610;
  20096.   var $this_addr_i_i20_i = __stackBase__ + 614;
  20097.   var $this_addr_i21_i = __stackBase__ + 618;
  20098.   var $this_addr_i_i_i4_i192 = __stackBase__ + 622;
  20099.   var $base_addr_i_i_i5_i193 = __stackBase__ + 626;
  20100.   var $len_addr_i_i_i_i194 = __stackBase__ + 630;
  20101.   var $p_i_i_i_i195 = __stackBase__ + 634;
  20102.   var $this_addr_i_i6_i = __stackBase__ + 638;
  20103.   var $obj_addr_i_i_i196 = __stackBase__ + 642;
  20104.   var $this_addr_i8_i = __stackBase__ + 646;
  20105.   var $c_addr_i9_i = __stackBase__ + 650;
  20106.   var $this_addr_i_i12_i_i_i = __stackBase__ + 654;
  20107.   var $this_addr_i13_i_i_i = __stackBase__ + 658;
  20108.   var $this_addr_i_i1_i_i_i_i198 = __stackBase__ + 662;
  20109.   var $base_addr_i_i_i_i_i_i199 = __stackBase__ + 666;
  20110.   var $len_addr_i_i_i_i_i_i200 = __stackBase__ + 670;
  20111.   var $p_i_i_i_i_i_i201 = __stackBase__ + 674;
  20112.   var $this_addr_i2_i_i_i_i202 = __stackBase__ + 678;
  20113.   var $obj_addr_i_i_i_i_i203 = __stackBase__ + 682;
  20114.   var $this_addr_i_i_i_i_i_i204 = __stackBase__ + 686;
  20115.   var $this_addr_i_i_i_i_i205 = __stackBase__ + 690;
  20116.   var $this_addr_i4_i_i_i = __stackBase__ + 694;
  20117.   var $c_addr_i5_i_i_i = __stackBase__ + 698;
  20118.   var $this_addr_i_i_i_i207 = __stackBase__ + 702;
  20119.   var $c_addr_i_i_i_i208 = __stackBase__ + 706;
  20120.   var $base_addr_i_i_i_i209 = __stackBase__ + 710;
  20121.   var $retval_i_i_i212 = __stackBase__ + 714;
  20122.   var $this_addr_i_i_i213 = __stackBase__ + 715;
  20123.   var $c_addr_i_i_i214 = __stackBase__ + 719;
  20124.   var $base_addr_i_i_i215 = __stackBase__ + 723;
  20125.   var $count_i_i_i216 = __stackBase__ + 727;
  20126.   var $i_i_i_i217 = __stackBase__ + 731;
  20127.   var $this_addr_i_i219 = __stackBase__ + 735;
  20128.   var $c_addr_i_i220 = __stackBase__ + 739;
  20129.   var $retval_i223 = __stackBase__ + 743;
  20130.   var $this_addr_i224 = __stackBase__ + 744;
  20131.   var $c_addr_i225 = __stackBase__ + 748;
  20132.   var $this_addr_i_i50_i_i = __stackBase__ + 752;
  20133.   var $base_addr_i_i51_i_i = __stackBase__ + 756;
  20134.   var $len_addr_i_i_i39_i = __stackBase__ + 760;
  20135.   var $p_i_i_i40_i = __stackBase__ + 764;
  20136.   var $this_addr_i52_i_i = __stackBase__ + 768;
  20137.   var $obj_addr_i_i41_i = __stackBase__ + 772;
  20138.   var $mask_addr_i_i18_i_i = __stackBase__ + 776;
  20139.   var $y_i_i19_i_i = __stackBase__ + 780;
  20140.   var $this_addr_i_i_i20_i_i = __stackBase__ + 784;
  20141.   var $this_addr_i_i21_i42_i = __stackBase__ + 788;
  20142.   var $this_addr_i22_i43_i = __stackBase__ + 792;
  20143.   var $mask_addr_i_i_i44_i = __stackBase__ + 796;
  20144.   var $y_i_i_i45_i = __stackBase__ + 800;
  20145.   var $this_addr_i_i_i1_i_i = __stackBase__ + 804;
  20146.   var $this_addr_i_i2_i_i21 = __stackBase__ + 808;
  20147.   var $this_addr_i3_i_i = __stackBase__ + 812;
  20148.   var $this_addr_i_i45_i_i_i = __stackBase__ + 816;
  20149.   var $this_addr_i46_i_i_i = __stackBase__ + 820;
  20150.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 824;
  20151.   var $base_addr_i_i_i5_i_i_i = __stackBase__ + 828;
  20152.   var $len_addr_i_i_i6_i_i_i = __stackBase__ + 832;
  20153.   var $p_i_i_i7_i_i_i = __stackBase__ + 836;
  20154.   var $this_addr_i2_i_i_i_i = __stackBase__ + 840;
  20155.   var $obj_addr_i_i8_i_i_i = __stackBase__ + 844;
  20156.   var $this_addr_i_i_i9_i_i_i = __stackBase__ + 848;
  20157.   var $this_addr_i_i10_i_i_i = __stackBase__ + 852;
  20158.   var $this_addr_i12_i_i_i = __stackBase__ + 856;
  20159.   var $c_addr_i13_i_i_i = __stackBase__ + 860;
  20160.   var $this_addr_i_i30_i_i_i_i = __stackBase__ + 864;
  20161.   var $this_addr_i31_i_i_i_i = __stackBase__ + 868;
  20162.   var $P_addr_i_i_i_i_i = __stackBase__ + 872;
  20163.   var $offset_addr_i_i_i_i_i = __stackBase__ + 876;
  20164.   var $this_addr_i_i16_i_i_i_i = __stackBase__ + 880;
  20165.   var $base_addr_i_i17_i_i_i_i = __stackBase__ + 884;
  20166.   var $len_addr_i_i18_i_i_i_i = __stackBase__ + 888;
  20167.   var $p_i_i19_i_i_i_i = __stackBase__ + 892;
  20168.   var $this_addr_i20_i_i_i_i = __stackBase__ + 896;
  20169.   var $obj_addr_i_i_i_i_i = __stackBase__ + 900;
  20170.   var $this_addr_i_i7_i_i_i_i_i = __stackBase__ + 904;
  20171.   var $this_addr_i8_i_i_i_i_i = __stackBase__ + 908;
  20172.   var $this_addr_i_i1_i_i_i_i_i = __stackBase__ + 912;
  20173.   var $this_addr_i2_i_i_i_i_i = __stackBase__ + 916;
  20174.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 920;
  20175.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 924;
  20176.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 928;
  20177.   var $len_addr_i_i_i_i_i_i_i = __stackBase__ + 932;
  20178.   var $p_i_i_i_i_i_i_i = __stackBase__ + 936;
  20179.   var $this_addr_i_i2_i_i_i_i = __stackBase__ + 940;
  20180.   var $obj_addr_i_i_i_i_i_i = __stackBase__ + 944;
  20181.   var $retval_i3_i_i_i_i = __stackBase__ + 948;
  20182.   var $this_addr_i4_i_i_i_i = __stackBase__ + 949;
  20183.   var $c_addr_i5_i_i_i_i = __stackBase__ + 953;
  20184.   var $closure_addr_i_i_i_i_i = __stackBase__ + 957;
  20185.   var $count_i_i_i_i_i = __stackBase__ + 961;
  20186.   var $record_i_i_i_i_i = __stackBase__ + 965;
  20187.   var $this_addr_i_i_i_i_i_i_i22 = __stackBase__ + 969;
  20188.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 973;
  20189.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 975;
  20190.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 979;
  20191.   var $retval_i_i_i_i_i_i = __stackBase__ + 981;
  20192.   var $this_addr_i_i_i_i_i46_i = __stackBase__ + 982;
  20193.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 986;
  20194.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 990;
  20195.   var $p_i_i_i_i_i_i = __stackBase__ + 994;
  20196.   var $retval_i_i_i_i_i = __stackBase__ + 998;
  20197.   var $this_addr_i_i_i_i47_i = __stackBase__ + 999;
  20198.   var $c_addr_i_i_i_i_i = __stackBase__ + 1003;
  20199.   var $retval_i_i_i_i = __stackBase__ + 1007;
  20200.   var $this_addr_i_i_i49_i = __stackBase__ + 1008;
  20201.   var $c_addr_i_i_i_i = __stackBase__ + 1012;
  20202.   var $base_addr_i_i_i50_i = __stackBase__ + 1016;
  20203.   var $user_data_addr_i_i_i_i = __stackBase__ + 1020;
  20204.   var $offset_i_i_i_i = __stackBase__ + 1024;
  20205.   var $obj_i_i_i_i = __stackBase__ + 1028;
  20206.   var $retval_i_i_i25 = __stackBase__ + 1032;
  20207.   var $this_addr_i_i51_i = __stackBase__ + 1033;
  20208.   var $c_addr_i_i_i26 = __stackBase__ + 1037;
  20209.   var $base_addr_i_i_i27 = __stackBase__ + 1041;
  20210.   var $user_data_addr_i_i_i = __stackBase__ + 1045;
  20211.   var $count_i_i_i = __stackBase__ + 1049;
  20212.   var $i_i_i_i28 = __stackBase__ + 1053;
  20213.   var $this_addr_i53_i = __stackBase__ + 1057;
  20214.   var $c_addr_i54_i = __stackBase__ + 1061;
  20215.   var $len1_i55_i = __stackBase__ + 1065;
  20216.   var $len2_i56_i = __stackBase__ + 1069;
  20217.   var $closure_i_i = __stackBase__ + 1073;
  20218.   var $this_addr_i_i33_i = __stackBase__ + 1089;
  20219.   var $this_addr_i34_i = __stackBase__ + 1093;
  20220.   var $this_addr_i_i_i4_i31 = __stackBase__ + 1097;
  20221.   var $base_addr_i_i_i5_i32 = __stackBase__ + 1101;
  20222.   var $len_addr_i_i_i6_i33 = __stackBase__ + 1105;
  20223.   var $p_i_i_i7_i34 = __stackBase__ + 1109;
  20224.   var $this_addr_i_i8_i35 = __stackBase__ + 1113;
  20225.   var $obj_addr_i_i9_i36 = __stackBase__ + 1117;
  20226.   var $this_addr_i11_i38 = __stackBase__ + 1121;
  20227.   var $c_addr_i12_i39 = __stackBase__ + 1125;
  20228.   var $mask_addr_i_i70_i_i = __stackBase__ + 1129;
  20229.   var $y_i_i71_i_i = __stackBase__ + 1133;
  20230.   var $this_addr_i_i_i72_i_i = __stackBase__ + 1137;
  20231.   var $this_addr_i_i73_i_i = __stackBase__ + 1141;
  20232.   var $this_addr_i74_i_i = __stackBase__ + 1145;
  20233.   var $mask_addr_i_i_i_i = __stackBase__ + 1149;
  20234.   var $y_i_i_i_i = __stackBase__ + 1153;
  20235.   var $this_addr_i_i_i60_i_i = __stackBase__ + 1157;
  20236.   var $this_addr_i_i61_i_i = __stackBase__ + 1161;
  20237.   var $this_addr_i62_i_i = __stackBase__ + 1165;
  20238.   var $mask_addr_i_i_i26_i_i = __stackBase__ + 1169;
  20239.   var $y_i_i_i27_i_i = __stackBase__ + 1173;
  20240.   var $this_addr_i_i_i_i28_i_i = __stackBase__ + 1177;
  20241.   var $this_addr_i_i_i29_i_i = __stackBase__ + 1181;
  20242.   var $this_addr_i_i30_i_i = __stackBase__ + 1185;
  20243.   var $this_addr_i31_i_i = __stackBase__ + 1189;
  20244.   var $mask_addr_i_i_i_i_i40 = __stackBase__ + 1193;
  20245.   var $y_i_i_i_i_i41 = __stackBase__ + 1197;
  20246.   var $this_addr_i_i_i_i_i_i42 = __stackBase__ + 1201;
  20247.   var $this_addr_i_i_i_i_i43 = __stackBase__ + 1205;
  20248.   var $this_addr_i_i21_i_i = __stackBase__ + 1209;
  20249.   var $this_addr_i22_i_i = __stackBase__ + 1213;
  20250.   var $this_addr_i_i7_i_i = __stackBase__ + 1217;
  20251.   var $this_addr_i8_i_i = __stackBase__ + 1221;
  20252.   var $this_addr_i_i3_i_i = __stackBase__ + 1225;
  20253.   var $this_addr_i4_i_i = __stackBase__ + 1229;
  20254.   var $this_addr_i_i_i_i45 = __stackBase__ + 1233;
  20255.   var $base_addr_i_i_i_i46 = __stackBase__ + 1237;
  20256.   var $len_addr_i_i_i_i47 = __stackBase__ + 1241;
  20257.   var $p_i_i_i_i48 = __stackBase__ + 1245;
  20258.   var $this_addr_i_i_i49 = __stackBase__ + 1249;
  20259.   var $obj_addr_i_i_i50 = __stackBase__ + 1253;
  20260.   var $retval_i_i = __stackBase__ + 1257;
  20261.   var $this_addr_i_i52 = __stackBase__ + 1258;
  20262.   var $c_addr_i_i53 = __stackBase__ + 1262;
  20263.   var $len1_i_i = __stackBase__ + 1266;
  20264.   var $len2_i_i = __stackBase__ + 1270;
  20265.   var $stride_i_i = __stackBase__ + 1274;
  20266.   var $record_size_i_i = __stackBase__ + 1278;
  20267.   var $count_i_i = __stackBase__ + 1282;
  20268.   var $retval_i56 = __stackBase__ + 1286;
  20269.   var $this_addr_i57 = __stackBase__ + 1287;
  20270.   var $c_addr_i58 = __stackBase__ + 1291;
  20271.   var $this_addr_i_i119_i = __stackBase__ + 1295;
  20272.   var $this_addr_i120_i = __stackBase__ + 1299;
  20273.   var $this_addr_i_i2_i_i = __stackBase__ + 1303;
  20274.   var $base_addr_i_i3_i_i = __stackBase__ + 1307;
  20275.   var $len_addr_i_i4_i_i = __stackBase__ + 1311;
  20276.   var $p_i_i5_i_i = __stackBase__ + 1315;
  20277.   var $this_addr_i6_i_i = __stackBase__ + 1319;
  20278.   var $obj_addr_i_i36_i = __stackBase__ + 1323;
  20279.   var $mask_addr_i_i_i_i_i37_i = __stackBase__ + 1327;
  20280.   var $y_i_i_i_i_i38_i = __stackBase__ + 1331;
  20281.   var $this_addr_i_i_i_i_i_i39_i = __stackBase__ + 1335;
  20282.   var $this_addr_i_i_i4_i_i_i = __stackBase__ + 1339;
  20283.   var $this_addr_i_i5_i_i_i = __stackBase__ + 1343;
  20284.   var $this_addr_i6_i_i_i = __stackBase__ + 1347;
  20285.   var $this_addr_i1_i_i_i = __stackBase__ + 1351;
  20286.   var $base_addr_i_i_i41_i = __stackBase__ + 1355;
  20287.   var $len_addr_i_i_i42_i = __stackBase__ + 1359;
  20288.   var $p_i_i_i43_i = __stackBase__ + 1363;
  20289.   var $this_addr_i_i_i_i_i44_i = __stackBase__ + 1367;
  20290.   var $this_addr_i_i_i_i45_i = __stackBase__ + 1371;
  20291.   var $this_addr_i_i_i46_i = __stackBase__ + 1375;
  20292.   var $format_i_i_i47_i = __stackBase__ + 1379;
  20293.   var $this_addr_i_i49_i = __stackBase__ + 1383;
  20294.   var $c_addr_i_i50_i = __stackBase__ + 1387;
  20295.   var $base_addr_i_i51_i = __stackBase__ + 1391;
  20296.   var $values_addr_i_i52_i = __stackBase__ + 1395;
  20297.   var $this_addr_i54_i = __stackBase__ + 1399;
  20298.   var $c_addr_i55_i = __stackBase__ + 1403;
  20299.   var $this_addr_i_i_i4_i = __stackBase__ + 1407;
  20300.   var $base_addr_i_i_i5_i = __stackBase__ + 1411;
  20301.   var $len_addr_i_i_i6_i = __stackBase__ + 1415;
  20302.   var $p_i_i_i7_i = __stackBase__ + 1419;
  20303.   var $this_addr_i_i8_i = __stackBase__ + 1423;
  20304.   var $obj_addr_i_i9_i = __stackBase__ + 1427;
  20305.   var $this_addr_i11_i = __stackBase__ + 1431;
  20306.   var $c_addr_i12_i = __stackBase__ + 1435;
  20307.   var $this_addr_i_i6_i_i = __stackBase__ + 1439;
  20308.   var $this_addr_i7_i_i = __stackBase__ + 1443;
  20309.   var $this_addr_i_i1_i_i = __stackBase__ + 1447;
  20310.   var $base_addr_i_i_i_i = __stackBase__ + 1451;
  20311.   var $len_addr_i_i_i_i = __stackBase__ + 1455;
  20312.   var $p_i_i_i_i = __stackBase__ + 1459;
  20313.   var $this_addr_i2_i_i = __stackBase__ + 1463;
  20314.   var $obj_addr_i_i_i = __stackBase__ + 1467;
  20315.   var $mask_addr_i_i_i_i_i_i = __stackBase__ + 1471;
  20316.   var $y_i_i_i_i_i_i = __stackBase__ + 1475;
  20317.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 1479;
  20318.   var $this_addr_i_i_i24_i_i_i = __stackBase__ + 1483;
  20319.   var $this_addr_i_i25_i_i_i = __stackBase__ + 1487;
  20320.   var $this_addr_i26_i_i_i = __stackBase__ + 1491;
  20321.   var $mask_addr_i_i_i_i_i = __stackBase__ + 1495;
  20322.   var $y_i_i_i_i_i = __stackBase__ + 1499;
  20323.   var $this_addr_i_i_i7_i_i_i = __stackBase__ + 1503;
  20324.   var $this_addr_i_i8_i_i_i = __stackBase__ + 1507;
  20325.   var $this_addr_i9_i_i_i = __stackBase__ + 1511;
  20326.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 1515;
  20327.   var $this_addr_i_i_i_i_i = __stackBase__ + 1519;
  20328.   var $this_addr_i_i_i_i = __stackBase__ + 1523;
  20329.   var $format_i_i_i_i = __stackBase__ + 1527;
  20330.   var $retval_i_i_i = __stackBase__ + 1531;
  20331.   var $this_addr_i_i_i4 = __stackBase__ + 1532;
  20332.   var $c_addr_i_i_i = __stackBase__ + 1536;
  20333.   var $base_addr_i_i_i5 = __stackBase__ + 1540;
  20334.   var $values_addr_i_i_i = __stackBase__ + 1544;
  20335.   var $count_addr_i_i_i = __stackBase__ + 1548;
  20336.   var $len_i_i_i = __stackBase__ + 1552;
  20337.   var $i_i_i_i = __stackBase__ + 1556;
  20338.   var $this_addr_i_i6 = __stackBase__ + 1560;
  20339.   var $c_addr_i_i = __stackBase__ + 1564;
  20340.   var $retval_i = __stackBase__ + 1568;
  20341.   var $this_addr_i8 = __stackBase__ + 1569;
  20342.   var $c_addr_i9 = __stackBase__ + 1573;
  20343.   var $this_addr_i_i_i = __stackBase__ + 1577;
  20344.   var $base_addr_i_i_i = __stackBase__ + 1581;
  20345.   var $len_addr_i_i_i = __stackBase__ + 1585;
  20346.   var $p_i_i_i = __stackBase__ + 1589;
  20347.   var $this_addr_i_i = __stackBase__ + 1593;
  20348.   var $obj_addr_i_i = __stackBase__ + 1597;
  20349.   var $this_addr_i = __stackBase__ + 1601;
  20350.   var $c_addr_i = __stackBase__ + 1605;
  20351.   var $retval;
  20352.   var $c_addr;
  20353.   var $lookup_type_addr;
  20354.   $c_addr = $c;
  20355.   $lookup_type_addr = $lookup_type;
  20356.   var $this1 = $this;
  20357.   HEAP[$this_addr_i] = $this1 | 0;
  20358.   HEAP[$c_addr_i] = $c_addr;
  20359.   var $this1_i = HEAP[$this_addr_i];
  20360.   HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  20361.   HEAP[$obj_addr_i_i] = $this1_i;
  20362.   var $7 = HEAP[$obj_addr_i_i];
  20363.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  20364.   HEAP[$base_addr_i_i_i] = $7;
  20365.   HEAP[$len_addr_i_i_i] = 2;
  20366.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  20367.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  20368.   do {
  20369.     if (HEAP[$this1_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  20370.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i + 8 | 0] >>> 0)) {
  20371.         var $20 = 0;
  20372.         break;
  20373.       }
  20374.       var $20 = (HEAP[$this1_i_i_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  20375.     } else {
  20376.       var $20 = 0;
  20377.     }
  20378.   } while (0);
  20379.   var $20;
  20380.   if (!($20 & 1 & 1)) {
  20381.     $retval = 0;
  20382.     var $1670 = $retval;
  20383.     STACKTOP = __stackBase__;
  20384.     return $1670;
  20385.   }
  20386.   var $32 = $lookup_type_addr;
  20387.   if (($32 | 0) == 1) {
  20388.     HEAP[$this_addr_i8] = $this1 | 0;
  20389.     HEAP[$c_addr_i9] = $c_addr;
  20390.     var $this1_i10 = HEAP[$this_addr_i8];
  20391.     var $37 = HEAP[$c_addr_i9];
  20392.     HEAP[$this_addr_i11_i] = $this1_i10 | 0;
  20393.     HEAP[$c_addr_i12_i] = $37;
  20394.     var $this1_i13_i = HEAP[$this_addr_i11_i];
  20395.     HEAP[$this_addr_i_i8_i] = HEAP[$c_addr_i12_i];
  20396.     HEAP[$obj_addr_i_i9_i] = $this1_i13_i;
  20397.     var $44 = HEAP[$obj_addr_i_i9_i];
  20398.     HEAP[$this_addr_i_i_i4_i] = HEAP[$this_addr_i_i8_i];
  20399.     HEAP[$base_addr_i_i_i5_i] = $44;
  20400.     HEAP[$len_addr_i_i_i6_i] = 2;
  20401.     var $this1_i_i_i15_i = HEAP[$this_addr_i_i_i4_i];
  20402.     HEAP[$p_i_i_i7_i] = HEAP[$base_addr_i_i_i5_i];
  20403.     do {
  20404.       if (HEAP[$this1_i_i_i15_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i] >>> 0) {
  20405.         if (!(HEAP[$p_i_i_i7_i] >>> 0 <= HEAP[$this1_i_i_i15_i + 8 | 0] >>> 0)) {
  20406.           var $57 = 0;
  20407.           break;
  20408.         }
  20409.         var $57 = (HEAP[$this1_i_i_i15_i + 8 | 0] - HEAP[$p_i_i_i7_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i] >>> 0;
  20410.       } else {
  20411.         var $57 = 0;
  20412.       }
  20413.     } while (0);
  20414.     var $57;
  20415.     do {
  20416.       if ($57 & 1 & 1) {
  20417.         HEAP[$this_addr_i120_i] = $this1_i10 | 0;
  20418.         HEAP[$this_addr_i_i119_i] = HEAP[$this_addr_i120_i] | 0;
  20419.         var $this1_i_i122_i = HEAP[$this_addr_i_i119_i];
  20420.         var $conv_i = ((HEAP[$this1_i_i122_i | 0] & 255) << 8) + (HEAP[$this1_i_i122_i + 1 | 0] & 255) & 65535;
  20421.         if (($conv_i | 0) == 1) {
  20422.           var $75 = HEAP[$c_addr_i9];
  20423.           HEAP[$this_addr_i54_i] = $this1_i10 | 0;
  20424.           HEAP[$c_addr_i55_i] = $75;
  20425.           var $this1_i56_i = HEAP[$this_addr_i54_i];
  20426.           HEAP[$this_addr_i6_i_i] = HEAP[$c_addr_i55_i];
  20427.           HEAP[$obj_addr_i_i36_i] = $this1_i56_i;
  20428.           var $82 = HEAP[$obj_addr_i_i36_i];
  20429.           HEAP[$this_addr_i_i2_i_i] = HEAP[$this_addr_i6_i_i];
  20430.           HEAP[$base_addr_i_i3_i_i] = $82;
  20431.           HEAP[$len_addr_i_i4_i_i] = 6;
  20432.           var $this1_i_i8_i_i = HEAP[$this_addr_i_i2_i_i];
  20433.           HEAP[$p_i_i5_i_i] = HEAP[$base_addr_i_i3_i_i];
  20434.           do {
  20435.             if (HEAP[$this1_i_i8_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i5_i_i] >>> 0) {
  20436.               if (!(HEAP[$p_i_i5_i_i] >>> 0 <= HEAP[$this1_i_i8_i_i + 8 | 0] >>> 0)) {
  20437.                 var $95 = 0;
  20438.                 break;
  20439.               }
  20440.               var $95 = (HEAP[$this1_i_i8_i_i + 8 | 0] - HEAP[$p_i_i5_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i4_i_i] >>> 0;
  20441.             } else {
  20442.               var $95 = 0;
  20443.             }
  20444.           } while (0);
  20445.           var $95;
  20446.           do {
  20447.             if ($95 & 1) {
  20448.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i56_i + 2 | 0, HEAP[$c_addr_i55_i], $this1_i56_i)) {
  20449.                 var $175 = 0;
  20450.                 break;
  20451.               }
  20452.               var $106 = HEAP[$c_addr_i55_i];
  20453.               HEAP[$this_addr_i_i49_i] = $this1_i56_i + 4 | 0;
  20454.               HEAP[$c_addr_i_i50_i] = $106;
  20455.               HEAP[$base_addr_i_i51_i] = $this1_i56_i;
  20456.               HEAP[$values_addr_i_i52_i] = $this1_i56_i + 6 | 0;
  20457.               var $this1_i_i63_i = HEAP[$this_addr_i_i49_i];
  20458.               var $112 = HEAP[$c_addr_i_i50_i];
  20459.               var $114 = HEAP[$values_addr_i_i52_i];
  20460.               HEAP[$this_addr_i6_i_i_i] = $this1_i_i63_i;
  20461.               HEAP[$this_addr_i_i5_i_i_i] = HEAP[$this_addr_i6_i_i_i];
  20462.               HEAP[$this_addr_i_i_i4_i_i_i] = HEAP[$this_addr_i_i5_i_i_i];
  20463.               HEAP[$this_addr_i_i_i_i_i_i39_i] = HEAP[$this_addr_i_i_i4_i_i_i] | 0;
  20464.               var $this1_i_i_i_i_i_i64_i = HEAP[$this_addr_i_i_i_i_i_i39_i];
  20465.               HEAP[$mask_addr_i_i_i_i_i37_i] = ((HEAP[$this1_i_i_i_i_i_i64_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i64_i + 1 | 0] & 255) & 65535;
  20466.               HEAP[$y_i_i_i_i_i38_i] = HEAP[$mask_addr_i_i_i_i_i37_i] >>> 1 & -613566757;
  20467.               HEAP[$y_i_i_i_i_i38_i] = -HEAP[$y_i_i_i_i_i38_i] + HEAP[$mask_addr_i_i_i_i_i37_i] + -(HEAP[$y_i_i_i_i_i38_i] >>> 1 & -613566757) | 0;
  20468.               var $mul_i_i_i86_i = (((HEAP[$y_i_i_i_i_i38_i] >>> 3) + HEAP[$y_i_i_i_i_i38_i] & -954437177) >>> 0) % 63 << 1;
  20469.               HEAP[$this_addr_i1_i_i_i] = $112;
  20470.               HEAP[$base_addr_i_i_i41_i] = $114;
  20471.               HEAP[$len_addr_i_i_i42_i] = $mul_i_i_i86_i;
  20472.               var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  20473.               HEAP[$p_i_i_i43_i] = HEAP[$base_addr_i_i_i41_i];
  20474.               do {
  20475.                 if (HEAP[$this1_i2_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i43_i] >>> 0) {
  20476.                   if (!(HEAP[$p_i_i_i43_i] >>> 0 <= HEAP[$this1_i2_i_i_i + 8 | 0] >>> 0)) {
  20477.                     var $148 = 0;
  20478.                     break;
  20479.                   }
  20480.                   var $148 = (HEAP[$this1_i2_i_i_i + 8 | 0] - HEAP[$p_i_i_i43_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i42_i] >>> 0;
  20481.                 } else {
  20482.                   var $148 = 0;
  20483.                 }
  20484.               } while (0);
  20485.               var $148;
  20486.               do {
  20487.                 if ($148 & 1) {
  20488.                   HEAP[$this_addr_i_i_i46_i] = $this1_i_i63_i;
  20489.                   HEAP[$this_addr_i_i_i_i45_i] = HEAP[$this_addr_i_i_i46_i];
  20490.                   HEAP[$this_addr_i_i_i_i_i44_i] = HEAP[$this_addr_i_i_i_i45_i] | 0;
  20491.                   var $this1_i_i_i_i_i103_i = HEAP[$this_addr_i_i_i_i_i44_i];
  20492.                   HEAP[$format_i_i_i47_i] = ((HEAP[$this1_i_i_i_i_i103_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i103_i + 1 | 0] & 255) & 65535;
  20493.                   if ((HEAP[$format_i_i_i47_i] & 240 | 0) == 0) {
  20494.                     var $169 = 1;
  20495.                     break;
  20496.                   }
  20497.                   var $169 = __ZN2OT11ValueFormat22sanitize_value_devicesEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEE($this1_i_i63_i, HEAP[$c_addr_i_i50_i], HEAP[$base_addr_i_i51_i], HEAP[$values_addr_i_i52_i]);
  20498.                 } else {
  20499.                   var $169 = 0;
  20500.                 }
  20501.               } while (0);
  20502.               var $169;
  20503.               var $175 = $169 & 1;
  20504.             } else {
  20505.               var $175 = 0;
  20506.             }
  20507.           } while (0);
  20508.           var $175;
  20509.           HEAP[$retval_i] = $175 & 1 & 1;
  20510.           break;
  20511.         } else if (($conv_i | 0) == 2) {
  20512.           var $180 = HEAP[$c_addr_i9];
  20513.           HEAP[$this_addr_i_i6] = $this1_i10 | 0;
  20514.           HEAP[$c_addr_i_i] = $180;
  20515.           var $this1_i_i13 = HEAP[$this_addr_i_i6];
  20516.           HEAP[$this_addr_i2_i_i] = HEAP[$c_addr_i_i];
  20517.           HEAP[$obj_addr_i_i_i] = $this1_i_i13;
  20518.           var $187 = HEAP[$obj_addr_i_i_i];
  20519.           HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i];
  20520.           HEAP[$base_addr_i_i_i_i] = $187;
  20521.           HEAP[$len_addr_i_i_i_i] = 8;
  20522.           var $this1_i_i4_i_i = HEAP[$this_addr_i_i1_i_i];
  20523.           HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  20524.           do {
  20525.             if (HEAP[$this1_i_i4_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  20526.               if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i + 8 | 0] >>> 0)) {
  20527.                 var $200 = 0;
  20528.                 break;
  20529.               }
  20530.               var $200 = (HEAP[$this1_i_i4_i_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  20531.             } else {
  20532.               var $200 = 0;
  20533.             }
  20534.           } while (0);
  20535.           var $200;
  20536.           do {
  20537.             if ($200 & 1) {
  20538.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i13 + 2 | 0, HEAP[$c_addr_i_i], $this1_i_i13)) {
  20539.                 var $306 = 0;
  20540.                 break;
  20541.               }
  20542.               var $211 = HEAP[$c_addr_i_i];
  20543.               HEAP[$this_addr_i7_i_i] = $this1_i_i13 + 6 | 0;
  20544.               HEAP[$this_addr_i_i6_i_i] = HEAP[$this_addr_i7_i_i] | 0;
  20545.               var $this1_i_i9_i_i = HEAP[$this_addr_i_i6_i_i];
  20546.               var $conv_i_i = ((HEAP[$this1_i_i9_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i9_i_i + 1 | 0] & 255) & 65535;
  20547.               HEAP[$this_addr_i_i_i4] = $this1_i_i13 + 4 | 0;
  20548.               HEAP[$c_addr_i_i_i] = $211;
  20549.               HEAP[$base_addr_i_i_i5] = $this1_i_i13;
  20550.               HEAP[$values_addr_i_i_i] = $this1_i_i13 + 8 | 0;
  20551.               HEAP[$count_addr_i_i_i] = $conv_i_i;
  20552.               var $this1_i_i_i14 = HEAP[$this_addr_i_i_i4];
  20553.               HEAP[$this_addr_i9_i_i_i] = $this1_i_i_i14;
  20554.               HEAP[$this_addr_i_i8_i_i_i] = HEAP[$this_addr_i9_i_i_i];
  20555.               HEAP[$this_addr_i_i_i7_i_i_i] = HEAP[$this_addr_i_i8_i_i_i] | 0;
  20556.               var $this1_i_i_i13_i_i_i = HEAP[$this_addr_i_i_i7_i_i_i];
  20557.               HEAP[$mask_addr_i_i_i_i_i] = ((HEAP[$this1_i_i_i13_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i13_i_i_i + 1 | 0] & 255) & 65535;
  20558.               HEAP[$y_i_i_i_i_i] = HEAP[$mask_addr_i_i_i_i_i] >>> 1 & -613566757;
  20559.               HEAP[$y_i_i_i_i_i] = -HEAP[$y_i_i_i_i_i] + HEAP[$mask_addr_i_i_i_i_i] + -(HEAP[$y_i_i_i_i_i] >>> 1 & -613566757) | 0;
  20560.               HEAP[$len_i_i_i] = (((HEAP[$y_i_i_i_i_i] >>> 3) + HEAP[$y_i_i_i_i_i] & -954437177) >>> 0) % 63;
  20561.               var $246 = HEAP[$c_addr_i_i_i];
  20562.               var $248 = HEAP[$values_addr_i_i_i];
  20563.               HEAP[$this_addr_i26_i_i_i] = $this1_i_i_i14;
  20564.               HEAP[$this_addr_i_i25_i_i_i] = HEAP[$this_addr_i26_i_i_i];
  20565.               HEAP[$this_addr_i_i_i24_i_i_i] = HEAP[$this_addr_i_i25_i_i_i];
  20566.               HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i24_i_i_i] | 0;
  20567.               var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  20568.               HEAP[$mask_addr_i_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  20569.               HEAP[$y_i_i_i_i_i_i] = HEAP[$mask_addr_i_i_i_i_i_i] >>> 1 & -613566757;
  20570.               HEAP[$y_i_i_i_i_i_i] = -HEAP[$y_i_i_i_i_i_i] + HEAP[$mask_addr_i_i_i_i_i_i] + -(HEAP[$y_i_i_i_i_i_i] >>> 1 & -613566757) | 0;
  20571.               L44 : do {
  20572.                 if (__ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($246, $248, (((HEAP[$y_i_i_i_i_i_i] >>> 3) + HEAP[$y_i_i_i_i_i_i] & -954437177) >>> 0) % 63 << 1, HEAP[$count_addr_i_i_i])) {
  20573.                   HEAP[$this_addr_i_i_i_i] = $this1_i_i_i14;
  20574.                   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i];
  20575.                   HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  20576.                   var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  20577.                   HEAP[$format_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  20578.                   if ((HEAP[$format_i_i_i_i] & 240 | 0) == 0) {
  20579.                     HEAP[$retval_i_i_i] = 1;
  20580.                     break;
  20581.                   }
  20582.                   HEAP[$i_i_i_i] = 0;
  20583.                   L50 : do {
  20584.                     if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_addr_i_i_i] >>> 0) {
  20585.                       while (1) {
  20586.                         if (!__ZN2OT11ValueFormat22sanitize_value_devicesEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEE($this1_i_i_i14, HEAP[$c_addr_i_i_i], HEAP[$base_addr_i_i_i5], HEAP[$values_addr_i_i_i])) {
  20587.                           break;
  20588.                         }
  20589.                         HEAP[$values_addr_i_i_i] = (HEAP[$len_i_i_i] << 1) + HEAP[$values_addr_i_i_i] | 0;
  20590.                         HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  20591.                         if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_addr_i_i_i] >>> 0) {
  20592.                           break L50;
  20593.                         }
  20594.                       }
  20595.                       HEAP[$retval_i_i_i] = 0;
  20596.                       break L44;
  20597.                     }
  20598.                   } while (0);
  20599.                   HEAP[$retval_i_i_i] = 1;
  20600.                 } else {
  20601.                   HEAP[$retval_i_i_i] = 0;
  20602.                 }
  20603.               } while (0);
  20604.               var $306 = HEAP[$retval_i_i_i];
  20605.             } else {
  20606.               var $306 = 0;
  20607.             }
  20608.           } while (0);
  20609.           var $306;
  20610.           HEAP[$retval_i] = $306 & 1 & 1;
  20611.           break;
  20612.         } else {
  20613.           HEAP[$retval_i] = 1;
  20614.           break;
  20615.         }
  20616.       } else {
  20617.         HEAP[$retval_i] = 0;
  20618.       }
  20619.     } while (0);
  20620.     $retval = HEAP[$retval_i] & 1;
  20621.     var $1670 = $retval;
  20622.     STACKTOP = __stackBase__;
  20623.     return $1670;
  20624.   } else if (($32 | 0) == 2) {
  20625.     HEAP[$this_addr_i57] = $this1 | 0;
  20626.     HEAP[$c_addr_i58] = $c_addr;
  20627.     var $this1_i59 = HEAP[$this_addr_i57];
  20628.     var $321 = HEAP[$c_addr_i58];
  20629.     HEAP[$this_addr_i11_i38] = $this1_i59 | 0;
  20630.     HEAP[$c_addr_i12_i39] = $321;
  20631.     var $this1_i13_i62 = HEAP[$this_addr_i11_i38];
  20632.     HEAP[$this_addr_i_i8_i35] = HEAP[$c_addr_i12_i39];
  20633.     HEAP[$obj_addr_i_i9_i36] = $this1_i13_i62;
  20634.     var $328 = HEAP[$obj_addr_i_i9_i36];
  20635.     HEAP[$this_addr_i_i_i4_i31] = HEAP[$this_addr_i_i8_i35];
  20636.     HEAP[$base_addr_i_i_i5_i32] = $328;
  20637.     HEAP[$len_addr_i_i_i6_i33] = 2;
  20638.     var $this1_i_i_i15_i64 = HEAP[$this_addr_i_i_i4_i31];
  20639.     HEAP[$p_i_i_i7_i34] = HEAP[$base_addr_i_i_i5_i32];
  20640.     do {
  20641.       if (HEAP[$this1_i_i_i15_i64 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i34] >>> 0) {
  20642.         if (!(HEAP[$p_i_i_i7_i34] >>> 0 <= HEAP[$this1_i_i_i15_i64 + 8 | 0] >>> 0)) {
  20643.           var $341 = 0;
  20644.           break;
  20645.         }
  20646.         var $341 = (HEAP[$this1_i_i_i15_i64 + 8 | 0] - HEAP[$p_i_i_i7_i34] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i33] >>> 0;
  20647.       } else {
  20648.         var $341 = 0;
  20649.       }
  20650.     } while (0);
  20651.     var $341;
  20652.     do {
  20653.       if ($341 & 1 & 1) {
  20654.         HEAP[$this_addr_i34_i] = $this1_i59 | 0;
  20655.         HEAP[$this_addr_i_i33_i] = HEAP[$this_addr_i34_i] | 0;
  20656.         var $this1_i_i36_i = HEAP[$this_addr_i_i33_i];
  20657.         var $conv_i93 = ((HEAP[$this1_i_i36_i | 0] & 255) << 8) + (HEAP[$this1_i_i36_i + 1 | 0] & 255) & 65535;
  20658.         if (($conv_i93 | 0) == 1) {
  20659.           var $359 = HEAP[$c_addr_i58];
  20660.           HEAP[$this_addr_i53_i] = $this1_i59 | 0;
  20661.           HEAP[$c_addr_i54_i] = $359;
  20662.           var $this1_i57_i = HEAP[$this_addr_i53_i];
  20663.           HEAP[$this_addr_i3_i_i] = $this1_i57_i + 4 | 0;
  20664.           HEAP[$this_addr_i_i2_i_i21] = HEAP[$this_addr_i3_i_i];
  20665.           HEAP[$this_addr_i_i_i1_i_i] = HEAP[$this_addr_i_i2_i_i21] | 0;
  20666.           var $this1_i_i_i7_i_i = HEAP[$this_addr_i_i_i1_i_i];
  20667.           HEAP[$mask_addr_i_i_i44_i] = ((HEAP[$this1_i_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i7_i_i + 1 | 0] & 255) & 65535;
  20668.           HEAP[$y_i_i_i45_i] = HEAP[$mask_addr_i_i_i44_i] >>> 1 & -613566757;
  20669.           HEAP[$y_i_i_i45_i] = -HEAP[$y_i_i_i45_i] + HEAP[$mask_addr_i_i_i44_i] + -(HEAP[$y_i_i_i45_i] >>> 1 & -613566757) | 0;
  20670.           HEAP[$len1_i55_i] = (((HEAP[$y_i_i_i45_i] >>> 3) + HEAP[$y_i_i_i45_i] & -954437177) >>> 0) % 63;
  20671.           HEAP[$this_addr_i22_i43_i] = $this1_i57_i + 6 | 0;
  20672.           HEAP[$this_addr_i_i21_i42_i] = HEAP[$this_addr_i22_i43_i];
  20673.           HEAP[$this_addr_i_i_i20_i_i] = HEAP[$this_addr_i_i21_i42_i] | 0;
  20674.           var $this1_i_i_i26_i_i = HEAP[$this_addr_i_i_i20_i_i];
  20675.           HEAP[$mask_addr_i_i18_i_i] = ((HEAP[$this1_i_i_i26_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i26_i_i + 1 | 0] & 255) & 65535;
  20676.           HEAP[$y_i_i19_i_i] = HEAP[$mask_addr_i_i18_i_i] >>> 1 & -613566757;
  20677.           HEAP[$y_i_i19_i_i] = -HEAP[$y_i_i19_i_i] + HEAP[$mask_addr_i_i18_i_i] + -(HEAP[$y_i_i19_i_i] >>> 1 & -613566757) | 0;
  20678.           HEAP[$len2_i56_i] = (((HEAP[$y_i_i19_i_i] >>> 3) + HEAP[$y_i_i19_i_i] & -954437177) >>> 0) % 63;
  20679.           HEAP[$closure_i_i | 0] = $this1_i57_i;
  20680.           HEAP[$closure_i_i + 4 | 0] = $this1_i57_i + 4 | 0;
  20681.           HEAP[$closure_i_i + 8 | 0] = HEAP[$len1_i55_i];
  20682.           HEAP[$closure_i_i + 12 | 0] = HEAP[$len1_i55_i] + HEAP[$len2_i56_i] + 1 | 0;
  20683.           HEAP[$this_addr_i52_i_i] = HEAP[$c_addr_i54_i];
  20684.           HEAP[$obj_addr_i_i41_i] = $this1_i57_i;
  20685.           var $411 = HEAP[$obj_addr_i_i41_i];
  20686.           HEAP[$this_addr_i_i50_i_i] = HEAP[$this_addr_i52_i_i];
  20687.           HEAP[$base_addr_i_i51_i_i] = $411;
  20688.           HEAP[$len_addr_i_i_i39_i] = 10;
  20689.           var $this1_i_i54_i_i = HEAP[$this_addr_i_i50_i_i];
  20690.           HEAP[$p_i_i_i40_i] = HEAP[$base_addr_i_i51_i_i];
  20691.           do {
  20692.             if (HEAP[$this1_i_i54_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i40_i] >>> 0) {
  20693.               if (!(HEAP[$p_i_i_i40_i] >>> 0 <= HEAP[$this1_i_i54_i_i + 8 | 0] >>> 0)) {
  20694.                 var $424 = 0;
  20695.                 break;
  20696.               }
  20697.               var $424 = (HEAP[$this1_i_i54_i_i + 8 | 0] - HEAP[$p_i_i_i40_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i39_i] >>> 0;
  20698.             } else {
  20699.               var $424 = 0;
  20700.             }
  20701.           } while (0);
  20702.           var $424;
  20703.           do {
  20704.             if ($424 & 1) {
  20705.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i57_i + 2 | 0, HEAP[$c_addr_i54_i], $this1_i57_i)) {
  20706.                 var $699 = 0;
  20707.                 break;
  20708.               }
  20709.               var $436 = HEAP[$c_addr_i54_i];
  20710.               HEAP[$this_addr_i_i51_i] = $this1_i57_i + 8 | 0;
  20711.               HEAP[$c_addr_i_i_i26] = $436;
  20712.               HEAP[$base_addr_i_i_i27] = $this1_i57_i;
  20713.               HEAP[$user_data_addr_i_i_i] = $closure_i_i;
  20714.               var $this1_i_i88_i = HEAP[$this_addr_i_i51_i];
  20715.               var $445 = HEAP[$c_addr_i_i_i26];
  20716.               HEAP[$this_addr_i12_i_i_i] = $this1_i_i88_i;
  20717.               HEAP[$c_addr_i13_i_i_i] = $445;
  20718.               var $this1_i14_i_i_i = HEAP[$this_addr_i12_i_i_i];
  20719.               HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i13_i_i_i];
  20720.               HEAP[$obj_addr_i_i8_i_i_i] = $this1_i14_i_i_i;
  20721.               var $452 = HEAP[$obj_addr_i_i8_i_i_i];
  20722.               HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  20723.               HEAP[$base_addr_i_i_i5_i_i_i] = $452;
  20724.               HEAP[$len_addr_i_i_i6_i_i_i] = 2;
  20725.               var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  20726.               HEAP[$p_i_i_i7_i_i_i] = HEAP[$base_addr_i_i_i5_i_i_i];
  20727.               do {
  20728.                 if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i_i_i] >>> 0) {
  20729.                   if (!(HEAP[$p_i_i_i7_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  20730.                     var $465 = 0;
  20731.                     break;
  20732.                   }
  20733.                   var $465 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i7_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i_i_i] >>> 0;
  20734.                 } else {
  20735.                   var $465 = 0;
  20736.                 }
  20737.               } while (0);
  20738.               var $465;
  20739.               if ($465 & 1) {
  20740.                 var $473 = HEAP[$c_addr_i13_i_i_i];
  20741.                 HEAP[$this_addr_i_i10_i_i_i] = $this1_i14_i_i_i | 0;
  20742.                 HEAP[$this_addr_i_i_i9_i_i_i] = HEAP[$this_addr_i_i10_i_i_i] | 0;
  20743.                 var $this1_i_i_i30_i_i_i = HEAP[$this_addr_i_i_i9_i_i_i];
  20744.                 var $481 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($473, $this1_i14_i_i_i, 2, ((HEAP[$this1_i_i_i30_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i30_i_i_i + 1 | 0] & 255) & 65535);
  20745.               } else {
  20746.                 var $481 = 0;
  20747.               }
  20748.               var $481;
  20749.               L85 : do {
  20750.                 if ($481 & 1) {
  20751.                   HEAP[$this_addr_i46_i_i_i] = $this1_i_i88_i | 0;
  20752.                   HEAP[$this_addr_i_i45_i_i_i] = HEAP[$this_addr_i46_i_i_i] | 0;
  20753.                   var $this1_i_i48_i_i_i = HEAP[$this_addr_i_i45_i_i_i];
  20754.                   HEAP[$count_i_i_i] = ((HEAP[$this1_i_i48_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i48_i_i_i + 1 | 0] & 255) & 65535;
  20755.                   HEAP[$i_i_i_i28] = 0;
  20756.                   L88 : do {
  20757.                     if (HEAP[$i_i_i_i28] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  20758.                       var $array_i_i_i = $this1_i_i88_i + 2 | 0;
  20759.                       while (1) {
  20760.                         var $593 = HEAP[$c_addr_i_i_i26];
  20761.                         var $594 = HEAP[$base_addr_i_i_i27];
  20762.                         var $595 = HEAP[$user_data_addr_i_i_i];
  20763.                         HEAP[$this_addr_i_i_i49_i] = (HEAP[$i_i_i_i28] << 1) + $array_i_i_i | 0;
  20764.                         HEAP[$c_addr_i_i_i_i] = $593;
  20765.                         HEAP[$base_addr_i_i_i50_i] = $594;
  20766.                         HEAP[$user_data_addr_i_i_i_i] = $595;
  20767.                         var $this1_i_i_i101_i = HEAP[$this_addr_i_i_i49_i];
  20768.                         HEAP[$this_addr_i20_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  20769.                         HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i101_i;
  20770.                         var $598 = HEAP[$obj_addr_i_i_i_i_i];
  20771.                         HEAP[$this_addr_i_i16_i_i_i_i] = HEAP[$this_addr_i20_i_i_i_i];
  20772.                         HEAP[$base_addr_i_i17_i_i_i_i] = $598;
  20773.                         HEAP[$len_addr_i_i18_i_i_i_i] = 2;
  20774.                         var $this1_i_i22_i_i_i_i = HEAP[$this_addr_i_i16_i_i_i_i];
  20775.                         HEAP[$p_i_i19_i_i_i_i] = HEAP[$base_addr_i_i17_i_i_i_i];
  20776.                         do {
  20777.                           if (HEAP[$this1_i_i22_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i19_i_i_i_i] >>> 0) {
  20778.                             if (!(HEAP[$p_i_i19_i_i_i_i] >>> 0 <= HEAP[$this1_i_i22_i_i_i_i + 8 | 0] >>> 0)) {
  20779.                               var $607 = 0;
  20780.                               break;
  20781.                             }
  20782.                             var $607 = (HEAP[$this1_i_i22_i_i_i_i + 8 | 0] - HEAP[$p_i_i19_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i18_i_i_i_i] >>> 0;
  20783.                           } else {
  20784.                             var $607 = 0;
  20785.                           }
  20786.                         } while (0);
  20787.                         var $607;
  20788.                         do {
  20789.                           if ($607 & 1) {
  20790.                             HEAP[$this_addr_i31_i_i_i_i] = $this1_i_i_i101_i;
  20791.                             HEAP[$this_addr_i_i30_i_i_i_i] = HEAP[$this_addr_i31_i_i_i_i] | 0;
  20792.                             var $this1_i_i33_i_i_i_i = HEAP[$this_addr_i_i30_i_i_i_i];
  20793.                             HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i33_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i_i_i_i + 1 | 0] & 255) & 65535;
  20794.                             if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  20795.                               var $tobool_i29_i_i_i_i = 1;
  20796.                               HEAP[$retval_i_i_i_i] = $tobool_i29_i_i_i_i;
  20797.                               var $685 = $tobool_i29_i_i_i_i;
  20798.                               break;
  20799.                             }
  20800.                             var $616 = HEAP[$offset_i_i_i_i];
  20801.                             HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i50_i];
  20802.                             HEAP[$offset_addr_i_i_i_i_i] = $616;
  20803.                             HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  20804.                             var $621 = HEAP[$c_addr_i_i_i_i];
  20805.                             var $622 = HEAP[$user_data_addr_i_i_i_i];
  20806.                             HEAP[$this_addr_i4_i_i_i_i] = HEAP[$obj_i_i_i_i];
  20807.                             HEAP[$c_addr_i5_i_i_i_i] = $621;
  20808.                             HEAP[$closure_addr_i_i_i_i_i] = $622;
  20809.                             var $this1_i6_i_i_i_i = HEAP[$this_addr_i4_i_i_i_i];
  20810.                             HEAP[$this_addr_i_i2_i_i_i_i] = HEAP[$c_addr_i5_i_i_i_i];
  20811.                             HEAP[$obj_addr_i_i_i_i_i_i] = $this1_i6_i_i_i_i;
  20812.                             var $625 = HEAP[$obj_addr_i_i_i_i_i_i];
  20813.                             HEAP[$this_addr_i_i_i1_i_i_i_i] = HEAP[$this_addr_i_i2_i_i_i_i];
  20814.                             HEAP[$base_addr_i_i_i_i_i_i_i] = $625;
  20815.                             HEAP[$len_addr_i_i_i_i_i_i_i] = 2;
  20816.                             var $this1_i_i_i8_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i];
  20817.                             HEAP[$p_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  20818.                             do {
  20819.                               if (HEAP[$this1_i_i_i8_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i] >>> 0) {
  20820.                                 if (!(HEAP[$p_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i8_i_i_i_i + 8 | 0] >>> 0)) {
  20821.                                   var $634 = 0;
  20822.                                   break;
  20823.                                 }
  20824.                                 var $634 = (HEAP[$this1_i_i_i8_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i] >>> 0;
  20825.                               } else {
  20826.                                 var $634 = 0;
  20827.                               }
  20828.                             } while (0);
  20829.                             var $634;
  20830.                             do {
  20831.                               if ($634 & 1) {
  20832.                                 var $636 = HEAP[$c_addr_i5_i_i_i_i];
  20833.                                 var $mul_i_i_i_i_i = HEAP[HEAP[$closure_addr_i_i_i_i_i] + 12 | 0] << 1;
  20834.                                 HEAP[$this_addr_i8_i_i_i_i_i] = $this1_i6_i_i_i_i | 0;
  20835.                                 HEAP[$this_addr_i_i7_i_i_i_i_i] = HEAP[$this_addr_i8_i_i_i_i_i] | 0;
  20836.                                 var $this1_i_i11_i_i_i_i_i = HEAP[$this_addr_i_i7_i_i_i_i_i];
  20837.                                 if (!__ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($636, $this1_i6_i_i_i_i + 2 | 0, $mul_i_i_i_i_i, ((HEAP[$this1_i_i11_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i11_i_i_i_i_i + 1 | 0] & 255) & 65535)) {
  20838.                                   label = 76;
  20839.                                   break;
  20840.                                 }
  20841.                                 HEAP[$this_addr_i2_i_i_i_i_i] = $this1_i6_i_i_i_i | 0;
  20842.                                 HEAP[$this_addr_i_i1_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i] | 0;
  20843.                                 var $this1_i_i4_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i];
  20844.                                 HEAP[$count_i_i_i_i_i] = ((HEAP[$this1_i_i4_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i_i_i_i_i + 1 | 0] & 255) & 65535;
  20845.                                 HEAP[$X_addr_i_i_i_i_i_i] = $this1_i6_i_i_i_i + 2 | 0;
  20846.                                 HEAP[$record_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  20847.                                 if (__ZN2OT11ValueFormat29sanitize_values_stride_unsafeEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEEjj(HEAP[HEAP[$closure_addr_i_i_i_i_i] + 4 | 0], HEAP[$c_addr_i5_i_i_i_i], HEAP[HEAP[$closure_addr_i_i_i_i_i] | 0], HEAP[$record_i_i_i_i_i] + 2 | 0, HEAP[$count_i_i_i_i_i], HEAP[HEAP[$closure_addr_i_i_i_i_i] + 12 | 0])) {
  20848.                                   var $667 = __ZN2OT11ValueFormat29sanitize_values_stride_unsafeEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEEjj(HEAP[HEAP[$closure_addr_i_i_i_i_i] + 4 | 0] + 2 | 0, HEAP[$c_addr_i5_i_i_i_i], HEAP[HEAP[$closure_addr_i_i_i_i_i] | 0], (HEAP[HEAP[$closure_addr_i_i_i_i_i] + 8 | 0] << 1) + HEAP[$record_i_i_i_i_i] + 2 | 0, HEAP[$count_i_i_i_i_i], HEAP[HEAP[$closure_addr_i_i_i_i_i] + 12 | 0]);
  20849.                                 } else {
  20850.                                   var $667 = 0;
  20851.                                 }
  20852.                                 var $667;
  20853.                                 var $tobool_i_i_i_i_i_i = $667 & 1;
  20854.                                 HEAP[$retval_i3_i_i_i_i] = $tobool_i_i_i_i_i_i;
  20855.                                 var $669 = $tobool_i_i_i_i_i_i;
  20856.                                 break;
  20857.                               } else {
  20858.                                 label = 76;
  20859.                               }
  20860.                             } while (0);
  20861.                             if (label == 76) {
  20862.                               label = 0;
  20863.                               var $tobool_i6_i_i_i_i_i = 0;
  20864.                               HEAP[$retval_i3_i_i_i_i] = $tobool_i6_i_i_i_i_i;
  20865.                               var $669 = $tobool_i6_i_i_i_i_i;
  20866.                             }
  20867.                             var $669;
  20868.                             if ($669) {
  20869.                               var $683 = 1;
  20870.                             } else {
  20871.                               var $670 = HEAP[$c_addr_i_i_i_i];
  20872.                               HEAP[$this_addr_i_i_i_i47_i] = $this1_i_i_i101_i;
  20873.                               HEAP[$c_addr_i_i_i_i_i] = $670;
  20874.                               var $this1_i_i_i_i113_i = HEAP[$this_addr_i_i_i_i47_i];
  20875.                               HEAP[$this_addr_i_i_i_i_i46_i] = HEAP[$c_addr_i_i_i_i_i];
  20876.                               HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i113_i;
  20877.                               HEAP[$len_addr_i_i_i_i_i_i] = 2;
  20878.                               var $this1_i_i_i_i_i114_i = HEAP[$this_addr_i_i_i_i_i46_i];
  20879.                               do {
  20880.                                 if (HEAP[$this1_i_i_i_i_i114_i + 16 | 0] >>> 0 >= 100) {
  20881.                                   HEAP[$retval_i_i_i_i_i_i] = 0;
  20882.                                   label = 85;
  20883.                                   break;
  20884.                                 } else {
  20885.                                   HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  20886.                                   var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i114_i + 16 | 0;
  20887.                                   HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  20888.                                   var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i114_i + 12 | 0] & 1 & 1;
  20889.                                   HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  20890.                                   if (!$tobool_i_i_i_i_i_i_i) {
  20891.                                     label = 85;
  20892.                                     break;
  20893.                                   }
  20894.                                   HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i113_i;
  20895.                                   HEAP[$i_addr_i_i_i_i_i_i] = 0;
  20896.                                   var $679 = HEAP[$i_addr_i_i_i_i_i_i];
  20897.                                   HEAP[$this_addr_i_i_i_i_i_i_i22] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  20898.                                   HEAP[$i_addr_i_i_i_i_i_i_i] = $679;
  20899.                                   var $this1_i_i_i_i_i_i_i110 = HEAP[$this_addr_i_i_i_i_i_i_i22];
  20900.                                   HEAP[$this1_i_i_i_i_i_i_i110 | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  20901.                                   HEAP[$this1_i_i_i_i_i_i_i110 + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  20902.                                   HEAP[$retval_i_i_i_i_i] = 1;
  20903.                                   break;
  20904.                                 }
  20905.                               } while (0);
  20906.                               if (label == 85) {
  20907.                                 label = 0;
  20908.                                 HEAP[$retval_i_i_i_i_i] = 0;
  20909.                               }
  20910.                               var $683 = HEAP[$retval_i_i_i_i_i];
  20911.                             }
  20912.                             var $683;
  20913.                             var $tobool_i_i_i_i117_i = $683 & 1;
  20914.                             HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i117_i;
  20915.                             var $685 = $tobool_i_i_i_i117_i;
  20916.                           } else {
  20917.                             var $tobool_i27_i_i_i_i = 0;
  20918.                             HEAP[$retval_i_i_i_i] = $tobool_i27_i_i_i_i;
  20919.                             var $685 = $tobool_i27_i_i_i_i;
  20920.                           }
  20921.                         } while (0);
  20922.                         var $685;
  20923.                         if (!$685) {
  20924.                           break;
  20925.                         }
  20926.                         HEAP[$i_i_i_i28] = HEAP[$i_i_i_i28] + 1 | 0;
  20927.                         if (HEAP[$i_i_i_i28] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  20928.                           break L88;
  20929.                         }
  20930.                       }
  20931.                       HEAP[$retval_i_i_i25] = 0;
  20932.                       break L85;
  20933.                     }
  20934.                   } while (0);
  20935.                   HEAP[$retval_i_i_i25] = 1;
  20936.                 } else {
  20937.                   HEAP[$retval_i_i_i25] = 0;
  20938.                 }
  20939.               } while (0);
  20940.               var $699 = HEAP[$retval_i_i_i25];
  20941.             } else {
  20942.               var $699 = 0;
  20943.             }
  20944.           } while (0);
  20945.           var $699;
  20946.           HEAP[$retval_i56] = $699 & 1 & 1;
  20947.           break;
  20948.         } else if (($conv_i93 | 0) == 2) {
  20949.           var $707 = HEAP[$c_addr_i58];
  20950.           HEAP[$this_addr_i_i52] = $this1_i59 | 0;
  20951.           HEAP[$c_addr_i_i53] = $707;
  20952.           var $this1_i_i121 = HEAP[$this_addr_i_i52];
  20953.           HEAP[$this_addr_i_i_i49] = HEAP[$c_addr_i_i53];
  20954.           HEAP[$obj_addr_i_i_i50] = $this1_i_i121;
  20955.           var $720 = HEAP[$obj_addr_i_i_i50];
  20956.           HEAP[$this_addr_i_i_i_i45] = HEAP[$this_addr_i_i_i49];
  20957.           HEAP[$base_addr_i_i_i_i46] = $720;
  20958.           HEAP[$len_addr_i_i_i_i47] = 16;
  20959.           var $this1_i_i_i_i123 = HEAP[$this_addr_i_i_i_i45];
  20960.           HEAP[$p_i_i_i_i48] = HEAP[$base_addr_i_i_i_i46];
  20961.           do {
  20962.             if (HEAP[$this1_i_i_i_i123 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i48] >>> 0) {
  20963.               if (!(HEAP[$p_i_i_i_i48] >>> 0 <= HEAP[$this1_i_i_i_i123 + 8 | 0] >>> 0)) {
  20964.                 var $733 = 0;
  20965.                 break;
  20966.               }
  20967.               var $733 = (HEAP[$this1_i_i_i_i123 + 8 | 0] - HEAP[$p_i_i_i_i48] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i47] >>> 0;
  20968.             } else {
  20969.               var $733 = 0;
  20970.             }
  20971.           } while (0);
  20972.           var $733;
  20973.           do {
  20974.             if ($733 & 1) {
  20975.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i121 + 2 | 0, HEAP[$c_addr_i_i53], $this1_i_i121)) {
  20976.                 label = 101;
  20977.                 break;
  20978.               }
  20979.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i121 + 8 | 0, HEAP[$c_addr_i_i53], $this1_i_i121)) {
  20980.                 label = 101;
  20981.                 break;
  20982.               }
  20983.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i121 + 10 | 0, HEAP[$c_addr_i_i53], $this1_i_i121)) {
  20984.                 label = 101;
  20985.                 break;
  20986.               }
  20987.               HEAP[$this_addr_i74_i_i] = $this1_i_i121 + 4 | 0;
  20988.               HEAP[$this_addr_i_i73_i_i] = HEAP[$this_addr_i74_i_i];
  20989.               HEAP[$this_addr_i_i_i72_i_i] = HEAP[$this_addr_i_i73_i_i] | 0;
  20990.               var $this1_i_i_i78_i_i = HEAP[$this_addr_i_i_i72_i_i];
  20991.               HEAP[$mask_addr_i_i70_i_i] = ((HEAP[$this1_i_i_i78_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i78_i_i + 1 | 0] & 255) & 65535;
  20992.               HEAP[$y_i_i71_i_i] = HEAP[$mask_addr_i_i70_i_i] >>> 1 & -613566757;
  20993.               HEAP[$y_i_i71_i_i] = -HEAP[$y_i_i71_i_i] + HEAP[$mask_addr_i_i70_i_i] + -(HEAP[$y_i_i71_i_i] >>> 1 & -613566757) | 0;
  20994.               HEAP[$len1_i_i] = (((HEAP[$y_i_i71_i_i] >>> 3) + HEAP[$y_i_i71_i_i] & -954437177) >>> 0) % 63;
  20995.               HEAP[$this_addr_i62_i_i] = $this1_i_i121 + 6 | 0;
  20996.               HEAP[$this_addr_i_i61_i_i] = HEAP[$this_addr_i62_i_i];
  20997.               HEAP[$this_addr_i_i_i60_i_i] = HEAP[$this_addr_i_i61_i_i] | 0;
  20998.               var $this1_i_i_i66_i_i = HEAP[$this_addr_i_i_i60_i_i];
  20999.               HEAP[$mask_addr_i_i_i_i] = ((HEAP[$this1_i_i_i66_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i66_i_i + 1 | 0] & 255) & 65535;
  21000.               HEAP[$y_i_i_i_i] = HEAP[$mask_addr_i_i_i_i] >>> 1 & -613566757;
  21001.               HEAP[$y_i_i_i_i] = -HEAP[$y_i_i_i_i] + HEAP[$mask_addr_i_i_i_i] + -(HEAP[$y_i_i_i_i] >>> 1 & -613566757) | 0;
  21002.               HEAP[$len2_i_i] = (((HEAP[$y_i_i_i_i] >>> 3) + HEAP[$y_i_i_i_i] & -954437177) >>> 0) % 63;
  21003.               HEAP[$stride_i_i] = HEAP[$len2_i_i] + HEAP[$len1_i_i] | 0;
  21004.               HEAP[$this_addr_i31_i_i] = $this1_i_i121 + 4 | 0;
  21005.               HEAP[$this_addr_i_i30_i_i] = HEAP[$this_addr_i31_i_i];
  21006.               HEAP[$this_addr_i_i_i29_i_i] = HEAP[$this_addr_i_i30_i_i];
  21007.               HEAP[$this_addr_i_i_i_i28_i_i] = HEAP[$this_addr_i_i_i29_i_i] | 0;
  21008.               var $this1_i_i_i_i36_i_i = HEAP[$this_addr_i_i_i_i28_i_i];
  21009.               HEAP[$mask_addr_i_i_i26_i_i] = ((HEAP[$this1_i_i_i_i36_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i36_i_i + 1 | 0] & 255) & 65535;
  21010.               HEAP[$y_i_i_i27_i_i] = HEAP[$mask_addr_i_i_i26_i_i] >>> 1 & -613566757;
  21011.               HEAP[$y_i_i_i27_i_i] = -HEAP[$y_i_i_i27_i_i] + HEAP[$mask_addr_i_i_i26_i_i] + -(HEAP[$y_i_i_i27_i_i] >>> 1 & -613566757) | 0;
  21012.               var $rem_i_i_i58_i_i = (((HEAP[$y_i_i_i27_i_i] >>> 3) + HEAP[$y_i_i_i27_i_i] & -954437177) >>> 0) % 63;
  21013.               HEAP[$this_addr_i22_i_i] = $this1_i_i121 + 6 | 0;
  21014.               HEAP[$this_addr_i_i21_i_i] = HEAP[$this_addr_i22_i_i];
  21015.               HEAP[$this_addr_i_i_i_i_i43] = HEAP[$this_addr_i_i21_i_i];
  21016.               HEAP[$this_addr_i_i_i_i_i_i42] = HEAP[$this_addr_i_i_i_i_i43] | 0;
  21017.               var $this1_i_i_i_i_i_i146 = HEAP[$this_addr_i_i_i_i_i_i42];
  21018.               HEAP[$mask_addr_i_i_i_i_i40] = ((HEAP[$this1_i_i_i_i_i_i146 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i146 + 1 | 0] & 255) & 65535;
  21019.               HEAP[$y_i_i_i_i_i41] = HEAP[$mask_addr_i_i_i_i_i40] >>> 1 & -613566757;
  21020.               HEAP[$y_i_i_i_i_i41] = -HEAP[$y_i_i_i_i_i41] + HEAP[$mask_addr_i_i_i_i_i40] + -(HEAP[$y_i_i_i_i_i41] >>> 1 & -613566757) | 0;
  21021.               HEAP[$record_size_i_i] = (((HEAP[$y_i_i_i_i_i41] >>> 3) + HEAP[$y_i_i_i_i_i41] & -954437177) >>> 0) % 63 + $rem_i_i_i58_i_i << 1;
  21022.               HEAP[$this_addr_i8_i_i] = $this1_i_i121 + 12 | 0;
  21023.               HEAP[$this_addr_i_i7_i_i] = HEAP[$this_addr_i8_i_i] | 0;
  21024.               var $this1_i_i11_i_i = HEAP[$this_addr_i_i7_i_i];
  21025.               var $conv_i_i168 = ((HEAP[$this1_i_i11_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i11_i_i + 1 | 0] & 255) & 65535;
  21026.               HEAP[$this_addr_i4_i_i] = $this1_i_i121 + 14 | 0;
  21027.               HEAP[$this_addr_i_i3_i_i] = HEAP[$this_addr_i4_i_i] | 0;
  21028.               var $this1_i_i6_i_i = HEAP[$this_addr_i_i3_i_i];
  21029.               var $mul_i_i = Math.imul(((HEAP[$this1_i_i6_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i + 1 | 0] & 255) & 65535, $conv_i_i168);
  21030.               HEAP[$count_i_i] = $mul_i_i;
  21031.               do {
  21032.                 if (__ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj(HEAP[$c_addr_i_i53], $this1_i_i121 + 16 | 0, HEAP[$record_size_i_i], HEAP[$count_i_i])) {
  21033.                   if (!__ZN2OT11ValueFormat29sanitize_values_stride_unsafeEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEEjj($this1_i_i121 + 4 | 0, HEAP[$c_addr_i_i53], $this1_i_i121, $this1_i_i121 + 16 | 0, HEAP[$count_i_i], HEAP[$stride_i_i])) {
  21034.                     var $858 = 0;
  21035.                     break;
  21036.                   }
  21037.                   var $858 = __ZN2OT11ValueFormat29sanitize_values_stride_unsafeEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEEjj($this1_i_i121 + 6 | 0, HEAP[$c_addr_i_i53], $this1_i_i121, (HEAP[$len1_i_i] << 1) + $this1_i_i121 + 16 | 0, HEAP[$count_i_i], HEAP[$stride_i_i]);
  21038.                 } else {
  21039.                   var $858 = 0;
  21040.                 }
  21041.               } while (0);
  21042.               var $858;
  21043.               HEAP[$retval_i_i] = $858 & 1;
  21044.               break;
  21045.             } else {
  21046.               label = 101;
  21047.             }
  21048.           } while (0);
  21049.           if (label == 101) {
  21050.             HEAP[$retval_i_i] = 0;
  21051.           }
  21052.           HEAP[$retval_i56] = HEAP[$retval_i_i] & 1;
  21053.           break;
  21054.         } else {
  21055.           HEAP[$retval_i56] = 1;
  21056.           break;
  21057.         }
  21058.       } else {
  21059.         HEAP[$retval_i56] = 0;
  21060.       }
  21061.     } while (0);
  21062.     $retval = HEAP[$retval_i56] & 1;
  21063.     var $1670 = $retval;
  21064.     STACKTOP = __stackBase__;
  21065.     return $1670;
  21066.   } else if (($32 | 0) == 3) {
  21067.     HEAP[$this_addr_i224] = $this1 | 0;
  21068.     HEAP[$c_addr_i225] = $c_addr;
  21069.     var $this1_i226 = HEAP[$this_addr_i224];
  21070.     var $880 = HEAP[$c_addr_i225];
  21071.     HEAP[$this_addr_i8_i] = $this1_i226 | 0;
  21072.     HEAP[$c_addr_i9_i] = $880;
  21073.     var $this1_i10_i = HEAP[$this_addr_i8_i];
  21074.     HEAP[$this_addr_i_i6_i] = HEAP[$c_addr_i9_i];
  21075.     HEAP[$obj_addr_i_i_i196] = $this1_i10_i;
  21076.     var $887 = HEAP[$obj_addr_i_i_i196];
  21077.     HEAP[$this_addr_i_i_i4_i192] = HEAP[$this_addr_i_i6_i];
  21078.     HEAP[$base_addr_i_i_i5_i193] = $887;
  21079.     HEAP[$len_addr_i_i_i_i194] = 2;
  21080.     var $this1_i_i_i12_i = HEAP[$this_addr_i_i_i4_i192];
  21081.     HEAP[$p_i_i_i_i195] = HEAP[$base_addr_i_i_i5_i193];
  21082.     do {
  21083.       if (HEAP[$this1_i_i_i12_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i195] >>> 0) {
  21084.         if (!(HEAP[$p_i_i_i_i195] >>> 0 <= HEAP[$this1_i_i_i12_i + 8 | 0] >>> 0)) {
  21085.           var $900 = 0;
  21086.           break;
  21087.         }
  21088.         var $900 = (HEAP[$this1_i_i_i12_i + 8 | 0] - HEAP[$p_i_i_i_i195] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i194] >>> 0;
  21089.       } else {
  21090.         var $900 = 0;
  21091.       }
  21092.     } while (0);
  21093.     var $900;
  21094.     do {
  21095.       if ($900 & 1 & 1) {
  21096.         HEAP[$this_addr_i21_i] = $this1_i226 | 0;
  21097.         HEAP[$this_addr_i_i20_i] = HEAP[$this_addr_i21_i] | 0;
  21098.         var $this1_i_i23_i = HEAP[$this_addr_i_i20_i];
  21099.         if ((((HEAP[$this1_i_i23_i | 0] & 255) << 8) + (HEAP[$this1_i_i23_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  21100.           HEAP[$retval_i223] = 1;
  21101.           break;
  21102.         }
  21103.         var $918 = HEAP[$c_addr_i225];
  21104.         HEAP[$this_addr_i_i219] = $this1_i226 | 0;
  21105.         HEAP[$c_addr_i_i220] = $918;
  21106.         var $this1_i_i255 = HEAP[$this_addr_i_i219];
  21107.         if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i255 + 2 | 0, HEAP[$c_addr_i_i220], $this1_i_i255)) {
  21108.           var $925 = HEAP[$c_addr_i_i220];
  21109.           HEAP[$this_addr_i_i_i213] = $this1_i_i255 + 4 | 0;
  21110.           HEAP[$c_addr_i_i_i214] = $925;
  21111.           HEAP[$base_addr_i_i_i215] = $this1_i_i255;
  21112.           var $this1_i_i_i258 = HEAP[$this_addr_i_i_i213];
  21113.           var $933 = HEAP[$c_addr_i_i_i214];
  21114.           HEAP[$this_addr_i4_i_i_i] = $this1_i_i_i258;
  21115.           HEAP[$c_addr_i5_i_i_i] = $933;
  21116.           var $this1_i6_i_i_i = HEAP[$this_addr_i4_i_i_i];
  21117.           HEAP[$this_addr_i2_i_i_i_i202] = HEAP[$c_addr_i5_i_i_i];
  21118.           HEAP[$obj_addr_i_i_i_i_i203] = $this1_i6_i_i_i;
  21119.           var $940 = HEAP[$obj_addr_i_i_i_i_i203];
  21120.           HEAP[$this_addr_i_i1_i_i_i_i198] = HEAP[$this_addr_i2_i_i_i_i202];
  21121.           HEAP[$base_addr_i_i_i_i_i_i199] = $940;
  21122.           HEAP[$len_addr_i_i_i_i_i_i200] = 2;
  21123.           var $this1_i_i4_i_i_i_i260 = HEAP[$this_addr_i_i1_i_i_i_i198];
  21124.           HEAP[$p_i_i_i_i_i_i201] = HEAP[$base_addr_i_i_i_i_i_i199];
  21125.           do {
  21126.             if (HEAP[$this1_i_i4_i_i_i_i260 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i201] >>> 0) {
  21127.               if (!(HEAP[$p_i_i_i_i_i_i201] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i260 + 8 | 0] >>> 0)) {
  21128.                 var $953 = 0;
  21129.                 break;
  21130.               }
  21131.               var $953 = (HEAP[$this1_i_i4_i_i_i_i260 + 8 | 0] - HEAP[$p_i_i_i_i_i_i201] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i200] >>> 0;
  21132.             } else {
  21133.               var $953 = 0;
  21134.             }
  21135.           } while (0);
  21136.           var $953;
  21137.           if ($953 & 1) {
  21138.             var $961 = HEAP[$c_addr_i5_i_i_i];
  21139.             HEAP[$this_addr_i_i_i_i_i205] = $this1_i6_i_i_i | 0;
  21140.             HEAP[$this_addr_i_i_i_i_i_i204] = HEAP[$this_addr_i_i_i_i_i205] | 0;
  21141.             var $this1_i_i_i_i_i_i278 = HEAP[$this_addr_i_i_i_i_i_i204];
  21142.             var $969 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($961, $this1_i6_i_i_i, 4, ((HEAP[$this1_i_i_i_i_i_i278 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i278 + 1 | 0] & 255) & 65535);
  21143.           } else {
  21144.             var $969 = 0;
  21145.           }
  21146.           var $969;
  21147.           L171 : do {
  21148.             if ($969 & 1) {
  21149.               HEAP[$this_addr_i13_i_i_i] = $this1_i_i_i258 | 0;
  21150.               HEAP[$this_addr_i_i12_i_i_i] = HEAP[$this_addr_i13_i_i_i] | 0;
  21151.               var $this1_i_i15_i_i_i = HEAP[$this_addr_i_i12_i_i_i];
  21152.               HEAP[$count_i_i_i216] = ((HEAP[$this1_i_i15_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i15_i_i_i + 1 | 0] & 255) & 65535;
  21153.               HEAP[$i_i_i_i217] = 0;
  21154.               L174 : do {
  21155.                 if (HEAP[$i_i_i_i217] >>> 0 < HEAP[$count_i_i_i216] >>> 0) {
  21156.                   var $array_i_i_i304 = $this1_i_i_i258 + 2 | 0;
  21157.                   while (1) {
  21158.                     var $989 = HEAP[$c_addr_i_i_i214];
  21159.                     var $990 = HEAP[$base_addr_i_i_i215];
  21160.                     HEAP[$this_addr_i_i_i_i207] = (HEAP[$i_i_i_i217] << 2) + $array_i_i_i304 | 0;
  21161.                     HEAP[$c_addr_i_i_i_i208] = $989;
  21162.                     HEAP[$base_addr_i_i_i_i209] = $990;
  21163.                     var $this1_i_i_i_i307 = HEAP[$this_addr_i_i_i_i207];
  21164.                     if (__ZN2OT15GenericOffsetToINS_6OffsetENS_6AnchorEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i_i_i307 | 0, HEAP[$c_addr_i_i_i_i208], HEAP[$base_addr_i_i_i_i209])) {
  21165.                       var $997 = __ZN2OT15GenericOffsetToINS_6OffsetENS_6AnchorEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i_i_i307 + 2 | 0, HEAP[$c_addr_i_i_i_i208], HEAP[$base_addr_i_i_i_i209]);
  21166.                     } else {
  21167.                       var $997 = 0;
  21168.                     }
  21169.                     var $997;
  21170.                     if (!($997 & 1)) {
  21171.                       break;
  21172.                     }
  21173.                     HEAP[$i_i_i_i217] = HEAP[$i_i_i_i217] + 1 | 0;
  21174.                     if (HEAP[$i_i_i_i217] >>> 0 >= HEAP[$count_i_i_i216] >>> 0) {
  21175.                       break L174;
  21176.                     }
  21177.                   }
  21178.                   HEAP[$retval_i_i_i212] = 0;
  21179.                   break L171;
  21180.                 }
  21181.               } while (0);
  21182.               HEAP[$retval_i_i_i212] = 1;
  21183.             } else {
  21184.               HEAP[$retval_i_i_i212] = 0;
  21185.             }
  21186.           } while (0);
  21187.           var $1011 = HEAP[$retval_i_i_i212];
  21188.         } else {
  21189.           var $1011 = 0;
  21190.         }
  21191.         var $1011;
  21192.         HEAP[$retval_i223] = $1011 & 1 & 1;
  21193.       } else {
  21194.         HEAP[$retval_i223] = 0;
  21195.       }
  21196.     } while (0);
  21197.     $retval = HEAP[$retval_i223] & 1;
  21198.     var $1670 = $retval;
  21199.     STACKTOP = __stackBase__;
  21200.     return $1670;
  21201.   } else if (($32 | 0) == 4) {
  21202.     HEAP[$this_addr_i356] = $this1 | 0;
  21203.     HEAP[$c_addr_i357] = $c_addr;
  21204.     var $this1_i358 = HEAP[$this_addr_i356];
  21205.     var $1026 = HEAP[$c_addr_i357];
  21206.     HEAP[$this_addr_i11_i339] = $this1_i358 | 0;
  21207.     HEAP[$c_addr_i12_i340] = $1026;
  21208.     var $this1_i13_i361 = HEAP[$this_addr_i11_i339];
  21209.     HEAP[$this_addr_i_i8_i336] = HEAP[$c_addr_i12_i340];
  21210.     HEAP[$obj_addr_i_i9_i337] = $this1_i13_i361;
  21211.     var $1033 = HEAP[$obj_addr_i_i9_i337];
  21212.     HEAP[$this_addr_i_i_i4_i332] = HEAP[$this_addr_i_i8_i336];
  21213.     HEAP[$base_addr_i_i_i5_i333] = $1033;
  21214.     HEAP[$len_addr_i_i_i6_i334] = 2;
  21215.     var $this1_i_i_i15_i363 = HEAP[$this_addr_i_i_i4_i332];
  21216.     HEAP[$p_i_i_i7_i335] = HEAP[$base_addr_i_i_i5_i333];
  21217.     do {
  21218.       if (HEAP[$this1_i_i_i15_i363 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i335] >>> 0) {
  21219.         if (!(HEAP[$p_i_i_i7_i335] >>> 0 <= HEAP[$this1_i_i_i15_i363 + 8 | 0] >>> 0)) {
  21220.           var $1046 = 0;
  21221.           break;
  21222.         }
  21223.         var $1046 = (HEAP[$this1_i_i_i15_i363 + 8 | 0] - HEAP[$p_i_i_i7_i335] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i334] >>> 0;
  21224.       } else {
  21225.         var $1046 = 0;
  21226.       }
  21227.     } while (0);
  21228.     var $1046;
  21229.     do {
  21230.       if ($1046 & 1 & 1) {
  21231.         HEAP[$this_addr_i34_i329] = $this1_i358 | 0;
  21232.         HEAP[$this_addr_i_i33_i328] = HEAP[$this_addr_i34_i329] | 0;
  21233.         var $this1_i_i36_i386 = HEAP[$this_addr_i_i33_i328];
  21234.         if ((((HEAP[$this1_i_i36_i386 | 0] & 255) << 8) + (HEAP[$this1_i_i36_i386 + 1 | 0] & 255) & 65535 | 0) != 1) {
  21235.           HEAP[$retval_i355] = 1;
  21236.           break;
  21237.         }
  21238.         var $1064 = HEAP[$c_addr_i357];
  21239.         HEAP[$this_addr_i_i351] = $this1_i358 | 0;
  21240.         HEAP[$c_addr_i_i352] = $1064;
  21241.         var $this1_i_i401 = HEAP[$this_addr_i_i351];
  21242.         HEAP[$this_addr_i2_i_i346] = HEAP[$c_addr_i_i352];
  21243.         HEAP[$obj_addr_i_i_i347] = $this1_i_i401;
  21244.         var $1071 = HEAP[$obj_addr_i_i_i347];
  21245.         HEAP[$this_addr_i_i1_i_i342] = HEAP[$this_addr_i2_i_i346];
  21246.         HEAP[$base_addr_i_i_i_i343] = $1071;
  21247.         HEAP[$len_addr_i_i_i_i344] = 12;
  21248.         var $this1_i_i4_i_i403 = HEAP[$this_addr_i_i1_i_i342];
  21249.         HEAP[$p_i_i_i_i345] = HEAP[$base_addr_i_i_i_i343];
  21250.         do {
  21251.           if (HEAP[$this1_i_i4_i_i403 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i345] >>> 0) {
  21252.             if (!(HEAP[$p_i_i_i_i345] >>> 0 <= HEAP[$this1_i_i4_i_i403 + 8 | 0] >>> 0)) {
  21253.               var $1084 = 0;
  21254.               break;
  21255.             }
  21256.             var $1084 = (HEAP[$this1_i_i4_i_i403 + 8 | 0] - HEAP[$p_i_i_i_i345] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i344] >>> 0;
  21257.           } else {
  21258.             var $1084 = 0;
  21259.           }
  21260.         } while (0);
  21261.         var $1084;
  21262.         do {
  21263.           if ($1084 & 1) {
  21264.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i401 + 2 | 0, HEAP[$c_addr_i_i352], $this1_i_i401)) {
  21265.               var $1110 = 0;
  21266.               break;
  21267.             }
  21268.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i401 + 4 | 0, HEAP[$c_addr_i_i352], $this1_i_i401)) {
  21269.               var $1110 = 0;
  21270.               break;
  21271.             }
  21272.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_9MarkArrayEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i401 + 8 | 0, HEAP[$c_addr_i_i352], $this1_i_i401)) {
  21273.               var $1110 = 0;
  21274.               break;
  21275.             }
  21276.             var $1102 = HEAP[$c_addr_i_i352];
  21277.             HEAP[$this_addr_i_i_i349] = $this1_i_i401 + 6 | 0;
  21278.             HEAP[$this_addr_i_i_i_i348] = HEAP[$this_addr_i_i_i349] | 0;
  21279.             var $this1_i_i_i_i426 = HEAP[$this_addr_i_i_i_i348];
  21280.             var $1110 = __ZN2OT15GenericOffsetToINS_6OffsetENS_12AnchorMatrixEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_($this1_i_i401 + 10 | 0, $1102, $this1_i_i401, ((HEAP[$this1_i_i_i_i426 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i426 + 1 | 0] & 255) & 65535);
  21281.           } else {
  21282.             var $1110 = 0;
  21283.           }
  21284.         } while (0);
  21285.         var $1110;
  21286.         HEAP[$retval_i355] = $1110 & 1 & 1;
  21287.       } else {
  21288.         HEAP[$retval_i355] = 0;
  21289.       }
  21290.     } while (0);
  21291.     $retval = HEAP[$retval_i355] & 1;
  21292.     var $1670 = $retval;
  21293.     STACKTOP = __stackBase__;
  21294.     return $1670;
  21295.   } else if (($32 | 0) == 5) {
  21296.     HEAP[$this_addr_i493] = $this1 | 0;
  21297.     HEAP[$c_addr_i494] = $c_addr;
  21298.     var $this1_i495 = HEAP[$this_addr_i493];
  21299.     var $1125 = HEAP[$c_addr_i494];
  21300.     HEAP[$this_addr_i11_i458] = $this1_i495 | 0;
  21301.     HEAP[$c_addr_i12_i459] = $1125;
  21302.     var $this1_i13_i498 = HEAP[$this_addr_i11_i458];
  21303.     HEAP[$this_addr_i_i8_i455] = HEAP[$c_addr_i12_i459];
  21304.     HEAP[$obj_addr_i_i9_i456] = $this1_i13_i498;
  21305.     var $1132 = HEAP[$obj_addr_i_i9_i456];
  21306.     HEAP[$this_addr_i_i_i4_i451] = HEAP[$this_addr_i_i8_i455];
  21307.     HEAP[$base_addr_i_i_i5_i452] = $1132;
  21308.     HEAP[$len_addr_i_i_i6_i453] = 2;
  21309.     var $this1_i_i_i15_i500 = HEAP[$this_addr_i_i_i4_i451];
  21310.     HEAP[$p_i_i_i7_i454] = HEAP[$base_addr_i_i_i5_i452];
  21311.     do {
  21312.       if (HEAP[$this1_i_i_i15_i500 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i454] >>> 0) {
  21313.         if (!(HEAP[$p_i_i_i7_i454] >>> 0 <= HEAP[$this1_i_i_i15_i500 + 8 | 0] >>> 0)) {
  21314.           var $1145 = 0;
  21315.           break;
  21316.         }
  21317.         var $1145 = (HEAP[$this1_i_i_i15_i500 + 8 | 0] - HEAP[$p_i_i_i7_i454] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i453] >>> 0;
  21318.       } else {
  21319.         var $1145 = 0;
  21320.       }
  21321.     } while (0);
  21322.     var $1145;
  21323.     do {
  21324.       if ($1145 & 1 & 1) {
  21325.         HEAP[$this_addr_i34_i448] = $this1_i495 | 0;
  21326.         HEAP[$this_addr_i_i33_i447] = HEAP[$this_addr_i34_i448] | 0;
  21327.         var $this1_i_i36_i523 = HEAP[$this_addr_i_i33_i447];
  21328.         if ((((HEAP[$this1_i_i36_i523 | 0] & 255) << 8) + (HEAP[$this1_i_i36_i523 + 1 | 0] & 255) & 65535 | 0) != 1) {
  21329.           HEAP[$retval_i492] = 1;
  21330.           break;
  21331.         }
  21332.         var $1163 = HEAP[$c_addr_i494];
  21333.         HEAP[$this_addr_i_i488] = $this1_i495 | 0;
  21334.         HEAP[$c_addr_i_i489] = $1163;
  21335.         var $this1_i_i538 = HEAP[$this_addr_i_i488];
  21336.         HEAP[$this_addr_i4_i_i464] = HEAP[$c_addr_i_i489];
  21337.         HEAP[$obj_addr_i_i_i465] = $this1_i_i538;
  21338.         var $1170 = HEAP[$obj_addr_i_i_i465];
  21339.         HEAP[$this_addr_i_i3_i_i460] = HEAP[$this_addr_i4_i_i464];
  21340.         HEAP[$base_addr_i_i_i_i461] = $1170;
  21341.         HEAP[$len_addr_i_i_i_i462] = 12;
  21342.         var $this1_i_i6_i_i540 = HEAP[$this_addr_i_i3_i_i460];
  21343.         HEAP[$p_i_i_i_i463] = HEAP[$base_addr_i_i_i_i461];
  21344.         do {
  21345.           if (HEAP[$this1_i_i6_i_i540 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i463] >>> 0) {
  21346.             if (!(HEAP[$p_i_i_i_i463] >>> 0 <= HEAP[$this1_i_i6_i_i540 + 8 | 0] >>> 0)) {
  21347.               var $1183 = 0;
  21348.               break;
  21349.             }
  21350.             var $1183 = (HEAP[$this1_i_i6_i_i540 + 8 | 0] - HEAP[$p_i_i_i_i463] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i462] >>> 0;
  21351.           } else {
  21352.             var $1183 = 0;
  21353.           }
  21354.         } while (0);
  21355.         var $1183;
  21356.         do {
  21357.           if ($1183 & 1) {
  21358.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i538 + 2 | 0, HEAP[$c_addr_i_i489], $this1_i_i538)) {
  21359.               var $1401 = 0;
  21360.               break;
  21361.             }
  21362.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i538 + 4 | 0, HEAP[$c_addr_i_i489], $this1_i_i538)) {
  21363.               var $1401 = 0;
  21364.               break;
  21365.             }
  21366.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_9MarkArrayEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i538 + 8 | 0, HEAP[$c_addr_i_i489], $this1_i_i538)) {
  21367.               var $1401 = 0;
  21368.               break;
  21369.             }
  21370.             var $1201 = HEAP[$c_addr_i_i489];
  21371.             HEAP[$this_addr_i10_i_i] = $this1_i_i538 + 6 | 0;
  21372.             HEAP[$this_addr_i_i9_i_i] = HEAP[$this_addr_i10_i_i] | 0;
  21373.             var $this1_i_i12_i_i = HEAP[$this_addr_i_i9_i_i];
  21374.             var $conv_i_i571 = ((HEAP[$this1_i_i12_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i12_i_i + 1 | 0] & 255) & 65535;
  21375.             HEAP[$this_addr_i_i_i483] = $this1_i_i538 + 10 | 0;
  21376.             HEAP[$c_addr_i_i_i484] = $1201;
  21377.             HEAP[$base_addr_i_i_i485] = $this1_i_i538;
  21378.             HEAP[$user_data_addr_i_i_i486] = $conv_i_i571;
  21379.             var $this1_i_i_i572 = HEAP[$this_addr_i_i_i483];
  21380.             HEAP[$this_addr_i23_i_i_i] = HEAP[$c_addr_i_i_i484];
  21381.             HEAP[$obj_addr_i_i_i_i] = $this1_i_i_i572;
  21382.             var $1220 = HEAP[$obj_addr_i_i_i_i];
  21383.             HEAP[$this_addr_i_i19_i_i_i] = HEAP[$this_addr_i23_i_i_i];
  21384.             HEAP[$base_addr_i_i20_i_i_i] = $1220;
  21385.             HEAP[$len_addr_i_i21_i_i_i] = 2;
  21386.             var $this1_i_i25_i_i_i = HEAP[$this_addr_i_i19_i_i_i];
  21387.             HEAP[$p_i_i22_i_i_i] = HEAP[$base_addr_i_i20_i_i_i];
  21388.             do {
  21389.               if (HEAP[$this1_i_i25_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i_i_i] >>> 0) {
  21390.                 if (!(HEAP[$p_i_i22_i_i_i] >>> 0 <= HEAP[$this1_i_i25_i_i_i + 8 | 0] >>> 0)) {
  21391.                   var $1233 = 0;
  21392.                   break;
  21393.                 }
  21394.                 var $1233 = (HEAP[$this1_i_i25_i_i_i + 8 | 0] - HEAP[$p_i_i22_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i_i_i] >>> 0;
  21395.               } else {
  21396.                 var $1233 = 0;
  21397.               }
  21398.             } while (0);
  21399.             var $1233;
  21400.             do {
  21401.               if ($1233 & 1) {
  21402.                 HEAP[$this_addr_i32_i_i_i] = $this1_i_i_i572;
  21403.                 HEAP[$this_addr_i_i31_i_i_i] = HEAP[$this_addr_i32_i_i_i] | 0;
  21404.                 var $this1_i_i34_i_i_i = HEAP[$this_addr_i_i31_i_i_i];
  21405.                 HEAP[$offset_i_i_i] = ((HEAP[$this1_i_i34_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i_i_i + 1 | 0] & 255) & 65535;
  21406.                 if ((HEAP[$offset_i_i_i] | 0) == 0) {
  21407.                   HEAP[$retval_i_i_i482] = 1;
  21408.                   break;
  21409.                 }
  21410.                 var $1252 = HEAP[$offset_i_i_i];
  21411.                 HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i485];
  21412.                 HEAP[$offset_addr_i_i_i_i] = $1252;
  21413.                 HEAP[$obj_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  21414.                 var $1261 = HEAP[$c_addr_i_i_i484];
  21415.                 var $1262 = HEAP[$user_data_addr_i_i_i486];
  21416.                 HEAP[$this_addr_i6_i_i_i471] = HEAP[$obj_i_i_i];
  21417.                 HEAP[$c_addr_i7_i_i_i] = $1261;
  21418.                 HEAP[$user_data_addr_i_i_i_i472] = $1262;
  21419.                 var $this1_i8_i_i_i = HEAP[$this_addr_i6_i_i_i471];
  21420.                 var $1268 = HEAP[$c_addr_i7_i_i_i];
  21421.                 var $1270 = HEAP[$user_data_addr_i_i_i_i472];
  21422.                 HEAP[$this_addr_i_i4_i_i_i] = $this1_i8_i_i_i;
  21423.                 HEAP[$c_addr_i_i_i_i_i468] = $1268;
  21424.                 HEAP[$base_addr_i_i5_i_i_i] = $this1_i8_i_i_i;
  21425.                 HEAP[$user_data_addr_i_i_i_i_i] = $1270;
  21426.                 var $this1_i_i9_i_i_i = HEAP[$this_addr_i_i4_i_i_i];
  21427.                 var $1278 = HEAP[$c_addr_i_i_i_i_i468];
  21428.                 HEAP[$this_addr_i6_i_i_i_i_i] = $this1_i_i9_i_i_i;
  21429.                 HEAP[$c_addr_i_i_i_i_i_i] = $1278;
  21430.                 var $this1_i7_i_i_i_i_i = HEAP[$this_addr_i6_i_i_i_i_i];
  21431.                 HEAP[$this_addr_i2_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i];
  21432.                 HEAP[$obj_addr_i_i_i_i_i_i_i] = $this1_i7_i_i_i_i_i;
  21433.                 var $1285 = HEAP[$obj_addr_i_i_i_i_i_i_i];
  21434.                 HEAP[$this_addr_i_i1_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i];
  21435.                 HEAP[$base_addr_i_i_i_i_i_i_i_i] = $1285;
  21436.                 HEAP[$len_addr_i_i_i_i_i_i_i_i] = 2;
  21437.                 var $this1_i_i4_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i];
  21438.                 HEAP[$p_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i];
  21439.                 do {
  21440.                   if (HEAP[$this1_i_i4_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i_i] >>> 0) {
  21441.                     if (!(HEAP[$p_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  21442.                       var $1298 = 0;
  21443.                       break;
  21444.                     }
  21445.                     var $1298 = (HEAP[$this1_i_i4_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i_i] >>> 0;
  21446.                   } else {
  21447.                     var $1298 = 0;
  21448.                   }
  21449.                 } while (0);
  21450.                 var $1298;
  21451.                 if ($1298 & 1) {
  21452.                   var $1306 = HEAP[$c_addr_i_i_i_i_i_i];
  21453.                   HEAP[$this_addr_i_i5_i_i_i_i_i] = $this1_i7_i_i_i_i_i | 0;
  21454.                   HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i5_i_i_i_i_i] | 0;
  21455.                   var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  21456.                   var $1314 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($1306, $this1_i7_i_i_i_i_i, 2, ((HEAP[$this1_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  21457.                 } else {
  21458.                   var $1314 = 0;
  21459.                 }
  21460.                 var $1314;
  21461.                 L248 : do {
  21462.                   if ($1314 & 1) {
  21463.                     HEAP[$this_addr_i_i_i1_i_i_i] = $this1_i_i9_i_i_i | 0;
  21464.                     HEAP[$this_addr_i_i_i_i_i_i_i467] = HEAP[$this_addr_i_i_i1_i_i_i] | 0;
  21465.                     var $this1_i_i_i_i_i_i_i590 = HEAP[$this_addr_i_i_i_i_i_i_i467];
  21466.                     HEAP[$count_i_i_i_i_i469] = ((HEAP[$this1_i_i_i_i_i_i_i590 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i590 + 1 | 0] & 255) & 65535;
  21467.                     HEAP[$i_i_i_i_i_i] = 0;
  21468.                     L251 : do {
  21469.                       if (HEAP[$i_i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i_i469] >>> 0) {
  21470.                         var $array_i_i_i_i_i601 = $this1_i_i9_i_i_i + 2 | 0;
  21471.                         while (1) {
  21472.                           if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_12AnchorMatrixEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_((HEAP[$i_i_i_i_i_i] << 1) + $array_i_i_i_i_i601 | 0, HEAP[$c_addr_i_i_i_i_i468], HEAP[$base_addr_i_i5_i_i_i], HEAP[$user_data_addr_i_i_i_i_i])) {
  21473.                             break;
  21474.                           }
  21475.                           HEAP[$i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i] + 1 | 0;
  21476.                           if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i469] >>> 0) {
  21477.                             break L251;
  21478.                           }
  21479.                         }
  21480.                         HEAP[$retval_i_i3_i_i_i] = 0;
  21481.                         break L248;
  21482.                       }
  21483.                     } while (0);
  21484.                     HEAP[$retval_i_i3_i_i_i] = 1;
  21485.                   } else {
  21486.                     HEAP[$retval_i_i3_i_i_i] = 0;
  21487.                   }
  21488.                 } while (0);
  21489.                 if (HEAP[$retval_i_i3_i_i_i] & 1) {
  21490.                   var $1391 = 1;
  21491.                 } else {
  21492.                   var $1349 = HEAP[$c_addr_i_i_i484];
  21493.                   HEAP[$this_addr_i_i_i_i479] = $this1_i_i_i572;
  21494.                   HEAP[$c_addr_i_i_i_i480] = $1349;
  21495.                   var $this1_i_i_i_i605 = HEAP[$this_addr_i_i_i_i479];
  21496.                   HEAP[$this_addr_i_i_i_i_i477] = HEAP[$c_addr_i_i_i_i480];
  21497.                   HEAP[$base_addr_i_i_i_i_i] = $this1_i_i_i_i605;
  21498.                   HEAP[$len_addr_i_i_i_i_i] = 2;
  21499.                   var $this1_i_i_i_i_i606 = HEAP[$this_addr_i_i_i_i_i477];
  21500.                   do {
  21501.                     if (HEAP[$this1_i_i_i_i_i606 + 16 | 0] >>> 0 >= 100) {
  21502.                       HEAP[$retval_i_i_i_i_i476] = 0;
  21503.                       label = 190;
  21504.                       break;
  21505.                     } else {
  21506.                       HEAP[$p_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  21507.                       var $edit_count2_i_i_i_i_i = $this1_i_i_i_i_i606 + 16 | 0;
  21508.                       HEAP[$edit_count2_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i] + 1 | 0;
  21509.                       var $tobool_i_i_i_i_i_i610 = HEAP[$this1_i_i_i_i_i606 + 12 | 0] & 1 & 1;
  21510.                       HEAP[$retval_i_i_i_i_i476] = $tobool_i_i_i_i_i_i610;
  21511.                       if (!$tobool_i_i_i_i_i_i610) {
  21512.                         label = 190;
  21513.                         break;
  21514.                       }
  21515.                       HEAP[$this_addr_i1_i_i_i_i] = $this1_i_i_i_i605;
  21516.                       HEAP[$i_addr_i_i_i_i_i] = 0;
  21517.                       var $1378 = HEAP[$i_addr_i_i_i_i_i];
  21518.                       HEAP[$this_addr_i_i_i_i_i_i473] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  21519.                       HEAP[$i_addr_i_i_i_i_i_i474] = $1378;
  21520.                       var $this1_i_i_i_i_i_i613 = HEAP[$this_addr_i_i_i_i_i_i473];
  21521.                       HEAP[$this1_i_i_i_i_i_i613 | 0] = (HEAP[$i_addr_i_i_i_i_i_i474] & 65535) >> 8 & 255;
  21522.                       HEAP[$this1_i_i_i_i_i_i613 + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i474] & 255;
  21523.                       HEAP[$retval_i_i_i_i478] = 1;
  21524.                       break;
  21525.                     }
  21526.                   } while (0);
  21527.                   if (label == 190) {
  21528.                     HEAP[$retval_i_i_i_i478] = 0;
  21529.                   }
  21530.                   var $1391 = HEAP[$retval_i_i_i_i478];
  21531.                 }
  21532.                 var $1391;
  21533.                 HEAP[$retval_i_i_i482] = $1391 & 1;
  21534.               } else {
  21535.                 HEAP[$retval_i_i_i482] = 0;
  21536.               }
  21537.             } while (0);
  21538.             var $1401 = HEAP[$retval_i_i_i482];
  21539.           } else {
  21540.             var $1401 = 0;
  21541.           }
  21542.         } while (0);
  21543.         var $1401;
  21544.         HEAP[$retval_i492] = $1401 & 1 & 1;
  21545.       } else {
  21546.         HEAP[$retval_i492] = 0;
  21547.       }
  21548.     } while (0);
  21549.     $retval = HEAP[$retval_i492] & 1;
  21550.     var $1670 = $retval;
  21551.     STACKTOP = __stackBase__;
  21552.     return $1670;
  21553.   } else if (($32 | 0) == 6) {
  21554.     HEAP[$this_addr_i659] = $this1 | 0;
  21555.     HEAP[$c_addr_i660] = $c_addr;
  21556.     var $this1_i661 = HEAP[$this_addr_i659];
  21557.     var $1416 = HEAP[$c_addr_i660];
  21558.     HEAP[$this_addr_i11_i642] = $this1_i661 | 0;
  21559.     HEAP[$c_addr_i12_i643] = $1416;
  21560.     var $this1_i13_i664 = HEAP[$this_addr_i11_i642];
  21561.     HEAP[$this_addr_i_i8_i639] = HEAP[$c_addr_i12_i643];
  21562.     HEAP[$obj_addr_i_i9_i640] = $this1_i13_i664;
  21563.     var $1423 = HEAP[$obj_addr_i_i9_i640];
  21564.     HEAP[$this_addr_i_i_i4_i635] = HEAP[$this_addr_i_i8_i639];
  21565.     HEAP[$base_addr_i_i_i5_i636] = $1423;
  21566.     HEAP[$len_addr_i_i_i6_i637] = 2;
  21567.     var $this1_i_i_i15_i666 = HEAP[$this_addr_i_i_i4_i635];
  21568.     HEAP[$p_i_i_i7_i638] = HEAP[$base_addr_i_i_i5_i636];
  21569.     do {
  21570.       if (HEAP[$this1_i_i_i15_i666 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i638] >>> 0) {
  21571.         if (!(HEAP[$p_i_i_i7_i638] >>> 0 <= HEAP[$this1_i_i_i15_i666 + 8 | 0] >>> 0)) {
  21572.           var $1436 = 0;
  21573.           break;
  21574.         }
  21575.         var $1436 = (HEAP[$this1_i_i_i15_i666 + 8 | 0] - HEAP[$p_i_i_i7_i638] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i637] >>> 0;
  21576.       } else {
  21577.         var $1436 = 0;
  21578.       }
  21579.     } while (0);
  21580.     var $1436;
  21581.     do {
  21582.       if ($1436 & 1 & 1) {
  21583.         HEAP[$this_addr_i34_i632] = $this1_i661 | 0;
  21584.         HEAP[$this_addr_i_i33_i631] = HEAP[$this_addr_i34_i632] | 0;
  21585.         var $this1_i_i36_i689 = HEAP[$this_addr_i_i33_i631];
  21586.         if ((((HEAP[$this1_i_i36_i689 | 0] & 255) << 8) + (HEAP[$this1_i_i36_i689 + 1 | 0] & 255) & 65535 | 0) != 1) {
  21587.           HEAP[$retval_i658] = 1;
  21588.           break;
  21589.         }
  21590.         var $1454 = HEAP[$c_addr_i660];
  21591.         HEAP[$this_addr_i_i654] = $this1_i661 | 0;
  21592.         HEAP[$c_addr_i_i655] = $1454;
  21593.         var $this1_i_i704 = HEAP[$this_addr_i_i654];
  21594.         HEAP[$this_addr_i2_i_i649] = HEAP[$c_addr_i_i655];
  21595.         HEAP[$obj_addr_i_i_i650] = $this1_i_i704;
  21596.         var $1461 = HEAP[$obj_addr_i_i_i650];
  21597.         HEAP[$this_addr_i_i1_i_i645] = HEAP[$this_addr_i2_i_i649];
  21598.         HEAP[$base_addr_i_i_i_i646] = $1461;
  21599.         HEAP[$len_addr_i_i_i_i647] = 12;
  21600.         var $this1_i_i4_i_i706 = HEAP[$this_addr_i_i1_i_i645];
  21601.         HEAP[$p_i_i_i_i648] = HEAP[$base_addr_i_i_i_i646];
  21602.         do {
  21603.           if (HEAP[$this1_i_i4_i_i706 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i648] >>> 0) {
  21604.             if (!(HEAP[$p_i_i_i_i648] >>> 0 <= HEAP[$this1_i_i4_i_i706 + 8 | 0] >>> 0)) {
  21605.               var $1474 = 0;
  21606.               break;
  21607.             }
  21608.             var $1474 = (HEAP[$this1_i_i4_i_i706 + 8 | 0] - HEAP[$p_i_i_i_i648] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i647] >>> 0;
  21609.           } else {
  21610.             var $1474 = 0;
  21611.           }
  21612.         } while (0);
  21613.         var $1474;
  21614.         do {
  21615.           if ($1474 & 1) {
  21616.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i704 + 2 | 0, HEAP[$c_addr_i_i655], $this1_i_i704)) {
  21617.               var $1500 = 0;
  21618.               break;
  21619.             }
  21620.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i704 + 4 | 0, HEAP[$c_addr_i_i655], $this1_i_i704)) {
  21621.               var $1500 = 0;
  21622.               break;
  21623.             }
  21624.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_9MarkArrayEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i704 + 8 | 0, HEAP[$c_addr_i_i655], $this1_i_i704)) {
  21625.               var $1500 = 0;
  21626.               break;
  21627.             }
  21628.             var $1492 = HEAP[$c_addr_i_i655];
  21629.             HEAP[$this_addr_i_i_i652] = $this1_i_i704 + 6 | 0;
  21630.             HEAP[$this_addr_i_i_i_i651] = HEAP[$this_addr_i_i_i652] | 0;
  21631.             var $this1_i_i_i_i730 = HEAP[$this_addr_i_i_i_i651];
  21632.             var $1500 = __ZN2OT15GenericOffsetToINS_6OffsetENS_12AnchorMatrixEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_($this1_i_i704 + 10 | 0, $1492, $this1_i_i704, ((HEAP[$this1_i_i_i_i730 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i730 + 1 | 0] & 255) & 65535);
  21633.           } else {
  21634.             var $1500 = 0;
  21635.           }
  21636.         } while (0);
  21637.         var $1500;
  21638.         HEAP[$retval_i658] = $1500 & 1 & 1;
  21639.       } else {
  21640.         HEAP[$retval_i658] = 0;
  21641.       }
  21642.     } while (0);
  21643.     $retval = HEAP[$retval_i658] & 1;
  21644.     var $1670 = $retval;
  21645.     STACKTOP = __stackBase__;
  21646.     return $1670;
  21647.   } else if (($32 | 0) == 7) {
  21648.     $retval = __ZN2OT7Context8sanitizeEPNS_21hb_sanitize_context_tE($this1 | 0, $c_addr) & 1;
  21649.     var $1670 = $retval;
  21650.     STACKTOP = __stackBase__;
  21651.     return $1670;
  21652.   } else if (($32 | 0) == 8) {
  21653.     $retval = __ZN2OT12ChainContext8sanitizeEPNS_21hb_sanitize_context_tE($this1 | 0, $c_addr) & 1;
  21654.     var $1670 = $retval;
  21655.     STACKTOP = __stackBase__;
  21656.     return $1670;
  21657.   } else if (($32 | 0) == 9) {
  21658.     HEAP[$this_addr_i783] = $this1 | 0;
  21659.     HEAP[$c_addr_i784] = $c_addr;
  21660.     var $this1_i785 = HEAP[$this_addr_i783];
  21661.     var $1524 = HEAP[$c_addr_i784];
  21662.     HEAP[$this_addr_i_i780] = $this1_i785;
  21663.     HEAP[$c_addr_i_i781] = $1524;
  21664.     var $this1_i_i786 = HEAP[$this_addr_i_i780];
  21665.     var $1528 = HEAP[$c_addr_i_i781];
  21666.     HEAP[$this_addr_i17_i_i] = $this1_i_i786 | 0;
  21667.     HEAP[$c_addr_i18_i_i] = $1528;
  21668.     var $this1_i19_i_i = HEAP[$this_addr_i17_i_i];
  21669.     HEAP[$this_addr_i_i14_i_i] = HEAP[$c_addr_i18_i_i];
  21670.     HEAP[$obj_addr_i_i15_i_i] = $this1_i19_i_i;
  21671.     var $1535 = HEAP[$obj_addr_i_i15_i_i];
  21672.     HEAP[$this_addr_i_i_i10_i_i] = HEAP[$this_addr_i_i14_i_i];
  21673.     HEAP[$base_addr_i_i_i11_i_i] = $1535;
  21674.     HEAP[$len_addr_i_i_i12_i_i] = 2;
  21675.     var $this1_i_i_i21_i_i = HEAP[$this_addr_i_i_i10_i_i];
  21676.     HEAP[$p_i_i_i13_i_i] = HEAP[$base_addr_i_i_i11_i_i];
  21677.     do {
  21678.       if (HEAP[$this1_i_i_i21_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i13_i_i] >>> 0) {
  21679.         if (!(HEAP[$p_i_i_i13_i_i] >>> 0 <= HEAP[$this1_i_i_i21_i_i + 8 | 0] >>> 0)) {
  21680.           var $1548 = 0;
  21681.           break;
  21682.         }
  21683.         var $1548 = (HEAP[$this1_i_i_i21_i_i + 8 | 0] - HEAP[$p_i_i_i13_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i12_i_i] >>> 0;
  21684.       } else {
  21685.         var $1548 = 0;
  21686.       }
  21687.     } while (0);
  21688.     var $1548;
  21689.     do {
  21690.       if ($1548 & 1 & 1) {
  21691.         HEAP[$this_addr_i4_i_i766] = $this1_i_i786 | 0;
  21692.         HEAP[$this_addr_i_i3_i_i765] = HEAP[$this_addr_i4_i_i766] | 0;
  21693.         var $this1_i_i6_i_i790 = HEAP[$this_addr_i_i3_i_i765];
  21694.         if ((((HEAP[$this1_i_i6_i_i790 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i790 + 1 | 0] & 255) & 65535 | 0) != 1) {
  21695.           var $tobool_i_i_i822 = 1;
  21696.           HEAP[$retval_i_i779] = $tobool_i_i_i822;
  21697.           if ($tobool_i_i_i822) {
  21698.             label = 228;
  21699.             break;
  21700.           } else {
  21701.             label = 227;
  21702.             break;
  21703.           }
  21704.         }
  21705.         var $1565 = HEAP[$c_addr_i_i781];
  21706.         HEAP[$this_addr_i_i_i775] = $this1_i_i786 | 0;
  21707.         HEAP[$c_addr_i_i_i776] = $1565;
  21708.         var $this1_i_i_i802 = HEAP[$this_addr_i_i_i775];
  21709.         HEAP[$this_addr_i_i_i_i772] = HEAP[$c_addr_i_i_i776];
  21710.         HEAP[$obj_addr_i_i_i_i773] = $this1_i_i_i802;
  21711.         var $1572 = HEAP[$obj_addr_i_i_i_i773];
  21712.         HEAP[$this_addr_i_i_i_i_i768] = HEAP[$this_addr_i_i_i_i772];
  21713.         HEAP[$base_addr_i_i_i_i_i769] = $1572;
  21714.         HEAP[$len_addr_i_i_i_i_i770] = 8;
  21715.         var $this1_i_i_i_i_i804 = HEAP[$this_addr_i_i_i_i_i768];
  21716.         HEAP[$p_i_i_i_i_i771] = HEAP[$base_addr_i_i_i_i_i769];
  21717.         do {
  21718.           if (HEAP[$this1_i_i_i_i_i804 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i771] >>> 0) {
  21719.             if (!(HEAP[$p_i_i_i_i_i771] >>> 0 <= HEAP[$this1_i_i_i_i_i804 + 8 | 0] >>> 0)) {
  21720.               var $1585 = 0;
  21721.               break;
  21722.             }
  21723.             var $1585 = (HEAP[$this1_i_i_i_i_i804 + 8 | 0] - HEAP[$p_i_i_i_i_i771] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i770] >>> 0;
  21724.           } else {
  21725.             var $1585 = 0;
  21726.           }
  21727.         } while (0);
  21728.         var $1585;
  21729.         var $tobool_i2_i_i821 = $1585 & 1 & 1 & 1;
  21730.         HEAP[$retval_i_i779] = $tobool_i2_i_i821;
  21731.         if ($tobool_i2_i_i821) {
  21732.           label = 228;
  21733.           break;
  21734.         } else {
  21735.           label = 227;
  21736.           break;
  21737.         }
  21738.       } else {
  21739.         var $tobool_i8_i_i = 0;
  21740.         HEAP[$retval_i_i779] = $tobool_i8_i_i;
  21741.         if ($tobool_i8_i_i) {
  21742.           label = 228;
  21743.           break;
  21744.         } else {
  21745.           label = 227;
  21746.           break;
  21747.         }
  21748.       }
  21749.     } while (0);
  21750.     L315 : do {
  21751.       if (label == 227) {
  21752.         HEAP[$retval_i782] = 0;
  21753.       } else if (label == 228) {
  21754.         HEAP[$this_addr_i5_i] = $this1_i785;
  21755.         var $this1_i6_i = HEAP[$this_addr_i5_i];
  21756.         HEAP[$this_addr_i_i3_i] = $this1_i6_i | 0;
  21757.         HEAP[$this_addr_i_i_i2_i] = HEAP[$this_addr_i_i3_i] | 0;
  21758.         var $this1_i_i_i11_i = HEAP[$this_addr_i_i_i2_i];
  21759.         do {
  21760.           if ((((HEAP[$this1_i_i_i11_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i11_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  21761.             HEAP[$this_addr_i2_i_i763] = $this1_i6_i | 0;
  21762.             HEAP[$this_addr_i_i1_i_i762] = HEAP[$this_addr_i2_i_i763] + 4 | 0;
  21763.             HEAP[$this_addr_i_i_i_i1_i] = HEAP[$this_addr_i_i1_i_i762] | 0;
  21764.             var $this1_i_i_i_i24_i = HEAP[$this_addr_i_i_i_i1_i];
  21765.             var $add14_i_i_i_i_i = ((HEAP[$this1_i_i_i_i24_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i24_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i24_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i24_i + 3 | 0] & 255) | 0;
  21766.             HEAP[$retval_i4_i] = $add14_i_i_i_i_i;
  21767.             HEAP[$offset_i] = $add14_i_i_i_i_i;
  21768.             if (($add14_i_i_i_i_i | 0) == 0) {
  21769.               break;
  21770.             }
  21771.             var $1633 = HEAP[$offset_i];
  21772.             HEAP[$P_addr_i_i] = $this1_i785;
  21773.             HEAP[$offset_addr_i_i] = $1633;
  21774.             var $1638 = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  21775.             var $1641 = HEAP[$c_addr_i784];
  21776.             HEAP[$this_addr_i35_i] = $this1_i785;
  21777.             var $this1_i36_i = HEAP[$this_addr_i35_i];
  21778.             HEAP[$this_addr_i_i33_i761] = $this1_i36_i | 0;
  21779.             HEAP[$this_addr_i_i_i32_i] = HEAP[$this_addr_i_i33_i761] | 0;
  21780.             var $this1_i_i_i41_i = HEAP[$this_addr_i_i_i32_i];
  21781.             if ((((HEAP[$this1_i_i_i41_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i41_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  21782.               HEAP[$this_addr_i2_i31_i] = $this1_i36_i | 0;
  21783.               HEAP[$this_addr_i_i1_i30_i] = HEAP[$this_addr_i2_i31_i] + 2 | 0;
  21784.               HEAP[$this_addr_i_i_i_i29_i] = HEAP[$this_addr_i_i1_i30_i] | 0;
  21785.               var $this1_i_i_i_i58_i = HEAP[$this_addr_i_i_i_i29_i];
  21786.               HEAP[$retval_i34_i] = ((HEAP[$this1_i_i_i_i58_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i58_i + 1 | 0] & 255) & 65535;
  21787.             } else {
  21788.               HEAP[$retval_i34_i] = 0;
  21789.             }
  21790.             var $tobool_i70_i = __ZN2OT17PosLookupSubTable8sanitizeEPNS_21hb_sanitize_context_tEj($1638, $1641, HEAP[$retval_i34_i]) & 1;
  21791.             HEAP[$retval_i782] = $tobool_i70_i;
  21792.             break L315;
  21793.           } else {
  21794.             HEAP[$retval_i4_i] = 0;
  21795.             HEAP[$offset_i] = 0;
  21796.           }
  21797.         } while (0);
  21798.         HEAP[$retval_i782] = 1;
  21799.       }
  21800.     } while (0);
  21801.     $retval = HEAP[$retval_i782] & 1;
  21802.     var $1670 = $retval;
  21803.     STACKTOP = __stackBase__;
  21804.     return $1670;
  21805.   } else {
  21806.     $retval = 1;
  21807.     var $1670 = $retval;
  21808.     STACKTOP = __stackBase__;
  21809.     return $1670;
  21810.   }
  21811. }
  21812. function __ZN2OT7Context8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  21813.   var __stackBase__ = STACKTOP;
  21814.   STACKTOP = STACKTOP + 125 | 0;
  21815.   var $this_addr_i49 = __stackBase__;
  21816.   var $c_addr_i50 = __stackBase__ + 4;
  21817.   var $this_addr_i_i43 = __stackBase__ + 8;
  21818.   var $this_addr_i44 = __stackBase__ + 12;
  21819.   var $this_addr_i37 = __stackBase__ + 16;
  21820.   var $c_addr_i38 = __stackBase__ + 20;
  21821.   var $this_addr_i_i_i4 = __stackBase__ + 24;
  21822.   var $base_addr_i_i_i5 = __stackBase__ + 28;
  21823.   var $len_addr_i_i_i6 = __stackBase__ + 32;
  21824.   var $p_i_i_i7 = __stackBase__ + 36;
  21825.   var $this_addr_i_i8 = __stackBase__ + 40;
  21826.   var $obj_addr_i_i9 = __stackBase__ + 44;
  21827.   var $this_addr_i11 = __stackBase__ + 48;
  21828.   var $c_addr_i12 = __stackBase__ + 52;
  21829.   var $this_addr_i_i11_i = __stackBase__ + 56;
  21830.   var $this_addr_i12_i = __stackBase__ + 60;
  21831.   var $this_addr_i_i3_i = __stackBase__ + 64;
  21832.   var $base_addr_i_i_i = __stackBase__ + 68;
  21833.   var $len_addr_i_i_i = __stackBase__ + 72;
  21834.   var $p_i_i_i = __stackBase__ + 76;
  21835.   var $this_addr_i4_i = __stackBase__ + 80;
  21836.   var $obj_addr_i_i = __stackBase__ + 84;
  21837.   var $P_addr_i_i = __stackBase__ + 88;
  21838.   var $offset_addr_i_i = __stackBase__ + 92;
  21839.   var $this_addr_i_i_i = __stackBase__ + 96;
  21840.   var $this_addr_i_i = __stackBase__ + 100;
  21841.   var $retval_i = __stackBase__ + 104;
  21842.   var $this_addr_i = __stackBase__ + 105;
  21843.   var $c_addr_i = __stackBase__ + 109;
  21844.   var $count_i = __stackBase__ + 113;
  21845.   var $i_i = __stackBase__ + 117;
  21846.   var $lookupRecord_i = __stackBase__ + 121;
  21847.   var $retval;
  21848.   var $c_addr;
  21849.   $c_addr = $c;
  21850.   var $this1 = $this;
  21851.   HEAP[$this_addr_i11] = $this1 | 0;
  21852.   HEAP[$c_addr_i12] = $c_addr;
  21853.   var $this1_i13 = HEAP[$this_addr_i11];
  21854.   HEAP[$this_addr_i_i8] = HEAP[$c_addr_i12];
  21855.   HEAP[$obj_addr_i_i9] = $this1_i13;
  21856.   var $7 = HEAP[$obj_addr_i_i9];
  21857.   HEAP[$this_addr_i_i_i4] = HEAP[$this_addr_i_i8];
  21858.   HEAP[$base_addr_i_i_i5] = $7;
  21859.   HEAP[$len_addr_i_i_i6] = 2;
  21860.   var $this1_i_i_i15 = HEAP[$this_addr_i_i_i4];
  21861.   HEAP[$p_i_i_i7] = HEAP[$base_addr_i_i_i5];
  21862.   do {
  21863.     if (HEAP[$this1_i_i_i15 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7] >>> 0) {
  21864.       if (!(HEAP[$p_i_i_i7] >>> 0 <= HEAP[$this1_i_i_i15 + 8 | 0] >>> 0)) {
  21865.         var $20 = 0;
  21866.         break;
  21867.       }
  21868.       var $20 = (HEAP[$this1_i_i_i15 + 8 | 0] - HEAP[$p_i_i_i7] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6] >>> 0;
  21869.     } else {
  21870.       var $20 = 0;
  21871.     }
  21872.   } while (0);
  21873.   var $20;
  21874.   if (!($20 & 1 & 1)) {
  21875.     $retval = 0;
  21876.     var $150 = $retval;
  21877.     STACKTOP = __stackBase__;
  21878.     return $150;
  21879.   }
  21880.   HEAP[$this_addr_i44] = $this1 | 0;
  21881.   HEAP[$this_addr_i_i43] = HEAP[$this_addr_i44] | 0;
  21882.   var $this1_i_i46 = HEAP[$this_addr_i_i43];
  21883.   var $conv = ((HEAP[$this1_i_i46 | 0] & 255) << 8) + (HEAP[$this1_i_i46 + 1 | 0] & 255) & 65535;
  21884.   if (($conv | 0) == 2) {
  21885.     HEAP[$this_addr_i37] = $this1 | 0;
  21886.     HEAP[$c_addr_i38] = $c_addr;
  21887.     var $this1_i39 = HEAP[$this_addr_i37];
  21888.     do {
  21889.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i39 + 2 | 0, HEAP[$c_addr_i38], $this1_i39)) {
  21890.         if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i39 + 4 | 0, HEAP[$c_addr_i38], $this1_i39)) {
  21891.           var $64 = 0;
  21892.           break;
  21893.         }
  21894.         var $64 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_7RuleSetEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i39 + 6 | 0, HEAP[$c_addr_i38], $this1_i39);
  21895.       } else {
  21896.         var $64 = 0;
  21897.       }
  21898.     } while (0);
  21899.     var $64;
  21900.     $retval = $64 & 1 & 1;
  21901.     var $150 = $retval;
  21902.     STACKTOP = __stackBase__;
  21903.     return $150;
  21904.   } else if (($conv | 0) == 1) {
  21905.     HEAP[$this_addr_i49] = $this1 | 0;
  21906.     HEAP[$c_addr_i50] = $c_addr;
  21907.     var $this1_i51 = HEAP[$this_addr_i49];
  21908.     if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i51 + 2 | 0, HEAP[$c_addr_i50], $this1_i51)) {
  21909.       var $47 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_7RuleSetEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i51 + 4 | 0, HEAP[$c_addr_i50], $this1_i51);
  21910.     } else {
  21911.       var $47 = 0;
  21912.     }
  21913.     var $47;
  21914.     $retval = $47 & 1 & 1;
  21915.     var $150 = $retval;
  21916.     STACKTOP = __stackBase__;
  21917.     return $150;
  21918.   } else if (($conv | 0) == 3) {
  21919.     HEAP[$this_addr_i] = $this1 | 0;
  21920.     HEAP[$c_addr_i] = $c_addr;
  21921.     var $this1_i = HEAP[$this_addr_i];
  21922.     HEAP[$this_addr_i4_i] = HEAP[$c_addr_i];
  21923.     HEAP[$obj_addr_i_i] = $this1_i;
  21924.     var $80 = HEAP[$obj_addr_i_i];
  21925.     HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i];
  21926.     HEAP[$base_addr_i_i_i] = $80;
  21927.     HEAP[$len_addr_i_i_i] = 6;
  21928.     var $this1_i_i6_i = HEAP[$this_addr_i_i3_i];
  21929.     HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  21930.     do {
  21931.       if (HEAP[$this1_i_i6_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  21932.         if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i6_i + 8 | 0] >>> 0)) {
  21933.           var $93 = 0;
  21934.           break;
  21935.         }
  21936.         var $93 = (HEAP[$this1_i_i6_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  21937.       } else {
  21938.         var $93 = 0;
  21939.       }
  21940.     } while (0);
  21941.     var $93;
  21942.     L359 : do {
  21943.       if ($93 & 1) {
  21944.         HEAP[$this_addr_i12_i] = $this1_i + 2 | 0;
  21945.         HEAP[$this_addr_i_i11_i] = HEAP[$this_addr_i12_i] | 0;
  21946.         var $this1_i_i15_i = HEAP[$this_addr_i_i11_i];
  21947.         HEAP[$count_i] = ((HEAP[$this1_i_i15_i | 0] & 255) << 8) + (HEAP[$this1_i_i15_i + 1 | 0] & 255) & 65535;
  21948.         if (!__ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj(HEAP[$c_addr_i], $this1_i + 6 | 0, 2, HEAP[$count_i])) {
  21949.           HEAP[$retval_i] = 0;
  21950.           break;
  21951.         }
  21952.         HEAP[$i_i] = 0;
  21953.         L364 : do {
  21954.           if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  21955.             var $coverage10_i = $this1_i + 6 | 0;
  21956.             var $114 = $this1_i;
  21957.             while (1) {
  21958.               if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv((HEAP[$i_i] << 1) + $coverage10_i | 0, HEAP[$c_addr_i], $114)) {
  21959.                 break;
  21960.               }
  21961.               HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  21962.               if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  21963.                 break L364;
  21964.               }
  21965.             }
  21966.             HEAP[$retval_i] = 0;
  21967.             break L359;
  21968.           }
  21969.         } while (0);
  21970.         var $mul_i = HEAP[$count_i] << 1;
  21971.         HEAP[$P_addr_i_i] = $this1_i + 6 | 0;
  21972.         HEAP[$offset_addr_i_i] = $mul_i;
  21973.         HEAP[$lookupRecord_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  21974.         var $131 = HEAP[$c_addr_i];
  21975.         var $133 = HEAP[$lookupRecord_i];
  21976.         HEAP[$this_addr_i_i] = $this1_i + 4 | 0;
  21977.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  21978.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  21979.         var $tobool_i_i = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($131, $133, 4, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535) & 1;
  21980.         HEAP[$retval_i] = $tobool_i_i;
  21981.       } else {
  21982.         HEAP[$retval_i] = 0;
  21983.       }
  21984.     } while (0);
  21985.     $retval = HEAP[$retval_i] & 1;
  21986.     var $150 = $retval;
  21987.     STACKTOP = __stackBase__;
  21988.     return $150;
  21989.   } else {
  21990.     $retval = 1;
  21991.     var $150 = $retval;
  21992.     STACKTOP = __stackBase__;
  21993.     return $150;
  21994.   }
  21995. }
  21996. function __ZN2OT12ChainContext8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  21997.   var __stackBase__ = STACKTOP;
  21998.   STACKTOP = STACKTOP + 149 | 0;
  21999.   var $this_addr_i28 = __stackBase__;
  22000.   var $c_addr_i29 = __stackBase__ + 4;
  22001.   var $this_addr_i21 = __stackBase__ + 8;
  22002.   var $c_addr_i22 = __stackBase__ + 12;
  22003.   var $this_addr_i_i13 = __stackBase__ + 16;
  22004.   var $this_addr_i14 = __stackBase__ + 20;
  22005.   var $this_addr_i_i_i3 = __stackBase__ + 24;
  22006.   var $base_addr_i_i_i = __stackBase__ + 28;
  22007.   var $len_addr_i_i_i = __stackBase__ + 32;
  22008.   var $p_i_i_i = __stackBase__ + 36;
  22009.   var $this_addr_i_i = __stackBase__ + 40;
  22010.   var $obj_addr_i_i = __stackBase__ + 44;
  22011.   var $this_addr_i5 = __stackBase__ + 48;
  22012.   var $c_addr_i6 = __stackBase__ + 52;
  22013.   var $P_addr_i_i31_i = __stackBase__ + 56;
  22014.   var $offset_addr_i_i32_i = __stackBase__ + 60;
  22015.   var $this_addr_i_i_i_i33_i = __stackBase__ + 64;
  22016.   var $this_addr_i_i_i34_i = __stackBase__ + 68;
  22017.   var $this_addr_i_i35_i = __stackBase__ + 72;
  22018.   var $X_addr_i36_i = __stackBase__ + 76;
  22019.   var $P_addr_i_i5_i = __stackBase__ + 80;
  22020.   var $offset_addr_i_i6_i = __stackBase__ + 84;
  22021.   var $this_addr_i_i_i_i7_i = __stackBase__ + 88;
  22022.   var $this_addr_i_i_i8_i = __stackBase__ + 92;
  22023.   var $this_addr_i_i9_i = __stackBase__ + 96;
  22024.   var $X_addr_i10_i = __stackBase__ + 100;
  22025.   var $P_addr_i_i_i = __stackBase__ + 104;
  22026.   var $offset_addr_i_i_i = __stackBase__ + 108;
  22027.   var $this_addr_i_i_i_i_i = __stackBase__ + 112;
  22028.   var $this_addr_i_i_i_i = __stackBase__ + 116;
  22029.   var $this_addr_i_i_i = __stackBase__ + 120;
  22030.   var $X_addr_i_i = __stackBase__ + 124;
  22031.   var $retval_i = __stackBase__ + 128;
  22032.   var $this_addr_i = __stackBase__ + 129;
  22033.   var $c_addr_i = __stackBase__ + 133;
  22034.   var $input_i = __stackBase__ + 137;
  22035.   var $lookahead_i = __stackBase__ + 141;
  22036.   var $lookup_i = __stackBase__ + 145;
  22037.   var $retval;
  22038.   var $c_addr;
  22039.   $c_addr = $c;
  22040.   var $this1 = $this;
  22041.   HEAP[$this_addr_i5] = $this1 | 0;
  22042.   HEAP[$c_addr_i6] = $c_addr;
  22043.   var $this1_i7 = HEAP[$this_addr_i5];
  22044.   HEAP[$this_addr_i_i] = HEAP[$c_addr_i6];
  22045.   HEAP[$obj_addr_i_i] = $this1_i7;
  22046.   var $7 = HEAP[$obj_addr_i_i];
  22047.   HEAP[$this_addr_i_i_i3] = HEAP[$this_addr_i_i];
  22048.   HEAP[$base_addr_i_i_i] = $7;
  22049.   HEAP[$len_addr_i_i_i] = 2;
  22050.   var $this1_i_i_i8 = HEAP[$this_addr_i_i_i3];
  22051.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  22052.   do {
  22053.     if (HEAP[$this1_i_i_i8 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  22054.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i8 + 8 | 0] >>> 0)) {
  22055.         var $20 = 0;
  22056.         break;
  22057.       }
  22058.       var $20 = (HEAP[$this1_i_i_i8 + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  22059.     } else {
  22060.       var $20 = 0;
  22061.     }
  22062.   } while (0);
  22063.   var $20;
  22064.   if (!($20 & 1 & 1)) {
  22065.     $retval = 0;
  22066.     var $174 = $retval;
  22067.     STACKTOP = __stackBase__;
  22068.     return $174;
  22069.   }
  22070.   HEAP[$this_addr_i14] = $this1 | 0;
  22071.   HEAP[$this_addr_i_i13] = HEAP[$this_addr_i14] | 0;
  22072.   var $this1_i_i16 = HEAP[$this_addr_i_i13];
  22073.   var $conv = ((HEAP[$this1_i_i16 | 0] & 255) << 8) + (HEAP[$this1_i_i16 + 1 | 0] & 255) & 65535;
  22074.   if (($conv | 0) == 2) {
  22075.     HEAP[$this_addr_i21] = $this1 | 0;
  22076.     HEAP[$c_addr_i22] = $c_addr;
  22077.     var $this1_i23 = HEAP[$this_addr_i21];
  22078.     do {
  22079.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i23 + 2 | 0, HEAP[$c_addr_i22], $this1_i23)) {
  22080.         if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i23 + 4 | 0, HEAP[$c_addr_i22], $this1_i23)) {
  22081.           var $70 = 0;
  22082.           break;
  22083.         }
  22084.         if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i23 + 6 | 0, HEAP[$c_addr_i22], $this1_i23)) {
  22085.           var $70 = 0;
  22086.           break;
  22087.         }
  22088.         if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i23 + 8 | 0, HEAP[$c_addr_i22], $this1_i23)) {
  22089.           var $70 = 0;
  22090.           break;
  22091.         }
  22092.         var $70 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_12ChainRuleSetEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i23 + 10 | 0, HEAP[$c_addr_i22], $this1_i23);
  22093.       } else {
  22094.         var $70 = 0;
  22095.       }
  22096.     } while (0);
  22097.     var $70;
  22098.     $retval = $70 & 1 & 1;
  22099.     var $174 = $retval;
  22100.     STACKTOP = __stackBase__;
  22101.     return $174;
  22102.   } else if (($conv | 0) == 1) {
  22103.     HEAP[$this_addr_i28] = $this1 | 0;
  22104.     HEAP[$c_addr_i29] = $c_addr;
  22105.     var $this1_i30 = HEAP[$this_addr_i28];
  22106.     if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i30 + 2 | 0, HEAP[$c_addr_i29], $this1_i30)) {
  22107.       var $47 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_12ChainRuleSetEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i30 + 4 | 0, HEAP[$c_addr_i29], $this1_i30);
  22108.     } else {
  22109.       var $47 = 0;
  22110.     }
  22111.     var $47;
  22112.     $retval = $47 & 1 & 1;
  22113.     var $174 = $retval;
  22114.     STACKTOP = __stackBase__;
  22115.     return $174;
  22116.   } else if (($conv | 0) == 3) {
  22117.     HEAP[$this_addr_i] = $this1 | 0;
  22118.     HEAP[$c_addr_i] = $c_addr;
  22119.     var $this1_i = HEAP[$this_addr_i];
  22120.     do {
  22121.       if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_8CoverageEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i + 2 | 0, HEAP[$c_addr_i], $this1_i)) {
  22122.         HEAP[$X_addr_i36_i] = $this1_i + 2 | 0;
  22123.         var $88 = HEAP[$X_addr_i36_i];
  22124.         HEAP[$this_addr_i_i35_i] = HEAP[$X_addr_i36_i];
  22125.         HEAP[$this_addr_i_i_i34_i] = HEAP[$this_addr_i_i35_i] | 0;
  22126.         HEAP[$this_addr_i_i_i_i33_i] = HEAP[$this_addr_i_i_i34_i] | 0;
  22127.         var $this1_i_i_i_i41_i = HEAP[$this_addr_i_i_i_i33_i];
  22128.         var $add_i_i53_i = ((((HEAP[$this1_i_i_i_i41_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i41_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  22129.         HEAP[$P_addr_i_i31_i] = $88;
  22130.         HEAP[$offset_addr_i_i32_i] = $add_i_i53_i;
  22131.         HEAP[$input_i] = HEAP[$P_addr_i_i31_i] + HEAP[$offset_addr_i_i32_i] | 0;
  22132.         if (!__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_8CoverageEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$input_i], HEAP[$c_addr_i], $this1_i)) {
  22133.           HEAP[$retval_i] = 0;
  22134.           break;
  22135.         }
  22136.         HEAP[$X_addr_i10_i] = HEAP[$input_i];
  22137.         var $115 = HEAP[$X_addr_i10_i];
  22138.         HEAP[$this_addr_i_i9_i] = HEAP[$X_addr_i10_i];
  22139.         HEAP[$this_addr_i_i_i8_i] = HEAP[$this_addr_i_i9_i] | 0;
  22140.         HEAP[$this_addr_i_i_i_i7_i] = HEAP[$this_addr_i_i_i8_i] | 0;
  22141.         var $this1_i_i_i_i15_i = HEAP[$this_addr_i_i_i_i7_i];
  22142.         var $add_i_i27_i = ((((HEAP[$this1_i_i_i_i15_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i15_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  22143.         HEAP[$P_addr_i_i5_i] = $115;
  22144.         HEAP[$offset_addr_i_i6_i] = $add_i_i27_i;
  22145.         HEAP[$lookahead_i] = HEAP[$P_addr_i_i5_i] + HEAP[$offset_addr_i_i6_i] | 0;
  22146.         if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_8CoverageEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$lookahead_i], HEAP[$c_addr_i], $this1_i)) {
  22147.           HEAP[$X_addr_i_i] = HEAP[$lookahead_i];
  22148.           var $142 = HEAP[$X_addr_i_i];
  22149.           HEAP[$this_addr_i_i_i] = HEAP[$X_addr_i_i];
  22150.           HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  22151.           HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  22152.           var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  22153.           var $add_i_i_i = ((((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  22154.           HEAP[$P_addr_i_i_i] = $142;
  22155.           HEAP[$offset_addr_i_i_i] = $add_i_i_i;
  22156.           HEAP[$lookup_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  22157.           var $tobool_i_i = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_12LookupRecordEE8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$lookup_i], HEAP[$c_addr_i]) & 1;
  22158.           HEAP[$retval_i] = $tobool_i_i;
  22159.           break;
  22160.         } else {
  22161.           HEAP[$retval_i] = 0;
  22162.           break;
  22163.         }
  22164.       } else {
  22165.         HEAP[$retval_i] = 0;
  22166.       }
  22167.     } while (0);
  22168.     $retval = HEAP[$retval_i] & 1;
  22169.     var $174 = $retval;
  22170.     STACKTOP = __stackBase__;
  22171.     return $174;
  22172.   } else {
  22173.     $retval = 1;
  22174.     var $174 = $retval;
  22175.     STACKTOP = __stackBase__;
  22176.     return $174;
  22177.   }
  22178. }
  22179. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_8CoverageEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  22180.   var __stackBase__ = STACKTOP;
  22181.   STACKTOP = STACKTOP + 48 | 0;
  22182.   var $this_addr_i_i1_i = __stackBase__;
  22183.   var $base_addr_i_i_i = __stackBase__ + 4;
  22184.   var $len_addr_i_i_i = __stackBase__ + 8;
  22185.   var $p_i_i_i = __stackBase__ + 12;
  22186.   var $this_addr_i2_i = __stackBase__ + 16;
  22187.   var $obj_addr_i_i = __stackBase__ + 20;
  22188.   var $this_addr_i_i_i = __stackBase__ + 24;
  22189.   var $this_addr_i_i5 = __stackBase__ + 28;
  22190.   var $this_addr_i6 = __stackBase__ + 32;
  22191.   var $c_addr_i = __stackBase__ + 36;
  22192.   var $this_addr_i_i = __stackBase__ + 40;
  22193.   var $this_addr_i = __stackBase__ + 44;
  22194.   var $retval;
  22195.   var $c_addr;
  22196.   var $base_addr;
  22197.   var $count;
  22198.   var $i;
  22199.   $c_addr = $c;
  22200.   $base_addr = $base;
  22201.   var $this1 = $this;
  22202.   HEAP[$this_addr_i6] = $this1;
  22203.   HEAP[$c_addr_i] = $c_addr;
  22204.   var $this1_i7 = HEAP[$this_addr_i6];
  22205.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i];
  22206.   HEAP[$obj_addr_i_i] = $this1_i7;
  22207.   var $7 = HEAP[$obj_addr_i_i];
  22208.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  22209.   HEAP[$base_addr_i_i_i] = $7;
  22210.   HEAP[$len_addr_i_i_i] = 2;
  22211.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  22212.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  22213.   do {
  22214.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  22215.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  22216.         var $20 = 0;
  22217.         break;
  22218.       }
  22219.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  22220.     } else {
  22221.       var $20 = 0;
  22222.     }
  22223.   } while (0);
  22224.   var $20;
  22225.   if ($20 & 1) {
  22226.     var $28 = HEAP[$c_addr_i];
  22227.     HEAP[$this_addr_i_i5] = $this1_i7 | 0;
  22228.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i5] | 0;
  22229.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22230.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i7, 2, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535);
  22231.   } else {
  22232.     var $36 = 0;
  22233.   }
  22234.   var $36;
  22235.   if (!($36 & 1)) {
  22236.     $retval = 0;
  22237.     var $58 = $retval;
  22238.     STACKTOP = __stackBase__;
  22239.     return $58;
  22240.   }
  22241.   HEAP[$this_addr_i] = $this1 | 0;
  22242.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  22243.   var $this1_i_i = HEAP[$this_addr_i_i];
  22244.   $count = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  22245.   $i = 0;
  22246.   L423 : do {
  22247.     if ($i >>> 0 < $count >>> 0) {
  22248.       var $array = $this1 + 2 | 0;
  22249.       while (1) {
  22250.         if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv(($i << 1) + $array | 0, $c_addr, $base_addr)) {
  22251.           break;
  22252.         }
  22253.         $i = $i + 1 | 0;
  22254.         if ($i >>> 0 >= $count >>> 0) {
  22255.           break L423;
  22256.         }
  22257.       }
  22258.       $retval = 0;
  22259.       var $58 = $retval;
  22260.       STACKTOP = __stackBase__;
  22261.       return $58;
  22262.     }
  22263.   } while (0);
  22264.   $retval = 1;
  22265.   var $58 = $retval;
  22266.   STACKTOP = __stackBase__;
  22267.   return $58;
  22268. }
  22269. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_12LookupRecordEE8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  22270.   var __stackBase__ = STACKTOP;
  22271.   STACKTOP = STACKTOP + 40 | 0;
  22272.   var $this_addr_i_i1_i = __stackBase__;
  22273.   var $base_addr_i_i_i = __stackBase__ + 4;
  22274.   var $len_addr_i_i_i = __stackBase__ + 8;
  22275.   var $p_i_i_i = __stackBase__ + 12;
  22276.   var $this_addr_i2_i = __stackBase__ + 16;
  22277.   var $obj_addr_i_i = __stackBase__ + 20;
  22278.   var $this_addr_i_i_i = __stackBase__ + 24;
  22279.   var $this_addr_i_i = __stackBase__ + 28;
  22280.   var $this_addr_i = __stackBase__ + 32;
  22281.   var $c_addr_i = __stackBase__ + 36;
  22282.   var $retval;
  22283.   HEAP[$this_addr_i] = $this;
  22284.   HEAP[$c_addr_i] = $c;
  22285.   var $this1_i = HEAP[$this_addr_i];
  22286.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i];
  22287.   HEAP[$obj_addr_i_i] = $this1_i;
  22288.   var $7 = HEAP[$obj_addr_i_i];
  22289.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  22290.   HEAP[$base_addr_i_i_i] = $7;
  22291.   HEAP[$len_addr_i_i_i] = 2;
  22292.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  22293.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  22294.   do {
  22295.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  22296.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  22297.         var $20 = 0;
  22298.         break;
  22299.       }
  22300.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  22301.     } else {
  22302.       var $20 = 0;
  22303.     }
  22304.   } while (0);
  22305.   var $20;
  22306.   if ($20 & 1) {
  22307.     var $28 = HEAP[$c_addr_i];
  22308.     HEAP[$this_addr_i_i] = $this1_i | 0;
  22309.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  22310.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22311.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i, 4, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535);
  22312.   } else {
  22313.     var $36 = 0;
  22314.   }
  22315.   var $36;
  22316.   if ($36 & 1) {
  22317.     $retval = 1;
  22318.     var $42 = $retval;
  22319.     STACKTOP = __stackBase__;
  22320.     return $42;
  22321.   } else {
  22322.     $retval = 0;
  22323.     var $42 = $retval;
  22324.     STACKTOP = __stackBase__;
  22325.     return $42;
  22326.   }
  22327. }
  22328. function __ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  22329.   var label = 0;
  22330.   var __stackBase__ = STACKTOP;
  22331.   STACKTOP = STACKTOP + 78 | 0;
  22332.   var $this_addr_i_i11 = __stackBase__;
  22333.   var $base_addr_i_i12 = __stackBase__ + 4;
  22334.   var $len_addr_i_i13 = __stackBase__ + 8;
  22335.   var $p_i_i14 = __stackBase__ + 12;
  22336.   var $this_addr_i15 = __stackBase__ + 16;
  22337.   var $obj_addr_i = __stackBase__ + 20;
  22338.   var $this_addr_i_i3 = __stackBase__ + 24;
  22339.   var $this_addr_i4 = __stackBase__ + 28;
  22340.   var $P_addr_i = __stackBase__ + 32;
  22341.   var $offset_addr_i = __stackBase__ + 36;
  22342.   var $this_addr_i_i_i = __stackBase__ + 40;
  22343.   var $i_addr_i_i_i = __stackBase__ + 44;
  22344.   var $this_addr_i1_i = __stackBase__ + 46;
  22345.   var $i_addr_i_i = __stackBase__ + 50;
  22346.   var $retval_i_i = __stackBase__ + 52;
  22347.   var $this_addr_i_i = __stackBase__ + 53;
  22348.   var $base_addr_i_i = __stackBase__ + 57;
  22349.   var $len_addr_i_i = __stackBase__ + 61;
  22350.   var $p_i_i = __stackBase__ + 65;
  22351.   var $retval_i = __stackBase__ + 69;
  22352.   var $this_addr_i = __stackBase__ + 70;
  22353.   var $c_addr_i = __stackBase__ + 74;
  22354.   var $retval;
  22355.   var $c_addr;
  22356.   var $base_addr;
  22357.   var $offset;
  22358.   $c_addr = $c;
  22359.   $base_addr = $base;
  22360.   var $this1 = $this;
  22361.   HEAP[$this_addr_i15] = $c_addr;
  22362.   HEAP[$obj_addr_i] = $this1;
  22363.   var $4 = HEAP[$obj_addr_i];
  22364.   HEAP[$this_addr_i_i11] = HEAP[$this_addr_i15];
  22365.   HEAP[$base_addr_i_i12] = $4;
  22366.   HEAP[$len_addr_i_i13] = 2;
  22367.   var $this1_i_i17 = HEAP[$this_addr_i_i11];
  22368.   HEAP[$p_i_i14] = HEAP[$base_addr_i_i12];
  22369.   do {
  22370.     if (HEAP[$this1_i_i17 + 4 | 0] >>> 0 <= HEAP[$p_i_i14] >>> 0) {
  22371.       if (!(HEAP[$p_i_i14] >>> 0 <= HEAP[$this1_i_i17 + 8 | 0] >>> 0)) {
  22372.         var $17 = 0;
  22373.         break;
  22374.       }
  22375.       var $17 = (HEAP[$this1_i_i17 + 8 | 0] - HEAP[$p_i_i14] | 0) >>> 0 >= HEAP[$len_addr_i_i13] >>> 0;
  22376.     } else {
  22377.       var $17 = 0;
  22378.     }
  22379.   } while (0);
  22380.   var $17;
  22381.   if (!($17 & 1)) {
  22382.     $retval = 0;
  22383.     var $90 = $retval;
  22384.     STACKTOP = __stackBase__;
  22385.     return $90;
  22386.   }
  22387.   HEAP[$this_addr_i4] = $this1;
  22388.   HEAP[$this_addr_i_i3] = HEAP[$this_addr_i4] | 0;
  22389.   var $this1_i_i6 = HEAP[$this_addr_i_i3];
  22390.   $offset = ((HEAP[$this1_i_i6 | 0] & 255) << 8) + (HEAP[$this1_i_i6 + 1 | 0] & 255) & 65535;
  22391.   if (($offset | 0) == 0) {
  22392.     $retval = 1;
  22393.     var $90 = $retval;
  22394.     STACKTOP = __stackBase__;
  22395.     return $90;
  22396.   }
  22397.   HEAP[$P_addr_i] = $base_addr;
  22398.   HEAP[$offset_addr_i] = $offset;
  22399.   if (__ZN2OT8Coverage8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0, $c_addr)) {
  22400.     var $88 = 1;
  22401.   } else {
  22402.     HEAP[$this_addr_i] = $this1;
  22403.     HEAP[$c_addr_i] = $c_addr;
  22404.     var $this1_i = HEAP[$this_addr_i];
  22405.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  22406.     HEAP[$base_addr_i_i] = $this1_i;
  22407.     HEAP[$len_addr_i_i] = 2;
  22408.     var $this1_i_i = HEAP[$this_addr_i_i];
  22409.     do {
  22410.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  22411.         HEAP[$retval_i_i] = 0;
  22412.         label = 354;
  22413.         break;
  22414.       } else {
  22415.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  22416.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  22417.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  22418.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  22419.         HEAP[$retval_i_i] = $tobool_i_i_i;
  22420.         if (!$tobool_i_i_i) {
  22421.           label = 354;
  22422.           break;
  22423.         }
  22424.         HEAP[$this_addr_i1_i] = $this1_i;
  22425.         HEAP[$i_addr_i_i] = 0;
  22426.         var $75 = HEAP[$i_addr_i_i];
  22427.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  22428.         HEAP[$i_addr_i_i_i] = $75;
  22429.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22430.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  22431.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  22432.         HEAP[$retval_i] = 1;
  22433.         break;
  22434.       }
  22435.     } while (0);
  22436.     if (label == 354) {
  22437.       HEAP[$retval_i] = 0;
  22438.     }
  22439.     var $88 = HEAP[$retval_i];
  22440.   }
  22441.   var $88;
  22442.   $retval = $88 & 1;
  22443.   var $90 = $retval;
  22444.   STACKTOP = __stackBase__;
  22445.   return $90;
  22446. }
  22447. function __ZN2OT8Coverage8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  22448.   var __stackBase__ = STACKTOP;
  22449.   STACKTOP = STACKTOP + 56 | 0;
  22450.   var $this_addr_i_i19 = __stackBase__;
  22451.   var $this_addr_i20 = __stackBase__ + 4;
  22452.   var $this_addr_i_i_i = __stackBase__ + 8;
  22453.   var $base_addr_i_i_i = __stackBase__ + 12;
  22454.   var $len_addr_i_i_i = __stackBase__ + 16;
  22455.   var $p_i_i_i = __stackBase__ + 20;
  22456.   var $this_addr_i_i = __stackBase__ + 24;
  22457.   var $obj_addr_i_i = __stackBase__ + 28;
  22458.   var $this_addr_i14 = __stackBase__ + 32;
  22459.   var $c_addr_i15 = __stackBase__ + 36;
  22460.   var $this_addr_i7 = __stackBase__ + 40;
  22461.   var $c_addr_i8 = __stackBase__ + 44;
  22462.   var $this_addr_i = __stackBase__ + 48;
  22463.   var $c_addr_i = __stackBase__ + 52;
  22464.   var $retval;
  22465.   var $c_addr;
  22466.   $c_addr = $c;
  22467.   var $this1 = $this;
  22468.   HEAP[$this_addr_i14] = $this1 | 0;
  22469.   HEAP[$c_addr_i15] = $c_addr;
  22470.   var $this1_i16 = HEAP[$this_addr_i14];
  22471.   HEAP[$this_addr_i_i] = HEAP[$c_addr_i15];
  22472.   HEAP[$obj_addr_i_i] = $this1_i16;
  22473.   var $7 = HEAP[$obj_addr_i_i];
  22474.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  22475.   HEAP[$base_addr_i_i_i] = $7;
  22476.   HEAP[$len_addr_i_i_i] = 2;
  22477.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22478.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  22479.   do {
  22480.     if (HEAP[$this1_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  22481.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i + 8 | 0] >>> 0)) {
  22482.         var $20 = 0;
  22483.         break;
  22484.       }
  22485.       var $20 = (HEAP[$this1_i_i_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  22486.     } else {
  22487.       var $20 = 0;
  22488.     }
  22489.   } while (0);
  22490.   var $20;
  22491.   if (!($20 & 1 & 1)) {
  22492.     $retval = 0;
  22493.     var $57 = $retval;
  22494.     STACKTOP = __stackBase__;
  22495.     return $57;
  22496.   }
  22497.   HEAP[$this_addr_i20] = $this1 | 0;
  22498.   HEAP[$this_addr_i_i19] = HEAP[$this_addr_i20] | 0;
  22499.   var $this1_i_i22 = HEAP[$this_addr_i_i19];
  22500.   var $conv = ((HEAP[$this1_i_i22 | 0] & 255) << 8) + (HEAP[$this1_i_i22 + 1 | 0] & 255) & 65535;
  22501.   if (($conv | 0) == 1) {
  22502.     HEAP[$this_addr_i7] = $this1 | 0;
  22503.     HEAP[$c_addr_i8] = $c_addr;
  22504.     $retval = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$this_addr_i7] + 2 | 0, HEAP[$c_addr_i8]) & 1 & 1;
  22505.     var $57 = $retval;
  22506.     STACKTOP = __stackBase__;
  22507.     return $57;
  22508.   } else if (($conv | 0) == 2) {
  22509.     HEAP[$this_addr_i] = $this1 | 0;
  22510.     HEAP[$c_addr_i] = $c_addr;
  22511.     $retval = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_11RangeRecordEE8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$this_addr_i] + 2 | 0, HEAP[$c_addr_i]) & 1 & 1;
  22512.     var $57 = $retval;
  22513.     STACKTOP = __stackBase__;
  22514.     return $57;
  22515.   } else {
  22516.     $retval = 1;
  22517.     var $57 = $retval;
  22518.     STACKTOP = __stackBase__;
  22519.     return $57;
  22520.   }
  22521. }
  22522. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_11RangeRecordEE8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  22523.   var __stackBase__ = STACKTOP;
  22524.   STACKTOP = STACKTOP + 40 | 0;
  22525.   var $this_addr_i_i1_i = __stackBase__;
  22526.   var $base_addr_i_i_i = __stackBase__ + 4;
  22527.   var $len_addr_i_i_i = __stackBase__ + 8;
  22528.   var $p_i_i_i = __stackBase__ + 12;
  22529.   var $this_addr_i2_i = __stackBase__ + 16;
  22530.   var $obj_addr_i_i = __stackBase__ + 20;
  22531.   var $this_addr_i_i_i = __stackBase__ + 24;
  22532.   var $this_addr_i_i = __stackBase__ + 28;
  22533.   var $this_addr_i = __stackBase__ + 32;
  22534.   var $c_addr_i = __stackBase__ + 36;
  22535.   var $retval;
  22536.   HEAP[$this_addr_i] = $this;
  22537.   HEAP[$c_addr_i] = $c;
  22538.   var $this1_i = HEAP[$this_addr_i];
  22539.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i];
  22540.   HEAP[$obj_addr_i_i] = $this1_i;
  22541.   var $7 = HEAP[$obj_addr_i_i];
  22542.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  22543.   HEAP[$base_addr_i_i_i] = $7;
  22544.   HEAP[$len_addr_i_i_i] = 2;
  22545.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  22546.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  22547.   do {
  22548.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  22549.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  22550.         var $20 = 0;
  22551.         break;
  22552.       }
  22553.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  22554.     } else {
  22555.       var $20 = 0;
  22556.     }
  22557.   } while (0);
  22558.   var $20;
  22559.   if ($20 & 1) {
  22560.     var $28 = HEAP[$c_addr_i];
  22561.     HEAP[$this_addr_i_i] = $this1_i | 0;
  22562.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  22563.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22564.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i, 6, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535);
  22565.   } else {
  22566.     var $36 = 0;
  22567.   }
  22568.   var $36;
  22569.   if ($36 & 1) {
  22570.     $retval = 1;
  22571.     var $42 = $retval;
  22572.     STACKTOP = __stackBase__;
  22573.     return $42;
  22574.   } else {
  22575.     $retval = 0;
  22576.     var $42 = $retval;
  22577.     STACKTOP = __stackBase__;
  22578.     return $42;
  22579.   }
  22580. }
  22581. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  22582.   var __stackBase__ = STACKTOP;
  22583.   STACKTOP = STACKTOP + 40 | 0;
  22584.   var $this_addr_i_i1_i = __stackBase__;
  22585.   var $base_addr_i_i_i = __stackBase__ + 4;
  22586.   var $len_addr_i_i_i = __stackBase__ + 8;
  22587.   var $p_i_i_i = __stackBase__ + 12;
  22588.   var $this_addr_i2_i = __stackBase__ + 16;
  22589.   var $obj_addr_i_i = __stackBase__ + 20;
  22590.   var $this_addr_i_i_i = __stackBase__ + 24;
  22591.   var $this_addr_i_i = __stackBase__ + 28;
  22592.   var $this_addr_i = __stackBase__ + 32;
  22593.   var $c_addr_i = __stackBase__ + 36;
  22594.   var $retval;
  22595.   HEAP[$this_addr_i] = $this;
  22596.   HEAP[$c_addr_i] = $c;
  22597.   var $this1_i = HEAP[$this_addr_i];
  22598.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i];
  22599.   HEAP[$obj_addr_i_i] = $this1_i;
  22600.   var $7 = HEAP[$obj_addr_i_i];
  22601.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  22602.   HEAP[$base_addr_i_i_i] = $7;
  22603.   HEAP[$len_addr_i_i_i] = 2;
  22604.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  22605.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  22606.   do {
  22607.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  22608.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  22609.         var $20 = 0;
  22610.         break;
  22611.       }
  22612.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  22613.     } else {
  22614.       var $20 = 0;
  22615.     }
  22616.   } while (0);
  22617.   var $20;
  22618.   if ($20 & 1) {
  22619.     var $28 = HEAP[$c_addr_i];
  22620.     HEAP[$this_addr_i_i] = $this1_i | 0;
  22621.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  22622.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22623.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i, 2, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535);
  22624.   } else {
  22625.     var $36 = 0;
  22626.   }
  22627.   var $36;
  22628.   if ($36 & 1) {
  22629.     $retval = 1;
  22630.     var $42 = $retval;
  22631.     STACKTOP = __stackBase__;
  22632.     return $42;
  22633.   } else {
  22634.     $retval = 0;
  22635.     var $42 = $retval;
  22636.     STACKTOP = __stackBase__;
  22637.     return $42;
  22638.   }
  22639. }
  22640. function __ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  22641.   var label = 0;
  22642.   var __stackBase__ = STACKTOP;
  22643.   STACKTOP = STACKTOP + 167 | 0;
  22644.   var $this_addr_i_i32 = __stackBase__;
  22645.   var $this_addr_i33 = __stackBase__ + 4;
  22646.   var $P_addr_i = __stackBase__ + 8;
  22647.   var $offset_addr_i = __stackBase__ + 12;
  22648.   var $this_addr_i_i19 = __stackBase__ + 16;
  22649.   var $base_addr_i_i20 = __stackBase__ + 20;
  22650.   var $len_addr_i_i21 = __stackBase__ + 24;
  22651.   var $p_i_i22 = __stackBase__ + 28;
  22652.   var $this_addr_i23 = __stackBase__ + 32;
  22653.   var $obj_addr_i = __stackBase__ + 36;
  22654.   var $this_addr_i_i40_i = __stackBase__ + 40;
  22655.   var $this_addr_i41_i = __stackBase__ + 44;
  22656.   var $this_addr_i_i_i13_i = __stackBase__ + 48;
  22657.   var $base_addr_i_i_i14_i = __stackBase__ + 52;
  22658.   var $len_addr_i_i_i15_i = __stackBase__ + 56;
  22659.   var $p_i_i_i16_i = __stackBase__ + 60;
  22660.   var $this_addr_i_i17_i = __stackBase__ + 64;
  22661.   var $obj_addr_i_i18_i = __stackBase__ + 68;
  22662.   var $this_addr_i20_i = __stackBase__ + 72;
  22663.   var $c_addr_i21_i = __stackBase__ + 76;
  22664.   var $this_addr_i_i_i_i = __stackBase__ + 80;
  22665.   var $base_addr_i_i_i_i = __stackBase__ + 84;
  22666.   var $len_addr_i_i_i_i = __stackBase__ + 88;
  22667.   var $p_i_i_i_i = __stackBase__ + 92;
  22668.   var $this_addr_i_i_i1 = __stackBase__ + 96;
  22669.   var $obj_addr_i_i_i = __stackBase__ + 100;
  22670.   var $this_addr_i7_i = __stackBase__ + 104;
  22671.   var $c_addr_i8_i = __stackBase__ + 108;
  22672.   var $this_addr_i_i3 = __stackBase__ + 112;
  22673.   var $c_addr_i_i = __stackBase__ + 116;
  22674.   var $retval_i4 = __stackBase__ + 120;
  22675.   var $this_addr_i5 = __stackBase__ + 121;
  22676.   var $c_addr_i6 = __stackBase__ + 125;
  22677.   var $this_addr_i_i_i = __stackBase__ + 129;
  22678.   var $i_addr_i_i_i = __stackBase__ + 133;
  22679.   var $this_addr_i1_i = __stackBase__ + 135;
  22680.   var $i_addr_i_i = __stackBase__ + 139;
  22681.   var $retval_i_i = __stackBase__ + 141;
  22682.   var $this_addr_i_i = __stackBase__ + 142;
  22683.   var $base_addr_i_i = __stackBase__ + 146;
  22684.   var $len_addr_i_i = __stackBase__ + 150;
  22685.   var $p_i_i = __stackBase__ + 154;
  22686.   var $retval_i = __stackBase__ + 158;
  22687.   var $this_addr_i = __stackBase__ + 159;
  22688.   var $c_addr_i = __stackBase__ + 163;
  22689.   var $retval;
  22690.   var $c_addr;
  22691.   var $base_addr;
  22692.   var $offset;
  22693.   $c_addr = $c;
  22694.   $base_addr = $base;
  22695.   var $this1 = $this;
  22696.   HEAP[$this_addr_i23] = $c_addr;
  22697.   HEAP[$obj_addr_i] = $this1;
  22698.   var $4 = HEAP[$obj_addr_i];
  22699.   HEAP[$this_addr_i_i19] = HEAP[$this_addr_i23];
  22700.   HEAP[$base_addr_i_i20] = $4;
  22701.   HEAP[$len_addr_i_i21] = 2;
  22702.   var $this1_i_i25 = HEAP[$this_addr_i_i19];
  22703.   HEAP[$p_i_i22] = HEAP[$base_addr_i_i20];
  22704.   do {
  22705.     if (HEAP[$this1_i_i25 + 4 | 0] >>> 0 <= HEAP[$p_i_i22] >>> 0) {
  22706.       if (!(HEAP[$p_i_i22] >>> 0 <= HEAP[$this1_i_i25 + 8 | 0] >>> 0)) {
  22707.         var $17 = 0;
  22708.         break;
  22709.       }
  22710.       var $17 = (HEAP[$this1_i_i25 + 8 | 0] - HEAP[$p_i_i22] | 0) >>> 0 >= HEAP[$len_addr_i_i21] >>> 0;
  22711.     } else {
  22712.       var $17 = 0;
  22713.     }
  22714.   } while (0);
  22715.   var $17;
  22716.   if (!($17 & 1)) {
  22717.     $retval = 0;
  22718.     var $188 = $retval;
  22719.     STACKTOP = __stackBase__;
  22720.     return $188;
  22721.   }
  22722.   HEAP[$this_addr_i33] = $this1;
  22723.   HEAP[$this_addr_i_i32] = HEAP[$this_addr_i33] | 0;
  22724.   var $this1_i_i35 = HEAP[$this_addr_i_i32];
  22725.   $offset = ((HEAP[$this1_i_i35 | 0] & 255) << 8) + (HEAP[$this1_i_i35 + 1 | 0] & 255) & 65535;
  22726.   if (($offset | 0) == 0) {
  22727.     $retval = 1;
  22728.     var $188 = $retval;
  22729.     STACKTOP = __stackBase__;
  22730.     return $188;
  22731.   }
  22732.   HEAP[$P_addr_i] = $base_addr;
  22733.   HEAP[$offset_addr_i] = $offset;
  22734.   HEAP[$this_addr_i5] = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  22735.   HEAP[$c_addr_i6] = $c_addr;
  22736.   var $this1_i7 = HEAP[$this_addr_i5];
  22737.   var $49 = HEAP[$c_addr_i6];
  22738.   HEAP[$this_addr_i20_i] = $this1_i7 | 0;
  22739.   HEAP[$c_addr_i21_i] = $49;
  22740.   var $this1_i22_i = HEAP[$this_addr_i20_i];
  22741.   HEAP[$this_addr_i_i17_i] = HEAP[$c_addr_i21_i];
  22742.   HEAP[$obj_addr_i_i18_i] = $this1_i22_i;
  22743.   var $56 = HEAP[$obj_addr_i_i18_i];
  22744.   HEAP[$this_addr_i_i_i13_i] = HEAP[$this_addr_i_i17_i];
  22745.   HEAP[$base_addr_i_i_i14_i] = $56;
  22746.   HEAP[$len_addr_i_i_i15_i] = 2;
  22747.   var $this1_i_i_i24_i = HEAP[$this_addr_i_i_i13_i];
  22748.   HEAP[$p_i_i_i16_i] = HEAP[$base_addr_i_i_i14_i];
  22749.   do {
  22750.     if (HEAP[$this1_i_i_i24_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i16_i] >>> 0) {
  22751.       if (!(HEAP[$p_i_i_i16_i] >>> 0 <= HEAP[$this1_i_i_i24_i + 8 | 0] >>> 0)) {
  22752.         var $69 = 0;
  22753.         break;
  22754.       }
  22755.       var $69 = (HEAP[$this1_i_i_i24_i + 8 | 0] - HEAP[$p_i_i_i16_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i15_i] >>> 0;
  22756.     } else {
  22757.       var $69 = 0;
  22758.     }
  22759.   } while (0);
  22760.   var $69;
  22761.   do {
  22762.     if ($69 & 1 & 1) {
  22763.       HEAP[$this_addr_i41_i] = $this1_i7 | 0;
  22764.       HEAP[$this_addr_i_i40_i] = HEAP[$this_addr_i41_i] | 0;
  22765.       var $this1_i_i43_i = HEAP[$this_addr_i_i40_i];
  22766.       var $conv_i = ((HEAP[$this1_i_i43_i | 0] & 255) << 8) + (HEAP[$this1_i_i43_i + 1 | 0] & 255) & 65535;
  22767.       if (($conv_i | 0) == 1) {
  22768.         var $90 = HEAP[$c_addr_i6];
  22769.         HEAP[$this_addr_i7_i] = $this1_i7 | 0;
  22770.         HEAP[$c_addr_i8_i] = $90;
  22771.         var $this1_i9_i = HEAP[$this_addr_i7_i];
  22772.         HEAP[$this_addr_i_i_i1] = HEAP[$c_addr_i8_i];
  22773.         HEAP[$obj_addr_i_i_i] = $this1_i9_i;
  22774.         var $97 = HEAP[$obj_addr_i_i_i];
  22775.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i1];
  22776.         HEAP[$base_addr_i_i_i_i] = $97;
  22777.         HEAP[$len_addr_i_i_i_i] = 6;
  22778.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  22779.         HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  22780.         do {
  22781.           if (HEAP[$this1_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  22782.             if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i + 8 | 0] >>> 0)) {
  22783.               var $110 = 0;
  22784.               break;
  22785.             }
  22786.             var $110 = (HEAP[$this1_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  22787.           } else {
  22788.             var $110 = 0;
  22789.           }
  22790.         } while (0);
  22791.         var $110;
  22792.         if ($110 & 1) {
  22793.           var $120 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE($this1_i9_i + 4 | 0, HEAP[$c_addr_i8_i]);
  22794.         } else {
  22795.           var $120 = 0;
  22796.         }
  22797.         var $120;
  22798.         var $tobool_i5_i = $120 & 1 & 1;
  22799.         HEAP[$retval_i4] = $tobool_i5_i;
  22800.         if ($tobool_i5_i) {
  22801.           var $186 = 1;
  22802.           break;
  22803.         } else {
  22804.           label = 418;
  22805.           break;
  22806.         }
  22807.       } else if (($conv_i | 0) == 2) {
  22808.         var $128 = HEAP[$c_addr_i6];
  22809.         HEAP[$this_addr_i_i3] = $this1_i7 | 0;
  22810.         HEAP[$c_addr_i_i] = $128;
  22811.         var $tobool_i2_i = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_11RangeRecordEE8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$this_addr_i_i3] + 2 | 0, HEAP[$c_addr_i_i]) & 1 & 1;
  22812.         HEAP[$retval_i4] = $tobool_i2_i;
  22813.         if ($tobool_i2_i) {
  22814.           var $186 = 1;
  22815.           break;
  22816.         } else {
  22817.           label = 418;
  22818.           break;
  22819.         }
  22820.       } else {
  22821.         var $tobool_i_i = 1;
  22822.         HEAP[$retval_i4] = $tobool_i_i;
  22823.         if ($tobool_i_i) {
  22824.           var $186 = 1;
  22825.           break;
  22826.         } else {
  22827.           label = 418;
  22828.           break;
  22829.         }
  22830.       }
  22831.     } else {
  22832.       var $tobool_i45_i = 0;
  22833.       HEAP[$retval_i4] = $tobool_i45_i;
  22834.       if ($tobool_i45_i) {
  22835.         var $186 = 1;
  22836.         break;
  22837.       } else {
  22838.         label = 418;
  22839.         break;
  22840.       }
  22841.     }
  22842.   } while (0);
  22843.   if (label == 418) {
  22844.     HEAP[$this_addr_i] = $this1;
  22845.     HEAP[$c_addr_i] = $c_addr;
  22846.     var $this1_i = HEAP[$this_addr_i];
  22847.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  22848.     HEAP[$base_addr_i_i] = $this1_i;
  22849.     HEAP[$len_addr_i_i] = 2;
  22850.     var $this1_i_i = HEAP[$this_addr_i_i];
  22851.     do {
  22852.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  22853.         HEAP[$retval_i_i] = 0;
  22854.         label = 422;
  22855.         break;
  22856.       } else {
  22857.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  22858.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  22859.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  22860.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  22861.         HEAP[$retval_i_i] = $tobool_i_i_i;
  22862.         if (!$tobool_i_i_i) {
  22863.           label = 422;
  22864.           break;
  22865.         }
  22866.         HEAP[$this_addr_i1_i] = $this1_i;
  22867.         HEAP[$i_addr_i_i] = 0;
  22868.         var $173 = HEAP[$i_addr_i_i];
  22869.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  22870.         HEAP[$i_addr_i_i_i] = $173;
  22871.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  22872.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  22873.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  22874.         HEAP[$retval_i] = 1;
  22875.         break;
  22876.       }
  22877.     } while (0);
  22878.     if (label == 422) {
  22879.       HEAP[$retval_i] = 0;
  22880.     }
  22881.     var $186 = HEAP[$retval_i];
  22882.   }
  22883.   var $186;
  22884.   $retval = $186 & 1;
  22885.   var $188 = $retval;
  22886.   STACKTOP = __stackBase__;
  22887.   return $188;
  22888. }
  22889. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_12ChainRuleSetEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  22890.   var label = 0;
  22891.   var __stackBase__ = STACKTOP;
  22892.   STACKTOP = STACKTOP + 424 | 0;
  22893.   var $this_addr_i_i45 = __stackBase__;
  22894.   var $this_addr_i46 = __stackBase__ + 4;
  22895.   var $this_addr_i_i1_i = __stackBase__ + 8;
  22896.   var $base_addr_i_i_i5 = __stackBase__ + 12;
  22897.   var $len_addr_i_i_i6 = __stackBase__ + 16;
  22898.   var $p_i_i_i7 = __stackBase__ + 20;
  22899.   var $this_addr_i2_i = __stackBase__ + 24;
  22900.   var $obj_addr_i_i8 = __stackBase__ + 28;
  22901.   var $this_addr_i_i_i9 = __stackBase__ + 32;
  22902.   var $this_addr_i_i10 = __stackBase__ + 36;
  22903.   var $this_addr_i12 = __stackBase__ + 40;
  22904.   var $c_addr_i13 = __stackBase__ + 44;
  22905.   var $P_addr_i_i = __stackBase__ + 48;
  22906.   var $offset_addr_i_i = __stackBase__ + 52;
  22907.   var $this_addr_i_i31_i = __stackBase__ + 56;
  22908.   var $this_addr_i32_i = __stackBase__ + 60;
  22909.   var $this_addr_i_i19_i = __stackBase__ + 64;
  22910.   var $base_addr_i_i20_i = __stackBase__ + 68;
  22911.   var $len_addr_i_i21_i = __stackBase__ + 72;
  22912.   var $p_i_i22_i = __stackBase__ + 76;
  22913.   var $this_addr_i23_i = __stackBase__ + 80;
  22914.   var $obj_addr_i_i = __stackBase__ + 84;
  22915.   var $this_addr_i_i45_i_i_i = __stackBase__ + 88;
  22916.   var $this_addr_i46_i_i_i = __stackBase__ + 92;
  22917.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 96;
  22918.   var $base_addr_i_i_i5_i_i_i = __stackBase__ + 100;
  22919.   var $len_addr_i_i_i6_i_i_i = __stackBase__ + 104;
  22920.   var $p_i_i_i7_i_i_i = __stackBase__ + 108;
  22921.   var $this_addr_i2_i_i_i_i = __stackBase__ + 112;
  22922.   var $obj_addr_i_i8_i_i_i = __stackBase__ + 116;
  22923.   var $this_addr_i_i_i9_i_i_i = __stackBase__ + 120;
  22924.   var $this_addr_i_i10_i_i_i = __stackBase__ + 124;
  22925.   var $this_addr_i12_i_i_i = __stackBase__ + 128;
  22926.   var $c_addr_i13_i_i_i = __stackBase__ + 132;
  22927.   var $P_addr_i_i_i_i_i = __stackBase__ + 136;
  22928.   var $offset_addr_i_i_i_i_i = __stackBase__ + 140;
  22929.   var $this_addr_i_i24_i_i_i_i = __stackBase__ + 144;
  22930.   var $this_addr_i25_i_i_i_i = __stackBase__ + 148;
  22931.   var $this_addr_i_i12_i_i_i_i = __stackBase__ + 152;
  22932.   var $base_addr_i_i13_i_i_i_i = __stackBase__ + 156;
  22933.   var $len_addr_i_i14_i_i_i_i = __stackBase__ + 160;
  22934.   var $p_i_i15_i_i_i_i = __stackBase__ + 164;
  22935.   var $this_addr_i16_i_i_i_i = __stackBase__ + 168;
  22936.   var $obj_addr_i_i_i_i_i = __stackBase__ + 172;
  22937.   var $P_addr_i_i31_i_i_i_i_i = __stackBase__ + 176;
  22938.   var $offset_addr_i_i32_i_i_i_i_i = __stackBase__ + 180;
  22939.   var $this_addr_i_i_i_i33_i_i_i_i_i = __stackBase__ + 184;
  22940.   var $this_addr_i_i_i34_i_i_i_i_i = __stackBase__ + 188;
  22941.   var $this_addr_i_i35_i_i_i_i_i = __stackBase__ + 192;
  22942.   var $X_addr_i36_i_i_i_i_i = __stackBase__ + 196;
  22943.   var $P_addr_i_i5_i_i_i_i_i = __stackBase__ + 200;
  22944.   var $offset_addr_i_i6_i_i_i_i_i = __stackBase__ + 204;
  22945.   var $this_addr_i_i1_i_i_i_i_i_i_i = __stackBase__ + 208;
  22946.   var $this_addr_i2_i_i_i_i_i_i_i = __stackBase__ + 212;
  22947.   var $this_addr_i_i_i_i7_i_i_i_i_i = __stackBase__ + 216;
  22948.   var $this_addr_i_i_i8_i_i_i_i_i = __stackBase__ + 220;
  22949.   var $this_addr_i_i9_i_i_i_i_i = __stackBase__ + 224;
  22950.   var $X_addr_i10_i_i_i_i_i = __stackBase__ + 228;
  22951.   var $P_addr_i_i_i_i_i_i_i = __stackBase__ + 232;
  22952.   var $offset_addr_i_i_i_i_i_i_i = __stackBase__ + 236;
  22953.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 240;
  22954.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 244;
  22955.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 248;
  22956.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 252;
  22957.   var $retval_i2_i_i_i_i = __stackBase__ + 256;
  22958.   var $this_addr_i3_i_i_i_i = __stackBase__ + 257;
  22959.   var $c_addr_i4_i_i_i_i = __stackBase__ + 261;
  22960.   var $input_i_i_i_i_i = __stackBase__ + 265;
  22961.   var $lookahead_i_i_i_i_i = __stackBase__ + 269;
  22962.   var $lookup_i_i_i_i_i = __stackBase__ + 273;
  22963.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 277;
  22964.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 281;
  22965.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 283;
  22966.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 287;
  22967.   var $retval_i_i_i_i_i_i = __stackBase__ + 289;
  22968.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 290;
  22969.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 294;
  22970.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 298;
  22971.   var $p_i_i_i_i_i_i = __stackBase__ + 302;
  22972.   var $retval_i_i_i_i_i = __stackBase__ + 306;
  22973.   var $this_addr_i_i_i_i_i = __stackBase__ + 307;
  22974.   var $c_addr_i_i_i_i_i = __stackBase__ + 311;
  22975.   var $retval_i_i_i_i = __stackBase__ + 315;
  22976.   var $this_addr_i_i_i1_i = __stackBase__ + 316;
  22977.   var $c_addr_i_i_i_i = __stackBase__ + 320;
  22978.   var $base_addr_i_i_i_i = __stackBase__ + 324;
  22979.   var $offset_i_i_i_i = __stackBase__ + 328;
  22980.   var $obj_i_i_i_i = __stackBase__ + 332;
  22981.   var $retval_i_i3_i = __stackBase__ + 336;
  22982.   var $this_addr_i_i4_i = __stackBase__ + 337;
  22983.   var $c_addr_i_i_i = __stackBase__ + 341;
  22984.   var $base_addr_i_i5_i = __stackBase__ + 345;
  22985.   var $count_i_i_i = __stackBase__ + 349;
  22986.   var $i_i_i_i = __stackBase__ + 353;
  22987.   var $this_addr_i6_i = __stackBase__ + 357;
  22988.   var $c_addr_i7_i = __stackBase__ + 361;
  22989.   var $this_addr_i_i_i_i = __stackBase__ + 365;
  22990.   var $i_addr_i_i_i_i = __stackBase__ + 369;
  22991.   var $this_addr_i1_i_i = __stackBase__ + 371;
  22992.   var $i_addr_i_i_i = __stackBase__ + 375;
  22993.   var $retval_i_i_i = __stackBase__ + 377;
  22994.   var $this_addr_i_i_i = __stackBase__ + 378;
  22995.   var $base_addr_i_i_i = __stackBase__ + 382;
  22996.   var $len_addr_i_i_i = __stackBase__ + 386;
  22997.   var $p_i_i_i = __stackBase__ + 390;
  22998.   var $retval_i_i = __stackBase__ + 394;
  22999.   var $this_addr_i_i = __stackBase__ + 395;
  23000.   var $c_addr_i_i = __stackBase__ + 399;
  23001.   var $retval_i = __stackBase__ + 403;
  23002.   var $this_addr_i = __stackBase__ + 404;
  23003.   var $c_addr_i = __stackBase__ + 408;
  23004.   var $base_addr_i = __stackBase__ + 412;
  23005.   var $offset_i = __stackBase__ + 416;
  23006.   var $obj_i = __stackBase__ + 420;
  23007.   var $retval;
  23008.   var $c_addr;
  23009.   var $base_addr;
  23010.   var $count;
  23011.   var $i;
  23012.   $c_addr = $c;
  23013.   $base_addr = $base;
  23014.   var $this1 = $this;
  23015.   HEAP[$this_addr_i12] = $this1;
  23016.   HEAP[$c_addr_i13] = $c_addr;
  23017.   var $this1_i14 = HEAP[$this_addr_i12];
  23018.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i13];
  23019.   HEAP[$obj_addr_i_i8] = $this1_i14;
  23020.   var $7 = HEAP[$obj_addr_i_i8];
  23021.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  23022.   HEAP[$base_addr_i_i_i5] = $7;
  23023.   HEAP[$len_addr_i_i_i6] = 2;
  23024.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  23025.   HEAP[$p_i_i_i7] = HEAP[$base_addr_i_i_i5];
  23026.   do {
  23027.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7] >>> 0) {
  23028.       if (!(HEAP[$p_i_i_i7] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  23029.         var $20 = 0;
  23030.         break;
  23031.       }
  23032.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i7] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6] >>> 0;
  23033.     } else {
  23034.       var $20 = 0;
  23035.     }
  23036.   } while (0);
  23037.   var $20;
  23038.   if ($20 & 1) {
  23039.     var $28 = HEAP[$c_addr_i13];
  23040.     HEAP[$this_addr_i_i10] = $this1_i14 | 0;
  23041.     HEAP[$this_addr_i_i_i9] = HEAP[$this_addr_i_i10] | 0;
  23042.     var $this1_i_i_i30 = HEAP[$this_addr_i_i_i9];
  23043.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i14, 2, ((HEAP[$this1_i_i_i30 | 0] & 255) << 8) + (HEAP[$this1_i_i_i30 + 1 | 0] & 255) & 65535);
  23044.   } else {
  23045.     var $36 = 0;
  23046.   }
  23047.   var $36;
  23048.   if (!($36 & 1)) {
  23049.     $retval = 0;
  23050.     var $440 = $retval;
  23051.     STACKTOP = __stackBase__;
  23052.     return $440;
  23053.   }
  23054.   HEAP[$this_addr_i46] = $this1 | 0;
  23055.   HEAP[$this_addr_i_i45] = HEAP[$this_addr_i46] | 0;
  23056.   var $this1_i_i48 = HEAP[$this_addr_i_i45];
  23057.   $count = ((HEAP[$this1_i_i48 | 0] & 255) << 8) + (HEAP[$this1_i_i48 + 1 | 0] & 255) & 65535;
  23058.   $i = 0;
  23059.   L565 : do {
  23060.     if ($i >>> 0 < $count >>> 0) {
  23061.       var $array = $this1 + 2 | 0;
  23062.       while (1) {
  23063.         HEAP[$this_addr_i] = ($i << 1) + $array | 0;
  23064.         HEAP[$c_addr_i] = $c_addr;
  23065.         HEAP[$base_addr_i] = $base_addr;
  23066.         var $this1_i = HEAP[$this_addr_i];
  23067.         HEAP[$this_addr_i23_i] = HEAP[$c_addr_i];
  23068.         HEAP[$obj_addr_i_i] = $this1_i;
  23069.         var $269 = HEAP[$obj_addr_i_i];
  23070.         HEAP[$this_addr_i_i19_i] = HEAP[$this_addr_i23_i];
  23071.         HEAP[$base_addr_i_i20_i] = $269;
  23072.         HEAP[$len_addr_i_i21_i] = 2;
  23073.         var $this1_i_i25_i = HEAP[$this_addr_i_i19_i];
  23074.         HEAP[$p_i_i22_i] = HEAP[$base_addr_i_i20_i];
  23075.         do {
  23076.           if (HEAP[$this1_i_i25_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i] >>> 0) {
  23077.             if (!(HEAP[$p_i_i22_i] >>> 0 <= HEAP[$this1_i_i25_i + 8 | 0] >>> 0)) {
  23078.               var $278 = 0;
  23079.               break;
  23080.             }
  23081.             var $278 = (HEAP[$this1_i_i25_i + 8 | 0] - HEAP[$p_i_i22_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i] >>> 0;
  23082.           } else {
  23083.             var $278 = 0;
  23084.           }
  23085.         } while (0);
  23086.         var $278;
  23087.         do {
  23088.           if ($278 & 1) {
  23089.             HEAP[$this_addr_i32_i] = $this1_i;
  23090.             HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  23091.             var $this1_i_i34_i = HEAP[$this_addr_i_i31_i];
  23092.             HEAP[$offset_i] = ((HEAP[$this1_i_i34_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i + 1 | 0] & 255) & 65535;
  23093.             if ((HEAP[$offset_i] | 0) == 0) {
  23094.               var $tobool_i39_i = 1;
  23095.               HEAP[$retval_i] = $tobool_i39_i;
  23096.               var $434 = $tobool_i39_i;
  23097.               break;
  23098.             }
  23099.             var $287 = HEAP[$offset_i];
  23100.             HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  23101.             HEAP[$offset_addr_i_i] = $287;
  23102.             HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  23103.             var $292 = HEAP[$c_addr_i];
  23104.             HEAP[$this_addr_i6_i] = HEAP[$obj_i];
  23105.             HEAP[$c_addr_i7_i] = $292;
  23106.             var $this1_i8_i = HEAP[$this_addr_i6_i];
  23107.             var $294 = HEAP[$c_addr_i7_i];
  23108.             HEAP[$this_addr_i_i4_i] = $this1_i8_i | 0;
  23109.             HEAP[$c_addr_i_i_i] = $294;
  23110.             HEAP[$base_addr_i_i5_i] = $this1_i8_i;
  23111.             var $this1_i_i9_i = HEAP[$this_addr_i_i4_i];
  23112.             var $296 = HEAP[$c_addr_i_i_i];
  23113.             HEAP[$this_addr_i12_i_i_i] = $this1_i_i9_i;
  23114.             HEAP[$c_addr_i13_i_i_i] = $296;
  23115.             var $this1_i14_i_i_i = HEAP[$this_addr_i12_i_i_i];
  23116.             HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i13_i_i_i];
  23117.             HEAP[$obj_addr_i_i8_i_i_i] = $this1_i14_i_i_i;
  23118.             var $299 = HEAP[$obj_addr_i_i8_i_i_i];
  23119.             HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  23120.             HEAP[$base_addr_i_i_i5_i_i_i] = $299;
  23121.             HEAP[$len_addr_i_i_i6_i_i_i] = 2;
  23122.             var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  23123.             HEAP[$p_i_i_i7_i_i_i] = HEAP[$base_addr_i_i_i5_i_i_i];
  23124.             do {
  23125.               if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i_i_i] >>> 0) {
  23126.                 if (!(HEAP[$p_i_i_i7_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  23127.                   var $308 = 0;
  23128.                   break;
  23129.                 }
  23130.                 var $308 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i7_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i_i_i] >>> 0;
  23131.               } else {
  23132.                 var $308 = 0;
  23133.               }
  23134.             } while (0);
  23135.             var $308;
  23136.             if ($308 & 1) {
  23137.               var $310 = HEAP[$c_addr_i13_i_i_i];
  23138.               HEAP[$this_addr_i_i10_i_i_i] = $this1_i14_i_i_i | 0;
  23139.               HEAP[$this_addr_i_i_i9_i_i_i] = HEAP[$this_addr_i_i10_i_i_i] | 0;
  23140.               var $this1_i_i_i30_i_i_i = HEAP[$this_addr_i_i_i9_i_i_i];
  23141.               var $314 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($310, $this1_i14_i_i_i, 2, ((HEAP[$this1_i_i_i30_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i30_i_i_i + 1 | 0] & 255) & 65535);
  23142.             } else {
  23143.               var $314 = 0;
  23144.             }
  23145.             var $314;
  23146.             L585 : do {
  23147.               if ($314 & 1) {
  23148.                 HEAP[$this_addr_i46_i_i_i] = $this1_i_i9_i | 0;
  23149.                 HEAP[$this_addr_i_i45_i_i_i] = HEAP[$this_addr_i46_i_i_i] | 0;
  23150.                 var $this1_i_i48_i_i_i = HEAP[$this_addr_i_i45_i_i_i];
  23151.                 HEAP[$count_i_i_i] = ((HEAP[$this1_i_i48_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i48_i_i_i + 1 | 0] & 255) & 65535;
  23152.                 HEAP[$i_i_i_i] = 0;
  23153.                 L588 : do {
  23154.                   if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  23155.                     var $array_i_i_i = $this1_i_i9_i + 2 | 0;
  23156.                     while (1) {
  23157.                       var $323 = HEAP[$c_addr_i_i_i];
  23158.                       var $324 = HEAP[$base_addr_i_i5_i];
  23159.                       HEAP[$this_addr_i_i_i1_i] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  23160.                       HEAP[$c_addr_i_i_i_i] = $323;
  23161.                       HEAP[$base_addr_i_i_i_i] = $324;
  23162.                       var $this1_i_i_i13_i = HEAP[$this_addr_i_i_i1_i];
  23163.                       HEAP[$this_addr_i16_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  23164.                       HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  23165.                       var $327 = HEAP[$obj_addr_i_i_i_i_i];
  23166.                       HEAP[$this_addr_i_i12_i_i_i_i] = HEAP[$this_addr_i16_i_i_i_i];
  23167.                       HEAP[$base_addr_i_i13_i_i_i_i] = $327;
  23168.                       HEAP[$len_addr_i_i14_i_i_i_i] = 2;
  23169.                       var $this1_i_i18_i_i_i_i = HEAP[$this_addr_i_i12_i_i_i_i];
  23170.                       HEAP[$p_i_i15_i_i_i_i] = HEAP[$base_addr_i_i13_i_i_i_i];
  23171.                       do {
  23172.                         if (HEAP[$this1_i_i18_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i15_i_i_i_i] >>> 0) {
  23173.                           if (!(HEAP[$p_i_i15_i_i_i_i] >>> 0 <= HEAP[$this1_i_i18_i_i_i_i + 8 | 0] >>> 0)) {
  23174.                             var $336 = 0;
  23175.                             break;
  23176.                           }
  23177.                           var $336 = (HEAP[$this1_i_i18_i_i_i_i + 8 | 0] - HEAP[$p_i_i15_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i14_i_i_i_i] >>> 0;
  23178.                         } else {
  23179.                           var $336 = 0;
  23180.                         }
  23181.                       } while (0);
  23182.                       var $336;
  23183.                       do {
  23184.                         if ($336 & 1) {
  23185.                           HEAP[$this_addr_i25_i_i_i_i] = $this1_i_i_i13_i;
  23186.                           HEAP[$this_addr_i_i24_i_i_i_i] = HEAP[$this_addr_i25_i_i_i_i] | 0;
  23187.                           var $this1_i_i27_i_i_i_i = HEAP[$this_addr_i_i24_i_i_i_i];
  23188.                           HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i27_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i27_i_i_i_i + 1 | 0] & 255) & 65535;
  23189.                           if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  23190.                             var $tobool_i30_i_i_i_i = 1;
  23191.                             HEAP[$retval_i_i_i_i] = $tobool_i30_i_i_i_i;
  23192.                             var $411 = $tobool_i30_i_i_i_i;
  23193.                             break;
  23194.                           }
  23195.                           var $345 = HEAP[$offset_i_i_i_i];
  23196.                           HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  23197.                           HEAP[$offset_addr_i_i_i_i_i] = $345;
  23198.                           HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  23199.                           var $350 = HEAP[$c_addr_i_i_i_i];
  23200.                           HEAP[$this_addr_i3_i_i_i_i] = HEAP[$obj_i_i_i_i];
  23201.                           HEAP[$c_addr_i4_i_i_i_i] = $350;
  23202.                           var $this1_i5_i_i_i_i = HEAP[$this_addr_i3_i_i_i_i];
  23203.                           do {
  23204.                             if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE($this1_i5_i_i_i_i | 0, HEAP[$c_addr_i4_i_i_i_i])) {
  23205.                               HEAP[$X_addr_i36_i_i_i_i_i] = $this1_i5_i_i_i_i | 0;
  23206.                               var $355 = HEAP[$X_addr_i36_i_i_i_i_i];
  23207.                               HEAP[$this_addr_i_i35_i_i_i_i_i] = HEAP[$X_addr_i36_i_i_i_i_i];
  23208.                               HEAP[$this_addr_i_i_i34_i_i_i_i_i] = HEAP[$this_addr_i_i35_i_i_i_i_i] | 0;
  23209.                               HEAP[$this_addr_i_i_i_i33_i_i_i_i_i] = HEAP[$this_addr_i_i_i34_i_i_i_i_i] | 0;
  23210.                               var $this1_i_i_i_i41_i_i_i_i_i = HEAP[$this_addr_i_i_i_i33_i_i_i_i_i];
  23211.                               var $add_i_i53_i_i_i_i_i = ((((HEAP[$this1_i_i_i_i41_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i41_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  23212.                               HEAP[$P_addr_i_i31_i_i_i_i_i] = $355;
  23213.                               HEAP[$offset_addr_i_i32_i_i_i_i_i] = $add_i_i53_i_i_i_i_i;
  23214.                               HEAP[$input_i_i_i_i_i] = HEAP[$P_addr_i_i31_i_i_i_i_i] + HEAP[$offset_addr_i_i32_i_i_i_i_i] | 0;
  23215.                               if (!__ZN2OT15HeadlessArrayOfINS_7IntTypeItLj2EEEE8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$input_i_i_i_i_i], HEAP[$c_addr_i4_i_i_i_i])) {
  23216.                                 var $tobool_i30_i_i_i_i_i = 0;
  23217.                                 HEAP[$retval_i2_i_i_i_i] = $tobool_i30_i_i_i_i_i;
  23218.                                 var $395 = $tobool_i30_i_i_i_i_i;
  23219.                                 break;
  23220.                               }
  23221.                               HEAP[$X_addr_i10_i_i_i_i_i] = HEAP[$input_i_i_i_i_i];
  23222.                               var $368 = HEAP[$X_addr_i10_i_i_i_i_i];
  23223.                               HEAP[$this_addr_i_i9_i_i_i_i_i] = HEAP[$X_addr_i10_i_i_i_i_i];
  23224.                               var $this1_i_i11_i_i_i_i_i = HEAP[$this_addr_i_i9_i_i_i_i_i];
  23225.                               HEAP[$this_addr_i_i_i8_i_i_i_i_i] = $this1_i_i11_i_i_i_i_i | 0;
  23226.                               HEAP[$this_addr_i_i_i_i7_i_i_i_i_i] = HEAP[$this_addr_i_i_i8_i_i_i_i_i] | 0;
  23227.                               var $this1_i_i_i_i15_i_i_i_i_i = HEAP[$this_addr_i_i_i_i7_i_i_i_i_i];
  23228.                               if ((((HEAP[$this1_i_i_i_i15_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i15_i_i_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  23229.                                 HEAP[$this_addr_i2_i_i_i_i_i_i_i] = $this1_i_i11_i_i_i_i_i | 0;
  23230.                                 HEAP[$this_addr_i_i1_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i] | 0;
  23231.                                 var $this1_i_i5_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i];
  23232.                                 var $cond_i_i_i_i_i_i_i = (((HEAP[$this1_i_i5_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) - 1 | 0;
  23233.                               } else {
  23234.                                 var $cond_i_i_i_i_i_i_i = 0;
  23235.                               }
  23236.                               var $cond_i_i_i_i_i_i_i;
  23237.                               HEAP[$P_addr_i_i5_i_i_i_i_i] = $368;
  23238.                               HEAP[$offset_addr_i_i6_i_i_i_i_i] = ($cond_i_i_i_i_i_i_i << 1) + 2 | 0;
  23239.                               HEAP[$lookahead_i_i_i_i_i] = HEAP[$P_addr_i_i5_i_i_i_i_i] + HEAP[$offset_addr_i_i6_i_i_i_i_i] | 0;
  23240.                               if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$lookahead_i_i_i_i_i], HEAP[$c_addr_i4_i_i_i_i])) {
  23241.                                 HEAP[$X_addr_i_i_i_i_i_i] = HEAP[$lookahead_i_i_i_i_i];
  23242.                                 var $383 = HEAP[$X_addr_i_i_i_i_i_i];
  23243.                                 HEAP[$this_addr_i_i_i1_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  23244.                                 HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i_i_i_i] | 0;
  23245.                                 HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i_i_i] | 0;
  23246.                                 var $this1_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i];
  23247.                                 var $add_i_i_i_i_i_i_i = ((((HEAP[$this1_i_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  23248.                                 HEAP[$P_addr_i_i_i_i_i_i_i] = $383;
  23249.                                 HEAP[$offset_addr_i_i_i_i_i_i_i] = $add_i_i_i_i_i_i_i;
  23250.                                 HEAP[$lookup_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i] | 0;
  23251.                                 var $tobool_i_i_i_i_i_i = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_12LookupRecordEE8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$lookup_i_i_i_i_i], HEAP[$c_addr_i4_i_i_i_i]) & 1;
  23252.                                 HEAP[$retval_i2_i_i_i_i] = $tobool_i_i_i_i_i_i;
  23253.                                 var $395 = $tobool_i_i_i_i_i_i;
  23254.                                 break;
  23255.                               } else {
  23256.                                 var $tobool_i2_i_i_i_i_i = 0;
  23257.                                 HEAP[$retval_i2_i_i_i_i] = $tobool_i2_i_i_i_i_i;
  23258.                                 var $395 = $tobool_i2_i_i_i_i_i;
  23259.                                 break;
  23260.                               }
  23261.                             } else {
  23262.                               var $tobool_i4_i_i_i_i_i = 0;
  23263.                               HEAP[$retval_i2_i_i_i_i] = $tobool_i4_i_i_i_i_i;
  23264.                               var $395 = $tobool_i4_i_i_i_i_i;
  23265.                             }
  23266.                           } while (0);
  23267.                           var $395;
  23268.                           if ($395) {
  23269.                             var $409 = 1;
  23270.                           } else {
  23271.                             var $396 = HEAP[$c_addr_i_i_i_i];
  23272.                             HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  23273.                             HEAP[$c_addr_i_i_i_i_i] = $396;
  23274.                             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  23275.                             HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  23276.                             HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  23277.                             HEAP[$len_addr_i_i_i_i_i_i] = 2;
  23278.                             var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  23279.                             do {
  23280.                               if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  23281.                                 HEAP[$retval_i_i_i_i_i_i] = 0;
  23282.                                 label = 475;
  23283.                                 break;
  23284.                               } else {
  23285.                                 HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  23286.                                 var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  23287.                                 HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  23288.                                 var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  23289.                                 HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  23290.                                 if (!$tobool_i_i_i_i_i_i_i) {
  23291.                                   label = 475;
  23292.                                   break;
  23293.                                 }
  23294.                                 HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i;
  23295.                                 HEAP[$i_addr_i_i_i_i_i_i] = 0;
  23296.                                 var $405 = HEAP[$i_addr_i_i_i_i_i_i];
  23297.                                 HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  23298.                                 HEAP[$i_addr_i_i_i_i_i_i_i] = $405;
  23299.                                 var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  23300.                                 HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  23301.                                 HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  23302.                                 HEAP[$retval_i_i_i_i_i] = 1;
  23303.                                 break;
  23304.                               }
  23305.                             } while (0);
  23306.                             if (label == 475) {
  23307.                               label = 0;
  23308.                               HEAP[$retval_i_i_i_i_i] = 0;
  23309.                             }
  23310.                             var $409 = HEAP[$retval_i_i_i_i_i];
  23311.                           }
  23312.                           var $409;
  23313.                           var $tobool_i_i_i_i_i = $409 & 1;
  23314.                           HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i;
  23315.                           var $411 = $tobool_i_i_i_i_i;
  23316.                         } else {
  23317.                           var $tobool_i23_i_i_i_i = 0;
  23318.                           HEAP[$retval_i_i_i_i] = $tobool_i23_i_i_i_i;
  23319.                           var $411 = $tobool_i23_i_i_i_i;
  23320.                         }
  23321.                       } while (0);
  23322.                       var $411;
  23323.                       if (!$411) {
  23324.                         break;
  23325.                       }
  23326.                       HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  23327.                       if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  23328.                         break L588;
  23329.                       }
  23330.                     }
  23331.                     HEAP[$retval_i_i3_i] = 0;
  23332.                     break L585;
  23333.                   }
  23334.                 } while (0);
  23335.                 HEAP[$retval_i_i3_i] = 1;
  23336.               } else {
  23337.                 HEAP[$retval_i_i3_i] = 0;
  23338.               }
  23339.             } while (0);
  23340.             if (HEAP[$retval_i_i3_i] & 1) {
  23341.               var $432 = 1;
  23342.             } else {
  23343.               var $419 = HEAP[$c_addr_i];
  23344.               HEAP[$this_addr_i_i] = $this1_i;
  23345.               HEAP[$c_addr_i_i] = $419;
  23346.               var $this1_i_i = HEAP[$this_addr_i_i];
  23347.               HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  23348.               HEAP[$base_addr_i_i_i] = $this1_i_i;
  23349.               HEAP[$len_addr_i_i_i] = 2;
  23350.               var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  23351.               do {
  23352.                 if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  23353.                   HEAP[$retval_i_i_i] = 0;
  23354.                   label = 487;
  23355.                   break;
  23356.                 } else {
  23357.                   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  23358.                   var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  23359.                   HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  23360.                   var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  23361.                   HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  23362.                   if (!$tobool_i_i_i_i) {
  23363.                     label = 487;
  23364.                     break;
  23365.                   }
  23366.                   HEAP[$this_addr_i1_i_i] = $this1_i_i;
  23367.                   HEAP[$i_addr_i_i_i] = 0;
  23368.                   var $428 = HEAP[$i_addr_i_i_i];
  23369.                   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  23370.                   HEAP[$i_addr_i_i_i_i] = $428;
  23371.                   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  23372.                   HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  23373.                   HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  23374.                   HEAP[$retval_i_i] = 1;
  23375.                   break;
  23376.                 }
  23377.               } while (0);
  23378.               if (label == 487) {
  23379.                 label = 0;
  23380.                 HEAP[$retval_i_i] = 0;
  23381.               }
  23382.               var $432 = HEAP[$retval_i_i];
  23383.             }
  23384.             var $432;
  23385.             var $tobool_i_i = $432 & 1;
  23386.             HEAP[$retval_i] = $tobool_i_i;
  23387.             var $434 = $tobool_i_i;
  23388.           } else {
  23389.             var $tobool_i30_i = 0;
  23390.             HEAP[$retval_i] = $tobool_i30_i;
  23391.             var $434 = $tobool_i30_i;
  23392.           }
  23393.         } while (0);
  23394.         var $434;
  23395.         if (!$434) {
  23396.           break;
  23397.         }
  23398.         $i = $i + 1 | 0;
  23399.         if ($i >>> 0 >= $count >>> 0) {
  23400.           break L565;
  23401.         }
  23402.       }
  23403.       $retval = 0;
  23404.       var $440 = $retval;
  23405.       STACKTOP = __stackBase__;
  23406.       return $440;
  23407.     }
  23408.   } while (0);
  23409.   $retval = 1;
  23410.   var $440 = $retval;
  23411.   STACKTOP = __stackBase__;
  23412.   return $440;
  23413. }
  23414. function __ZN2OT15HeadlessArrayOfINS_7IntTypeItLj2EEEE8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  23415.   var __stackBase__ = STACKTOP;
  23416.   STACKTOP = STACKTOP + 40 | 0;
  23417.   var $this_addr_i_i1_i = __stackBase__;
  23418.   var $this_addr_i2_i = __stackBase__ + 4;
  23419.   var $this_addr_i_i_i = __stackBase__ + 8;
  23420.   var $base_addr_i_i_i = __stackBase__ + 12;
  23421.   var $len_addr_i_i_i = __stackBase__ + 16;
  23422.   var $p_i_i_i = __stackBase__ + 20;
  23423.   var $this_addr_i_i = __stackBase__ + 24;
  23424.   var $obj_addr_i_i = __stackBase__ + 28;
  23425.   var $this_addr_i = __stackBase__ + 32;
  23426.   var $c_addr_i = __stackBase__ + 36;
  23427.   var $retval;
  23428.   HEAP[$this_addr_i] = $this;
  23429.   HEAP[$c_addr_i] = $c;
  23430.   var $this1_i = HEAP[$this_addr_i];
  23431.   HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  23432.   HEAP[$obj_addr_i_i] = $this1_i;
  23433.   var $7 = HEAP[$obj_addr_i_i];
  23434.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  23435.   HEAP[$base_addr_i_i_i] = $7;
  23436.   HEAP[$len_addr_i_i_i] = 2;
  23437.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  23438.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  23439.   do {
  23440.     if (HEAP[$this1_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  23441.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i + 8 | 0] >>> 0)) {
  23442.         var $20 = 0;
  23443.         break;
  23444.       }
  23445.       var $20 = (HEAP[$this1_i_i_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  23446.     } else {
  23447.       var $20 = 0;
  23448.     }
  23449.   } while (0);
  23450.   var $20;
  23451.   do {
  23452.     if ($20 & 1) {
  23453.       var $30 = HEAP[$c_addr_i];
  23454.       HEAP[$this_addr_i2_i] = $this1_i | 0;
  23455.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  23456.       var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  23457.       if (!__ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($30, $this1_i, 2, ((HEAP[$this1_i_i4_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i + 1 | 0] & 255) & 65535)) {
  23458.         break;
  23459.       }
  23460.       $retval = 1;
  23461.       var $42 = $retval;
  23462.       STACKTOP = __stackBase__;
  23463.       return $42;
  23464.     } else {
  23465.     }
  23466.   } while (0);
  23467.   $retval = 0;
  23468.   var $42 = $retval;
  23469.   STACKTOP = __stackBase__;
  23470.   return $42;
  23471. }
  23472. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_7RuleSetEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  23473.   var label = 0;
  23474.   var __stackBase__ = STACKTOP;
  23475.   STACKTOP = STACKTOP + 427 | 0;
  23476.   var $this_addr_i_i1_i = __stackBase__;
  23477.   var $base_addr_i_i_i12 = __stackBase__ + 4;
  23478.   var $len_addr_i_i_i13 = __stackBase__ + 8;
  23479.   var $p_i_i_i14 = __stackBase__ + 12;
  23480.   var $this_addr_i2_i = __stackBase__ + 16;
  23481.   var $obj_addr_i_i15 = __stackBase__ + 20;
  23482.   var $this_addr_i_i_i16 = __stackBase__ + 24;
  23483.   var $this_addr_i_i17 = __stackBase__ + 28;
  23484.   var $this_addr_i19 = __stackBase__ + 32;
  23485.   var $c_addr_i20 = __stackBase__ + 36;
  23486.   var $this_addr_i_i4 = __stackBase__ + 40;
  23487.   var $this_addr_i5 = __stackBase__ + 44;
  23488.   var $this_addr_i_i30_i = __stackBase__ + 48;
  23489.   var $base_addr_i_i31_i = __stackBase__ + 52;
  23490.   var $len_addr_i_i32_i = __stackBase__ + 56;
  23491.   var $p_i_i33_i = __stackBase__ + 60;
  23492.   var $this_addr_i34_i = __stackBase__ + 64;
  23493.   var $obj_addr_i_i = __stackBase__ + 68;
  23494.   var $this_addr_i_i20_i = __stackBase__ + 72;
  23495.   var $this_addr_i21_i = __stackBase__ + 76;
  23496.   var $P_addr_i_i = __stackBase__ + 80;
  23497.   var $offset_addr_i_i = __stackBase__ + 84;
  23498.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 88;
  23499.   var $base_addr_i_i_i14_i_i_i = __stackBase__ + 92;
  23500.   var $len_addr_i_i_i15_i_i_i = __stackBase__ + 96;
  23501.   var $p_i_i_i16_i_i_i = __stackBase__ + 100;
  23502.   var $this_addr_i2_i_i_i_i = __stackBase__ + 104;
  23503.   var $obj_addr_i_i17_i_i_i = __stackBase__ + 108;
  23504.   var $this_addr_i_i_i18_i_i_i = __stackBase__ + 112;
  23505.   var $this_addr_i_i19_i_i_i = __stackBase__ + 116;
  23506.   var $this_addr_i21_i_i_i = __stackBase__ + 120;
  23507.   var $c_addr_i22_i_i_i = __stackBase__ + 124;
  23508.   var $this_addr_i_i4_i_i_i = __stackBase__ + 128;
  23509.   var $this_addr_i5_i_i_i = __stackBase__ + 132;
  23510.   var $this_addr_i_i31_i_i_i_i = __stackBase__ + 136;
  23511.   var $base_addr_i_i32_i_i_i_i = __stackBase__ + 140;
  23512.   var $len_addr_i_i33_i_i_i_i = __stackBase__ + 144;
  23513.   var $p_i_i34_i_i_i_i = __stackBase__ + 148;
  23514.   var $this_addr_i35_i_i_i_i = __stackBase__ + 152;
  23515.   var $obj_addr_i_i_i_i_i = __stackBase__ + 156;
  23516.   var $this_addr_i_i23_i_i_i_i = __stackBase__ + 160;
  23517.   var $this_addr_i24_i_i_i_i = __stackBase__ + 164;
  23518.   var $P_addr_i_i_i_i_i = __stackBase__ + 168;
  23519.   var $offset_addr_i_i_i_i_i = __stackBase__ + 172;
  23520.   var $this_addr_i_i_i25_i_i_i_i_i = __stackBase__ + 176;
  23521.   var $base_addr_i_i_i26_i_i_i_i_i = __stackBase__ + 180;
  23522.   var $len_addr_i_i_i27_i_i_i_i_i = __stackBase__ + 184;
  23523.   var $p_i_i_i28_i_i_i_i_i = __stackBase__ + 188;
  23524.   var $this_addr_i_i29_i_i_i_i_i = __stackBase__ + 192;
  23525.   var $obj_addr_i_i30_i_i_i_i_i = __stackBase__ + 196;
  23526.   var $this_addr_i32_i_i_i_i_i = __stackBase__ + 200;
  23527.   var $c_addr_i33_i_i_i_i_i = __stackBase__ + 204;
  23528.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 208;
  23529.   var $base_addr_i_i_i_i_i_i_i_i = __stackBase__ + 212;
  23530.   var $len_addr_i_i_i_i_i_i_i_i = __stackBase__ + 216;
  23531.   var $p_i_i_i_i_i_i_i_i = __stackBase__ + 220;
  23532.   var $this_addr_i_i17_i_i_i_i_i = __stackBase__ + 224;
  23533.   var $obj_addr_i_i_i_i_i_i_i = __stackBase__ + 228;
  23534.   var $this_addr_i19_i_i_i_i_i = __stackBase__ + 232;
  23535.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 236;
  23536.   var $this_addr_i_i3_i_i_i_i_i = __stackBase__ + 240;
  23537.   var $this_addr_i4_i_i_i_i_i = __stackBase__ + 244;
  23538.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 248;
  23539.   var $this_addr_i1_i2_i_i_i_i = __stackBase__ + 252;
  23540.   var $this_addr_i_i4_i_i_i_i = __stackBase__ + 256;
  23541.   var $base_addr_i_i5_i_i_i_i = __stackBase__ + 260;
  23542.   var $len_addr_i_i6_i_i_i_i = __stackBase__ + 264;
  23543.   var $p_i_i7_i_i_i_i = __stackBase__ + 268;
  23544.   var $this_addr_i8_i_i_i_i = __stackBase__ + 272;
  23545.   var $c_addr_i9_i_i_i_i = __stackBase__ + 276;
  23546.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 280;
  23547.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 284;
  23548.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 286;
  23549.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 290;
  23550.   var $retval_i_i_i_i_i_i = __stackBase__ + 292;
  23551.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 293;
  23552.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 297;
  23553.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 301;
  23554.   var $p_i_i_i_i_i_i = __stackBase__ + 305;
  23555.   var $retval_i_i_i_i_i = __stackBase__ + 309;
  23556.   var $this_addr_i_i_i_i_i = __stackBase__ + 310;
  23557.   var $c_addr_i_i_i_i_i = __stackBase__ + 314;
  23558.   var $retval_i_i_i_i = __stackBase__ + 318;
  23559.   var $this_addr_i_i_i1_i = __stackBase__ + 319;
  23560.   var $c_addr_i_i_i_i = __stackBase__ + 323;
  23561.   var $base_addr_i_i_i_i = __stackBase__ + 327;
  23562.   var $offset_i_i_i_i = __stackBase__ + 331;
  23563.   var $obj_i_i_i_i = __stackBase__ + 335;
  23564.   var $retval_i_i3_i = __stackBase__ + 339;
  23565.   var $this_addr_i_i4_i = __stackBase__ + 340;
  23566.   var $c_addr_i_i_i = __stackBase__ + 344;
  23567.   var $base_addr_i_i5_i = __stackBase__ + 348;
  23568.   var $count_i_i_i = __stackBase__ + 352;
  23569.   var $i_i_i_i = __stackBase__ + 356;
  23570.   var $this_addr_i6_i = __stackBase__ + 360;
  23571.   var $c_addr_i7_i = __stackBase__ + 364;
  23572.   var $this_addr_i_i_i_i = __stackBase__ + 368;
  23573.   var $i_addr_i_i_i_i = __stackBase__ + 372;
  23574.   var $this_addr_i1_i_i = __stackBase__ + 374;
  23575.   var $i_addr_i_i_i = __stackBase__ + 378;
  23576.   var $retval_i_i_i = __stackBase__ + 380;
  23577.   var $this_addr_i_i_i = __stackBase__ + 381;
  23578.   var $base_addr_i_i_i = __stackBase__ + 385;
  23579.   var $len_addr_i_i_i = __stackBase__ + 389;
  23580.   var $p_i_i_i = __stackBase__ + 393;
  23581.   var $retval_i_i = __stackBase__ + 397;
  23582.   var $this_addr_i_i = __stackBase__ + 398;
  23583.   var $c_addr_i_i = __stackBase__ + 402;
  23584.   var $retval_i = __stackBase__ + 406;
  23585.   var $this_addr_i = __stackBase__ + 407;
  23586.   var $c_addr_i = __stackBase__ + 411;
  23587.   var $base_addr_i = __stackBase__ + 415;
  23588.   var $offset_i = __stackBase__ + 419;
  23589.   var $obj_i = __stackBase__ + 423;
  23590.   var $retval;
  23591.   var $c_addr;
  23592.   var $base_addr;
  23593.   var $count;
  23594.   var $i;
  23595.   $c_addr = $c;
  23596.   $base_addr = $base;
  23597.   var $this1 = $this;
  23598.   HEAP[$this_addr_i19] = $this1;
  23599.   HEAP[$c_addr_i20] = $c_addr;
  23600.   var $this1_i21 = HEAP[$this_addr_i19];
  23601.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i20];
  23602.   HEAP[$obj_addr_i_i15] = $this1_i21;
  23603.   var $7 = HEAP[$obj_addr_i_i15];
  23604.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  23605.   HEAP[$base_addr_i_i_i12] = $7;
  23606.   HEAP[$len_addr_i_i_i13] = 2;
  23607.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  23608.   HEAP[$p_i_i_i14] = HEAP[$base_addr_i_i_i12];
  23609.   do {
  23610.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14] >>> 0) {
  23611.       if (!(HEAP[$p_i_i_i14] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  23612.         var $20 = 0;
  23613.         break;
  23614.       }
  23615.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i14] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13] >>> 0;
  23616.     } else {
  23617.       var $20 = 0;
  23618.     }
  23619.   } while (0);
  23620.   var $20;
  23621.   if ($20 & 1) {
  23622.     var $28 = HEAP[$c_addr_i20];
  23623.     HEAP[$this_addr_i_i17] = $this1_i21 | 0;
  23624.     HEAP[$this_addr_i_i_i16] = HEAP[$this_addr_i_i17] | 0;
  23625.     var $this1_i_i_i37 = HEAP[$this_addr_i_i_i16];
  23626.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i21, 2, ((HEAP[$this1_i_i_i37 | 0] & 255) << 8) + (HEAP[$this1_i_i_i37 + 1 | 0] & 255) & 65535);
  23627.   } else {
  23628.     var $36 = 0;
  23629.   }
  23630.   var $36;
  23631.   if (!($36 & 1)) {
  23632.     $retval = 0;
  23633.     var $441 = $retval;
  23634.     STACKTOP = __stackBase__;
  23635.     return $441;
  23636.   }
  23637.   HEAP[$this_addr_i5] = $this1 | 0;
  23638.   HEAP[$this_addr_i_i4] = HEAP[$this_addr_i5] | 0;
  23639.   var $this1_i_i7 = HEAP[$this_addr_i_i4];
  23640.   $count = ((HEAP[$this1_i_i7 | 0] & 255) << 8) + (HEAP[$this1_i_i7 + 1 | 0] & 255) & 65535;
  23641.   $i = 0;
  23642.   L671 : do {
  23643.     if ($i >>> 0 < $count >>> 0) {
  23644.       var $array = $this1 + 2 | 0;
  23645.       while (1) {
  23646.         HEAP[$this_addr_i] = ($i << 1) + $array | 0;
  23647.         HEAP[$c_addr_i] = $c_addr;
  23648.         HEAP[$base_addr_i] = $base_addr;
  23649.         var $this1_i = HEAP[$this_addr_i];
  23650.         HEAP[$this_addr_i34_i] = HEAP[$c_addr_i];
  23651.         HEAP[$obj_addr_i_i] = $this1_i;
  23652.         var $269 = HEAP[$obj_addr_i_i];
  23653.         HEAP[$this_addr_i_i30_i] = HEAP[$this_addr_i34_i];
  23654.         HEAP[$base_addr_i_i31_i] = $269;
  23655.         HEAP[$len_addr_i_i32_i] = 2;
  23656.         var $this1_i_i36_i = HEAP[$this_addr_i_i30_i];
  23657.         HEAP[$p_i_i33_i] = HEAP[$base_addr_i_i31_i];
  23658.         do {
  23659.           if (HEAP[$this1_i_i36_i + 4 | 0] >>> 0 <= HEAP[$p_i_i33_i] >>> 0) {
  23660.             if (!(HEAP[$p_i_i33_i] >>> 0 <= HEAP[$this1_i_i36_i + 8 | 0] >>> 0)) {
  23661.               var $278 = 0;
  23662.               break;
  23663.             }
  23664.             var $278 = (HEAP[$this1_i_i36_i + 8 | 0] - HEAP[$p_i_i33_i] | 0) >>> 0 >= HEAP[$len_addr_i_i32_i] >>> 0;
  23665.           } else {
  23666.             var $278 = 0;
  23667.           }
  23668.         } while (0);
  23669.         var $278;
  23670.         do {
  23671.           if ($278 & 1) {
  23672.             HEAP[$this_addr_i21_i] = $this1_i;
  23673.             HEAP[$this_addr_i_i20_i] = HEAP[$this_addr_i21_i] | 0;
  23674.             var $this1_i_i23_i = HEAP[$this_addr_i_i20_i];
  23675.             HEAP[$offset_i] = ((HEAP[$this1_i_i23_i | 0] & 255) << 8) + (HEAP[$this1_i_i23_i + 1 | 0] & 255) & 65535;
  23676.             if ((HEAP[$offset_i] | 0) == 0) {
  23677.               var $tobool_i19_i = 1;
  23678.               HEAP[$retval_i] = $tobool_i19_i;
  23679.               var $435 = $tobool_i19_i;
  23680.               break;
  23681.             }
  23682.             var $287 = HEAP[$offset_i];
  23683.             HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  23684.             HEAP[$offset_addr_i_i] = $287;
  23685.             HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  23686.             var $292 = HEAP[$c_addr_i];
  23687.             HEAP[$this_addr_i6_i] = HEAP[$obj_i];
  23688.             HEAP[$c_addr_i7_i] = $292;
  23689.             var $this1_i8_i = HEAP[$this_addr_i6_i];
  23690.             var $294 = HEAP[$c_addr_i7_i];
  23691.             HEAP[$this_addr_i_i4_i] = $this1_i8_i | 0;
  23692.             HEAP[$c_addr_i_i_i] = $294;
  23693.             HEAP[$base_addr_i_i5_i] = $this1_i8_i;
  23694.             var $this1_i_i9_i = HEAP[$this_addr_i_i4_i];
  23695.             var $296 = HEAP[$c_addr_i_i_i];
  23696.             HEAP[$this_addr_i21_i_i_i] = $this1_i_i9_i;
  23697.             HEAP[$c_addr_i22_i_i_i] = $296;
  23698.             var $this1_i23_i_i_i = HEAP[$this_addr_i21_i_i_i];
  23699.             HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i22_i_i_i];
  23700.             HEAP[$obj_addr_i_i17_i_i_i] = $this1_i23_i_i_i;
  23701.             var $299 = HEAP[$obj_addr_i_i17_i_i_i];
  23702.             HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  23703.             HEAP[$base_addr_i_i_i14_i_i_i] = $299;
  23704.             HEAP[$len_addr_i_i_i15_i_i_i] = 2;
  23705.             var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  23706.             HEAP[$p_i_i_i16_i_i_i] = HEAP[$base_addr_i_i_i14_i_i_i];
  23707.             do {
  23708.               if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i16_i_i_i] >>> 0) {
  23709.                 if (!(HEAP[$p_i_i_i16_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  23710.                   var $308 = 0;
  23711.                   break;
  23712.                 }
  23713.                 var $308 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i16_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i15_i_i_i] >>> 0;
  23714.               } else {
  23715.                 var $308 = 0;
  23716.               }
  23717.             } while (0);
  23718.             var $308;
  23719.             if ($308 & 1) {
  23720.               var $310 = HEAP[$c_addr_i22_i_i_i];
  23721.               HEAP[$this_addr_i_i19_i_i_i] = $this1_i23_i_i_i | 0;
  23722.               HEAP[$this_addr_i_i_i18_i_i_i] = HEAP[$this_addr_i_i19_i_i_i] | 0;
  23723.               var $this1_i_i_i39_i_i_i = HEAP[$this_addr_i_i_i18_i_i_i];
  23724.               var $314 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($310, $this1_i23_i_i_i, 2, ((HEAP[$this1_i_i_i39_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i39_i_i_i + 1 | 0] & 255) & 65535);
  23725.             } else {
  23726.               var $314 = 0;
  23727.             }
  23728.             var $314;
  23729.             L692 : do {
  23730.               if ($314 & 1) {
  23731.                 HEAP[$this_addr_i5_i_i_i] = $this1_i_i9_i | 0;
  23732.                 HEAP[$this_addr_i_i4_i_i_i] = HEAP[$this_addr_i5_i_i_i] | 0;
  23733.                 var $this1_i_i7_i_i_i = HEAP[$this_addr_i_i4_i_i_i];
  23734.                 HEAP[$count_i_i_i] = ((HEAP[$this1_i_i7_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i + 1 | 0] & 255) & 65535;
  23735.                 HEAP[$i_i_i_i] = 0;
  23736.                 L695 : do {
  23737.                   if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  23738.                     var $array_i_i_i = $this1_i_i9_i + 2 | 0;
  23739.                     while (1) {
  23740.                       var $323 = HEAP[$c_addr_i_i_i];
  23741.                       var $324 = HEAP[$base_addr_i_i5_i];
  23742.                       HEAP[$this_addr_i_i_i1_i] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  23743.                       HEAP[$c_addr_i_i_i_i] = $323;
  23744.                       HEAP[$base_addr_i_i_i_i] = $324;
  23745.                       var $this1_i_i_i13_i = HEAP[$this_addr_i_i_i1_i];
  23746.                       HEAP[$this_addr_i35_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  23747.                       HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  23748.                       var $327 = HEAP[$obj_addr_i_i_i_i_i];
  23749.                       HEAP[$this_addr_i_i31_i_i_i_i] = HEAP[$this_addr_i35_i_i_i_i];
  23750.                       HEAP[$base_addr_i_i32_i_i_i_i] = $327;
  23751.                       HEAP[$len_addr_i_i33_i_i_i_i] = 2;
  23752.                       var $this1_i_i37_i_i_i_i = HEAP[$this_addr_i_i31_i_i_i_i];
  23753.                       HEAP[$p_i_i34_i_i_i_i] = HEAP[$base_addr_i_i32_i_i_i_i];
  23754.                       do {
  23755.                         if (HEAP[$this1_i_i37_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i34_i_i_i_i] >>> 0) {
  23756.                           if (!(HEAP[$p_i_i34_i_i_i_i] >>> 0 <= HEAP[$this1_i_i37_i_i_i_i + 8 | 0] >>> 0)) {
  23757.                             var $336 = 0;
  23758.                             break;
  23759.                           }
  23760.                           var $336 = (HEAP[$this1_i_i37_i_i_i_i + 8 | 0] - HEAP[$p_i_i34_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i33_i_i_i_i] >>> 0;
  23761.                         } else {
  23762.                           var $336 = 0;
  23763.                         }
  23764.                       } while (0);
  23765.                       var $336;
  23766.                       do {
  23767.                         if ($336 & 1) {
  23768.                           HEAP[$this_addr_i24_i_i_i_i] = $this1_i_i_i13_i;
  23769.                           HEAP[$this_addr_i_i23_i_i_i_i] = HEAP[$this_addr_i24_i_i_i_i] | 0;
  23770.                           var $this1_i_i26_i_i_i_i = HEAP[$this_addr_i_i23_i_i_i_i];
  23771.                           HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i26_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i26_i_i_i_i + 1 | 0] & 255) & 65535;
  23772.                           if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  23773.                             var $tobool_i22_i_i_i_i = 1;
  23774.                             HEAP[$retval_i_i_i_i] = $tobool_i22_i_i_i_i;
  23775.                             var $412 = $tobool_i22_i_i_i_i;
  23776.                             break;
  23777.                           }
  23778.                           var $345 = HEAP[$offset_i_i_i_i];
  23779.                           HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  23780.                           HEAP[$offset_addr_i_i_i_i_i] = $345;
  23781.                           HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  23782.                           var $350 = HEAP[$c_addr_i_i_i_i];
  23783.                           HEAP[$this_addr_i8_i_i_i_i] = HEAP[$obj_i_i_i_i];
  23784.                           HEAP[$c_addr_i9_i_i_i_i] = $350;
  23785.                           var $this1_i10_i_i_i_i = HEAP[$this_addr_i8_i_i_i_i];
  23786.                           var $351 = HEAP[$c_addr_i9_i_i_i_i];
  23787.                           HEAP[$this_addr_i32_i_i_i_i_i] = $this1_i10_i_i_i_i | 0;
  23788.                           HEAP[$c_addr_i33_i_i_i_i_i] = $351;
  23789.                           var $this1_i34_i_i_i_i_i = HEAP[$this_addr_i32_i_i_i_i_i];
  23790.                           HEAP[$this_addr_i_i29_i_i_i_i_i] = HEAP[$c_addr_i33_i_i_i_i_i];
  23791.                           HEAP[$obj_addr_i_i30_i_i_i_i_i] = $this1_i34_i_i_i_i_i;
  23792.                           var $354 = HEAP[$obj_addr_i_i30_i_i_i_i_i];
  23793.                           HEAP[$this_addr_i_i_i25_i_i_i_i_i] = HEAP[$this_addr_i_i29_i_i_i_i_i];
  23794.                           HEAP[$base_addr_i_i_i26_i_i_i_i_i] = $354;
  23795.                           HEAP[$len_addr_i_i_i27_i_i_i_i_i] = 2;
  23796.                           var $this1_i_i_i36_i_i_i_i_i = HEAP[$this_addr_i_i_i25_i_i_i_i_i];
  23797.                           HEAP[$p_i_i_i28_i_i_i_i_i] = HEAP[$base_addr_i_i_i26_i_i_i_i_i];
  23798.                           do {
  23799.                             if (HEAP[$this1_i_i_i36_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i28_i_i_i_i_i] >>> 0) {
  23800.                               if (!(HEAP[$p_i_i_i28_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i36_i_i_i_i_i + 8 | 0] >>> 0)) {
  23801.                                 var $363 = 0;
  23802.                                 break;
  23803.                               }
  23804.                               var $363 = (HEAP[$this1_i_i_i36_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i28_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i27_i_i_i_i_i] >>> 0;
  23805.                             } else {
  23806.                               var $363 = 0;
  23807.                             }
  23808.                           } while (0);
  23809.                           var $363;
  23810.                           do {
  23811.                             if ($363 & 1 & 1) {
  23812.                               var $366 = HEAP[$c_addr_i9_i_i_i_i];
  23813.                               HEAP[$this_addr_i19_i_i_i_i_i] = $this1_i10_i_i_i_i + 2 | 0;
  23814.                               HEAP[$c_addr_i_i_i_i_i_i] = $366;
  23815.                               var $this1_i20_i_i_i_i_i = HEAP[$this_addr_i19_i_i_i_i_i];
  23816.                               HEAP[$this_addr_i_i17_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i];
  23817.                               HEAP[$obj_addr_i_i_i_i_i_i_i] = $this1_i20_i_i_i_i_i;
  23818.                               var $369 = HEAP[$obj_addr_i_i_i_i_i_i_i];
  23819.                               HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i_i];
  23820.                               HEAP[$base_addr_i_i_i_i_i_i_i_i] = $369;
  23821.                               HEAP[$len_addr_i_i_i_i_i_i_i_i] = 2;
  23822.                               var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  23823.                               HEAP[$p_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i];
  23824.                               do {
  23825.                                 if (HEAP[$this1_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i_i] >>> 0) {
  23826.                                   if (!(HEAP[$p_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  23827.                                     var $378 = 0;
  23828.                                     break;
  23829.                                   }
  23830.                                   var $378 = (HEAP[$this1_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i_i] >>> 0;
  23831.                                 } else {
  23832.                                   var $378 = 0;
  23833.                                 }
  23834.                               } while (0);
  23835.                               var $378;
  23836.                               if (!($378 & 1 & 1)) {
  23837.                                 label = 553;
  23838.                                 break;
  23839.                               }
  23840.                               var $381 = HEAP[$c_addr_i9_i_i_i_i];
  23841.                               HEAP[$this_addr_i4_i_i_i_i_i] = $this1_i10_i_i_i_i | 0;
  23842.                               HEAP[$this_addr_i_i3_i_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i_i] | 0;
  23843.                               var $this1_i_i7_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i];
  23844.                               var $mul_i_i_i_i_i = (((HEAP[$this1_i_i7_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1;
  23845.                               HEAP[$this_addr_i1_i2_i_i_i_i] = $this1_i10_i_i_i_i + 2 | 0;
  23846.                               HEAP[$this_addr_i_i_i1_i_i_i_i] = HEAP[$this_addr_i1_i2_i_i_i_i] | 0;
  23847.                               var $this1_i_i_i13_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i];
  23848.                               var $add_i_i_i_i_i = ((((HEAP[$this1_i_i_i13_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i13_i_i_i_i + 1 | 0] & 255) & 65535) << 2) + $mul_i_i_i_i_i | 0;
  23849.                               HEAP[$this_addr_i_i4_i_i_i_i] = $381;
  23850.                               HEAP[$base_addr_i_i5_i_i_i_i] = $this1_i10_i_i_i_i + 4 | 0;
  23851.                               HEAP[$len_addr_i_i6_i_i_i_i] = $add_i_i_i_i_i;
  23852.                               var $this1_i_i17_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i];
  23853.                               HEAP[$p_i_i7_i_i_i_i] = HEAP[$base_addr_i_i5_i_i_i_i];
  23854.                               do {
  23855.                                 if (HEAP[$this1_i_i17_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i7_i_i_i_i] >>> 0) {
  23856.                                   if (!(HEAP[$p_i_i7_i_i_i_i] >>> 0 <= HEAP[$this1_i_i17_i_i_i_i + 8 | 0] >>> 0)) {
  23857.                                     var $395 = 0;
  23858.                                     break;
  23859.                                   }
  23860.                                   var $395 = (HEAP[$this1_i_i17_i_i_i_i + 8 | 0] - HEAP[$p_i_i7_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i6_i_i_i_i] >>> 0;
  23861.                                 } else {
  23862.                                   var $395 = 0;
  23863.                                 }
  23864.                               } while (0);
  23865.                               var $395;
  23866.                               if ($395 & 1) {
  23867.                                 var $410 = 1;
  23868.                                 break;
  23869.                               } else {
  23870.                                 label = 553;
  23871.                                 break;
  23872.                               }
  23873.                             } else {
  23874.                               label = 553;
  23875.                             }
  23876.                           } while (0);
  23877.                           if (label == 553) {
  23878.                             label = 0;
  23879.                             var $397 = HEAP[$c_addr_i_i_i_i];
  23880.                             HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  23881.                             HEAP[$c_addr_i_i_i_i_i] = $397;
  23882.                             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  23883.                             HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  23884.                             HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  23885.                             HEAP[$len_addr_i_i_i_i_i_i] = 2;
  23886.                             var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  23887.                             do {
  23888.                               if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  23889.                                 HEAP[$retval_i_i_i_i_i_i] = 0;
  23890.                                 label = 557;
  23891.                                 break;
  23892.                               } else {
  23893.                                 HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  23894.                                 var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  23895.                                 HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  23896.                                 var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  23897.                                 HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  23898.                                 if (!$tobool_i_i_i_i_i_i_i) {
  23899.                                   label = 557;
  23900.                                   break;
  23901.                                 }
  23902.                                 HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i;
  23903.                                 HEAP[$i_addr_i_i_i_i_i_i] = 0;
  23904.                                 var $406 = HEAP[$i_addr_i_i_i_i_i_i];
  23905.                                 HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  23906.                                 HEAP[$i_addr_i_i_i_i_i_i_i] = $406;
  23907.                                 var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  23908.                                 HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  23909.                                 HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  23910.                                 HEAP[$retval_i_i_i_i_i] = 1;
  23911.                                 break;
  23912.                               }
  23913.                             } while (0);
  23914.                             if (label == 557) {
  23915.                               label = 0;
  23916.                               HEAP[$retval_i_i_i_i_i] = 0;
  23917.                             }
  23918.                             var $410 = HEAP[$retval_i_i_i_i_i];
  23919.                           }
  23920.                           var $410;
  23921.                           var $tobool_i_i_i_i_i = $410 & 1;
  23922.                           HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i;
  23923.                           var $412 = $tobool_i_i_i_i_i;
  23924.                         } else {
  23925.                           var $tobool_i29_i_i_i_i = 0;
  23926.                           HEAP[$retval_i_i_i_i] = $tobool_i29_i_i_i_i;
  23927.                           var $412 = $tobool_i29_i_i_i_i;
  23928.                         }
  23929.                       } while (0);
  23930.                       var $412;
  23931.                       if (!$412) {
  23932.                         break;
  23933.                       }
  23934.                       HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  23935.                       if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  23936.                         break L695;
  23937.                       }
  23938.                     }
  23939.                     HEAP[$retval_i_i3_i] = 0;
  23940.                     break L692;
  23941.                   }
  23942.                 } while (0);
  23943.                 HEAP[$retval_i_i3_i] = 1;
  23944.               } else {
  23945.                 HEAP[$retval_i_i3_i] = 0;
  23946.               }
  23947.             } while (0);
  23948.             if (HEAP[$retval_i_i3_i] & 1) {
  23949.               var $433 = 1;
  23950.             } else {
  23951.               var $420 = HEAP[$c_addr_i];
  23952.               HEAP[$this_addr_i_i] = $this1_i;
  23953.               HEAP[$c_addr_i_i] = $420;
  23954.               var $this1_i_i = HEAP[$this_addr_i_i];
  23955.               HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  23956.               HEAP[$base_addr_i_i_i] = $this1_i_i;
  23957.               HEAP[$len_addr_i_i_i] = 2;
  23958.               var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  23959.               do {
  23960.                 if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  23961.                   HEAP[$retval_i_i_i] = 0;
  23962.                   label = 569;
  23963.                   break;
  23964.                 } else {
  23965.                   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  23966.                   var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  23967.                   HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  23968.                   var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  23969.                   HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  23970.                   if (!$tobool_i_i_i_i) {
  23971.                     label = 569;
  23972.                     break;
  23973.                   }
  23974.                   HEAP[$this_addr_i1_i_i] = $this1_i_i;
  23975.                   HEAP[$i_addr_i_i_i] = 0;
  23976.                   var $429 = HEAP[$i_addr_i_i_i];
  23977.                   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  23978.                   HEAP[$i_addr_i_i_i_i] = $429;
  23979.                   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  23980.                   HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  23981.                   HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  23982.                   HEAP[$retval_i_i] = 1;
  23983.                   break;
  23984.                 }
  23985.               } while (0);
  23986.               if (label == 569) {
  23987.                 label = 0;
  23988.                 HEAP[$retval_i_i] = 0;
  23989.               }
  23990.               var $433 = HEAP[$retval_i_i];
  23991.             }
  23992.             var $433;
  23993.             var $tobool_i_i = $433 & 1;
  23994.             HEAP[$retval_i] = $tobool_i_i;
  23995.             var $435 = $tobool_i_i;
  23996.           } else {
  23997.             var $tobool_i28_i = 0;
  23998.             HEAP[$retval_i] = $tobool_i28_i;
  23999.             var $435 = $tobool_i28_i;
  24000.           }
  24001.         } while (0);
  24002.         var $435;
  24003.         if (!$435) {
  24004.           break;
  24005.         }
  24006.         $i = $i + 1 | 0;
  24007.         if ($i >>> 0 >= $count >>> 0) {
  24008.           break L671;
  24009.         }
  24010.       }
  24011.       $retval = 0;
  24012.       var $441 = $retval;
  24013.       STACKTOP = __stackBase__;
  24014.       return $441;
  24015.     }
  24016.   } while (0);
  24017.   $retval = 1;
  24018.   var $441 = $retval;
  24019.   STACKTOP = __stackBase__;
  24020.   return $441;
  24021. }
  24022. function __ZN2OT15GenericOffsetToINS_6OffsetENS_9MarkArrayEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  24023.   var label = 0;
  24024.   var __stackBase__ = STACKTOP;
  24025.   STACKTOP = STACKTOP + 191 | 0;
  24026.   var $this_addr_i_i31 = __stackBase__;
  24027.   var $this_addr_i32 = __stackBase__ + 4;
  24028.   var $P_addr_i = __stackBase__ + 8;
  24029.   var $offset_addr_i = __stackBase__ + 12;
  24030.   var $this_addr_i_i19 = __stackBase__ + 16;
  24031.   var $base_addr_i_i20 = __stackBase__ + 20;
  24032.   var $len_addr_i_i21 = __stackBase__ + 24;
  24033.   var $p_i_i22 = __stackBase__ + 28;
  24034.   var $this_addr_i23 = __stackBase__ + 32;
  24035.   var $obj_addr_i = __stackBase__ + 36;
  24036.   var $this_addr_i_i1_i_i_i = __stackBase__ + 40;
  24037.   var $base_addr_i_i_i10_i_i = __stackBase__ + 44;
  24038.   var $len_addr_i_i_i11_i_i = __stackBase__ + 48;
  24039.   var $p_i_i_i12_i_i = __stackBase__ + 52;
  24040.   var $this_addr_i2_i_i_i = __stackBase__ + 56;
  24041.   var $obj_addr_i_i13_i_i = __stackBase__ + 60;
  24042.   var $this_addr_i_i_i14_i_i = __stackBase__ + 64;
  24043.   var $this_addr_i_i15_i_i = __stackBase__ + 68;
  24044.   var $this_addr_i17_i_i = __stackBase__ + 72;
  24045.   var $c_addr_i18_i_i = __stackBase__ + 76;
  24046.   var $this_addr_i_i3_i_i = __stackBase__ + 80;
  24047.   var $this_addr_i4_i_i = __stackBase__ + 84;
  24048.   var $this_addr_i_i_i_i_i = __stackBase__ + 88;
  24049.   var $base_addr_i_i_i_i_i = __stackBase__ + 92;
  24050.   var $len_addr_i_i_i_i_i = __stackBase__ + 96;
  24051.   var $p_i_i_i_i_i = __stackBase__ + 100;
  24052.   var $this_addr_i_i_i_i = __stackBase__ + 104;
  24053.   var $obj_addr_i_i_i_i = __stackBase__ + 108;
  24054.   var $this_addr_i_i_i1 = __stackBase__ + 112;
  24055.   var $c_addr_i_i_i = __stackBase__ + 116;
  24056.   var $base_addr_i_i_i = __stackBase__ + 120;
  24057.   var $retval_i_i3 = __stackBase__ + 124;
  24058.   var $this_addr_i_i4 = __stackBase__ + 125;
  24059.   var $c_addr_i_i = __stackBase__ + 129;
  24060.   var $base_addr_i_i5 = __stackBase__ + 133;
  24061.   var $count_i_i = __stackBase__ + 137;
  24062.   var $i_i_i = __stackBase__ + 141;
  24063.   var $this_addr_i6 = __stackBase__ + 145;
  24064.   var $c_addr_i7 = __stackBase__ + 149;
  24065.   var $this_addr_i_i_i = __stackBase__ + 153;
  24066.   var $i_addr_i_i_i = __stackBase__ + 157;
  24067.   var $this_addr_i1_i = __stackBase__ + 159;
  24068.   var $i_addr_i_i = __stackBase__ + 163;
  24069.   var $retval_i_i = __stackBase__ + 165;
  24070.   var $this_addr_i_i = __stackBase__ + 166;
  24071.   var $base_addr_i_i = __stackBase__ + 170;
  24072.   var $len_addr_i_i = __stackBase__ + 174;
  24073.   var $p_i_i = __stackBase__ + 178;
  24074.   var $retval_i = __stackBase__ + 182;
  24075.   var $this_addr_i = __stackBase__ + 183;
  24076.   var $c_addr_i = __stackBase__ + 187;
  24077.   var $retval;
  24078.   var $c_addr;
  24079.   var $base_addr;
  24080.   var $offset;
  24081.   $c_addr = $c;
  24082.   $base_addr = $base;
  24083.   var $this1 = $this;
  24084.   HEAP[$this_addr_i23] = $c_addr;
  24085.   HEAP[$obj_addr_i] = $this1;
  24086.   var $4 = HEAP[$obj_addr_i];
  24087.   HEAP[$this_addr_i_i19] = HEAP[$this_addr_i23];
  24088.   HEAP[$base_addr_i_i20] = $4;
  24089.   HEAP[$len_addr_i_i21] = 2;
  24090.   var $this1_i_i25 = HEAP[$this_addr_i_i19];
  24091.   HEAP[$p_i_i22] = HEAP[$base_addr_i_i20];
  24092.   do {
  24093.     if (HEAP[$this1_i_i25 + 4 | 0] >>> 0 <= HEAP[$p_i_i22] >>> 0) {
  24094.       if (!(HEAP[$p_i_i22] >>> 0 <= HEAP[$this1_i_i25 + 8 | 0] >>> 0)) {
  24095.         var $17 = 0;
  24096.         break;
  24097.       }
  24098.       var $17 = (HEAP[$this1_i_i25 + 8 | 0] - HEAP[$p_i_i22] | 0) >>> 0 >= HEAP[$len_addr_i_i21] >>> 0;
  24099.     } else {
  24100.       var $17 = 0;
  24101.     }
  24102.   } while (0);
  24103.   var $17;
  24104.   if (!($17 & 1)) {
  24105.     $retval = 0;
  24106.     var $205 = $retval;
  24107.     STACKTOP = __stackBase__;
  24108.     return $205;
  24109.   }
  24110.   HEAP[$this_addr_i32] = $this1;
  24111.   HEAP[$this_addr_i_i31] = HEAP[$this_addr_i32] | 0;
  24112.   var $this1_i_i34 = HEAP[$this_addr_i_i31];
  24113.   $offset = ((HEAP[$this1_i_i34 | 0] & 255) << 8) + (HEAP[$this1_i_i34 + 1 | 0] & 255) & 65535;
  24114.   if (($offset | 0) == 0) {
  24115.     $retval = 1;
  24116.     var $205 = $retval;
  24117.     STACKTOP = __stackBase__;
  24118.     return $205;
  24119.   }
  24120.   HEAP[$P_addr_i] = $base_addr;
  24121.   HEAP[$offset_addr_i] = $offset;
  24122.   HEAP[$this_addr_i6] = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  24123.   HEAP[$c_addr_i7] = $c_addr;
  24124.   var $this1_i8 = HEAP[$this_addr_i6];
  24125.   var $50 = HEAP[$c_addr_i7];
  24126.   HEAP[$this_addr_i_i4] = $this1_i8;
  24127.   HEAP[$c_addr_i_i] = $50;
  24128.   HEAP[$base_addr_i_i5] = $this1_i8;
  24129.   var $this1_i_i9 = HEAP[$this_addr_i_i4];
  24130.   var $58 = HEAP[$c_addr_i_i];
  24131.   HEAP[$this_addr_i17_i_i] = $this1_i_i9;
  24132.   HEAP[$c_addr_i18_i_i] = $58;
  24133.   var $this1_i19_i_i = HEAP[$this_addr_i17_i_i];
  24134.   HEAP[$this_addr_i2_i_i_i] = HEAP[$c_addr_i18_i_i];
  24135.   HEAP[$obj_addr_i_i13_i_i] = $this1_i19_i_i;
  24136.   var $65 = HEAP[$obj_addr_i_i13_i_i];
  24137.   HEAP[$this_addr_i_i1_i_i_i] = HEAP[$this_addr_i2_i_i_i];
  24138.   HEAP[$base_addr_i_i_i10_i_i] = $65;
  24139.   HEAP[$len_addr_i_i_i11_i_i] = 2;
  24140.   var $this1_i_i4_i_i_i = HEAP[$this_addr_i_i1_i_i_i];
  24141.   HEAP[$p_i_i_i12_i_i] = HEAP[$base_addr_i_i_i10_i_i];
  24142.   do {
  24143.     if (HEAP[$this1_i_i4_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i12_i_i] >>> 0) {
  24144.       if (!(HEAP[$p_i_i_i12_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i + 8 | 0] >>> 0)) {
  24145.         var $78 = 0;
  24146.         break;
  24147.       }
  24148.       var $78 = (HEAP[$this1_i_i4_i_i_i + 8 | 0] - HEAP[$p_i_i_i12_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i11_i_i] >>> 0;
  24149.     } else {
  24150.       var $78 = 0;
  24151.     }
  24152.   } while (0);
  24153.   var $78;
  24154.   if ($78 & 1) {
  24155.     var $86 = HEAP[$c_addr_i18_i_i];
  24156.     HEAP[$this_addr_i_i15_i_i] = $this1_i19_i_i | 0;
  24157.     HEAP[$this_addr_i_i_i14_i_i] = HEAP[$this_addr_i_i15_i_i] | 0;
  24158.     var $this1_i_i_i35_i_i = HEAP[$this_addr_i_i_i14_i_i];
  24159.     var $94 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($86, $this1_i19_i_i, 4, ((HEAP[$this1_i_i_i35_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i35_i_i + 1 | 0] & 255) & 65535);
  24160.   } else {
  24161.     var $94 = 0;
  24162.   }
  24163.   var $94;
  24164.   L775 : do {
  24165.     if ($94 & 1) {
  24166.       HEAP[$this_addr_i4_i_i] = $this1_i_i9 | 0;
  24167.       HEAP[$this_addr_i_i3_i_i] = HEAP[$this_addr_i4_i_i] | 0;
  24168.       var $this1_i_i6_i_i = HEAP[$this_addr_i_i3_i_i];
  24169.       HEAP[$count_i_i] = ((HEAP[$this1_i_i6_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i + 1 | 0] & 255) & 65535;
  24170.       HEAP[$i_i_i] = 0;
  24171.       L778 : do {
  24172.         if (HEAP[$i_i_i] >>> 0 < HEAP[$count_i_i] >>> 0) {
  24173.           var $array_i_i = $this1_i_i9 + 2 | 0;
  24174.           while (1) {
  24175.             var $126 = HEAP[$c_addr_i_i];
  24176.             var $127 = HEAP[$base_addr_i_i5];
  24177.             HEAP[$this_addr_i_i_i1] = (HEAP[$i_i_i] << 2) + $array_i_i | 0;
  24178.             HEAP[$c_addr_i_i_i] = $126;
  24179.             HEAP[$base_addr_i_i_i] = $127;
  24180.             var $this1_i_i_i14 = HEAP[$this_addr_i_i_i1];
  24181.             HEAP[$this_addr_i_i_i_i] = HEAP[$c_addr_i_i_i];
  24182.             HEAP[$obj_addr_i_i_i_i] = $this1_i_i_i14;
  24183.             var $130 = HEAP[$obj_addr_i_i_i_i];
  24184.             HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i];
  24185.             HEAP[$base_addr_i_i_i_i_i] = $130;
  24186.             HEAP[$len_addr_i_i_i_i_i] = 4;
  24187.             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  24188.             HEAP[$p_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  24189.             do {
  24190.               if (HEAP[$this1_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i] >>> 0) {
  24191.                 if (!(HEAP[$p_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i_i + 8 | 0] >>> 0)) {
  24192.                   var $139 = 0;
  24193.                   break;
  24194.                 }
  24195.                 var $139 = (HEAP[$this1_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i] >>> 0;
  24196.               } else {
  24197.                 var $139 = 0;
  24198.               }
  24199.             } while (0);
  24200.             var $139;
  24201.             if ($139 & 1) {
  24202.               var $144 = __ZN2OT15GenericOffsetToINS_6OffsetENS_6AnchorEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i_i14 + 2 | 0, HEAP[$c_addr_i_i_i], HEAP[$base_addr_i_i_i]);
  24203.             } else {
  24204.               var $144 = 0;
  24205.             }
  24206.             var $144;
  24207.             if (!($144 & 1)) {
  24208.               break;
  24209.             }
  24210.             HEAP[$i_i_i] = HEAP[$i_i_i] + 1 | 0;
  24211.             if (HEAP[$i_i_i] >>> 0 >= HEAP[$count_i_i] >>> 0) {
  24212.               break L778;
  24213.             }
  24214.           }
  24215.           HEAP[$retval_i_i3] = 0;
  24216.           break L775;
  24217.         }
  24218.       } while (0);
  24219.       HEAP[$retval_i_i3] = 1;
  24220.     } else {
  24221.       HEAP[$retval_i_i3] = 0;
  24222.     }
  24223.   } while (0);
  24224.   if (HEAP[$retval_i_i3] & 1) {
  24225.     var $203 = 1;
  24226.   } else {
  24227.     HEAP[$this_addr_i] = $this1;
  24228.     HEAP[$c_addr_i] = $c_addr;
  24229.     var $this1_i = HEAP[$this_addr_i];
  24230.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  24231.     HEAP[$base_addr_i_i] = $this1_i;
  24232.     HEAP[$len_addr_i_i] = 2;
  24233.     var $this1_i_i = HEAP[$this_addr_i_i];
  24234.     do {
  24235.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  24236.         HEAP[$retval_i_i] = 0;
  24237.         label = 610;
  24238.         break;
  24239.       } else {
  24240.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  24241.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  24242.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  24243.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  24244.         HEAP[$retval_i_i] = $tobool_i_i_i;
  24245.         if (!$tobool_i_i_i) {
  24246.           label = 610;
  24247.           break;
  24248.         }
  24249.         HEAP[$this_addr_i1_i] = $this1_i;
  24250.         HEAP[$i_addr_i_i] = 0;
  24251.         var $190 = HEAP[$i_addr_i_i];
  24252.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  24253.         HEAP[$i_addr_i_i_i] = $190;
  24254.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  24255.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  24256.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  24257.         HEAP[$retval_i] = 1;
  24258.         break;
  24259.       }
  24260.     } while (0);
  24261.     if (label == 610) {
  24262.       HEAP[$retval_i] = 0;
  24263.     }
  24264.     var $203 = HEAP[$retval_i];
  24265.   }
  24266.   var $203;
  24267.   $retval = $203 & 1;
  24268.   var $205 = $retval;
  24269.   STACKTOP = __stackBase__;
  24270.   return $205;
  24271. }
  24272. function __ZN2OT15GenericOffsetToINS_6OffsetENS_12AnchorMatrixEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_($this, $c, $base, $user_data) {
  24273.   var label = 0;
  24274.   var __stackBase__ = STACKTOP;
  24275.   STACKTOP = STACKTOP + 147 | 0;
  24276.   var $this_addr_i_i28 = __stackBase__;
  24277.   var $this_addr_i29 = __stackBase__ + 4;
  24278.   var $P_addr_i = __stackBase__ + 8;
  24279.   var $offset_addr_i = __stackBase__ + 12;
  24280.   var $this_addr_i_i16 = __stackBase__ + 16;
  24281.   var $base_addr_i_i17 = __stackBase__ + 20;
  24282.   var $len_addr_i_i18 = __stackBase__ + 24;
  24283.   var $p_i_i19 = __stackBase__ + 28;
  24284.   var $this_addr_i20 = __stackBase__ + 32;
  24285.   var $obj_addr_i = __stackBase__ + 36;
  24286.   var $this_addr_i_i25_i = __stackBase__ + 40;
  24287.   var $this_addr_i26_i = __stackBase__ + 44;
  24288.   var $this_addr_i_i11_i = __stackBase__ + 48;
  24289.   var $this_addr_i12_i = __stackBase__ + 52;
  24290.   var $this_addr_i_i5_i = __stackBase__ + 56;
  24291.   var $this_addr_i6_i = __stackBase__ + 60;
  24292.   var $this_addr_i_i_i1 = __stackBase__ + 64;
  24293.   var $base_addr_i_i_i = __stackBase__ + 68;
  24294.   var $len_addr_i_i_i = __stackBase__ + 72;
  24295.   var $p_i_i_i = __stackBase__ + 76;
  24296.   var $this_addr_i_i2 = __stackBase__ + 80;
  24297.   var $obj_addr_i_i = __stackBase__ + 84;
  24298.   var $retval_i3 = __stackBase__ + 88;
  24299.   var $this_addr_i4 = __stackBase__ + 89;
  24300.   var $c_addr_i5 = __stackBase__ + 93;
  24301.   var $cols_addr_i = __stackBase__ + 97;
  24302.   var $count_i = __stackBase__ + 101;
  24303.   var $i_i = __stackBase__ + 105;
  24304.   var $this_addr_i_i_i = __stackBase__ + 109;
  24305.   var $i_addr_i_i_i = __stackBase__ + 113;
  24306.   var $this_addr_i1_i = __stackBase__ + 115;
  24307.   var $i_addr_i_i = __stackBase__ + 119;
  24308.   var $retval_i_i = __stackBase__ + 121;
  24309.   var $this_addr_i_i = __stackBase__ + 122;
  24310.   var $base_addr_i_i = __stackBase__ + 126;
  24311.   var $len_addr_i_i = __stackBase__ + 130;
  24312.   var $p_i_i = __stackBase__ + 134;
  24313.   var $retval_i = __stackBase__ + 138;
  24314.   var $this_addr_i = __stackBase__ + 139;
  24315.   var $c_addr_i = __stackBase__ + 143;
  24316.   var $retval;
  24317.   var $c_addr;
  24318.   var $base_addr;
  24319.   var $user_data_addr;
  24320.   var $offset;
  24321.   $c_addr = $c;
  24322.   $base_addr = $base;
  24323.   $user_data_addr = $user_data;
  24324.   var $this1 = $this;
  24325.   HEAP[$this_addr_i20] = $c_addr;
  24326.   HEAP[$obj_addr_i] = $this1;
  24327.   var $4 = HEAP[$obj_addr_i];
  24328.   HEAP[$this_addr_i_i16] = HEAP[$this_addr_i20];
  24329.   HEAP[$base_addr_i_i17] = $4;
  24330.   HEAP[$len_addr_i_i18] = 2;
  24331.   var $this1_i_i22 = HEAP[$this_addr_i_i16];
  24332.   HEAP[$p_i_i19] = HEAP[$base_addr_i_i17];
  24333.   do {
  24334.     if (HEAP[$this1_i_i22 + 4 | 0] >>> 0 <= HEAP[$p_i_i19] >>> 0) {
  24335.       if (!(HEAP[$p_i_i19] >>> 0 <= HEAP[$this1_i_i22 + 8 | 0] >>> 0)) {
  24336.         var $17 = 0;
  24337.         break;
  24338.       }
  24339.       var $17 = (HEAP[$this1_i_i22 + 8 | 0] - HEAP[$p_i_i19] | 0) >>> 0 >= HEAP[$len_addr_i_i18] >>> 0;
  24340.     } else {
  24341.       var $17 = 0;
  24342.     }
  24343.   } while (0);
  24344.   var $17;
  24345.   if (!($17 & 1)) {
  24346.     $retval = 0;
  24347.     var $166 = $retval;
  24348.     STACKTOP = __stackBase__;
  24349.     return $166;
  24350.   }
  24351.   HEAP[$this_addr_i29] = $this1;
  24352.   HEAP[$this_addr_i_i28] = HEAP[$this_addr_i29] | 0;
  24353.   var $this1_i_i31 = HEAP[$this_addr_i_i28];
  24354.   $offset = ((HEAP[$this1_i_i31 | 0] & 255) << 8) + (HEAP[$this1_i_i31 + 1 | 0] & 255) & 65535;
  24355.   if (($offset | 0) == 0) {
  24356.     $retval = 1;
  24357.     var $166 = $retval;
  24358.     STACKTOP = __stackBase__;
  24359.     return $166;
  24360.   }
  24361.   HEAP[$P_addr_i] = $base_addr;
  24362.   HEAP[$offset_addr_i] = $offset;
  24363.   HEAP[$this_addr_i4] = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  24364.   HEAP[$c_addr_i5] = $c_addr;
  24365.   HEAP[$cols_addr_i] = $user_data_addr;
  24366.   var $this1_i6 = HEAP[$this_addr_i4];
  24367.   HEAP[$this_addr_i_i2] = HEAP[$c_addr_i5];
  24368.   HEAP[$obj_addr_i_i] = $this1_i6;
  24369.   var $57 = HEAP[$obj_addr_i_i];
  24370.   HEAP[$this_addr_i_i_i1] = HEAP[$this_addr_i_i2];
  24371.   HEAP[$base_addr_i_i_i] = $57;
  24372.   HEAP[$len_addr_i_i_i] = 2;
  24373.   var $this1_i_i_i8 = HEAP[$this_addr_i_i_i1];
  24374.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  24375.   do {
  24376.     if (HEAP[$this1_i_i_i8 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  24377.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i8 + 8 | 0] >>> 0)) {
  24378.         var $70 = 0;
  24379.         break;
  24380.       }
  24381.       var $70 = (HEAP[$this1_i_i_i8 + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  24382.     } else {
  24383.       var $70 = 0;
  24384.     }
  24385.   } while (0);
  24386.   var $70;
  24387.   L821 : do {
  24388.     if ($70 & 1) {
  24389.       HEAP[$this_addr_i26_i] = $this1_i6 | 0;
  24390.       HEAP[$this_addr_i_i25_i] = HEAP[$this_addr_i26_i] | 0;
  24391.       var $this1_i_i29_i = HEAP[$this_addr_i_i25_i];
  24392.       do {
  24393.         if ((((HEAP[$this1_i_i29_i | 0] & 255) << 8) + (HEAP[$this1_i_i29_i + 1 | 0] & 255) & 65535 | 0) > 0) {
  24394.           var $85 = HEAP[$cols_addr_i];
  24395.           HEAP[$this_addr_i12_i] = $this1_i6 | 0;
  24396.           HEAP[$this_addr_i_i11_i] = HEAP[$this_addr_i12_i] | 0;
  24397.           var $this1_i_i15_i = HEAP[$this_addr_i_i11_i];
  24398.           if (!($85 >>> 0 >= Math.floor(4294967295 / ((((HEAP[$this1_i_i15_i | 0] & 255) << 8) + (HEAP[$this1_i_i15_i + 1 | 0] & 255) & 65535) >>> 0)) >>> 0)) {
  24399.             break;
  24400.           }
  24401.           var $tobool_i10_i = 0;
  24402.           HEAP[$retval_i3] = $tobool_i10_i;
  24403.           var $115 = $tobool_i10_i;
  24404.           break L821;
  24405.         }
  24406.       } while (0);
  24407.       HEAP[$this_addr_i6_i] = $this1_i6 | 0;
  24408.       HEAP[$this_addr_i_i5_i] = HEAP[$this_addr_i6_i] | 0;
  24409.       var $this1_i_i8_i = HEAP[$this_addr_i_i5_i];
  24410.       var $mul_i = Math.imul(((HEAP[$this1_i_i8_i | 0] & 255) << 8) + (HEAP[$this1_i_i8_i + 1 | 0] & 255) & 65535, HEAP[$cols_addr_i]);
  24411.       HEAP[$count_i] = $mul_i;
  24412.       if (!__ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj(HEAP[$c_addr_i5], $this1_i6 + 2 | 0, 2, HEAP[$count_i])) {
  24413.         var $tobool_i4_i = 0;
  24414.         HEAP[$retval_i3] = $tobool_i4_i;
  24415.         var $115 = $tobool_i4_i;
  24416.         break;
  24417.       }
  24418.       HEAP[$i_i] = 0;
  24419.       L831 : do {
  24420.         if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  24421.           var $matrix21_i = $this1_i6 + 2 | 0;
  24422.           var $106 = $this1_i6;
  24423.           while (1) {
  24424.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_6AnchorEE8sanitizeEPNS_21hb_sanitize_context_tEPv((HEAP[$i_i] << 1) + $matrix21_i | 0, HEAP[$c_addr_i5], $106)) {
  24425.               break;
  24426.             }
  24427.             HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  24428.             if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  24429.               break L831;
  24430.             }
  24431.           }
  24432.           var $tobool_i2_i = 0;
  24433.           HEAP[$retval_i3] = $tobool_i2_i;
  24434.           var $115 = $tobool_i2_i;
  24435.           break L821;
  24436.         }
  24437.       } while (0);
  24438.       var $tobool_i_i = 1;
  24439.       HEAP[$retval_i3] = $tobool_i_i;
  24440.       var $115 = $tobool_i_i;
  24441.     } else {
  24442.       var $tobool_i40_i = 0;
  24443.       HEAP[$retval_i3] = $tobool_i40_i;
  24444.       var $115 = $tobool_i40_i;
  24445.     }
  24446.   } while (0);
  24447.   var $115;
  24448.   if ($115) {
  24449.     var $164 = 1;
  24450.   } else {
  24451.     HEAP[$this_addr_i] = $this1;
  24452.     HEAP[$c_addr_i] = $c_addr;
  24453.     var $this1_i = HEAP[$this_addr_i];
  24454.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  24455.     HEAP[$base_addr_i_i] = $this1_i;
  24456.     HEAP[$len_addr_i_i] = 2;
  24457.     var $this1_i_i = HEAP[$this_addr_i_i];
  24458.     do {
  24459.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  24460.         HEAP[$retval_i_i] = 0;
  24461.         label = 645;
  24462.         break;
  24463.       } else {
  24464.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  24465.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  24466.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  24467.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  24468.         HEAP[$retval_i_i] = $tobool_i_i_i;
  24469.         if (!$tobool_i_i_i) {
  24470.           label = 645;
  24471.           break;
  24472.         }
  24473.         HEAP[$this_addr_i1_i] = $this1_i;
  24474.         HEAP[$i_addr_i_i] = 0;
  24475.         var $151 = HEAP[$i_addr_i_i];
  24476.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  24477.         HEAP[$i_addr_i_i_i] = $151;
  24478.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  24479.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  24480.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  24481.         HEAP[$retval_i] = 1;
  24482.         break;
  24483.       }
  24484.     } while (0);
  24485.     if (label == 645) {
  24486.       HEAP[$retval_i] = 0;
  24487.     }
  24488.     var $164 = HEAP[$retval_i];
  24489.   }
  24490.   var $164;
  24491.   $retval = $164 & 1;
  24492.   var $166 = $retval;
  24493.   STACKTOP = __stackBase__;
  24494.   return $166;
  24495. }
  24496. function __ZN2OT15GenericOffsetToINS_6OffsetENS_6AnchorEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  24497.   var label = 0;
  24498.   var __stackBase__ = STACKTOP;
  24499.   STACKTOP = STACKTOP + 223 | 0;
  24500.   var $this_addr_i_i33 = __stackBase__;
  24501.   var $this_addr_i34 = __stackBase__ + 4;
  24502.   var $P_addr_i = __stackBase__ + 8;
  24503.   var $offset_addr_i = __stackBase__ + 12;
  24504.   var $this_addr_i_i19 = __stackBase__ + 16;
  24505.   var $base_addr_i_i20 = __stackBase__ + 20;
  24506.   var $len_addr_i_i21 = __stackBase__ + 24;
  24507.   var $p_i_i22 = __stackBase__ + 28;
  24508.   var $this_addr_i23 = __stackBase__ + 32;
  24509.   var $obj_addr_i = __stackBase__ + 36;
  24510.   var $this_addr_i_i93_i = __stackBase__ + 40;
  24511.   var $this_addr_i94_i = __stackBase__ + 44;
  24512.   var $this_addr_i_i_i66_i = __stackBase__ + 48;
  24513.   var $base_addr_i_i_i67_i = __stackBase__ + 52;
  24514.   var $len_addr_i_i_i68_i = __stackBase__ + 56;
  24515.   var $p_i_i_i69_i = __stackBase__ + 60;
  24516.   var $this_addr_i_i70_i = __stackBase__ + 64;
  24517.   var $obj_addr_i_i71_i = __stackBase__ + 68;
  24518.   var $this_addr_i73_i = __stackBase__ + 72;
  24519.   var $c_addr_i74_i = __stackBase__ + 76;
  24520.   var $this_addr_i_i_i35_i = __stackBase__ + 80;
  24521.   var $base_addr_i_i_i36_i = __stackBase__ + 84;
  24522.   var $len_addr_i_i_i37_i = __stackBase__ + 88;
  24523.   var $p_i_i_i38_i = __stackBase__ + 92;
  24524.   var $this_addr_i_i39_i = __stackBase__ + 96;
  24525.   var $obj_addr_i_i40_i = __stackBase__ + 100;
  24526.   var $this_addr_i42_i = __stackBase__ + 104;
  24527.   var $c_addr_i43_i = __stackBase__ + 108;
  24528.   var $this_addr_i_i_i4_i = __stackBase__ + 112;
  24529.   var $base_addr_i_i_i5_i = __stackBase__ + 116;
  24530.   var $len_addr_i_i_i6_i = __stackBase__ + 120;
  24531.   var $p_i_i_i7_i = __stackBase__ + 124;
  24532.   var $this_addr_i_i8_i = __stackBase__ + 128;
  24533.   var $obj_addr_i_i9_i = __stackBase__ + 132;
  24534.   var $this_addr_i11_i = __stackBase__ + 136;
  24535.   var $c_addr_i12_i = __stackBase__ + 140;
  24536.   var $this_addr_i_i_i_i = __stackBase__ + 144;
  24537.   var $base_addr_i_i_i_i = __stackBase__ + 148;
  24538.   var $len_addr_i_i_i_i = __stackBase__ + 152;
  24539.   var $p_i_i_i_i = __stackBase__ + 156;
  24540.   var $this_addr_i_i_i1 = __stackBase__ + 160;
  24541.   var $obj_addr_i_i_i = __stackBase__ + 164;
  24542.   var $this_addr_i_i3 = __stackBase__ + 168;
  24543.   var $c_addr_i_i = __stackBase__ + 172;
  24544.   var $retval_i4 = __stackBase__ + 176;
  24545.   var $this_addr_i5 = __stackBase__ + 177;
  24546.   var $c_addr_i6 = __stackBase__ + 181;
  24547.   var $this_addr_i_i_i = __stackBase__ + 185;
  24548.   var $i_addr_i_i_i = __stackBase__ + 189;
  24549.   var $this_addr_i1_i = __stackBase__ + 191;
  24550.   var $i_addr_i_i = __stackBase__ + 195;
  24551.   var $retval_i_i = __stackBase__ + 197;
  24552.   var $this_addr_i_i = __stackBase__ + 198;
  24553.   var $base_addr_i_i = __stackBase__ + 202;
  24554.   var $len_addr_i_i = __stackBase__ + 206;
  24555.   var $p_i_i = __stackBase__ + 210;
  24556.   var $retval_i = __stackBase__ + 214;
  24557.   var $this_addr_i = __stackBase__ + 215;
  24558.   var $c_addr_i = __stackBase__ + 219;
  24559.   var $retval;
  24560.   var $c_addr;
  24561.   var $base_addr;
  24562.   var $offset;
  24563.   $c_addr = $c;
  24564.   $base_addr = $base;
  24565.   var $this1 = $this;
  24566.   HEAP[$this_addr_i23] = $c_addr;
  24567.   HEAP[$obj_addr_i] = $this1;
  24568.   var $4 = HEAP[$obj_addr_i];
  24569.   HEAP[$this_addr_i_i19] = HEAP[$this_addr_i23];
  24570.   HEAP[$base_addr_i_i20] = $4;
  24571.   HEAP[$len_addr_i_i21] = 2;
  24572.   var $this1_i_i25 = HEAP[$this_addr_i_i19];
  24573.   HEAP[$p_i_i22] = HEAP[$base_addr_i_i20];
  24574.   do {
  24575.     if (HEAP[$this1_i_i25 + 4 | 0] >>> 0 <= HEAP[$p_i_i22] >>> 0) {
  24576.       if (!(HEAP[$p_i_i22] >>> 0 <= HEAP[$this1_i_i25 + 8 | 0] >>> 0)) {
  24577.         var $17 = 0;
  24578.         break;
  24579.       }
  24580.       var $17 = (HEAP[$this1_i_i25 + 8 | 0] - HEAP[$p_i_i22] | 0) >>> 0 >= HEAP[$len_addr_i_i21] >>> 0;
  24581.     } else {
  24582.       var $17 = 0;
  24583.     }
  24584.   } while (0);
  24585.   var $17;
  24586.   if (!($17 & 1)) {
  24587.     $retval = 0;
  24588.     var $250 = $retval;
  24589.     STACKTOP = __stackBase__;
  24590.     return $250;
  24591.   }
  24592.   HEAP[$this_addr_i34] = $this1;
  24593.   HEAP[$this_addr_i_i33] = HEAP[$this_addr_i34] | 0;
  24594.   var $this1_i_i36 = HEAP[$this_addr_i_i33];
  24595.   $offset = ((HEAP[$this1_i_i36 | 0] & 255) << 8) + (HEAP[$this1_i_i36 + 1 | 0] & 255) & 65535;
  24596.   if (($offset | 0) == 0) {
  24597.     $retval = 1;
  24598.     var $250 = $retval;
  24599.     STACKTOP = __stackBase__;
  24600.     return $250;
  24601.   }
  24602.   HEAP[$P_addr_i] = $base_addr;
  24603.   HEAP[$offset_addr_i] = $offset;
  24604.   HEAP[$this_addr_i5] = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  24605.   HEAP[$c_addr_i6] = $c_addr;
  24606.   var $this1_i7 = HEAP[$this_addr_i5];
  24607.   var $49 = HEAP[$c_addr_i6];
  24608.   HEAP[$this_addr_i11_i] = $this1_i7 | 0;
  24609.   HEAP[$c_addr_i12_i] = $49;
  24610.   var $this1_i13_i = HEAP[$this_addr_i11_i];
  24611.   HEAP[$this_addr_i_i8_i] = HEAP[$c_addr_i12_i];
  24612.   HEAP[$obj_addr_i_i9_i] = $this1_i13_i;
  24613.   var $56 = HEAP[$obj_addr_i_i9_i];
  24614.   HEAP[$this_addr_i_i_i4_i] = HEAP[$this_addr_i_i8_i];
  24615.   HEAP[$base_addr_i_i_i5_i] = $56;
  24616.   HEAP[$len_addr_i_i_i6_i] = 2;
  24617.   var $this1_i_i_i15_i = HEAP[$this_addr_i_i_i4_i];
  24618.   HEAP[$p_i_i_i7_i] = HEAP[$base_addr_i_i_i5_i];
  24619.   do {
  24620.     if (HEAP[$this1_i_i_i15_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i] >>> 0) {
  24621.       if (!(HEAP[$p_i_i_i7_i] >>> 0 <= HEAP[$this1_i_i_i15_i + 8 | 0] >>> 0)) {
  24622.         var $69 = 0;
  24623.         break;
  24624.       }
  24625.       var $69 = (HEAP[$this1_i_i_i15_i + 8 | 0] - HEAP[$p_i_i_i7_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i] >>> 0;
  24626.     } else {
  24627.       var $69 = 0;
  24628.     }
  24629.   } while (0);
  24630.   var $69;
  24631.   do {
  24632.     if ($69 & 1 & 1) {
  24633.       HEAP[$this_addr_i94_i] = $this1_i7 | 0;
  24634.       HEAP[$this_addr_i_i93_i] = HEAP[$this_addr_i94_i] | 0;
  24635.       var $this1_i_i96_i = HEAP[$this_addr_i_i93_i];
  24636.       var $conv_i = ((HEAP[$this1_i_i96_i | 0] & 255) << 8) + (HEAP[$this1_i_i96_i + 1 | 0] & 255) & 65535;
  24637.       if (($conv_i | 0) == 1) {
  24638.         var $90 = HEAP[$c_addr_i6];
  24639.         HEAP[$this_addr_i73_i] = $this1_i7 | 0;
  24640.         HEAP[$c_addr_i74_i] = $90;
  24641.         var $this1_i75_i = HEAP[$this_addr_i73_i];
  24642.         HEAP[$this_addr_i_i70_i] = HEAP[$c_addr_i74_i];
  24643.         HEAP[$obj_addr_i_i71_i] = $this1_i75_i;
  24644.         var $97 = HEAP[$obj_addr_i_i71_i];
  24645.         HEAP[$this_addr_i_i_i66_i] = HEAP[$this_addr_i_i70_i];
  24646.         HEAP[$base_addr_i_i_i67_i] = $97;
  24647.         HEAP[$len_addr_i_i_i68_i] = 6;
  24648.         var $this1_i_i_i77_i = HEAP[$this_addr_i_i_i66_i];
  24649.         HEAP[$p_i_i_i69_i] = HEAP[$base_addr_i_i_i67_i];
  24650.         do {
  24651.           if (HEAP[$this1_i_i_i77_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i69_i] >>> 0) {
  24652.             if (!(HEAP[$p_i_i_i69_i] >>> 0 <= HEAP[$this1_i_i_i77_i + 8 | 0] >>> 0)) {
  24653.               var $110 = 0;
  24654.               break;
  24655.             }
  24656.             var $110 = (HEAP[$this1_i_i_i77_i + 8 | 0] - HEAP[$p_i_i_i69_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i68_i] >>> 0;
  24657.           } else {
  24658.             var $110 = 0;
  24659.           }
  24660.         } while (0);
  24661.         var $110;
  24662.         var $tobool_i64_i = $110 & 1 & 1 & 1;
  24663.         HEAP[$retval_i4] = $tobool_i64_i;
  24664.         if ($tobool_i64_i) {
  24665.           var $248 = 1;
  24666.           break;
  24667.         } else {
  24668.           label = 681;
  24669.           break;
  24670.         }
  24671.       } else if (($conv_i | 0) == 2) {
  24672.         var $125 = HEAP[$c_addr_i6];
  24673.         HEAP[$this_addr_i42_i] = $this1_i7 | 0;
  24674.         HEAP[$c_addr_i43_i] = $125;
  24675.         var $this1_i44_i = HEAP[$this_addr_i42_i];
  24676.         HEAP[$this_addr_i_i39_i] = HEAP[$c_addr_i43_i];
  24677.         HEAP[$obj_addr_i_i40_i] = $this1_i44_i;
  24678.         var $132 = HEAP[$obj_addr_i_i40_i];
  24679.         HEAP[$this_addr_i_i_i35_i] = HEAP[$this_addr_i_i39_i];
  24680.         HEAP[$base_addr_i_i_i36_i] = $132;
  24681.         HEAP[$len_addr_i_i_i37_i] = 8;
  24682.         var $this1_i_i_i46_i = HEAP[$this_addr_i_i_i35_i];
  24683.         HEAP[$p_i_i_i38_i] = HEAP[$base_addr_i_i_i36_i];
  24684.         do {
  24685.           if (HEAP[$this1_i_i_i46_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i38_i] >>> 0) {
  24686.             if (!(HEAP[$p_i_i_i38_i] >>> 0 <= HEAP[$this1_i_i_i46_i + 8 | 0] >>> 0)) {
  24687.               var $145 = 0;
  24688.               break;
  24689.             }
  24690.             var $145 = (HEAP[$this1_i_i_i46_i + 8 | 0] - HEAP[$p_i_i_i38_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i37_i] >>> 0;
  24691.           } else {
  24692.             var $145 = 0;
  24693.           }
  24694.         } while (0);
  24695.         var $145;
  24696.         var $tobool_i33_i = $145 & 1 & 1 & 1;
  24697.         HEAP[$retval_i4] = $tobool_i33_i;
  24698.         if ($tobool_i33_i) {
  24699.           var $248 = 1;
  24700.           break;
  24701.         } else {
  24702.           label = 681;
  24703.           break;
  24704.         }
  24705.       } else if (($conv_i | 0) == 3) {
  24706.         var $160 = HEAP[$c_addr_i6];
  24707.         HEAP[$this_addr_i_i3] = $this1_i7 | 0;
  24708.         HEAP[$c_addr_i_i] = $160;
  24709.         var $this1_i_i14 = HEAP[$this_addr_i_i3];
  24710.         HEAP[$this_addr_i_i_i1] = HEAP[$c_addr_i_i];
  24711.         HEAP[$obj_addr_i_i_i] = $this1_i_i14;
  24712.         var $167 = HEAP[$obj_addr_i_i_i];
  24713.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i1];
  24714.         HEAP[$base_addr_i_i_i_i] = $167;
  24715.         HEAP[$len_addr_i_i_i_i] = 10;
  24716.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  24717.         HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  24718.         do {
  24719.           if (HEAP[$this1_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  24720.             if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i + 8 | 0] >>> 0)) {
  24721.               var $180 = 0;
  24722.               break;
  24723.             }
  24724.             var $180 = (HEAP[$this1_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  24725.           } else {
  24726.             var $180 = 0;
  24727.           }
  24728.         } while (0);
  24729.         var $180;
  24730.         do {
  24731.           if ($180 & 1) {
  24732.             if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i14 + 6 | 0, HEAP[$c_addr_i_i], $this1_i_i14)) {
  24733.               var $194 = 0;
  24734.               break;
  24735.             }
  24736.             var $194 = __ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i14 + 8 | 0, HEAP[$c_addr_i_i], $this1_i_i14);
  24737.           } else {
  24738.             var $194 = 0;
  24739.           }
  24740.         } while (0);
  24741.         var $194;
  24742.         var $tobool_i2_i = $194 & 1 & 1;
  24743.         HEAP[$retval_i4] = $tobool_i2_i;
  24744.         if ($tobool_i2_i) {
  24745.           var $248 = 1;
  24746.           break;
  24747.         } else {
  24748.           label = 681;
  24749.           break;
  24750.         }
  24751.       } else {
  24752.         var $tobool_i_i = 1;
  24753.         HEAP[$retval_i4] = $tobool_i_i;
  24754.         if ($tobool_i_i) {
  24755.           var $248 = 1;
  24756.           break;
  24757.         } else {
  24758.           label = 681;
  24759.           break;
  24760.         }
  24761.       }
  24762.     } else {
  24763.       var $tobool_i98_i = 0;
  24764.       HEAP[$retval_i4] = $tobool_i98_i;
  24765.       if ($tobool_i98_i) {
  24766.         var $248 = 1;
  24767.         break;
  24768.       } else {
  24769.         label = 681;
  24770.         break;
  24771.       }
  24772.     }
  24773.   } while (0);
  24774.   if (label == 681) {
  24775.     HEAP[$this_addr_i] = $this1;
  24776.     HEAP[$c_addr_i] = $c_addr;
  24777.     var $this1_i = HEAP[$this_addr_i];
  24778.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  24779.     HEAP[$base_addr_i_i] = $this1_i;
  24780.     HEAP[$len_addr_i_i] = 2;
  24781.     var $this1_i_i = HEAP[$this_addr_i_i];
  24782.     do {
  24783.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  24784.         HEAP[$retval_i_i] = 0;
  24785.         label = 685;
  24786.         break;
  24787.       } else {
  24788.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  24789.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  24790.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  24791.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  24792.         HEAP[$retval_i_i] = $tobool_i_i_i;
  24793.         if (!$tobool_i_i_i) {
  24794.           label = 685;
  24795.           break;
  24796.         }
  24797.         HEAP[$this_addr_i1_i] = $this1_i;
  24798.         HEAP[$i_addr_i_i] = 0;
  24799.         var $235 = HEAP[$i_addr_i_i];
  24800.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  24801.         HEAP[$i_addr_i_i_i] = $235;
  24802.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  24803.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  24804.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  24805.         HEAP[$retval_i] = 1;
  24806.         break;
  24807.       }
  24808.     } while (0);
  24809.     if (label == 685) {
  24810.       HEAP[$retval_i] = 0;
  24811.     }
  24812.     var $248 = HEAP[$retval_i];
  24813.   }
  24814.   var $248;
  24815.   $retval = $248 & 1;
  24816.   var $250 = $retval;
  24817.   STACKTOP = __stackBase__;
  24818.   return $250;
  24819. }
  24820. function __ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  24821.   var label = 0;
  24822.   var __stackBase__ = STACKTOP;
  24823.   STACKTOP = STACKTOP + 178 | 0;
  24824.   var $this_addr_i_i34 = __stackBase__;
  24825.   var $base_addr_i_i35 = __stackBase__ + 4;
  24826.   var $len_addr_i_i36 = __stackBase__ + 8;
  24827.   var $p_i_i37 = __stackBase__ + 12;
  24828.   var $this_addr_i38 = __stackBase__ + 16;
  24829.   var $obj_addr_i = __stackBase__ + 20;
  24830.   var $this_addr_i_i23 = __stackBase__ + 24;
  24831.   var $this_addr_i24 = __stackBase__ + 28;
  24832.   var $P_addr_i = __stackBase__ + 32;
  24833.   var $offset_addr_i = __stackBase__ + 36;
  24834.   var $this_addr_i_i4_i = __stackBase__ + 40;
  24835.   var $base_addr_i_i_i = __stackBase__ + 44;
  24836.   var $len_addr_i_i_i = __stackBase__ + 48;
  24837.   var $p_i_i_i = __stackBase__ + 52;
  24838.   var $this_addr_i5_i = __stackBase__ + 56;
  24839.   var $obj_addr_i_i = __stackBase__ + 60;
  24840.   var $this_addr_i_i43_i_i = __stackBase__ + 64;
  24841.   var $this_addr_i44_i_i = __stackBase__ + 68;
  24842.   var $this_addr_i_i29_i_i = __stackBase__ + 72;
  24843.   var $this_addr_i30_i_i = __stackBase__ + 76;
  24844.   var $this_addr_i_i15_i_i = __stackBase__ + 80;
  24845.   var $this_addr_i16_i_i = __stackBase__ + 84;
  24846.   var $this_addr_i_i1_i_i = __stackBase__ + 88;
  24847.   var $this_addr_i2_i_i = __stackBase__ + 92;
  24848.   var $this_addr_i_i_i_i = __stackBase__ + 96;
  24849.   var $this_addr_i_i_i1 = __stackBase__ + 100;
  24850.   var $retval_i_i2 = __stackBase__ + 104;
  24851.   var $this_addr_i1_i3 = __stackBase__ + 108;
  24852.   var $f_i_i = __stackBase__ + 112;
  24853.   var $this_addr_i_i5 = __stackBase__ + 116;
  24854.   var $base_addr_i_i6 = __stackBase__ + 120;
  24855.   var $len_addr_i_i7 = __stackBase__ + 124;
  24856.   var $p_i_i8 = __stackBase__ + 128;
  24857.   var $this_addr_i9 = __stackBase__ + 132;
  24858.   var $c_addr_i10 = __stackBase__ + 136;
  24859.   var $this_addr_i_i_i = __stackBase__ + 140;
  24860.   var $i_addr_i_i_i = __stackBase__ + 144;
  24861.   var $this_addr_i1_i = __stackBase__ + 146;
  24862.   var $i_addr_i_i = __stackBase__ + 150;
  24863.   var $retval_i_i = __stackBase__ + 152;
  24864.   var $this_addr_i_i = __stackBase__ + 153;
  24865.   var $base_addr_i_i = __stackBase__ + 157;
  24866.   var $len_addr_i_i = __stackBase__ + 161;
  24867.   var $p_i_i = __stackBase__ + 165;
  24868.   var $retval_i = __stackBase__ + 169;
  24869.   var $this_addr_i = __stackBase__ + 170;
  24870.   var $c_addr_i = __stackBase__ + 174;
  24871.   var $retval;
  24872.   var $c_addr;
  24873.   var $base_addr;
  24874.   var $offset;
  24875.   $c_addr = $c;
  24876.   $base_addr = $base;
  24877.   var $this1 = $this;
  24878.   HEAP[$this_addr_i38] = $c_addr;
  24879.   HEAP[$obj_addr_i] = $this1;
  24880.   var $4 = HEAP[$obj_addr_i];
  24881.   HEAP[$this_addr_i_i34] = HEAP[$this_addr_i38];
  24882.   HEAP[$base_addr_i_i35] = $4;
  24883.   HEAP[$len_addr_i_i36] = 2;
  24884.   var $this1_i_i40 = HEAP[$this_addr_i_i34];
  24885.   HEAP[$p_i_i37] = HEAP[$base_addr_i_i35];
  24886.   do {
  24887.     if (HEAP[$this1_i_i40 + 4 | 0] >>> 0 <= HEAP[$p_i_i37] >>> 0) {
  24888.       if (!(HEAP[$p_i_i37] >>> 0 <= HEAP[$this1_i_i40 + 8 | 0] >>> 0)) {
  24889.         var $17 = 0;
  24890.         break;
  24891.       }
  24892.       var $17 = (HEAP[$this1_i_i40 + 8 | 0] - HEAP[$p_i_i37] | 0) >>> 0 >= HEAP[$len_addr_i_i36] >>> 0;
  24893.     } else {
  24894.       var $17 = 0;
  24895.     }
  24896.   } while (0);
  24897.   var $17;
  24898.   if (!($17 & 1)) {
  24899.     $retval = 0;
  24900.     var $181 = $retval;
  24901.     STACKTOP = __stackBase__;
  24902.     return $181;
  24903.   }
  24904.   HEAP[$this_addr_i24] = $this1;
  24905.   HEAP[$this_addr_i_i23] = HEAP[$this_addr_i24] | 0;
  24906.   var $this1_i_i26 = HEAP[$this_addr_i_i23];
  24907.   $offset = ((HEAP[$this1_i_i26 | 0] & 255) << 8) + (HEAP[$this1_i_i26 + 1 | 0] & 255) & 65535;
  24908.   if (($offset | 0) == 0) {
  24909.     $retval = 1;
  24910.     var $181 = $retval;
  24911.     STACKTOP = __stackBase__;
  24912.     return $181;
  24913.   }
  24914.   HEAP[$P_addr_i] = $base_addr;
  24915.   HEAP[$offset_addr_i] = $offset;
  24916.   HEAP[$this_addr_i9] = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  24917.   HEAP[$c_addr_i10] = $c_addr;
  24918.   var $this1_i11 = HEAP[$this_addr_i9];
  24919.   HEAP[$this_addr_i5_i] = HEAP[$c_addr_i10];
  24920.   HEAP[$obj_addr_i_i] = $this1_i11;
  24921.   var $52 = HEAP[$obj_addr_i_i];
  24922.   HEAP[$this_addr_i_i4_i] = HEAP[$this_addr_i5_i];
  24923.   HEAP[$base_addr_i_i_i] = $52;
  24924.   HEAP[$len_addr_i_i_i] = 6;
  24925.   var $this1_i_i7_i = HEAP[$this_addr_i_i4_i];
  24926.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  24927.   do {
  24928.     if (HEAP[$this1_i_i7_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  24929.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i7_i + 8 | 0] >>> 0)) {
  24930.         var $65 = 0;
  24931.         break;
  24932.       }
  24933.       var $65 = (HEAP[$this1_i_i7_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  24934.     } else {
  24935.       var $65 = 0;
  24936.     }
  24937.   } while (0);
  24938.   var $65;
  24939.   if ($65 & 1) {
  24940.     var $73 = HEAP[$c_addr_i10];
  24941.     var $74 = $this1_i11;
  24942.     HEAP[$this_addr_i1_i3] = $this1_i11;
  24943.     var $this1_i2_i12 = HEAP[$this_addr_i1_i3];
  24944.     HEAP[$this_addr_i_i_i1] = $this1_i2_i12 + 4 | 0;
  24945.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i1] | 0;
  24946.     var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  24947.     HEAP[$f_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  24948.     do {
  24949.       if (HEAP[$f_i_i] >>> 0 < 1 | HEAP[$f_i_i] >>> 0 > 3) {
  24950.         label = 705;
  24951.       } else {
  24952.         HEAP[$this_addr_i44_i_i] = $this1_i2_i12 | 0;
  24953.         HEAP[$this_addr_i_i43_i_i] = HEAP[$this_addr_i44_i_i] | 0;
  24954.         var $this1_i_i47_i_i = HEAP[$this_addr_i_i43_i_i];
  24955.         var $conv5_i_i = ((HEAP[$this1_i_i47_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i47_i_i + 1 | 0] & 255) & 65535;
  24956.         HEAP[$this_addr_i30_i_i] = $this1_i2_i12 + 2 | 0;
  24957.         HEAP[$this_addr_i_i29_i_i] = HEAP[$this_addr_i30_i_i] | 0;
  24958.         var $this1_i_i33_i_i = HEAP[$this_addr_i_i29_i_i];
  24959.         if (($conv5_i_i | 0) > (((HEAP[$this1_i_i33_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i_i + 1 | 0] & 255) & 65535 | 0)) {
  24960.           label = 705;
  24961.           break;
  24962.         }
  24963.         HEAP[$this_addr_i16_i_i] = $this1_i2_i12 + 2 | 0;
  24964.         HEAP[$this_addr_i_i15_i_i] = HEAP[$this_addr_i16_i_i] | 0;
  24965.         var $this1_i_i19_i_i = HEAP[$this_addr_i_i15_i_i];
  24966.         var $conv11_i_i = ((HEAP[$this1_i_i19_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i19_i_i + 1 | 0] & 255) & 65535;
  24967.         HEAP[$this_addr_i2_i_i] = $this1_i2_i12 | 0;
  24968.         HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] | 0;
  24969.         var $this1_i_i5_i_i = HEAP[$this_addr_i_i1_i_i];
  24970.         HEAP[$retval_i_i2] = ($conv11_i_i - (((HEAP[$this1_i_i5_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i + 1 | 0] & 255) & 65535) >> 4 - HEAP[$f_i_i]) + 4 << 1;
  24971.         break;
  24972.       }
  24973.     } while (0);
  24974.     if (label == 705) {
  24975.       HEAP[$retval_i_i2] = 6;
  24976.     }
  24977.     var $111 = HEAP[$retval_i_i2];
  24978.     HEAP[$this_addr_i_i5] = $73;
  24979.     HEAP[$base_addr_i_i6] = $74;
  24980.     HEAP[$len_addr_i_i7] = $111;
  24981.     var $this1_i_i17 = HEAP[$this_addr_i_i5];
  24982.     HEAP[$p_i_i8] = HEAP[$base_addr_i_i6];
  24983.     do {
  24984.       if (HEAP[$this1_i_i17 + 4 | 0] >>> 0 <= HEAP[$p_i_i8] >>> 0) {
  24985.         if (!(HEAP[$p_i_i8] >>> 0 <= HEAP[$this1_i_i17 + 8 | 0] >>> 0)) {
  24986.           var $127 = 0;
  24987.           break;
  24988.         }
  24989.         var $127 = (HEAP[$this1_i_i17 + 8 | 0] - HEAP[$p_i_i8] | 0) >>> 0 >= HEAP[$len_addr_i_i7] >>> 0;
  24990.       } else {
  24991.         var $127 = 0;
  24992.       }
  24993.     } while (0);
  24994.     var $127;
  24995.     var $133 = $127 & 1;
  24996.   } else {
  24997.     var $133 = 0;
  24998.   }
  24999.   var $133;
  25000.   if ($133 & 1) {
  25001.     var $179 = 1;
  25002.   } else {
  25003.     HEAP[$this_addr_i] = $this1;
  25004.     HEAP[$c_addr_i] = $c_addr;
  25005.     var $this1_i = HEAP[$this_addr_i];
  25006.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  25007.     HEAP[$base_addr_i_i] = $this1_i;
  25008.     HEAP[$len_addr_i_i] = 2;
  25009.     var $this1_i_i = HEAP[$this_addr_i_i];
  25010.     do {
  25011.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  25012.         HEAP[$retval_i_i] = 0;
  25013.         label = 716;
  25014.         break;
  25015.       } else {
  25016.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  25017.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  25018.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  25019.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  25020.         HEAP[$retval_i_i] = $tobool_i_i_i;
  25021.         if (!$tobool_i_i_i) {
  25022.           label = 716;
  25023.           break;
  25024.         }
  25025.         HEAP[$this_addr_i1_i] = $this1_i;
  25026.         HEAP[$i_addr_i_i] = 0;
  25027.         var $166 = HEAP[$i_addr_i_i];
  25028.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  25029.         HEAP[$i_addr_i_i_i] = $166;
  25030.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  25031.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  25032.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  25033.         HEAP[$retval_i] = 1;
  25034.         break;
  25035.       }
  25036.     } while (0);
  25037.     if (label == 716) {
  25038.       HEAP[$retval_i] = 0;
  25039.     }
  25040.     var $179 = HEAP[$retval_i];
  25041.   }
  25042.   var $179;
  25043.   $retval = $179 & 1;
  25044.   var $181 = $retval;
  25045.   STACKTOP = __stackBase__;
  25046.   return $181;
  25047. }
  25048. function __ZN2OT11ValueFormat29sanitize_values_stride_unsafeEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEEjj($this, $c, $base, $values, $count, $stride) {
  25049.   var __stackBase__ = STACKTOP;
  25050.   STACKTOP = STACKTOP + 16 | 0;
  25051.   var $this_addr_i_i_i = __stackBase__;
  25052.   var $this_addr_i_i = __stackBase__ + 4;
  25053.   var $this_addr_i = __stackBase__ + 8;
  25054.   var $format_i = __stackBase__ + 12;
  25055.   var $retval;
  25056.   var $c_addr;
  25057.   var $base_addr;
  25058.   var $values_addr;
  25059.   var $count_addr;
  25060.   var $stride_addr;
  25061.   var $i;
  25062.   $c_addr = $c;
  25063.   $base_addr = $base;
  25064.   $values_addr = $values;
  25065.   $count_addr = $count;
  25066.   $stride_addr = $stride;
  25067.   var $this1 = $this;
  25068.   HEAP[$this_addr_i] = $this1;
  25069.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i];
  25070.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  25071.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  25072.   HEAP[$format_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  25073.   if ((HEAP[$format_i] & 240 | 0) == 0) {
  25074.     $retval = 1;
  25075.     var $25 = $retval;
  25076.     STACKTOP = __stackBase__;
  25077.     return $25;
  25078.   }
  25079.   $i = 0;
  25080.   L948 : do {
  25081.     if ($i >>> 0 < $count_addr >>> 0) {
  25082.       while (1) {
  25083.         if (!__ZN2OT11ValueFormat22sanitize_value_devicesEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEE($this1, $c_addr, $base_addr, $values_addr)) {
  25084.           break;
  25085.         }
  25086.         $values_addr = ($stride_addr << 1) + $values_addr | 0;
  25087.         $i = $i + 1 | 0;
  25088.         if ($i >>> 0 >= $count_addr >>> 0) {
  25089.           break L948;
  25090.         }
  25091.       }
  25092.       $retval = 0;
  25093.       var $25 = $retval;
  25094.       STACKTOP = __stackBase__;
  25095.       return $25;
  25096.     }
  25097.   } while (0);
  25098.   $retval = 1;
  25099.   var $25 = $retval;
  25100.   STACKTOP = __stackBase__;
  25101.   return $25;
  25102. }
  25103. function __ZN2OT11ValueFormat22sanitize_value_devicesEPNS_21hb_sanitize_context_tEPvPNS_7IntTypeItLj2EEE($this, $c, $base, $values) {
  25104.   var __stackBase__ = STACKTOP;
  25105.   STACKTOP = STACKTOP + 40 | 0;
  25106.   var $X_addr_i_i5 = __stackBase__;
  25107.   var $value_addr_i6 = __stackBase__ + 4;
  25108.   var $X_addr_i_i3 = __stackBase__ + 8;
  25109.   var $value_addr_i4 = __stackBase__ + 12;
  25110.   var $X_addr_i_i1 = __stackBase__ + 16;
  25111.   var $value_addr_i2 = __stackBase__ + 20;
  25112.   var $X_addr_i_i = __stackBase__ + 24;
  25113.   var $value_addr_i = __stackBase__ + 28;
  25114.   var $this_addr_i_i = __stackBase__ + 32;
  25115.   var $this_addr_i = __stackBase__ + 36;
  25116.   var $retval;
  25117.   var $c_addr;
  25118.   var $base_addr;
  25119.   var $values_addr;
  25120.   var $format;
  25121.   $c_addr = $c;
  25122.   $base_addr = $base;
  25123.   $values_addr = $values;
  25124.   HEAP[$this_addr_i] = $this;
  25125.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  25126.   var $this1_i_i = HEAP[$this_addr_i_i];
  25127.   $format = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  25128.   if (($format & 1 | 0) != 0) {
  25129.     $values_addr = $values_addr + 2 | 0;
  25130.   }
  25131.   if (($format & 2 | 0) != 0) {
  25132.     $values_addr = $values_addr + 2 | 0;
  25133.   }
  25134.   if (($format & 4 | 0) != 0) {
  25135.     $values_addr = $values_addr + 2 | 0;
  25136.   }
  25137.   if (($format & 8 | 0) != 0) {
  25138.     $values_addr = $values_addr + 2 | 0;
  25139.   }
  25140.   do {
  25141.     if (($format & 16 | 0) != 0) {
  25142.       var $16 = $values_addr;
  25143.       $values_addr = $16 + 2 | 0;
  25144.       HEAP[$value_addr_i] = $16;
  25145.       HEAP[$X_addr_i_i] = HEAP[$value_addr_i];
  25146.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$X_addr_i_i], $c_addr, $base_addr)) {
  25147.         break;
  25148.       }
  25149.       $retval = 0;
  25150.       var $63 = $retval;
  25151.       STACKTOP = __stackBase__;
  25152.       return $63;
  25153.     }
  25154.   } while (0);
  25155.   do {
  25156.     if (($format & 32 | 0) != 0) {
  25157.       var $28 = $values_addr;
  25158.       $values_addr = $28 + 2 | 0;
  25159.       HEAP[$value_addr_i4] = $28;
  25160.       HEAP[$X_addr_i_i3] = HEAP[$value_addr_i4];
  25161.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$X_addr_i_i3], $c_addr, $base_addr)) {
  25162.         break;
  25163.       }
  25164.       $retval = 0;
  25165.       var $63 = $retval;
  25166.       STACKTOP = __stackBase__;
  25167.       return $63;
  25168.     }
  25169.   } while (0);
  25170.   do {
  25171.     if (($format & 64 | 0) != 0) {
  25172.       var $40 = $values_addr;
  25173.       $values_addr = $40 + 2 | 0;
  25174.       HEAP[$value_addr_i6] = $40;
  25175.       HEAP[$X_addr_i_i5] = HEAP[$value_addr_i6];
  25176.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$X_addr_i_i5], $c_addr, $base_addr)) {
  25177.         break;
  25178.       }
  25179.       $retval = 0;
  25180.       var $63 = $retval;
  25181.       STACKTOP = __stackBase__;
  25182.       return $63;
  25183.     }
  25184.   } while (0);
  25185.   do {
  25186.     if (($format & 128 | 0) != 0) {
  25187.       var $52 = $values_addr;
  25188.       $values_addr = $52 + 2 | 0;
  25189.       HEAP[$value_addr_i2] = $52;
  25190.       HEAP[$X_addr_i_i1] = HEAP[$value_addr_i2];
  25191.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$X_addr_i_i1], $c_addr, $base_addr)) {
  25192.         break;
  25193.       }
  25194.       $retval = 0;
  25195.       var $63 = $retval;
  25196.       STACKTOP = __stackBase__;
  25197.       return $63;
  25198.     }
  25199.   } while (0);
  25200.   $retval = 1;
  25201.   var $63 = $retval;
  25202.   STACKTOP = __stackBase__;
  25203.   return $63;
  25204. }
  25205. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_5IndexEE8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  25206.   var __stackBase__ = STACKTOP;
  25207.   STACKTOP = STACKTOP + 40 | 0;
  25208.   var $this_addr_i_i1_i = __stackBase__;
  25209.   var $base_addr_i_i_i = __stackBase__ + 4;
  25210.   var $len_addr_i_i_i = __stackBase__ + 8;
  25211.   var $p_i_i_i = __stackBase__ + 12;
  25212.   var $this_addr_i2_i = __stackBase__ + 16;
  25213.   var $obj_addr_i_i = __stackBase__ + 20;
  25214.   var $this_addr_i_i_i = __stackBase__ + 24;
  25215.   var $this_addr_i_i = __stackBase__ + 28;
  25216.   var $this_addr_i = __stackBase__ + 32;
  25217.   var $c_addr_i = __stackBase__ + 36;
  25218.   var $retval;
  25219.   HEAP[$this_addr_i] = $this;
  25220.   HEAP[$c_addr_i] = $c;
  25221.   var $this1_i = HEAP[$this_addr_i];
  25222.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i];
  25223.   HEAP[$obj_addr_i_i] = $this1_i;
  25224.   var $7 = HEAP[$obj_addr_i_i];
  25225.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  25226.   HEAP[$base_addr_i_i_i] = $7;
  25227.   HEAP[$len_addr_i_i_i] = 2;
  25228.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  25229.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  25230.   do {
  25231.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  25232.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  25233.         var $20 = 0;
  25234.         break;
  25235.       }
  25236.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  25237.     } else {
  25238.       var $20 = 0;
  25239.     }
  25240.   } while (0);
  25241.   var $20;
  25242.   if ($20 & 1) {
  25243.     var $28 = HEAP[$c_addr_i];
  25244.     HEAP[$this_addr_i_i] = $this1_i | 0;
  25245.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  25246.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  25247.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i, 2, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535);
  25248.   } else {
  25249.     var $36 = 0;
  25250.   }
  25251.   var $36;
  25252.   if ($36 & 1) {
  25253.     $retval = 1;
  25254.     var $42 = $retval;
  25255.     STACKTOP = __stackBase__;
  25256.     return $42;
  25257.   } else {
  25258.     $retval = 0;
  25259.     var $42 = $retval;
  25260.     STACKTOP = __stackBase__;
  25261.     return $42;
  25262.   }
  25263. }
  25264. function __ZN2OT15GenericOffsetToINS_6OffsetENS_13FeatureParamsEE8sanitizeIjEEbPNS_21hb_sanitize_context_tEPvT_($this, $c, $base, $user_data) {
  25265.   var label = 0;
  25266.   var __stackBase__ = STACKTOP;
  25267.   STACKTOP = STACKTOP + 325 | 0;
  25268.   var $this_addr_i_i30 = __stackBase__;
  25269.   var $base_addr_i_i31 = __stackBase__ + 4;
  25270.   var $len_addr_i_i32 = __stackBase__ + 8;
  25271.   var $p_i_i33 = __stackBase__ + 12;
  25272.   var $this_addr_i34 = __stackBase__ + 16;
  25273.   var $obj_addr_i = __stackBase__ + 20;
  25274.   var $this_addr_i_i21 = __stackBase__ + 24;
  25275.   var $this_addr_i22 = __stackBase__ + 28;
  25276.   var $P_addr_i = __stackBase__ + 32;
  25277.   var $offset_addr_i = __stackBase__ + 36;
  25278.   var $this_addr_i_i149_i_i = __stackBase__ + 40;
  25279.   var $base_addr_i_i_i38_i = __stackBase__ + 44;
  25280.   var $len_addr_i_i_i39_i = __stackBase__ + 48;
  25281.   var $p_i_i_i40_i = __stackBase__ + 52;
  25282.   var $this_addr_i150_i_i = __stackBase__ + 56;
  25283.   var $obj_addr_i_i41_i = __stackBase__ + 60;
  25284.   var $this_addr_i_i133_i_i = __stackBase__ + 64;
  25285.   var $this_addr_i134_i_i = __stackBase__ + 68;
  25286.   var $this_addr_i_i117_i_i = __stackBase__ + 72;
  25287.   var $this_addr_i118_i_i = __stackBase__ + 76;
  25288.   var $this_addr_i_i103_i_i = __stackBase__ + 80;
  25289.   var $this_addr_i104_i_i = __stackBase__ + 84;
  25290.   var $this_addr_i_i89_i_i = __stackBase__ + 88;
  25291.   var $this_addr_i90_i_i = __stackBase__ + 92;
  25292.   var $this_addr_i_i75_i_i = __stackBase__ + 96;
  25293.   var $this_addr_i76_i_i = __stackBase__ + 100;
  25294.   var $this_addr_i_i59_i_i = __stackBase__ + 104;
  25295.   var $this_addr_i60_i_i = __stackBase__ + 108;
  25296.   var $this_addr_i_i45_i_i = __stackBase__ + 112;
  25297.   var $this_addr_i46_i_i = __stackBase__ + 116;
  25298.   var $this_addr_i_i31_i_i = __stackBase__ + 120;
  25299.   var $this_addr_i32_i_i = __stackBase__ + 124;
  25300.   var $this_addr_i_i17_i_i = __stackBase__ + 128;
  25301.   var $this_addr_i18_i_i = __stackBase__ + 132;
  25302.   var $this_addr_i_i3_i_i = __stackBase__ + 136;
  25303.   var $this_addr_i4_i_i = __stackBase__ + 140;
  25304.   var $this_addr_i_i_i42_i = __stackBase__ + 144;
  25305.   var $this_addr_i_i43_i = __stackBase__ + 148;
  25306.   var $retval_i_i1 = __stackBase__ + 152;
  25307.   var $this_addr_i45_i = __stackBase__ + 153;
  25308.   var $c_addr_i46_i = __stackBase__ + 157;
  25309.   var $this_addr_i_i_i7_i = __stackBase__ + 161;
  25310.   var $base_addr_i_i_i8_i = __stackBase__ + 165;
  25311.   var $len_addr_i_i_i9_i = __stackBase__ + 169;
  25312.   var $p_i_i_i10_i = __stackBase__ + 173;
  25313.   var $this_addr_i_i11_i = __stackBase__ + 177;
  25314.   var $obj_addr_i_i12_i = __stackBase__ + 181;
  25315.   var $this_addr_i14_i = __stackBase__ + 185;
  25316.   var $c_addr_i15_i = __stackBase__ + 189;
  25317.   var $this_addr_i_i2_i_i = __stackBase__ + 193;
  25318.   var $base_addr_i_i_i_i = __stackBase__ + 197;
  25319.   var $len_addr_i_i_i_i = __stackBase__ + 201;
  25320.   var $p_i_i_i_i = __stackBase__ + 205;
  25321.   var $this_addr_i3_i_i = __stackBase__ + 209;
  25322.   var $obj_addr_i_i_i = __stackBase__ + 213;
  25323.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 217;
  25324.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 221;
  25325.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 225;
  25326.   var $p_i_i_i_i_i_i = __stackBase__ + 229;
  25327.   var $this_addr_i2_i_i_i_i = __stackBase__ + 233;
  25328.   var $obj_addr_i_i_i_i_i = __stackBase__ + 237;
  25329.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 241;
  25330.   var $this_addr_i_i_i_i_i = __stackBase__ + 245;
  25331.   var $this_addr_i_i_i_i = __stackBase__ + 249;
  25332.   var $c_addr_i_i_i_i = __stackBase__ + 253;
  25333.   var $retval_i_i_i = __stackBase__ + 257;
  25334.   var $this_addr_i_i_i2 = __stackBase__ + 258;
  25335.   var $c_addr_i_i_i = __stackBase__ + 262;
  25336.   var $this_addr_i_i4 = __stackBase__ + 266;
  25337.   var $c_addr_i_i = __stackBase__ + 270;
  25338.   var $retval_i5 = __stackBase__ + 274;
  25339.   var $this_addr_i6 = __stackBase__ + 275;
  25340.   var $c_addr_i7 = __stackBase__ + 279;
  25341.   var $tag_addr_i = __stackBase__ + 283;
  25342.   var $this_addr_i_i_i = __stackBase__ + 287;
  25343.   var $i_addr_i_i_i = __stackBase__ + 291;
  25344.   var $this_addr_i1_i = __stackBase__ + 293;
  25345.   var $i_addr_i_i = __stackBase__ + 297;
  25346.   var $retval_i_i = __stackBase__ + 299;
  25347.   var $this_addr_i_i = __stackBase__ + 300;
  25348.   var $base_addr_i_i = __stackBase__ + 304;
  25349.   var $len_addr_i_i = __stackBase__ + 308;
  25350.   var $p_i_i = __stackBase__ + 312;
  25351.   var $retval_i = __stackBase__ + 316;
  25352.   var $this_addr_i = __stackBase__ + 317;
  25353.   var $c_addr_i = __stackBase__ + 321;
  25354.   var $retval;
  25355.   var $c_addr;
  25356.   var $base_addr;
  25357.   var $user_data_addr;
  25358.   var $offset;
  25359.   $c_addr = $c;
  25360.   $base_addr = $base;
  25361.   $user_data_addr = $user_data;
  25362.   var $this1 = $this;
  25363.   HEAP[$this_addr_i34] = $c_addr;
  25364.   HEAP[$obj_addr_i] = $this1;
  25365.   var $4 = HEAP[$obj_addr_i];
  25366.   HEAP[$this_addr_i_i30] = HEAP[$this_addr_i34];
  25367.   HEAP[$base_addr_i_i31] = $4;
  25368.   HEAP[$len_addr_i_i32] = 2;
  25369.   var $this1_i_i36 = HEAP[$this_addr_i_i30];
  25370.   HEAP[$p_i_i33] = HEAP[$base_addr_i_i31];
  25371.   do {
  25372.     if (HEAP[$this1_i_i36 + 4 | 0] >>> 0 <= HEAP[$p_i_i33] >>> 0) {
  25373.       if (!(HEAP[$p_i_i33] >>> 0 <= HEAP[$this1_i_i36 + 8 | 0] >>> 0)) {
  25374.         var $17 = 0;
  25375.         break;
  25376.       }
  25377.       var $17 = (HEAP[$this1_i_i36 + 8 | 0] - HEAP[$p_i_i33] | 0) >>> 0 >= HEAP[$len_addr_i_i32] >>> 0;
  25378.     } else {
  25379.       var $17 = 0;
  25380.     }
  25381.   } while (0);
  25382.   var $17;
  25383.   if (!($17 & 1)) {
  25384.     $retval = 0;
  25385.     var $325 = $retval;
  25386.     STACKTOP = __stackBase__;
  25387.     return $325;
  25388.   }
  25389.   HEAP[$this_addr_i22] = $this1;
  25390.   HEAP[$this_addr_i_i21] = HEAP[$this_addr_i22] | 0;
  25391.   var $this1_i_i24 = HEAP[$this_addr_i_i21];
  25392.   $offset = ((HEAP[$this1_i_i24 | 0] & 255) << 8) + (HEAP[$this1_i_i24 + 1 | 0] & 255) & 65535;
  25393.   if (($offset | 0) == 0) {
  25394.     $retval = 1;
  25395.     var $325 = $retval;
  25396.     STACKTOP = __stackBase__;
  25397.     return $325;
  25398.   }
  25399.   HEAP[$P_addr_i] = $base_addr;
  25400.   HEAP[$offset_addr_i] = $offset;
  25401.   HEAP[$this_addr_i6] = HEAP[$P_addr_i] + HEAP[$offset_addr_i] | 0;
  25402.   HEAP[$c_addr_i7] = $c_addr;
  25403.   HEAP[$tag_addr_i] = $user_data_addr;
  25404.   var $this1_i8 = HEAP[$this_addr_i6];
  25405.   do {
  25406.     if ((HEAP[$tag_addr_i] | 0) == 1936292453) {
  25407.       var $52 = HEAP[$c_addr_i7];
  25408.       HEAP[$this_addr_i45_i] = $this1_i8 | 0;
  25409.       HEAP[$c_addr_i46_i] = $52;
  25410.       var $this1_i47_i = HEAP[$this_addr_i45_i];
  25411.       HEAP[$this_addr_i150_i_i] = HEAP[$c_addr_i46_i];
  25412.       HEAP[$obj_addr_i_i41_i] = $this1_i47_i;
  25413.       var $60 = HEAP[$obj_addr_i_i41_i];
  25414.       HEAP[$this_addr_i_i149_i_i] = HEAP[$this_addr_i150_i_i];
  25415.       HEAP[$base_addr_i_i_i38_i] = $60;
  25416.       HEAP[$len_addr_i_i_i39_i] = 10;
  25417.       var $this1_i_i152_i_i = HEAP[$this_addr_i_i149_i_i];
  25418.       HEAP[$p_i_i_i40_i] = HEAP[$base_addr_i_i_i38_i];
  25419.       do {
  25420.         if (HEAP[$this1_i_i152_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i40_i] >>> 0) {
  25421.           if (!(HEAP[$p_i_i_i40_i] >>> 0 <= HEAP[$this1_i_i152_i_i + 8 | 0] >>> 0)) {
  25422.             var $73 = 0;
  25423.             break;
  25424.           }
  25425.           var $73 = (HEAP[$this1_i_i152_i_i + 8 | 0] - HEAP[$p_i_i_i40_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i39_i] >>> 0;
  25426.         } else {
  25427.           var $73 = 0;
  25428.         }
  25429.       } while (0);
  25430.       var $73;
  25431.       L1022 : do {
  25432.         if ($73 & 1) {
  25433.           HEAP[$this_addr_i134_i_i] = $this1_i47_i | 0;
  25434.           HEAP[$this_addr_i_i133_i_i] = HEAP[$this_addr_i134_i_i] | 0;
  25435.           var $this1_i_i137_i_i = HEAP[$this_addr_i_i133_i_i];
  25436.           if ((((HEAP[$this1_i_i137_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i137_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 == 0) {
  25437.             HEAP[$retval_i_i1] = 0;
  25438.             break;
  25439.           }
  25440.           HEAP[$this_addr_i118_i_i] = $this1_i47_i + 2 | 0;
  25441.           HEAP[$this_addr_i_i117_i_i] = HEAP[$this_addr_i118_i_i] | 0;
  25442.           var $this1_i_i121_i_i = HEAP[$this_addr_i_i117_i_i];
  25443.           do {
  25444.             if ((((HEAP[$this1_i_i121_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i121_i_i + 1 | 0] & 255) & 65535 | 0) == 0) {
  25445.               HEAP[$this_addr_i104_i_i] = $this1_i47_i + 4 | 0;
  25446.               HEAP[$this_addr_i_i103_i_i] = HEAP[$this_addr_i104_i_i] | 0;
  25447.               var $this1_i_i107_i_i = HEAP[$this_addr_i_i103_i_i];
  25448.               if ((((HEAP[$this1_i_i107_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i107_i_i + 1 | 0] & 255) & 65535 | 0) != 0) {
  25449.                 break;
  25450.               }
  25451.               HEAP[$this_addr_i90_i_i] = $this1_i47_i + 6 | 0;
  25452.               HEAP[$this_addr_i_i89_i_i] = HEAP[$this_addr_i90_i_i] | 0;
  25453.               var $this1_i_i93_i_i = HEAP[$this_addr_i_i89_i_i];
  25454.               if ((((HEAP[$this1_i_i93_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i93_i_i + 1 | 0] & 255) & 65535 | 0) != 0) {
  25455.                 break;
  25456.               }
  25457.               HEAP[$this_addr_i76_i_i] = $this1_i47_i + 8 | 0;
  25458.               HEAP[$this_addr_i_i75_i_i] = HEAP[$this_addr_i76_i_i] | 0;
  25459.               var $this1_i_i79_i_i = HEAP[$this_addr_i_i75_i_i];
  25460.               if ((((HEAP[$this1_i_i79_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i79_i_i + 1 | 0] & 255) & 65535 | 0) != 0) {
  25461.                 break;
  25462.               }
  25463.               HEAP[$retval_i_i1] = 1;
  25464.               break L1022;
  25465.             }
  25466.           } while (0);
  25467.           HEAP[$this_addr_i60_i_i] = $this1_i47_i | 0;
  25468.           HEAP[$this_addr_i_i59_i_i] = HEAP[$this_addr_i60_i_i] | 0;
  25469.           var $this1_i_i63_i_i = HEAP[$this_addr_i_i59_i_i];
  25470.           var $conv24_i_i = ((HEAP[$this1_i_i63_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i63_i_i + 1 | 0] & 255) & 65535;
  25471.           HEAP[$this_addr_i46_i_i] = $this1_i47_i + 6 | 0;
  25472.           HEAP[$this_addr_i_i45_i_i] = HEAP[$this_addr_i46_i_i] | 0;
  25473.           var $this1_i_i49_i_i = HEAP[$this_addr_i_i45_i_i];
  25474.           do {
  25475.             if (($conv24_i_i | 0) >= (((HEAP[$this1_i_i49_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i49_i_i + 1 | 0] & 255) & 65535 | 0)) {
  25476.               HEAP[$this_addr_i32_i_i] = $this1_i47_i | 0;
  25477.               HEAP[$this_addr_i_i31_i_i] = HEAP[$this_addr_i32_i_i] | 0;
  25478.               var $this1_i_i35_i_i = HEAP[$this_addr_i_i31_i_i];
  25479.               var $conv31_i_i = ((HEAP[$this1_i_i35_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i35_i_i + 1 | 0] & 255) & 65535;
  25480.               HEAP[$this_addr_i18_i_i] = $this1_i47_i + 8 | 0;
  25481.               HEAP[$this_addr_i_i17_i_i] = HEAP[$this_addr_i18_i_i] | 0;
  25482.               var $this1_i_i21_i_i = HEAP[$this_addr_i_i17_i_i];
  25483.               if (($conv31_i_i | 0) > (((HEAP[$this1_i_i21_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i_i + 1 | 0] & 255) & 65535 | 0)) {
  25484.                 break;
  25485.               }
  25486.               HEAP[$this_addr_i4_i_i] = $this1_i47_i + 4 | 0;
  25487.               HEAP[$this_addr_i_i3_i_i] = HEAP[$this_addr_i4_i_i] | 0;
  25488.               var $this1_i_i7_i_i = HEAP[$this_addr_i_i3_i_i];
  25489.               if ((((HEAP[$this1_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i + 1 | 0] & 255) & 65535 | 0) < 256) {
  25490.                 break;
  25491.               }
  25492.               HEAP[$this_addr_i_i43_i] = $this1_i47_i + 4 | 0;
  25493.               HEAP[$this_addr_i_i_i42_i] = HEAP[$this_addr_i_i43_i] | 0;
  25494.               var $this1_i_i_i63_i = HEAP[$this_addr_i_i_i42_i];
  25495.               if ((((HEAP[$this1_i_i_i63_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i63_i + 1 | 0] & 255) & 65535 | 0) > 32767) {
  25496.                 break;
  25497.               }
  25498.               HEAP[$retval_i_i1] = 1;
  25499.               break L1022;
  25500.             }
  25501.           } while (0);
  25502.           HEAP[$retval_i_i1] = 0;
  25503.         } else {
  25504.           HEAP[$retval_i_i1] = 0;
  25505.         }
  25506.       } while (0);
  25507.       var $tobool_i36_i = HEAP[$retval_i_i1] & 1;
  25508.       HEAP[$retval_i5] = $tobool_i36_i;
  25509.       var $276 = $tobool_i36_i;
  25510.     } else {
  25511.       if ((HEAP[$tag_addr_i] & -65536 | 0) == 1936916480) {
  25512.         var $158 = HEAP[$c_addr_i7];
  25513.         HEAP[$this_addr_i14_i] = $this1_i8 | 0;
  25514.         HEAP[$c_addr_i15_i] = $158;
  25515.         var $this1_i16_i = HEAP[$this_addr_i14_i];
  25516.         HEAP[$this_addr_i_i11_i] = HEAP[$c_addr_i15_i];
  25517.         HEAP[$obj_addr_i_i12_i] = $this1_i16_i;
  25518.         var $165 = HEAP[$obj_addr_i_i12_i];
  25519.         HEAP[$this_addr_i_i_i7_i] = HEAP[$this_addr_i_i11_i];
  25520.         HEAP[$base_addr_i_i_i8_i] = $165;
  25521.         HEAP[$len_addr_i_i_i9_i] = 4;
  25522.         var $this1_i_i_i18_i = HEAP[$this_addr_i_i_i7_i];
  25523.         HEAP[$p_i_i_i10_i] = HEAP[$base_addr_i_i_i8_i];
  25524.         do {
  25525.           if (HEAP[$this1_i_i_i18_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i10_i] >>> 0) {
  25526.             if (!(HEAP[$p_i_i_i10_i] >>> 0 <= HEAP[$this1_i_i_i18_i + 8 | 0] >>> 0)) {
  25527.               var $178 = 0;
  25528.               break;
  25529.             }
  25530.             var $178 = (HEAP[$this1_i_i_i18_i + 8 | 0] - HEAP[$p_i_i_i10_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i9_i] >>> 0;
  25531.           } else {
  25532.             var $178 = 0;
  25533.           }
  25534.         } while (0);
  25535.         var $178;
  25536.         var $tobool_i5_i = $178 & 1 & 1 & 1;
  25537.         HEAP[$retval_i5] = $tobool_i5_i;
  25538.         var $276 = $tobool_i5_i;
  25539.         break;
  25540.       }
  25541.       if ((HEAP[$tag_addr_i] & -65536 | 0) != 1668677632) {
  25542.         var $tobool_i_i = 1;
  25543.         HEAP[$retval_i5] = $tobool_i_i;
  25544.         var $276 = $tobool_i_i;
  25545.         break;
  25546.       }
  25547.       var $191 = HEAP[$c_addr_i7];
  25548.       HEAP[$this_addr_i_i4] = $this1_i8 | 0;
  25549.       HEAP[$c_addr_i_i] = $191;
  25550.       var $this1_i_i15 = HEAP[$this_addr_i_i4];
  25551.       HEAP[$this_addr_i3_i_i] = HEAP[$c_addr_i_i];
  25552.       HEAP[$obj_addr_i_i_i] = $this1_i_i15;
  25553.       var $198 = HEAP[$obj_addr_i_i_i];
  25554.       HEAP[$this_addr_i_i2_i_i] = HEAP[$this_addr_i3_i_i];
  25555.       HEAP[$base_addr_i_i_i_i] = $198;
  25556.       HEAP[$len_addr_i_i_i_i] = 14;
  25557.       var $this1_i_i5_i_i = HEAP[$this_addr_i_i2_i_i];
  25558.       HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  25559.       do {
  25560.         if (HEAP[$this1_i_i5_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  25561.           if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i5_i_i + 8 | 0] >>> 0)) {
  25562.             var $211 = 0;
  25563.             break;
  25564.           }
  25565.           var $211 = (HEAP[$this1_i_i5_i_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  25566.         } else {
  25567.           var $211 = 0;
  25568.         }
  25569.       } while (0);
  25570.       var $211;
  25571.       if ($211 & 1) {
  25572.         var $220 = HEAP[$c_addr_i_i];
  25573.         HEAP[$this_addr_i_i_i2] = $this1_i_i15 + 12 | 0;
  25574.         HEAP[$c_addr_i_i_i] = $220;
  25575.         var $224 = HEAP[$c_addr_i_i_i];
  25576.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i2];
  25577.         HEAP[$c_addr_i_i_i_i] = $224;
  25578.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  25579.         HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  25580.         HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i_i;
  25581.         var $231 = HEAP[$obj_addr_i_i_i_i_i];
  25582.         HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  25583.         HEAP[$base_addr_i_i_i_i_i_i] = $231;
  25584.         HEAP[$len_addr_i_i_i_i_i_i] = 2;
  25585.         var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  25586.         HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  25587.         do {
  25588.           if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i] >>> 0) {
  25589.             if (!(HEAP[$p_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  25590.               var $244 = 0;
  25591.               break;
  25592.             }
  25593.             var $244 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i] >>> 0;
  25594.           } else {
  25595.             var $244 = 0;
  25596.           }
  25597.         } while (0);
  25598.         var $244;
  25599.         if ($244 & 1) {
  25600.           var $252 = HEAP[$c_addr_i_i_i_i];
  25601.           HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i_i | 0;
  25602.           HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  25603.           var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  25604.           var $260 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($252, $this1_i_i_i_i, 3, ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  25605.         } else {
  25606.           var $260 = 0;
  25607.         }
  25608.         var $260;
  25609.         if ($260 & 1) {
  25610.           HEAP[$retval_i_i_i] = 1;
  25611.         } else {
  25612.           HEAP[$retval_i_i_i] = 0;
  25613.         }
  25614.         var $270 = HEAP[$retval_i_i_i];
  25615.       } else {
  25616.         var $270 = 0;
  25617.       }
  25618.       var $270;
  25619.       var $tobool_i2_i = $270 & 1 & 1;
  25620.       HEAP[$retval_i5] = $tobool_i2_i;
  25621.       var $276 = $tobool_i2_i;
  25622.     }
  25623.   } while (0);
  25624.   var $276;
  25625.   if ($276) {
  25626.     var $323 = 1;
  25627.   } else {
  25628.     HEAP[$this_addr_i] = $this1;
  25629.     HEAP[$c_addr_i] = $c_addr;
  25630.     var $this1_i = HEAP[$this_addr_i];
  25631.     HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  25632.     HEAP[$base_addr_i_i] = $this1_i;
  25633.     HEAP[$len_addr_i_i] = 2;
  25634.     var $this1_i_i = HEAP[$this_addr_i_i];
  25635.     do {
  25636.       if (HEAP[$this1_i_i + 16 | 0] >>> 0 >= 100) {
  25637.         HEAP[$retval_i_i] = 0;
  25638.         label = 825;
  25639.         break;
  25640.       } else {
  25641.         HEAP[$p_i_i] = HEAP[$base_addr_i_i];
  25642.         var $edit_count2_i_i = $this1_i_i + 16 | 0;
  25643.         HEAP[$edit_count2_i_i] = HEAP[$edit_count2_i_i] + 1 | 0;
  25644.         var $tobool_i_i_i = HEAP[$this1_i_i + 12 | 0] & 1 & 1;
  25645.         HEAP[$retval_i_i] = $tobool_i_i_i;
  25646.         if (!$tobool_i_i_i) {
  25647.           label = 825;
  25648.           break;
  25649.         }
  25650.         HEAP[$this_addr_i1_i] = $this1_i;
  25651.         HEAP[$i_addr_i_i] = 0;
  25652.         var $310 = HEAP[$i_addr_i_i];
  25653.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  25654.         HEAP[$i_addr_i_i_i] = $310;
  25655.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  25656.         HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  25657.         HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  25658.         HEAP[$retval_i] = 1;
  25659.         break;
  25660.       }
  25661.     } while (0);
  25662.     if (label == 825) {
  25663.       HEAP[$retval_i] = 0;
  25664.     }
  25665.     var $323 = HEAP[$retval_i];
  25666.   }
  25667.   var $323;
  25668.   $retval = $323 & 1;
  25669.   var $325 = $retval;
  25670.   STACKTOP = __stackBase__;
  25671.   return $325;
  25672. }
  25673. function __ZN2OT4GSUB8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  25674.   var label = 0;
  25675.   var __stackBase__ = STACKTOP;
  25676.   STACKTOP = STACKTOP + 576 | 0;
  25677.   var $X_addr_i = __stackBase__;
  25678.   var $P_addr_i_i = __stackBase__ + 4;
  25679.   var $offset_addr_i_i = __stackBase__ + 8;
  25680.   var $this_addr_i_i31_i = __stackBase__ + 12;
  25681.   var $this_addr_i32_i = __stackBase__ + 16;
  25682.   var $this_addr_i_i19_i = __stackBase__ + 20;
  25683.   var $base_addr_i_i20_i = __stackBase__ + 24;
  25684.   var $len_addr_i_i21_i = __stackBase__ + 28;
  25685.   var $p_i_i22_i = __stackBase__ + 32;
  25686.   var $this_addr_i23_i = __stackBase__ + 36;
  25687.   var $obj_addr_i_i = __stackBase__ + 40;
  25688.   var $this_addr_i_i45_i_i_i = __stackBase__ + 44;
  25689.   var $this_addr_i46_i_i_i = __stackBase__ + 48;
  25690.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 52;
  25691.   var $base_addr_i_i_i5_i_i_i = __stackBase__ + 56;
  25692.   var $len_addr_i_i_i6_i_i_i = __stackBase__ + 60;
  25693.   var $p_i_i_i7_i_i_i = __stackBase__ + 64;
  25694.   var $this_addr_i2_i_i_i_i = __stackBase__ + 68;
  25695.   var $obj_addr_i_i8_i_i_i = __stackBase__ + 72;
  25696.   var $this_addr_i_i_i9_i_i_i = __stackBase__ + 76;
  25697.   var $this_addr_i_i10_i_i_i = __stackBase__ + 80;
  25698.   var $this_addr_i12_i_i_i = __stackBase__ + 84;
  25699.   var $c_addr_i13_i_i_i = __stackBase__ + 88;
  25700.   var $P_addr_i_i_i_i_i = __stackBase__ + 92;
  25701.   var $offset_addr_i_i_i_i_i = __stackBase__ + 96;
  25702.   var $this_addr_i_i34_i_i_i_i = __stackBase__ + 100;
  25703.   var $this_addr_i35_i_i_i_i = __stackBase__ + 104;
  25704.   var $this_addr_i_i22_i_i_i_i = __stackBase__ + 108;
  25705.   var $base_addr_i_i23_i_i_i_i = __stackBase__ + 112;
  25706.   var $len_addr_i_i24_i_i_i_i = __stackBase__ + 116;
  25707.   var $p_i_i25_i_i_i_i = __stackBase__ + 120;
  25708.   var $this_addr_i26_i_i_i_i = __stackBase__ + 124;
  25709.   var $obj_addr_i_i_i_i_i = __stackBase__ + 128;
  25710.   var $this_addr_i_i_i116_i_i_i_i_i = __stackBase__ + 132;
  25711.   var $this_addr_i_i117_i_i_i_i_i = __stackBase__ + 136;
  25712.   var $this_addr_i118_i_i_i_i_i = __stackBase__ + 140;
  25713.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 144;
  25714.   var $this_addr_i_i1_i_i_i_i_i_i_i = __stackBase__ + 148;
  25715.   var $base_addr_i_i_i12_i_i_i_i_i_i = __stackBase__ + 152;
  25716.   var $len_addr_i_i_i13_i_i_i_i_i_i = __stackBase__ + 156;
  25717.   var $p_i_i_i14_i_i_i_i_i_i = __stackBase__ + 160;
  25718.   var $this_addr_i2_i_i_i_i_i_i_i = __stackBase__ + 164;
  25719.   var $obj_addr_i_i15_i_i_i_i_i_i = __stackBase__ + 168;
  25720.   var $this_addr_i_i_i16_i_i_i_i_i_i = __stackBase__ + 172;
  25721.   var $this_addr_i_i17_i_i_i_i_i_i = __stackBase__ + 176;
  25722.   var $this_addr_i19_i_i_i_i_i_i = __stackBase__ + 180;
  25723.   var $c_addr_i20_i_i_i_i_i_i = __stackBase__ + 184;
  25724.   var $this_addr_i_i4_i_i_i_i_i_i = __stackBase__ + 188;
  25725.   var $this_addr_i5_i_i_i_i_i_i = __stackBase__ + 192;
  25726.   var $this_addr_i_i11_i_i_i_i_i_i_i = __stackBase__ + 196;
  25727.   var $base_addr_i_i12_i_i_i_i_i_i_i = __stackBase__ + 200;
  25728.   var $len_addr_i_i13_i_i_i_i_i_i_i = __stackBase__ + 204;
  25729.   var $p_i_i14_i_i_i_i_i_i_i = __stackBase__ + 208;
  25730.   var $this_addr_i15_i_i_i_i_i_i_i = __stackBase__ + 212;
  25731.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 216;
  25732.   var $this_addr_i_i3_i_i_i_i_i_i_i = __stackBase__ + 220;
  25733.   var $this_addr_i4_i_i_i_i_i_i_i = __stackBase__ + 224;
  25734.   var $P_addr_i_i_i_i_i_i_i_i = __stackBase__ + 228;
  25735.   var $offset_addr_i_i_i_i_i_i_i_i = __stackBase__ + 232;
  25736.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 236;
  25737.   var $i_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 240;
  25738.   var $this_addr_i1_i_i_i_i_i_i_i_i = __stackBase__ + 242;
  25739.   var $i_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 246;
  25740.   var $retval_i_i_i_i_i_i_i_i_i = __stackBase__ + 248;
  25741.   var $this_addr_i_i_i_i85_i_i_i_i_i = __stackBase__ + 249;
  25742.   var $base_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 253;
  25743.   var $len_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 257;
  25744.   var $p_i_i_i_i_i_i_i_i_i = __stackBase__ + 261;
  25745.   var $retval_i_i_i_i_i_i_i_i = __stackBase__ + 265;
  25746.   var $this_addr_i_i_i86_i_i_i_i_i = __stackBase__ + 266;
  25747.   var $c_addr_i_i_i_i_i_i_i_i = __stackBase__ + 270;
  25748.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 274;
  25749.   var $this_addr_i_i87_i_i_i_i_i = __stackBase__ + 275;
  25750.   var $c_addr_i_i_i_i_i_i_i = __stackBase__ + 279;
  25751.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 283;
  25752.   var $user_data_addr_i_i_i_i_i_i_i = __stackBase__ + 287;
  25753.   var $offset_i_i_i_i_i_i_i = __stackBase__ + 291;
  25754.   var $obj_i_i_i_i_i_i_i = __stackBase__ + 295;
  25755.   var $retval_i88_i_i_i_i_i = __stackBase__ + 299;
  25756.   var $this_addr_i89_i_i_i_i_i = __stackBase__ + 300;
  25757.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 304;
  25758.   var $base_addr_i_i2_i_i_i_i = __stackBase__ + 308;
  25759.   var $user_data_addr_i_i_i_i_i_i = __stackBase__ + 312;
  25760.   var $count_i_i_i_i_i_i = __stackBase__ + 316;
  25761.   var $i_i_i_i_i_i_i = __stackBase__ + 320;
  25762.   var $this_addr_i_i_i66_i_i_i_i_i = __stackBase__ + 324;
  25763.   var $this_addr_i_i67_i_i_i_i_i = __stackBase__ + 328;
  25764.   var $this_addr_i68_i_i_i_i_i = __stackBase__ + 332;
  25765.   var $this_addr_i_i_i_i20_i_i_i_i_i = __stackBase__ + 336;
  25766.   var $this_addr_i_i1_i21_i_i_i_i_i = __stackBase__ + 340;
  25767.   var $this_addr_i2_i22_i_i_i_i_i = __stackBase__ + 344;
  25768.   var $this_addr_i_i_i23_i_i_i_i_i = __stackBase__ + 348;
  25769.   var $this_addr_i_i24_i_i_i_i_i = __stackBase__ + 352;
  25770.   var $retval_i25_i_i_i_i_i = __stackBase__ + 356;
  25771.   var $this_addr_i26_i_i_i_i_i = __stackBase__ + 360;
  25772.   var $this_addr_i_i_i3_i_i_i_i_i = __stackBase__ + 364;
  25773.   var $this_addr_i_i4_i_i_i_i_i = __stackBase__ + 368;
  25774.   var $this_addr_i5_i_i_i_i_i = __stackBase__ + 372;
  25775.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 376;
  25776.   var $this_addr_i_i1_i_i_i_i_i_i = __stackBase__ + 380;
  25777.   var $this_addr_i2_i_i_i_i_i_i = __stackBase__ + 384;
  25778.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 388;
  25779.   var $this_addr_i_i_i3_i_i_i_i = __stackBase__ + 392;
  25780.   var $retval_i_i4_i_i_i_i = __stackBase__ + 396;
  25781.   var $this_addr_i_i5_i_i_i_i = __stackBase__ + 400;
  25782.   var $retval_i6_i_i_i_i = __stackBase__ + 404;
  25783.   var $this_addr_i7_i_i_i_i = __stackBase__ + 405;
  25784.   var $c_addr_i8_i_i_i_i = __stackBase__ + 409;
  25785.   var $list_i_i_i_i_i = __stackBase__ + 413;
  25786.   var $type_i_i_i_i_i = __stackBase__ + 417;
  25787.   var $count_i_i_i_i_i = __stackBase__ + 421;
  25788.   var $i_i_i_i_i_i = __stackBase__ + 425;
  25789.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 429;
  25790.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 433;
  25791.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 435;
  25792.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 439;
  25793.   var $retval_i_i_i_i_i_i = __stackBase__ + 441;
  25794.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 442;
  25795.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 446;
  25796.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 450;
  25797.   var $p_i_i_i_i_i_i = __stackBase__ + 454;
  25798.   var $retval_i_i_i_i_i = __stackBase__ + 458;
  25799.   var $this_addr_i_i_i_i_i = __stackBase__ + 459;
  25800.   var $c_addr_i_i_i_i_i = __stackBase__ + 463;
  25801.   var $retval_i_i_i_i = __stackBase__ + 467;
  25802.   var $this_addr_i_i_i1_i = __stackBase__ + 468;
  25803.   var $c_addr_i_i_i_i = __stackBase__ + 472;
  25804.   var $base_addr_i_i_i_i = __stackBase__ + 476;
  25805.   var $offset_i_i_i_i = __stackBase__ + 480;
  25806.   var $obj_i_i_i_i = __stackBase__ + 484;
  25807.   var $retval_i_i3_i = __stackBase__ + 488;
  25808.   var $this_addr_i_i4_i = __stackBase__ + 489;
  25809.   var $c_addr_i_i_i = __stackBase__ + 493;
  25810.   var $base_addr_i_i5_i = __stackBase__ + 497;
  25811.   var $count_i_i_i = __stackBase__ + 501;
  25812.   var $i_i_i_i = __stackBase__ + 505;
  25813.   var $this_addr_i6_i = __stackBase__ + 509;
  25814.   var $c_addr_i7_i = __stackBase__ + 513;
  25815.   var $this_addr_i_i_i_i = __stackBase__ + 517;
  25816.   var $i_addr_i_i_i_i = __stackBase__ + 521;
  25817.   var $this_addr_i1_i_i = __stackBase__ + 523;
  25818.   var $i_addr_i_i_i = __stackBase__ + 527;
  25819.   var $retval_i_i_i = __stackBase__ + 529;
  25820.   var $this_addr_i_i_i = __stackBase__ + 530;
  25821.   var $base_addr_i_i_i = __stackBase__ + 534;
  25822.   var $len_addr_i_i_i = __stackBase__ + 538;
  25823.   var $p_i_i_i = __stackBase__ + 542;
  25824.   var $retval_i_i = __stackBase__ + 546;
  25825.   var $this_addr_i_i = __stackBase__ + 547;
  25826.   var $c_addr_i_i = __stackBase__ + 551;
  25827.   var $retval_i = __stackBase__ + 555;
  25828.   var $this_addr_i = __stackBase__ + 556;
  25829.   var $c_addr_i = __stackBase__ + 560;
  25830.   var $base_addr_i = __stackBase__ + 564;
  25831.   var $offset_i = __stackBase__ + 568;
  25832.   var $obj_i = __stackBase__ + 572;
  25833.   var $retval;
  25834.   var $c_addr;
  25835.   $c_addr = $c;
  25836.   var $this1 = $this;
  25837.   if (!__ZN2OT8GSUBGPOS8sanitizeEPNS_21hb_sanitize_context_tE($this1, $c_addr)) {
  25838.     $retval = 0;
  25839.     var $584 = $retval;
  25840.     STACKTOP = __stackBase__;
  25841.     return $584;
  25842.   }
  25843.   HEAP[$X_addr_i] = $this1 + 8 | 0;
  25844.   HEAP[$this_addr_i] = HEAP[$X_addr_i];
  25845.   HEAP[$c_addr_i] = $c_addr;
  25846.   HEAP[$base_addr_i] = $this1;
  25847.   var $this1_i = HEAP[$this_addr_i];
  25848.   HEAP[$this_addr_i23_i] = HEAP[$c_addr_i];
  25849.   HEAP[$obj_addr_i_i] = $this1_i;
  25850.   var $22 = HEAP[$obj_addr_i_i];
  25851.   HEAP[$this_addr_i_i19_i] = HEAP[$this_addr_i23_i];
  25852.   HEAP[$base_addr_i_i20_i] = $22;
  25853.   HEAP[$len_addr_i_i21_i] = 2;
  25854.   var $this1_i_i25_i = HEAP[$this_addr_i_i19_i];
  25855.   HEAP[$p_i_i22_i] = HEAP[$base_addr_i_i20_i];
  25856.   do {
  25857.     if (HEAP[$this1_i_i25_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i] >>> 0) {
  25858.       if (!(HEAP[$p_i_i22_i] >>> 0 <= HEAP[$this1_i_i25_i + 8 | 0] >>> 0)) {
  25859.         var $35 = 0;
  25860.         break;
  25861.       }
  25862.       var $35 = (HEAP[$this1_i_i25_i + 8 | 0] - HEAP[$p_i_i22_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i] >>> 0;
  25863.     } else {
  25864.       var $35 = 0;
  25865.     }
  25866.   } while (0);
  25867.   var $35;
  25868.   do {
  25869.     if ($35 & 1) {
  25870.       HEAP[$this_addr_i32_i] = $this1_i;
  25871.       HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  25872.       var $this1_i_i34_i = HEAP[$this_addr_i_i31_i];
  25873.       HEAP[$offset_i] = ((HEAP[$this1_i_i34_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i + 1 | 0] & 255) & 65535;
  25874.       if ((HEAP[$offset_i] | 0) == 0) {
  25875.         HEAP[$retval_i] = 1;
  25876.         break;
  25877.       }
  25878.       var $54 = HEAP[$offset_i];
  25879.       HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  25880.       HEAP[$offset_addr_i_i] = $54;
  25881.       HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  25882.       var $63 = HEAP[$c_addr_i];
  25883.       HEAP[$this_addr_i6_i] = HEAP[$obj_i];
  25884.       HEAP[$c_addr_i7_i] = $63;
  25885.       var $this1_i8_i = HEAP[$this_addr_i6_i];
  25886.       var $68 = HEAP[$c_addr_i7_i];
  25887.       HEAP[$this_addr_i_i4_i] = $this1_i8_i;
  25888.       HEAP[$c_addr_i_i_i] = $68;
  25889.       HEAP[$base_addr_i_i5_i] = $this1_i8_i;
  25890.       var $this1_i_i9_i = HEAP[$this_addr_i_i4_i];
  25891.       var $76 = HEAP[$c_addr_i_i_i];
  25892.       HEAP[$this_addr_i12_i_i_i] = $this1_i_i9_i;
  25893.       HEAP[$c_addr_i13_i_i_i] = $76;
  25894.       var $this1_i14_i_i_i = HEAP[$this_addr_i12_i_i_i];
  25895.       HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i13_i_i_i];
  25896.       HEAP[$obj_addr_i_i8_i_i_i] = $this1_i14_i_i_i;
  25897.       var $83 = HEAP[$obj_addr_i_i8_i_i_i];
  25898.       HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  25899.       HEAP[$base_addr_i_i_i5_i_i_i] = $83;
  25900.       HEAP[$len_addr_i_i_i6_i_i_i] = 2;
  25901.       var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  25902.       HEAP[$p_i_i_i7_i_i_i] = HEAP[$base_addr_i_i_i5_i_i_i];
  25903.       do {
  25904.         if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i_i_i] >>> 0) {
  25905.           if (!(HEAP[$p_i_i_i7_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  25906.             var $96 = 0;
  25907.             break;
  25908.           }
  25909.           var $96 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i7_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i_i_i] >>> 0;
  25910.         } else {
  25911.           var $96 = 0;
  25912.         }
  25913.       } while (0);
  25914.       var $96;
  25915.       if ($96 & 1) {
  25916.         var $104 = HEAP[$c_addr_i13_i_i_i];
  25917.         HEAP[$this_addr_i_i10_i_i_i] = $this1_i14_i_i_i | 0;
  25918.         HEAP[$this_addr_i_i_i9_i_i_i] = HEAP[$this_addr_i_i10_i_i_i] | 0;
  25919.         var $this1_i_i_i30_i_i_i = HEAP[$this_addr_i_i_i9_i_i_i];
  25920.         var $112 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($104, $this1_i14_i_i_i, 2, ((HEAP[$this1_i_i_i30_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i30_i_i_i + 1 | 0] & 255) & 65535);
  25921.       } else {
  25922.         var $112 = 0;
  25923.       }
  25924.       var $112;
  25925.       L1104 : do {
  25926.         if ($112 & 1) {
  25927.           HEAP[$this_addr_i46_i_i_i] = $this1_i_i9_i | 0;
  25928.           HEAP[$this_addr_i_i45_i_i_i] = HEAP[$this_addr_i46_i_i_i] | 0;
  25929.           var $this1_i_i48_i_i_i = HEAP[$this_addr_i_i45_i_i_i];
  25930.           HEAP[$count_i_i_i] = ((HEAP[$this1_i_i48_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i48_i_i_i + 1 | 0] & 255) & 65535;
  25931.           HEAP[$i_i_i_i] = 0;
  25932.           L1107 : do {
  25933.             if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  25934.               var $array_i_i_i = $this1_i_i9_i + 2 | 0;
  25935.               while (1) {
  25936.                 var $351 = HEAP[$c_addr_i_i_i];
  25937.                 var $352 = HEAP[$base_addr_i_i5_i];
  25938.                 HEAP[$this_addr_i_i_i1_i] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  25939.                 HEAP[$c_addr_i_i_i_i] = $351;
  25940.                 HEAP[$base_addr_i_i_i_i] = $352;
  25941.                 var $this1_i_i_i13_i = HEAP[$this_addr_i_i_i1_i];
  25942.                 HEAP[$this_addr_i26_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  25943.                 HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  25944.                 var $355 = HEAP[$obj_addr_i_i_i_i_i];
  25945.                 HEAP[$this_addr_i_i22_i_i_i_i] = HEAP[$this_addr_i26_i_i_i_i];
  25946.                 HEAP[$base_addr_i_i23_i_i_i_i] = $355;
  25947.                 HEAP[$len_addr_i_i24_i_i_i_i] = 2;
  25948.                 var $this1_i_i28_i_i_i_i = HEAP[$this_addr_i_i22_i_i_i_i];
  25949.                 HEAP[$p_i_i25_i_i_i_i] = HEAP[$base_addr_i_i23_i_i_i_i];
  25950.                 do {
  25951.                   if (HEAP[$this1_i_i28_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i25_i_i_i_i] >>> 0) {
  25952.                     if (!(HEAP[$p_i_i25_i_i_i_i] >>> 0 <= HEAP[$this1_i_i28_i_i_i_i + 8 | 0] >>> 0)) {
  25953.                       var $364 = 0;
  25954.                       break;
  25955.                     }
  25956.                     var $364 = (HEAP[$this1_i_i28_i_i_i_i + 8 | 0] - HEAP[$p_i_i25_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i24_i_i_i_i] >>> 0;
  25957.                   } else {
  25958.                     var $364 = 0;
  25959.                   }
  25960.                 } while (0);
  25961.                 var $364;
  25962.                 do {
  25963.                   if ($364 & 1) {
  25964.                     HEAP[$this_addr_i35_i_i_i_i] = $this1_i_i_i13_i;
  25965.                     HEAP[$this_addr_i_i34_i_i_i_i] = HEAP[$this_addr_i35_i_i_i_i] | 0;
  25966.                     var $this1_i_i37_i_i_i_i = HEAP[$this_addr_i_i34_i_i_i_i];
  25967.                     HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i37_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i37_i_i_i_i + 1 | 0] & 255) & 65535;
  25968.                     if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  25969.                       var $tobool_i42_i_i_i_i = 1;
  25970.                       HEAP[$retval_i_i_i_i] = $tobool_i42_i_i_i_i;
  25971.                       var $516 = $tobool_i42_i_i_i_i;
  25972.                       break;
  25973.                     }
  25974.                     var $373 = HEAP[$offset_i_i_i_i];
  25975.                     HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  25976.                     HEAP[$offset_addr_i_i_i_i_i] = $373;
  25977.                     HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  25978.                     var $378 = HEAP[$c_addr_i_i_i_i];
  25979.                     HEAP[$this_addr_i7_i_i_i_i] = HEAP[$obj_i_i_i_i];
  25980.                     HEAP[$c_addr_i8_i_i_i_i] = $378;
  25981.                     var $this1_i9_i_i_i_i = HEAP[$this_addr_i7_i_i_i_i];
  25982.                     L1121 : do {
  25983.                       if (__ZN2OT6Lookup8sanitizeEPNS_21hb_sanitize_context_tE($this1_i9_i_i_i_i, HEAP[$c_addr_i8_i_i_i_i])) {
  25984.                         HEAP[$X_addr_i_i_i_i_i_i] = $this1_i9_i_i_i_i + 4 | 0;
  25985.                         HEAP[$list_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  25986.                         var $386 = HEAP[$list_i_i_i_i_i];
  25987.                         var $387 = HEAP[$c_addr_i8_i_i_i_i];
  25988.                         HEAP[$this_addr_i118_i_i_i_i_i] = $this1_i9_i_i_i_i;
  25989.                         HEAP[$this_addr_i_i117_i_i_i_i_i] = HEAP[$this_addr_i118_i_i_i_i_i] | 0;
  25990.                         HEAP[$this_addr_i_i_i116_i_i_i_i_i] = HEAP[$this_addr_i_i117_i_i_i_i_i] | 0;
  25991.                         var $this1_i_i_i123_i_i_i_i_i = HEAP[$this_addr_i_i_i116_i_i_i_i_i];
  25992.                         var $conv_i133_i_i_i_i_i = ((HEAP[$this1_i_i_i123_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i123_i_i_i_i_i + 1 | 0] & 255) & 65535;
  25993.                         HEAP[$this_addr_i89_i_i_i_i_i] = $386;
  25994.                         HEAP[$c_addr_i_i_i_i_i_i] = $387;
  25995.                         HEAP[$base_addr_i_i2_i_i_i_i] = $this1_i9_i_i_i_i;
  25996.                         HEAP[$user_data_addr_i_i_i_i_i_i] = $conv_i133_i_i_i_i_i;
  25997.                         var $this1_i90_i_i_i_i_i = HEAP[$this_addr_i89_i_i_i_i_i];
  25998.                         var $392 = HEAP[$c_addr_i_i_i_i_i_i];
  25999.                         HEAP[$this_addr_i19_i_i_i_i_i_i] = $this1_i90_i_i_i_i_i;
  26000.                         HEAP[$c_addr_i20_i_i_i_i_i_i] = $392;
  26001.                         var $this1_i21_i_i_i_i_i_i = HEAP[$this_addr_i19_i_i_i_i_i_i];
  26002.                         HEAP[$this_addr_i2_i_i_i_i_i_i_i] = HEAP[$c_addr_i20_i_i_i_i_i_i];
  26003.                         HEAP[$obj_addr_i_i15_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i;
  26004.                         var $395 = HEAP[$obj_addr_i_i15_i_i_i_i_i_i];
  26005.                         HEAP[$this_addr_i_i1_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i];
  26006.                         HEAP[$base_addr_i_i_i12_i_i_i_i_i_i] = $395;
  26007.                         HEAP[$len_addr_i_i_i13_i_i_i_i_i_i] = 2;
  26008.                         var $this1_i_i4_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i];
  26009.                         HEAP[$p_i_i_i14_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i_i_i_i];
  26010.                         do {
  26011.                           if (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i_i_i_i] >>> 0) {
  26012.                             if (!(HEAP[$p_i_i_i14_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  26013.                               var $404 = 0;
  26014.                               break;
  26015.                             }
  26016.                             var $404 = (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i_i_i_i] >>> 0;
  26017.                           } else {
  26018.                             var $404 = 0;
  26019.                           }
  26020.                         } while (0);
  26021.                         var $404;
  26022.                         if ($404 & 1) {
  26023.                           var $406 = HEAP[$c_addr_i20_i_i_i_i_i_i];
  26024.                           HEAP[$this_addr_i_i17_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i | 0;
  26025.                           HEAP[$this_addr_i_i_i16_i_i_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i_i_i] | 0;
  26026.                           var $this1_i_i_i37_i_i_i_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i_i_i_i];
  26027.                           var $410 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($406, $this1_i21_i_i_i_i_i_i, 2, ((HEAP[$this1_i_i_i37_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  26028.                         } else {
  26029.                           var $410 = 0;
  26030.                         }
  26031.                         var $410;
  26032.                         L1131 : do {
  26033.                           if ($410 & 1) {
  26034.                             HEAP[$this_addr_i5_i_i_i_i_i_i] = $this1_i90_i_i_i_i_i | 0;
  26035.                             HEAP[$this_addr_i_i4_i_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i_i] | 0;
  26036.                             var $this1_i_i7_i_i_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i_i_i];
  26037.                             HEAP[$count_i_i_i_i_i_i] = ((HEAP[$this1_i_i7_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  26038.                             HEAP[$i_i_i_i_i_i_i] = 0;
  26039.                             L1134 : do {
  26040.                               if (HEAP[$i_i_i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i_i_i] >>> 0) {
  26041.                                 var $array_i_i_i_i_i_i = $this1_i90_i_i_i_i_i + 2 | 0;
  26042.                                 while (1) {
  26043.                                   var $419 = HEAP[$c_addr_i_i_i_i_i_i];
  26044.                                   var $420 = HEAP[$base_addr_i_i2_i_i_i_i];
  26045.                                   var $421 = HEAP[$user_data_addr_i_i_i_i_i_i];
  26046.                                   HEAP[$this_addr_i_i87_i_i_i_i_i] = (HEAP[$i_i_i_i_i_i_i] << 1) + $array_i_i_i_i_i_i | 0;
  26047.                                   HEAP[$c_addr_i_i_i_i_i_i_i] = $419;
  26048.                                   HEAP[$base_addr_i_i_i_i_i_i_i] = $420;
  26049.                                   HEAP[$user_data_addr_i_i_i_i_i_i_i] = $421;
  26050.                                   var $this1_i_i102_i_i_i_i_i = HEAP[$this_addr_i_i87_i_i_i_i_i];
  26051.                                   HEAP[$this_addr_i15_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  26052.                                   HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i_i102_i_i_i_i_i;
  26053.                                   var $424 = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  26054.                                   HEAP[$this_addr_i_i11_i_i_i_i_i_i_i] = HEAP[$this_addr_i15_i_i_i_i_i_i_i];
  26055.                                   HEAP[$base_addr_i_i12_i_i_i_i_i_i_i] = $424;
  26056.                                   HEAP[$len_addr_i_i13_i_i_i_i_i_i_i] = 2;
  26057.                                   var $this1_i_i17_i_i_i_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i_i_i_i];
  26058.                                   HEAP[$p_i_i14_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i12_i_i_i_i_i_i_i];
  26059.                                   do {
  26060.                                     if (HEAP[$this1_i_i17_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i14_i_i_i_i_i_i_i] >>> 0) {
  26061.                                       if (!(HEAP[$p_i_i14_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i17_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  26062.                                         var $433 = 0;
  26063.                                         break;
  26064.                                       }
  26065.                                       var $433 = (HEAP[$this1_i_i17_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i14_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i13_i_i_i_i_i_i_i] >>> 0;
  26066.                                     } else {
  26067.                                       var $433 = 0;
  26068.                                     }
  26069.                                   } while (0);
  26070.                                   var $433;
  26071.                                   do {
  26072.                                     if ($433 & 1) {
  26073.                                       HEAP[$this_addr_i4_i_i_i_i_i_i_i] = $this1_i_i102_i_i_i_i_i;
  26074.                                       HEAP[$this_addr_i_i3_i_i_i_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i_i_i_i] | 0;
  26075.                                       var $this1_i_i6_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i];
  26076.                                       HEAP[$offset_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i6_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  26077.                                       if ((HEAP[$offset_i_i_i_i_i_i_i] | 0) == 0) {
  26078.                                         var $tobool_i2_i_i_i_i_i_i_i = 1;
  26079.                                         HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i2_i_i_i_i_i_i_i;
  26080.                                         var $464 = $tobool_i2_i_i_i_i_i_i_i;
  26081.                                         break;
  26082.                                       }
  26083.                                       var $442 = HEAP[$offset_i_i_i_i_i_i_i];
  26084.                                       HEAP[$P_addr_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  26085.                                       HEAP[$offset_addr_i_i_i_i_i_i_i_i] = $442;
  26086.                                       HEAP[$obj_i_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i_i] | 0;
  26087.                                       if (__ZN2OT19SubstLookupSubTable8sanitizeEPNS_21hb_sanitize_context_tEj(HEAP[$obj_i_i_i_i_i_i_i], HEAP[$c_addr_i_i_i_i_i_i_i], HEAP[$user_data_addr_i_i_i_i_i_i_i])) {
  26088.                                         var $462 = 1;
  26089.                                       } else {
  26090.                                         var $449 = HEAP[$c_addr_i_i_i_i_i_i_i];
  26091.                                         HEAP[$this_addr_i_i_i86_i_i_i_i_i] = $this1_i_i102_i_i_i_i_i;
  26092.                                         HEAP[$c_addr_i_i_i_i_i_i_i_i] = $449;
  26093.                                         var $this1_i_i_i113_i_i_i_i_i = HEAP[$this_addr_i_i_i86_i_i_i_i_i];
  26094.                                         HEAP[$this_addr_i_i_i_i85_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i];
  26095.                                         HEAP[$base_addr_i_i_i_i_i_i_i_i_i] = $this1_i_i_i113_i_i_i_i_i;
  26096.                                         HEAP[$len_addr_i_i_i_i_i_i_i_i_i] = 2;
  26097.                                         var $this1_i_i_i_i114_i_i_i_i_i = HEAP[$this_addr_i_i_i_i85_i_i_i_i_i];
  26098.                                         do {
  26099.                                           if (HEAP[$this1_i_i_i_i114_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  26100.                                             HEAP[$retval_i_i_i_i_i_i_i_i_i] = 0;
  26101.                                             label = 880;
  26102.                                             break;
  26103.                                           } else {
  26104.                                             HEAP[$p_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i];
  26105.                                             var $edit_count2_i_i_i_i_i_i_i_i_i = $this1_i_i_i_i114_i_i_i_i_i + 16 | 0;
  26106.                                             HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] + 1 | 0;
  26107.                                             var $tobool_i_i_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i114_i_i_i_i_i + 12 | 0] & 1 & 1;
  26108.                                             HEAP[$retval_i_i_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i_i;
  26109.                                             if (!$tobool_i_i_i_i_i_i_i_i_i_i) {
  26110.                                               label = 880;
  26111.                                               break;
  26112.                                             }
  26113.                                             HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] = $this1_i_i_i113_i_i_i_i_i;
  26114.                                             HEAP[$i_addr_i_i_i_i_i_i_i_i_i] = 0;
  26115.                                             var $458 = HEAP[$i_addr_i_i_i_i_i_i_i_i_i];
  26116.                                             HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] | 0;
  26117.                                             HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] = $458;
  26118.                                             var $this1_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i];
  26119.                                             HEAP[$this1_i_i_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  26120.                                             HEAP[$this1_i_i_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 255;
  26121.                                             HEAP[$retval_i_i_i_i_i_i_i_i] = 1;
  26122.                                             break;
  26123.                                           }
  26124.                                         } while (0);
  26125.                                         if (label == 880) {
  26126.                                           label = 0;
  26127.                                           HEAP[$retval_i_i_i_i_i_i_i_i] = 0;
  26128.                                         }
  26129.                                         var $462 = HEAP[$retval_i_i_i_i_i_i_i_i];
  26130.                                       }
  26131.                                       var $462;
  26132.                                       var $tobool_i_i_i_i_i_i_i_i = $462 & 1;
  26133.                                       HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i;
  26134.                                       var $464 = $tobool_i_i_i_i_i_i_i_i;
  26135.                                     } else {
  26136.                                       var $tobool_i9_i_i_i_i_i_i_i = 0;
  26137.                                       HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i9_i_i_i_i_i_i_i;
  26138.                                       var $464 = $tobool_i9_i_i_i_i_i_i_i;
  26139.                                     }
  26140.                                   } while (0);
  26141.                                   var $464;
  26142.                                   if (!$464) {
  26143.                                     break;
  26144.                                   }
  26145.                                   HEAP[$i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i] + 1 | 0;
  26146.                                   if (HEAP[$i_i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i_i] >>> 0) {
  26147.                                     break L1134;
  26148.                                   }
  26149.                                 }
  26150.                                 var $tobool_i2_i_i_i_i_i_i = 0;
  26151.                                 HEAP[$retval_i88_i_i_i_i_i] = $tobool_i2_i_i_i_i_i_i;
  26152.                                 var $470 = $tobool_i2_i_i_i_i_i_i;
  26153.                                 break L1131;
  26154.                               }
  26155.                             } while (0);
  26156.                             var $tobool_i_i_i16_i_i_i_i = 1;
  26157.                             HEAP[$retval_i88_i_i_i_i_i] = $tobool_i_i_i16_i_i_i_i;
  26158.                             var $470 = $tobool_i_i_i16_i_i_i_i;
  26159.                           } else {
  26160.                             var $tobool_i10_i_i_i_i_i_i = 0;
  26161.                             HEAP[$retval_i88_i_i_i_i_i] = $tobool_i10_i_i_i_i_i_i;
  26162.                             var $470 = $tobool_i10_i_i_i_i_i_i;
  26163.                           }
  26164.                         } while (0);
  26165.                         var $470;
  26166.                         if (!$470) {
  26167.                           var $tobool_i84_i_i_i_i_i = 0;
  26168.                           HEAP[$retval_i6_i_i_i_i] = $tobool_i84_i_i_i_i_i;
  26169.                           var $500 = $tobool_i84_i_i_i_i_i;
  26170.                           break;
  26171.                         }
  26172.                         HEAP[$this_addr_i68_i_i_i_i_i] = $this1_i9_i_i_i_i;
  26173.                         HEAP[$this_addr_i_i67_i_i_i_i_i] = HEAP[$this_addr_i68_i_i_i_i_i] | 0;
  26174.                         HEAP[$this_addr_i_i_i66_i_i_i_i_i] = HEAP[$this_addr_i_i67_i_i_i_i_i] | 0;
  26175.                         var $this1_i_i_i72_i_i_i_i_i = HEAP[$this_addr_i_i_i66_i_i_i_i_i];
  26176.                         L1166 : do {
  26177.                           if ((((HEAP[$this1_i_i_i72_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i72_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 7) {
  26178.                             var $475 = __ZNK2OT11SubstLookup12get_subtableEj($this1_i9_i_i_i_i, 0) | 0;
  26179.                             HEAP[$this_addr_i26_i_i_i_i_i] = $475;
  26180.                             var $this1_i27_i_i_i_i_i = HEAP[$this_addr_i26_i_i_i_i_i];
  26181.                             HEAP[$this_addr_i_i24_i_i_i_i_i] = $this1_i27_i_i_i_i_i | 0;
  26182.                             HEAP[$this_addr_i_i_i23_i_i_i_i_i] = HEAP[$this_addr_i_i24_i_i_i_i_i] | 0;
  26183.                             var $this1_i_i_i32_i_i_i_i_i = HEAP[$this_addr_i_i_i23_i_i_i_i_i];
  26184.                             if ((((HEAP[$this1_i_i_i32_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i32_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  26185.                               HEAP[$this_addr_i2_i22_i_i_i_i_i] = $this1_i27_i_i_i_i_i | 0;
  26186.                               HEAP[$this_addr_i_i1_i21_i_i_i_i_i] = HEAP[$this_addr_i2_i22_i_i_i_i_i] + 2 | 0;
  26187.                               HEAP[$this_addr_i_i_i_i20_i_i_i_i_i] = HEAP[$this_addr_i_i1_i21_i_i_i_i_i] | 0;
  26188.                               var $this1_i_i_i_i50_i_i_i_i_i = HEAP[$this_addr_i_i_i_i20_i_i_i_i_i];
  26189.                               HEAP[$retval_i25_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i50_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i50_i_i_i_i_i + 1 | 0] & 255) & 65535;
  26190.                             } else {
  26191.                               HEAP[$retval_i25_i_i_i_i_i] = 0;
  26192.                             }
  26193.                             HEAP[$type_i_i_i_i_i] = HEAP[$retval_i25_i_i_i_i_i];
  26194.                             HEAP[$this_addr_i5_i_i_i_i_i] = $this1_i9_i_i_i_i;
  26195.                             HEAP[$this_addr_i_i4_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i] + 4 | 0;
  26196.                             HEAP[$this_addr_i_i_i3_i_i_i_i_i] = HEAP[$this_addr_i_i4_i_i_i_i_i] | 0;
  26197.                             var $this1_i_i_i9_i_i_i_i_i = HEAP[$this_addr_i_i_i3_i_i_i_i_i];
  26198.                             HEAP[$count_i_i_i_i_i] = ((HEAP[$this1_i_i_i9_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i9_i_i_i_i_i + 1 | 0] & 255) & 65535;
  26199.                             HEAP[$i_i_i_i_i_i] = 1;
  26200.                             if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i] >>> 0) {
  26201.                               break;
  26202.                             }
  26203.                             while (1) {
  26204.                               var $488 = __ZNK2OT11SubstLookup12get_subtableEj($this1_i9_i_i_i_i, HEAP[$i_i_i_i_i_i]) | 0;
  26205.                               HEAP[$this_addr_i_i5_i_i_i_i] = $488;
  26206.                               var $this1_i_i17_i_i_i_i = HEAP[$this_addr_i_i5_i_i_i_i];
  26207.                               HEAP[$this_addr_i_i_i3_i_i_i_i] = $this1_i_i17_i_i_i_i | 0;
  26208.                               HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i3_i_i_i_i] | 0;
  26209.                               var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  26210.                               if ((((HEAP[$this1_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  26211.                                 HEAP[$this_addr_i2_i_i_i_i_i_i] = $this1_i_i17_i_i_i_i | 0;
  26212.                                 HEAP[$this_addr_i_i1_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i] + 2 | 0;
  26213.                                 HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i1_i_i_i_i_i_i] | 0;
  26214.                                 var $this1_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i];
  26215.                                 HEAP[$retval_i_i4_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  26216.                               } else {
  26217.                                 HEAP[$retval_i_i4_i_i_i_i] = 0;
  26218.                               }
  26219.                               if ((HEAP[$retval_i_i4_i_i_i_i] | 0) != (HEAP[$type_i_i_i_i_i] | 0)) {
  26220.                                 break;
  26221.                               }
  26222.                               HEAP[$i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i] + 1 | 0;
  26223.                               if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i] >>> 0) {
  26224.                                 break L1166;
  26225.                               }
  26226.                             }
  26227.                             var $tobool_i2_i_i_i_i_i = 0;
  26228.                             HEAP[$retval_i6_i_i_i_i] = $tobool_i2_i_i_i_i_i;
  26229.                             var $500 = $tobool_i2_i_i_i_i_i;
  26230.                             break L1121;
  26231.                           }
  26232.                         } while (0);
  26233.                         var $tobool_i_i_i_i_i_i = 1;
  26234.                         HEAP[$retval_i6_i_i_i_i] = $tobool_i_i_i_i_i_i;
  26235.                         var $500 = $tobool_i_i_i_i_i_i;
  26236.                       } else {
  26237.                         var $tobool_i65_i_i_i_i_i = 0;
  26238.                         HEAP[$retval_i6_i_i_i_i] = $tobool_i65_i_i_i_i_i;
  26239.                         var $500 = $tobool_i65_i_i_i_i_i;
  26240.                       }
  26241.                     } while (0);
  26242.                     var $500;
  26243.                     if ($500) {
  26244.                       var $514 = 1;
  26245.                     } else {
  26246.                       var $501 = HEAP[$c_addr_i_i_i_i];
  26247.                       HEAP[$this_addr_i_i_i_i_i] = $this1_i_i_i13_i;
  26248.                       HEAP[$c_addr_i_i_i_i_i] = $501;
  26249.                       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  26250.                       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  26251.                       HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  26252.                       HEAP[$len_addr_i_i_i_i_i_i] = 2;
  26253.                       var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  26254.                       do {
  26255.                         if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  26256.                           HEAP[$retval_i_i_i_i_i_i] = 0;
  26257.                           label = 906;
  26258.                           break;
  26259.                         } else {
  26260.                           HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  26261.                           var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  26262.                           HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  26263.                           var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  26264.                           HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  26265.                           if (!$tobool_i_i_i_i_i_i_i) {
  26266.                             label = 906;
  26267.                             break;
  26268.                           }
  26269.                           HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i;
  26270.                           HEAP[$i_addr_i_i_i_i_i_i] = 0;
  26271.                           var $510 = HEAP[$i_addr_i_i_i_i_i_i];
  26272.                           HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  26273.                           HEAP[$i_addr_i_i_i_i_i_i_i] = $510;
  26274.                           var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  26275.                           HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  26276.                           HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  26277.                           HEAP[$retval_i_i_i_i_i] = 1;
  26278.                           break;
  26279.                         }
  26280.                       } while (0);
  26281.                       if (label == 906) {
  26282.                         label = 0;
  26283.                         HEAP[$retval_i_i_i_i_i] = 0;
  26284.                       }
  26285.                       var $514 = HEAP[$retval_i_i_i_i_i];
  26286.                     }
  26287.                     var $514;
  26288.                     var $tobool_i_i_i_i_i = $514 & 1;
  26289.                     HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i;
  26290.                     var $516 = $tobool_i_i_i_i_i;
  26291.                   } else {
  26292.                     var $tobool_i33_i_i_i_i = 0;
  26293.                     HEAP[$retval_i_i_i_i] = $tobool_i33_i_i_i_i;
  26294.                     var $516 = $tobool_i33_i_i_i_i;
  26295.                   }
  26296.                 } while (0);
  26297.                 var $516;
  26298.                 if (!$516) {
  26299.                   break;
  26300.                 }
  26301.                 HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  26302.                 if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  26303.                   break L1107;
  26304.                 }
  26305.               }
  26306.               HEAP[$retval_i_i3_i] = 0;
  26307.               break L1104;
  26308.             }
  26309.           } while (0);
  26310.           HEAP[$retval_i_i3_i] = 1;
  26311.         } else {
  26312.           HEAP[$retval_i_i3_i] = 0;
  26313.         }
  26314.       } while (0);
  26315.       if (HEAP[$retval_i_i3_i] & 1) {
  26316.         var $574 = 1;
  26317.       } else {
  26318.         var $532 = HEAP[$c_addr_i];
  26319.         HEAP[$this_addr_i_i] = $this1_i;
  26320.         HEAP[$c_addr_i_i] = $532;
  26321.         var $this1_i_i = HEAP[$this_addr_i_i];
  26322.         HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  26323.         HEAP[$base_addr_i_i_i] = $this1_i_i;
  26324.         HEAP[$len_addr_i_i_i] = 2;
  26325.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  26326.         do {
  26327.           if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  26328.             HEAP[$retval_i_i_i] = 0;
  26329.             label = 918;
  26330.             break;
  26331.           } else {
  26332.             HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  26333.             var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  26334.             HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  26335.             var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  26336.             HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  26337.             if (!$tobool_i_i_i_i) {
  26338.               label = 918;
  26339.               break;
  26340.             }
  26341.             HEAP[$this_addr_i1_i_i] = $this1_i_i;
  26342.             HEAP[$i_addr_i_i_i] = 0;
  26343.             var $561 = HEAP[$i_addr_i_i_i];
  26344.             HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  26345.             HEAP[$i_addr_i_i_i_i] = $561;
  26346.             var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  26347.             HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  26348.             HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  26349.             HEAP[$retval_i_i] = 1;
  26350.             break;
  26351.           }
  26352.         } while (0);
  26353.         if (label == 918) {
  26354.           HEAP[$retval_i_i] = 0;
  26355.         }
  26356.         var $574 = HEAP[$retval_i_i];
  26357.       }
  26358.       var $574;
  26359.       HEAP[$retval_i] = $574 & 1;
  26360.     } else {
  26361.       HEAP[$retval_i] = 0;
  26362.     }
  26363.   } while (0);
  26364.   $retval = HEAP[$retval_i] & 1;
  26365.   var $584 = $retval;
  26366.   STACKTOP = __stackBase__;
  26367.   return $584;
  26368. }
  26369. function __ZN2OT19SubstLookupSubTable8sanitizeEPNS_21hb_sanitize_context_tEj($this, $c, $lookup_type) {
  26370.   var label = 0;
  26371.   var __stackBase__ = STACKTOP;
  26372.   STACKTOP = STACKTOP + 1133 | 0;
  26373.   var $this_addr_i_i_i_i29_i = __stackBase__;
  26374.   var $this_addr_i_i1_i30_i = __stackBase__ + 4;
  26375.   var $this_addr_i2_i31_i = __stackBase__ + 8;
  26376.   var $this_addr_i_i_i32_i = __stackBase__ + 12;
  26377.   var $this_addr_i_i33_i = __stackBase__ + 16;
  26378.   var $retval_i34_i = __stackBase__ + 20;
  26379.   var $this_addr_i35_i = __stackBase__ + 24;
  26380.   var $P_addr_i_i = __stackBase__ + 28;
  26381.   var $offset_addr_i_i = __stackBase__ + 32;
  26382.   var $this_addr_i_i_i_i1_i = __stackBase__ + 36;
  26383.   var $this_addr_i_i1_i_i = __stackBase__ + 40;
  26384.   var $this_addr_i2_i_i = __stackBase__ + 44;
  26385.   var $this_addr_i_i_i2_i = __stackBase__ + 48;
  26386.   var $this_addr_i_i3_i = __stackBase__ + 52;
  26387.   var $retval_i4_i = __stackBase__ + 56;
  26388.   var $this_addr_i5_i460 = __stackBase__ + 60;
  26389.   var $this_addr_i_i_i10_i_i = __stackBase__ + 64;
  26390.   var $base_addr_i_i_i11_i_i = __stackBase__ + 68;
  26391.   var $len_addr_i_i_i12_i_i = __stackBase__ + 72;
  26392.   var $p_i_i_i13_i_i = __stackBase__ + 76;
  26393.   var $this_addr_i_i14_i_i = __stackBase__ + 80;
  26394.   var $obj_addr_i_i15_i_i = __stackBase__ + 84;
  26395.   var $this_addr_i17_i_i = __stackBase__ + 88;
  26396.   var $c_addr_i18_i_i = __stackBase__ + 92;
  26397.   var $this_addr_i_i3_i_i = __stackBase__ + 96;
  26398.   var $this_addr_i4_i_i = __stackBase__ + 100;
  26399.   var $this_addr_i_i_i_i_i463 = __stackBase__ + 104;
  26400.   var $base_addr_i_i_i_i_i464 = __stackBase__ + 108;
  26401.   var $len_addr_i_i_i_i_i465 = __stackBase__ + 112;
  26402.   var $p_i_i_i_i_i466 = __stackBase__ + 116;
  26403.   var $this_addr_i_i_i_i467 = __stackBase__ + 120;
  26404.   var $obj_addr_i_i_i_i468 = __stackBase__ + 124;
  26405.   var $this_addr_i_i_i470 = __stackBase__ + 128;
  26406.   var $c_addr_i_i_i471 = __stackBase__ + 132;
  26407.   var $retval_i_i474 = __stackBase__ + 136;
  26408.   var $this_addr_i_i475 = __stackBase__ + 137;
  26409.   var $c_addr_i_i476 = __stackBase__ + 141;
  26410.   var $retval_i477 = __stackBase__ + 145;
  26411.   var $this_addr_i478 = __stackBase__ + 146;
  26412.   var $c_addr_i479 = __stackBase__ + 150;
  26413.   var $offset_i = __stackBase__ + 155;
  26414.   var $this_addr_i_i13_i380 = __stackBase__ + 159;
  26415.   var $this_addr_i14_i = __stackBase__ + 163;
  26416.   var $this_addr_i_i_i3_i = __stackBase__ + 167;
  26417.   var $base_addr_i_i_i_i382 = __stackBase__ + 171;
  26418.   var $len_addr_i_i_i_i383 = __stackBase__ + 175;
  26419.   var $p_i_i_i_i384 = __stackBase__ + 179;
  26420.   var $this_addr_i_i_i385 = __stackBase__ + 183;
  26421.   var $obj_addr_i_i_i386 = __stackBase__ + 187;
  26422.   var $this_addr_i5_i = __stackBase__ + 191;
  26423.   var $c_addr_i6_i = __stackBase__ + 195;
  26424.   var $P_addr_i_i5_i_i = __stackBase__ + 199;
  26425.   var $offset_addr_i_i6_i_i = __stackBase__ + 203;
  26426.   var $this_addr_i_i_i_i7_i_i = __stackBase__ + 207;
  26427.   var $this_addr_i_i_i8_i_i = __stackBase__ + 211;
  26428.   var $this_addr_i_i9_i_i = __stackBase__ + 215;
  26429.   var $X_addr_i10_i_i = __stackBase__ + 219;
  26430.   var $P_addr_i_i_i_i = __stackBase__ + 223;
  26431.   var $offset_addr_i_i_i_i = __stackBase__ + 227;
  26432.   var $this_addr_i_i_i_i_i_i387 = __stackBase__ + 231;
  26433.   var $this_addr_i_i_i_i_i388 = __stackBase__ + 235;
  26434.   var $this_addr_i_i_i_i389 = __stackBase__ + 239;
  26435.   var $X_addr_i_i_i = __stackBase__ + 243;
  26436.   var $retval_i_i = __stackBase__ + 247;
  26437.   var $this_addr_i_i391 = __stackBase__ + 248;
  26438.   var $c_addr_i_i392 = __stackBase__ + 252;
  26439.   var $lookahead_i_i = __stackBase__ + 256;
  26440.   var $substitute_i_i393 = __stackBase__ + 260;
  26441.   var $retval_i396 = __stackBase__ + 264;
  26442.   var $this_addr_i397 = __stackBase__ + 265;
  26443.   var $c_addr_i398 = __stackBase__ + 269;
  26444.   var $this_addr_i_i20_i166 = __stackBase__ + 273;
  26445.   var $this_addr_i21_i167 = __stackBase__ + 277;
  26446.   var $this_addr_i_i_i4_i170 = __stackBase__ + 281;
  26447.   var $base_addr_i_i_i5_i171 = __stackBase__ + 285;
  26448.   var $len_addr_i_i_i_i172 = __stackBase__ + 289;
  26449.   var $p_i_i_i_i173 = __stackBase__ + 293;
  26450.   var $this_addr_i_i6_i174 = __stackBase__ + 297;
  26451.   var $obj_addr_i_i_i175 = __stackBase__ + 301;
  26452.   var $this_addr_i8_i177 = __stackBase__ + 305;
  26453.   var $c_addr_i9_i178 = __stackBase__ + 309;
  26454.   var $this_addr_i_i45_i_i_i = __stackBase__ + 313;
  26455.   var $this_addr_i46_i_i_i = __stackBase__ + 317;
  26456.   var $this_addr_i_i1_i_i_i_i179 = __stackBase__ + 321;
  26457.   var $base_addr_i_i_i5_i_i_i = __stackBase__ + 325;
  26458.   var $len_addr_i_i_i6_i_i_i = __stackBase__ + 329;
  26459.   var $p_i_i_i7_i_i_i = __stackBase__ + 333;
  26460.   var $this_addr_i2_i_i_i_i180 = __stackBase__ + 337;
  26461.   var $obj_addr_i_i8_i_i_i = __stackBase__ + 341;
  26462.   var $this_addr_i_i_i9_i_i_i = __stackBase__ + 345;
  26463.   var $this_addr_i_i10_i_i_i = __stackBase__ + 349;
  26464.   var $this_addr_i12_i_i_i = __stackBase__ + 353;
  26465.   var $c_addr_i13_i_i_i = __stackBase__ + 357;
  26466.   var $this_addr_i_i31_i_i_i_i = __stackBase__ + 361;
  26467.   var $this_addr_i32_i_i_i_i = __stackBase__ + 365;
  26468.   var $P_addr_i_i_i_i_i181 = __stackBase__ + 369;
  26469.   var $offset_addr_i_i_i_i_i182 = __stackBase__ + 373;
  26470.   var $this_addr_i_i19_i_i_i_i = __stackBase__ + 377;
  26471.   var $base_addr_i_i20_i_i_i_i = __stackBase__ + 381;
  26472.   var $len_addr_i_i21_i_i_i_i = __stackBase__ + 385;
  26473.   var $p_i_i22_i_i_i_i = __stackBase__ + 389;
  26474.   var $this_addr_i23_i_i_i_i = __stackBase__ + 393;
  26475.   var $obj_addr_i_i_i_i_i183 = __stackBase__ + 397;
  26476.   var $this_addr_i_i1_i_i_i_i_i_i_i = __stackBase__ + 401;
  26477.   var $base_addr_i_i_i12_i_i_i_i_i_i = __stackBase__ + 405;
  26478.   var $len_addr_i_i_i13_i_i_i_i_i_i = __stackBase__ + 409;
  26479.   var $p_i_i_i14_i_i_i_i_i_i = __stackBase__ + 413;
  26480.   var $this_addr_i2_i_i_i_i_i_i_i = __stackBase__ + 417;
  26481.   var $obj_addr_i_i15_i_i_i_i_i_i = __stackBase__ + 421;
  26482.   var $this_addr_i_i_i16_i_i_i_i_i_i = __stackBase__ + 425;
  26483.   var $this_addr_i_i17_i_i_i_i_i_i = __stackBase__ + 429;
  26484.   var $this_addr_i19_i_i_i_i_i_i = __stackBase__ + 433;
  26485.   var $c_addr_i20_i_i_i_i_i_i = __stackBase__ + 437;
  26486.   var $this_addr_i_i4_i_i_i_i_i_i = __stackBase__ + 441;
  26487.   var $this_addr_i5_i_i_i_i_i_i = __stackBase__ + 445;
  26488.   var $this_addr_i_i21_i_i_i_i_i_i_i = __stackBase__ + 449;
  26489.   var $base_addr_i_i22_i_i_i_i_i_i_i = __stackBase__ + 453;
  26490.   var $len_addr_i_i23_i_i_i_i_i_i_i = __stackBase__ + 457;
  26491.   var $p_i_i24_i_i_i_i_i_i_i = __stackBase__ + 461;
  26492.   var $this_addr_i25_i_i_i_i_i_i_i = __stackBase__ + 465;
  26493.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 469;
  26494.   var $this_addr_i_i13_i_i_i_i_i_i_i = __stackBase__ + 473;
  26495.   var $this_addr_i14_i_i_i_i_i_i_i = __stackBase__ + 477;
  26496.   var $P_addr_i_i_i_i_i_i_i_i = __stackBase__ + 481;
  26497.   var $offset_addr_i_i_i_i_i_i_i_i = __stackBase__ + 485;
  26498.   var $this_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 489;
  26499.   var $base_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 493;
  26500.   var $len_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 497;
  26501.   var $p_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 501;
  26502.   var $this_addr_i_i_i1_i_i_i_i_i_i_i = __stackBase__ + 505;
  26503.   var $obj_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 509;
  26504.   var $this_addr_i_i3_i_i_i_i_i_i_i = __stackBase__ + 513;
  26505.   var $c_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 517;
  26506.   var $this_addr_i4_i_i_i_i_i_i_i = __stackBase__ + 521;
  26507.   var $c_addr_i5_i_i_i_i_i_i_i = __stackBase__ + 525;
  26508.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 529;
  26509.   var $i_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 533;
  26510.   var $this_addr_i1_i_i_i_i_i_i_i_i = __stackBase__ + 535;
  26511.   var $i_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 539;
  26512.   var $retval_i_i_i_i_i_i_i_i_i = __stackBase__ + 541;
  26513.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 542;
  26514.   var $base_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 546;
  26515.   var $len_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 550;
  26516.   var $p_i_i_i_i_i_i_i_i_i = __stackBase__ + 554;
  26517.   var $retval_i_i_i_i_i_i_i_i = __stackBase__ + 558;
  26518.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 559;
  26519.   var $c_addr_i_i_i_i_i_i_i_i = __stackBase__ + 563;
  26520.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 567;
  26521.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 568;
  26522.   var $c_addr_i_i_i_i_i_i_i = __stackBase__ + 572;
  26523.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 576;
  26524.   var $offset_i_i_i_i_i_i_i = __stackBase__ + 580;
  26525.   var $obj_i_i_i_i_i_i_i = __stackBase__ + 584;
  26526.   var $retval_i_i3_i_i_i_i = __stackBase__ + 588;
  26527.   var $this_addr_i_i4_i_i_i_i = __stackBase__ + 589;
  26528.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 593;
  26529.   var $base_addr_i_i5_i_i_i_i = __stackBase__ + 597;
  26530.   var $count_i_i_i_i_i_i = __stackBase__ + 601;
  26531.   var $i_i_i_i_i_i_i = __stackBase__ + 605;
  26532.   var $this_addr_i6_i_i_i_i = __stackBase__ + 609;
  26533.   var $c_addr_i7_i_i_i_i = __stackBase__ + 613;
  26534.   var $this_addr_i_i_i_i_i_i_i185 = __stackBase__ + 617;
  26535.   var $i_addr_i_i_i_i_i_i_i186 = __stackBase__ + 621;
  26536.   var $this_addr_i1_i_i_i_i_i187 = __stackBase__ + 623;
  26537.   var $i_addr_i_i_i_i_i_i188 = __stackBase__ + 627;
  26538.   var $retval_i_i_i_i_i_i190 = __stackBase__ + 629;
  26539.   var $this_addr_i_i_i_i_i_i191 = __stackBase__ + 630;
  26540.   var $base_addr_i_i_i_i_i_i192 = __stackBase__ + 634;
  26541.   var $len_addr_i_i_i_i_i_i193 = __stackBase__ + 638;
  26542.   var $p_i_i_i_i_i_i194 = __stackBase__ + 642;
  26543.   var $retval_i_i_i_i_i195 = __stackBase__ + 646;
  26544.   var $this_addr_i_i_i_i_i196 = __stackBase__ + 647;
  26545.   var $c_addr_i_i_i_i_i197 = __stackBase__ + 651;
  26546.   var $retval_i_i_i_i199 = __stackBase__ + 655;
  26547.   var $this_addr_i_i_i_i200 = __stackBase__ + 656;
  26548.   var $c_addr_i_i_i_i201 = __stackBase__ + 660;
  26549.   var $base_addr_i_i_i_i202 = __stackBase__ + 664;
  26550.   var $offset_i_i_i_i203 = __stackBase__ + 668;
  26551.   var $obj_i_i_i_i204 = __stackBase__ + 672;
  26552.   var $retval_i_i_i207 = __stackBase__ + 676;
  26553.   var $this_addr_i_i_i208 = __stackBase__ + 677;
  26554.   var $c_addr_i_i_i209 = __stackBase__ + 681;
  26555.   var $base_addr_i_i_i210 = __stackBase__ + 685;
  26556.   var $count_i_i_i211 = __stackBase__ + 689;
  26557.   var $i_i_i_i212 = __stackBase__ + 693;
  26558.   var $this_addr_i_i214 = __stackBase__ + 697;
  26559.   var $c_addr_i_i215 = __stackBase__ + 701;
  26560.   var $retval_i218 = __stackBase__ + 705;
  26561.   var $this_addr_i219 = __stackBase__ + 706;
  26562.   var $c_addr_i220 = __stackBase__ + 710;
  26563.   var $this_addr_i_i9_i = __stackBase__ + 714;
  26564.   var $this_addr_i10_i = __stackBase__ + 718;
  26565.   var $this_addr_i_i_i_i94 = __stackBase__ + 722;
  26566.   var $base_addr_i_i_i_i95 = __stackBase__ + 726;
  26567.   var $len_addr_i_i_i_i96 = __stackBase__ + 730;
  26568.   var $p_i_i_i_i97 = __stackBase__ + 734;
  26569.   var $this_addr_i_i_i98 = __stackBase__ + 738;
  26570.   var $obj_addr_i_i_i99 = __stackBase__ + 742;
  26571.   var $this_addr_i4_i101 = __stackBase__ + 746;
  26572.   var $c_addr_i5_i102 = __stackBase__ + 750;
  26573.   var $this_addr_i_i104 = __stackBase__ + 754;
  26574.   var $c_addr_i_i105 = __stackBase__ + 758;
  26575.   var $retval_i108 = __stackBase__ + 762;
  26576.   var $this_addr_i109 = __stackBase__ + 763;
  26577.   var $c_addr_i110 = __stackBase__ + 767;
  26578.   var $this_addr_i_i20_i = __stackBase__ + 771;
  26579.   var $this_addr_i21_i = __stackBase__ + 775;
  26580.   var $this_addr_i_i_i4_i = __stackBase__ + 779;
  26581.   var $base_addr_i_i_i5_i = __stackBase__ + 783;
  26582.   var $len_addr_i_i_i_i18 = __stackBase__ + 787;
  26583.   var $p_i_i_i_i19 = __stackBase__ + 791;
  26584.   var $this_addr_i_i6_i = __stackBase__ + 795;
  26585.   var $obj_addr_i_i_i20 = __stackBase__ + 799;
  26586.   var $this_addr_i8_i = __stackBase__ + 803;
  26587.   var $c_addr_i9_i = __stackBase__ + 807;
  26588.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 811;
  26589.   var $base_addr_i_i_i12_i_i_i = __stackBase__ + 815;
  26590.   var $len_addr_i_i_i13_i_i_i = __stackBase__ + 819;
  26591.   var $p_i_i_i14_i_i_i = __stackBase__ + 823;
  26592.   var $this_addr_i2_i_i_i_i = __stackBase__ + 827;
  26593.   var $obj_addr_i_i15_i_i_i = __stackBase__ + 831;
  26594.   var $this_addr_i_i_i16_i_i_i = __stackBase__ + 835;
  26595.   var $this_addr_i_i17_i_i_i = __stackBase__ + 839;
  26596.   var $this_addr_i19_i_i_i = __stackBase__ + 843;
  26597.   var $c_addr_i20_i_i_i = __stackBase__ + 847;
  26598.   var $this_addr_i_i4_i_i_i = __stackBase__ + 851;
  26599.   var $this_addr_i5_i_i_i = __stackBase__ + 855;
  26600.   var $this_addr_i_i14_i_i_i_i = __stackBase__ + 859;
  26601.   var $base_addr_i_i15_i_i_i_i = __stackBase__ + 863;
  26602.   var $len_addr_i_i16_i_i_i_i = __stackBase__ + 867;
  26603.   var $p_i_i17_i_i_i_i = __stackBase__ + 871;
  26604.   var $this_addr_i18_i_i_i_i = __stackBase__ + 875;
  26605.   var $obj_addr_i_i_i_i_i = __stackBase__ + 879;
  26606.   var $this_addr_i_i6_i_i_i_i = __stackBase__ + 883;
  26607.   var $this_addr_i7_i_i_i_i = __stackBase__ + 887;
  26608.   var $P_addr_i_i_i_i_i = __stackBase__ + 891;
  26609.   var $offset_addr_i_i_i_i_i = __stackBase__ + 895;
  26610.   var $this_addr_i1_i_i_i_i = __stackBase__ + 899;
  26611.   var $c_addr_i2_i_i_i_i = __stackBase__ + 903;
  26612.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 907;
  26613.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 911;
  26614.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 913;
  26615.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 917;
  26616.   var $retval_i_i_i_i_i_i = __stackBase__ + 919;
  26617.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 920;
  26618.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 924;
  26619.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 928;
  26620.   var $p_i_i_i_i_i_i = __stackBase__ + 932;
  26621.   var $retval_i_i_i_i_i = __stackBase__ + 936;
  26622.   var $this_addr_i_i_i_i_i22 = __stackBase__ + 937;
  26623.   var $c_addr_i_i_i_i_i = __stackBase__ + 941;
  26624.   var $retval_i_i_i_i = __stackBase__ + 945;
  26625.   var $this_addr_i_i_i_i24 = __stackBase__ + 946;
  26626.   var $c_addr_i_i_i_i = __stackBase__ + 950;
  26627.   var $base_addr_i_i_i_i25 = __stackBase__ + 954;
  26628.   var $offset_i_i_i_i = __stackBase__ + 958;
  26629.   var $obj_i_i_i_i = __stackBase__ + 962;
  26630.   var $retval_i_i_i = __stackBase__ + 966;
  26631.   var $this_addr_i_i_i27 = __stackBase__ + 967;
  26632.   var $c_addr_i_i_i28 = __stackBase__ + 971;
  26633.   var $base_addr_i_i_i29 = __stackBase__ + 975;
  26634.   var $count_i_i_i = __stackBase__ + 979;
  26635.   var $i_i_i_i = __stackBase__ + 983;
  26636.   var $this_addr_i_i31 = __stackBase__ + 987;
  26637.   var $c_addr_i_i32 = __stackBase__ + 991;
  26638.   var $retval_i35 = __stackBase__ + 995;
  26639.   var $this_addr_i36 = __stackBase__ + 996;
  26640.   var $c_addr_i37 = __stackBase__ + 1e3;
  26641.   var $this_addr_i_i27_i = __stackBase__ + 1004;
  26642.   var $this_addr_i28_i = __stackBase__ + 1008;
  26643.   var $this_addr_i_i_i_i_i = __stackBase__ + 1012;
  26644.   var $base_addr_i_i_i_i_i = __stackBase__ + 1016;
  26645.   var $len_addr_i_i_i_i_i = __stackBase__ + 1020;
  26646.   var $p_i_i_i_i_i = __stackBase__ + 1024;
  26647.   var $this_addr_i_i_i12_i = __stackBase__ + 1028;
  26648.   var $obj_addr_i_i_i_i = __stackBase__ + 1032;
  26649.   var $this_addr_i_i13_i = __stackBase__ + 1036;
  26650.   var $c_addr_i_i_i = __stackBase__ + 1040;
  26651.   var $this_addr_i15_i = __stackBase__ + 1044;
  26652.   var $c_addr_i16_i = __stackBase__ + 1048;
  26653.   var $this_addr_i_i_i_i = __stackBase__ + 1052;
  26654.   var $base_addr_i_i_i_i = __stackBase__ + 1056;
  26655.   var $len_addr_i_i_i_i = __stackBase__ + 1060;
  26656.   var $p_i_i_i_i = __stackBase__ + 1064;
  26657.   var $this_addr_i_i_i4 = __stackBase__ + 1068;
  26658.   var $obj_addr_i_i_i = __stackBase__ + 1072;
  26659.   var $this_addr_i4_i = __stackBase__ + 1076;
  26660.   var $c_addr_i5_i = __stackBase__ + 1080;
  26661.   var $this_addr_i_i5 = __stackBase__ + 1084;
  26662.   var $c_addr_i_i = __stackBase__ + 1088;
  26663.   var $retval_i = __stackBase__ + 1092;
  26664.   var $this_addr_i7 = __stackBase__ + 1093;
  26665.   var $c_addr_i8 = __stackBase__ + 1097;
  26666.   var $this_addr_i_i_i = __stackBase__ + 1101;
  26667.   var $base_addr_i_i_i = __stackBase__ + 1105;
  26668.   var $len_addr_i_i_i = __stackBase__ + 1109;
  26669.   var $p_i_i_i = __stackBase__ + 1113;
  26670.   var $this_addr_i_i = __stackBase__ + 1117;
  26671.   var $obj_addr_i_i = __stackBase__ + 1121;
  26672.   var $this_addr_i = __stackBase__ + 1125;
  26673.   var $c_addr_i = __stackBase__ + 1129;
  26674.   var $retval;
  26675.   var $c_addr;
  26676.   var $lookup_type_addr;
  26677.   $c_addr = $c;
  26678.   $lookup_type_addr = $lookup_type;
  26679.   var $this1 = $this;
  26680.   HEAP[$this_addr_i] = $this1 | 0;
  26681.   HEAP[$c_addr_i] = $c_addr;
  26682.   var $this1_i = HEAP[$this_addr_i];
  26683.   HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  26684.   HEAP[$obj_addr_i_i] = $this1_i;
  26685.   var $7 = HEAP[$obj_addr_i_i];
  26686.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  26687.   HEAP[$base_addr_i_i_i] = $7;
  26688.   HEAP[$len_addr_i_i_i] = 2;
  26689.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  26690.   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  26691.   do {
  26692.     if (HEAP[$this1_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i] >>> 0) {
  26693.       if (!(HEAP[$p_i_i_i] >>> 0 <= HEAP[$this1_i_i_i + 8 | 0] >>> 0)) {
  26694.         var $20 = 0;
  26695.         break;
  26696.       }
  26697.       var $20 = (HEAP[$this1_i_i_i + 8 | 0] - HEAP[$p_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i] >>> 0;
  26698.     } else {
  26699.       var $20 = 0;
  26700.     }
  26701.   } while (0);
  26702.   var $20;
  26703.   if (!($20 & 1 & 1)) {
  26704.     $retval = 0;
  26705.     var $1176 = $retval;
  26706.     STACKTOP = __stackBase__;
  26707.     return $1176;
  26708.   }
  26709.   var $32 = $lookup_type_addr;
  26710.   if (($32 | 0) == 1) {
  26711.     HEAP[$this_addr_i7] = $this1 | 0;
  26712.     HEAP[$c_addr_i8] = $c_addr;
  26713.     var $this1_i9 = HEAP[$this_addr_i7];
  26714.     var $37 = HEAP[$c_addr_i8];
  26715.     HEAP[$this_addr_i4_i] = $this1_i9 | 0;
  26716.     HEAP[$c_addr_i5_i] = $37;
  26717.     var $this1_i6_i = HEAP[$this_addr_i4_i];
  26718.     HEAP[$this_addr_i_i_i4] = HEAP[$c_addr_i5_i];
  26719.     HEAP[$obj_addr_i_i_i] = $this1_i6_i;
  26720.     var $44 = HEAP[$obj_addr_i_i_i];
  26721.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i4];
  26722.     HEAP[$base_addr_i_i_i_i] = $44;
  26723.     HEAP[$len_addr_i_i_i_i] = 2;
  26724.     var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  26725.     HEAP[$p_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  26726.     do {
  26727.       if (HEAP[$this1_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i] >>> 0) {
  26728.         if (!(HEAP[$p_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i + 8 | 0] >>> 0)) {
  26729.           var $57 = 0;
  26730.           break;
  26731.         }
  26732.         var $57 = (HEAP[$this1_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i] >>> 0;
  26733.       } else {
  26734.         var $57 = 0;
  26735.       }
  26736.     } while (0);
  26737.     var $57;
  26738.     do {
  26739.       if ($57 & 1 & 1) {
  26740.         HEAP[$this_addr_i28_i] = $this1_i9 | 0;
  26741.         HEAP[$this_addr_i_i27_i] = HEAP[$this_addr_i28_i] | 0;
  26742.         var $this1_i_i30_i = HEAP[$this_addr_i_i27_i];
  26743.         var $conv_i = ((HEAP[$this1_i_i30_i | 0] & 255) << 8) + (HEAP[$this1_i_i30_i + 1 | 0] & 255) & 65535;
  26744.         if (($conv_i | 0) == 1) {
  26745.           var $75 = HEAP[$c_addr_i8];
  26746.           HEAP[$this_addr_i15_i] = $this1_i9 | 0;
  26747.           HEAP[$c_addr_i16_i] = $75;
  26748.           var $this1_i17_i = HEAP[$this_addr_i15_i];
  26749.           if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i17_i + 2 | 0, HEAP[$c_addr_i16_i], $this1_i17_i)) {
  26750.             var $81 = HEAP[$c_addr_i16_i];
  26751.             HEAP[$this_addr_i_i13_i] = $this1_i17_i + 4 | 0;
  26752.             HEAP[$c_addr_i_i_i] = $81;
  26753.             var $this1_i_i20_i = HEAP[$this_addr_i_i13_i];
  26754.             HEAP[$this_addr_i_i_i12_i] = HEAP[$c_addr_i_i_i];
  26755.             HEAP[$obj_addr_i_i_i_i] = $this1_i_i20_i;
  26756.             var $88 = HEAP[$obj_addr_i_i_i_i];
  26757.             HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i12_i];
  26758.             HEAP[$base_addr_i_i_i_i_i] = $88;
  26759.             HEAP[$len_addr_i_i_i_i_i] = 2;
  26760.             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  26761.             HEAP[$p_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  26762.             do {
  26763.               if (HEAP[$this1_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i] >>> 0) {
  26764.                 if (!(HEAP[$p_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i_i + 8 | 0] >>> 0)) {
  26765.                   var $101 = 0;
  26766.                   break;
  26767.                 }
  26768.                 var $101 = (HEAP[$this1_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i] >>> 0;
  26769.               } else {
  26770.                 var $101 = 0;
  26771.               }
  26772.             } while (0);
  26773.             var $101;
  26774.             var $112 = $101 & 1 & 1;
  26775.           } else {
  26776.             var $112 = 0;
  26777.           }
  26778.           var $112;
  26779.           HEAP[$retval_i] = $112 & 1 & 1;
  26780.           break;
  26781.         } else if (($conv_i | 0) == 2) {
  26782.           var $117 = HEAP[$c_addr_i8];
  26783.           HEAP[$this_addr_i_i5] = $this1_i9 | 0;
  26784.           HEAP[$c_addr_i_i] = $117;
  26785.           var $this1_i_i13 = HEAP[$this_addr_i_i5];
  26786.           if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i13 + 2 | 0, HEAP[$c_addr_i_i], $this1_i_i13)) {
  26787.             var $125 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE($this1_i_i13 + 4 | 0, HEAP[$c_addr_i_i]);
  26788.           } else {
  26789.             var $125 = 0;
  26790.           }
  26791.           var $125;
  26792.           HEAP[$retval_i] = $125 & 1 & 1;
  26793.           break;
  26794.         } else {
  26795.           HEAP[$retval_i] = 1;
  26796.           break;
  26797.         }
  26798.       } else {
  26799.         HEAP[$retval_i] = 0;
  26800.       }
  26801.     } while (0);
  26802.     $retval = HEAP[$retval_i] & 1;
  26803.     var $1176 = $retval;
  26804.     STACKTOP = __stackBase__;
  26805.     return $1176;
  26806.   } else if (($32 | 0) == 2) {
  26807.     HEAP[$this_addr_i36] = $this1 | 0;
  26808.     HEAP[$c_addr_i37] = $c_addr;
  26809.     var $this1_i38 = HEAP[$this_addr_i36];
  26810.     var $140 = HEAP[$c_addr_i37];
  26811.     HEAP[$this_addr_i8_i] = $this1_i38 | 0;
  26812.     HEAP[$c_addr_i9_i] = $140;
  26813.     var $this1_i10_i = HEAP[$this_addr_i8_i];
  26814.     HEAP[$this_addr_i_i6_i] = HEAP[$c_addr_i9_i];
  26815.     HEAP[$obj_addr_i_i_i20] = $this1_i10_i;
  26816.     var $147 = HEAP[$obj_addr_i_i_i20];
  26817.     HEAP[$this_addr_i_i_i4_i] = HEAP[$this_addr_i_i6_i];
  26818.     HEAP[$base_addr_i_i_i5_i] = $147;
  26819.     HEAP[$len_addr_i_i_i_i18] = 2;
  26820.     var $this1_i_i_i12_i = HEAP[$this_addr_i_i_i4_i];
  26821.     HEAP[$p_i_i_i_i19] = HEAP[$base_addr_i_i_i5_i];
  26822.     do {
  26823.       if (HEAP[$this1_i_i_i12_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i19] >>> 0) {
  26824.         if (!(HEAP[$p_i_i_i_i19] >>> 0 <= HEAP[$this1_i_i_i12_i + 8 | 0] >>> 0)) {
  26825.           var $160 = 0;
  26826.           break;
  26827.         }
  26828.         var $160 = (HEAP[$this1_i_i_i12_i + 8 | 0] - HEAP[$p_i_i_i_i19] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i18] >>> 0;
  26829.       } else {
  26830.         var $160 = 0;
  26831.       }
  26832.     } while (0);
  26833.     var $160;
  26834.     do {
  26835.       if ($160 & 1 & 1) {
  26836.         HEAP[$this_addr_i21_i] = $this1_i38 | 0;
  26837.         HEAP[$this_addr_i_i20_i] = HEAP[$this_addr_i21_i] | 0;
  26838.         var $this1_i_i23_i = HEAP[$this_addr_i_i20_i];
  26839.         if ((((HEAP[$this1_i_i23_i | 0] & 255) << 8) + (HEAP[$this1_i_i23_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  26840.           HEAP[$retval_i35] = 1;
  26841.           break;
  26842.         }
  26843.         var $178 = HEAP[$c_addr_i37];
  26844.         HEAP[$this_addr_i_i31] = $this1_i38 | 0;
  26845.         HEAP[$c_addr_i_i32] = $178;
  26846.         var $this1_i_i67 = HEAP[$this_addr_i_i31];
  26847.         if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i67 + 2 | 0, HEAP[$c_addr_i_i32], $this1_i_i67)) {
  26848.           var $185 = HEAP[$c_addr_i_i32];
  26849.           HEAP[$this_addr_i_i_i27] = $this1_i_i67 + 4 | 0;
  26850.           HEAP[$c_addr_i_i_i28] = $185;
  26851.           HEAP[$base_addr_i_i_i29] = $this1_i_i67;
  26852.           var $this1_i_i_i71 = HEAP[$this_addr_i_i_i27];
  26853.           var $193 = HEAP[$c_addr_i_i_i28];
  26854.           HEAP[$this_addr_i19_i_i_i] = $this1_i_i_i71;
  26855.           HEAP[$c_addr_i20_i_i_i] = $193;
  26856.           var $this1_i21_i_i_i = HEAP[$this_addr_i19_i_i_i];
  26857.           HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i20_i_i_i];
  26858.           HEAP[$obj_addr_i_i15_i_i_i] = $this1_i21_i_i_i;
  26859.           var $200 = HEAP[$obj_addr_i_i15_i_i_i];
  26860.           HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  26861.           HEAP[$base_addr_i_i_i12_i_i_i] = $200;
  26862.           HEAP[$len_addr_i_i_i13_i_i_i] = 2;
  26863.           var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  26864.           HEAP[$p_i_i_i14_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i];
  26865.           do {
  26866.             if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i] >>> 0) {
  26867.               if (!(HEAP[$p_i_i_i14_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  26868.                 var $213 = 0;
  26869.                 break;
  26870.               }
  26871.               var $213 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i] >>> 0;
  26872.             } else {
  26873.               var $213 = 0;
  26874.             }
  26875.           } while (0);
  26876.           var $213;
  26877.           if ($213 & 1) {
  26878.             var $221 = HEAP[$c_addr_i20_i_i_i];
  26879.             HEAP[$this_addr_i_i17_i_i_i] = $this1_i21_i_i_i | 0;
  26880.             HEAP[$this_addr_i_i_i16_i_i_i] = HEAP[$this_addr_i_i17_i_i_i] | 0;
  26881.             var $this1_i_i_i38_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i];
  26882.             var $229 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($221, $this1_i21_i_i_i, 2, ((HEAP[$this1_i_i_i38_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i38_i_i_i + 1 | 0] & 255) & 65535);
  26883.           } else {
  26884.             var $229 = 0;
  26885.           }
  26886.           var $229;
  26887.           L54 : do {
  26888.             if ($229 & 1) {
  26889.               HEAP[$this_addr_i5_i_i_i] = $this1_i_i_i71 | 0;
  26890.               HEAP[$this_addr_i_i4_i_i_i] = HEAP[$this_addr_i5_i_i_i] | 0;
  26891.               var $this1_i_i7_i_i_i = HEAP[$this_addr_i_i4_i_i_i];
  26892.               HEAP[$count_i_i_i] = ((HEAP[$this1_i_i7_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i + 1 | 0] & 255) & 65535;
  26893.               HEAP[$i_i_i_i] = 0;
  26894.               L57 : do {
  26895.                 if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  26896.                   var $array_i_i_i = $this1_i_i_i71 + 2 | 0;
  26897.                   while (1) {
  26898.                     var $309 = HEAP[$c_addr_i_i_i28];
  26899.                     var $310 = HEAP[$base_addr_i_i_i29];
  26900.                     HEAP[$this_addr_i_i_i_i24] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  26901.                     HEAP[$c_addr_i_i_i_i] = $309;
  26902.                     HEAP[$base_addr_i_i_i_i25] = $310;
  26903.                     var $this1_i_i_i_i76 = HEAP[$this_addr_i_i_i_i24];
  26904.                     HEAP[$this_addr_i18_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  26905.                     HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i_i76;
  26906.                     var $313 = HEAP[$obj_addr_i_i_i_i_i];
  26907.                     HEAP[$this_addr_i_i14_i_i_i_i] = HEAP[$this_addr_i18_i_i_i_i];
  26908.                     HEAP[$base_addr_i_i15_i_i_i_i] = $313;
  26909.                     HEAP[$len_addr_i_i16_i_i_i_i] = 2;
  26910.                     var $this1_i_i20_i_i_i_i = HEAP[$this_addr_i_i14_i_i_i_i];
  26911.                     HEAP[$p_i_i17_i_i_i_i] = HEAP[$base_addr_i_i15_i_i_i_i];
  26912.                     do {
  26913.                       if (HEAP[$this1_i_i20_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i17_i_i_i_i] >>> 0) {
  26914.                         if (!(HEAP[$p_i_i17_i_i_i_i] >>> 0 <= HEAP[$this1_i_i20_i_i_i_i + 8 | 0] >>> 0)) {
  26915.                           var $322 = 0;
  26916.                           break;
  26917.                         }
  26918.                         var $322 = (HEAP[$this1_i_i20_i_i_i_i + 8 | 0] - HEAP[$p_i_i17_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i16_i_i_i_i] >>> 0;
  26919.                       } else {
  26920.                         var $322 = 0;
  26921.                       }
  26922.                     } while (0);
  26923.                     var $322;
  26924.                     do {
  26925.                       if ($322 & 1) {
  26926.                         HEAP[$this_addr_i7_i_i_i_i] = $this1_i_i_i_i76;
  26927.                         HEAP[$this_addr_i_i6_i_i_i_i] = HEAP[$this_addr_i7_i_i_i_i] | 0;
  26928.                         var $this1_i_i9_i_i_i_i = HEAP[$this_addr_i_i6_i_i_i_i];
  26929.                         HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i9_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i9_i_i_i_i + 1 | 0] & 255) & 65535;
  26930.                         if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  26931.                           var $tobool_i5_i_i_i_i = 1;
  26932.                           HEAP[$retval_i_i_i_i] = $tobool_i5_i_i_i_i;
  26933.                           var $355 = $tobool_i5_i_i_i_i;
  26934.                           break;
  26935.                         }
  26936.                         var $331 = HEAP[$offset_i_i_i_i];
  26937.                         HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i25];
  26938.                         HEAP[$offset_addr_i_i_i_i_i] = $331;
  26939.                         HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  26940.                         var $336 = HEAP[$c_addr_i_i_i_i];
  26941.                         HEAP[$this_addr_i1_i_i_i_i] = HEAP[$obj_i_i_i_i];
  26942.                         HEAP[$c_addr_i2_i_i_i_i] = $336;
  26943.                         if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$this_addr_i1_i_i_i_i] | 0, HEAP[$c_addr_i2_i_i_i_i]) & 1) {
  26944.                           var $353 = 1;
  26945.                         } else {
  26946.                           var $340 = HEAP[$c_addr_i_i_i_i];
  26947.                           HEAP[$this_addr_i_i_i_i_i22] = $this1_i_i_i_i76;
  26948.                           HEAP[$c_addr_i_i_i_i_i] = $340;
  26949.                           var $this1_i_i_i_i_i79 = HEAP[$this_addr_i_i_i_i_i22];
  26950.                           HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  26951.                           HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i79;
  26952.                           HEAP[$len_addr_i_i_i_i_i_i] = 2;
  26953.                           var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  26954.                           do {
  26955.                             if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  26956.                               HEAP[$retval_i_i_i_i_i_i] = 0;
  26957.                               label = 52;
  26958.                               break;
  26959.                             } else {
  26960.                               HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  26961.                               var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 16 | 0;
  26962.                               HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  26963.                               var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  26964.                               HEAP[$retval_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  26965.                               if (!$tobool_i_i_i_i_i_i_i) {
  26966.                                 label = 52;
  26967.                                 break;
  26968.                               }
  26969.                               HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i79;
  26970.                               HEAP[$i_addr_i_i_i_i_i_i] = 0;
  26971.                               var $349 = HEAP[$i_addr_i_i_i_i_i_i];
  26972.                               HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  26973.                               HEAP[$i_addr_i_i_i_i_i_i_i] = $349;
  26974.                               var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  26975.                               HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  26976.                               HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  26977.                               HEAP[$retval_i_i_i_i_i] = 1;
  26978.                               break;
  26979.                             }
  26980.                           } while (0);
  26981.                           if (label == 52) {
  26982.                             label = 0;
  26983.                             HEAP[$retval_i_i_i_i_i] = 0;
  26984.                           }
  26985.                           var $353 = HEAP[$retval_i_i_i_i_i];
  26986.                         }
  26987.                         var $353;
  26988.                         var $tobool_i_i_i_i_i81 = $353 & 1;
  26989.                         HEAP[$retval_i_i_i_i] = $tobool_i_i_i_i_i81;
  26990.                         var $355 = $tobool_i_i_i_i_i81;
  26991.                       } else {
  26992.                         var $tobool_i12_i_i_i_i = 0;
  26993.                         HEAP[$retval_i_i_i_i] = $tobool_i12_i_i_i_i;
  26994.                         var $355 = $tobool_i12_i_i_i_i;
  26995.                       }
  26996.                     } while (0);
  26997.                     var $355;
  26998.                     if (!$355) {
  26999.                       break;
  27000.                     }
  27001.                     HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  27002.                     if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  27003.                       break L57;
  27004.                     }
  27005.                   }
  27006.                   HEAP[$retval_i_i_i] = 0;
  27007.                   break L54;
  27008.                 }
  27009.               } while (0);
  27010.               HEAP[$retval_i_i_i] = 1;
  27011.             } else {
  27012.               HEAP[$retval_i_i_i] = 0;
  27013.             }
  27014.           } while (0);
  27015.           var $368 = HEAP[$retval_i_i_i];
  27016.         } else {
  27017.           var $368 = 0;
  27018.         }
  27019.         var $368;
  27020.         HEAP[$retval_i35] = $368 & 1 & 1;
  27021.       } else {
  27022.         HEAP[$retval_i35] = 0;
  27023.       }
  27024.     } while (0);
  27025.     $retval = HEAP[$retval_i35] & 1;
  27026.     var $1176 = $retval;
  27027.     STACKTOP = __stackBase__;
  27028.     return $1176;
  27029.   } else if (($32 | 0) == 3) {
  27030.     HEAP[$this_addr_i109] = $this1 | 0;
  27031.     HEAP[$c_addr_i110] = $c_addr;
  27032.     var $this1_i111 = HEAP[$this_addr_i109];
  27033.     var $383 = HEAP[$c_addr_i110];
  27034.     HEAP[$this_addr_i4_i101] = $this1_i111 | 0;
  27035.     HEAP[$c_addr_i5_i102] = $383;
  27036.     var $this1_i6_i114 = HEAP[$this_addr_i4_i101];
  27037.     HEAP[$this_addr_i_i_i98] = HEAP[$c_addr_i5_i102];
  27038.     HEAP[$obj_addr_i_i_i99] = $this1_i6_i114;
  27039.     var $390 = HEAP[$obj_addr_i_i_i99];
  27040.     HEAP[$this_addr_i_i_i_i94] = HEAP[$this_addr_i_i_i98];
  27041.     HEAP[$base_addr_i_i_i_i95] = $390;
  27042.     HEAP[$len_addr_i_i_i_i96] = 2;
  27043.     var $this1_i_i_i_i116 = HEAP[$this_addr_i_i_i_i94];
  27044.     HEAP[$p_i_i_i_i97] = HEAP[$base_addr_i_i_i_i95];
  27045.     do {
  27046.       if (HEAP[$this1_i_i_i_i116 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i97] >>> 0) {
  27047.         if (!(HEAP[$p_i_i_i_i97] >>> 0 <= HEAP[$this1_i_i_i_i116 + 8 | 0] >>> 0)) {
  27048.           var $403 = 0;
  27049.           break;
  27050.         }
  27051.         var $403 = (HEAP[$this1_i_i_i_i116 + 8 | 0] - HEAP[$p_i_i_i_i97] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i96] >>> 0;
  27052.       } else {
  27053.         var $403 = 0;
  27054.       }
  27055.     } while (0);
  27056.     var $403;
  27057.     do {
  27058.       if ($403 & 1 & 1) {
  27059.         HEAP[$this_addr_i10_i] = $this1_i111 | 0;
  27060.         HEAP[$this_addr_i_i9_i] = HEAP[$this_addr_i10_i] | 0;
  27061.         var $this1_i_i12_i = HEAP[$this_addr_i_i9_i];
  27062.         if ((((HEAP[$this1_i_i12_i | 0] & 255) << 8) + (HEAP[$this1_i_i12_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  27063.           HEAP[$retval_i108] = 1;
  27064.           break;
  27065.         }
  27066.         var $421 = HEAP[$c_addr_i110];
  27067.         HEAP[$this_addr_i_i104] = $this1_i111 | 0;
  27068.         HEAP[$c_addr_i_i105] = $421;
  27069.         var $this1_i_i151 = HEAP[$this_addr_i_i104];
  27070.         if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i151 + 2 | 0, HEAP[$c_addr_i_i105], $this1_i_i151)) {
  27071.           var $430 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_7ArrayOfIS2_EEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i151 + 4 | 0, HEAP[$c_addr_i_i105], $this1_i_i151);
  27072.         } else {
  27073.           var $430 = 0;
  27074.         }
  27075.         var $430;
  27076.         HEAP[$retval_i108] = $430 & 1 & 1;
  27077.       } else {
  27078.         HEAP[$retval_i108] = 0;
  27079.       }
  27080.     } while (0);
  27081.     $retval = HEAP[$retval_i108] & 1;
  27082.     var $1176 = $retval;
  27083.     STACKTOP = __stackBase__;
  27084.     return $1176;
  27085.   } else if (($32 | 0) == 4) {
  27086.     HEAP[$this_addr_i219] = $this1 | 0;
  27087.     HEAP[$c_addr_i220] = $c_addr;
  27088.     var $this1_i221 = HEAP[$this_addr_i219];
  27089.     var $445 = HEAP[$c_addr_i220];
  27090.     HEAP[$this_addr_i8_i177] = $this1_i221 | 0;
  27091.     HEAP[$c_addr_i9_i178] = $445;
  27092.     var $this1_i10_i224 = HEAP[$this_addr_i8_i177];
  27093.     HEAP[$this_addr_i_i6_i174] = HEAP[$c_addr_i9_i178];
  27094.     HEAP[$obj_addr_i_i_i175] = $this1_i10_i224;
  27095.     var $452 = HEAP[$obj_addr_i_i_i175];
  27096.     HEAP[$this_addr_i_i_i4_i170] = HEAP[$this_addr_i_i6_i174];
  27097.     HEAP[$base_addr_i_i_i5_i171] = $452;
  27098.     HEAP[$len_addr_i_i_i_i172] = 2;
  27099.     var $this1_i_i_i12_i226 = HEAP[$this_addr_i_i_i4_i170];
  27100.     HEAP[$p_i_i_i_i173] = HEAP[$base_addr_i_i_i5_i171];
  27101.     do {
  27102.       if (HEAP[$this1_i_i_i12_i226 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i173] >>> 0) {
  27103.         if (!(HEAP[$p_i_i_i_i173] >>> 0 <= HEAP[$this1_i_i_i12_i226 + 8 | 0] >>> 0)) {
  27104.           var $465 = 0;
  27105.           break;
  27106.         }
  27107.         var $465 = (HEAP[$this1_i_i_i12_i226 + 8 | 0] - HEAP[$p_i_i_i_i173] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i172] >>> 0;
  27108.       } else {
  27109.         var $465 = 0;
  27110.       }
  27111.     } while (0);
  27112.     var $465;
  27113.     do {
  27114.       if ($465 & 1 & 1) {
  27115.         HEAP[$this_addr_i21_i167] = $this1_i221 | 0;
  27116.         HEAP[$this_addr_i_i20_i166] = HEAP[$this_addr_i21_i167] | 0;
  27117.         var $this1_i_i23_i249 = HEAP[$this_addr_i_i20_i166];
  27118.         if ((((HEAP[$this1_i_i23_i249 | 0] & 255) << 8) + (HEAP[$this1_i_i23_i249 + 1 | 0] & 255) & 65535 | 0) != 1) {
  27119.           HEAP[$retval_i218] = 1;
  27120.           break;
  27121.         }
  27122.         var $483 = HEAP[$c_addr_i220];
  27123.         HEAP[$this_addr_i_i214] = $this1_i221 | 0;
  27124.         HEAP[$c_addr_i_i215] = $483;
  27125.         var $this1_i_i264 = HEAP[$this_addr_i_i214];
  27126.         if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i264 + 2 | 0, HEAP[$c_addr_i_i215], $this1_i_i264)) {
  27127.           var $490 = HEAP[$c_addr_i_i215];
  27128.           HEAP[$this_addr_i_i_i208] = $this1_i_i264 + 4 | 0;
  27129.           HEAP[$c_addr_i_i_i209] = $490;
  27130.           HEAP[$base_addr_i_i_i210] = $this1_i_i264;
  27131.           var $this1_i_i_i268 = HEAP[$this_addr_i_i_i208];
  27132.           var $498 = HEAP[$c_addr_i_i_i209];
  27133.           HEAP[$this_addr_i12_i_i_i] = $this1_i_i_i268;
  27134.           HEAP[$c_addr_i13_i_i_i] = $498;
  27135.           var $this1_i14_i_i_i = HEAP[$this_addr_i12_i_i_i];
  27136.           HEAP[$this_addr_i2_i_i_i_i180] = HEAP[$c_addr_i13_i_i_i];
  27137.           HEAP[$obj_addr_i_i8_i_i_i] = $this1_i14_i_i_i;
  27138.           var $505 = HEAP[$obj_addr_i_i8_i_i_i];
  27139.           HEAP[$this_addr_i_i1_i_i_i_i179] = HEAP[$this_addr_i2_i_i_i_i180];
  27140.           HEAP[$base_addr_i_i_i5_i_i_i] = $505;
  27141.           HEAP[$len_addr_i_i_i6_i_i_i] = 2;
  27142.           var $this1_i_i4_i_i_i_i270 = HEAP[$this_addr_i_i1_i_i_i_i179];
  27143.           HEAP[$p_i_i_i7_i_i_i] = HEAP[$base_addr_i_i_i5_i_i_i];
  27144.           do {
  27145.             if (HEAP[$this1_i_i4_i_i_i_i270 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i_i_i] >>> 0) {
  27146.               if (!(HEAP[$p_i_i_i7_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i270 + 8 | 0] >>> 0)) {
  27147.                 var $518 = 0;
  27148.                 break;
  27149.               }
  27150.               var $518 = (HEAP[$this1_i_i4_i_i_i_i270 + 8 | 0] - HEAP[$p_i_i_i7_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i_i_i] >>> 0;
  27151.             } else {
  27152.               var $518 = 0;
  27153.             }
  27154.           } while (0);
  27155.           var $518;
  27156.           if ($518 & 1) {
  27157.             var $526 = HEAP[$c_addr_i13_i_i_i];
  27158.             HEAP[$this_addr_i_i10_i_i_i] = $this1_i14_i_i_i | 0;
  27159.             HEAP[$this_addr_i_i_i9_i_i_i] = HEAP[$this_addr_i_i10_i_i_i] | 0;
  27160.             var $this1_i_i_i30_i_i_i = HEAP[$this_addr_i_i_i9_i_i_i];
  27161.             var $534 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($526, $this1_i14_i_i_i, 2, ((HEAP[$this1_i_i_i30_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i30_i_i_i + 1 | 0] & 255) & 65535);
  27162.           } else {
  27163.             var $534 = 0;
  27164.           }
  27165.           var $534;
  27166.           L125 : do {
  27167.             if ($534 & 1) {
  27168.               HEAP[$this_addr_i46_i_i_i] = $this1_i_i_i268 | 0;
  27169.               HEAP[$this_addr_i_i45_i_i_i] = HEAP[$this_addr_i46_i_i_i] | 0;
  27170.               var $this1_i_i48_i_i_i = HEAP[$this_addr_i_i45_i_i_i];
  27171.               HEAP[$count_i_i_i211] = ((HEAP[$this1_i_i48_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i48_i_i_i + 1 | 0] & 255) & 65535;
  27172.               HEAP[$i_i_i_i212] = 0;
  27173.               L128 : do {
  27174.                 if (HEAP[$i_i_i_i212] >>> 0 < HEAP[$count_i_i_i211] >>> 0) {
  27175.                   var $array_i_i_i288 = $this1_i_i_i268 + 2 | 0;
  27176.                   while (1) {
  27177.                     var $731 = HEAP[$c_addr_i_i_i209];
  27178.                     var $732 = HEAP[$base_addr_i_i_i210];
  27179.                     HEAP[$this_addr_i_i_i_i200] = (HEAP[$i_i_i_i212] << 1) + $array_i_i_i288 | 0;
  27180.                     HEAP[$c_addr_i_i_i_i201] = $731;
  27181.                     HEAP[$base_addr_i_i_i_i202] = $732;
  27182.                     var $this1_i_i_i_i291 = HEAP[$this_addr_i_i_i_i200];
  27183.                     HEAP[$this_addr_i23_i_i_i_i] = HEAP[$c_addr_i_i_i_i201];
  27184.                     HEAP[$obj_addr_i_i_i_i_i183] = $this1_i_i_i_i291;
  27185.                     var $735 = HEAP[$obj_addr_i_i_i_i_i183];
  27186.                     HEAP[$this_addr_i_i19_i_i_i_i] = HEAP[$this_addr_i23_i_i_i_i];
  27187.                     HEAP[$base_addr_i_i20_i_i_i_i] = $735;
  27188.                     HEAP[$len_addr_i_i21_i_i_i_i] = 2;
  27189.                     var $this1_i_i25_i_i_i_i = HEAP[$this_addr_i_i19_i_i_i_i];
  27190.                     HEAP[$p_i_i22_i_i_i_i] = HEAP[$base_addr_i_i20_i_i_i_i];
  27191.                     do {
  27192.                       if (HEAP[$this1_i_i25_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i_i_i_i] >>> 0) {
  27193.                         if (!(HEAP[$p_i_i22_i_i_i_i] >>> 0 <= HEAP[$this1_i_i25_i_i_i_i + 8 | 0] >>> 0)) {
  27194.                           var $744 = 0;
  27195.                           break;
  27196.                         }
  27197.                         var $744 = (HEAP[$this1_i_i25_i_i_i_i + 8 | 0] - HEAP[$p_i_i22_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i_i_i_i] >>> 0;
  27198.                       } else {
  27199.                         var $744 = 0;
  27200.                       }
  27201.                     } while (0);
  27202.                     var $744;
  27203.                     do {
  27204.                       if ($744 & 1) {
  27205.                         HEAP[$this_addr_i32_i_i_i_i] = $this1_i_i_i_i291;
  27206.                         HEAP[$this_addr_i_i31_i_i_i_i] = HEAP[$this_addr_i32_i_i_i_i] | 0;
  27207.                         var $this1_i_i34_i_i_i_i = HEAP[$this_addr_i_i31_i_i_i_i];
  27208.                         HEAP[$offset_i_i_i_i203] = ((HEAP[$this1_i_i34_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i_i_i_i + 1 | 0] & 255) & 65535;
  27209.                         if ((HEAP[$offset_i_i_i_i203] | 0) == 0) {
  27210.                           var $tobool_i30_i_i_i_i = 1;
  27211.                           HEAP[$retval_i_i_i_i199] = $tobool_i30_i_i_i_i;
  27212.                           var $873 = $tobool_i30_i_i_i_i;
  27213.                           break;
  27214.                         }
  27215.                         var $753 = HEAP[$offset_i_i_i_i203];
  27216.                         HEAP[$P_addr_i_i_i_i_i181] = HEAP[$base_addr_i_i_i_i202];
  27217.                         HEAP[$offset_addr_i_i_i_i_i182] = $753;
  27218.                         HEAP[$obj_i_i_i_i204] = HEAP[$P_addr_i_i_i_i_i181] + HEAP[$offset_addr_i_i_i_i_i182] | 0;
  27219.                         var $758 = HEAP[$c_addr_i_i_i_i201];
  27220.                         HEAP[$this_addr_i6_i_i_i_i] = HEAP[$obj_i_i_i_i204];
  27221.                         HEAP[$c_addr_i7_i_i_i_i] = $758;
  27222.                         var $this1_i8_i_i_i_i316 = HEAP[$this_addr_i6_i_i_i_i];
  27223.                         var $760 = HEAP[$c_addr_i7_i_i_i_i];
  27224.                         HEAP[$this_addr_i_i4_i_i_i_i] = $this1_i8_i_i_i_i316 | 0;
  27225.                         HEAP[$c_addr_i_i_i_i_i_i] = $760;
  27226.                         HEAP[$base_addr_i_i5_i_i_i_i] = $this1_i8_i_i_i_i316;
  27227.                         var $this1_i_i9_i_i_i_i317 = HEAP[$this_addr_i_i4_i_i_i_i];
  27228.                         var $762 = HEAP[$c_addr_i_i_i_i_i_i];
  27229.                         HEAP[$this_addr_i19_i_i_i_i_i_i] = $this1_i_i9_i_i_i_i317;
  27230.                         HEAP[$c_addr_i20_i_i_i_i_i_i] = $762;
  27231.                         var $this1_i21_i_i_i_i_i_i = HEAP[$this_addr_i19_i_i_i_i_i_i];
  27232.                         HEAP[$this_addr_i2_i_i_i_i_i_i_i] = HEAP[$c_addr_i20_i_i_i_i_i_i];
  27233.                         HEAP[$obj_addr_i_i15_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i;
  27234.                         var $765 = HEAP[$obj_addr_i_i15_i_i_i_i_i_i];
  27235.                         HEAP[$this_addr_i_i1_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i];
  27236.                         HEAP[$base_addr_i_i_i12_i_i_i_i_i_i] = $765;
  27237.                         HEAP[$len_addr_i_i_i13_i_i_i_i_i_i] = 2;
  27238.                         var $this1_i_i4_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i];
  27239.                         HEAP[$p_i_i_i14_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i_i_i_i];
  27240.                         do {
  27241.                           if (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i_i_i_i] >>> 0) {
  27242.                             if (!(HEAP[$p_i_i_i14_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  27243.                               var $774 = 0;
  27244.                               break;
  27245.                             }
  27246.                             var $774 = (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i_i_i_i] >>> 0;
  27247.                           } else {
  27248.                             var $774 = 0;
  27249.                           }
  27250.                         } while (0);
  27251.                         var $774;
  27252.                         if ($774 & 1) {
  27253.                           var $776 = HEAP[$c_addr_i20_i_i_i_i_i_i];
  27254.                           HEAP[$this_addr_i_i17_i_i_i_i_i_i] = $this1_i21_i_i_i_i_i_i | 0;
  27255.                           HEAP[$this_addr_i_i_i16_i_i_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i_i_i] | 0;
  27256.                           var $this1_i_i_i37_i_i_i_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i_i_i_i];
  27257.                           var $780 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($776, $this1_i21_i_i_i_i_i_i, 2, ((HEAP[$this1_i_i_i37_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  27258.                         } else {
  27259.                           var $780 = 0;
  27260.                         }
  27261.                         var $780;
  27262.                         L149 : do {
  27263.                           if ($780 & 1) {
  27264.                             HEAP[$this_addr_i5_i_i_i_i_i_i] = $this1_i_i9_i_i_i_i317 | 0;
  27265.                             HEAP[$this_addr_i_i4_i_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i_i] | 0;
  27266.                             var $this1_i_i7_i_i_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i_i_i];
  27267.                             HEAP[$count_i_i_i_i_i_i] = ((HEAP[$this1_i_i7_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  27268.                             HEAP[$i_i_i_i_i_i_i] = 0;
  27269.                             L152 : do {
  27270.                               if (HEAP[$i_i_i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i_i_i] >>> 0) {
  27271.                                 var $array_i_i_i_i_i_i = $this1_i_i9_i_i_i_i317 + 2 | 0;
  27272.                                 while (1) {
  27273.                                   var $789 = HEAP[$c_addr_i_i_i_i_i_i];
  27274.                                   var $790 = HEAP[$base_addr_i_i5_i_i_i_i];
  27275.                                   HEAP[$this_addr_i_i_i1_i_i_i_i] = (HEAP[$i_i_i_i_i_i_i] << 1) + $array_i_i_i_i_i_i | 0;
  27276.                                   HEAP[$c_addr_i_i_i_i_i_i_i] = $789;
  27277.                                   HEAP[$base_addr_i_i_i_i_i_i_i] = $790;
  27278.                                   var $this1_i_i_i13_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i];
  27279.                                   HEAP[$this_addr_i25_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  27280.                                   HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i13_i_i_i_i;
  27281.                                   var $793 = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  27282.                                   HEAP[$this_addr_i_i21_i_i_i_i_i_i_i] = HEAP[$this_addr_i25_i_i_i_i_i_i_i];
  27283.                                   HEAP[$base_addr_i_i22_i_i_i_i_i_i_i] = $793;
  27284.                                   HEAP[$len_addr_i_i23_i_i_i_i_i_i_i] = 2;
  27285.                                   var $this1_i_i27_i_i_i_i_i_i_i = HEAP[$this_addr_i_i21_i_i_i_i_i_i_i];
  27286.                                   HEAP[$p_i_i24_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i22_i_i_i_i_i_i_i];
  27287.                                   do {
  27288.                                     if (HEAP[$this1_i_i27_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i24_i_i_i_i_i_i_i] >>> 0) {
  27289.                                       if (!(HEAP[$p_i_i24_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i27_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  27290.                                         var $802 = 0;
  27291.                                         break;
  27292.                                       }
  27293.                                       var $802 = (HEAP[$this1_i_i27_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i24_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i23_i_i_i_i_i_i_i] >>> 0;
  27294.                                     } else {
  27295.                                       var $802 = 0;
  27296.                                     }
  27297.                                   } while (0);
  27298.                                   var $802;
  27299.                                   do {
  27300.                                     if ($802 & 1) {
  27301.                                       HEAP[$this_addr_i14_i_i_i_i_i_i_i] = $this1_i_i_i13_i_i_i_i;
  27302.                                       HEAP[$this_addr_i_i13_i_i_i_i_i_i_i] = HEAP[$this_addr_i14_i_i_i_i_i_i_i] | 0;
  27303.                                       var $this1_i_i16_i_i_i_i_i_i_i = HEAP[$this_addr_i_i13_i_i_i_i_i_i_i];
  27304.                                       HEAP[$offset_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i16_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i16_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  27305.                                       if ((HEAP[$offset_i_i_i_i_i_i_i] | 0) == 0) {
  27306.                                         var $tobool_i12_i_i_i_i_i_i_i = 1;
  27307.                                         HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i12_i_i_i_i_i_i_i;
  27308.                                         var $850 = $tobool_i12_i_i_i_i_i_i_i;
  27309.                                         break;
  27310.                                       }
  27311.                                       var $811 = HEAP[$offset_i_i_i_i_i_i_i];
  27312.                                       HEAP[$P_addr_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  27313.                                       HEAP[$offset_addr_i_i_i_i_i_i_i_i] = $811;
  27314.                                       HEAP[$obj_i_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i_i] | 0;
  27315.                                       var $816 = HEAP[$c_addr_i_i_i_i_i_i_i];
  27316.                                       HEAP[$this_addr_i4_i_i_i_i_i_i_i] = HEAP[$obj_i_i_i_i_i_i_i];
  27317.                                       HEAP[$c_addr_i5_i_i_i_i_i_i_i] = $816;
  27318.                                       var $this1_i6_i_i_i_i_i_i_i = HEAP[$this_addr_i4_i_i_i_i_i_i_i];
  27319.                                       var $817 = HEAP[$c_addr_i5_i_i_i_i_i_i_i];
  27320.                                       HEAP[$this_addr_i_i3_i_i_i_i_i_i_i] = $this1_i6_i_i_i_i_i_i_i | 0;
  27321.                                       HEAP[$c_addr_i_i_i_i_i_i_i_i_i] = $817;
  27322.                                       var $this1_i_i7_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i];
  27323.                                       HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i_i];
  27324.                                       HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i] = $this1_i_i7_i_i_i_i_i_i_i;
  27325.                                       var $820 = HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i];
  27326.                                       HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i];
  27327.                                       HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i] = $820;
  27328.                                       HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i] = 2;
  27329.                                       var $this1_i_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i];
  27330.                                       HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i];
  27331.                                       do {
  27332.                                         if (HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] >>> 0) {
  27333.                                           if (!(HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  27334.                                             var $829 = 0;
  27335.                                             break;
  27336.                                           }
  27337.                                           var $829 = (HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i] >>> 0;
  27338.                                         } else {
  27339.                                           var $829 = 0;
  27340.                                         }
  27341.                                       } while (0);
  27342.                                       var $829;
  27343.                                       if ($829 & 1 & 1) {
  27344.                                         var $833 = __ZN2OT15HeadlessArrayOfINS_7IntTypeItLj2EEEE8sanitizeEPNS_21hb_sanitize_context_tE($this1_i6_i_i_i_i_i_i_i + 2 | 0, HEAP[$c_addr_i5_i_i_i_i_i_i_i]);
  27345.                                       } else {
  27346.                                         var $833 = 0;
  27347.                                       }
  27348.                                       var $833;
  27349.                                       if ($833 & 1) {
  27350.                                         var $848 = 1;
  27351.                                       } else {
  27352.                                         var $835 = HEAP[$c_addr_i_i_i_i_i_i_i];
  27353.                                         HEAP[$this_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i13_i_i_i_i;
  27354.                                         HEAP[$c_addr_i_i_i_i_i_i_i_i] = $835;
  27355.                                         var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  27356.                                         HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i];
  27357.                                         HEAP[$base_addr_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i;
  27358.                                         HEAP[$len_addr_i_i_i_i_i_i_i_i_i] = 2;
  27359.                                         var $this1_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i];
  27360.                                         do {
  27361.                                           if (HEAP[$this1_i_i_i_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  27362.                                             HEAP[$retval_i_i_i_i_i_i_i_i_i] = 0;
  27363.                                             label = 123;
  27364.                                             break;
  27365.                                           } else {
  27366.                                             HEAP[$p_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i];
  27367.                                             var $edit_count2_i_i_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i_i_i + 16 | 0;
  27368.                                             HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] + 1 | 0;
  27369.                                             var $tobool_i_i_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  27370.                                             HEAP[$retval_i_i_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i_i;
  27371.                                             if (!$tobool_i_i_i_i_i_i_i_i_i_i) {
  27372.                                               label = 123;
  27373.                                               break;
  27374.                                             }
  27375.                                             HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i;
  27376.                                             HEAP[$i_addr_i_i_i_i_i_i_i_i_i] = 0;
  27377.                                             var $844 = HEAP[$i_addr_i_i_i_i_i_i_i_i_i];
  27378.                                             HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] | 0;
  27379.                                             HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] = $844;
  27380.                                             var $this1_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i];
  27381.                                             HEAP[$this1_i_i_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  27382.                                             HEAP[$this1_i_i_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 255;
  27383.                                             HEAP[$retval_i_i_i_i_i_i_i_i] = 1;
  27384.                                             break;
  27385.                                           }
  27386.                                         } while (0);
  27387.                                         if (label == 123) {
  27388.                                           label = 0;
  27389.                                           HEAP[$retval_i_i_i_i_i_i_i_i] = 0;
  27390.                                         }
  27391.                                         var $848 = HEAP[$retval_i_i_i_i_i_i_i_i];
  27392.                                       }
  27393.                                       var $848;
  27394.                                       var $tobool_i_i_i_i_i_i_i_i = $848 & 1;
  27395.                                       HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i;
  27396.                                       var $850 = $tobool_i_i_i_i_i_i_i_i;
  27397.                                     } else {
  27398.                                       var $tobool_i19_i_i_i_i_i_i_i = 0;
  27399.                                       HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i19_i_i_i_i_i_i_i;
  27400.                                       var $850 = $tobool_i19_i_i_i_i_i_i_i;
  27401.                                     }
  27402.                                   } while (0);
  27403.                                   var $850;
  27404.                                   if (!$850) {
  27405.                                     break;
  27406.                                   }
  27407.                                   HEAP[$i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i] + 1 | 0;
  27408.                                   if (HEAP[$i_i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i_i] >>> 0) {
  27409.                                     break L152;
  27410.                                   }
  27411.                                 }
  27412.                                 HEAP[$retval_i_i3_i_i_i_i] = 0;
  27413.                                 break L149;
  27414.                               }
  27415.                             } while (0);
  27416.                             HEAP[$retval_i_i3_i_i_i_i] = 1;
  27417.                           } else {
  27418.                             HEAP[$retval_i_i3_i_i_i_i] = 0;
  27419.                           }
  27420.                         } while (0);
  27421.                         if (HEAP[$retval_i_i3_i_i_i_i] & 1) {
  27422.                           var $871 = 1;
  27423.                         } else {
  27424.                           var $858 = HEAP[$c_addr_i_i_i_i201];
  27425.                           HEAP[$this_addr_i_i_i_i_i196] = $this1_i_i_i_i291;
  27426.                           HEAP[$c_addr_i_i_i_i_i197] = $858;
  27427.                           var $this1_i_i_i_i_i323 = HEAP[$this_addr_i_i_i_i_i196];
  27428.                           HEAP[$this_addr_i_i_i_i_i_i191] = HEAP[$c_addr_i_i_i_i_i197];
  27429.                           HEAP[$base_addr_i_i_i_i_i_i192] = $this1_i_i_i_i_i323;
  27430.                           HEAP[$len_addr_i_i_i_i_i_i193] = 2;
  27431.                           var $this1_i_i_i_i_i_i324 = HEAP[$this_addr_i_i_i_i_i_i191];
  27432.                           do {
  27433.                             if (HEAP[$this1_i_i_i_i_i_i324 + 16 | 0] >>> 0 >= 100) {
  27434.                               HEAP[$retval_i_i_i_i_i_i190] = 0;
  27435.                               label = 135;
  27436.                               break;
  27437.                             } else {
  27438.                               HEAP[$p_i_i_i_i_i_i194] = HEAP[$base_addr_i_i_i_i_i_i192];
  27439.                               var $edit_count2_i_i_i_i_i_i329 = $this1_i_i_i_i_i_i324 + 16 | 0;
  27440.                               HEAP[$edit_count2_i_i_i_i_i_i329] = HEAP[$edit_count2_i_i_i_i_i_i329] + 1 | 0;
  27441.                               var $tobool_i_i_i_i_i_i_i334 = HEAP[$this1_i_i_i_i_i_i324 + 12 | 0] & 1 & 1;
  27442.                               HEAP[$retval_i_i_i_i_i_i190] = $tobool_i_i_i_i_i_i_i334;
  27443.                               if (!$tobool_i_i_i_i_i_i_i334) {
  27444.                                 label = 135;
  27445.                                 break;
  27446.                               }
  27447.                               HEAP[$this_addr_i1_i_i_i_i_i187] = $this1_i_i_i_i_i323;
  27448.                               HEAP[$i_addr_i_i_i_i_i_i188] = 0;
  27449.                               var $867 = HEAP[$i_addr_i_i_i_i_i_i188];
  27450.                               HEAP[$this_addr_i_i_i_i_i_i_i185] = HEAP[$this_addr_i1_i_i_i_i_i187] | 0;
  27451.                               HEAP[$i_addr_i_i_i_i_i_i_i186] = $867;
  27452.                               var $this1_i_i_i_i_i_i_i338 = HEAP[$this_addr_i_i_i_i_i_i_i185];
  27453.                               HEAP[$this1_i_i_i_i_i_i_i338 | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i186] & 65535) >> 8 & 255;
  27454.                               HEAP[$this1_i_i_i_i_i_i_i338 + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i186] & 255;
  27455.                               HEAP[$retval_i_i_i_i_i195] = 1;
  27456.                               break;
  27457.                             }
  27458.                           } while (0);
  27459.                           if (label == 135) {
  27460.                             label = 0;
  27461.                             HEAP[$retval_i_i_i_i_i195] = 0;
  27462.                           }
  27463.                           var $871 = HEAP[$retval_i_i_i_i_i195];
  27464.                         }
  27465.                         var $871;
  27466.                         var $tobool_i_i_i_i_i350 = $871 & 1;
  27467.                         HEAP[$retval_i_i_i_i199] = $tobool_i_i_i_i_i350;
  27468.                         var $873 = $tobool_i_i_i_i_i350;
  27469.                       } else {
  27470.                         var $tobool_i39_i_i_i_i = 0;
  27471.                         HEAP[$retval_i_i_i_i199] = $tobool_i39_i_i_i_i;
  27472.                         var $873 = $tobool_i39_i_i_i_i;
  27473.                       }
  27474.                     } while (0);
  27475.                     var $873;
  27476.                     if (!$873) {
  27477.                       break;
  27478.                     }
  27479.                     HEAP[$i_i_i_i212] = HEAP[$i_i_i_i212] + 1 | 0;
  27480.                     if (HEAP[$i_i_i_i212] >>> 0 >= HEAP[$count_i_i_i211] >>> 0) {
  27481.                       break L128;
  27482.                     }
  27483.                   }
  27484.                   HEAP[$retval_i_i_i207] = 0;
  27485.                   break L125;
  27486.                 }
  27487.               } while (0);
  27488.               HEAP[$retval_i_i_i207] = 1;
  27489.             } else {
  27490.               HEAP[$retval_i_i_i207] = 0;
  27491.             }
  27492.           } while (0);
  27493.           var $886 = HEAP[$retval_i_i_i207];
  27494.         } else {
  27495.           var $886 = 0;
  27496.         }
  27497.         var $886;
  27498.         HEAP[$retval_i218] = $886 & 1 & 1;
  27499.       } else {
  27500.         HEAP[$retval_i218] = 0;
  27501.       }
  27502.     } while (0);
  27503.     $retval = HEAP[$retval_i218] & 1;
  27504.     var $1176 = $retval;
  27505.     STACKTOP = __stackBase__;
  27506.     return $1176;
  27507.   } else if (($32 | 0) == 5) {
  27508.     $retval = __ZN2OT7Context8sanitizeEPNS_21hb_sanitize_context_tE($this1 | 0, $c_addr) & 1;
  27509.     var $1176 = $retval;
  27510.     STACKTOP = __stackBase__;
  27511.     return $1176;
  27512.   } else if (($32 | 0) == 6) {
  27513.     $retval = __ZN2OT12ChainContext8sanitizeEPNS_21hb_sanitize_context_tE($this1 | 0, $c_addr) & 1;
  27514.     var $1176 = $retval;
  27515.     STACKTOP = __stackBase__;
  27516.     return $1176;
  27517.   } else if (($32 | 0) == 7) {
  27518.     HEAP[$this_addr_i478] = $this1 | 0;
  27519.     HEAP[$c_addr_i479] = $c_addr;
  27520.     var $this1_i480 = HEAP[$this_addr_i478];
  27521.     var $910 = HEAP[$c_addr_i479];
  27522.     HEAP[$this_addr_i_i475] = $this1_i480;
  27523.     HEAP[$c_addr_i_i476] = $910;
  27524.     var $this1_i_i481 = HEAP[$this_addr_i_i475];
  27525.     var $914 = HEAP[$c_addr_i_i476];
  27526.     HEAP[$this_addr_i17_i_i] = $this1_i_i481 | 0;
  27527.     HEAP[$c_addr_i18_i_i] = $914;
  27528.     var $this1_i19_i_i = HEAP[$this_addr_i17_i_i];
  27529.     HEAP[$this_addr_i_i14_i_i] = HEAP[$c_addr_i18_i_i];
  27530.     HEAP[$obj_addr_i_i15_i_i] = $this1_i19_i_i;
  27531.     var $921 = HEAP[$obj_addr_i_i15_i_i];
  27532.     HEAP[$this_addr_i_i_i10_i_i] = HEAP[$this_addr_i_i14_i_i];
  27533.     HEAP[$base_addr_i_i_i11_i_i] = $921;
  27534.     HEAP[$len_addr_i_i_i12_i_i] = 2;
  27535.     var $this1_i_i_i21_i_i = HEAP[$this_addr_i_i_i10_i_i];
  27536.     HEAP[$p_i_i_i13_i_i] = HEAP[$base_addr_i_i_i11_i_i];
  27537.     do {
  27538.       if (HEAP[$this1_i_i_i21_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i13_i_i] >>> 0) {
  27539.         if (!(HEAP[$p_i_i_i13_i_i] >>> 0 <= HEAP[$this1_i_i_i21_i_i + 8 | 0] >>> 0)) {
  27540.           var $934 = 0;
  27541.           break;
  27542.         }
  27543.         var $934 = (HEAP[$this1_i_i_i21_i_i + 8 | 0] - HEAP[$p_i_i_i13_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i12_i_i] >>> 0;
  27544.       } else {
  27545.         var $934 = 0;
  27546.       }
  27547.     } while (0);
  27548.     var $934;
  27549.     do {
  27550.       if ($934 & 1 & 1) {
  27551.         HEAP[$this_addr_i4_i_i] = $this1_i_i481 | 0;
  27552.         HEAP[$this_addr_i_i3_i_i] = HEAP[$this_addr_i4_i_i] | 0;
  27553.         var $this1_i_i6_i_i = HEAP[$this_addr_i_i3_i_i];
  27554.         if ((((HEAP[$this1_i_i6_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  27555.           var $tobool_i_i_i508 = 1;
  27556.           HEAP[$retval_i_i474] = $tobool_i_i_i508;
  27557.           if ($tobool_i_i_i508) {
  27558.             label = 160;
  27559.             break;
  27560.           } else {
  27561.             label = 159;
  27562.             break;
  27563.           }
  27564.         }
  27565.         var $951 = HEAP[$c_addr_i_i476];
  27566.         HEAP[$this_addr_i_i_i470] = $this1_i_i481 | 0;
  27567.         HEAP[$c_addr_i_i_i471] = $951;
  27568.         var $this1_i_i_i488 = HEAP[$this_addr_i_i_i470];
  27569.         HEAP[$this_addr_i_i_i_i467] = HEAP[$c_addr_i_i_i471];
  27570.         HEAP[$obj_addr_i_i_i_i468] = $this1_i_i_i488;
  27571.         var $958 = HEAP[$obj_addr_i_i_i_i468];
  27572.         HEAP[$this_addr_i_i_i_i_i463] = HEAP[$this_addr_i_i_i_i467];
  27573.         HEAP[$base_addr_i_i_i_i_i464] = $958;
  27574.         HEAP[$len_addr_i_i_i_i_i465] = 8;
  27575.         var $this1_i_i_i_i_i490 = HEAP[$this_addr_i_i_i_i_i463];
  27576.         HEAP[$p_i_i_i_i_i466] = HEAP[$base_addr_i_i_i_i_i464];
  27577.         do {
  27578.           if (HEAP[$this1_i_i_i_i_i490 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i466] >>> 0) {
  27579.             if (!(HEAP[$p_i_i_i_i_i466] >>> 0 <= HEAP[$this1_i_i_i_i_i490 + 8 | 0] >>> 0)) {
  27580.               var $971 = 0;
  27581.               break;
  27582.             }
  27583.             var $971 = (HEAP[$this1_i_i_i_i_i490 + 8 | 0] - HEAP[$p_i_i_i_i_i466] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i465] >>> 0;
  27584.           } else {
  27585.             var $971 = 0;
  27586.           }
  27587.         } while (0);
  27588.         var $971;
  27589.         var $tobool_i2_i_i507 = $971 & 1 & 1 & 1;
  27590.         HEAP[$retval_i_i474] = $tobool_i2_i_i507;
  27591.         if ($tobool_i2_i_i507) {
  27592.           label = 160;
  27593.           break;
  27594.         } else {
  27595.           label = 159;
  27596.           break;
  27597.         }
  27598.       } else {
  27599.         var $tobool_i8_i_i = 0;
  27600.         HEAP[$retval_i_i474] = $tobool_i8_i_i;
  27601.         if ($tobool_i8_i_i) {
  27602.           label = 160;
  27603.           break;
  27604.         } else {
  27605.           label = 159;
  27606.           break;
  27607.         }
  27608.       }
  27609.     } while (0);
  27610.     L225 : do {
  27611.       if (label == 159) {
  27612.         HEAP[$retval_i477] = 0;
  27613.       } else if (label == 160) {
  27614.         HEAP[$this_addr_i5_i460] = $this1_i480;
  27615.         var $this1_i6_i511 = HEAP[$this_addr_i5_i460];
  27616.         HEAP[$this_addr_i_i3_i] = $this1_i6_i511 | 0;
  27617.         HEAP[$this_addr_i_i_i2_i] = HEAP[$this_addr_i_i3_i] | 0;
  27618.         var $this1_i_i_i11_i = HEAP[$this_addr_i_i_i2_i];
  27619.         do {
  27620.           if ((((HEAP[$this1_i_i_i11_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i11_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  27621.             HEAP[$this_addr_i2_i_i] = $this1_i6_i511 | 0;
  27622.             HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] + 4 | 0;
  27623.             HEAP[$this_addr_i_i_i_i1_i] = HEAP[$this_addr_i_i1_i_i] | 0;
  27624.             var $this1_i_i_i_i24_i = HEAP[$this_addr_i_i_i_i1_i];
  27625.             var $add14_i_i_i_i_i = ((HEAP[$this1_i_i_i_i24_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i24_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i24_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i24_i + 3 | 0] & 255) | 0;
  27626.             HEAP[$retval_i4_i] = $add14_i_i_i_i_i;
  27627.             HEAP[$offset_i] = $add14_i_i_i_i_i;
  27628.             if (($add14_i_i_i_i_i | 0) == 0) {
  27629.               break;
  27630.             }
  27631.             var $1019 = HEAP[$offset_i];
  27632.             HEAP[$P_addr_i_i] = $this1_i480;
  27633.             HEAP[$offset_addr_i_i] = $1019;
  27634.             var $1024 = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  27635.             var $1027 = HEAP[$c_addr_i479];
  27636.             HEAP[$this_addr_i35_i] = $this1_i480;
  27637.             var $this1_i36_i = HEAP[$this_addr_i35_i];
  27638.             HEAP[$this_addr_i_i33_i] = $this1_i36_i | 0;
  27639.             HEAP[$this_addr_i_i_i32_i] = HEAP[$this_addr_i_i33_i] | 0;
  27640.             var $this1_i_i_i41_i = HEAP[$this_addr_i_i_i32_i];
  27641.             if ((((HEAP[$this1_i_i_i41_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i41_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  27642.               HEAP[$this_addr_i2_i31_i] = $this1_i36_i | 0;
  27643.               HEAP[$this_addr_i_i1_i30_i] = HEAP[$this_addr_i2_i31_i] + 2 | 0;
  27644.               HEAP[$this_addr_i_i_i_i29_i] = HEAP[$this_addr_i_i1_i30_i] | 0;
  27645.               var $this1_i_i_i_i58_i = HEAP[$this_addr_i_i_i_i29_i];
  27646.               HEAP[$retval_i34_i] = ((HEAP[$this1_i_i_i_i58_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i58_i + 1 | 0] & 255) & 65535;
  27647.             } else {
  27648.               HEAP[$retval_i34_i] = 0;
  27649.             }
  27650.             var $tobool_i70_i = __ZN2OT19SubstLookupSubTable8sanitizeEPNS_21hb_sanitize_context_tEj($1024, $1027, HEAP[$retval_i34_i]) & 1;
  27651.             HEAP[$retval_i477] = $tobool_i70_i;
  27652.             break L225;
  27653.           } else {
  27654.             HEAP[$retval_i4_i] = 0;
  27655.             HEAP[$offset_i] = 0;
  27656.           }
  27657.         } while (0);
  27658.         HEAP[$retval_i477] = 1;
  27659.       }
  27660.     } while (0);
  27661.     $retval = HEAP[$retval_i477] & 1;
  27662.     var $1176 = $retval;
  27663.     STACKTOP = __stackBase__;
  27664.     return $1176;
  27665.   } else if (($32 | 0) == 8) {
  27666.     HEAP[$this_addr_i397] = $this1 | 0;
  27667.     HEAP[$c_addr_i398] = $c_addr;
  27668.     var $this1_i399 = HEAP[$this_addr_i397];
  27669.     var $1059 = HEAP[$c_addr_i398];
  27670.     HEAP[$this_addr_i5_i] = $this1_i399 | 0;
  27671.     HEAP[$c_addr_i6_i] = $1059;
  27672.     var $this1_i7_i = HEAP[$this_addr_i5_i];
  27673.     HEAP[$this_addr_i_i_i385] = HEAP[$c_addr_i6_i];
  27674.     HEAP[$obj_addr_i_i_i386] = $this1_i7_i;
  27675.     var $1066 = HEAP[$obj_addr_i_i_i386];
  27676.     HEAP[$this_addr_i_i_i3_i] = HEAP[$this_addr_i_i_i385];
  27677.     HEAP[$base_addr_i_i_i_i382] = $1066;
  27678.     HEAP[$len_addr_i_i_i_i383] = 2;
  27679.     var $this1_i_i_i8_i = HEAP[$this_addr_i_i_i3_i];
  27680.     HEAP[$p_i_i_i_i384] = HEAP[$base_addr_i_i_i_i382];
  27681.     do {
  27682.       if (HEAP[$this1_i_i_i8_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i384] >>> 0) {
  27683.         if (!(HEAP[$p_i_i_i_i384] >>> 0 <= HEAP[$this1_i_i_i8_i + 8 | 0] >>> 0)) {
  27684.           var $1079 = 0;
  27685.           break;
  27686.         }
  27687.         var $1079 = (HEAP[$this1_i_i_i8_i + 8 | 0] - HEAP[$p_i_i_i_i384] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i383] >>> 0;
  27688.       } else {
  27689.         var $1079 = 0;
  27690.       }
  27691.     } while (0);
  27692.     var $1079;
  27693.     do {
  27694.       if ($1079 & 1 & 1) {
  27695.         HEAP[$this_addr_i14_i] = $this1_i399 | 0;
  27696.         HEAP[$this_addr_i_i13_i380] = HEAP[$this_addr_i14_i] | 0;
  27697.         var $this1_i_i16_i = HEAP[$this_addr_i_i13_i380];
  27698.         if ((((HEAP[$this1_i_i16_i | 0] & 255) << 8) + (HEAP[$this1_i_i16_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  27699.           HEAP[$retval_i396] = 1;
  27700.           break;
  27701.         }
  27702.         var $1097 = HEAP[$c_addr_i398];
  27703.         HEAP[$this_addr_i_i391] = $this1_i399 | 0;
  27704.         HEAP[$c_addr_i_i392] = $1097;
  27705.         var $this1_i_i435 = HEAP[$this_addr_i_i391];
  27706.         do {
  27707.           if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i435 + 2 | 0, HEAP[$c_addr_i_i392], $this1_i_i435)) {
  27708.             if (!__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_8CoverageEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i435 + 4 | 0, HEAP[$c_addr_i_i392], $this1_i_i435)) {
  27709.               label = 177;
  27710.               break;
  27711.             }
  27712.             HEAP[$X_addr_i10_i_i] = $this1_i_i435 + 4 | 0;
  27713.             var $1112 = HEAP[$X_addr_i10_i_i];
  27714.             HEAP[$this_addr_i_i9_i_i] = HEAP[$X_addr_i10_i_i];
  27715.             HEAP[$this_addr_i_i_i8_i_i] = HEAP[$this_addr_i_i9_i_i] | 0;
  27716.             HEAP[$this_addr_i_i_i_i7_i_i] = HEAP[$this_addr_i_i_i8_i_i] | 0;
  27717.             var $this1_i_i_i_i15_i_i = HEAP[$this_addr_i_i_i_i7_i_i];
  27718.             var $add_i_i27_i_i = ((((HEAP[$this1_i_i_i_i15_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i15_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  27719.             HEAP[$P_addr_i_i5_i_i] = $1112;
  27720.             HEAP[$offset_addr_i_i6_i_i] = $add_i_i27_i_i;
  27721.             HEAP[$lookahead_i_i] = HEAP[$P_addr_i_i5_i_i] + HEAP[$offset_addr_i_i6_i_i] | 0;
  27722.             if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_8CoverageEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv(HEAP[$lookahead_i_i], HEAP[$c_addr_i_i392], $this1_i_i435)) {
  27723.               HEAP[$X_addr_i_i_i] = HEAP[$lookahead_i_i];
  27724.               var $1139 = HEAP[$X_addr_i_i_i];
  27725.               HEAP[$this_addr_i_i_i_i389] = HEAP[$X_addr_i_i_i];
  27726.               HEAP[$this_addr_i_i_i_i_i388] = HEAP[$this_addr_i_i_i_i389] | 0;
  27727.               HEAP[$this_addr_i_i_i_i_i_i387] = HEAP[$this_addr_i_i_i_i_i388] | 0;
  27728.               var $this1_i_i_i_i_i_i443 = HEAP[$this_addr_i_i_i_i_i_i387];
  27729.               var $add_i_i_i_i = ((((HEAP[$this1_i_i_i_i_i_i443 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i443 + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  27730.               HEAP[$P_addr_i_i_i_i] = $1139;
  27731.               HEAP[$offset_addr_i_i_i_i] = $add_i_i_i_i;
  27732.               HEAP[$substitute_i_i393] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  27733.               var $tobool_i_i_i455 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$substitute_i_i393], HEAP[$c_addr_i_i392]) & 1;
  27734.               HEAP[$retval_i_i] = $tobool_i_i_i455;
  27735.               break;
  27736.             } else {
  27737.               HEAP[$retval_i_i] = 0;
  27738.               break;
  27739.             }
  27740.           } else {
  27741.             label = 177;
  27742.           }
  27743.         } while (0);
  27744.         if (label == 177) {
  27745.           HEAP[$retval_i_i] = 0;
  27746.         }
  27747.         HEAP[$retval_i396] = HEAP[$retval_i_i] & 1;
  27748.       } else {
  27749.         HEAP[$retval_i396] = 0;
  27750.       }
  27751.     } while (0);
  27752.     $retval = HEAP[$retval_i396] & 1;
  27753.     var $1176 = $retval;
  27754.     STACKTOP = __stackBase__;
  27755.     return $1176;
  27756.   } else {
  27757.     $retval = 1;
  27758.     var $1176 = $retval;
  27759.     STACKTOP = __stackBase__;
  27760.     return $1176;
  27761.   }
  27762. }
  27763. function __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_7ArrayOfIS2_EEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this, $c, $base) {
  27764.   var label = 0;
  27765.   var __stackBase__ = STACKTOP;
  27766.   STACKTOP = STACKTOP + 147 | 0;
  27767.   var $this_addr_i_i1_i = __stackBase__;
  27768.   var $base_addr_i_i_i12 = __stackBase__ + 4;
  27769.   var $len_addr_i_i_i13 = __stackBase__ + 8;
  27770.   var $p_i_i_i14 = __stackBase__ + 12;
  27771.   var $this_addr_i2_i = __stackBase__ + 16;
  27772.   var $obj_addr_i_i15 = __stackBase__ + 20;
  27773.   var $this_addr_i_i_i16 = __stackBase__ + 24;
  27774.   var $this_addr_i_i17 = __stackBase__ + 28;
  27775.   var $this_addr_i19 = __stackBase__ + 32;
  27776.   var $c_addr_i20 = __stackBase__ + 36;
  27777.   var $this_addr_i_i4 = __stackBase__ + 40;
  27778.   var $this_addr_i5 = __stackBase__ + 44;
  27779.   var $this_addr_i_i11_i = __stackBase__ + 48;
  27780.   var $base_addr_i_i12_i = __stackBase__ + 52;
  27781.   var $len_addr_i_i13_i = __stackBase__ + 56;
  27782.   var $p_i_i14_i = __stackBase__ + 60;
  27783.   var $this_addr_i15_i = __stackBase__ + 64;
  27784.   var $obj_addr_i_i = __stackBase__ + 68;
  27785.   var $this_addr_i_i3_i = __stackBase__ + 72;
  27786.   var $this_addr_i4_i = __stackBase__ + 76;
  27787.   var $P_addr_i_i = __stackBase__ + 80;
  27788.   var $offset_addr_i_i = __stackBase__ + 84;
  27789.   var $this_addr_i_i_i_i = __stackBase__ + 88;
  27790.   var $i_addr_i_i_i_i = __stackBase__ + 92;
  27791.   var $this_addr_i1_i_i = __stackBase__ + 94;
  27792.   var $i_addr_i_i_i = __stackBase__ + 98;
  27793.   var $retval_i_i_i = __stackBase__ + 100;
  27794.   var $this_addr_i_i_i = __stackBase__ + 101;
  27795.   var $base_addr_i_i_i = __stackBase__ + 105;
  27796.   var $len_addr_i_i_i = __stackBase__ + 109;
  27797.   var $p_i_i_i = __stackBase__ + 113;
  27798.   var $retval_i_i = __stackBase__ + 117;
  27799.   var $this_addr_i_i = __stackBase__ + 118;
  27800.   var $c_addr_i_i = __stackBase__ + 122;
  27801.   var $retval_i = __stackBase__ + 126;
  27802.   var $this_addr_i = __stackBase__ + 127;
  27803.   var $c_addr_i = __stackBase__ + 131;
  27804.   var $base_addr_i = __stackBase__ + 135;
  27805.   var $offset_i = __stackBase__ + 139;
  27806.   var $obj_i = __stackBase__ + 143;
  27807.   var $retval;
  27808.   var $c_addr;
  27809.   var $base_addr;
  27810.   var $count;
  27811.   var $i;
  27812.   $c_addr = $c;
  27813.   $base_addr = $base;
  27814.   var $this1 = $this;
  27815.   HEAP[$this_addr_i19] = $this1;
  27816.   HEAP[$c_addr_i20] = $c_addr;
  27817.   var $this1_i21 = HEAP[$this_addr_i19];
  27818.   HEAP[$this_addr_i2_i] = HEAP[$c_addr_i20];
  27819.   HEAP[$obj_addr_i_i15] = $this1_i21;
  27820.   var $7 = HEAP[$obj_addr_i_i15];
  27821.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i];
  27822.   HEAP[$base_addr_i_i_i12] = $7;
  27823.   HEAP[$len_addr_i_i_i13] = 2;
  27824.   var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  27825.   HEAP[$p_i_i_i14] = HEAP[$base_addr_i_i_i12];
  27826.   do {
  27827.     if (HEAP[$this1_i_i4_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14] >>> 0) {
  27828.       if (!(HEAP[$p_i_i_i14] >>> 0 <= HEAP[$this1_i_i4_i + 8 | 0] >>> 0)) {
  27829.         var $20 = 0;
  27830.         break;
  27831.       }
  27832.       var $20 = (HEAP[$this1_i_i4_i + 8 | 0] - HEAP[$p_i_i_i14] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13] >>> 0;
  27833.     } else {
  27834.       var $20 = 0;
  27835.     }
  27836.   } while (0);
  27837.   var $20;
  27838.   if ($20 & 1) {
  27839.     var $28 = HEAP[$c_addr_i20];
  27840.     HEAP[$this_addr_i_i17] = $this1_i21 | 0;
  27841.     HEAP[$this_addr_i_i_i16] = HEAP[$this_addr_i_i17] | 0;
  27842.     var $this1_i_i_i37 = HEAP[$this_addr_i_i_i16];
  27843.     var $36 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($28, $this1_i21, 2, ((HEAP[$this1_i_i_i37 | 0] & 255) << 8) + (HEAP[$this1_i_i_i37 + 1 | 0] & 255) & 65535);
  27844.   } else {
  27845.     var $36 = 0;
  27846.   }
  27847.   var $36;
  27848.   if (!($36 & 1)) {
  27849.     $retval = 0;
  27850.     var $162 = $retval;
  27851.     STACKTOP = __stackBase__;
  27852.     return $162;
  27853.   }
  27854.   HEAP[$this_addr_i5] = $this1 | 0;
  27855.   HEAP[$this_addr_i_i4] = HEAP[$this_addr_i5] | 0;
  27856.   var $this1_i_i7 = HEAP[$this_addr_i_i4];
  27857.   $count = ((HEAP[$this1_i_i7 | 0] & 255) << 8) + (HEAP[$this1_i_i7 + 1 | 0] & 255) & 65535;
  27858.   $i = 0;
  27859.   L275 : do {
  27860.     if ($i >>> 0 < $count >>> 0) {
  27861.       var $array = $this1 + 2 | 0;
  27862.       while (1) {
  27863.         HEAP[$this_addr_i] = ($i << 1) + $array | 0;
  27864.         HEAP[$c_addr_i] = $c_addr;
  27865.         HEAP[$base_addr_i] = $base_addr;
  27866.         var $this1_i = HEAP[$this_addr_i];
  27867.         HEAP[$this_addr_i15_i] = HEAP[$c_addr_i];
  27868.         HEAP[$obj_addr_i_i] = $this1_i;
  27869.         var $116 = HEAP[$obj_addr_i_i];
  27870.         HEAP[$this_addr_i_i11_i] = HEAP[$this_addr_i15_i];
  27871.         HEAP[$base_addr_i_i12_i] = $116;
  27872.         HEAP[$len_addr_i_i13_i] = 2;
  27873.         var $this1_i_i17_i = HEAP[$this_addr_i_i11_i];
  27874.         HEAP[$p_i_i14_i] = HEAP[$base_addr_i_i12_i];
  27875.         do {
  27876.           if (HEAP[$this1_i_i17_i + 4 | 0] >>> 0 <= HEAP[$p_i_i14_i] >>> 0) {
  27877.             if (!(HEAP[$p_i_i14_i] >>> 0 <= HEAP[$this1_i_i17_i + 8 | 0] >>> 0)) {
  27878.               var $125 = 0;
  27879.               break;
  27880.             }
  27881.             var $125 = (HEAP[$this1_i_i17_i + 8 | 0] - HEAP[$p_i_i14_i] | 0) >>> 0 >= HEAP[$len_addr_i_i13_i] >>> 0;
  27882.           } else {
  27883.             var $125 = 0;
  27884.           }
  27885.         } while (0);
  27886.         var $125;
  27887.         do {
  27888.           if ($125 & 1) {
  27889.             HEAP[$this_addr_i4_i] = $this1_i;
  27890.             HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i] | 0;
  27891.             var $this1_i_i6_i = HEAP[$this_addr_i_i3_i];
  27892.             HEAP[$offset_i] = ((HEAP[$this1_i_i6_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i + 1 | 0] & 255) & 65535;
  27893.             if ((HEAP[$offset_i] | 0) == 0) {
  27894.               var $tobool_i2_i = 1;
  27895.               HEAP[$retval_i] = $tobool_i2_i;
  27896.               var $156 = $tobool_i2_i;
  27897.               break;
  27898.             }
  27899.             var $134 = HEAP[$offset_i];
  27900.             HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  27901.             HEAP[$offset_addr_i_i] = $134;
  27902.             HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  27903.             if (__ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEES2_E8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$obj_i], HEAP[$c_addr_i])) {
  27904.               var $154 = 1;
  27905.             } else {
  27906.               var $141 = HEAP[$c_addr_i];
  27907.               HEAP[$this_addr_i_i] = $this1_i;
  27908.               HEAP[$c_addr_i_i] = $141;
  27909.               var $this1_i_i = HEAP[$this_addr_i_i];
  27910.               HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  27911.               HEAP[$base_addr_i_i_i] = $this1_i_i;
  27912.               HEAP[$len_addr_i_i_i] = 2;
  27913.               var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  27914.               do {
  27915.                 if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  27916.                   HEAP[$retval_i_i_i] = 0;
  27917.                   label = 217;
  27918.                   break;
  27919.                 } else {
  27920.                   HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  27921.                   var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  27922.                   HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  27923.                   var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  27924.                   HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  27925.                   if (!$tobool_i_i_i_i) {
  27926.                     label = 217;
  27927.                     break;
  27928.                   }
  27929.                   HEAP[$this_addr_i1_i_i] = $this1_i_i;
  27930.                   HEAP[$i_addr_i_i_i] = 0;
  27931.                   var $150 = HEAP[$i_addr_i_i_i];
  27932.                   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  27933.                   HEAP[$i_addr_i_i_i_i] = $150;
  27934.                   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  27935.                   HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  27936.                   HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  27937.                   HEAP[$retval_i_i] = 1;
  27938.                   break;
  27939.                 }
  27940.               } while (0);
  27941.               if (label == 217) {
  27942.                 label = 0;
  27943.                 HEAP[$retval_i_i] = 0;
  27944.               }
  27945.               var $154 = HEAP[$retval_i_i];
  27946.             }
  27947.             var $154;
  27948.             var $tobool_i_i = $154 & 1;
  27949.             HEAP[$retval_i] = $tobool_i_i;
  27950.             var $156 = $tobool_i_i;
  27951.           } else {
  27952.             var $tobool_i9_i = 0;
  27953.             HEAP[$retval_i] = $tobool_i9_i;
  27954.             var $156 = $tobool_i9_i;
  27955.           }
  27956.         } while (0);
  27957.         var $156;
  27958.         if (!$156) {
  27959.           break;
  27960.         }
  27961.         $i = $i + 1 | 0;
  27962.         if ($i >>> 0 >= $count >>> 0) {
  27963.           break L275;
  27964.         }
  27965.       }
  27966.       $retval = 0;
  27967.       var $162 = $retval;
  27968.       STACKTOP = __stackBase__;
  27969.       return $162;
  27970.     }
  27971.   } while (0);
  27972.   $retval = 1;
  27973.   var $162 = $retval;
  27974.   STACKTOP = __stackBase__;
  27975.   return $162;
  27976. }
  27977. function __ZN2OT4GDEF8sanitizeEPNS_21hb_sanitize_context_tE($this, $c) {
  27978.   var label = 0;
  27979.   var __stackBase__ = STACKTOP;
  27980.   STACKTOP = STACKTOP + 1091 | 0;
  27981.   var $this_addr_i_i17_i = __stackBase__;
  27982.   var $this_addr_i18_i = __stackBase__ + 4;
  27983.   var $P_addr_i_i213 = __stackBase__ + 8;
  27984.   var $offset_addr_i_i214 = __stackBase__ + 12;
  27985.   var $this_addr_i_i5_i = __stackBase__ + 16;
  27986.   var $base_addr_i_i6_i = __stackBase__ + 20;
  27987.   var $len_addr_i_i7_i = __stackBase__ + 24;
  27988.   var $p_i_i8_i = __stackBase__ + 28;
  27989.   var $this_addr_i9_i = __stackBase__ + 32;
  27990.   var $obj_addr_i_i215 = __stackBase__ + 36;
  27991.   var $this_addr_i1_i = __stackBase__ + 40;
  27992.   var $c_addr_i2_i = __stackBase__ + 44;
  27993.   var $this_addr_i_i_i_i217 = __stackBase__ + 48;
  27994.   var $i_addr_i_i_i_i218 = __stackBase__ + 52;
  27995.   var $this_addr_i1_i_i219 = __stackBase__ + 54;
  27996.   var $i_addr_i_i_i220 = __stackBase__ + 58;
  27997.   var $retval_i_i_i222 = __stackBase__ + 60;
  27998.   var $this_addr_i_i_i223 = __stackBase__ + 61;
  27999.   var $base_addr_i_i_i224 = __stackBase__ + 65;
  28000.   var $len_addr_i_i_i225 = __stackBase__ + 69;
  28001.   var $p_i_i_i226 = __stackBase__ + 73;
  28002.   var $retval_i_i227 = __stackBase__ + 77;
  28003.   var $this_addr_i_i228 = __stackBase__ + 78;
  28004.   var $c_addr_i_i229 = __stackBase__ + 82;
  28005.   var $retval_i231 = __stackBase__ + 86;
  28006.   var $this_addr_i232 = __stackBase__ + 87;
  28007.   var $c_addr_i233 = __stackBase__ + 91;
  28008.   var $base_addr_i234 = __stackBase__ + 95;
  28009.   var $offset_i235 = __stackBase__ + 99;
  28010.   var $obj_i236 = __stackBase__ + 103;
  28011.   var $P_addr_i_i53 = __stackBase__ + 107;
  28012.   var $offset_addr_i_i54 = __stackBase__ + 111;
  28013.   var $this_addr_i_i31_i55 = __stackBase__ + 115;
  28014.   var $this_addr_i32_i56 = __stackBase__ + 119;
  28015.   var $this_addr_i_i19_i59 = __stackBase__ + 123;
  28016.   var $base_addr_i_i20_i60 = __stackBase__ + 127;
  28017.   var $len_addr_i_i21_i61 = __stackBase__ + 131;
  28018.   var $p_i_i22_i62 = __stackBase__ + 135;
  28019.   var $this_addr_i23_i63 = __stackBase__ + 139;
  28020.   var $obj_addr_i_i64 = __stackBase__ + 143;
  28021.   var $this_addr_i_i45_i_i_i = __stackBase__ + 147;
  28022.   var $this_addr_i46_i_i_i = __stackBase__ + 151;
  28023.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 155;
  28024.   var $base_addr_i_i_i5_i_i_i = __stackBase__ + 159;
  28025.   var $len_addr_i_i_i6_i_i_i = __stackBase__ + 163;
  28026.   var $p_i_i_i7_i_i_i = __stackBase__ + 167;
  28027.   var $this_addr_i2_i_i_i_i = __stackBase__ + 171;
  28028.   var $obj_addr_i_i8_i_i_i = __stackBase__ + 175;
  28029.   var $this_addr_i_i_i9_i_i_i = __stackBase__ + 179;
  28030.   var $this_addr_i_i10_i_i_i = __stackBase__ + 183;
  28031.   var $this_addr_i12_i_i_i = __stackBase__ + 187;
  28032.   var $c_addr_i13_i_i_i = __stackBase__ + 191;
  28033.   var $this_addr_i_i31_i_i_i_i = __stackBase__ + 195;
  28034.   var $this_addr_i32_i_i_i_i = __stackBase__ + 199;
  28035.   var $P_addr_i_i_i_i_i = __stackBase__ + 203;
  28036.   var $offset_addr_i_i_i_i_i = __stackBase__ + 207;
  28037.   var $this_addr_i_i19_i_i_i_i = __stackBase__ + 211;
  28038.   var $base_addr_i_i20_i_i_i_i = __stackBase__ + 215;
  28039.   var $len_addr_i_i21_i_i_i_i = __stackBase__ + 219;
  28040.   var $p_i_i22_i_i_i_i = __stackBase__ + 223;
  28041.   var $this_addr_i23_i_i_i_i = __stackBase__ + 227;
  28042.   var $obj_addr_i_i_i_i_i = __stackBase__ + 231;
  28043.   var $this_addr_i_i1_i_i_i_i_i_i_i = __stackBase__ + 235;
  28044.   var $base_addr_i_i_i13_i_i_i_i_i_i = __stackBase__ + 239;
  28045.   var $len_addr_i_i_i14_i_i_i_i_i_i = __stackBase__ + 243;
  28046.   var $p_i_i_i15_i_i_i_i_i_i = __stackBase__ + 247;
  28047.   var $this_addr_i2_i_i_i_i_i_i_i = __stackBase__ + 251;
  28048.   var $obj_addr_i_i16_i_i_i_i_i_i = __stackBase__ + 255;
  28049.   var $this_addr_i_i_i17_i_i_i_i_i_i = __stackBase__ + 259;
  28050.   var $this_addr_i_i18_i_i_i_i_i_i = __stackBase__ + 263;
  28051.   var $this_addr_i20_i_i_i_i_i_i = __stackBase__ + 267;
  28052.   var $c_addr_i21_i_i_i_i_i_i = __stackBase__ + 271;
  28053.   var $this_addr_i_i4_i_i_i_i_i_i = __stackBase__ + 275;
  28054.   var $this_addr_i5_i_i_i_i_i_i = __stackBase__ + 279;
  28055.   var $this_addr_i_i28_i_i_i_i_i_i_i = __stackBase__ + 283;
  28056.   var $base_addr_i_i29_i_i_i_i_i_i_i = __stackBase__ + 287;
  28057.   var $len_addr_i_i30_i_i_i_i_i_i_i = __stackBase__ + 291;
  28058.   var $p_i_i31_i_i_i_i_i_i_i = __stackBase__ + 295;
  28059.   var $this_addr_i32_i_i_i_i_i_i_i = __stackBase__ + 299;
  28060.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 303;
  28061.   var $this_addr_i_i20_i_i_i_i_i_i_i = __stackBase__ + 307;
  28062.   var $this_addr_i21_i_i_i_i_i_i_i = __stackBase__ + 311;
  28063.   var $P_addr_i_i_i_i_i_i_i_i = __stackBase__ + 315;
  28064.   var $offset_addr_i_i_i_i_i_i_i_i = __stackBase__ + 319;
  28065.   var $this_addr_i_i_i72_i_i_i_i_i_i_i_i = __stackBase__ + 323;
  28066.   var $base_addr_i_i_i73_i_i_i_i_i_i_i_i = __stackBase__ + 327;
  28067.   var $len_addr_i_i_i74_i_i_i_i_i_i_i_i = __stackBase__ + 331;
  28068.   var $p_i_i_i75_i_i_i_i_i_i_i_i = __stackBase__ + 335;
  28069.   var $this_addr_i_i76_i_i_i_i_i_i_i_i = __stackBase__ + 339;
  28070.   var $obj_addr_i_i77_i_i_i_i_i_i_i_i = __stackBase__ + 343;
  28071.   var $this_addr_i79_i_i_i_i_i_i_i_i = __stackBase__ + 347;
  28072.   var $c_addr_i80_i_i_i_i_i_i_i_i = __stackBase__ + 351;
  28073.   var $this_addr_i_i65_i_i_i_i_i_i_i_i = __stackBase__ + 355;
  28074.   var $this_addr_i66_i_i_i_i_i_i_i_i = __stackBase__ + 359;
  28075.   var $this_addr_i_i_i38_i_i_i_i_i_i_i_i = __stackBase__ + 363;
  28076.   var $base_addr_i_i_i39_i_i_i_i_i_i_i_i = __stackBase__ + 367;
  28077.   var $len_addr_i_i_i40_i_i_i_i_i_i_i_i = __stackBase__ + 371;
  28078.   var $p_i_i_i41_i_i_i_i_i_i_i_i = __stackBase__ + 375;
  28079.   var $this_addr_i_i42_i_i_i_i_i_i_i_i = __stackBase__ + 379;
  28080.   var $obj_addr_i_i43_i_i_i_i_i_i_i_i = __stackBase__ + 383;
  28081.   var $this_addr_i45_i_i_i_i_i_i_i_i = __stackBase__ + 387;
  28082.   var $c_addr_i46_i_i_i_i_i_i_i_i = __stackBase__ + 391;
  28083.   var $this_addr_i_i_i7_i_i_i_i_i_i_i_i = __stackBase__ + 395;
  28084.   var $base_addr_i_i_i8_i_i_i_i_i_i_i_i = __stackBase__ + 399;
  28085.   var $len_addr_i_i_i9_i_i_i_i_i_i_i_i = __stackBase__ + 403;
  28086.   var $p_i_i_i10_i_i_i_i_i_i_i_i = __stackBase__ + 407;
  28087.   var $this_addr_i_i11_i_i_i_i_i_i_i_i = __stackBase__ + 411;
  28088.   var $obj_addr_i_i12_i_i_i_i_i_i_i_i = __stackBase__ + 415;
  28089.   var $this_addr_i14_i_i_i_i_i_i_i_i = __stackBase__ + 419;
  28090.   var $c_addr_i15_i_i_i_i_i_i_i_i = __stackBase__ + 423;
  28091.   var $this_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 427;
  28092.   var $base_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 431;
  28093.   var $len_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 435;
  28094.   var $p_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 439;
  28095.   var $this_addr_i_i_i1_i_i_i_i_i_i_i = __stackBase__ + 443;
  28096.   var $obj_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 447;
  28097.   var $this_addr_i_i3_i_i_i_i_i_i_i = __stackBase__ + 451;
  28098.   var $c_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 455;
  28099.   var $retval_i4_i_i_i_i_i_i_i = __stackBase__ + 459;
  28100.   var $this_addr_i5_i_i_i_i_i_i_i = __stackBase__ + 460;
  28101.   var $c_addr_i6_i_i_i_i_i_i_i = __stackBase__ + 464;
  28102.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 468;
  28103.   var $i_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 472;
  28104.   var $this_addr_i1_i_i_i_i_i_i_i_i = __stackBase__ + 474;
  28105.   var $i_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 478;
  28106.   var $retval_i_i_i_i_i_i_i_i_i = __stackBase__ + 480;
  28107.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 481;
  28108.   var $base_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 485;
  28109.   var $len_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 489;
  28110.   var $p_i_i_i_i_i_i_i_i_i = __stackBase__ + 493;
  28111.   var $retval_i_i_i_i_i_i_i_i = __stackBase__ + 497;
  28112.   var $this_addr_i_i_i_i_i_i_i_i65 = __stackBase__ + 498;
  28113.   var $c_addr_i_i_i_i_i_i_i_i = __stackBase__ + 502;
  28114.   var $retval_i_i_i_i_i_i_i67 = __stackBase__ + 506;
  28115.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 507;
  28116.   var $c_addr_i_i_i_i_i_i_i = __stackBase__ + 511;
  28117.   var $base_addr_i_i_i_i_i_i_i68 = __stackBase__ + 515;
  28118.   var $offset_i_i_i_i_i_i_i = __stackBase__ + 519;
  28119.   var $obj_i_i_i_i_i_i_i = __stackBase__ + 523;
  28120.   var $retval_i_i3_i_i_i_i = __stackBase__ + 527;
  28121.   var $this_addr_i_i4_i_i_i_i69 = __stackBase__ + 528;
  28122.   var $c_addr_i_i_i_i_i_i70 = __stackBase__ + 532;
  28123.   var $base_addr_i_i5_i_i_i_i = __stackBase__ + 536;
  28124.   var $count_i_i_i_i_i_i = __stackBase__ + 540;
  28125.   var $i_i_i_i_i_i_i = __stackBase__ + 544;
  28126.   var $this_addr_i6_i_i_i_i = __stackBase__ + 548;
  28127.   var $c_addr_i7_i_i_i_i = __stackBase__ + 552;
  28128.   var $this_addr_i_i_i_i_i_i_i72 = __stackBase__ + 556;
  28129.   var $i_addr_i_i_i_i_i_i_i73 = __stackBase__ + 560;
  28130.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 562;
  28131.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 566;
  28132.   var $retval_i_i_i_i_i_i74 = __stackBase__ + 568;
  28133.   var $this_addr_i_i_i_i_i_i75 = __stackBase__ + 569;
  28134.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 573;
  28135.   var $len_addr_i_i_i_i_i_i = __stackBase__ + 577;
  28136.   var $p_i_i_i_i_i_i = __stackBase__ + 581;
  28137.   var $retval_i_i_i_i_i76 = __stackBase__ + 585;
  28138.   var $this_addr_i_i_i_i_i77 = __stackBase__ + 586;
  28139.   var $c_addr_i_i_i_i_i78 = __stackBase__ + 590;
  28140.   var $retval_i_i_i_i80 = __stackBase__ + 594;
  28141.   var $this_addr_i_i_i1_i81 = __stackBase__ + 595;
  28142.   var $c_addr_i_i_i_i82 = __stackBase__ + 599;
  28143.   var $base_addr_i_i_i_i83 = __stackBase__ + 603;
  28144.   var $offset_i_i_i_i = __stackBase__ + 607;
  28145.   var $obj_i_i_i_i = __stackBase__ + 611;
  28146.   var $retval_i_i3_i = __stackBase__ + 615;
  28147.   var $this_addr_i_i4_i = __stackBase__ + 616;
  28148.   var $c_addr_i_i_i85 = __stackBase__ + 620;
  28149.   var $base_addr_i_i5_i = __stackBase__ + 624;
  28150.   var $count_i_i_i = __stackBase__ + 628;
  28151.   var $i_i_i_i = __stackBase__ + 632;
  28152.   var $this_addr_i6_i = __stackBase__ + 636;
  28153.   var $c_addr_i7_i = __stackBase__ + 640;
  28154.   var $this_addr_i_i_i_i87 = __stackBase__ + 644;
  28155.   var $i_addr_i_i_i_i88 = __stackBase__ + 648;
  28156.   var $this_addr_i1_i_i89 = __stackBase__ + 650;
  28157.   var $i_addr_i_i_i90 = __stackBase__ + 654;
  28158.   var $retval_i_i_i92 = __stackBase__ + 656;
  28159.   var $this_addr_i_i_i93 = __stackBase__ + 657;
  28160.   var $base_addr_i_i_i94 = __stackBase__ + 661;
  28161.   var $len_addr_i_i_i95 = __stackBase__ + 665;
  28162.   var $p_i_i_i96 = __stackBase__ + 669;
  28163.   var $retval_i_i97 = __stackBase__ + 673;
  28164.   var $this_addr_i_i98 = __stackBase__ + 674;
  28165.   var $c_addr_i_i99 = __stackBase__ + 678;
  28166.   var $retval_i101 = __stackBase__ + 682;
  28167.   var $this_addr_i102 = __stackBase__ + 683;
  28168.   var $c_addr_i103 = __stackBase__ + 687;
  28169.   var $base_addr_i104 = __stackBase__ + 691;
  28170.   var $offset_i105 = __stackBase__ + 695;
  28171.   var $obj_i106 = __stackBase__ + 699;
  28172.   var $this_addr_i_i47 = __stackBase__ + 703;
  28173.   var $this_addr_i48 = __stackBase__ + 707;
  28174.   var $this_addr_i_i1_i = __stackBase__ + 711;
  28175.   var $this_addr_i2_i = __stackBase__ + 715;
  28176.   var $this_addr_i_i_i30 = __stackBase__ + 719;
  28177.   var $this_addr_i_i31 = __stackBase__ + 723;
  28178.   var $this_addr_i32 = __stackBase__ + 727;
  28179.   var $this_addr_i_i_i3 = __stackBase__ + 731;
  28180.   var $base_addr_i_i_i4 = __stackBase__ + 735;
  28181.   var $len_addr_i_i_i5 = __stackBase__ + 739;
  28182.   var $p_i_i_i6 = __stackBase__ + 743;
  28183.   var $this_addr_i_i7 = __stackBase__ + 747;
  28184.   var $obj_addr_i_i8 = __stackBase__ + 751;
  28185.   var $this_addr_i10 = __stackBase__ + 755;
  28186.   var $c_addr_i11 = __stackBase__ + 759;
  28187.   var $this_addr_i_i31_i = __stackBase__ + 763;
  28188.   var $this_addr_i32_i = __stackBase__ + 767;
  28189.   var $P_addr_i_i = __stackBase__ + 771;
  28190.   var $offset_addr_i_i = __stackBase__ + 775;
  28191.   var $this_addr_i_i19_i = __stackBase__ + 779;
  28192.   var $base_addr_i_i20_i = __stackBase__ + 783;
  28193.   var $len_addr_i_i21_i = __stackBase__ + 787;
  28194.   var $p_i_i22_i = __stackBase__ + 791;
  28195.   var $this_addr_i23_i = __stackBase__ + 795;
  28196.   var $obj_addr_i_i = __stackBase__ + 799;
  28197.   var $this_addr_i_i18_i_i = __stackBase__ + 803;
  28198.   var $this_addr_i19_i_i = __stackBase__ + 807;
  28199.   var $this_addr_i_i_i4_i_i = __stackBase__ + 811;
  28200.   var $base_addr_i_i_i5_i_i = __stackBase__ + 815;
  28201.   var $len_addr_i_i_i_i_i = __stackBase__ + 819;
  28202.   var $p_i_i_i_i_i = __stackBase__ + 823;
  28203.   var $this_addr_i_i6_i_i = __stackBase__ + 827;
  28204.   var $obj_addr_i_i_i_i = __stackBase__ + 831;
  28205.   var $this_addr_i8_i_i = __stackBase__ + 835;
  28206.   var $c_addr_i9_i_i = __stackBase__ + 839;
  28207.   var $this_addr_i_i1_i_i_i_i_i = __stackBase__ + 843;
  28208.   var $base_addr_i_i_i12_i_i_i_i = __stackBase__ + 847;
  28209.   var $len_addr_i_i_i13_i_i_i_i = __stackBase__ + 851;
  28210.   var $p_i_i_i14_i_i_i_i = __stackBase__ + 855;
  28211.   var $this_addr_i2_i_i_i_i_i = __stackBase__ + 859;
  28212.   var $obj_addr_i_i15_i_i_i_i = __stackBase__ + 863;
  28213.   var $this_addr_i_i_i16_i_i_i_i = __stackBase__ + 867;
  28214.   var $this_addr_i_i17_i_i_i_i = __stackBase__ + 871;
  28215.   var $this_addr_i19_i_i_i_i = __stackBase__ + 875;
  28216.   var $c_addr_i20_i_i_i_i = __stackBase__ + 879;
  28217.   var $this_addr_i_i4_i_i_i_i = __stackBase__ + 883;
  28218.   var $this_addr_i5_i_i_i_i = __stackBase__ + 887;
  28219.   var $this_addr_i_i11_i_i_i_i_i = __stackBase__ + 891;
  28220.   var $base_addr_i_i12_i_i_i_i_i = __stackBase__ + 895;
  28221.   var $len_addr_i_i13_i_i_i_i_i = __stackBase__ + 899;
  28222.   var $p_i_i14_i_i_i_i_i = __stackBase__ + 903;
  28223.   var $this_addr_i15_i_i_i_i_i = __stackBase__ + 907;
  28224.   var $obj_addr_i_i_i_i_i_i = __stackBase__ + 911;
  28225.   var $this_addr_i_i3_i_i_i_i_i = __stackBase__ + 915;
  28226.   var $this_addr_i4_i_i_i_i_i = __stackBase__ + 919;
  28227.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 923;
  28228.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 927;
  28229.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 931;
  28230.   var $i_addr_i_i_i_i_i_i_i_i = __stackBase__ + 935;
  28231.   var $this_addr_i1_i_i_i_i_i_i = __stackBase__ + 939;
  28232.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 943;
  28233.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 947;
  28234.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 948;
  28235.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 952;
  28236.   var $len_addr_i_i_i_i_i_i_i = __stackBase__ + 956;
  28237.   var $p_i_i_i_i_i_i_i = __stackBase__ + 960;
  28238.   var $retval_i_i_i_i_i_i = __stackBase__ + 964;
  28239.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 965;
  28240.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 969;
  28241.   var $retval_i_i_i_i_i = __stackBase__ + 973;
  28242.   var $this_addr_i_i_i_i_i = __stackBase__ + 974;
  28243.   var $c_addr_i_i_i_i_i = __stackBase__ + 978;
  28244.   var $base_addr_i_i_i_i_i = __stackBase__ + 982;
  28245.   var $offset_i_i_i_i_i = __stackBase__ + 986;
  28246.   var $obj_i_i_i_i_i = __stackBase__ + 990;
  28247.   var $retval_i_i_i_i = __stackBase__ + 994;
  28248.   var $this_addr_i_i_i1_i = __stackBase__ + 995;
  28249.   var $c_addr_i_i_i_i = __stackBase__ + 999;
  28250.   var $base_addr_i_i_i_i = __stackBase__ + 1003;
  28251.   var $count_i_i_i_i = __stackBase__ + 1007;
  28252.   var $i_i_i_i_i = __stackBase__ + 1011;
  28253.   var $this_addr_i_i3_i = __stackBase__ + 1015;
  28254.   var $c_addr_i_i_i = __stackBase__ + 1019;
  28255.   var $retval_i4_i = __stackBase__ + 1023;
  28256.   var $this_addr_i5_i = __stackBase__ + 1024;
  28257.   var $c_addr_i6_i = __stackBase__ + 1028;
  28258.   var $this_addr_i_i_i_i = __stackBase__ + 1032;
  28259.   var $i_addr_i_i_i_i = __stackBase__ + 1036;
  28260.   var $this_addr_i1_i_i = __stackBase__ + 1038;
  28261.   var $i_addr_i_i_i = __stackBase__ + 1042;
  28262.   var $retval_i_i_i = __stackBase__ + 1044;
  28263.   var $this_addr_i_i_i = __stackBase__ + 1045;
  28264.   var $base_addr_i_i_i = __stackBase__ + 1049;
  28265.   var $len_addr_i_i_i = __stackBase__ + 1053;
  28266.   var $p_i_i_i = __stackBase__ + 1057;
  28267.   var $retval_i_i = __stackBase__ + 1061;
  28268.   var $this_addr_i_i = __stackBase__ + 1062;
  28269.   var $c_addr_i_i = __stackBase__ + 1066;
  28270.   var $retval_i = __stackBase__ + 1070;
  28271.   var $this_addr_i = __stackBase__ + 1071;
  28272.   var $c_addr_i = __stackBase__ + 1075;
  28273.   var $base_addr_i = __stackBase__ + 1079;
  28274.   var $offset_i = __stackBase__ + 1083;
  28275.   var $obj_i = __stackBase__ + 1087;
  28276.   var $v_addr_i;
  28277.   var $c_addr;
  28278.   $c_addr = $c;
  28279.   var $this1 = $this;
  28280.   HEAP[$this_addr_i10] = $this1 | 0;
  28281.   HEAP[$c_addr_i11] = $c_addr;
  28282.   var $this1_i12 = HEAP[$this_addr_i10];
  28283.   HEAP[$this_addr_i_i7] = HEAP[$c_addr_i11];
  28284.   HEAP[$obj_addr_i_i8] = $this1_i12;
  28285.   var $7 = HEAP[$obj_addr_i_i8];
  28286.   HEAP[$this_addr_i_i_i3] = HEAP[$this_addr_i_i7];
  28287.   HEAP[$base_addr_i_i_i4] = $7;
  28288.   HEAP[$len_addr_i_i_i5] = 4;
  28289.   var $this1_i_i_i14 = HEAP[$this_addr_i_i_i3];
  28290.   HEAP[$p_i_i_i6] = HEAP[$base_addr_i_i_i4];
  28291.   do {
  28292.     if (HEAP[$this1_i_i_i14 + 4 | 0] >>> 0 <= HEAP[$p_i_i_i6] >>> 0) {
  28293.       if (!(HEAP[$p_i_i_i6] >>> 0 <= HEAP[$this1_i_i_i14 + 8 | 0] >>> 0)) {
  28294.         var $20 = 0;
  28295.         break;
  28296.       }
  28297.       var $20 = (HEAP[$this1_i_i_i14 + 8 | 0] - HEAP[$p_i_i_i6] | 0) >>> 0 >= HEAP[$len_addr_i_i_i5] >>> 0;
  28298.     } else {
  28299.       var $20 = 0;
  28300.     }
  28301.   } while (0);
  28302.   var $20;
  28303.   if (!($20 & 1 & 1)) {
  28304.     var $1151 = 0;
  28305.     var $1151;
  28306.     var $frombool_i = $1151 & 1;
  28307.     $v_addr_i = $frombool_i;
  28308.     var $1152 = $v_addr_i;
  28309.     var $tobool_i = $1152 & 1;
  28310.     STACKTOP = __stackBase__;
  28311.     return $tobool_i;
  28312.   }
  28313.   HEAP[$this_addr_i48] = $this1 | 0;
  28314.   HEAP[$this_addr_i_i47] = HEAP[$this_addr_i48] | 0;
  28315.   var $this1_i_i50 = HEAP[$this_addr_i_i47];
  28316.   if ((((HEAP[$this1_i_i50 | 0] & 255) << 8) + (HEAP[$this1_i_i50 + 1 | 0] & 255) & 65535 | 0) != 1) {
  28317.     var $1151 = 0;
  28318.     var $1151;
  28319.     var $frombool_i = $1151 & 1;
  28320.     $v_addr_i = $frombool_i;
  28321.     var $1152 = $v_addr_i;
  28322.     var $tobool_i = $1152 & 1;
  28323.     STACKTOP = __stackBase__;
  28324.     return $tobool_i;
  28325.   }
  28326.   if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1 + 4 | 0, $c_addr, $this1)) {
  28327.     var $1151 = 0;
  28328.     var $1151;
  28329.     var $frombool_i = $1151 & 1;
  28330.     $v_addr_i = $frombool_i;
  28331.     var $1152 = $v_addr_i;
  28332.     var $tobool_i = $1152 & 1;
  28333.     STACKTOP = __stackBase__;
  28334.     return $tobool_i;
  28335.   }
  28336.   HEAP[$this_addr_i232] = $this1 + 6 | 0;
  28337.   HEAP[$c_addr_i233] = $c_addr;
  28338.   HEAP[$base_addr_i234] = $this1;
  28339.   var $this1_i237 = HEAP[$this_addr_i232];
  28340.   HEAP[$this_addr_i9_i] = HEAP[$c_addr_i233];
  28341.   HEAP[$obj_addr_i_i215] = $this1_i237;
  28342.   var $53 = HEAP[$obj_addr_i_i215];
  28343.   HEAP[$this_addr_i_i5_i] = HEAP[$this_addr_i9_i];
  28344.   HEAP[$base_addr_i_i6_i] = $53;
  28345.   HEAP[$len_addr_i_i7_i] = 2;
  28346.   var $this1_i_i11_i = HEAP[$this_addr_i_i5_i];
  28347.   HEAP[$p_i_i8_i] = HEAP[$base_addr_i_i6_i];
  28348.   do {
  28349.     if (HEAP[$this1_i_i11_i + 4 | 0] >>> 0 <= HEAP[$p_i_i8_i] >>> 0) {
  28350.       if (!(HEAP[$p_i_i8_i] >>> 0 <= HEAP[$this1_i_i11_i + 8 | 0] >>> 0)) {
  28351.         var $66 = 0;
  28352.         break;
  28353.       }
  28354.       var $66 = (HEAP[$this1_i_i11_i + 8 | 0] - HEAP[$p_i_i8_i] | 0) >>> 0 >= HEAP[$len_addr_i_i7_i] >>> 0;
  28355.     } else {
  28356.       var $66 = 0;
  28357.     }
  28358.   } while (0);
  28359.   var $66;
  28360.   do {
  28361.     if ($66 & 1) {
  28362.       HEAP[$this_addr_i18_i] = $this1_i237;
  28363.       HEAP[$this_addr_i_i17_i] = HEAP[$this_addr_i18_i] | 0;
  28364.       var $this1_i_i20_i = HEAP[$this_addr_i_i17_i];
  28365.       HEAP[$offset_i235] = ((HEAP[$this1_i_i20_i | 0] & 255) << 8) + (HEAP[$this1_i_i20_i + 1 | 0] & 255) & 65535;
  28366.       if ((HEAP[$offset_i235] | 0) == 0) {
  28367.         var $tobool_i16_i = 1;
  28368.         HEAP[$retval_i231] = $tobool_i16_i;
  28369.         var $151 = $tobool_i16_i;
  28370.         break;
  28371.       }
  28372.       var $85 = HEAP[$offset_i235];
  28373.       HEAP[$P_addr_i_i213] = HEAP[$base_addr_i234];
  28374.       HEAP[$offset_addr_i_i214] = $85;
  28375.       HEAP[$obj_i236] = HEAP[$P_addr_i_i213] + HEAP[$offset_addr_i_i214] | 0;
  28376.       var $94 = HEAP[$c_addr_i233];
  28377.       HEAP[$this_addr_i1_i] = HEAP[$obj_i236];
  28378.       HEAP[$c_addr_i2_i] = $94;
  28379.       var $this1_i3_i263 = HEAP[$this_addr_i1_i];
  28380.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i3_i263 | 0, HEAP[$c_addr_i2_i], $this1_i3_i263)) {
  28381.         var $103 = __ZN2OT14GenericArrayOfINS_7IntTypeItLj2EEENS_8OffsetToINS_7ArrayOfIS2_EEEEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i3_i263 + 2 | 0, HEAP[$c_addr_i2_i], $this1_i3_i263);
  28382.       } else {
  28383.         var $103 = 0;
  28384.       }
  28385.       var $103;
  28386.       if ($103 & 1) {
  28387.         var $149 = 1;
  28388.       } else {
  28389.         var $107 = HEAP[$c_addr_i233];
  28390.         HEAP[$this_addr_i_i228] = $this1_i237;
  28391.         HEAP[$c_addr_i_i229] = $107;
  28392.         var $this1_i_i270 = HEAP[$this_addr_i_i228];
  28393.         HEAP[$this_addr_i_i_i223] = HEAP[$c_addr_i_i229];
  28394.         HEAP[$base_addr_i_i_i224] = $this1_i_i270;
  28395.         HEAP[$len_addr_i_i_i225] = 2;
  28396.         var $this1_i_i_i271 = HEAP[$this_addr_i_i_i223];
  28397.         do {
  28398.           if (HEAP[$this1_i_i_i271 + 16 | 0] >>> 0 >= 100) {
  28399.             HEAP[$retval_i_i_i222] = 0;
  28400.             label = 248;
  28401.             break;
  28402.           } else {
  28403.             HEAP[$p_i_i_i226] = HEAP[$base_addr_i_i_i224];
  28404.             var $edit_count2_i_i_i276 = $this1_i_i_i271 + 16 | 0;
  28405.             HEAP[$edit_count2_i_i_i276] = HEAP[$edit_count2_i_i_i276] + 1 | 0;
  28406.             var $tobool_i_i_i_i281 = HEAP[$this1_i_i_i271 + 12 | 0] & 1 & 1;
  28407.             HEAP[$retval_i_i_i222] = $tobool_i_i_i_i281;
  28408.             if (!$tobool_i_i_i_i281) {
  28409.               label = 248;
  28410.               break;
  28411.             }
  28412.             HEAP[$this_addr_i1_i_i219] = $this1_i_i270;
  28413.             HEAP[$i_addr_i_i_i220] = 0;
  28414.             var $136 = HEAP[$i_addr_i_i_i220];
  28415.             HEAP[$this_addr_i_i_i_i217] = HEAP[$this_addr_i1_i_i219] | 0;
  28416.             HEAP[$i_addr_i_i_i_i218] = $136;
  28417.             var $this1_i_i_i_i285 = HEAP[$this_addr_i_i_i_i217];
  28418.             HEAP[$this1_i_i_i_i285 | 0] = (HEAP[$i_addr_i_i_i_i218] & 65535) >> 8 & 255;
  28419.             HEAP[$this1_i_i_i_i285 + 1 | 0] = HEAP[$i_addr_i_i_i_i218] & 255;
  28420.             HEAP[$retval_i_i227] = 1;
  28421.             break;
  28422.           }
  28423.         } while (0);
  28424.         if (label == 248) {
  28425.           HEAP[$retval_i_i227] = 0;
  28426.         }
  28427.         var $149 = HEAP[$retval_i_i227];
  28428.       }
  28429.       var $149;
  28430.       var $tobool_i_i297 = $149 & 1;
  28431.       HEAP[$retval_i231] = $tobool_i_i297;
  28432.       var $151 = $tobool_i_i297;
  28433.     } else {
  28434.       var $tobool_i23_i = 0;
  28435.       HEAP[$retval_i231] = $tobool_i23_i;
  28436.       var $151 = $tobool_i23_i;
  28437.     }
  28438.   } while (0);
  28439.   var $151;
  28440.   if (!$151) {
  28441.     var $1151 = 0;
  28442.     var $1151;
  28443.     var $frombool_i = $1151 & 1;
  28444.     $v_addr_i = $frombool_i;
  28445.     var $1152 = $v_addr_i;
  28446.     var $tobool_i = $1152 & 1;
  28447.     STACKTOP = __stackBase__;
  28448.     return $tobool_i;
  28449.   }
  28450.   HEAP[$this_addr_i102] = $this1 + 8 | 0;
  28451.   HEAP[$c_addr_i103] = $c_addr;
  28452.   HEAP[$base_addr_i104] = $this1;
  28453.   var $this1_i107 = HEAP[$this_addr_i102];
  28454.   HEAP[$this_addr_i23_i63] = HEAP[$c_addr_i103];
  28455.   HEAP[$obj_addr_i_i64] = $this1_i107;
  28456.   var $171 = HEAP[$obj_addr_i_i64];
  28457.   HEAP[$this_addr_i_i19_i59] = HEAP[$this_addr_i23_i63];
  28458.   HEAP[$base_addr_i_i20_i60] = $171;
  28459.   HEAP[$len_addr_i_i21_i61] = 2;
  28460.   var $this1_i_i25_i109 = HEAP[$this_addr_i_i19_i59];
  28461.   HEAP[$p_i_i22_i62] = HEAP[$base_addr_i_i20_i60];
  28462.   do {
  28463.     if (HEAP[$this1_i_i25_i109 + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i62] >>> 0) {
  28464.       if (!(HEAP[$p_i_i22_i62] >>> 0 <= HEAP[$this1_i_i25_i109 + 8 | 0] >>> 0)) {
  28465.         var $184 = 0;
  28466.         break;
  28467.       }
  28468.       var $184 = (HEAP[$this1_i_i25_i109 + 8 | 0] - HEAP[$p_i_i22_i62] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i61] >>> 0;
  28469.     } else {
  28470.       var $184 = 0;
  28471.     }
  28472.   } while (0);
  28473.   var $184;
  28474.   do {
  28475.     if ($184 & 1) {
  28476.       HEAP[$this_addr_i32_i56] = $this1_i107;
  28477.       HEAP[$this_addr_i_i31_i55] = HEAP[$this_addr_i32_i56] | 0;
  28478.       var $this1_i_i34_i127 = HEAP[$this_addr_i_i31_i55];
  28479.       HEAP[$offset_i105] = ((HEAP[$this1_i_i34_i127 | 0] & 255) << 8) + (HEAP[$this1_i_i34_i127 + 1 | 0] & 255) & 65535;
  28480.       if ((HEAP[$offset_i105] | 0) == 0) {
  28481.         var $tobool_i39_i = 1;
  28482.         HEAP[$retval_i101] = $tobool_i39_i;
  28483.         var $782 = $tobool_i39_i;
  28484.         break;
  28485.       }
  28486.       var $203 = HEAP[$offset_i105];
  28487.       HEAP[$P_addr_i_i53] = HEAP[$base_addr_i104];
  28488.       HEAP[$offset_addr_i_i54] = $203;
  28489.       HEAP[$obj_i106] = HEAP[$P_addr_i_i53] + HEAP[$offset_addr_i_i54] | 0;
  28490.       var $212 = HEAP[$c_addr_i103];
  28491.       HEAP[$this_addr_i6_i] = HEAP[$obj_i106];
  28492.       HEAP[$c_addr_i7_i] = $212;
  28493.       var $this1_i8_i = HEAP[$this_addr_i6_i];
  28494.       if (__ZN2OT15GenericOffsetToINS_6OffsetENS_8CoverageEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i8_i | 0, HEAP[$c_addr_i7_i], $this1_i8_i)) {
  28495.         var $219 = HEAP[$c_addr_i7_i];
  28496.         HEAP[$this_addr_i_i4_i] = $this1_i8_i + 2 | 0;
  28497.         HEAP[$c_addr_i_i_i85] = $219;
  28498.         HEAP[$base_addr_i_i5_i] = $this1_i8_i;
  28499.         var $this1_i_i9_i = HEAP[$this_addr_i_i4_i];
  28500.         var $227 = HEAP[$c_addr_i_i_i85];
  28501.         HEAP[$this_addr_i12_i_i_i] = $this1_i_i9_i;
  28502.         HEAP[$c_addr_i13_i_i_i] = $227;
  28503.         var $this1_i14_i_i_i = HEAP[$this_addr_i12_i_i_i];
  28504.         HEAP[$this_addr_i2_i_i_i_i] = HEAP[$c_addr_i13_i_i_i];
  28505.         HEAP[$obj_addr_i_i8_i_i_i] = $this1_i14_i_i_i;
  28506.         var $234 = HEAP[$obj_addr_i_i8_i_i_i];
  28507.         HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i];
  28508.         HEAP[$base_addr_i_i_i5_i_i_i] = $234;
  28509.         HEAP[$len_addr_i_i_i6_i_i_i] = 2;
  28510.         var $this1_i_i4_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i];
  28511.         HEAP[$p_i_i_i7_i_i_i] = HEAP[$base_addr_i_i_i5_i_i_i];
  28512.         do {
  28513.           if (HEAP[$this1_i_i4_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i7_i_i_i] >>> 0) {
  28514.             if (!(HEAP[$p_i_i_i7_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i + 8 | 0] >>> 0)) {
  28515.               var $247 = 0;
  28516.               break;
  28517.             }
  28518.             var $247 = (HEAP[$this1_i_i4_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i7_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i6_i_i_i] >>> 0;
  28519.           } else {
  28520.             var $247 = 0;
  28521.           }
  28522.         } while (0);
  28523.         var $247;
  28524.         if ($247 & 1) {
  28525.           var $255 = HEAP[$c_addr_i13_i_i_i];
  28526.           HEAP[$this_addr_i_i10_i_i_i] = $this1_i14_i_i_i | 0;
  28527.           HEAP[$this_addr_i_i_i9_i_i_i] = HEAP[$this_addr_i_i10_i_i_i] | 0;
  28528.           var $this1_i_i_i30_i_i_i = HEAP[$this_addr_i_i_i9_i_i_i];
  28529.           var $263 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($255, $this1_i14_i_i_i, 2, ((HEAP[$this1_i_i_i30_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i30_i_i_i + 1 | 0] & 255) & 65535);
  28530.         } else {
  28531.           var $263 = 0;
  28532.         }
  28533.         var $263;
  28534.         L365 : do {
  28535.           if ($263 & 1) {
  28536.             HEAP[$this_addr_i46_i_i_i] = $this1_i_i9_i | 0;
  28537.             HEAP[$this_addr_i_i45_i_i_i] = HEAP[$this_addr_i46_i_i_i] | 0;
  28538.             var $this1_i_i48_i_i_i = HEAP[$this_addr_i_i45_i_i_i];
  28539.             HEAP[$count_i_i_i] = ((HEAP[$this1_i_i48_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i48_i_i_i + 1 | 0] & 255) & 65535;
  28540.             HEAP[$i_i_i_i] = 0;
  28541.             L368 : do {
  28542.               if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  28543.                 var $array_i_i_i = $this1_i_i9_i + 2 | 0;
  28544.                 while (1) {
  28545.                   var $526 = HEAP[$c_addr_i_i_i85];
  28546.                   var $527 = HEAP[$base_addr_i_i5_i];
  28547.                   HEAP[$this_addr_i_i_i1_i81] = (HEAP[$i_i_i_i] << 1) + $array_i_i_i | 0;
  28548.                   HEAP[$c_addr_i_i_i_i82] = $526;
  28549.                   HEAP[$base_addr_i_i_i_i83] = $527;
  28550.                   var $this1_i_i_i13_i145 = HEAP[$this_addr_i_i_i1_i81];
  28551.                   HEAP[$this_addr_i23_i_i_i_i] = HEAP[$c_addr_i_i_i_i82];
  28552.                   HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i13_i145;
  28553.                   var $530 = HEAP[$obj_addr_i_i_i_i_i];
  28554.                   HEAP[$this_addr_i_i19_i_i_i_i] = HEAP[$this_addr_i23_i_i_i_i];
  28555.                   HEAP[$base_addr_i_i20_i_i_i_i] = $530;
  28556.                   HEAP[$len_addr_i_i21_i_i_i_i] = 2;
  28557.                   var $this1_i_i25_i_i_i_i = HEAP[$this_addr_i_i19_i_i_i_i];
  28558.                   HEAP[$p_i_i22_i_i_i_i] = HEAP[$base_addr_i_i20_i_i_i_i];
  28559.                   do {
  28560.                     if (HEAP[$this1_i_i25_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i_i_i_i] >>> 0) {
  28561.                       if (!(HEAP[$p_i_i22_i_i_i_i] >>> 0 <= HEAP[$this1_i_i25_i_i_i_i + 8 | 0] >>> 0)) {
  28562.                         var $539 = 0;
  28563.                         break;
  28564.                       }
  28565.                       var $539 = (HEAP[$this1_i_i25_i_i_i_i + 8 | 0] - HEAP[$p_i_i22_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i_i_i_i] >>> 0;
  28566.                     } else {
  28567.                       var $539 = 0;
  28568.                     }
  28569.                   } while (0);
  28570.                   var $539;
  28571.                   do {
  28572.                     if ($539 & 1) {
  28573.                       HEAP[$this_addr_i32_i_i_i_i] = $this1_i_i_i13_i145;
  28574.                       HEAP[$this_addr_i_i31_i_i_i_i] = HEAP[$this_addr_i32_i_i_i_i] | 0;
  28575.                       var $this1_i_i34_i_i_i_i = HEAP[$this_addr_i_i31_i_i_i_i];
  28576.                       HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i34_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i_i_i_i + 1 | 0] & 255) & 65535;
  28577.                       if ((HEAP[$offset_i_i_i_i] | 0) == 0) {
  28578.                         var $tobool_i30_i_i_i_i = 1;
  28579.                         HEAP[$retval_i_i_i_i80] = $tobool_i30_i_i_i_i;
  28580.                         var $721 = $tobool_i30_i_i_i_i;
  28581.                         break;
  28582.                       }
  28583.                       var $548 = HEAP[$offset_i_i_i_i];
  28584.                       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i83];
  28585.                       HEAP[$offset_addr_i_i_i_i_i] = $548;
  28586.                       HEAP[$obj_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  28587.                       var $553 = HEAP[$c_addr_i_i_i_i82];
  28588.                       HEAP[$this_addr_i6_i_i_i_i] = HEAP[$obj_i_i_i_i];
  28589.                       HEAP[$c_addr_i7_i_i_i_i] = $553;
  28590.                       var $this1_i8_i_i_i_i = HEAP[$this_addr_i6_i_i_i_i];
  28591.                       var $555 = HEAP[$c_addr_i7_i_i_i_i];
  28592.                       HEAP[$this_addr_i_i4_i_i_i_i69] = $this1_i8_i_i_i_i | 0;
  28593.                       HEAP[$c_addr_i_i_i_i_i_i70] = $555;
  28594.                       HEAP[$base_addr_i_i5_i_i_i_i] = $this1_i8_i_i_i_i;
  28595.                       var $this1_i_i9_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i69];
  28596.                       var $557 = HEAP[$c_addr_i_i_i_i_i_i70];
  28597.                       HEAP[$this_addr_i20_i_i_i_i_i_i] = $this1_i_i9_i_i_i_i;
  28598.                       HEAP[$c_addr_i21_i_i_i_i_i_i] = $557;
  28599.                       var $this1_i22_i_i_i_i_i_i = HEAP[$this_addr_i20_i_i_i_i_i_i];
  28600.                       HEAP[$this_addr_i2_i_i_i_i_i_i_i] = HEAP[$c_addr_i21_i_i_i_i_i_i];
  28601.                       HEAP[$obj_addr_i_i16_i_i_i_i_i_i] = $this1_i22_i_i_i_i_i_i;
  28602.                       var $560 = HEAP[$obj_addr_i_i16_i_i_i_i_i_i];
  28603.                       HEAP[$this_addr_i_i1_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i];
  28604.                       HEAP[$base_addr_i_i_i13_i_i_i_i_i_i] = $560;
  28605.                       HEAP[$len_addr_i_i_i14_i_i_i_i_i_i] = 2;
  28606.                       var $this1_i_i4_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i];
  28607.                       HEAP[$p_i_i_i15_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i13_i_i_i_i_i_i];
  28608.                       do {
  28609.                         if (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i15_i_i_i_i_i_i] >>> 0) {
  28610.                           if (!(HEAP[$p_i_i_i15_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  28611.                             var $569 = 0;
  28612.                             break;
  28613.                           }
  28614.                           var $569 = (HEAP[$this1_i_i4_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i15_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i14_i_i_i_i_i_i] >>> 0;
  28615.                         } else {
  28616.                           var $569 = 0;
  28617.                         }
  28618.                       } while (0);
  28619.                       var $569;
  28620.                       if ($569 & 1) {
  28621.                         var $571 = HEAP[$c_addr_i21_i_i_i_i_i_i];
  28622.                         HEAP[$this_addr_i_i18_i_i_i_i_i_i] = $this1_i22_i_i_i_i_i_i | 0;
  28623.                         HEAP[$this_addr_i_i_i17_i_i_i_i_i_i] = HEAP[$this_addr_i_i18_i_i_i_i_i_i] | 0;
  28624.                         var $this1_i_i_i38_i_i_i_i_i_i = HEAP[$this_addr_i_i_i17_i_i_i_i_i_i];
  28625.                         var $575 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($571, $this1_i22_i_i_i_i_i_i, 2, ((HEAP[$this1_i_i_i38_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i38_i_i_i_i_i_i + 1 | 0] & 255) & 65535);
  28626.                       } else {
  28627.                         var $575 = 0;
  28628.                       }
  28629.                       var $575;
  28630.                       L389 : do {
  28631.                         if ($575 & 1) {
  28632.                           HEAP[$this_addr_i5_i_i_i_i_i_i] = $this1_i_i9_i_i_i_i | 0;
  28633.                           HEAP[$this_addr_i_i4_i_i_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i_i_i] | 0;
  28634.                           var $this1_i_i7_i_i_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i_i_i];
  28635.                           HEAP[$count_i_i_i_i_i_i] = ((HEAP[$this1_i_i7_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  28636.                           HEAP[$i_i_i_i_i_i_i] = 0;
  28637.                           L392 : do {
  28638.                             if (HEAP[$i_i_i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i_i_i] >>> 0) {
  28639.                               var $array_i_i_i_i_i_i = $this1_i_i9_i_i_i_i + 2 | 0;
  28640.                               while (1) {
  28641.                                 var $584 = HEAP[$c_addr_i_i_i_i_i_i70];
  28642.                                 var $585 = HEAP[$base_addr_i_i5_i_i_i_i];
  28643.                                 HEAP[$this_addr_i_i_i1_i_i_i_i] = (HEAP[$i_i_i_i_i_i_i] << 1) + $array_i_i_i_i_i_i | 0;
  28644.                                 HEAP[$c_addr_i_i_i_i_i_i_i] = $584;
  28645.                                 HEAP[$base_addr_i_i_i_i_i_i_i68] = $585;
  28646.                                 var $this1_i_i_i13_i_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i_i];
  28647.                                 HEAP[$this_addr_i32_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  28648.                                 HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i13_i_i_i_i;
  28649.                                 var $588 = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  28650.                                 HEAP[$this_addr_i_i28_i_i_i_i_i_i_i] = HEAP[$this_addr_i32_i_i_i_i_i_i_i];
  28651.                                 HEAP[$base_addr_i_i29_i_i_i_i_i_i_i] = $588;
  28652.                                 HEAP[$len_addr_i_i30_i_i_i_i_i_i_i] = 2;
  28653.                                 var $this1_i_i34_i_i_i_i_i_i_i = HEAP[$this_addr_i_i28_i_i_i_i_i_i_i];
  28654.                                 HEAP[$p_i_i31_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i29_i_i_i_i_i_i_i];
  28655.                                 do {
  28656.                                   if (HEAP[$this1_i_i34_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i31_i_i_i_i_i_i_i] >>> 0) {
  28657.                                     if (!(HEAP[$p_i_i31_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i34_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  28658.                                       var $597 = 0;
  28659.                                       break;
  28660.                                     }
  28661.                                     var $597 = (HEAP[$this1_i_i34_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i31_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i30_i_i_i_i_i_i_i] >>> 0;
  28662.                                   } else {
  28663.                                     var $597 = 0;
  28664.                                   }
  28665.                                 } while (0);
  28666.                                 var $597;
  28667.                                 do {
  28668.                                   if ($597 & 1) {
  28669.                                     HEAP[$this_addr_i21_i_i_i_i_i_i_i] = $this1_i_i_i13_i_i_i_i;
  28670.                                     HEAP[$this_addr_i_i20_i_i_i_i_i_i_i] = HEAP[$this_addr_i21_i_i_i_i_i_i_i] | 0;
  28671.                                     var $this1_i_i23_i_i_i_i_i_i_i = HEAP[$this_addr_i_i20_i_i_i_i_i_i_i];
  28672.                                     HEAP[$offset_i_i_i_i_i_i_i] = ((HEAP[$this1_i_i23_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i23_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  28673.                                     if ((HEAP[$offset_i_i_i_i_i_i_i] | 0) == 0) {
  28674.                                       var $tobool_i19_i_i_i_i_i_i_i = 1;
  28675.                                       HEAP[$retval_i_i_i_i_i_i_i67] = $tobool_i19_i_i_i_i_i_i_i;
  28676.                                       var $698 = $tobool_i19_i_i_i_i_i_i_i;
  28677.                                       break;
  28678.                                     }
  28679.                                     var $606 = HEAP[$offset_i_i_i_i_i_i_i];
  28680.                                     HEAP[$P_addr_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i68];
  28681.                                     HEAP[$offset_addr_i_i_i_i_i_i_i_i] = $606;
  28682.                                     HEAP[$obj_i_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i_i] | 0;
  28683.                                     var $611 = HEAP[$c_addr_i_i_i_i_i_i_i];
  28684.                                     HEAP[$this_addr_i5_i_i_i_i_i_i_i] = HEAP[$obj_i_i_i_i_i_i_i];
  28685.                                     HEAP[$c_addr_i6_i_i_i_i_i_i_i] = $611;
  28686.                                     var $this1_i7_i_i_i_i_i_i_i = HEAP[$this_addr_i5_i_i_i_i_i_i_i];
  28687.                                     var $612 = HEAP[$c_addr_i6_i_i_i_i_i_i_i];
  28688.                                     HEAP[$this_addr_i79_i_i_i_i_i_i_i_i] = $this1_i7_i_i_i_i_i_i_i | 0;
  28689.                                     HEAP[$c_addr_i80_i_i_i_i_i_i_i_i] = $612;
  28690.                                     var $this1_i81_i_i_i_i_i_i_i_i = HEAP[$this_addr_i79_i_i_i_i_i_i_i_i];
  28691.                                     HEAP[$this_addr_i_i76_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i80_i_i_i_i_i_i_i_i];
  28692.                                     HEAP[$obj_addr_i_i77_i_i_i_i_i_i_i_i] = $this1_i81_i_i_i_i_i_i_i_i;
  28693.                                     var $615 = HEAP[$obj_addr_i_i77_i_i_i_i_i_i_i_i];
  28694.                                     HEAP[$this_addr_i_i_i72_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i76_i_i_i_i_i_i_i_i];
  28695.                                     HEAP[$base_addr_i_i_i73_i_i_i_i_i_i_i_i] = $615;
  28696.                                     HEAP[$len_addr_i_i_i74_i_i_i_i_i_i_i_i] = 2;
  28697.                                     var $this1_i_i_i83_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i72_i_i_i_i_i_i_i_i];
  28698.                                     HEAP[$p_i_i_i75_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i73_i_i_i_i_i_i_i_i];
  28699.                                     do {
  28700.                                       if (HEAP[$this1_i_i_i83_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i75_i_i_i_i_i_i_i_i] >>> 0) {
  28701.                                         if (!(HEAP[$p_i_i_i75_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i83_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  28702.                                           var $624 = 0;
  28703.                                           break;
  28704.                                         }
  28705.                                         var $624 = (HEAP[$this1_i_i_i83_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i75_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i74_i_i_i_i_i_i_i_i] >>> 0;
  28706.                                       } else {
  28707.                                         var $624 = 0;
  28708.                                       }
  28709.                                     } while (0);
  28710.                                     var $624;
  28711.                                     do {
  28712.                                       if ($624 & 1 & 1) {
  28713.                                         HEAP[$this_addr_i66_i_i_i_i_i_i_i_i] = $this1_i7_i_i_i_i_i_i_i | 0;
  28714.                                         HEAP[$this_addr_i_i65_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i66_i_i_i_i_i_i_i_i] | 0;
  28715.                                         var $this1_i_i68_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i65_i_i_i_i_i_i_i_i];
  28716.                                         var $conv_i_i_i_i_i_i_i_i163 = ((HEAP[$this1_i_i68_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i68_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  28717.                                         if (($conv_i_i_i_i_i_i_i_i163 | 0) == 1) {
  28718.                                           var $630 = HEAP[$c_addr_i6_i_i_i_i_i_i_i];
  28719.                                           HEAP[$this_addr_i45_i_i_i_i_i_i_i_i] = $this1_i7_i_i_i_i_i_i_i | 0;
  28720.                                           HEAP[$c_addr_i46_i_i_i_i_i_i_i_i] = $630;
  28721.                                           var $this1_i47_i_i_i_i_i_i_i_i = HEAP[$this_addr_i45_i_i_i_i_i_i_i_i];
  28722.                                           HEAP[$this_addr_i_i42_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i46_i_i_i_i_i_i_i_i];
  28723.                                           HEAP[$obj_addr_i_i43_i_i_i_i_i_i_i_i] = $this1_i47_i_i_i_i_i_i_i_i;
  28724.                                           var $633 = HEAP[$obj_addr_i_i43_i_i_i_i_i_i_i_i];
  28725.                                           HEAP[$this_addr_i_i_i38_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i42_i_i_i_i_i_i_i_i];
  28726.                                           HEAP[$base_addr_i_i_i39_i_i_i_i_i_i_i_i] = $633;
  28727.                                           HEAP[$len_addr_i_i_i40_i_i_i_i_i_i_i_i] = 4;
  28728.                                           var $this1_i_i_i49_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i38_i_i_i_i_i_i_i_i];
  28729.                                           HEAP[$p_i_i_i41_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i39_i_i_i_i_i_i_i_i];
  28730.                                           do {
  28731.                                             if (HEAP[$this1_i_i_i49_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i41_i_i_i_i_i_i_i_i] >>> 0) {
  28732.                                               if (!(HEAP[$p_i_i_i41_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i49_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  28733.                                                 var $642 = 0;
  28734.                                                 break;
  28735.                                               }
  28736.                                               var $642 = (HEAP[$this1_i_i_i49_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i41_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i40_i_i_i_i_i_i_i_i] >>> 0;
  28737.                                             } else {
  28738.                                               var $642 = 0;
  28739.                                             }
  28740.                                           } while (0);
  28741.                                           var $642;
  28742.                                           var $tobool_i36_i_i_i_i_i_i_i_i = $642 & 1 & 1 & 1;
  28743.                                           HEAP[$retval_i4_i_i_i_i_i_i_i] = $tobool_i36_i_i_i_i_i_i_i_i;
  28744.                                           if ($tobool_i36_i_i_i_i_i_i_i_i) {
  28745.                                             var $696 = 1;
  28746.                                             break;
  28747.                                           } else {
  28748.                                             label = 313;
  28749.                                             break;
  28750.                                           }
  28751.                                         } else if (($conv_i_i_i_i_i_i_i_i163 | 0) == 2) {
  28752.                                           var $646 = HEAP[$c_addr_i6_i_i_i_i_i_i_i];
  28753.                                           HEAP[$this_addr_i14_i_i_i_i_i_i_i_i] = $this1_i7_i_i_i_i_i_i_i | 0;
  28754.                                           HEAP[$c_addr_i15_i_i_i_i_i_i_i_i] = $646;
  28755.                                           var $this1_i16_i_i_i_i_i_i_i_i = HEAP[$this_addr_i14_i_i_i_i_i_i_i_i];
  28756.                                           HEAP[$this_addr_i_i11_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i15_i_i_i_i_i_i_i_i];
  28757.                                           HEAP[$obj_addr_i_i12_i_i_i_i_i_i_i_i] = $this1_i16_i_i_i_i_i_i_i_i;
  28758.                                           var $649 = HEAP[$obj_addr_i_i12_i_i_i_i_i_i_i_i];
  28759.                                           HEAP[$this_addr_i_i_i7_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i11_i_i_i_i_i_i_i_i];
  28760.                                           HEAP[$base_addr_i_i_i8_i_i_i_i_i_i_i_i] = $649;
  28761.                                           HEAP[$len_addr_i_i_i9_i_i_i_i_i_i_i_i] = 4;
  28762.                                           var $this1_i_i_i18_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i7_i_i_i_i_i_i_i_i];
  28763.                                           HEAP[$p_i_i_i10_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i8_i_i_i_i_i_i_i_i];
  28764.                                           do {
  28765.                                             if (HEAP[$this1_i_i_i18_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i10_i_i_i_i_i_i_i_i] >>> 0) {
  28766.                                               if (!(HEAP[$p_i_i_i10_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i18_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  28767.                                                 var $658 = 0;
  28768.                                                 break;
  28769.                                               }
  28770.                                               var $658 = (HEAP[$this1_i_i_i18_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i10_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i9_i_i_i_i_i_i_i_i] >>> 0;
  28771.                                             } else {
  28772.                                               var $658 = 0;
  28773.                                             }
  28774.                                           } while (0);
  28775.                                           var $658;
  28776.                                           var $tobool_i5_i_i_i_i_i_i_i_i = $658 & 1 & 1 & 1;
  28777.                                           HEAP[$retval_i4_i_i_i_i_i_i_i] = $tobool_i5_i_i_i_i_i_i_i_i;
  28778.                                           if ($tobool_i5_i_i_i_i_i_i_i_i) {
  28779.                                             var $696 = 1;
  28780.                                             break;
  28781.                                           } else {
  28782.                                             label = 313;
  28783.                                             break;
  28784.                                           }
  28785.                                         } else if (($conv_i_i_i_i_i_i_i_i163 | 0) == 3) {
  28786.                                           var $662 = HEAP[$c_addr_i6_i_i_i_i_i_i_i];
  28787.                                           HEAP[$this_addr_i_i3_i_i_i_i_i_i_i] = $this1_i7_i_i_i_i_i_i_i | 0;
  28788.                                           HEAP[$c_addr_i_i_i_i_i_i_i_i_i] = $662;
  28789.                                           var $this1_i_i14_i_i_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i_i_i];
  28790.                                           HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i_i];
  28791.                                           HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i] = $this1_i_i14_i_i_i_i_i_i_i;
  28792.                                           var $665 = HEAP[$obj_addr_i_i_i_i_i_i_i_i_i_i];
  28793.                                           HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i_i_i_i_i_i_i];
  28794.                                           HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i] = $665;
  28795.                                           HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i] = 6;
  28796.                                           var $this1_i_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i];
  28797.                                           HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i_i_i];
  28798.                                           do {
  28799.                                             if (HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] >>> 0) {
  28800.                                               if (!(HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 8 | 0] >>> 0)) {
  28801.                                                 var $674 = 0;
  28802.                                                 break;
  28803.                                               }
  28804.                                               var $674 = (HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i_i_i_i_i] >>> 0;
  28805.                                             } else {
  28806.                                               var $674 = 0;
  28807.                                             }
  28808.                                           } while (0);
  28809.                                           var $674;
  28810.                                           if ($674 & 1) {
  28811.                                             var $679 = __ZN2OT15GenericOffsetToINS_6OffsetENS_6DeviceEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1_i_i14_i_i_i_i_i_i_i + 4 | 0, HEAP[$c_addr_i_i_i_i_i_i_i_i_i], $this1_i_i14_i_i_i_i_i_i_i);
  28812.                                           } else {
  28813.                                             var $679 = 0;
  28814.                                           }
  28815.                                           var $679;
  28816.                                           var $tobool_i2_i_i_i_i_i_i_i_i = $679 & 1 & 1;
  28817.                                           HEAP[$retval_i4_i_i_i_i_i_i_i] = $tobool_i2_i_i_i_i_i_i_i_i;
  28818.                                           if ($tobool_i2_i_i_i_i_i_i_i_i) {
  28819.                                             var $696 = 1;
  28820.                                             break;
  28821.                                           } else {
  28822.                                             label = 313;
  28823.                                             break;
  28824.                                           }
  28825.                                         } else {
  28826.                                           var $tobool_i_i_i_i_i_i_i_i_i = 1;
  28827.                                           HEAP[$retval_i4_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i;
  28828.                                           if ($tobool_i_i_i_i_i_i_i_i_i) {
  28829.                                             var $696 = 1;
  28830.                                             break;
  28831.                                           } else {
  28832.                                             label = 313;
  28833.                                             break;
  28834.                                           }
  28835.                                         }
  28836.                                       } else {
  28837.                                         var $tobool_i70_i_i_i_i_i_i_i_i = 0;
  28838.                                         HEAP[$retval_i4_i_i_i_i_i_i_i] = $tobool_i70_i_i_i_i_i_i_i_i;
  28839.                                         if ($tobool_i70_i_i_i_i_i_i_i_i) {
  28840.                                           var $696 = 1;
  28841.                                           break;
  28842.                                         } else {
  28843.                                           label = 313;
  28844.                                           break;
  28845.                                         }
  28846.                                       }
  28847.                                     } while (0);
  28848.                                     if (label == 313) {
  28849.                                       label = 0;
  28850.                                       var $683 = HEAP[$c_addr_i_i_i_i_i_i_i];
  28851.                                       HEAP[$this_addr_i_i_i_i_i_i_i_i65] = $this1_i_i_i13_i_i_i_i;
  28852.                                       HEAP[$c_addr_i_i_i_i_i_i_i_i] = $683;
  28853.                                       var $this1_i_i_i_i_i_i_i_i164 = HEAP[$this_addr_i_i_i_i_i_i_i_i65];
  28854.                                       HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i_i];
  28855.                                       HEAP[$base_addr_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i164;
  28856.                                       HEAP[$len_addr_i_i_i_i_i_i_i_i_i] = 2;
  28857.                                       var $this1_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i];
  28858.                                       do {
  28859.                                         if (HEAP[$this1_i_i_i_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  28860.                                           HEAP[$retval_i_i_i_i_i_i_i_i_i] = 0;
  28861.                                           label = 317;
  28862.                                           break;
  28863.                                         } else {
  28864.                                           HEAP[$p_i_i_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i_i_i];
  28865.                                           var $edit_count2_i_i_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i_i_i + 16 | 0;
  28866.                                           HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i_i_i] + 1 | 0;
  28867.                                           var $tobool_i_i_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  28868.                                           HEAP[$retval_i_i_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i_i_i;
  28869.                                           if (!$tobool_i_i_i_i_i_i_i_i_i_i) {
  28870.                                             label = 317;
  28871.                                             break;
  28872.                                           }
  28873.                                           HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i164;
  28874.                                           HEAP[$i_addr_i_i_i_i_i_i_i_i_i] = 0;
  28875.                                           var $692 = HEAP[$i_addr_i_i_i_i_i_i_i_i_i];
  28876.                                           HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] | 0;
  28877.                                           HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] = $692;
  28878.                                           var $this1_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i];
  28879.                                           HEAP[$this1_i_i_i_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  28880.                                           HEAP[$this1_i_i_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i_i] & 255;
  28881.                                           HEAP[$retval_i_i_i_i_i_i_i_i] = 1;
  28882.                                           break;
  28883.                                         }
  28884.                                       } while (0);
  28885.                                       if (label == 317) {
  28886.                                         label = 0;
  28887.                                         HEAP[$retval_i_i_i_i_i_i_i_i] = 0;
  28888.                                       }
  28889.                                       var $696 = HEAP[$retval_i_i_i_i_i_i_i_i];
  28890.                                     }
  28891.                                     var $696;
  28892.                                     var $tobool_i_i_i_i_i_i_i_i166 = $696 & 1;
  28893.                                     HEAP[$retval_i_i_i_i_i_i_i67] = $tobool_i_i_i_i_i_i_i_i166;
  28894.                                     var $698 = $tobool_i_i_i_i_i_i_i_i166;
  28895.                                   } else {
  28896.                                     var $tobool_i26_i_i_i_i_i_i_i = 0;
  28897.                                     HEAP[$retval_i_i_i_i_i_i_i67] = $tobool_i26_i_i_i_i_i_i_i;
  28898.                                     var $698 = $tobool_i26_i_i_i_i_i_i_i;
  28899.                                   }
  28900.                                 } while (0);
  28901.                                 var $698;
  28902.                                 if (!$698) {
  28903.                                   break;
  28904.                                 }
  28905.                                 HEAP[$i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i] + 1 | 0;
  28906.                                 if (HEAP[$i_i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i_i] >>> 0) {
  28907.                                   break L392;
  28908.                                 }
  28909.                               }
  28910.                               HEAP[$retval_i_i3_i_i_i_i] = 0;
  28911.                               break L389;
  28912.                             }
  28913.                           } while (0);
  28914.                           HEAP[$retval_i_i3_i_i_i_i] = 1;
  28915.                         } else {
  28916.                           HEAP[$retval_i_i3_i_i_i_i] = 0;
  28917.                         }
  28918.                       } while (0);
  28919.                       if (HEAP[$retval_i_i3_i_i_i_i] & 1) {
  28920.                         var $719 = 1;
  28921.                       } else {
  28922.                         var $706 = HEAP[$c_addr_i_i_i_i82];
  28923.                         HEAP[$this_addr_i_i_i_i_i77] = $this1_i_i_i13_i145;
  28924.                         HEAP[$c_addr_i_i_i_i_i78] = $706;
  28925.                         var $this1_i_i_i_i_i169 = HEAP[$this_addr_i_i_i_i_i77];
  28926.                         HEAP[$this_addr_i_i_i_i_i_i75] = HEAP[$c_addr_i_i_i_i_i78];
  28927.                         HEAP[$base_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i169;
  28928.                         HEAP[$len_addr_i_i_i_i_i_i] = 2;
  28929.                         var $this1_i_i_i_i_i_i170 = HEAP[$this_addr_i_i_i_i_i_i75];
  28930.                         do {
  28931.                           if (HEAP[$this1_i_i_i_i_i_i170 + 16 | 0] >>> 0 >= 100) {
  28932.                             HEAP[$retval_i_i_i_i_i_i74] = 0;
  28933.                             label = 329;
  28934.                             break;
  28935.                           } else {
  28936.                             HEAP[$p_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  28937.                             var $edit_count2_i_i_i_i_i_i = $this1_i_i_i_i_i_i170 + 16 | 0;
  28938.                             HEAP[$edit_count2_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i] + 1 | 0;
  28939.                             var $tobool_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i170 + 12 | 0] & 1 & 1;
  28940.                             HEAP[$retval_i_i_i_i_i_i74] = $tobool_i_i_i_i_i_i_i;
  28941.                             if (!$tobool_i_i_i_i_i_i_i) {
  28942.                               label = 329;
  28943.                               break;
  28944.                             }
  28945.                             HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i_i_i_i_i169;
  28946.                             HEAP[$i_addr_i_i_i_i_i_i] = 0;
  28947.                             var $715 = HEAP[$i_addr_i_i_i_i_i_i];
  28948.                             HEAP[$this_addr_i_i_i_i_i_i_i72] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  28949.                             HEAP[$i_addr_i_i_i_i_i_i_i73] = $715;
  28950.                             var $this1_i_i_i_i_i_i_i174 = HEAP[$this_addr_i_i_i_i_i_i_i72];
  28951.                             HEAP[$this1_i_i_i_i_i_i_i174 | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i73] & 65535) >> 8 & 255;
  28952.                             HEAP[$this1_i_i_i_i_i_i_i174 + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i73] & 255;
  28953.                             HEAP[$retval_i_i_i_i_i76] = 1;
  28954.                             break;
  28955.                           }
  28956.                         } while (0);
  28957.                         if (label == 329) {
  28958.                           label = 0;
  28959.                           HEAP[$retval_i_i_i_i_i76] = 0;
  28960.                         }
  28961.                         var $719 = HEAP[$retval_i_i_i_i_i76];
  28962.                       }
  28963.                       var $719;
  28964.                       var $tobool_i_i_i_i_i180 = $719 & 1;
  28965.                       HEAP[$retval_i_i_i_i80] = $tobool_i_i_i_i_i180;
  28966.                       var $721 = $tobool_i_i_i_i_i180;
  28967.                     } else {
  28968.                       var $tobool_i39_i_i_i_i = 0;
  28969.                       HEAP[$retval_i_i_i_i80] = $tobool_i39_i_i_i_i;
  28970.                       var $721 = $tobool_i39_i_i_i_i;
  28971.                     }
  28972.                   } while (0);
  28973.                   var $721;
  28974.                   if (!$721) {
  28975.                     break;
  28976.                   }
  28977.                   HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  28978.                   if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  28979.                     break L368;
  28980.                   }
  28981.                 }
  28982.                 HEAP[$retval_i_i3_i] = 0;
  28983.                 break L365;
  28984.               }
  28985.             } while (0);
  28986.             HEAP[$retval_i_i3_i] = 1;
  28987.           } else {
  28988.             HEAP[$retval_i_i3_i] = 0;
  28989.           }
  28990.         } while (0);
  28991.         var $734 = HEAP[$retval_i_i3_i];
  28992.       } else {
  28993.         var $734 = 0;
  28994.       }
  28995.       var $734;
  28996.       if ($734 & 1) {
  28997.         var $780 = 1;
  28998.       } else {
  28999.         var $738 = HEAP[$c_addr_i103];
  29000.         HEAP[$this_addr_i_i98] = $this1_i107;
  29001.         HEAP[$c_addr_i_i99] = $738;
  29002.         var $this1_i_i184 = HEAP[$this_addr_i_i98];
  29003.         HEAP[$this_addr_i_i_i93] = HEAP[$c_addr_i_i99];
  29004.         HEAP[$base_addr_i_i_i94] = $this1_i_i184;
  29005.         HEAP[$len_addr_i_i_i95] = 2;
  29006.         var $this1_i_i_i185 = HEAP[$this_addr_i_i_i93];
  29007.         do {
  29008.           if (HEAP[$this1_i_i_i185 + 16 | 0] >>> 0 >= 100) {
  29009.             HEAP[$retval_i_i_i92] = 0;
  29010.             label = 342;
  29011.             break;
  29012.           } else {
  29013.             HEAP[$p_i_i_i96] = HEAP[$base_addr_i_i_i94];
  29014.             var $edit_count2_i_i_i190 = $this1_i_i_i185 + 16 | 0;
  29015.             HEAP[$edit_count2_i_i_i190] = HEAP[$edit_count2_i_i_i190] + 1 | 0;
  29016.             var $tobool_i_i_i_i195 = HEAP[$this1_i_i_i185 + 12 | 0] & 1 & 1;
  29017.             HEAP[$retval_i_i_i92] = $tobool_i_i_i_i195;
  29018.             if (!$tobool_i_i_i_i195) {
  29019.               label = 342;
  29020.               break;
  29021.             }
  29022.             HEAP[$this_addr_i1_i_i89] = $this1_i_i184;
  29023.             HEAP[$i_addr_i_i_i90] = 0;
  29024.             var $767 = HEAP[$i_addr_i_i_i90];
  29025.             HEAP[$this_addr_i_i_i_i87] = HEAP[$this_addr_i1_i_i89] | 0;
  29026.             HEAP[$i_addr_i_i_i_i88] = $767;
  29027.             var $this1_i_i_i_i199 = HEAP[$this_addr_i_i_i_i87];
  29028.             HEAP[$this1_i_i_i_i199 | 0] = (HEAP[$i_addr_i_i_i_i88] & 65535) >> 8 & 255;
  29029.             HEAP[$this1_i_i_i_i199 + 1 | 0] = HEAP[$i_addr_i_i_i_i88] & 255;
  29030.             HEAP[$retval_i_i97] = 1;
  29031.             break;
  29032.           }
  29033.         } while (0);
  29034.         if (label == 342) {
  29035.           HEAP[$retval_i_i97] = 0;
  29036.         }
  29037.         var $780 = HEAP[$retval_i_i97];
  29038.       }
  29039.       var $780;
  29040.       var $tobool_i_i211 = $780 & 1;
  29041.       HEAP[$retval_i101] = $tobool_i_i211;
  29042.       var $782 = $tobool_i_i211;
  29043.     } else {
  29044.       var $tobool_i30_i123 = 0;
  29045.       HEAP[$retval_i101] = $tobool_i30_i123;
  29046.       var $782 = $tobool_i30_i123;
  29047.     }
  29048.   } while (0);
  29049.   var $782;
  29050.   if (!$782) {
  29051.     var $1151 = 0;
  29052.     var $1151;
  29053.     var $frombool_i = $1151 & 1;
  29054.     $v_addr_i = $frombool_i;
  29055.     var $1152 = $v_addr_i;
  29056.     var $tobool_i = $1152 & 1;
  29057.     STACKTOP = __stackBase__;
  29058.     return $tobool_i;
  29059.   }
  29060.   if (!__ZN2OT15GenericOffsetToINS_6OffsetENS_8ClassDefEE8sanitizeEPNS_21hb_sanitize_context_tEPv($this1 + 10 | 0, $c_addr, $this1)) {
  29061.     var $1151 = 0;
  29062.     var $1151;
  29063.     var $frombool_i = $1151 & 1;
  29064.     $v_addr_i = $frombool_i;
  29065.     var $1152 = $v_addr_i;
  29066.     var $tobool_i = $1152 & 1;
  29067.     STACKTOP = __stackBase__;
  29068.     return $tobool_i;
  29069.   }
  29070.   HEAP[$this_addr_i32] = $this1 | 0;
  29071.   var $this1_i33 = HEAP[$this_addr_i32];
  29072.   HEAP[$this_addr_i_i31] = $this1_i33 | 0;
  29073.   HEAP[$this_addr_i_i_i30] = HEAP[$this_addr_i_i31] | 0;
  29074.   var $this1_i_i_i36 = HEAP[$this_addr_i_i_i30];
  29075.   var $shl_i = (((HEAP[$this1_i_i_i36 | 0] & 255) << 8) + (HEAP[$this1_i_i_i36 + 1 | 0] & 255) & 65535) << 16;
  29076.   HEAP[$this_addr_i2_i] = $this1_i33 + 2 | 0;
  29077.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  29078.   var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  29079.   if (((((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535) + $shl_i | 0) >>> 0 < 65538) {
  29080.     var $1151 = 1;
  29081.     var $1151;
  29082.     var $frombool_i = $1151 & 1;
  29083.     $v_addr_i = $frombool_i;
  29084.     var $1152 = $v_addr_i;
  29085.     var $tobool_i = $1152 & 1;
  29086.     STACKTOP = __stackBase__;
  29087.     return $tobool_i;
  29088.   }
  29089.   HEAP[$this_addr_i] = $this1 + 12 | 0;
  29090.   HEAP[$c_addr_i] = $c_addr;
  29091.   HEAP[$base_addr_i] = $this1;
  29092.   var $this1_i = HEAP[$this_addr_i];
  29093.   HEAP[$this_addr_i23_i] = HEAP[$c_addr_i];
  29094.   HEAP[$obj_addr_i_i] = $this1_i;
  29095.   var $819 = HEAP[$obj_addr_i_i];
  29096.   HEAP[$this_addr_i_i19_i] = HEAP[$this_addr_i23_i];
  29097.   HEAP[$base_addr_i_i20_i] = $819;
  29098.   HEAP[$len_addr_i_i21_i] = 2;
  29099.   var $this1_i_i25_i = HEAP[$this_addr_i_i19_i];
  29100.   HEAP[$p_i_i22_i] = HEAP[$base_addr_i_i20_i];
  29101.   do {
  29102.     if (HEAP[$this1_i_i25_i + 4 | 0] >>> 0 <= HEAP[$p_i_i22_i] >>> 0) {
  29103.       if (!(HEAP[$p_i_i22_i] >>> 0 <= HEAP[$this1_i_i25_i + 8 | 0] >>> 0)) {
  29104.         var $832 = 0;
  29105.         break;
  29106.       }
  29107.       var $832 = (HEAP[$this1_i_i25_i + 8 | 0] - HEAP[$p_i_i22_i] | 0) >>> 0 >= HEAP[$len_addr_i_i21_i] >>> 0;
  29108.     } else {
  29109.       var $832 = 0;
  29110.     }
  29111.   } while (0);
  29112.   var $832;
  29113.   do {
  29114.     if ($832 & 1) {
  29115.       HEAP[$this_addr_i32_i] = $this1_i;
  29116.       HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  29117.       var $this1_i_i34_i = HEAP[$this_addr_i_i31_i];
  29118.       HEAP[$offset_i] = ((HEAP[$this1_i_i34_i | 0] & 255) << 8) + (HEAP[$this1_i_i34_i + 1 | 0] & 255) & 65535;
  29119.       if ((HEAP[$offset_i] | 0) == 0) {
  29120.         HEAP[$retval_i] = 1;
  29121.         break;
  29122.       }
  29123.       var $851 = HEAP[$offset_i];
  29124.       HEAP[$P_addr_i_i] = HEAP[$base_addr_i];
  29125.       HEAP[$offset_addr_i_i] = $851;
  29126.       HEAP[$obj_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  29127.       var $860 = HEAP[$c_addr_i];
  29128.       HEAP[$this_addr_i5_i] = HEAP[$obj_i];
  29129.       HEAP[$c_addr_i6_i] = $860;
  29130.       var $this1_i7_i = HEAP[$this_addr_i5_i];
  29131.       var $864 = HEAP[$c_addr_i6_i];
  29132.       HEAP[$this_addr_i8_i_i] = $this1_i7_i | 0;
  29133.       HEAP[$c_addr_i9_i_i] = $864;
  29134.       var $this1_i10_i_i = HEAP[$this_addr_i8_i_i];
  29135.       HEAP[$this_addr_i_i6_i_i] = HEAP[$c_addr_i9_i_i];
  29136.       HEAP[$obj_addr_i_i_i_i] = $this1_i10_i_i;
  29137.       var $871 = HEAP[$obj_addr_i_i_i_i];
  29138.       HEAP[$this_addr_i_i_i4_i_i] = HEAP[$this_addr_i_i6_i_i];
  29139.       HEAP[$base_addr_i_i_i5_i_i] = $871;
  29140.       HEAP[$len_addr_i_i_i_i_i] = 2;
  29141.       var $this1_i_i_i12_i_i = HEAP[$this_addr_i_i_i4_i_i];
  29142.       HEAP[$p_i_i_i_i_i] = HEAP[$base_addr_i_i_i5_i_i];
  29143.       do {
  29144.         if (HEAP[$this1_i_i_i12_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i] >>> 0) {
  29145.           if (!(HEAP[$p_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i12_i_i + 8 | 0] >>> 0)) {
  29146.             var $884 = 0;
  29147.             break;
  29148.           }
  29149.           var $884 = (HEAP[$this1_i_i_i12_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i] >>> 0;
  29150.         } else {
  29151.           var $884 = 0;
  29152.         }
  29153.       } while (0);
  29154.       var $884;
  29155.       do {
  29156.         if ($884 & 1 & 1) {
  29157.           HEAP[$this_addr_i19_i_i] = $this1_i7_i | 0;
  29158.           HEAP[$this_addr_i_i18_i_i] = HEAP[$this_addr_i19_i_i] | 0;
  29159.           var $this1_i_i21_i_i = HEAP[$this_addr_i_i18_i_i];
  29160.           if ((((HEAP[$this1_i_i21_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  29161.             var $tobool_i_i_i = 1;
  29162.             HEAP[$retval_i4_i] = $tobool_i_i_i;
  29163.             if ($tobool_i_i_i) {
  29164.               var $1142 = 1;
  29165.               break;
  29166.             } else {
  29167.               label = 391;
  29168.               break;
  29169.             }
  29170.           }
  29171.           var $905 = HEAP[$c_addr_i6_i];
  29172.           HEAP[$this_addr_i_i3_i] = $this1_i7_i | 0;
  29173.           HEAP[$c_addr_i_i_i] = $905;
  29174.           var $this1_i_i12_i = HEAP[$this_addr_i_i3_i];
  29175.           var $909 = HEAP[$c_addr_i_i_i];
  29176.           HEAP[$this_addr_i_i_i1_i] = $this1_i_i12_i + 2 | 0;
  29177.           HEAP[$c_addr_i_i_i_i] = $909;
  29178.           HEAP[$base_addr_i_i_i_i] = $this1_i_i12_i;
  29179.           var $this1_i_i_i13_i = HEAP[$this_addr_i_i_i1_i];
  29180.           var $917 = HEAP[$c_addr_i_i_i_i];
  29181.           HEAP[$this_addr_i19_i_i_i_i] = $this1_i_i_i13_i;
  29182.           HEAP[$c_addr_i20_i_i_i_i] = $917;
  29183.           var $this1_i21_i_i_i_i = HEAP[$this_addr_i19_i_i_i_i];
  29184.           HEAP[$this_addr_i2_i_i_i_i_i] = HEAP[$c_addr_i20_i_i_i_i];
  29185.           HEAP[$obj_addr_i_i15_i_i_i_i] = $this1_i21_i_i_i_i;
  29186.           var $924 = HEAP[$obj_addr_i_i15_i_i_i_i];
  29187.           HEAP[$this_addr_i_i1_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i];
  29188.           HEAP[$base_addr_i_i_i12_i_i_i_i] = $924;
  29189.           HEAP[$len_addr_i_i_i13_i_i_i_i] = 2;
  29190.           var $this1_i_i4_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i];
  29191.           HEAP[$p_i_i_i14_i_i_i_i] = HEAP[$base_addr_i_i_i12_i_i_i_i];
  29192.           do {
  29193.             if (HEAP[$this1_i_i4_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i14_i_i_i_i] >>> 0) {
  29194.               if (!(HEAP[$p_i_i_i14_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i + 8 | 0] >>> 0)) {
  29195.                 var $937 = 0;
  29196.                 break;
  29197.               }
  29198.               var $937 = (HEAP[$this1_i_i4_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i14_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i13_i_i_i_i] >>> 0;
  29199.             } else {
  29200.               var $937 = 0;
  29201.             }
  29202.           } while (0);
  29203.           var $937;
  29204.           if ($937 & 1) {
  29205.             var $945 = HEAP[$c_addr_i20_i_i_i_i];
  29206.             HEAP[$this_addr_i_i17_i_i_i_i] = $this1_i21_i_i_i_i | 0;
  29207.             HEAP[$this_addr_i_i_i16_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i] | 0;
  29208.             var $this1_i_i_i37_i_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i_i];
  29209.             var $953 = __ZNK2OT21hb_sanitize_context_t11check_arrayEPKvjj($945, $this1_i21_i_i_i_i, 4, ((HEAP[$this1_i_i_i37_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i37_i_i_i_i + 1 | 0] & 255) & 65535);
  29210.           } else {
  29211.             var $953 = 0;
  29212.           }
  29213.           var $953;
  29214.           L511 : do {
  29215.             if ($953 & 1) {
  29216.               HEAP[$this_addr_i5_i_i_i_i] = $this1_i_i_i13_i | 0;
  29217.               HEAP[$this_addr_i_i4_i_i_i_i] = HEAP[$this_addr_i5_i_i_i_i] | 0;
  29218.               var $this1_i_i7_i_i_i_i = HEAP[$this_addr_i_i4_i_i_i_i];
  29219.               HEAP[$count_i_i_i_i] = ((HEAP[$this1_i_i7_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i_i_i + 1 | 0] & 255) & 65535;
  29220.               HEAP[$i_i_i_i_i] = 0;
  29221.               L514 : do {
  29222.                 if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i] >>> 0) {
  29223.                   var $array_i_i_i_i = $this1_i_i_i13_i + 2 | 0;
  29224.                   while (1) {
  29225.                     var $1029 = HEAP[$c_addr_i_i_i_i];
  29226.                     var $1030 = HEAP[$base_addr_i_i_i_i];
  29227.                     HEAP[$this_addr_i_i_i_i_i] = (HEAP[$i_i_i_i_i] << 2) + $array_i_i_i_i | 0;
  29228.                     HEAP[$c_addr_i_i_i_i_i] = $1029;
  29229.                     HEAP[$base_addr_i_i_i_i_i] = $1030;
  29230.                     var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  29231.                     HEAP[$this_addr_i15_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  29232.                     HEAP[$obj_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  29233.                     var $1033 = HEAP[$obj_addr_i_i_i_i_i_i];
  29234.                     HEAP[$this_addr_i_i11_i_i_i_i_i] = HEAP[$this_addr_i15_i_i_i_i_i];
  29235.                     HEAP[$base_addr_i_i12_i_i_i_i_i] = $1033;
  29236.                     HEAP[$len_addr_i_i13_i_i_i_i_i] = 4;
  29237.                     var $this1_i_i17_i_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i_i];
  29238.                     HEAP[$p_i_i14_i_i_i_i_i] = HEAP[$base_addr_i_i12_i_i_i_i_i];
  29239.                     do {
  29240.                       if (HEAP[$this1_i_i17_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i14_i_i_i_i_i] >>> 0) {
  29241.                         if (!(HEAP[$p_i_i14_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i17_i_i_i_i_i + 8 | 0] >>> 0)) {
  29242.                           var $1042 = 0;
  29243.                           break;
  29244.                         }
  29245.                         var $1042 = (HEAP[$this1_i_i17_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i14_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i13_i_i_i_i_i] >>> 0;
  29246.                       } else {
  29247.                         var $1042 = 0;
  29248.                       }
  29249.                     } while (0);
  29250.                     var $1042;
  29251.                     do {
  29252.                       if ($1042 & 1) {
  29253.                         HEAP[$this_addr_i4_i_i_i_i_i] = $this1_i_i_i_i_i;
  29254.                         HEAP[$this_addr_i_i3_i_i_i_i_i] = HEAP[$this_addr_i4_i_i_i_i_i] | 0;
  29255.                         var $this1_i_i6_i_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i_i];
  29256.                         HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i6_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i6_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i6_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i_i_i + 3 | 0] & 255) | 0;
  29257.                         if ((HEAP[$offset_i_i_i_i_i] | 0) == 0) {
  29258.                           var $tobool_i2_i_i_i_i_i = 1;
  29259.                           HEAP[$retval_i_i_i_i_i] = $tobool_i2_i_i_i_i_i;
  29260.                           var $1076 = $tobool_i2_i_i_i_i_i;
  29261.                           break;
  29262.                         }
  29263.                         var $1053 = HEAP[$offset_i_i_i_i_i];
  29264.                         HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  29265.                         HEAP[$offset_addr_i_i_i_i_i_i] = $1053;
  29266.                         HEAP[$obj_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  29267.                         if (__ZN2OT8Coverage8sanitizeEPNS_21hb_sanitize_context_tE(HEAP[$obj_i_i_i_i_i], HEAP[$c_addr_i_i_i_i_i])) {
  29268.                           var $1074 = 1;
  29269.                         } else {
  29270.                           var $1059 = HEAP[$c_addr_i_i_i_i_i];
  29271.                           HEAP[$this_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  29272.                           HEAP[$c_addr_i_i_i_i_i_i] = $1059;
  29273.                           var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  29274.                           HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i];
  29275.                           HEAP[$base_addr_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i;
  29276.                           HEAP[$len_addr_i_i_i_i_i_i_i] = 4;
  29277.                           var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  29278.                           do {
  29279.                             if (HEAP[$this1_i_i_i_i_i_i_i + 16 | 0] >>> 0 >= 100) {
  29280.                               HEAP[$retval_i_i_i_i_i_i_i] = 0;
  29281.                               label = 382;
  29282.                               break;
  29283.                             } else {
  29284.                               HEAP[$p_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  29285.                               var $edit_count2_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i + 16 | 0;
  29286.                               HEAP[$edit_count2_i_i_i_i_i_i_i] = HEAP[$edit_count2_i_i_i_i_i_i_i] + 1 | 0;
  29287.                               var $tobool_i_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i_i + 12 | 0] & 1 & 1;
  29288.                               HEAP[$retval_i_i_i_i_i_i_i] = $tobool_i_i_i_i_i_i_i_i;
  29289.                               if (!$tobool_i_i_i_i_i_i_i_i) {
  29290.                                 label = 382;
  29291.                                 break;
  29292.                               }
  29293.                               HEAP[$this_addr_i1_i_i_i_i_i_i] = $this1_i_i_i_i_i_i;
  29294.                               HEAP[$i_addr_i_i_i_i_i_i_i] = 0;
  29295.                               var $1068 = HEAP[$i_addr_i_i_i_i_i_i_i];
  29296.                               HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i] | 0;
  29297.                               HEAP[$i_addr_i_i_i_i_i_i_i_i] = $1068;
  29298.                               var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  29299.                               HEAP[$this1_i_i_i_i_i_i_i_i | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i] >>> 24 & 255;
  29300.                               HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i] >>> 16 & 255;
  29301.                               HEAP[$this1_i_i_i_i_i_i_i_i + 2 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i] >>> 8 & 255;
  29302.                               HEAP[$this1_i_i_i_i_i_i_i_i + 3 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i] & 255;
  29303.                               HEAP[$retval_i_i_i_i_i_i] = 1;
  29304.                               break;
  29305.                             }
  29306.                           } while (0);
  29307.                           if (label == 382) {
  29308.                             label = 0;
  29309.                             HEAP[$retval_i_i_i_i_i_i] = 0;
  29310.                           }
  29311.                           var $1074 = HEAP[$retval_i_i_i_i_i_i];
  29312.                         }
  29313.                         var $1074;
  29314.                         var $tobool_i_i_i_i_i_i = $1074 & 1;
  29315.                         HEAP[$retval_i_i_i_i_i] = $tobool_i_i_i_i_i_i;
  29316.                         var $1076 = $tobool_i_i_i_i_i_i;
  29317.                       } else {
  29318.                         var $tobool_i9_i_i_i_i_i = 0;
  29319.                         HEAP[$retval_i_i_i_i_i] = $tobool_i9_i_i_i_i_i;
  29320.                         var $1076 = $tobool_i9_i_i_i_i_i;
  29321.                       }
  29322.                     } while (0);
  29323.                     var $1076;
  29324.                     if (!$1076) {
  29325.                       break;
  29326.                     }
  29327.                     HEAP[$i_i_i_i_i] = HEAP[$i_i_i_i_i] + 1 | 0;
  29328.                     if (HEAP[$i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i] >>> 0) {
  29329.                       break L514;
  29330.                     }
  29331.                   }
  29332.                   HEAP[$retval_i_i_i_i] = 0;
  29333.                   break L511;
  29334.                 }
  29335.               } while (0);
  29336.               HEAP[$retval_i_i_i_i] = 1;
  29337.             } else {
  29338.               HEAP[$retval_i_i_i_i] = 0;
  29339.             }
  29340.           } while (0);
  29341.           var $tobool_i2_i_i = HEAP[$retval_i_i_i_i] & 1 & 1;
  29342.           HEAP[$retval_i4_i] = $tobool_i2_i_i;
  29343.           if ($tobool_i2_i_i) {
  29344.             var $1142 = 1;
  29345.             break;
  29346.           } else {
  29347.             label = 391;
  29348.             break;
  29349.           }
  29350.         } else {
  29351.           var $tobool_i25_i_i = 0;
  29352.           HEAP[$retval_i4_i] = $tobool_i25_i_i;
  29353.           if ($tobool_i25_i_i) {
  29354.             var $1142 = 1;
  29355.             break;
  29356.           } else {
  29357.             label = 391;
  29358.             break;
  29359.           }
  29360.         }
  29361.       } while (0);
  29362.       if (label == 391) {
  29363.         var $1100 = HEAP[$c_addr_i];
  29364.         HEAP[$this_addr_i_i] = $this1_i;
  29365.         HEAP[$c_addr_i_i] = $1100;
  29366.         var $this1_i_i = HEAP[$this_addr_i_i];
  29367.         HEAP[$this_addr_i_i_i] = HEAP[$c_addr_i_i];
  29368.         HEAP[$base_addr_i_i_i] = $this1_i_i;
  29369.         HEAP[$len_addr_i_i_i] = 2;
  29370.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  29371.         do {
  29372.           if (HEAP[$this1_i_i_i + 16 | 0] >>> 0 >= 100) {
  29373.             HEAP[$retval_i_i_i] = 0;
  29374.             label = 395;
  29375.             break;
  29376.           } else {
  29377.             HEAP[$p_i_i_i] = HEAP[$base_addr_i_i_i];
  29378.             var $edit_count2_i_i_i = $this1_i_i_i + 16 | 0;
  29379.             HEAP[$edit_count2_i_i_i] = HEAP[$edit_count2_i_i_i] + 1 | 0;
  29380.             var $tobool_i_i_i_i = HEAP[$this1_i_i_i + 12 | 0] & 1 & 1;
  29381.             HEAP[$retval_i_i_i] = $tobool_i_i_i_i;
  29382.             if (!$tobool_i_i_i_i) {
  29383.               label = 395;
  29384.               break;
  29385.             }
  29386.             HEAP[$this_addr_i1_i_i] = $this1_i_i;
  29387.             HEAP[$i_addr_i_i_i] = 0;
  29388.             var $1129 = HEAP[$i_addr_i_i_i];
  29389.             HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  29390.             HEAP[$i_addr_i_i_i_i] = $1129;
  29391.             var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  29392.             HEAP[$this1_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i] & 65535) >> 8 & 255;
  29393.             HEAP[$this1_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i] & 255;
  29394.             HEAP[$retval_i_i] = 1;
  29395.             break;
  29396.           }
  29397.         } while (0);
  29398.         if (label == 395) {
  29399.           HEAP[$retval_i_i] = 0;
  29400.         }
  29401.         var $1142 = HEAP[$retval_i_i];
  29402.       }
  29403.       var $1142;
  29404.       HEAP[$retval_i] = $1142 & 1;
  29405.     } else {
  29406.       HEAP[$retval_i] = 0;
  29407.     }
  29408.   } while (0);
  29409.   var $1151 = HEAP[$retval_i];
  29410.   var $1151;
  29411.   var $frombool_i = $1151 & 1;
  29412.   $v_addr_i = $frombool_i;
  29413.   var $1152 = $v_addr_i;
  29414.   var $tobool_i = $1152 & 1;
  29415.   STACKTOP = __stackBase__;
  29416.   return $tobool_i;
  29417. }
  29418. function __ZN2OT18hb_apply_context_t10set_lookupERKNS_6LookupE($this, $l) {
  29419.   var __stackBase__ = STACKTOP;
  29420.   STACKTOP = STACKTOP + 52 | 0;
  29421.   var $P_addr_i_i_i = __stackBase__;
  29422.   var $offset_addr_i_i_i = __stackBase__ + 4;
  29423.   var $this_addr_i_i_i_i_i = __stackBase__ + 8;
  29424.   var $this_addr_i_i_i_i = __stackBase__ + 12;
  29425.   var $this_addr_i_i15_i = __stackBase__ + 16;
  29426.   var $X_addr_i_i = __stackBase__ + 20;
  29427.   var $this_addr_i_i1_i = __stackBase__ + 24;
  29428.   var $this_addr_i2_i = __stackBase__ + 28;
  29429.   var $this_addr_i_i_i = __stackBase__ + 32;
  29430.   var $this_addr_i_i = __stackBase__ + 36;
  29431.   var $this_addr_i = __stackBase__ + 40;
  29432.   var $flag_i = __stackBase__ + 44;
  29433.   var $markFilteringSet_i = __stackBase__ + 48;
  29434.   var $this1 = $this;
  29435.   HEAP[$this_addr_i] = $l;
  29436.   var $this1_i = HEAP[$this_addr_i];
  29437.   HEAP[$this_addr_i_i] = $this1_i + 2 | 0;
  29438.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  29439.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  29440.   HEAP[$flag_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  29441.   if ((HEAP[$flag_i] & 16 | 0) == 0) {
  29442.     var $40 = HEAP[$flag_i];
  29443.     var $41 = $this_addr_i;
  29444.     var $42 = $flag_i;
  29445.     var $43 = $markFilteringSet_i;
  29446.     var $lookup_props = $this1 + 36 | 0;
  29447.     HEAP[$lookup_props] = $40;
  29448.     STACKTOP = __stackBase__;
  29449.     return;
  29450.   }
  29451.   HEAP[$X_addr_i_i] = $this1_i + 4 | 0;
  29452.   var $13 = HEAP[$X_addr_i_i];
  29453.   HEAP[$this_addr_i_i15_i] = HEAP[$X_addr_i_i];
  29454.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i15_i] | 0;
  29455.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  29456.   var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  29457.   var $add_i_i18_i = ((((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  29458.   HEAP[$P_addr_i_i_i] = $13;
  29459.   HEAP[$offset_addr_i_i_i] = $add_i_i18_i;
  29460.   HEAP[$markFilteringSet_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  29461.   HEAP[$this_addr_i2_i] = HEAP[$markFilteringSet_i];
  29462.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  29463.   var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  29464.   HEAP[$flag_i] = ((((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535) << 16) + HEAP[$flag_i] | 0;
  29465.   var $40 = HEAP[$flag_i];
  29466.   var $41 = $this_addr_i;
  29467.   var $42 = $flag_i;
  29468.   var $43 = $markFilteringSet_i;
  29469.   var $lookup_props = $this1 + 36 | 0;
  29470.   HEAP[$lookup_props] = $40;
  29471.   STACKTOP = __stackBase__;
  29472.   return;
  29473. }
  29474. function __ZN2OTL24fix_cursive_minor_offsetEP19hb_glyph_position_tj14hb_direction_t($pos, $i, $direction) {
  29475.   var $pos_addr;
  29476.   var $i_addr;
  29477.   var $direction_addr;
  29478.   var $j;
  29479.   $pos_addr = $pos;
  29480.   $i_addr = $i;
  29481.   $direction_addr = $direction;
  29482.   $j = HEAP[$pos_addr + ($i_addr * 20 & -1) + 18 | 0] << 16 >> 16;
  29483.   if (($j | 0) == 0) {
  29484.     return;
  29485.   }
  29486.   $j = $j + $i_addr | 0;
  29487.   HEAP[$pos_addr + ($i_addr * 20 & -1) + 18 | 0] = 0;
  29488.   __ZN2OTL24fix_cursive_minor_offsetEP19hb_glyph_position_tj14hb_direction_t($pos_addr, $j, $direction_addr);
  29489.   var $arrayidx7 = $pos_addr + ($j * 20 & -1) | 0;
  29490.   if (($direction_addr & -2 | 0) == 4) {
  29491.     var $y_offset9 = $pos_addr + ($i_addr * 20 & -1) + 12 | 0;
  29492.     HEAP[$y_offset9] = HEAP[$y_offset9] + HEAP[$arrayidx7 + 12 | 0] | 0;
  29493.     return;
  29494.   } else {
  29495.     var $x_offset13 = $pos_addr + ($i_addr * 20 & -1) + 8 | 0;
  29496.     HEAP[$x_offset13] = HEAP[$x_offset13] + HEAP[$arrayidx7 + 8 | 0] | 0;
  29497.     return;
  29498.   }
  29499. }
  29500. function __ZN2OT9PosLookup18apply_recurse_funcEPNS_18hb_apply_context_tEj($c, $lookup_index) {
  29501.   var __stackBase__ = STACKTOP;
  29502.   STACKTOP = STACKTOP + 12 | 0;
  29503.   var $X_addr_i_i = __stackBase__;
  29504.   var $this_addr_i = __stackBase__ + 4;
  29505.   var $i_addr_i = __stackBase__ + 8;
  29506.   var $c_addr;
  29507.   var $l;
  29508.   var $saved_lookup_props;
  29509.   var $ret;
  29510.   $c_addr = $c;
  29511.   HEAP[$this_addr_i] = HEAP[HEAP[HEAP[$c_addr + 8 | 0] + 72 | 0] + 20 | 0];
  29512.   HEAP[$i_addr_i] = $lookup_index;
  29513.   var $call_i = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i], HEAP[$i_addr_i]);
  29514.   HEAP[$X_addr_i_i] = $call_i;
  29515.   $l = HEAP[$X_addr_i_i];
  29516.   $saved_lookup_props = HEAP[$c_addr + 36 | 0];
  29517.   __ZN2OT18hb_apply_context_t10set_lookupERKNS_6LookupE($c_addr, $l);
  29518.   $ret = __ZNK2OT9PosLookup10apply_onceEPNS_18hb_apply_context_tE($l, $c_addr) & 1;
  29519.   HEAP[$c_addr + 36 | 0] = $saved_lookup_props;
  29520.   STACKTOP = __stackBase__;
  29521.   return $ret & 1;
  29522. }
  29523. function __ZNK2OT9PosLookup10apply_onceEPNS_18hb_apply_context_tE($this, $c) {
  29524.   var label = 0;
  29525.   var __stackBase__ = STACKTOP;
  29526.   STACKTOP = STACKTOP + 77 | 0;
  29527.   var $this_addr_i10 = __stackBase__;
  29528.   var $i_addr_i11 = __stackBase__ + 4;
  29529.   var $this_addr_i7 = __stackBase__ + 8;
  29530.   var $info_addr_i = __stackBase__ + 12;
  29531.   var $lookup_props_addr_i = __stackBase__ + 16;
  29532.   var $property_i = __stackBase__ + 20;
  29533.   var $this_addr_i_i_i5_i = __stackBase__ + 32;
  29534.   var $this_addr_i_i6_i = __stackBase__ + 36;
  29535.   var $this_addr_i7_i = __stackBase__ + 40;
  29536.   var $this_addr_i_i_i_i = __stackBase__ + 44;
  29537.   var $this_addr_i_i_i = __stackBase__ + 48;
  29538.   var $this_addr_i_i = __stackBase__ + 52;
  29539.   var $retval_i = __stackBase__ + 56;
  29540.   var $this_addr_i = __stackBase__ + 57;
  29541.   var $c_addr_i = __stackBase__ + 61;
  29542.   var $lookup_type_i = __stackBase__ + 65;
  29543.   var $count_i = __stackBase__ + 69;
  29544.   var $i_i = __stackBase__ + 73;
  29545.   var $r_i;
  29546.   var $retval;
  29547.   var $c_addr;
  29548.   $c_addr = $c;
  29549.   HEAP[__stackBase__ + 24] = HEAP[$c_addr + 12 | 0];
  29550.   HEAP[__stackBase__ + 28] = 0;
  29551.   HEAP[$this_addr_i10] = HEAP[$c_addr + 12 | 0];
  29552.   HEAP[$i_addr_i11] = 0;
  29553.   var $this1_i12 = HEAP[$this_addr_i10];
  29554.   var $arrayidx_i16 = HEAP[$this1_i12 + 96 | 0] + ((HEAP[$i_addr_i11] + HEAP[$this1_i12 + 80 | 0]) * 20 & -1) | 0;
  29555.   var $17 = HEAP[$c_addr + 36 | 0];
  29556.   HEAP[$this_addr_i7] = $c_addr;
  29557.   HEAP[$info_addr_i] = $arrayidx_i16;
  29558.   HEAP[$lookup_props_addr_i] = $17;
  29559.   var $this1_i8 = HEAP[$this_addr_i7];
  29560.   HEAP[$property_i] = HEAP[HEAP[$info_addr_i] + 12 | 0] & 65535;
  29561.   if (!__ZNK2OT18hb_apply_context_t16match_propertiesEjjj($this1_i8, HEAP[HEAP[$info_addr_i] | 0], HEAP[$property_i], HEAP[$lookup_props_addr_i])) {
  29562.     $retval = 0;
  29563.     var $80 = $retval;
  29564.     STACKTOP = __stackBase__;
  29565.     return $80;
  29566.   }
  29567.   HEAP[$this_addr_i] = $this;
  29568.   HEAP[$c_addr_i] = $c_addr;
  29569.   var $this1_i = HEAP[$this_addr_i];
  29570.   HEAP[$this_addr_i_i] = $this1_i;
  29571.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  29572.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  29573.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  29574.   HEAP[$lookup_type_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  29575.   HEAP[$this_addr_i7_i] = $this1_i;
  29576.   HEAP[$this_addr_i_i6_i] = HEAP[$this_addr_i7_i] + 4 | 0;
  29577.   HEAP[$this_addr_i_i_i5_i] = HEAP[$this_addr_i_i6_i] | 0;
  29578.   var $this1_i_i_i11_i = HEAP[$this_addr_i_i_i5_i];
  29579.   HEAP[$count_i] = ((HEAP[$this1_i_i_i11_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i11_i + 1 | 0] & 255) & 65535;
  29580.   HEAP[$i_i] = 0;
  29581.   L575 : do {
  29582.     if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  29583.       while (1) {
  29584.         $r_i = __ZNK2OT17PosLookupSubTable8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_j(__ZNK2OT9PosLookup12get_subtableEj($this1_i, HEAP[$i_i]), HEAP[$c_addr_i], HEAP[$lookup_type_i]) & 1;
  29585.         if ($r_i & 1 & 1) {
  29586.           break;
  29587.         }
  29588.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  29589.         if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  29590.           label = 428;
  29591.           break L575;
  29592.         }
  29593.       }
  29594.       HEAP[$retval_i] = $r_i & 1 & 1;
  29595.       break;
  29596.     } else {
  29597.       label = 428;
  29598.     }
  29599.   } while (0);
  29600.   if (label == 428) {
  29601.     HEAP[$retval_i] = 0;
  29602.   }
  29603.   $retval = HEAP[$retval_i] & 1;
  29604.   var $80 = $retval;
  29605.   STACKTOP = __stackBase__;
  29606.   return $80;
  29607. }
  29608. function __ZNK2OT17PosLookupSubTable8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_j($this, $c, $lookup_type) {
  29609.   var label = 0;
  29610.   var __stackBase__ = STACKTOP;
  29611.   STACKTOP = STACKTOP + 2555 | 0;
  29612.   var $this_addr_i_i_i_i_i741 = __stackBase__;
  29613.   var $this_addr_i_i1_i_i = __stackBase__ + 4;
  29614.   var $this_addr_i2_i_i = __stackBase__ + 8;
  29615.   var $this_addr_i_i_i_i742 = __stackBase__ + 12;
  29616.   var $this_addr_i_i_i743 = __stackBase__ + 16;
  29617.   var $retval_i_i = __stackBase__ + 20;
  29618.   var $this_addr_i_i744 = __stackBase__ + 24;
  29619.   var $this_addr_i745 = __stackBase__ + 28;
  29620.   var $c_addr_i746 = __stackBase__ + 32;
  29621.   var $this_addr_i_i3_i525 = __stackBase__ + 36;
  29622.   var $this_addr_i4_i526 = __stackBase__ + 40;
  29623.   var $this_addr_i152_i_i_i = __stackBase__ + 44;
  29624.   var $i_addr_i153_i_i_i = __stackBase__ + 48;
  29625.   var $this_addr_i_i148_i_i_i = __stackBase__ + 52;
  29626.   var $lookup_props__addr_i_i_i_i_i527 = __stackBase__ + 56;
  29627.   var $this_addr_i149_i_i_i = __stackBase__ + 60;
  29628.   var $lookup_props_addr_i_i_i_i528 = __stackBase__ + 64;
  29629.   var $X_addr_i_i_i_i118_i_i_i = __stackBase__ + 68;
  29630.   var $P_addr_i_i_i119_i_i_i = __stackBase__ + 72;
  29631.   var $offset_addr_i_i_i120_i_i_i = __stackBase__ + 76;
  29632.   var $this_addr_i_i_i_i121_i_i_i = __stackBase__ + 80;
  29633.   var $this_addr_i_i_i122_i_i_i = __stackBase__ + 84;
  29634.   var $retval_i_i123_i_i_i = __stackBase__ + 88;
  29635.   var $this_addr_i_i124_i_i_i = __stackBase__ + 92;
  29636.   var $base_addr_i_i125_i_i_i = __stackBase__ + 96;
  29637.   var $offset_i_i126_i_i_i = __stackBase__ + 100;
  29638.   var $base_addr_i127_i_i_i = __stackBase__ + 104;
  29639.   var $offset_addr_i128_i_i_i = __stackBase__ + 108;
  29640.   var $this_addr_i107_i_i_i = __stackBase__ + 112;
  29641.   var $i_addr_i108_i_i_i = __stackBase__ + 116;
  29642.   var $info_addr_i101_i_i_i = __stackBase__ + 120;
  29643.   var $info_addr_i96_i_i_i = __stackBase__ + 124;
  29644.   var $this_addr_i89_i_i_i = __stackBase__ + 128;
  29645.   var $i_addr_i90_i_i_i = __stackBase__ + 132;
  29646.   var $info_addr_i_i72_i_i_i = __stackBase__ + 136;
  29647.   var $retval_i73_i_i_i = __stackBase__ + 140;
  29648.   var $info_addr_i74_i_i_i = __stackBase__ + 144;
  29649.   var $info_addr_i_i_i_i_i529 = __stackBase__ + 148;
  29650.   var $retval_i_i_i_i530 = __stackBase__ + 152;
  29651.   var $info_addr_i_i_i_i531 = __stackBase__ + 156;
  29652.   var $X_addr_i_i_i_i37_i_i_i532 = __stackBase__ + 160;
  29653.   var $P_addr_i_i_i38_i_i_i533 = __stackBase__ + 164;
  29654.   var $offset_addr_i_i_i39_i_i_i534 = __stackBase__ + 168;
  29655.   var $this_addr_i_i_i_i40_i_i_i535 = __stackBase__ + 172;
  29656.   var $this_addr_i_i_i41_i_i_i536 = __stackBase__ + 176;
  29657.   var $retval_i_i42_i_i_i537 = __stackBase__ + 180;
  29658.   var $this_addr_i_i43_i_i_i538 = __stackBase__ + 184;
  29659.   var $base_addr_i_i44_i_i_i539 = __stackBase__ + 188;
  29660.   var $offset_i_i45_i_i_i540 = __stackBase__ + 192;
  29661.   var $base_addr_i46_i_i_i541 = __stackBase__ + 196;
  29662.   var $offset_addr_i47_i_i_i542 = __stackBase__ + 200;
  29663.   var $X_addr_i_i_i_i6_i_i_i544 = __stackBase__ + 204;
  29664.   var $P_addr_i_i_i7_i_i_i545 = __stackBase__ + 208;
  29665.   var $offset_addr_i_i_i8_i_i_i546 = __stackBase__ + 212;
  29666.   var $this_addr_i_i_i_i9_i_i_i547 = __stackBase__ + 216;
  29667.   var $this_addr_i_i_i10_i_i_i548 = __stackBase__ + 220;
  29668.   var $retval_i_i11_i_i_i549 = __stackBase__ + 224;
  29669.   var $this_addr_i_i12_i_i_i550 = __stackBase__ + 228;
  29670.   var $base_addr_i_i13_i_i_i551 = __stackBase__ + 232;
  29671.   var $offset_i_i14_i_i_i552 = __stackBase__ + 236;
  29672.   var $base_addr_i15_i_i_i553 = __stackBase__ + 240;
  29673.   var $offset_addr_i16_i_i_i554 = __stackBase__ + 244;
  29674.   var $X_addr_i_i_i_i_i_i_i555 = __stackBase__ + 248;
  29675.   var $P_addr_i_i_i_i_i_i556 = __stackBase__ + 252;
  29676.   var $offset_addr_i_i_i_i_i_i557 = __stackBase__ + 256;
  29677.   var $this_addr_i_i_i_i_i_i_i558 = __stackBase__ + 260;
  29678.   var $this_addr_i_i_i_i_i_i559 = __stackBase__ + 264;
  29679.   var $retval_i_i_i_i_i560 = __stackBase__ + 268;
  29680.   var $this_addr_i_i3_i_i_i561 = __stackBase__ + 272;
  29681.   var $base_addr_i_i_i_i_i562 = __stackBase__ + 276;
  29682.   var $offset_i_i_i_i_i563 = __stackBase__ + 280;
  29683.   var $base_addr_i_i_i_i564 = __stackBase__ + 284;
  29684.   var $offset_addr_i_i_i_i565 = __stackBase__ + 288;
  29685.   var $this_addr_i_i_i_i_i566 = __stackBase__ + 292;
  29686.   var $this_addr_i1_i_i_i567 = __stackBase__ + 296;
  29687.   var $this_addr_i_i_i_i568 = __stackBase__ + 300;
  29688.   var $i_addr_i_i_i_i569 = __stackBase__ + 304;
  29689.   var $retval_i_i_i571 = __stackBase__ + 308;
  29690.   var $this_addr_i_i_i572 = __stackBase__ + 309;
  29691.   var $c_addr_i_i_i573 = __stackBase__ + 313;
  29692.   var $mark1_index_i_i_i = __stackBase__ + 317;
  29693.   var $ref_tmp_i_i_i574 = __stackBase__ + 321;
  29694.   var $skippy_iter_i_i_i575 = __stackBase__ + 325;
  29695.   var $j_i_i_i576 = __stackBase__ + 365;
  29696.   var $id1_i_i_i = __stackBase__ + 369;
  29697.   var $id2_i_i_i = __stackBase__ + 373;
  29698.   var $comp1_i_i_i = __stackBase__ + 377;
  29699.   var $comp2_i_i_i = __stackBase__ + 381;
  29700.   var $mark2_index_i_i_i = __stackBase__ + 385;
  29701.   var $ref_tmp56_i_i_i = __stackBase__ + 389;
  29702.   var $ref_tmp67_i_i_i = __stackBase__ + 393;
  29703.   var $ref_tmp69_i_i_i = __stackBase__ + 397;
  29704.   var $this_addr_i_i577 = __stackBase__ + 401;
  29705.   var $obj_addr_i_i578 = __stackBase__ + 405;
  29706.   var $retval_i581 = __stackBase__ + 409;
  29707.   var $this_addr_i582 = __stackBase__ + 410;
  29708.   var $c_addr_i583 = __stackBase__ + 414;
  29709.   var $this_addr_i_i3_i373 = __stackBase__ + 418;
  29710.   var $this_addr_i4_i374 = __stackBase__ + 422;
  29711.   var $this_addr_i189_i_i_i = __stackBase__ + 426;
  29712.   var $i_addr_i190_i_i_i = __stackBase__ + 430;
  29713.   var $this_addr_i_i185_i_i_i = __stackBase__ + 434;
  29714.   var $lookup_props__addr_i_i_i_i_i375 = __stackBase__ + 438;
  29715.   var $this_addr_i186_i_i_i = __stackBase__ + 442;
  29716.   var $lookup_props_addr_i_i_i_i376 = __stackBase__ + 446;
  29717.   var $X_addr_i_i_i_i155_i_i_i = __stackBase__ + 450;
  29718.   var $P_addr_i_i_i156_i_i_i = __stackBase__ + 454;
  29719.   var $offset_addr_i_i_i157_i_i_i = __stackBase__ + 458;
  29720.   var $this_addr_i_i_i_i158_i_i_i = __stackBase__ + 462;
  29721.   var $this_addr_i_i_i159_i_i_i = __stackBase__ + 466;
  29722.   var $retval_i_i160_i_i_i = __stackBase__ + 470;
  29723.   var $this_addr_i_i161_i_i_i = __stackBase__ + 474;
  29724.   var $base_addr_i_i162_i_i_i = __stackBase__ + 478;
  29725.   var $offset_i_i163_i_i_i = __stackBase__ + 482;
  29726.   var $base_addr_i164_i_i_i = __stackBase__ + 486;
  29727.   var $offset_addr_i165_i_i_i = __stackBase__ + 490;
  29728.   var $X_addr_i_i_i_i124_i_i_i = __stackBase__ + 494;
  29729.   var $P_addr_i_i_i125_i_i_i = __stackBase__ + 498;
  29730.   var $offset_addr_i_i_i126_i_i_i = __stackBase__ + 502;
  29731.   var $this_addr_i_i_i_i127_i_i_i = __stackBase__ + 506;
  29732.   var $this_addr_i_i_i128_i_i_i = __stackBase__ + 510;
  29733.   var $retval_i_i129_i_i_i = __stackBase__ + 514;
  29734.   var $this_addr_i_i130_i_i_i = __stackBase__ + 518;
  29735.   var $base_addr_i_i131_i_i_i = __stackBase__ + 522;
  29736.   var $offset_i_i132_i_i_i = __stackBase__ + 526;
  29737.   var $base_addr_i133_i_i_i = __stackBase__ + 530;
  29738.   var $offset_addr_i134_i_i_i = __stackBase__ + 534;
  29739.   var $X_addr_i_i_i_i93_i_i_i = __stackBase__ + 538;
  29740.   var $P_addr_i_i_i94_i_i_i = __stackBase__ + 542;
  29741.   var $offset_addr_i_i_i95_i_i_i = __stackBase__ + 546;
  29742.   var $this_addr_i_i_i_i96_i_i_i = __stackBase__ + 550;
  29743.   var $this_addr_i_i_i97_i_i_i377 = __stackBase__ + 554;
  29744.   var $retval_i_i98_i_i_i = __stackBase__ + 558;
  29745.   var $this_addr_i_i99_i_i_i = __stackBase__ + 562;
  29746.   var $base_addr_i_i100_i_i_i = __stackBase__ + 566;
  29747.   var $offset_i_i101_i_i_i = __stackBase__ + 570;
  29748.   var $base_addr_i102_i_i_i = __stackBase__ + 574;
  29749.   var $offset_addr_i103_i_i_i = __stackBase__ + 578;
  29750.   var $X_addr_i_i_i_i_i_i378 = __stackBase__ + 582;
  29751.   var $X_addr_i_i_i_i_i_i_i_i = __stackBase__ + 586;
  29752.   var $P_addr_i_i_i_i_i_i_i = __stackBase__ + 590;
  29753.   var $offset_addr_i_i_i_i_i_i_i = __stackBase__ + 594;
  29754.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 598;
  29755.   var $this_addr_i_i_i_i75_i_i_i = __stackBase__ + 602;
  29756.   var $retval_i_i_i_i_i_i = __stackBase__ + 606;
  29757.   var $this_addr_i_i1_i_i_i_i = __stackBase__ + 610;
  29758.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 614;
  29759.   var $offset_i_i_i_i_i_i = __stackBase__ + 618;
  29760.   var $base_addr_i_i76_i_i_i = __stackBase__ + 622;
  29761.   var $offset_addr_i_i_i_i_i379 = __stackBase__ + 626;
  29762.   var $this_addr_i_i_i77_i_i_i = __stackBase__ + 630;
  29763.   var $this_addr_i_i78_i_i_i = __stackBase__ + 634;
  29764.   var $retval_i79_i_i_i = __stackBase__ + 638;
  29765.   var $this_addr_i80_i_i_i = __stackBase__ + 642;
  29766.   var $i_addr_i81_i_i_i = __stackBase__ + 646;
  29767.   var $ref_tmp_i_i_i_i = __stackBase__ + 650;
  29768.   var $this_addr_i_i61_i_i_i380 = __stackBase__ + 654;
  29769.   var $this_addr_i62_i_i_i = __stackBase__ + 658;
  29770.   var $info_addr_i53_i_i_i = __stackBase__ + 662;
  29771.   var $this_addr_i46_i_i_i = __stackBase__ + 666;
  29772.   var $i_addr_i47_i_i_i = __stackBase__ + 670;
  29773.   var $info_addr_i41_i_i_i = __stackBase__ + 674;
  29774.   var $this_addr_i34_i_i_i381 = __stackBase__ + 678;
  29775.   var $i_addr_i35_i_i_i = __stackBase__ + 682;
  29776.   var $info_addr_i_i17_i_i_i = __stackBase__ + 686;
  29777.   var $retval_i18_i_i_i = __stackBase__ + 690;
  29778.   var $info_addr_i19_i_i_i = __stackBase__ + 694;
  29779.   var $this_addr_i10_i_i_i = __stackBase__ + 698;
  29780.   var $i_addr_i11_i_i_i = __stackBase__ + 702;
  29781.   var $info_addr_i_i_i_i_i382 = __stackBase__ + 706;
  29782.   var $retval_i_i_i_i383 = __stackBase__ + 710;
  29783.   var $info_addr_i_i_i_i384 = __stackBase__ + 714;
  29784.   var $a_addr_i_i_i_i = __stackBase__ + 718;
  29785.   var $b_addr_i_i_i_i = __stackBase__ + 722;
  29786.   var $X_addr_i_i_i_i_i_i_i385 = __stackBase__ + 726;
  29787.   var $P_addr_i_i_i_i_i_i386 = __stackBase__ + 730;
  29788.   var $offset_addr_i_i_i_i_i_i387 = __stackBase__ + 734;
  29789.   var $this_addr_i_i_i_i_i_i_i388 = __stackBase__ + 738;
  29790.   var $this_addr_i_i_i_i_i_i389 = __stackBase__ + 742;
  29791.   var $retval_i_i_i_i_i390 = __stackBase__ + 746;
  29792.   var $this_addr_i_i3_i_i_i391 = __stackBase__ + 750;
  29793.   var $base_addr_i_i_i_i_i392 = __stackBase__ + 754;
  29794.   var $offset_i_i_i_i_i393 = __stackBase__ + 758;
  29795.   var $base_addr_i_i_i_i394 = __stackBase__ + 762;
  29796.   var $offset_addr_i_i_i_i395 = __stackBase__ + 766;
  29797.   var $this_addr_i_i_i_i_i396 = __stackBase__ + 770;
  29798.   var $this_addr_i1_i_i_i397 = __stackBase__ + 774;
  29799.   var $this_addr_i_i_i_i398 = __stackBase__ + 778;
  29800.   var $i_addr_i_i_i_i399 = __stackBase__ + 782;
  29801.   var $retval_i_i_i401 = __stackBase__ + 786;
  29802.   var $this_addr_i_i_i402 = __stackBase__ + 787;
  29803.   var $c_addr_i_i_i403 = __stackBase__ + 791;
  29804.   var $mark_index_i_i_i404 = __stackBase__ + 795;
  29805.   var $ref_tmp_i_i_i405 = __stackBase__ + 799;
  29806.   var $skippy_iter_i_i_i406 = __stackBase__ + 803;
  29807.   var $j_i_i_i407 = __stackBase__ + 843;
  29808.   var $lig_index_i_i_i = __stackBase__ + 847;
  29809.   var $ref_tmp22_i_i_i408 = __stackBase__ + 851;
  29810.   var $lig_array_i_i_i = __stackBase__ + 855;
  29811.   var $ref_tmp33_i_i_i = __stackBase__ + 859;
  29812.   var $lig_attach_i_i_i = __stackBase__ + 863;
  29813.   var $comp_count_i_i_i = __stackBase__ + 867;
  29814.   var $comp_index_i_i_i = __stackBase__ + 871;
  29815.   var $lig_id_i_i_i = __stackBase__ + 875;
  29816.   var $mark_id_i_i_i = __stackBase__ + 879;
  29817.   var $mark_comp_i_i_i = __stackBase__ + 883;
  29818.   var $ref_tmp60_i_i_i = __stackBase__ + 887;
  29819.   var $ref_tmp64_i_i_i = __stackBase__ + 891;
  29820.   var $this_addr_i_i409 = __stackBase__ + 895;
  29821.   var $obj_addr_i_i410 = __stackBase__ + 899;
  29822.   var $retval_i413 = __stackBase__ + 903;
  29823.   var $this_addr_i414 = __stackBase__ + 904;
  29824.   var $c_addr_i415 = __stackBase__ + 908;
  29825.   var $this_addr_i_i3_i259 = __stackBase__ + 912;
  29826.   var $this_addr_i4_i260 = __stackBase__ + 916;
  29827.   var $this_addr_i108_i_i_i261 = __stackBase__ + 920;
  29828.   var $i_addr_i109_i_i_i262 = __stackBase__ + 924;
  29829.   var $this_addr_i_i104_i_i_i = __stackBase__ + 928;
  29830.   var $lookup_props__addr_i_i_i_i_i = __stackBase__ + 932;
  29831.   var $this_addr_i105_i_i_i = __stackBase__ + 936;
  29832.   var $lookup_props_addr_i_i_i_i = __stackBase__ + 940;
  29833.   var $X_addr_i_i_i_i74_i_i_i = __stackBase__ + 944;
  29834.   var $P_addr_i_i_i75_i_i_i = __stackBase__ + 948;
  29835.   var $offset_addr_i_i_i76_i_i_i = __stackBase__ + 952;
  29836.   var $this_addr_i_i_i_i77_i_i_i = __stackBase__ + 956;
  29837.   var $this_addr_i_i_i78_i_i_i = __stackBase__ + 960;
  29838.   var $retval_i_i79_i_i_i = __stackBase__ + 964;
  29839.   var $this_addr_i_i80_i_i_i = __stackBase__ + 968;
  29840.   var $base_addr_i_i81_i_i_i = __stackBase__ + 972;
  29841.   var $offset_i_i82_i_i_i = __stackBase__ + 976;
  29842.   var $base_addr_i83_i_i_i = __stackBase__ + 980;
  29843.   var $offset_addr_i84_i_i_i = __stackBase__ + 984;
  29844.   var $info_addr_i_i_i_i_i = __stackBase__ + 988;
  29845.   var $retval_i_i_i_i263 = __stackBase__ + 992;
  29846.   var $info_addr_i_i_i_i = __stackBase__ + 996;
  29847.   var $this_addr_i66_i_i_i = __stackBase__ + 1e3;
  29848.   var $X_addr_i_i_i_i37_i_i_i = __stackBase__ + 1004;
  29849.   var $P_addr_i_i_i38_i_i_i = __stackBase__ + 1008;
  29850.   var $offset_addr_i_i_i39_i_i_i = __stackBase__ + 1012;
  29851.   var $this_addr_i_i_i_i40_i_i_i = __stackBase__ + 1016;
  29852.   var $this_addr_i_i_i41_i_i_i = __stackBase__ + 1020;
  29853.   var $retval_i_i42_i_i_i = __stackBase__ + 1024;
  29854.   var $this_addr_i_i43_i_i_i = __stackBase__ + 1028;
  29855.   var $base_addr_i_i44_i_i_i = __stackBase__ + 1032;
  29856.   var $offset_i_i45_i_i_i = __stackBase__ + 1036;
  29857.   var $base_addr_i46_i_i_i = __stackBase__ + 1040;
  29858.   var $offset_addr_i47_i_i_i = __stackBase__ + 1044;
  29859.   var $X_addr_i_i_i_i6_i_i_i = __stackBase__ + 1048;
  29860.   var $P_addr_i_i_i7_i_i_i = __stackBase__ + 1052;
  29861.   var $offset_addr_i_i_i8_i_i_i = __stackBase__ + 1056;
  29862.   var $this_addr_i_i_i_i9_i_i_i = __stackBase__ + 1060;
  29863.   var $this_addr_i_i_i10_i_i_i = __stackBase__ + 1064;
  29864.   var $retval_i_i11_i_i_i = __stackBase__ + 1068;
  29865.   var $this_addr_i_i12_i_i_i = __stackBase__ + 1072;
  29866.   var $base_addr_i_i13_i_i_i = __stackBase__ + 1076;
  29867.   var $offset_i_i14_i_i_i = __stackBase__ + 1080;
  29868.   var $base_addr_i15_i_i_i = __stackBase__ + 1084;
  29869.   var $offset_addr_i16_i_i_i = __stackBase__ + 1088;
  29870.   var $X_addr_i_i_i_i_i_i_i264 = __stackBase__ + 1092;
  29871.   var $P_addr_i_i_i_i_i_i265 = __stackBase__ + 1096;
  29872.   var $offset_addr_i_i_i_i_i_i266 = __stackBase__ + 1100;
  29873.   var $this_addr_i_i_i_i_i_i_i267 = __stackBase__ + 1104;
  29874.   var $this_addr_i_i_i_i_i_i268 = __stackBase__ + 1108;
  29875.   var $retval_i_i_i_i_i269 = __stackBase__ + 1112;
  29876.   var $this_addr_i_i3_i_i_i = __stackBase__ + 1116;
  29877.   var $base_addr_i_i_i_i_i270 = __stackBase__ + 1120;
  29878.   var $offset_i_i_i_i_i271 = __stackBase__ + 1124;
  29879.   var $base_addr_i_i_i_i272 = __stackBase__ + 1128;
  29880.   var $offset_addr_i_i_i_i273 = __stackBase__ + 1132;
  29881.   var $this_addr_i_i_i_i_i274 = __stackBase__ + 1136;
  29882.   var $this_addr_i1_i_i_i275 = __stackBase__ + 1140;
  29883.   var $this_addr_i_i_i_i276 = __stackBase__ + 1144;
  29884.   var $i_addr_i_i_i_i277 = __stackBase__ + 1148;
  29885.   var $retval_i_i_i279 = __stackBase__ + 1152;
  29886.   var $this_addr_i_i_i280 = __stackBase__ + 1153;
  29887.   var $c_addr_i_i_i281 = __stackBase__ + 1157;
  29888.   var $mark_index_i_i_i = __stackBase__ + 1161;
  29889.   var $ref_tmp_i_i_i282 = __stackBase__ + 1165;
  29890.   var $skippy_iter_i_i_i283 = __stackBase__ + 1169;
  29891.   var $base_index_i_i_i = __stackBase__ + 1209;
  29892.   var $ref_tmp29_i_i_i284 = __stackBase__ + 1213;
  29893.   var $ref_tmp41_i_i_i = __stackBase__ + 1217;
  29894.   var $ref_tmp43_i_i_i = __stackBase__ + 1221;
  29895.   var $this_addr_i_i285 = __stackBase__ + 1225;
  29896.   var $obj_addr_i_i286 = __stackBase__ + 1229;
  29897.   var $retval_i289 = __stackBase__ + 1233;
  29898.   var $this_addr_i290 = __stackBase__ + 1234;
  29899.   var $c_addr_i291 = __stackBase__ + 1238;
  29900.   var $this_addr_i_i3_i139 = __stackBase__ + 1242;
  29901.   var $this_addr_i4_i140 = __stackBase__ + 1246;
  29902.   var $X_addr_i_i_i_i144_i_i_i = __stackBase__ + 1250;
  29903.   var $P_addr_i_i_i145_i_i_i = __stackBase__ + 1254;
  29904.   var $offset_addr_i_i_i146_i_i_i = __stackBase__ + 1258;
  29905.   var $this_addr_i_i_i_i147_i_i_i = __stackBase__ + 1262;
  29906.   var $this_addr_i_i_i148_i_i_i = __stackBase__ + 1266;
  29907.   var $retval_i_i149_i_i_i = __stackBase__ + 1270;
  29908.   var $this_addr_i_i150_i_i_i = __stackBase__ + 1274;
  29909.   var $base_addr_i_i151_i_i_i = __stackBase__ + 1278;
  29910.   var $offset_i_i152_i_i_i = __stackBase__ + 1282;
  29911.   var $base_addr_i153_i_i_i = __stackBase__ + 1286;
  29912.   var $offset_addr_i154_i_i_i = __stackBase__ + 1290;
  29913.   var $this_addr_i137_i_i_i = __stackBase__ + 1294;
  29914.   var $i_addr_i138_i_i_i = __stackBase__ + 1298;
  29915.   var $this_addr_i131_i_i_i = __stackBase__ + 1302;
  29916.   var $X_addr_i_i_i104_i_i_i = __stackBase__ + 1306;
  29917.   var $this_addr_i_i_i105_i_i_i = __stackBase__ + 1310;
  29918.   var $this_addr_i_i106_i_i_i = __stackBase__ + 1314;
  29919.   var $retval_i107_i_i_i = __stackBase__ + 1318;
  29920.   var $this_addr_i108_i_i_i = __stackBase__ + 1322;
  29921.   var $i_addr_i109_i_i_i = __stackBase__ + 1326;
  29922.   var $this_addr_i_i90_i_i_i = __stackBase__ + 1330;
  29923.   var $this_addr_i91_i_i_i = __stackBase__ + 1334;
  29924.   var $X_addr_i_i_i_i55_i_i_i = __stackBase__ + 1338;
  29925.   var $P_addr_i_i_i56_i_i_i = __stackBase__ + 1342;
  29926.   var $offset_addr_i_i_i57_i_i_i = __stackBase__ + 1346;
  29927.   var $this_addr_i_i_i_i58_i_i_i = __stackBase__ + 1350;
  29928.   var $this_addr_i_i_i59_i_i_i = __stackBase__ + 1354;
  29929.   var $retval_i_i60_i_i_i = __stackBase__ + 1358;
  29930.   var $this_addr_i_i61_i_i_i = __stackBase__ + 1362;
  29931.   var $base_addr_i_i62_i_i_i = __stackBase__ + 1366;
  29932.   var $offset_i_i63_i_i_i = __stackBase__ + 1370;
  29933.   var $base_addr_i64_i_i_i = __stackBase__ + 1374;
  29934.   var $offset_addr_i65_i_i_i = __stackBase__ + 1378;
  29935.   var $this_addr_i48_i_i_i = __stackBase__ + 1382;
  29936.   var $i_addr_i49_i_i_i = __stackBase__ + 1386;
  29937.   var $X_addr_i_i_i_i_i_i141 = __stackBase__ + 1390;
  29938.   var $this_addr_i_i_i38_i_i_i = __stackBase__ + 1394;
  29939.   var $this_addr_i_i39_i_i_i = __stackBase__ + 1398;
  29940.   var $retval_i_i_i_i142 = __stackBase__ + 1402;
  29941.   var $this_addr_i40_i_i_i = __stackBase__ + 1406;
  29942.   var $i_addr_i41_i_i_i = __stackBase__ + 1410;
  29943.   var $this_addr_i_i33_i_i_i = __stackBase__ + 1414;
  29944.   var $this_addr_i34_i_i_i = __stackBase__ + 1418;
  29945.   var $X_addr_i_i_i_i1_i_i_i = __stackBase__ + 1422;
  29946.   var $P_addr_i_i_i2_i_i_i = __stackBase__ + 1426;
  29947.   var $offset_addr_i_i_i3_i_i_i = __stackBase__ + 1430;
  29948.   var $this_addr_i_i_i_i4_i_i_i = __stackBase__ + 1434;
  29949.   var $this_addr_i_i_i5_i_i_i = __stackBase__ + 1438;
  29950.   var $retval_i_i6_i_i_i = __stackBase__ + 1442;
  29951.   var $this_addr_i_i7_i_i_i = __stackBase__ + 1446;
  29952.   var $base_addr_i_i8_i_i_i = __stackBase__ + 1450;
  29953.   var $offset_i_i9_i_i_i = __stackBase__ + 1454;
  29954.   var $base_addr_i10_i_i_i = __stackBase__ + 1458;
  29955.   var $offset_addr_i11_i_i_i = __stackBase__ + 1462;
  29956.   var $X_addr_i_i_i_i_i_i_i143 = __stackBase__ + 1466;
  29957.   var $P_addr_i_i_i_i_i_i144 = __stackBase__ + 1470;
  29958.   var $offset_addr_i_i_i_i_i_i145 = __stackBase__ + 1474;
  29959.   var $this_addr_i_i_i_i_i_i_i146 = __stackBase__ + 1478;
  29960.   var $this_addr_i_i_i_i_i_i147 = __stackBase__ + 1482;
  29961.   var $retval_i_i_i_i_i148 = __stackBase__ + 1486;
  29962.   var $this_addr_i_i_i_i_i149 = __stackBase__ + 1490;
  29963.   var $base_addr_i_i_i_i_i150 = __stackBase__ + 1494;
  29964.   var $offset_i_i_i_i_i151 = __stackBase__ + 1498;
  29965.   var $base_addr_i_i_i_i152 = __stackBase__ + 1502;
  29966.   var $offset_addr_i_i_i_i153 = __stackBase__ + 1506;
  29967.   var $this_addr_i_i_i_i154 = __stackBase__ + 1510;
  29968.   var $i_addr_i_i_i_i155 = __stackBase__ + 1514;
  29969.   var $retval_i_i_i157 = __stackBase__ + 1518;
  29970.   var $this_addr_i_i_i158 = __stackBase__ + 1519;
  29971.   var $c_addr_i_i_i159 = __stackBase__ + 1523;
  29972.   var $skippy_iter_i_i_i160 = __stackBase__ + 1527;
  29973.   var $this_record_i_i_i = __stackBase__ + 1571;
  29974.   var $ref_tmp_i_i_i161 = __stackBase__ + 1575;
  29975.   var $next_record_i_i_i = __stackBase__ + 1579;
  29976.   var $ref_tmp29_i_i_i = __stackBase__ + 1583;
  29977.   var $i_i_i_i = __stackBase__ + 1587;
  29978.   var $j_i_i_i = __stackBase__ + 1591;
  29979.   var $entry_x_i_i_i = __stackBase__ + 1595;
  29980.   var $entry_y_i_i_i = __stackBase__ + 1599;
  29981.   var $exit_x_i_i_i = __stackBase__ + 1603;
  29982.   var $exit_y_i_i_i = __stackBase__ + 1607;
  29983.   var $ref_tmp46_i_i_i = __stackBase__ + 1611;
  29984.   var $ref_tmp53_i_i_i = __stackBase__ + 1615;
  29985.   var $pos_i_i_i162 = __stackBase__ + 1619;
  29986.   var $d_i_i_i = __stackBase__ + 1623;
  29987.   var $this_addr_i_i163 = __stackBase__ + 1627;
  29988.   var $obj_addr_i_i164 = __stackBase__ + 1631;
  29989.   var $retval_i167 = __stackBase__ + 1635;
  29990.   var $this_addr_i168 = __stackBase__ + 1636;
  29991.   var $c_addr_i169 = __stackBase__ + 1640;
  29992.   var $X_addr_i_i_i_i67_i_i_i = __stackBase__ + 1644;
  29993.   var $P_addr_i_i_i68_i_i_i = __stackBase__ + 1648;
  29994.   var $offset_addr_i_i_i69_i_i_i = __stackBase__ + 1652;
  29995.   var $this_addr_i_i_i_i70_i_i_i = __stackBase__ + 1656;
  29996.   var $this_addr_i_i_i71_i_i_i = __stackBase__ + 1660;
  29997.   var $retval_i_i72_i_i_i = __stackBase__ + 1664;
  29998.   var $this_addr_i_i73_i_i_i = __stackBase__ + 1668;
  29999.   var $base_addr_i_i74_i_i_i = __stackBase__ + 1672;
  30000.   var $offset_i_i75_i_i_i = __stackBase__ + 1676;
  30001.   var $base_addr_i76_i_i_i = __stackBase__ + 1680;
  30002.   var $offset_addr_i77_i_i_i = __stackBase__ + 1684;
  30003.   var $this_addr_i60_i_i_i = __stackBase__ + 1688;
  30004.   var $i_addr_i61_i_i_i = __stackBase__ + 1692;
  30005.   var $this_addr_i50_i_i_i = __stackBase__ + 1696;
  30006.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 1700;
  30007.   var $this_addr_i_i_i23_i_i_i = __stackBase__ + 1704;
  30008.   var $this_addr_i_i24_i_i_i = __stackBase__ + 1708;
  30009.   var $retval_i25_i_i_i = __stackBase__ + 1712;
  30010.   var $this_addr_i26_i_i11_i = __stackBase__ + 1716;
  30011.   var $i_addr_i27_i_i_i = __stackBase__ + 1720;
  30012.   var $X_addr_i_i_i_i_i_i12_i3 = __stackBase__ + 1724;
  30013.   var $P_addr_i_i_i_i_i13_i4 = __stackBase__ + 1728;
  30014.   var $offset_addr_i_i_i_i_i14_i5 = __stackBase__ + 1732;
  30015.   var $this_addr_i_i_i_i6_i_i_i = __stackBase__ + 1736;
  30016.   var $this_addr_i_i_i7_i_i_i = __stackBase__ + 1740;
  30017.   var $retval_i_i_i_i15_i = __stackBase__ + 1744;
  30018.   var $this_addr_i_i8_i_i_i = __stackBase__ + 1748;
  30019.   var $base_addr_i_i_i_i16_i = __stackBase__ + 1752;
  30020.   var $offset_i_i_i_i17_i = __stackBase__ + 1756;
  30021.   var $base_addr_i_i_i18_i = __stackBase__ + 1760;
  30022.   var $offset_addr_i_i_i19_i = __stackBase__ + 1764;
  30023.   var $this_addr_i2_i_i_i = __stackBase__ + 1768;
  30024.   var $i_addr_i_i_i20_i = __stackBase__ + 1772;
  30025.   var $mask_addr_i_i31_i_i_i_i = __stackBase__ + 1776;
  30026.   var $y_i_i32_i_i_i_i = __stackBase__ + 1780;
  30027.   var $this_addr_i_i_i33_i_i_i_i = __stackBase__ + 1784;
  30028.   var $this_addr_i_i34_i_i_i_i = __stackBase__ + 1788;
  30029.   var $this_addr_i35_i_i_i_i = __stackBase__ + 1792;
  30030.   var $mask_addr_i_i_i_i_i_i = __stackBase__ + 1796;
  30031.   var $y_i_i_i_i_i_i = __stackBase__ + 1800;
  30032.   var $this_addr_i_i_i_i_i_i21_i = __stackBase__ + 1804;
  30033.   var $this_addr_i_i25_i_i_i_i = __stackBase__ + 1808;
  30034.   var $this_addr_i26_i_i_i_i = __stackBase__ + 1812;
  30035.   var $X_addr_i_i_i_i_i = __stackBase__ + 1816;
  30036.   var $this_addr_i_i11_i_i_i_i = __stackBase__ + 1820;
  30037.   var $this_addr_i12_i_i_i_i = __stackBase__ + 1824;
  30038.   var $this_addr_i_i_i_i_i22_i = __stackBase__ + 1828;
  30039.   var $this_addr_i9_i_i_i_i = __stackBase__ + 1832;
  30040.   var $this_addr_i3_i_i_i_i = __stackBase__ + 1836;
  30041.   var $i_addr_i4_i_i_i_i = __stackBase__ + 1840;
  30042.   var $this_addr_i_i_i_i23_i = __stackBase__ + 1844;
  30043.   var $i_addr_i_i_i_i_i = __stackBase__ + 1848;
  30044.   var $P_addr_i_i_i_i_i = __stackBase__ + 1852;
  30045.   var $offset_addr_i_i_i_i_i = __stackBase__ + 1856;
  30046.   var $retval_i_i_i_i = __stackBase__ + 1860;
  30047.   var $this_addr_i_i_i24_i = __stackBase__ + 1861;
  30048.   var $c_addr_i_i_i_i = __stackBase__ + 1865;
  30049.   var $valueFormats_addr_i_i_i_i = __stackBase__ + 1869;
  30050.   var $pos_addr_i_i_i_i = __stackBase__ + 1873;
  30051.   var $len1_i_i_i_i = __stackBase__ + 1877;
  30052.   var $len2_i_i_i_i = __stackBase__ + 1881;
  30053.   var $record_size_i_i_i_i = __stackBase__ + 1885;
  30054.   var $record_i_i_i_i = __stackBase__ + 1889;
  30055.   var $count_i_i_i_i = __stackBase__ + 1893;
  30056.   var $i_i_i_i_i = __stackBase__ + 1897;
  30057.   var $retval_i_i26_i = __stackBase__ + 1901;
  30058.   var $this_addr_i_i27_i = __stackBase__ + 1902;
  30059.   var $c_addr_i_i28_i = __stackBase__ + 1906;
  30060.   var $skippy_iter_i_i29_i = __stackBase__ + 1910;
  30061.   var $index_i_i30_i = __stackBase__ + 1954;
  30062.   var $ref_tmp_i_i31_i = __stackBase__ + 1958;
  30063.   var $ref_tmp20_i_i_i = __stackBase__ + 1962;
  30064.   var $this_addr_i32_i = __stackBase__ + 1966;
  30065.   var $obj_addr_i33_i = __stackBase__ + 1970;
  30066.   var $this_addr_i_i3_i6 = __stackBase__ + 1974;
  30067.   var $this_addr_i4_i7 = __stackBase__ + 1978;
  30068.   var $this_addr_i159_i_i_i = __stackBase__ + 1982;
  30069.   var $i_addr_i160_i_i_i = __stackBase__ + 1986;
  30070.   var $X_addr_i_i_i_i128_i_i_i = __stackBase__ + 1990;
  30071.   var $P_addr_i_i_i129_i_i_i = __stackBase__ + 1994;
  30072.   var $offset_addr_i_i_i130_i_i_i = __stackBase__ + 1998;
  30073.   var $this_addr_i_i_i_i131_i_i_i = __stackBase__ + 2002;
  30074.   var $this_addr_i_i_i132_i_i_i = __stackBase__ + 2006;
  30075.   var $retval_i_i133_i_i_i = __stackBase__ + 2010;
  30076.   var $this_addr_i_i134_i_i_i = __stackBase__ + 2014;
  30077.   var $base_addr_i_i135_i_i_i = __stackBase__ + 2018;
  30078.   var $offset_i_i136_i_i_i = __stackBase__ + 2022;
  30079.   var $base_addr_i137_i_i_i = __stackBase__ + 2026;
  30080.   var $offset_addr_i138_i_i_i = __stackBase__ + 2030;
  30081.   var $mask_addr_i_i95_i_i_i = __stackBase__ + 2034;
  30082.   var $y_i_i96_i_i_i = __stackBase__ + 2038;
  30083.   var $this_addr_i_i_i97_i_i_i = __stackBase__ + 2042;
  30084.   var $this_addr_i_i98_i_i_i = __stackBase__ + 2046;
  30085.   var $this_addr_i99_i_i_i = __stackBase__ + 2050;
  30086.   var $mask_addr_i_i_i_i_i8 = __stackBase__ + 2054;
  30087.   var $y_i_i_i_i_i9 = __stackBase__ + 2058;
  30088.   var $this_addr_i_i_i86_i_i_i = __stackBase__ + 2062;
  30089.   var $this_addr_i_i87_i_i_i = __stackBase__ + 2066;
  30090.   var $this_addr_i88_i_i_i = __stackBase__ + 2070;
  30091.   var $X_addr_i_i_i_i56_i_i_i = __stackBase__ + 2074;
  30092.   var $P_addr_i_i_i57_i_i_i = __stackBase__ + 2078;
  30093.   var $offset_addr_i_i_i58_i_i_i = __stackBase__ + 2082;
  30094.   var $this_addr_i_i_i_i59_i_i_i = __stackBase__ + 2086;
  30095.   var $this_addr_i_i_i60_i_i_i = __stackBase__ + 2090;
  30096.   var $retval_i_i61_i_i_i = __stackBase__ + 2094;
  30097.   var $this_addr_i_i62_i_i_i = __stackBase__ + 2098;
  30098.   var $base_addr_i_i63_i_i_i = __stackBase__ + 2102;
  30099.   var $offset_i_i64_i_i_i = __stackBase__ + 2106;
  30100.   var $base_addr_i65_i_i_i = __stackBase__ + 2110;
  30101.   var $offset_addr_i66_i_i_i = __stackBase__ + 2114;
  30102.   var $this_addr_i49_i_i_i = __stackBase__ + 2118;
  30103.   var $i_addr_i50_i_i_i = __stackBase__ + 2122;
  30104.   var $X_addr_i_i_i_i_i_i_i10 = __stackBase__ + 2126;
  30105.   var $P_addr_i_i_i_i_i_i11 = __stackBase__ + 2130;
  30106.   var $offset_addr_i_i_i_i_i_i12 = __stackBase__ + 2134;
  30107.   var $this_addr_i_i_i_i_i_i_i13 = __stackBase__ + 2138;
  30108.   var $this_addr_i_i_i_i_i_i14 = __stackBase__ + 2142;
  30109.   var $retval_i_i_i_i_i15 = __stackBase__ + 2146;
  30110.   var $this_addr_i_i44_i_i_i = __stackBase__ + 2150;
  30111.   var $base_addr_i_i_i_i_i16 = __stackBase__ + 2154;
  30112.   var $offset_i_i_i_i_i17 = __stackBase__ + 2158;
  30113.   var $base_addr_i_i_i_i18 = __stackBase__ + 2162;
  30114.   var $offset_addr_i_i_i_i19 = __stackBase__ + 2166;
  30115.   var $this_addr_i39_i_i_i = __stackBase__ + 2170;
  30116.   var $this_addr_i_i25_i_i_i = __stackBase__ + 2174;
  30117.   var $this_addr_i26_i_i_i = __stackBase__ + 2178;
  30118.   var $this_addr_i_i11_i_i_i20 = __stackBase__ + 2182;
  30119.   var $this_addr_i12_i_i_i21 = __stackBase__ + 2186;
  30120.   var $this_addr_i_i_i_i_i23 = __stackBase__ + 2190;
  30121.   var $this_addr_i7_i_i_i24 = __stackBase__ + 2194;
  30122.   var $this_addr_i1_i_i_i25 = __stackBase__ + 2198;
  30123.   var $i_addr_i2_i_i_i26 = __stackBase__ + 2202;
  30124.   var $this_addr_i_i_i_i27 = __stackBase__ + 2206;
  30125.   var $i_addr_i_i_i_i28 = __stackBase__ + 2210;
  30126.   var $retval_i_i_i30 = __stackBase__ + 2214;
  30127.   var $this_addr_i_i_i31 = __stackBase__ + 2215;
  30128.   var $c_addr_i_i_i32 = __stackBase__ + 2219;
  30129.   var $skippy_iter_i_i_i = __stackBase__ + 2223;
  30130.   var $index_i_i_i33 = __stackBase__ + 2267;
  30131.   var $ref_tmp_i_i_i34 = __stackBase__ + 2271;
  30132.   var $len1_i_i_i = __stackBase__ + 2275;
  30133.   var $len2_i_i_i = __stackBase__ + 2279;
  30134.   var $record_len_i_i_i = __stackBase__ + 2283;
  30135.   var $klass1_i_i_i = __stackBase__ + 2287;
  30136.   var $ref_tmp22_i_i_i = __stackBase__ + 2291;
  30137.   var $klass2_i_i_i = __stackBase__ + 2295;
  30138.   var $ref_tmp28_i_i_i = __stackBase__ + 2299;
  30139.   var $v_i_i_i35 = __stackBase__ + 2303;
  30140.   var $this_addr_i_i36 = __stackBase__ + 2307;
  30141.   var $obj_addr_i_i37 = __stackBase__ + 2311;
  30142.   var $retval_i40 = __stackBase__ + 2315;
  30143.   var $this_addr_i41 = __stackBase__ + 2316;
  30144.   var $c_addr_i42 = __stackBase__ + 2320;
  30145.   var $X_addr_i_i_i_i_i_i12_i = __stackBase__ + 2324;
  30146.   var $P_addr_i_i_i_i_i13_i = __stackBase__ + 2328;
  30147.   var $offset_addr_i_i_i_i_i14_i = __stackBase__ + 2332;
  30148.   var $this_addr_i_i_i_i_i_i15_i = __stackBase__ + 2336;
  30149.   var $this_addr_i_i_i_i_i16_i = __stackBase__ + 2340;
  30150.   var $retval_i_i_i_i17_i = __stackBase__ + 2344;
  30151.   var $this_addr_i_i_i_i18_i = __stackBase__ + 2348;
  30152.   var $base_addr_i_i_i_i19_i = __stackBase__ + 2352;
  30153.   var $offset_i_i_i_i20_i = __stackBase__ + 2356;
  30154.   var $base_addr_i_i_i21_i = __stackBase__ + 2360;
  30155.   var $offset_addr_i_i_i22_i = __stackBase__ + 2364;
  30156.   var $this_addr_i9_i_i_i = __stackBase__ + 2368;
  30157.   var $i_addr_i10_i_i_i = __stackBase__ + 2372;
  30158.   var $this_addr_i1_i_i23_i = __stackBase__ + 2376;
  30159.   var $i_addr_i2_i_i24_i = __stackBase__ + 2380;
  30160.   var $this_addr_i_i_i25_i = __stackBase__ + 2384;
  30161.   var $i_addr_i_i_i26_i = __stackBase__ + 2388;
  30162.   var $retval_i_i28_i = __stackBase__ + 2392;
  30163.   var $this_addr_i_i29_i = __stackBase__ + 2393;
  30164.   var $c_addr_i_i30_i = __stackBase__ + 2397;
  30165.   var $index_i_i31_i = __stackBase__ + 2401;
  30166.   var $ref_tmp_i_i32_i = __stackBase__ + 2405;
  30167.   var $this_addr_i33_i = __stackBase__ + 2409;
  30168.   var $obj_addr_i34_i = __stackBase__ + 2413;
  30169.   var $this_addr_i_i3_i = __stackBase__ + 2417;
  30170.   var $this_addr_i4_i = __stackBase__ + 2421;
  30171.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 2425;
  30172.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 2429;
  30173.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 2433;
  30174.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 2437;
  30175.   var $this_addr_i_i_i26_i_i_i = __stackBase__ + 2441;
  30176.   var $retval_i_i_i_i_i = __stackBase__ + 2445;
  30177.   var $this_addr_i_i27_i_i_i = __stackBase__ + 2449;
  30178.   var $base_addr_i_i_i_i_i = __stackBase__ + 2453;
  30179.   var $offset_i_i_i_i_i = __stackBase__ + 2457;
  30180.   var $base_addr_i_i_i_i = __stackBase__ + 2461;
  30181.   var $offset_addr_i_i_i_i = __stackBase__ + 2465;
  30182.   var $this_addr_i19_i_i_i = __stackBase__ + 2469;
  30183.   var $i_addr_i20_i_i_i = __stackBase__ + 2473;
  30184.   var $this_addr_i_i11_i_i_i = __stackBase__ + 2477;
  30185.   var $this_addr_i12_i_i_i = __stackBase__ + 2481;
  30186.   var $mask_addr_i_i_i_i_i = __stackBase__ + 2485;
  30187.   var $y_i_i_i_i_i = __stackBase__ + 2489;
  30188.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 2493;
  30189.   var $this_addr_i_i_i_i_i = __stackBase__ + 2497;
  30190.   var $this_addr_i7_i_i_i = __stackBase__ + 2501;
  30191.   var $this_addr_i1_i_i_i = __stackBase__ + 2505;
  30192.   var $i_addr_i2_i_i_i = __stackBase__ + 2509;
  30193.   var $this_addr_i_i_i_i = __stackBase__ + 2513;
  30194.   var $i_addr_i_i_i_i = __stackBase__ + 2517;
  30195.   var $retval_i_i_i = __stackBase__ + 2521;
  30196.   var $this_addr_i_i_i = __stackBase__ + 2522;
  30197.   var $c_addr_i_i_i = __stackBase__ + 2526;
  30198.   var $index_i_i_i = __stackBase__ + 2530;
  30199.   var $ref_tmp_i_i_i = __stackBase__ + 2534;
  30200.   var $this_addr_i_i = __stackBase__ + 2538;
  30201.   var $obj_addr_i_i = __stackBase__ + 2542;
  30202.   var $retval_i = __stackBase__ + 2546;
  30203.   var $this_addr_i = __stackBase__ + 2547;
  30204.   var $c_addr_i = __stackBase__ + 2551;
  30205.   var $retval;
  30206.   var $c_addr;
  30207.   $c_addr = $c;
  30208.   var $this1 = $this;
  30209.   var $0 = $lookup_type;
  30210.   if (($0 | 0) == 4) {
  30211.     HEAP[$this_addr_i290] = $this1 | 0;
  30212.     HEAP[$c_addr_i291] = $c_addr;
  30213.     var $this1_i292 = HEAP[$this_addr_i290];
  30214.     HEAP[$this_addr_i4_i260] = $this1_i292 | 0;
  30215.     HEAP[$this_addr_i_i3_i259] = HEAP[$this_addr_i4_i260] | 0;
  30216.     var $this1_i_i6_i297 = HEAP[$this_addr_i_i3_i259];
  30217.     if ((((HEAP[$this1_i_i6_i297 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i297 + 1 | 0] & 255) & 65535 | 0) == 1) {
  30218.       HEAP[$this_addr_i_i285] = HEAP[$c_addr_i291];
  30219.       HEAP[$obj_addr_i_i286] = $this1_i292 | 0;
  30220.       var $this1_i_i311 = HEAP[$this_addr_i_i285];
  30221.       HEAP[$this_addr_i_i_i280] = HEAP[$obj_addr_i_i286];
  30222.       HEAP[$c_addr_i_i_i281] = $this1_i_i311;
  30223.       var $this1_i_i_i312 = HEAP[$this_addr_i_i_i280];
  30224.       HEAP[$this_addr_i_i_i_i276] = HEAP[HEAP[$c_addr_i_i_i281] + 12 | 0];
  30225.       HEAP[$i_addr_i_i_i_i277] = 0;
  30226.       HEAP[$ref_tmp_i_i_i282] = $this1_i_i_i312;
  30227.       HEAP[$base_addr_i83_i_i_i] = $ref_tmp_i_i_i282;
  30228.       HEAP[$offset_addr_i84_i_i_i] = $this1_i_i_i312 + 2 | 0;
  30229.       var $1315 = HEAP[HEAP[$base_addr_i83_i_i_i]];
  30230.       HEAP[$this_addr_i_i80_i_i_i] = HEAP[$offset_addr_i84_i_i_i];
  30231.       HEAP[$base_addr_i_i81_i_i_i] = $1315;
  30232.       HEAP[$this_addr_i_i_i78_i_i_i] = HEAP[$this_addr_i_i80_i_i_i];
  30233.       HEAP[$this_addr_i_i_i_i77_i_i_i] = HEAP[$this_addr_i_i_i78_i_i_i] | 0;
  30234.       var $this1_i_i_i_i88_i_i_i = HEAP[$this_addr_i_i_i_i77_i_i_i];
  30235.       HEAP[$offset_i_i82_i_i_i] = ((HEAP[$this1_i_i_i_i88_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i88_i_i_i + 1 | 0] & 255) & 65535;
  30236.       if ((HEAP[$offset_i_i82_i_i_i] | 0) != 0) {
  30237.         var $1333 = HEAP[$offset_i_i82_i_i_i];
  30238.         HEAP[$P_addr_i_i_i75_i_i_i] = HEAP[$base_addr_i_i81_i_i_i];
  30239.         HEAP[$offset_addr_i_i_i76_i_i_i] = $1333;
  30240.         HEAP[$retval_i_i79_i_i_i] = HEAP[$P_addr_i_i_i75_i_i_i] + HEAP[$offset_addr_i_i_i76_i_i_i] | 0;
  30241.       } else {
  30242.         HEAP[$X_addr_i_i_i_i74_i_i_i] = 111704;
  30243.         HEAP[$retval_i_i79_i_i_i] = HEAP[$X_addr_i_i_i_i74_i_i_i];
  30244.       }
  30245.       var $1341 = HEAP[$retval_i_i79_i_i_i];
  30246.       HEAP[$this_addr_i108_i_i_i261] = HEAP[HEAP[$c_addr_i_i_i281] + 12 | 0];
  30247.       HEAP[$i_addr_i109_i_i_i262] = 0;
  30248.       var $this1_i110_i_i_i316 = HEAP[$this_addr_i108_i_i_i261];
  30249.       var $call8_i_i_i318 = __ZNK2OT8Coverage12get_coverageEj($1341, HEAP[HEAP[$this1_i110_i_i_i316 + 96 | 0] + ((HEAP[$i_addr_i109_i_i_i262] + HEAP[$this1_i110_i_i_i316 + 80 | 0]) * 20 & -1) | 0]);
  30250.       HEAP[$mark_index_i_i_i] = $call8_i_i_i318;
  30251.       L593 : do {
  30252.         if (($call8_i_i_i318 | 0) == -1) {
  30253.           HEAP[$retval_i_i_i279] = 0;
  30254.         } else {
  30255.           __ZN2OT18hb_apply_context_t28skipping_backward_iterator_tC1EPS0_jjb($skippy_iter_i_i_i283, HEAP[$c_addr_i_i_i281], HEAP[HEAP[HEAP[$c_addr_i_i_i281] + 12 | 0] + 80 | 0], 1, 0);
  30256.           HEAP[$this_addr_i105_i_i_i] = $skippy_iter_i_i_i283;
  30257.           HEAP[$lookup_props_addr_i_i_i_i] = 8;
  30258.           var $1365 = HEAP[$lookup_props_addr_i_i_i_i];
  30259.           HEAP[$this_addr_i_i104_i_i_i] = HEAP[$this_addr_i105_i_i_i] + 8 | 0;
  30260.           HEAP[$lookup_props__addr_i_i_i_i_i] = $1365;
  30261.           HEAP[HEAP[$this_addr_i_i104_i_i_i] | 0] = HEAP[$lookup_props__addr_i_i_i_i_i];
  30262.           L596 : do {
  30263.             if (__ZN2OT18hb_apply_context_t28skipping_backward_iterator_t4prevEv($skippy_iter_i_i_i283)) {
  30264.               var $idx16_i_i_i = $skippy_iter_i_i_i283 | 0;
  30265.               while (1) {
  30266.                 HEAP[$info_addr_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i281] + 12 | 0] + 96 | 0] + (HEAP[$idx16_i_i_i] * 20 & -1) | 0;
  30267.                 HEAP[$info_addr_i_i_i_i_i] = HEAP[$info_addr_i_i_i_i];
  30268.                 if ((HEAP[HEAP[$info_addr_i_i_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  30269.                   HEAP[$retval_i_i_i_i263] = 0;
  30270.                 } else {
  30271.                   HEAP[$retval_i_i_i_i263] = HEAP[HEAP[$info_addr_i_i_i_i] + 15 | 0] & 15;
  30272.                 }
  30273.                 if (0 == (HEAP[$retval_i_i_i_i263] | 0)) {
  30274.                   break;
  30275.                 }
  30276.                 HEAP[$this_addr_i66_i_i_i] = $skippy_iter_i_i_i283;
  30277.                 var $num_items_i_i_i_i331 = HEAP[$this_addr_i66_i_i_i] + 36 | 0;
  30278.                 HEAP[$num_items_i_i_i_i331] = HEAP[$num_items_i_i_i_i331] + 1 | 0;
  30279.                 if (!__ZN2OT18hb_apply_context_t28skipping_backward_iterator_t4prevEv($skippy_iter_i_i_i283)) {
  30280.                   break L596;
  30281.                 }
  30282.               }
  30283.               HEAP[$ref_tmp29_i_i_i284] = $this1_i_i_i312;
  30284.               HEAP[$base_addr_i46_i_i_i] = $ref_tmp29_i_i_i284;
  30285.               HEAP[$offset_addr_i47_i_i_i] = $this1_i_i_i312 + 4 | 0;
  30286.               var $1399 = HEAP[HEAP[$base_addr_i46_i_i_i]];
  30287.               HEAP[$this_addr_i_i43_i_i_i] = HEAP[$offset_addr_i47_i_i_i];
  30288.               HEAP[$base_addr_i_i44_i_i_i] = $1399;
  30289.               HEAP[$this_addr_i_i_i41_i_i_i] = HEAP[$this_addr_i_i43_i_i_i];
  30290.               HEAP[$this_addr_i_i_i_i40_i_i_i] = HEAP[$this_addr_i_i_i41_i_i_i] | 0;
  30291.               var $this1_i_i_i_i51_i_i_i = HEAP[$this_addr_i_i_i_i40_i_i_i];
  30292.               HEAP[$offset_i_i45_i_i_i] = ((HEAP[$this1_i_i_i_i51_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i51_i_i_i + 1 | 0] & 255) & 65535;
  30293.               if ((HEAP[$offset_i_i45_i_i_i] | 0) != 0) {
  30294.                 var $1417 = HEAP[$offset_i_i45_i_i_i];
  30295.                 HEAP[$P_addr_i_i_i38_i_i_i] = HEAP[$base_addr_i_i44_i_i_i];
  30296.                 HEAP[$offset_addr_i_i_i39_i_i_i] = $1417;
  30297.                 HEAP[$retval_i_i42_i_i_i] = HEAP[$P_addr_i_i_i38_i_i_i] + HEAP[$offset_addr_i_i_i39_i_i_i] | 0;
  30298.               } else {
  30299.                 HEAP[$X_addr_i_i_i_i37_i_i_i] = 111704;
  30300.                 HEAP[$retval_i_i42_i_i_i] = HEAP[$X_addr_i_i_i_i37_i_i_i];
  30301.               }
  30302.               var $call36_i_i_i336 = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i42_i_i_i], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i281] + 12 | 0] + 96 | 0] + (HEAP[$skippy_iter_i_i_i283 | 0] * 20 & -1) | 0]);
  30303.               HEAP[$base_index_i_i_i] = $call36_i_i_i336;
  30304.               if (($call36_i_i_i336 | 0) == -1) {
  30305.                 HEAP[$retval_i_i_i279] = 0;
  30306.                 break L593;
  30307.               }
  30308.               HEAP[$ref_tmp41_i_i_i] = $this1_i_i_i312;
  30309.               HEAP[$base_addr_i15_i_i_i] = $ref_tmp41_i_i_i;
  30310.               HEAP[$offset_addr_i16_i_i_i] = $this1_i_i_i312 + 8 | 0;
  30311.               var $1444 = HEAP[HEAP[$base_addr_i15_i_i_i]];
  30312.               HEAP[$this_addr_i_i12_i_i_i] = HEAP[$offset_addr_i16_i_i_i];
  30313.               HEAP[$base_addr_i_i13_i_i_i] = $1444;
  30314.               HEAP[$this_addr_i_i_i10_i_i_i] = HEAP[$this_addr_i_i12_i_i_i];
  30315.               HEAP[$this_addr_i_i_i_i9_i_i_i] = HEAP[$this_addr_i_i_i10_i_i_i] | 0;
  30316.               var $this1_i_i_i_i20_i_i_i = HEAP[$this_addr_i_i_i_i9_i_i_i];
  30317.               HEAP[$offset_i_i14_i_i_i] = ((HEAP[$this1_i_i_i_i20_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20_i_i_i + 1 | 0] & 255) & 65535;
  30318.               if ((HEAP[$offset_i_i14_i_i_i] | 0) != 0) {
  30319.                 var $1462 = HEAP[$offset_i_i14_i_i_i];
  30320.                 HEAP[$P_addr_i_i_i7_i_i_i] = HEAP[$base_addr_i_i13_i_i_i];
  30321.                 HEAP[$offset_addr_i_i_i8_i_i_i] = $1462;
  30322.                 HEAP[$retval_i_i11_i_i_i] = HEAP[$P_addr_i_i_i7_i_i_i] + HEAP[$offset_addr_i_i_i8_i_i_i] | 0;
  30323.               } else {
  30324.                 HEAP[$X_addr_i_i_i_i6_i_i_i] = 111704;
  30325.                 HEAP[$retval_i_i11_i_i_i] = HEAP[$X_addr_i_i_i_i6_i_i_i];
  30326.               }
  30327.               var $1470 = HEAP[$retval_i_i11_i_i_i];
  30328.               var $1477 = HEAP[$c_addr_i_i_i281];
  30329.               var $1478 = HEAP[$mark_index_i_i_i];
  30330.               var $1479 = HEAP[$base_index_i_i_i];
  30331.               HEAP[$ref_tmp43_i_i_i] = $this1_i_i_i312;
  30332.               HEAP[$base_addr_i_i_i_i272] = $ref_tmp43_i_i_i;
  30333.               HEAP[$offset_addr_i_i_i_i273] = $this1_i_i_i312 + 10 | 0;
  30334.               var $1486 = HEAP[HEAP[$base_addr_i_i_i_i272]];
  30335.               HEAP[$this_addr_i_i3_i_i_i] = HEAP[$offset_addr_i_i_i_i273];
  30336.               HEAP[$base_addr_i_i_i_i_i270] = $1486;
  30337.               HEAP[$this_addr_i_i_i_i_i_i268] = HEAP[$this_addr_i_i3_i_i_i];
  30338.               HEAP[$this_addr_i_i_i_i_i_i_i267] = HEAP[$this_addr_i_i_i_i_i_i268] | 0;
  30339.               var $this1_i_i_i_i_i_i_i339 = HEAP[$this_addr_i_i_i_i_i_i_i267];
  30340.               var $conv_i_i5_i_i_i = ((HEAP[$this1_i_i_i_i_i_i_i339 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i339 + 1 | 0] & 255) & 65535;
  30341.               HEAP[$offset_i_i_i_i_i271] = $conv_i_i5_i_i_i;
  30342.               if (($conv_i_i5_i_i_i | 0) != 0) {
  30343.                 var $1503 = HEAP[$offset_i_i_i_i_i271];
  30344.                 HEAP[$P_addr_i_i_i_i_i_i265] = HEAP[$base_addr_i_i_i_i_i270];
  30345.                 HEAP[$offset_addr_i_i_i_i_i_i266] = $1503;
  30346.                 HEAP[$retval_i_i_i_i_i269] = HEAP[$P_addr_i_i_i_i_i_i265] + HEAP[$offset_addr_i_i_i_i_i_i266] | 0;
  30347.               } else {
  30348.                 HEAP[$X_addr_i_i_i_i_i_i_i264] = 111704;
  30349.                 HEAP[$retval_i_i_i_i_i269] = HEAP[$X_addr_i_i_i_i_i_i_i264];
  30350.               }
  30351.               var $1511 = HEAP[$retval_i_i_i_i_i269];
  30352.               HEAP[$this_addr_i1_i_i_i275] = $this1_i_i_i312 + 6 | 0;
  30353.               HEAP[$this_addr_i_i_i_i_i274] = HEAP[$this_addr_i1_i_i_i275] | 0;
  30354.               var $this1_i_i_i_i_i354 = HEAP[$this_addr_i_i_i_i_i274];
  30355.               var $tobool_i_i_i_i365 = __ZNK2OT9MarkArray5applyEPNS_18hb_apply_context_tEjjRKNS_12AnchorMatrixEjj($1470, $1477, $1478, $1479, $1511, ((HEAP[$this1_i_i_i_i_i354 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i354 + 1 | 0] & 255) & 65535, HEAP[$skippy_iter_i_i_i283 | 0]) & 1;
  30356.               HEAP[$retval_i_i_i279] = $tobool_i_i_i_i365;
  30357.               break L593;
  30358.             }
  30359.           } while (0);
  30360.           HEAP[$retval_i_i_i279] = 0;
  30361.         }
  30362.       } while (0);
  30363.       HEAP[$retval_i289] = HEAP[$retval_i_i_i279] & 1;
  30364.     } else {
  30365.       HEAP[$retval_i289] = 0;
  30366.     }
  30367.     $retval = HEAP[$retval_i289] & 1;
  30368.     var $2332 = $retval;
  30369.     STACKTOP = __stackBase__;
  30370.     return $2332;
  30371.   } else if (($0 | 0) == 5) {
  30372.     HEAP[$this_addr_i414] = $this1 | 0;
  30373.     HEAP[$c_addr_i415] = $c_addr;
  30374.     var $this1_i416 = HEAP[$this_addr_i414];
  30375.     HEAP[$this_addr_i4_i374] = $this1_i416 | 0;
  30376.     HEAP[$this_addr_i_i3_i373] = HEAP[$this_addr_i4_i374] | 0;
  30377.     var $this1_i_i6_i421 = HEAP[$this_addr_i_i3_i373];
  30378.     if ((((HEAP[$this1_i_i6_i421 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i421 + 1 | 0] & 255) & 65535 | 0) == 1) {
  30379.       HEAP[$this_addr_i_i409] = HEAP[$c_addr_i415];
  30380.       HEAP[$obj_addr_i_i410] = $this1_i416 | 0;
  30381.       var $this1_i_i435 = HEAP[$this_addr_i_i409];
  30382.       HEAP[$this_addr_i_i_i402] = HEAP[$obj_addr_i_i410];
  30383.       HEAP[$c_addr_i_i_i403] = $this1_i_i435;
  30384.       var $this1_i_i_i436 = HEAP[$this_addr_i_i_i402];
  30385.       HEAP[$this_addr_i_i_i_i398] = HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0];
  30386.       HEAP[$i_addr_i_i_i_i399] = 0;
  30387.       HEAP[$ref_tmp_i_i_i405] = $this1_i_i_i436;
  30388.       HEAP[$base_addr_i164_i_i_i] = $ref_tmp_i_i_i405;
  30389.       HEAP[$offset_addr_i165_i_i_i] = $this1_i_i_i436 + 2 | 0;
  30390.       var $1591 = HEAP[HEAP[$base_addr_i164_i_i_i]];
  30391.       HEAP[$this_addr_i_i161_i_i_i] = HEAP[$offset_addr_i165_i_i_i];
  30392.       HEAP[$base_addr_i_i162_i_i_i] = $1591;
  30393.       HEAP[$this_addr_i_i_i159_i_i_i] = HEAP[$this_addr_i_i161_i_i_i];
  30394.       HEAP[$this_addr_i_i_i_i158_i_i_i] = HEAP[$this_addr_i_i_i159_i_i_i] | 0;
  30395.       var $this1_i_i_i_i169_i_i_i = HEAP[$this_addr_i_i_i_i158_i_i_i];
  30396.       HEAP[$offset_i_i163_i_i_i] = ((HEAP[$this1_i_i_i_i169_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i169_i_i_i + 1 | 0] & 255) & 65535;
  30397.       if ((HEAP[$offset_i_i163_i_i_i] | 0) != 0) {
  30398.         var $1609 = HEAP[$offset_i_i163_i_i_i];
  30399.         HEAP[$P_addr_i_i_i156_i_i_i] = HEAP[$base_addr_i_i162_i_i_i];
  30400.         HEAP[$offset_addr_i_i_i157_i_i_i] = $1609;
  30401.         HEAP[$retval_i_i160_i_i_i] = HEAP[$P_addr_i_i_i156_i_i_i] + HEAP[$offset_addr_i_i_i157_i_i_i] | 0;
  30402.       } else {
  30403.         HEAP[$X_addr_i_i_i_i155_i_i_i] = 111704;
  30404.         HEAP[$retval_i_i160_i_i_i] = HEAP[$X_addr_i_i_i_i155_i_i_i];
  30405.       }
  30406.       var $1617 = HEAP[$retval_i_i160_i_i_i];
  30407.       HEAP[$this_addr_i189_i_i_i] = HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0];
  30408.       HEAP[$i_addr_i190_i_i_i] = 0;
  30409.       var $this1_i191_i_i_i = HEAP[$this_addr_i189_i_i_i];
  30410.       var $call8_i_i_i442 = __ZNK2OT8Coverage12get_coverageEj($1617, HEAP[HEAP[$this1_i191_i_i_i + 96 | 0] + ((HEAP[$i_addr_i190_i_i_i] + HEAP[$this1_i191_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  30411.       HEAP[$mark_index_i_i_i404] = $call8_i_i_i442;
  30412.       do {
  30413.         if (($call8_i_i_i442 | 0) == -1) {
  30414.           HEAP[$retval_i_i_i401] = 0;
  30415.         } else {
  30416.           __ZN2OT18hb_apply_context_t28skipping_backward_iterator_tC1EPS0_jjb($skippy_iter_i_i_i406, HEAP[$c_addr_i_i_i403], HEAP[HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0] + 80 | 0], 1, 0);
  30417.           HEAP[$this_addr_i186_i_i_i] = $skippy_iter_i_i_i406;
  30418.           HEAP[$lookup_props_addr_i_i_i_i376] = 8;
  30419.           var $1641 = HEAP[$lookup_props_addr_i_i_i_i376];
  30420.           HEAP[$this_addr_i_i185_i_i_i] = HEAP[$this_addr_i186_i_i_i] + 8 | 0;
  30421.           HEAP[$lookup_props__addr_i_i_i_i_i375] = $1641;
  30422.           HEAP[HEAP[$this_addr_i_i185_i_i_i] | 0] = HEAP[$lookup_props__addr_i_i_i_i_i375];
  30423.           if (!__ZN2OT18hb_apply_context_t28skipping_backward_iterator_t4prevEv($skippy_iter_i_i_i406)) {
  30424.             HEAP[$retval_i_i_i401] = 0;
  30425.             break;
  30426.           }
  30427.           HEAP[$j_i_i_i407] = HEAP[$skippy_iter_i_i_i406 | 0];
  30428.           HEAP[$ref_tmp22_i_i_i408] = $this1_i_i_i436;
  30429.           HEAP[$base_addr_i133_i_i_i] = $ref_tmp22_i_i_i408;
  30430.           HEAP[$offset_addr_i134_i_i_i] = $this1_i_i_i436 + 4 | 0;
  30431.           var $1657 = HEAP[HEAP[$base_addr_i133_i_i_i]];
  30432.           HEAP[$this_addr_i_i130_i_i_i] = HEAP[$offset_addr_i134_i_i_i];
  30433.           HEAP[$base_addr_i_i131_i_i_i] = $1657;
  30434.           HEAP[$this_addr_i_i_i128_i_i_i] = HEAP[$this_addr_i_i130_i_i_i];
  30435.           HEAP[$this_addr_i_i_i_i127_i_i_i] = HEAP[$this_addr_i_i_i128_i_i_i] | 0;
  30436.           var $this1_i_i_i_i138_i_i_i = HEAP[$this_addr_i_i_i_i127_i_i_i];
  30437.           HEAP[$offset_i_i132_i_i_i] = ((HEAP[$this1_i_i_i_i138_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i138_i_i_i + 1 | 0] & 255) & 65535;
  30438.           if ((HEAP[$offset_i_i132_i_i_i] | 0) != 0) {
  30439.             var $1675 = HEAP[$offset_i_i132_i_i_i];
  30440.             HEAP[$P_addr_i_i_i125_i_i_i] = HEAP[$base_addr_i_i131_i_i_i];
  30441.             HEAP[$offset_addr_i_i_i126_i_i_i] = $1675;
  30442.             HEAP[$retval_i_i129_i_i_i] = HEAP[$P_addr_i_i_i125_i_i_i] + HEAP[$offset_addr_i_i_i126_i_i_i] | 0;
  30443.           } else {
  30444.             HEAP[$X_addr_i_i_i_i124_i_i_i] = 111704;
  30445.             HEAP[$retval_i_i129_i_i_i] = HEAP[$X_addr_i_i_i_i124_i_i_i];
  30446.           }
  30447.           var $call28_i_i_i = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i129_i_i_i], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0] + 96 | 0] + (HEAP[$j_i_i_i407] * 20 & -1) | 0]);
  30448.           HEAP[$lig_index_i_i_i] = $call28_i_i_i;
  30449.           if (($call28_i_i_i | 0) == -1) {
  30450.             HEAP[$retval_i_i_i401] = 0;
  30451.             break;
  30452.           }
  30453.           HEAP[$ref_tmp33_i_i_i] = $this1_i_i_i436;
  30454.           HEAP[$base_addr_i102_i_i_i] = $ref_tmp33_i_i_i;
  30455.           HEAP[$offset_addr_i103_i_i_i] = $this1_i_i_i436 + 10 | 0;
  30456.           var $1702 = HEAP[HEAP[$base_addr_i102_i_i_i]];
  30457.           HEAP[$this_addr_i_i99_i_i_i] = HEAP[$offset_addr_i103_i_i_i];
  30458.           HEAP[$base_addr_i_i100_i_i_i] = $1702;
  30459.           HEAP[$this_addr_i_i_i97_i_i_i377] = HEAP[$this_addr_i_i99_i_i_i];
  30460.           HEAP[$this_addr_i_i_i_i96_i_i_i] = HEAP[$this_addr_i_i_i97_i_i_i377] | 0;
  30461.           var $this1_i_i_i_i107_i_i_i = HEAP[$this_addr_i_i_i_i96_i_i_i];
  30462.           HEAP[$offset_i_i101_i_i_i] = ((HEAP[$this1_i_i_i_i107_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i107_i_i_i + 1 | 0] & 255) & 65535;
  30463.           if ((HEAP[$offset_i_i101_i_i_i] | 0) != 0) {
  30464.             var $1720 = HEAP[$offset_i_i101_i_i_i];
  30465.             HEAP[$P_addr_i_i_i94_i_i_i] = HEAP[$base_addr_i_i100_i_i_i];
  30466.             HEAP[$offset_addr_i_i_i95_i_i_i] = $1720;
  30467.             HEAP[$retval_i_i98_i_i_i] = HEAP[$P_addr_i_i_i94_i_i_i] + HEAP[$offset_addr_i_i_i95_i_i_i] | 0;
  30468.           } else {
  30469.             HEAP[$X_addr_i_i_i_i93_i_i_i] = 111704;
  30470.             HEAP[$retval_i_i98_i_i_i] = HEAP[$X_addr_i_i_i_i93_i_i_i];
  30471.           }
  30472.           HEAP[$lig_array_i_i_i] = HEAP[$retval_i_i98_i_i_i];
  30473.           var $1736 = HEAP[$lig_index_i_i_i];
  30474.           HEAP[$this_addr_i80_i_i_i] = HEAP[$lig_array_i_i_i];
  30475.           HEAP[$i_addr_i81_i_i_i] = $1736;
  30476.           var $this1_i82_i_i_i = HEAP[$this_addr_i80_i_i_i];
  30477.           var $1741 = HEAP[$i_addr_i81_i_i_i];
  30478.           HEAP[$this_addr_i_i78_i_i_i] = $this1_i82_i_i_i | 0;
  30479.           HEAP[$this_addr_i_i_i77_i_i_i] = HEAP[$this_addr_i_i78_i_i_i] | 0;
  30480.           var $this1_i_i_i85_i_i_i = HEAP[$this_addr_i_i_i77_i_i_i];
  30481.           if ($1741 >>> 0 >= (((HEAP[$this1_i_i_i85_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i85_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  30482.             HEAP[$X_addr_i_i_i_i_i_i378] = 111704;
  30483.             HEAP[$retval_i79_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i378];
  30484.           } else {
  30485.             HEAP[$ref_tmp_i_i_i_i] = $this1_i82_i_i_i;
  30486.             var $1755 = (HEAP[$i_addr_i81_i_i_i] << 1) + $this1_i82_i_i_i + 2 | 0;
  30487.             HEAP[$base_addr_i_i76_i_i_i] = $ref_tmp_i_i_i_i;
  30488.             HEAP[$offset_addr_i_i_i_i_i379] = $1755;
  30489.             var $1761 = HEAP[HEAP[$base_addr_i_i76_i_i_i]];
  30490.             HEAP[$this_addr_i_i1_i_i_i_i] = HEAP[$offset_addr_i_i_i_i_i379];
  30491.             HEAP[$base_addr_i_i_i_i_i_i] = $1761;
  30492.             HEAP[$this_addr_i_i_i_i75_i_i_i] = HEAP[$this_addr_i_i1_i_i_i_i];
  30493.             HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i75_i_i_i] | 0;
  30494.             var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  30495.             HEAP[$offset_i_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  30496.             if ((HEAP[$offset_i_i_i_i_i_i] | 0) != 0) {
  30497.               var $1779 = HEAP[$offset_i_i_i_i_i_i];
  30498.               HEAP[$P_addr_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  30499.               HEAP[$offset_addr_i_i_i_i_i_i_i] = $1779;
  30500.               HEAP[$retval_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i] | 0;
  30501.             } else {
  30502.               HEAP[$X_addr_i_i_i_i_i_i_i_i] = 111704;
  30503.               HEAP[$retval_i_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i_i];
  30504.             }
  30505.             HEAP[$retval_i79_i_i_i] = HEAP[$retval_i_i_i_i_i_i];
  30506.           }
  30507.           HEAP[$lig_attach_i_i_i] = HEAP[$retval_i79_i_i_i];
  30508.           HEAP[$this_addr_i62_i_i_i] = HEAP[$lig_attach_i_i_i] | 0;
  30509.           HEAP[$this_addr_i_i61_i_i_i380] = HEAP[$this_addr_i62_i_i_i] | 0;
  30510.           var $this1_i_i65_i_i_i = HEAP[$this_addr_i_i61_i_i_i380];
  30511.           var $conv37_i_i_i465 = ((HEAP[$this1_i_i65_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i65_i_i_i + 1 | 0] & 255) & 65535;
  30512.           HEAP[$comp_count_i_i_i] = $conv37_i_i_i465;
  30513.           if (($conv37_i_i_i465 | 0) == 0) {
  30514.             HEAP[$retval_i_i_i401] = 0;
  30515.             break;
  30516.           }
  30517.           HEAP[$info_addr_i53_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0] + 96 | 0] + (HEAP[$j_i_i_i407] * 20 & -1) | 0;
  30518.           HEAP[$lig_id_i_i_i] = (HEAP[HEAP[$info_addr_i53_i_i_i] + 15 | 0] & 255) >> 5;
  30519.           HEAP[$this_addr_i46_i_i_i] = HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0];
  30520.           HEAP[$i_addr_i47_i_i_i] = 0;
  30521.           var $this1_i48_i_i_i = HEAP[$this_addr_i46_i_i_i];
  30522.           HEAP[$info_addr_i41_i_i_i] = HEAP[$this1_i48_i_i_i + 96 | 0] + ((HEAP[$i_addr_i47_i_i_i] + HEAP[$this1_i48_i_i_i + 80 | 0]) * 20 & -1) | 0;
  30523.           HEAP[$mark_id_i_i_i] = (HEAP[HEAP[$info_addr_i41_i_i_i] + 15 | 0] & 255) >> 5;
  30524.           HEAP[$this_addr_i34_i_i_i381] = HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0];
  30525.           HEAP[$i_addr_i35_i_i_i] = 0;
  30526.           var $this1_i36_i_i_i = HEAP[$this_addr_i34_i_i_i381];
  30527.           HEAP[$info_addr_i19_i_i_i] = HEAP[$this1_i36_i_i_i + 96 | 0] + ((HEAP[$i_addr_i35_i_i_i] + HEAP[$this1_i36_i_i_i + 80 | 0]) * 20 & -1) | 0;
  30528.           HEAP[$info_addr_i_i17_i_i_i] = HEAP[$info_addr_i19_i_i_i];
  30529.           if ((HEAP[HEAP[$info_addr_i_i17_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  30530.             HEAP[$retval_i18_i_i_i] = 0;
  30531.           } else {
  30532.             HEAP[$retval_i18_i_i_i] = HEAP[HEAP[$info_addr_i19_i_i_i] + 15 | 0] & 15;
  30533.           }
  30534.           HEAP[$mark_comp_i_i_i] = HEAP[$retval_i18_i_i_i];
  30535.           do {
  30536.             if ((HEAP[$lig_id_i_i_i] | 0) != 0) {
  30537.               if ((HEAP[$lig_id_i_i_i] | 0) != (HEAP[$mark_id_i_i_i] | 0)) {
  30538.                 label = 617;
  30539.                 break;
  30540.               }
  30541.               if (HEAP[$mark_comp_i_i_i] >>> 0 <= 0) {
  30542.                 label = 617;
  30543.                 break;
  30544.               }
  30545.               HEAP[$this_addr_i10_i_i_i] = HEAP[HEAP[$c_addr_i_i_i403] + 12 | 0];
  30546.               HEAP[$i_addr_i11_i_i_i] = 0;
  30547.               var $this1_i12_i_i_i = HEAP[$this_addr_i10_i_i_i];
  30548.               HEAP[$info_addr_i_i_i_i384] = HEAP[$this1_i12_i_i_i + 96 | 0] + ((HEAP[$i_addr_i11_i_i_i] + HEAP[$this1_i12_i_i_i + 80 | 0]) * 20 & -1) | 0;
  30549.               HEAP[$info_addr_i_i_i_i_i382] = HEAP[$info_addr_i_i_i_i384];
  30550.               if ((HEAP[HEAP[$info_addr_i_i_i_i_i382] + 15 | 0] & 16 | 0) != 0) {
  30551.                 HEAP[$retval_i_i_i_i383] = 0;
  30552.               } else {
  30553.                 HEAP[$retval_i_i_i_i383] = HEAP[HEAP[$info_addr_i_i_i_i384] + 15 | 0] & 15;
  30554.               }
  30555.               HEAP[$ref_tmp60_i_i_i] = HEAP[$retval_i_i_i_i383];
  30556.               HEAP[$a_addr_i_i_i_i] = $comp_count_i_i_i;
  30557.               HEAP[$b_addr_i_i_i_i] = $ref_tmp60_i_i_i;
  30558.               HEAP[$comp_index_i_i_i] = (HEAP[HEAP[$a_addr_i_i_i_i]] >>> 0 < HEAP[HEAP[$b_addr_i_i_i_i]] >>> 0 ? HEAP[HEAP[$a_addr_i_i_i_i]] : HEAP[HEAP[$b_addr_i_i_i_i]]) - 1 | 0;
  30559.               break;
  30560.             } else {
  30561.               label = 617;
  30562.             }
  30563.           } while (0);
  30564.           if (label == 617) {
  30565.             HEAP[$comp_index_i_i_i] = HEAP[$comp_count_i_i_i] - 1 | 0;
  30566.           }
  30567.           HEAP[$ref_tmp64_i_i_i] = $this1_i_i_i436;
  30568.           HEAP[$base_addr_i_i_i_i394] = $ref_tmp64_i_i_i;
  30569.           HEAP[$offset_addr_i_i_i_i395] = $this1_i_i_i436 + 8 | 0;
  30570.           var $1893 = HEAP[HEAP[$base_addr_i_i_i_i394]];
  30571.           HEAP[$this_addr_i_i3_i_i_i391] = HEAP[$offset_addr_i_i_i_i395];
  30572.           HEAP[$base_addr_i_i_i_i_i392] = $1893;
  30573.           HEAP[$this_addr_i_i_i_i_i_i389] = HEAP[$this_addr_i_i3_i_i_i391];
  30574.           HEAP[$this_addr_i_i_i_i_i_i_i388] = HEAP[$this_addr_i_i_i_i_i_i389] | 0;
  30575.           var $this1_i_i_i_i_i_i_i487 = HEAP[$this_addr_i_i_i_i_i_i_i388];
  30576.           var $conv_i_i5_i_i_i497 = ((HEAP[$this1_i_i_i_i_i_i_i487 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i487 + 1 | 0] & 255) & 65535;
  30577.           HEAP[$offset_i_i_i_i_i393] = $conv_i_i5_i_i_i497;
  30578.           if (($conv_i_i5_i_i_i497 | 0) != 0) {
  30579.             var $1910 = HEAP[$offset_i_i_i_i_i393];
  30580.             HEAP[$P_addr_i_i_i_i_i_i386] = HEAP[$base_addr_i_i_i_i_i392];
  30581.             HEAP[$offset_addr_i_i_i_i_i_i387] = $1910;
  30582.             HEAP[$retval_i_i_i_i_i390] = HEAP[$P_addr_i_i_i_i_i_i386] + HEAP[$offset_addr_i_i_i_i_i_i387] | 0;
  30583.           } else {
  30584.             HEAP[$X_addr_i_i_i_i_i_i_i385] = 111704;
  30585.             HEAP[$retval_i_i_i_i_i390] = HEAP[$X_addr_i_i_i_i_i_i_i385];
  30586.           }
  30587.           var $1918 = HEAP[$retval_i_i_i_i_i390];
  30588.           var $1925 = HEAP[$c_addr_i_i_i403];
  30589.           var $1926 = HEAP[$mark_index_i_i_i404];
  30590.           var $1927 = HEAP[$comp_index_i_i_i];
  30591.           var $1928 = HEAP[$lig_attach_i_i_i];
  30592.           HEAP[$this_addr_i1_i_i_i397] = $this1_i_i_i436 + 6 | 0;
  30593.           HEAP[$this_addr_i_i_i_i_i396] = HEAP[$this_addr_i1_i_i_i397] | 0;
  30594.           var $this1_i_i_i_i_i506 = HEAP[$this_addr_i_i_i_i_i396];
  30595.           var $tobool_i_i_i_i517 = __ZNK2OT9MarkArray5applyEPNS_18hb_apply_context_tEjjRKNS_12AnchorMatrixEjj($1918, $1925, $1926, $1927, $1928, ((HEAP[$this1_i_i_i_i_i506 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i506 + 1 | 0] & 255) & 65535, HEAP[$j_i_i_i407]) & 1;
  30596.           HEAP[$retval_i_i_i401] = $tobool_i_i_i_i517;
  30597.         }
  30598.       } while (0);
  30599.       HEAP[$retval_i413] = HEAP[$retval_i_i_i401] & 1;
  30600.     } else {
  30601.       HEAP[$retval_i413] = 0;
  30602.     }
  30603.     $retval = HEAP[$retval_i413] & 1;
  30604.     var $2332 = $retval;
  30605.     STACKTOP = __stackBase__;
  30606.     return $2332;
  30607.   } else if (($0 | 0) == 3) {
  30608.     HEAP[$this_addr_i168] = $this1 | 0;
  30609.     HEAP[$c_addr_i169] = $c_addr;
  30610.     var $this1_i170 = HEAP[$this_addr_i168];
  30611.     HEAP[$this_addr_i4_i140] = $this1_i170 | 0;
  30612.     HEAP[$this_addr_i_i3_i139] = HEAP[$this_addr_i4_i140] | 0;
  30613.     var $this1_i_i6_i175 = HEAP[$this_addr_i_i3_i139];
  30614.     if ((((HEAP[$this1_i_i6_i175 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i175 + 1 | 0] & 255) & 65535 | 0) == 1) {
  30615.       HEAP[$this_addr_i_i163] = HEAP[$c_addr_i169];
  30616.       HEAP[$obj_addr_i_i164] = $this1_i170 | 0;
  30617.       var $this1_i_i187 = HEAP[$this_addr_i_i163];
  30618.       HEAP[$this_addr_i_i_i158] = HEAP[$obj_addr_i_i164];
  30619.       HEAP[$c_addr_i_i_i159] = $this1_i_i187;
  30620.       var $this1_i_i_i188 = HEAP[$this_addr_i_i_i158];
  30621.       HEAP[$this_addr_i_i_i_i154] = HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0];
  30622.       HEAP[$i_addr_i_i_i_i155] = 0;
  30623.       HEAP[$this_addr_i48_i_i_i] = HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0];
  30624.       HEAP[$i_addr_i49_i_i_i] = 0;
  30625.       var $this1_i50_i_i_i = HEAP[$this_addr_i48_i_i_i];
  30626.       L688 : do {
  30627.         if ((HEAP[HEAP[$this1_i50_i_i_i + 96 | 0] + ((HEAP[$i_addr_i49_i_i_i] + HEAP[$this1_i50_i_i_i + 80 | 0]) * 20 & -1) + 12 | 0] & 8 | 0) != 0) {
  30628.           HEAP[$retval_i_i_i157] = 0;
  30629.         } else {
  30630.           __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter_i_i_i160, HEAP[$c_addr_i_i_i159], HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 80 | 0], 1, 0);
  30631.           HEAP[$this_addr_i131_i_i_i] = $skippy_iter_i_i_i160;
  30632.           var $this1_i132_i_i_i = HEAP[$this_addr_i131_i_i_i];
  30633.           do {
  30634.             if ((HEAP[$this1_i132_i_i_i + 36 | 0] | 0) != 0) {
  30635.               if (!((HEAP[$this1_i132_i_i_i + 36 | 0] + HEAP[$this1_i132_i_i_i | 0] | 0) >>> 0 >= HEAP[$this1_i132_i_i_i + 40 | 0] >>> 0)) {
  30636.                 break;
  30637.               }
  30638.               HEAP[$retval_i_i_i157] = 0;
  30639.               break L688;
  30640.             } else {
  30641.             }
  30642.           } while (0);
  30643.           HEAP[$ref_tmp_i_i_i161] = $this1_i_i_i188;
  30644.           HEAP[$base_addr_i153_i_i_i] = $ref_tmp_i_i_i161;
  30645.           HEAP[$offset_addr_i154_i_i_i] = $this1_i_i_i188 + 2 | 0;
  30646.           var $902 = HEAP[HEAP[$base_addr_i153_i_i_i]];
  30647.           HEAP[$this_addr_i_i150_i_i_i] = HEAP[$offset_addr_i154_i_i_i];
  30648.           HEAP[$base_addr_i_i151_i_i_i] = $902;
  30649.           HEAP[$this_addr_i_i_i148_i_i_i] = HEAP[$this_addr_i_i150_i_i_i];
  30650.           HEAP[$this_addr_i_i_i_i147_i_i_i] = HEAP[$this_addr_i_i_i148_i_i_i] | 0;
  30651.           var $this1_i_i_i_i158_i_i_i = HEAP[$this_addr_i_i_i_i147_i_i_i];
  30652.           var $conv_i_i168_i_i_i = ((HEAP[$this1_i_i_i_i158_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i158_i_i_i + 1 | 0] & 255) & 65535;
  30653.           HEAP[$offset_i_i152_i_i_i] = $conv_i_i168_i_i_i;
  30654.           if (($conv_i_i168_i_i_i | 0) != 0) {
  30655.             var $919 = HEAP[$offset_i_i152_i_i_i];
  30656.             HEAP[$P_addr_i_i_i145_i_i_i] = HEAP[$base_addr_i_i151_i_i_i];
  30657.             HEAP[$offset_addr_i_i_i146_i_i_i] = $919;
  30658.             HEAP[$retval_i_i149_i_i_i] = HEAP[$P_addr_i_i_i145_i_i_i] + HEAP[$offset_addr_i_i_i146_i_i_i] | 0;
  30659.           } else {
  30660.             HEAP[$X_addr_i_i_i_i144_i_i_i] = 111704;
  30661.             HEAP[$retval_i_i149_i_i_i] = HEAP[$X_addr_i_i_i_i144_i_i_i];
  30662.           }
  30663.           var $927 = HEAP[$retval_i_i149_i_i_i];
  30664.           HEAP[$this_addr_i137_i_i_i] = HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0];
  30665.           HEAP[$i_addr_i138_i_i_i] = 0;
  30666.           var $this1_i139_i_i_i = HEAP[$this_addr_i137_i_i_i];
  30667.           var $call17_i_i_i = __ZNK2OT8Coverage12get_coverageEj($927, HEAP[HEAP[$this1_i139_i_i_i + 96 | 0] + ((HEAP[$i_addr_i138_i_i_i] + HEAP[$this1_i139_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  30668.           HEAP[$this_addr_i108_i_i_i] = $this1_i_i_i188 + 4 | 0;
  30669.           HEAP[$i_addr_i109_i_i_i] = $call17_i_i_i;
  30670.           var $this1_i110_i_i_i = HEAP[$this_addr_i108_i_i_i];
  30671.           var $947 = HEAP[$i_addr_i109_i_i_i];
  30672.           HEAP[$this_addr_i_i106_i_i_i] = $this1_i110_i_i_i | 0;
  30673.           HEAP[$this_addr_i_i_i105_i_i_i] = HEAP[$this_addr_i_i106_i_i_i] | 0;
  30674.           var $this1_i_i_i114_i_i_i = HEAP[$this_addr_i_i_i105_i_i_i];
  30675.           if ($947 >>> 0 >= (((HEAP[$this1_i_i_i114_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i114_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  30676.             HEAP[$X_addr_i_i_i104_i_i_i] = 111704;
  30677.             HEAP[$retval_i107_i_i_i] = HEAP[$X_addr_i_i_i104_i_i_i];
  30678.           } else {
  30679.             HEAP[$retval_i107_i_i_i] = (HEAP[$i_addr_i109_i_i_i] << 2) + $this1_i110_i_i_i + 2 | 0;
  30680.           }
  30681.           HEAP[$this_record_i_i_i] = HEAP[$retval_i107_i_i_i];
  30682.           HEAP[$this_addr_i91_i_i_i] = HEAP[$this_record_i_i_i] + 2 | 0;
  30683.           HEAP[$this_addr_i_i90_i_i_i] = HEAP[$this_addr_i91_i_i_i] | 0;
  30684.           var $this1_i_i94_i_i_i = HEAP[$this_addr_i_i90_i_i_i];
  30685.           if ((((HEAP[$this1_i_i94_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i94_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 == 0) {
  30686.             HEAP[$retval_i_i_i157] = 0;
  30687.             break;
  30688.           }
  30689.           if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter_i_i_i160)) {
  30690.             HEAP[$retval_i_i_i157] = 0;
  30691.             break;
  30692.           }
  30693.           HEAP[$ref_tmp29_i_i_i] = $this1_i_i_i188;
  30694.           HEAP[$base_addr_i64_i_i_i] = $ref_tmp29_i_i_i;
  30695.           HEAP[$offset_addr_i65_i_i_i] = $this1_i_i_i188 + 2 | 0;
  30696.           var $980 = HEAP[HEAP[$base_addr_i64_i_i_i]];
  30697.           HEAP[$this_addr_i_i61_i_i_i] = HEAP[$offset_addr_i65_i_i_i];
  30698.           HEAP[$base_addr_i_i62_i_i_i] = $980;
  30699.           HEAP[$this_addr_i_i_i59_i_i_i] = HEAP[$this_addr_i_i61_i_i_i];
  30700.           HEAP[$this_addr_i_i_i_i58_i_i_i] = HEAP[$this_addr_i_i_i59_i_i_i] | 0;
  30701.           var $this1_i_i_i_i69_i_i_i = HEAP[$this_addr_i_i_i_i58_i_i_i];
  30702.           HEAP[$offset_i_i63_i_i_i] = ((HEAP[$this1_i_i_i_i69_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i69_i_i_i + 1 | 0] & 255) & 65535;
  30703.           if ((HEAP[$offset_i_i63_i_i_i] | 0) != 0) {
  30704.             var $998 = HEAP[$offset_i_i63_i_i_i];
  30705.             HEAP[$P_addr_i_i_i56_i_i_i] = HEAP[$base_addr_i_i62_i_i_i];
  30706.             HEAP[$offset_addr_i_i_i57_i_i_i] = $998;
  30707.             HEAP[$retval_i_i60_i_i_i] = HEAP[$P_addr_i_i_i56_i_i_i] + HEAP[$offset_addr_i_i_i57_i_i_i] | 0;
  30708.           } else {
  30709.             HEAP[$X_addr_i_i_i_i55_i_i_i] = 111704;
  30710.             HEAP[$retval_i_i60_i_i_i] = HEAP[$X_addr_i_i_i_i55_i_i_i];
  30711.           }
  30712.           var $call36_i_i_i = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i60_i_i_i], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 96 | 0] + (HEAP[$skippy_iter_i_i_i160 | 0] * 20 & -1) | 0]);
  30713.           HEAP[$this_addr_i40_i_i_i] = $this1_i_i_i188 + 4 | 0;
  30714.           HEAP[$i_addr_i41_i_i_i] = $call36_i_i_i;
  30715.           var $this1_i42_i_i_i = HEAP[$this_addr_i40_i_i_i];
  30716.           var $1021 = HEAP[$i_addr_i41_i_i_i];
  30717.           HEAP[$this_addr_i_i39_i_i_i] = $this1_i42_i_i_i | 0;
  30718.           HEAP[$this_addr_i_i_i38_i_i_i] = HEAP[$this_addr_i_i39_i_i_i] | 0;
  30719.           var $this1_i_i_i45_i_i_i = HEAP[$this_addr_i_i_i38_i_i_i];
  30720.           if ($1021 >>> 0 >= (((HEAP[$this1_i_i_i45_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i45_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  30721.             HEAP[$X_addr_i_i_i_i_i_i141] = 111704;
  30722.             HEAP[$retval_i_i_i_i142] = HEAP[$X_addr_i_i_i_i_i_i141];
  30723.           } else {
  30724.             HEAP[$retval_i_i_i_i142] = (HEAP[$i_addr_i41_i_i_i] << 2) + $this1_i42_i_i_i + 2 | 0;
  30725.           }
  30726.           HEAP[$next_record_i_i_i] = HEAP[$retval_i_i_i_i142];
  30727.           HEAP[$this_addr_i34_i_i_i] = HEAP[$next_record_i_i_i] | 0;
  30728.           HEAP[$this_addr_i_i33_i_i_i] = HEAP[$this_addr_i34_i_i_i] | 0;
  30729.           var $this1_i_i36_i_i_i = HEAP[$this_addr_i_i33_i_i_i];
  30730.           if ((((HEAP[$this1_i_i36_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i36_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 == 0) {
  30731.             HEAP[$retval_i_i_i157] = 0;
  30732.             break;
  30733.           }
  30734.           HEAP[$i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 80 | 0];
  30735.           HEAP[$j_i_i_i] = HEAP[$skippy_iter_i_i_i160 | 0];
  30736.           HEAP[$ref_tmp46_i_i_i] = $this1_i_i_i188;
  30737.           var $1051 = HEAP[$this_record_i_i_i] + 2 | 0;
  30738.           HEAP[$base_addr_i10_i_i_i] = $ref_tmp46_i_i_i;
  30739.           HEAP[$offset_addr_i11_i_i_i] = $1051;
  30740.           var $1057 = HEAP[HEAP[$base_addr_i10_i_i_i]];
  30741.           HEAP[$this_addr_i_i7_i_i_i] = HEAP[$offset_addr_i11_i_i_i];
  30742.           HEAP[$base_addr_i_i8_i_i_i] = $1057;
  30743.           HEAP[$this_addr_i_i_i5_i_i_i] = HEAP[$this_addr_i_i7_i_i_i];
  30744.           HEAP[$this_addr_i_i_i_i4_i_i_i] = HEAP[$this_addr_i_i_i5_i_i_i] | 0;
  30745.           var $this1_i_i_i_i15_i_i_i = HEAP[$this_addr_i_i_i_i4_i_i_i];
  30746.           HEAP[$offset_i_i9_i_i_i] = ((HEAP[$this1_i_i_i_i15_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i15_i_i_i + 1 | 0] & 255) & 65535;
  30747.           if ((HEAP[$offset_i_i9_i_i_i] | 0) != 0) {
  30748.             var $1075 = HEAP[$offset_i_i9_i_i_i];
  30749.             HEAP[$P_addr_i_i_i2_i_i_i] = HEAP[$base_addr_i_i8_i_i_i];
  30750.             HEAP[$offset_addr_i_i_i3_i_i_i] = $1075;
  30751.             HEAP[$retval_i_i6_i_i_i] = HEAP[$P_addr_i_i_i2_i_i_i] + HEAP[$offset_addr_i_i_i3_i_i_i] | 0;
  30752.           } else {
  30753.             HEAP[$X_addr_i_i_i_i1_i_i_i] = 111704;
  30754.             HEAP[$retval_i_i6_i_i_i] = HEAP[$X_addr_i_i_i_i1_i_i_i];
  30755.           }
  30756.           __ZNK2OT6Anchor10get_anchorEP9hb_font_tjPiS3_(HEAP[$retval_i_i6_i_i_i], HEAP[HEAP[$c_addr_i_i_i159] + 4 | 0], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i] * 20 & -1) | 0], $exit_x_i_i_i, $exit_y_i_i_i);
  30757.           HEAP[$ref_tmp53_i_i_i] = $this1_i_i_i188;
  30758.           var $1098 = HEAP[$next_record_i_i_i] | 0;
  30759.           HEAP[$base_addr_i_i_i_i152] = $ref_tmp53_i_i_i;
  30760.           HEAP[$offset_addr_i_i_i_i153] = $1098;
  30761.           var $1104 = HEAP[HEAP[$base_addr_i_i_i_i152]];
  30762.           HEAP[$this_addr_i_i_i_i_i149] = HEAP[$offset_addr_i_i_i_i153];
  30763.           HEAP[$base_addr_i_i_i_i_i150] = $1104;
  30764.           HEAP[$this_addr_i_i_i_i_i_i147] = HEAP[$this_addr_i_i_i_i_i149];
  30765.           HEAP[$this_addr_i_i_i_i_i_i_i146] = HEAP[$this_addr_i_i_i_i_i_i147] | 0;
  30766.           var $this1_i_i_i_i_i_i_i232 = HEAP[$this_addr_i_i_i_i_i_i_i146];
  30767.           var $conv_i_i_i_i_i242 = ((HEAP[$this1_i_i_i_i_i_i_i232 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i232 + 1 | 0] & 255) & 65535;
  30768.           HEAP[$offset_i_i_i_i_i151] = $conv_i_i_i_i_i242;
  30769.           if (($conv_i_i_i_i_i242 | 0) != 0) {
  30770.             var $1121 = HEAP[$offset_i_i_i_i_i151];
  30771.             HEAP[$P_addr_i_i_i_i_i_i144] = HEAP[$base_addr_i_i_i_i_i150];
  30772.             HEAP[$offset_addr_i_i_i_i_i_i145] = $1121;
  30773.             HEAP[$retval_i_i_i_i_i148] = HEAP[$P_addr_i_i_i_i_i_i144] + HEAP[$offset_addr_i_i_i_i_i_i145] | 0;
  30774.           } else {
  30775.             HEAP[$X_addr_i_i_i_i_i_i_i143] = 111704;
  30776.             HEAP[$retval_i_i_i_i_i148] = HEAP[$X_addr_i_i_i_i_i_i_i143];
  30777.           }
  30778.           __ZNK2OT6Anchor10get_anchorEP9hb_font_tjPiS3_(HEAP[$retval_i_i_i_i_i148], HEAP[HEAP[$c_addr_i_i_i159] + 4 | 0], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 96 | 0] + (HEAP[$j_i_i_i] * 20 & -1) | 0], $entry_x_i_i_i, $entry_y_i_i_i);
  30779.           HEAP[$pos_i_i_i162] = HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 104 | 0];
  30780.           var $1147 = HEAP[HEAP[$c_addr_i_i_i159] + 16 | 0];
  30781.           if (($1147 | 0) == 4) {
  30782.             HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) | 0] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 8 | 0] + HEAP[$exit_x_i_i_i] | 0;
  30783.             HEAP[$d_i_i_i] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 8 | 0] + HEAP[$entry_x_i_i_i] | 0;
  30784.             var $x_advance69_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) | 0;
  30785.             HEAP[$x_advance69_i_i_i] = HEAP[$x_advance69_i_i_i] - HEAP[$d_i_i_i] | 0;
  30786.             var $x_offset71_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 8 | 0;
  30787.             HEAP[$x_offset71_i_i_i] = HEAP[$x_offset71_i_i_i] - HEAP[$d_i_i_i] | 0;
  30788.           } else if (($1147 | 0) == 5) {
  30789.             HEAP[$d_i_i_i] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 8 | 0] + HEAP[$exit_x_i_i_i] | 0;
  30790.             var $x_advance78_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) | 0;
  30791.             HEAP[$x_advance78_i_i_i] = HEAP[$x_advance78_i_i_i] - HEAP[$d_i_i_i] | 0;
  30792.             var $x_offset81_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 8 | 0;
  30793.             HEAP[$x_offset81_i_i_i] = HEAP[$x_offset81_i_i_i] - HEAP[$d_i_i_i] | 0;
  30794.             HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) | 0] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 8 | 0] + HEAP[$entry_x_i_i_i] | 0;
  30795.           } else if (($1147 | 0) == 6) {
  30796.             HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 4 | 0] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 12 | 0] + HEAP[$exit_y_i_i_i] | 0;
  30797.             HEAP[$d_i_i_i] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 12 | 0] + HEAP[$entry_y_i_i_i] | 0;
  30798.             var $y_advance96_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 4 | 0;
  30799.             HEAP[$y_advance96_i_i_i] = HEAP[$y_advance96_i_i_i] - HEAP[$d_i_i_i] | 0;
  30800.             var $y_offset99_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 12 | 0;
  30801.             HEAP[$y_offset99_i_i_i] = HEAP[$y_offset99_i_i_i] - HEAP[$d_i_i_i] | 0;
  30802.           } else if (($1147 | 0) == 7) {
  30803.             HEAP[$d_i_i_i] = HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 12 | 0] + HEAP[$exit_y_i_i_i] | 0;
  30804.             var $y_advance106_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 4 | 0;
  30805.             HEAP[$y_advance106_i_i_i] = HEAP[$y_advance106_i_i_i] - HEAP[$d_i_i_i] | 0;
  30806.             var $y_offset109_i_i_i = HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 12 | 0;
  30807.             HEAP[$y_offset109_i_i_i] = HEAP[$y_offset109_i_i_i] - HEAP[$d_i_i_i] | 0;
  30808.             HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 4 | 0] = HEAP[$entry_y_i_i_i];
  30809.           }
  30810.           do {
  30811.             if ((HEAP[HEAP[$c_addr_i_i_i159] + 36 | 0] & 1 | 0) != 0) {
  30812.               HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 18 | 0] = HEAP[$j_i_i_i] - HEAP[$i_i_i_i] & 65535;
  30813.               if ((HEAP[HEAP[$c_addr_i_i_i159] + 16 | 0] & -2 | 0) == 4) {
  30814.                 HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 12 | 0] = HEAP[$entry_y_i_i_i] - HEAP[$exit_y_i_i_i] | 0;
  30815.                 break;
  30816.               } else {
  30817.                 HEAP[HEAP[$pos_i_i_i162] + (HEAP[$i_i_i_i] * 20 & -1) + 8 | 0] = HEAP[$entry_x_i_i_i] - HEAP[$exit_x_i_i_i] | 0;
  30818.                 break;
  30819.               }
  30820.             } else {
  30821.               HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 18 | 0] = HEAP[$i_i_i_i] - HEAP[$j_i_i_i] & 65535;
  30822.               if ((HEAP[HEAP[$c_addr_i_i_i159] + 16 | 0] & -2 | 0) == 4) {
  30823.                 HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 12 | 0] = HEAP[$exit_y_i_i_i] - HEAP[$entry_y_i_i_i] | 0;
  30824.                 break;
  30825.               } else {
  30826.                 HEAP[HEAP[$pos_i_i_i162] + (HEAP[$j_i_i_i] * 20 & -1) + 8 | 0] = HEAP[$exit_x_i_i_i] - HEAP[$entry_x_i_i_i] | 0;
  30827.                 break;
  30828.               }
  30829.             }
  30830.           } while (0);
  30831.           HEAP[HEAP[HEAP[$c_addr_i_i_i159] + 12 | 0] + 80 | 0] = HEAP[$j_i_i_i];
  30832.           HEAP[$retval_i_i_i157] = 1;
  30833.         }
  30834.       } while (0);
  30835.       HEAP[$retval_i167] = HEAP[$retval_i_i_i157] & 1;
  30836.     } else {
  30837.       HEAP[$retval_i167] = 0;
  30838.     }
  30839.     $retval = HEAP[$retval_i167] & 1;
  30840.     var $2332 = $retval;
  30841.     STACKTOP = __stackBase__;
  30842.     return $2332;
  30843.   } else if (($0 | 0) == 2) {
  30844.     HEAP[$this_addr_i41] = $this1 | 0;
  30845.     HEAP[$c_addr_i42] = $c_addr;
  30846.     var $this1_i43 = HEAP[$this_addr_i41];
  30847.     HEAP[$this_addr_i4_i7] = $this1_i43 | 0;
  30848.     HEAP[$this_addr_i_i3_i6] = HEAP[$this_addr_i4_i7] | 0;
  30849.     var $this1_i_i6_i48 = HEAP[$this_addr_i_i3_i6];
  30850.     var $conv_i54 = ((HEAP[$this1_i_i6_i48 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i48 + 1 | 0] & 255) & 65535;
  30851.     if (($conv_i54 | 0) == 1) {
  30852.       HEAP[$this_addr_i32_i] = HEAP[$c_addr_i42];
  30853.       HEAP[$obj_addr_i33_i] = $this1_i43 | 0;
  30854.       var $this1_i34_i = HEAP[$this_addr_i32_i];
  30855.       HEAP[$this_addr_i_i27_i] = HEAP[$obj_addr_i33_i];
  30856.       HEAP[$c_addr_i_i28_i] = $this1_i34_i;
  30857.       var $this1_i_i35_i = HEAP[$this_addr_i_i27_i];
  30858.       HEAP[$this_addr_i2_i_i_i] = HEAP[HEAP[$c_addr_i_i28_i] + 12 | 0];
  30859.       HEAP[$i_addr_i_i_i20_i] = 0;
  30860.       __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter_i_i29_i, HEAP[$c_addr_i_i28_i], HEAP[HEAP[HEAP[$c_addr_i_i28_i] + 12 | 0] + 80 | 0], 1, 0);
  30861.       HEAP[$this_addr_i50_i_i_i] = $skippy_iter_i_i29_i;
  30862.       var $this1_i51_i_i39_i = HEAP[$this_addr_i50_i_i_i];
  30863.       do {
  30864.         if ((HEAP[$this1_i51_i_i39_i + 36 | 0] | 0) != 0) {
  30865.           if (!((HEAP[$this1_i51_i_i39_i + 36 | 0] + HEAP[$this1_i51_i_i39_i | 0] | 0) >>> 0 >= HEAP[$this1_i51_i_i39_i + 40 | 0] >>> 0)) {
  30866.             label = 458;
  30867.             break;
  30868.           }
  30869.           HEAP[$retval_i_i26_i] = 0;
  30870.           break;
  30871.         } else {
  30872.           label = 458;
  30873.           break;
  30874.         }
  30875.       } while (0);
  30876.       do {
  30877.         if (label == 458) {
  30878.           HEAP[$ref_tmp_i_i31_i] = $this1_i_i35_i;
  30879.           HEAP[$base_addr_i76_i_i_i] = $ref_tmp_i_i31_i;
  30880.           HEAP[$offset_addr_i77_i_i_i] = $this1_i_i35_i + 2 | 0;
  30881.           var $274 = HEAP[HEAP[$base_addr_i76_i_i_i]];
  30882.           HEAP[$this_addr_i_i73_i_i_i] = HEAP[$offset_addr_i77_i_i_i];
  30883.           HEAP[$base_addr_i_i74_i_i_i] = $274;
  30884.           HEAP[$this_addr_i_i_i71_i_i_i] = HEAP[$this_addr_i_i73_i_i_i];
  30885.           HEAP[$this_addr_i_i_i_i70_i_i_i] = HEAP[$this_addr_i_i_i71_i_i_i] | 0;
  30886.           var $this1_i_i_i_i81_i_i_i = HEAP[$this_addr_i_i_i_i70_i_i_i];
  30887.           var $conv_i_i91_i_i_i = ((HEAP[$this1_i_i_i_i81_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i81_i_i_i + 1 | 0] & 255) & 65535;
  30888.           HEAP[$offset_i_i75_i_i_i] = $conv_i_i91_i_i_i;
  30889.           if (($conv_i_i91_i_i_i | 0) != 0) {
  30890.             var $291 = HEAP[$offset_i_i75_i_i_i];
  30891.             HEAP[$P_addr_i_i_i68_i_i_i] = HEAP[$base_addr_i_i74_i_i_i];
  30892.             HEAP[$offset_addr_i_i_i69_i_i_i] = $291;
  30893.             HEAP[$retval_i_i72_i_i_i] = HEAP[$P_addr_i_i_i68_i_i_i] + HEAP[$offset_addr_i_i_i69_i_i_i] | 0;
  30894.           } else {
  30895.             HEAP[$X_addr_i_i_i_i67_i_i_i] = 111704;
  30896.             HEAP[$retval_i_i72_i_i_i] = HEAP[$X_addr_i_i_i_i67_i_i_i];
  30897.           }
  30898.           var $299 = HEAP[$retval_i_i72_i_i_i];
  30899.           HEAP[$this_addr_i60_i_i_i] = HEAP[HEAP[$c_addr_i_i28_i] + 12 | 0];
  30900.           HEAP[$i_addr_i61_i_i_i] = 0;
  30901.           var $this1_i62_i_i_i = HEAP[$this_addr_i60_i_i_i];
  30902.           var $call12_i_i50_i = __ZNK2OT8Coverage12get_coverageEj($299, HEAP[HEAP[$this1_i62_i_i_i + 96 | 0] + ((HEAP[$i_addr_i61_i_i_i] + HEAP[$this1_i62_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  30903.           HEAP[$index_i_i30_i] = $call12_i_i50_i;
  30904.           if (($call12_i_i50_i | 0) == -1) {
  30905.             HEAP[$retval_i_i26_i] = 0;
  30906.             break;
  30907.           }
  30908.           if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter_i_i29_i)) {
  30909.             HEAP[$retval_i_i26_i] = 0;
  30910.             break;
  30911.           }
  30912.           HEAP[$ref_tmp20_i_i_i] = $this1_i_i35_i;
  30913.           var $319 = HEAP[$index_i_i30_i];
  30914.           HEAP[$this_addr_i26_i_i11_i] = $this1_i_i35_i + 8 | 0;
  30915.           HEAP[$i_addr_i27_i_i_i] = $319;
  30916.           var $this1_i28_i_i_i = HEAP[$this_addr_i26_i_i11_i];
  30917.           var $323 = HEAP[$i_addr_i27_i_i_i];
  30918.           HEAP[$this_addr_i_i24_i_i_i] = $this1_i28_i_i_i | 0;
  30919.           HEAP[$this_addr_i_i_i23_i_i_i] = HEAP[$this_addr_i_i24_i_i_i] | 0;
  30920.           var $this1_i_i_i32_i_i_i = HEAP[$this_addr_i_i_i23_i_i_i];
  30921.           if ($323 >>> 0 >= (((HEAP[$this1_i_i_i32_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i32_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  30922.             HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  30923.             HEAP[$retval_i25_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  30924.           } else {
  30925.             HEAP[$retval_i25_i_i_i] = (HEAP[$i_addr_i27_i_i_i] << 1) + $this1_i28_i_i_i + 2 | 0;
  30926.           }
  30927.           var $339 = HEAP[$retval_i25_i_i_i];
  30928.           HEAP[$base_addr_i_i_i18_i] = $ref_tmp20_i_i_i;
  30929.           HEAP[$offset_addr_i_i_i19_i] = $339;
  30930.           var $345 = HEAP[HEAP[$base_addr_i_i_i18_i]];
  30931.           HEAP[$this_addr_i_i8_i_i_i] = HEAP[$offset_addr_i_i_i19_i];
  30932.           HEAP[$base_addr_i_i_i_i16_i] = $345;
  30933.           HEAP[$this_addr_i_i_i7_i_i_i] = HEAP[$this_addr_i_i8_i_i_i];
  30934.           HEAP[$this_addr_i_i_i_i6_i_i_i] = HEAP[$this_addr_i_i_i7_i_i_i] | 0;
  30935.           var $this1_i_i_i_i11_i_i_i = HEAP[$this_addr_i_i_i_i6_i_i_i];
  30936.           var $conv_i_i21_i_i_i = ((HEAP[$this1_i_i_i_i11_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i11_i_i_i + 1 | 0] & 255) & 65535;
  30937.           HEAP[$offset_i_i_i_i17_i] = $conv_i_i21_i_i_i;
  30938.           if (($conv_i_i21_i_i_i | 0) != 0) {
  30939.             var $362 = HEAP[$offset_i_i_i_i17_i];
  30940.             HEAP[$P_addr_i_i_i_i_i13_i4] = HEAP[$base_addr_i_i_i_i16_i];
  30941.             HEAP[$offset_addr_i_i_i_i_i14_i5] = $362;
  30942.             HEAP[$retval_i_i_i_i15_i] = HEAP[$P_addr_i_i_i_i_i13_i4] + HEAP[$offset_addr_i_i_i_i_i14_i5] | 0;
  30943.           } else {
  30944.             HEAP[$X_addr_i_i_i_i_i_i12_i3] = 111704;
  30945.             HEAP[$retval_i_i_i_i15_i] = HEAP[$X_addr_i_i_i_i_i_i12_i3];
  30946.           }
  30947.           var $377 = HEAP[$c_addr_i_i28_i];
  30948.           var $378 = HEAP[$skippy_iter_i_i29_i | 0];
  30949.           HEAP[$this_addr_i_i_i24_i] = HEAP[$retval_i_i_i_i15_i];
  30950.           HEAP[$c_addr_i_i_i_i] = $377;
  30951.           HEAP[$valueFormats_addr_i_i_i_i] = $this1_i_i35_i + 4 | 0;
  30952.           HEAP[$pos_addr_i_i_i_i] = $378;
  30953.           var $this1_i_i_i_i = HEAP[$this_addr_i_i_i24_i];
  30954.           HEAP[$this_addr_i_i_i_i23_i] = HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0];
  30955.           HEAP[$i_addr_i_i_i_i_i] = 0;
  30956.           HEAP[$this_addr_i35_i_i_i_i] = HEAP[$valueFormats_addr_i_i_i_i];
  30957.           HEAP[$this_addr_i_i34_i_i_i_i] = HEAP[$this_addr_i35_i_i_i_i];
  30958.           HEAP[$this_addr_i_i_i33_i_i_i_i] = HEAP[$this_addr_i_i34_i_i_i_i] | 0;
  30959.           var $this1_i_i_i39_i_i_i_i = HEAP[$this_addr_i_i_i33_i_i_i_i];
  30960.           HEAP[$mask_addr_i_i31_i_i_i_i] = ((HEAP[$this1_i_i_i39_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i39_i_i_i_i + 1 | 0] & 255) & 65535;
  30961.           HEAP[$y_i_i32_i_i_i_i] = HEAP[$mask_addr_i_i31_i_i_i_i] >>> 1 & -613566757;
  30962.           HEAP[$y_i_i32_i_i_i_i] = -HEAP[$y_i_i32_i_i_i_i] + HEAP[$mask_addr_i_i31_i_i_i_i] + -(HEAP[$y_i_i32_i_i_i_i] >>> 1 & -613566757) | 0;
  30963.           HEAP[$len1_i_i_i_i] = (((HEAP[$y_i_i32_i_i_i_i] >>> 3) + HEAP[$y_i_i32_i_i_i_i] & -954437177) >>> 0) % 63;
  30964.           HEAP[$this_addr_i26_i_i_i_i] = HEAP[$valueFormats_addr_i_i_i_i] + 2 | 0;
  30965.           HEAP[$this_addr_i_i25_i_i_i_i] = HEAP[$this_addr_i26_i_i_i_i];
  30966.           HEAP[$this_addr_i_i_i_i_i_i21_i] = HEAP[$this_addr_i_i25_i_i_i_i] | 0;
  30967.           var $this1_i_i_i_i_i_i62_i = HEAP[$this_addr_i_i_i_i_i_i21_i];
  30968.           HEAP[$mask_addr_i_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i62_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i62_i + 1 | 0] & 255) & 65535;
  30969.           HEAP[$y_i_i_i_i_i_i] = HEAP[$mask_addr_i_i_i_i_i_i] >>> 1 & -613566757;
  30970.           HEAP[$y_i_i_i_i_i_i] = -HEAP[$y_i_i_i_i_i_i] + HEAP[$mask_addr_i_i_i_i_i_i] + -(HEAP[$y_i_i_i_i_i_i] >>> 1 & -613566757) | 0;
  30971.           HEAP[$len2_i_i_i_i] = (((HEAP[$y_i_i_i_i_i_i] >>> 3) + HEAP[$y_i_i_i_i_i_i] & -954437177) >>> 0) % 63;
  30972.           HEAP[$record_size_i_i_i_i] = HEAP[$len1_i_i_i_i] + HEAP[$len2_i_i_i_i] + 1 << 1;
  30973.           HEAP[$X_addr_i_i_i_i_i] = $this1_i_i_i_i + 2 | 0;
  30974.           HEAP[$record_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  30975.           HEAP[$this_addr_i12_i_i_i_i] = $this1_i_i_i_i | 0;
  30976.           HEAP[$this_addr_i_i11_i_i_i_i] = HEAP[$this_addr_i12_i_i_i_i] | 0;
  30977.           var $this1_i_i15_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i];
  30978.           HEAP[$count_i_i_i_i] = ((HEAP[$this1_i_i15_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i15_i_i_i_i + 1 | 0] & 255) & 65535;
  30979.           HEAP[$i_i_i_i_i] = 0;
  30980.           L776 : do {
  30981.             if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i] >>> 0) {
  30982.               while (1) {
  30983.                 var $462 = HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$pos_addr_i_i_i_i] * 20 & -1) | 0];
  30984.                 HEAP[$this_addr_i9_i_i_i_i] = HEAP[$record_i_i_i_i] | 0;
  30985.                 HEAP[$this_addr_i_i_i_i_i22_i] = HEAP[$this_addr_i9_i_i_i_i] | 0;
  30986.                 var $this1_i_i_i_i_i75_i = HEAP[$this_addr_i_i_i_i_i22_i];
  30987.                 if (($462 | 0) == (((HEAP[$this1_i_i_i_i_i75_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i75_i + 1 | 0] & 255) & 65535 | 0)) {
  30988.                   break;
  30989.                 }
  30990.                 var $502 = HEAP[$record_size_i_i_i_i];
  30991.                 HEAP[$P_addr_i_i_i_i_i] = HEAP[$record_i_i_i_i];
  30992.                 HEAP[$offset_addr_i_i_i_i_i] = $502;
  30993.                 HEAP[$record_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  30994.                 HEAP[$i_i_i_i_i] = HEAP[$i_i_i_i_i] + 1 | 0;
  30995.                 if (HEAP[$i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i] >>> 0) {
  30996.                   label = 478;
  30997.                   break L776;
  30998.                 }
  30999.               }
  31000.               var $466 = HEAP[$valueFormats_addr_i_i_i_i];
  31001.               var $468 = HEAP[HEAP[$c_addr_i_i_i_i] + 4 | 0];
  31002.               var $470 = HEAP[HEAP[$c_addr_i_i_i_i] + 16 | 0];
  31003.               var $arrayidx17_i_i_i_i = HEAP[$record_i_i_i_i] + 2 | 0;
  31004.               HEAP[$this_addr_i3_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0];
  31005.               HEAP[$i_addr_i4_i_i_i_i] = 0;
  31006.               var $this1_i5_i_i_i_i = HEAP[$this_addr_i3_i_i_i_i];
  31007.               __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t($466, $468, $470, $this1_i_i_i_i, $arrayidx17_i_i_i_i, HEAP[$this1_i5_i_i_i_i + 104 | 0] + ((HEAP[$i_addr_i4_i_i_i_i] + HEAP[$this1_i5_i_i_i_i + 80 | 0]) * 20 & -1) | 0);
  31008.               __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t(HEAP[$valueFormats_addr_i_i_i_i] + 2 | 0, HEAP[HEAP[$c_addr_i_i_i_i] + 4 | 0], HEAP[HEAP[$c_addr_i_i_i_i] + 16 | 0], $this1_i_i_i_i, (HEAP[$len1_i_i_i_i] << 1) + HEAP[$record_i_i_i_i] + 2 | 0, HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 104 | 0] + (HEAP[$pos_addr_i_i_i_i] * 20 & -1) | 0);
  31009.               if ((HEAP[$len2_i_i_i_i] | 0) != 0) {
  31010.                 HEAP[$pos_addr_i_i_i_i] = HEAP[$pos_addr_i_i_i_i] + 1 | 0;
  31011.               }
  31012.               HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 80 | 0] = HEAP[$pos_addr_i_i_i_i];
  31013.               HEAP[$retval_i_i_i_i] = 1;
  31014.               break;
  31015.             } else {
  31016.               label = 478;
  31017.             }
  31018.           } while (0);
  31019.           if (label == 478) {
  31020.             HEAP[$retval_i_i_i_i] = 0;
  31021.           }
  31022.           HEAP[$retval_i_i26_i] = HEAP[$retval_i_i_i_i] & 1;
  31023.         }
  31024.       } while (0);
  31025.       HEAP[$retval_i40] = HEAP[$retval_i_i26_i] & 1;
  31026.     } else if (($conv_i54 | 0) == 2) {
  31027.       HEAP[$this_addr_i_i36] = HEAP[$c_addr_i42];
  31028.       HEAP[$obj_addr_i_i37] = $this1_i43 | 0;
  31029.       var $this1_i_i60 = HEAP[$this_addr_i_i36];
  31030.       HEAP[$this_addr_i_i_i31] = HEAP[$obj_addr_i_i37];
  31031.       HEAP[$c_addr_i_i_i32] = $this1_i_i60;
  31032.       var $this1_i_i_i61 = HEAP[$this_addr_i_i_i31];
  31033.       HEAP[$this_addr_i_i_i_i27] = HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0];
  31034.       HEAP[$i_addr_i_i_i_i28] = 0;
  31035.       __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter_i_i_i, HEAP[$c_addr_i_i_i32], HEAP[HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0] + 80 | 0], 1, 0);
  31036.       HEAP[$this_addr_i39_i_i_i] = $skippy_iter_i_i_i;
  31037.       var $this1_i40_i_i_i = HEAP[$this_addr_i39_i_i_i];
  31038.       do {
  31039.         if ((HEAP[$this1_i40_i_i_i + 36 | 0] | 0) != 0) {
  31040.           if (!((HEAP[$this1_i40_i_i_i + 36 | 0] + HEAP[$this1_i40_i_i_i | 0] | 0) >>> 0 >= HEAP[$this1_i40_i_i_i + 40 | 0] >>> 0)) {
  31041.             label = 485;
  31042.             break;
  31043.           }
  31044.           HEAP[$retval_i_i_i30] = 0;
  31045.           break;
  31046.         } else {
  31047.           label = 485;
  31048.           break;
  31049.         }
  31050.       } while (0);
  31051.       L794 : do {
  31052.         if (label == 485) {
  31053.           HEAP[$ref_tmp_i_i_i34] = $this1_i_i_i61;
  31054.           HEAP[$base_addr_i137_i_i_i] = $ref_tmp_i_i_i34;
  31055.           HEAP[$offset_addr_i138_i_i_i] = $this1_i_i_i61 + 2 | 0;
  31056.           var $576 = HEAP[HEAP[$base_addr_i137_i_i_i]];
  31057.           HEAP[$this_addr_i_i134_i_i_i] = HEAP[$offset_addr_i138_i_i_i];
  31058.           HEAP[$base_addr_i_i135_i_i_i] = $576;
  31059.           HEAP[$this_addr_i_i_i132_i_i_i] = HEAP[$this_addr_i_i134_i_i_i];
  31060.           HEAP[$this_addr_i_i_i_i131_i_i_i] = HEAP[$this_addr_i_i_i132_i_i_i] | 0;
  31061.           var $this1_i_i_i_i142_i_i_i = HEAP[$this_addr_i_i_i_i131_i_i_i];
  31062.           var $conv_i_i152_i_i_i = ((HEAP[$this1_i_i_i_i142_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i142_i_i_i + 1 | 0] & 255) & 65535;
  31063.           HEAP[$offset_i_i136_i_i_i] = $conv_i_i152_i_i_i;
  31064.           if (($conv_i_i152_i_i_i | 0) != 0) {
  31065.             var $593 = HEAP[$offset_i_i136_i_i_i];
  31066.             HEAP[$P_addr_i_i_i129_i_i_i] = HEAP[$base_addr_i_i135_i_i_i];
  31067.             HEAP[$offset_addr_i_i_i130_i_i_i] = $593;
  31068.             HEAP[$retval_i_i133_i_i_i] = HEAP[$P_addr_i_i_i129_i_i_i] + HEAP[$offset_addr_i_i_i130_i_i_i] | 0;
  31069.           } else {
  31070.             HEAP[$X_addr_i_i_i_i128_i_i_i] = 111704;
  31071.             HEAP[$retval_i_i133_i_i_i] = HEAP[$X_addr_i_i_i_i128_i_i_i];
  31072.           }
  31073.           var $601 = HEAP[$retval_i_i133_i_i_i];
  31074.           HEAP[$this_addr_i159_i_i_i] = HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0];
  31075.           HEAP[$i_addr_i160_i_i_i] = 0;
  31076.           var $this1_i161_i_i_i = HEAP[$this_addr_i159_i_i_i];
  31077.           var $call12_i_i_i = __ZNK2OT8Coverage12get_coverageEj($601, HEAP[HEAP[$this1_i161_i_i_i + 96 | 0] + ((HEAP[$i_addr_i160_i_i_i] + HEAP[$this1_i161_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  31078.           HEAP[$index_i_i_i33] = $call12_i_i_i;
  31079.           if (($call12_i_i_i | 0) == -1) {
  31080.             HEAP[$retval_i_i_i30] = 0;
  31081.             break;
  31082.           }
  31083.           if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter_i_i_i)) {
  31084.             HEAP[$retval_i_i_i30] = 0;
  31085.             break;
  31086.           }
  31087.           HEAP[$this_addr_i99_i_i_i] = $this1_i_i_i61 + 4 | 0;
  31088.           HEAP[$this_addr_i_i98_i_i_i] = HEAP[$this_addr_i99_i_i_i];
  31089.           HEAP[$this_addr_i_i_i97_i_i_i] = HEAP[$this_addr_i_i98_i_i_i] | 0;
  31090.           var $this1_i_i_i103_i_i_i = HEAP[$this_addr_i_i_i97_i_i_i];
  31091.           HEAP[$mask_addr_i_i95_i_i_i] = ((HEAP[$this1_i_i_i103_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i103_i_i_i + 1 | 0] & 255) & 65535;
  31092.           HEAP[$y_i_i96_i_i_i] = HEAP[$mask_addr_i_i95_i_i_i] >>> 1 & -613566757;
  31093.           HEAP[$y_i_i96_i_i_i] = -HEAP[$y_i_i96_i_i_i] + HEAP[$mask_addr_i_i95_i_i_i] + -(HEAP[$y_i_i96_i_i_i] >>> 1 & -613566757) | 0;
  31094.           HEAP[$len1_i_i_i] = (((HEAP[$y_i_i96_i_i_i] >>> 3) + HEAP[$y_i_i96_i_i_i] & -954437177) >>> 0) % 63;
  31095.           HEAP[$this_addr_i88_i_i_i] = $this1_i_i_i61 + 6 | 0;
  31096.           HEAP[$this_addr_i_i87_i_i_i] = HEAP[$this_addr_i88_i_i_i];
  31097.           HEAP[$this_addr_i_i_i86_i_i_i] = HEAP[$this_addr_i_i87_i_i_i] | 0;
  31098.           var $this1_i_i_i92_i_i_i = HEAP[$this_addr_i_i_i86_i_i_i];
  31099.           HEAP[$mask_addr_i_i_i_i_i8] = ((HEAP[$this1_i_i_i92_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i92_i_i_i + 1 | 0] & 255) & 65535;
  31100.           HEAP[$y_i_i_i_i_i9] = HEAP[$mask_addr_i_i_i_i_i8] >>> 1 & -613566757;
  31101.           HEAP[$y_i_i_i_i_i9] = -HEAP[$y_i_i_i_i_i9] + HEAP[$mask_addr_i_i_i_i_i8] + -(HEAP[$y_i_i_i_i_i9] >>> 1 & -613566757) | 0;
  31102.           HEAP[$len2_i_i_i] = (((HEAP[$y_i_i_i_i_i9] >>> 3) + HEAP[$y_i_i_i_i_i9] & -954437177) >>> 0) % 63;
  31103.           HEAP[$record_len_i_i_i] = HEAP[$len2_i_i_i] + HEAP[$len1_i_i_i] | 0;
  31104.           HEAP[$ref_tmp22_i_i_i] = $this1_i_i_i61;
  31105.           HEAP[$base_addr_i65_i_i_i] = $ref_tmp22_i_i_i;
  31106.           HEAP[$offset_addr_i66_i_i_i] = $this1_i_i_i61 + 8 | 0;
  31107.           var $666 = HEAP[HEAP[$base_addr_i65_i_i_i]];
  31108.           HEAP[$this_addr_i_i62_i_i_i] = HEAP[$offset_addr_i66_i_i_i];
  31109.           HEAP[$base_addr_i_i63_i_i_i] = $666;
  31110.           HEAP[$this_addr_i_i_i60_i_i_i] = HEAP[$this_addr_i_i62_i_i_i];
  31111.           HEAP[$this_addr_i_i_i_i59_i_i_i] = HEAP[$this_addr_i_i_i60_i_i_i] | 0;
  31112.           var $this1_i_i_i_i70_i_i_i = HEAP[$this_addr_i_i_i_i59_i_i_i];
  31113.           HEAP[$offset_i_i64_i_i_i] = ((HEAP[$this1_i_i_i_i70_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i70_i_i_i + 1 | 0] & 255) & 65535;
  31114.           if ((HEAP[$offset_i_i64_i_i_i] | 0) != 0) {
  31115.             var $684 = HEAP[$offset_i_i64_i_i_i];
  31116.             HEAP[$P_addr_i_i_i57_i_i_i] = HEAP[$base_addr_i_i63_i_i_i];
  31117.             HEAP[$offset_addr_i_i_i58_i_i_i] = $684;
  31118.             HEAP[$retval_i_i61_i_i_i] = HEAP[$P_addr_i_i_i57_i_i_i] + HEAP[$offset_addr_i_i_i58_i_i_i] | 0;
  31119.           } else {
  31120.             HEAP[$X_addr_i_i_i_i56_i_i_i] = 111704;
  31121.             HEAP[$retval_i_i61_i_i_i] = HEAP[$X_addr_i_i_i_i56_i_i_i];
  31122.           }
  31123.           var $692 = HEAP[$retval_i_i61_i_i_i];
  31124.           HEAP[$this_addr_i49_i_i_i] = HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0];
  31125.           HEAP[$i_addr_i50_i_i_i] = 0;
  31126.           var $this1_i51_i_i_i = HEAP[$this_addr_i49_i_i_i];
  31127.           var $call27_i_i_i = __ZNK2OT8ClassDef9get_classEj($692, HEAP[HEAP[$this1_i51_i_i_i + 96 | 0] + ((HEAP[$i_addr_i50_i_i_i] + HEAP[$this1_i51_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  31128.           HEAP[$klass1_i_i_i] = $call27_i_i_i;
  31129.           HEAP[$ref_tmp28_i_i_i] = $this1_i_i_i61;
  31130.           HEAP[$base_addr_i_i_i_i18] = $ref_tmp28_i_i_i;
  31131.           HEAP[$offset_addr_i_i_i_i19] = $this1_i_i_i61 + 10 | 0;
  31132.           var $715 = HEAP[HEAP[$base_addr_i_i_i_i18]];
  31133.           HEAP[$this_addr_i_i44_i_i_i] = HEAP[$offset_addr_i_i_i_i19];
  31134.           HEAP[$base_addr_i_i_i_i_i16] = $715;
  31135.           HEAP[$this_addr_i_i_i_i_i_i14] = HEAP[$this_addr_i_i44_i_i_i];
  31136.           HEAP[$this_addr_i_i_i_i_i_i_i13] = HEAP[$this_addr_i_i_i_i_i_i14] | 0;
  31137.           var $this1_i_i_i_i_i_i_i91 = HEAP[$this_addr_i_i_i_i_i_i_i13];
  31138.           var $conv_i_i46_i_i_i = ((HEAP[$this1_i_i_i_i_i_i_i91 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i91 + 1 | 0] & 255) & 65535;
  31139.           HEAP[$offset_i_i_i_i_i17] = $conv_i_i46_i_i_i;
  31140.           if (($conv_i_i46_i_i_i | 0) != 0) {
  31141.             var $732 = HEAP[$offset_i_i_i_i_i17];
  31142.             HEAP[$P_addr_i_i_i_i_i_i11] = HEAP[$base_addr_i_i_i_i_i16];
  31143.             HEAP[$offset_addr_i_i_i_i_i_i12] = $732;
  31144.             HEAP[$retval_i_i_i_i_i15] = HEAP[$P_addr_i_i_i_i_i_i11] + HEAP[$offset_addr_i_i_i_i_i_i12] | 0;
  31145.           } else {
  31146.             HEAP[$X_addr_i_i_i_i_i_i_i10] = 111704;
  31147.             HEAP[$retval_i_i_i_i_i15] = HEAP[$X_addr_i_i_i_i_i_i_i10];
  31148.           }
  31149.           var $call33_i_i_i = __ZNK2OT8ClassDef9get_classEj(HEAP[$retval_i_i_i_i_i15], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0] + 96 | 0] + (HEAP[$skippy_iter_i_i_i | 0] * 20 & -1) | 0]);
  31150.           HEAP[$klass2_i_i_i] = $call33_i_i_i;
  31151.           var $752 = HEAP[$klass1_i_i_i];
  31152.           HEAP[$this_addr_i26_i_i_i] = $this1_i_i_i61 + 12 | 0;
  31153.           HEAP[$this_addr_i_i25_i_i_i] = HEAP[$this_addr_i26_i_i_i] | 0;
  31154.           var $this1_i_i29_i_i_i = HEAP[$this_addr_i_i25_i_i_i];
  31155.           do {
  31156.             if (!($752 >>> 0 >= (((HEAP[$this1_i_i29_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i29_i_i_i + 1 | 0] & 255) & 65535) >>> 0)) {
  31157.               var $759 = HEAP[$klass2_i_i_i];
  31158.               HEAP[$this_addr_i12_i_i_i21] = $this1_i_i_i61 + 14 | 0;
  31159.               HEAP[$this_addr_i_i11_i_i_i20] = HEAP[$this_addr_i12_i_i_i21] | 0;
  31160.               var $this1_i_i15_i_i_i = HEAP[$this_addr_i_i11_i_i_i20];
  31161.               if ($759 >>> 0 >= (((HEAP[$this1_i_i15_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i15_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  31162.                 break;
  31163.               }
  31164.               var $767 = HEAP[$record_len_i_i_i];
  31165.               var $768 = HEAP[$klass1_i_i_i];
  31166.               HEAP[$this_addr_i7_i_i_i24] = $this1_i_i_i61 + 14 | 0;
  31167.               HEAP[$this_addr_i_i_i_i_i23] = HEAP[$this_addr_i7_i_i_i24] | 0;
  31168.               var $this1_i_i_i_i_i111 = HEAP[$this_addr_i_i_i_i_i23];
  31169.               var $arrayidx47_i_i_i = (Math.imul(Math.imul(((HEAP[$this1_i_i_i_i_i111 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i111 + 1 | 0] & 255) & 65535, $768) + HEAP[$klass2_i_i_i] | 0, $767) << 1) + $this1_i_i_i61 + 16 | 0;
  31170.               HEAP[$v_i_i_i35] = $arrayidx47_i_i_i;
  31171.               var $777 = HEAP[HEAP[$c_addr_i_i_i32] + 4 | 0];
  31172.               var $779 = HEAP[HEAP[$c_addr_i_i_i32] + 16 | 0];
  31173.               var $781 = HEAP[$v_i_i_i35];
  31174.               HEAP[$this_addr_i1_i_i_i25] = HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0];
  31175.               HEAP[$i_addr_i2_i_i_i26] = 0;
  31176.               var $this1_i3_i_i_i125 = HEAP[$this_addr_i1_i_i_i25];
  31177.               __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t($this1_i_i_i61 + 4 | 0, $777, $779, $this1_i_i_i61, $781, HEAP[$this1_i3_i_i_i125 + 104 | 0] + ((HEAP[$i_addr_i2_i_i_i26] + HEAP[$this1_i3_i_i_i125 + 80 | 0]) * 20 & -1) | 0);
  31178.               __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t($this1_i_i_i61 + 6 | 0, HEAP[HEAP[$c_addr_i_i_i32] + 4 | 0], HEAP[HEAP[$c_addr_i_i_i32] + 16 | 0], $this1_i_i_i61, (HEAP[$len1_i_i_i] << 1) + HEAP[$v_i_i_i35] | 0, HEAP[HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0] + 104 | 0] + (HEAP[$skippy_iter_i_i_i | 0] * 20 & -1) | 0);
  31179.               HEAP[HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0] + 80 | 0] = HEAP[$skippy_iter_i_i_i | 0];
  31180.               if ((HEAP[$len2_i_i_i] | 0) != 0) {
  31181.                 var $idx62_i_i_i = HEAP[HEAP[$c_addr_i_i_i32] + 12 | 0] + 80 | 0;
  31182.                 HEAP[$idx62_i_i_i] = HEAP[$idx62_i_i_i] + 1 | 0;
  31183.               }
  31184.               HEAP[$retval_i_i_i30] = 1;
  31185.               break L794;
  31186.             }
  31187.           } while (0);
  31188.           HEAP[$retval_i_i_i30] = 0;
  31189.         }
  31190.       } while (0);
  31191.       HEAP[$retval_i40] = HEAP[$retval_i_i_i30] & 1;
  31192.     } else {
  31193.       HEAP[$retval_i40] = 0;
  31194.     }
  31195.     $retval = HEAP[$retval_i40] & 1;
  31196.     var $2332 = $retval;
  31197.     STACKTOP = __stackBase__;
  31198.     return $2332;
  31199.   } else if (($0 | 0) == 1) {
  31200.     HEAP[$this_addr_i] = $this1 | 0;
  31201.     HEAP[$c_addr_i] = $c_addr;
  31202.     var $this1_i = HEAP[$this_addr_i];
  31203.     HEAP[$this_addr_i4_i] = $this1_i | 0;
  31204.     HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i] | 0;
  31205.     var $this1_i_i6_i = HEAP[$this_addr_i_i3_i];
  31206.     var $conv_i = ((HEAP[$this1_i_i6_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i + 1 | 0] & 255) & 65535;
  31207.     if (($conv_i | 0) == 1) {
  31208.       HEAP[$this_addr_i33_i] = HEAP[$c_addr_i];
  31209.       HEAP[$obj_addr_i34_i] = $this1_i | 0;
  31210.       var $this1_i35_i = HEAP[$this_addr_i33_i];
  31211.       HEAP[$this_addr_i_i29_i] = HEAP[$obj_addr_i34_i];
  31212.       HEAP[$c_addr_i_i30_i] = $this1_i35_i;
  31213.       var $this1_i_i36_i = HEAP[$this_addr_i_i29_i];
  31214.       HEAP[$this_addr_i_i_i25_i] = HEAP[HEAP[$c_addr_i_i30_i] + 12 | 0];
  31215.       HEAP[$i_addr_i_i_i26_i] = 0;
  31216.       HEAP[$ref_tmp_i_i32_i] = $this1_i_i36_i;
  31217.       HEAP[$base_addr_i_i_i21_i] = $ref_tmp_i_i32_i;
  31218.       HEAP[$offset_addr_i_i_i22_i] = $this1_i_i36_i + 2 | 0;
  31219.       var $32 = HEAP[HEAP[$base_addr_i_i_i21_i]];
  31220.       HEAP[$this_addr_i_i_i_i18_i] = HEAP[$offset_addr_i_i_i22_i];
  31221.       HEAP[$base_addr_i_i_i_i19_i] = $32;
  31222.       HEAP[$this_addr_i_i_i_i_i16_i] = HEAP[$this_addr_i_i_i_i18_i];
  31223.       HEAP[$this_addr_i_i_i_i_i_i15_i] = HEAP[$this_addr_i_i_i_i_i16_i] | 0;
  31224.       var $this1_i_i_i_i_i_i42_i = HEAP[$this_addr_i_i_i_i_i_i15_i];
  31225.       HEAP[$offset_i_i_i_i20_i] = ((HEAP[$this1_i_i_i_i_i_i42_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i42_i + 1 | 0] & 255) & 65535;
  31226.       if ((HEAP[$offset_i_i_i_i20_i] | 0) != 0) {
  31227.         var $50 = HEAP[$offset_i_i_i_i20_i];
  31228.         HEAP[$P_addr_i_i_i_i_i13_i] = HEAP[$base_addr_i_i_i_i19_i];
  31229.         HEAP[$offset_addr_i_i_i_i_i14_i] = $50;
  31230.         HEAP[$retval_i_i_i_i17_i] = HEAP[$P_addr_i_i_i_i_i13_i] + HEAP[$offset_addr_i_i_i_i_i14_i] | 0;
  31231.       } else {
  31232.         HEAP[$X_addr_i_i_i_i_i_i12_i] = 111704;
  31233.         HEAP[$retval_i_i_i_i17_i] = HEAP[$X_addr_i_i_i_i_i_i12_i];
  31234.       }
  31235.       var $58 = HEAP[$retval_i_i_i_i17_i];
  31236.       HEAP[$this_addr_i9_i_i_i] = HEAP[HEAP[$c_addr_i_i30_i] + 12 | 0];
  31237.       HEAP[$i_addr_i10_i_i_i] = 0;
  31238.       var $this1_i11_i_i_i = HEAP[$this_addr_i9_i_i_i];
  31239.       var $call8_i_i59_i = __ZNK2OT8Coverage12get_coverageEj($58, HEAP[HEAP[$this1_i11_i_i_i + 96 | 0] + ((HEAP[$i_addr_i10_i_i_i] + HEAP[$this1_i11_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  31240.       HEAP[$index_i_i31_i] = $call8_i_i59_i;
  31241.       if (($call8_i_i59_i | 0) == -1) {
  31242.         HEAP[$retval_i_i28_i] = 0;
  31243.       } else {
  31244.         var $77 = HEAP[HEAP[$c_addr_i_i30_i] + 4 | 0];
  31245.         var $79 = HEAP[HEAP[$c_addr_i_i30_i] + 16 | 0];
  31246.         HEAP[$this_addr_i1_i_i23_i] = HEAP[HEAP[$c_addr_i_i30_i] + 12 | 0];
  31247.         HEAP[$i_addr_i2_i_i24_i] = 0;
  31248.         var $this1_i3_i_i66_i = HEAP[$this_addr_i1_i_i23_i];
  31249.         __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t($this1_i_i36_i + 4 | 0, $77, $79, $this1_i_i36_i, $this1_i_i36_i + 6 | 0, HEAP[$this1_i3_i_i66_i + 104 | 0] + ((HEAP[$i_addr_i2_i_i24_i] + HEAP[$this1_i3_i_i66_i + 80 | 0]) * 20 & -1) | 0);
  31250.         var $idx13_i_i_i = HEAP[HEAP[$c_addr_i_i30_i] + 12 | 0] + 80 | 0;
  31251.         HEAP[$idx13_i_i_i] = HEAP[$idx13_i_i_i] + 1 | 0;
  31252.         HEAP[$retval_i_i28_i] = 1;
  31253.       }
  31254.       HEAP[$retval_i] = HEAP[$retval_i_i28_i] & 1;
  31255.     } else if (($conv_i | 0) == 2) {
  31256.       HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  31257.       HEAP[$obj_addr_i_i] = $this1_i | 0;
  31258.       var $this1_i_i = HEAP[$this_addr_i_i];
  31259.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i];
  31260.       HEAP[$c_addr_i_i_i] = $this1_i_i;
  31261.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  31262.       HEAP[$this_addr_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0];
  31263.       HEAP[$i_addr_i_i_i_i] = 0;
  31264.       HEAP[$ref_tmp_i_i_i] = $this1_i_i_i;
  31265.       HEAP[$base_addr_i_i_i_i] = $ref_tmp_i_i_i;
  31266.       HEAP[$offset_addr_i_i_i_i] = $this1_i_i_i + 2 | 0;
  31267.       var $124 = HEAP[HEAP[$base_addr_i_i_i_i]];
  31268.       HEAP[$this_addr_i_i27_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  31269.       HEAP[$base_addr_i_i_i_i_i] = $124;
  31270.       HEAP[$this_addr_i_i_i26_i_i_i] = HEAP[$this_addr_i_i27_i_i_i];
  31271.       HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i26_i_i_i] | 0;
  31272.       var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  31273.       HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  31274.       if ((HEAP[$offset_i_i_i_i_i] | 0) != 0) {
  31275.         var $142 = HEAP[$offset_i_i_i_i_i];
  31276.         HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  31277.         HEAP[$offset_addr_i_i_i_i_i_i] = $142;
  31278.         HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  31279.       } else {
  31280.         HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  31281.         HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  31282.       }
  31283.       var $150 = HEAP[$retval_i_i_i_i_i];
  31284.       HEAP[$this_addr_i19_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0];
  31285.       HEAP[$i_addr_i20_i_i_i] = 0;
  31286.       var $this1_i21_i_i_i = HEAP[$this_addr_i19_i_i_i];
  31287.       var $call8_i_i_i = __ZNK2OT8Coverage12get_coverageEj($150, HEAP[HEAP[$this1_i21_i_i_i + 96 | 0] + ((HEAP[$i_addr_i20_i_i_i] + HEAP[$this1_i21_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  31288.       HEAP[$index_i_i_i] = $call8_i_i_i;
  31289.       do {
  31290.         if (($call8_i_i_i | 0) == -1) {
  31291.           HEAP[$retval_i_i_i] = 0;
  31292.         } else {
  31293.           var $168 = HEAP[$index_i_i_i];
  31294.           HEAP[$this_addr_i12_i_i_i] = $this1_i_i_i + 6 | 0;
  31295.           HEAP[$this_addr_i_i11_i_i_i] = HEAP[$this_addr_i12_i_i_i] | 0;
  31296.           var $this1_i_i14_i_i_i = HEAP[$this_addr_i_i11_i_i_i];
  31297.           if ($168 >>> 0 >= (((HEAP[$this1_i_i14_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i14_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  31298.             HEAP[$retval_i_i_i] = 0;
  31299.             break;
  31300.           } else {
  31301.             var $177 = HEAP[HEAP[$c_addr_i_i_i] + 4 | 0];
  31302.             var $179 = HEAP[HEAP[$c_addr_i_i_i] + 16 | 0];
  31303.             var $181 = HEAP[$index_i_i_i];
  31304.             HEAP[$this_addr_i7_i_i_i] = $this1_i_i_i + 4 | 0;
  31305.             HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i7_i_i_i];
  31306.             HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  31307.             var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  31308.             HEAP[$mask_addr_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  31309.             HEAP[$y_i_i_i_i_i] = HEAP[$mask_addr_i_i_i_i_i] >>> 1 & -613566757;
  31310.             HEAP[$y_i_i_i_i_i] = -HEAP[$y_i_i_i_i_i] + HEAP[$mask_addr_i_i_i_i_i] + -(HEAP[$y_i_i_i_i_i] >>> 1 & -613566757) | 0;
  31311.             var $arrayidx_i_i_i = (Math.imul((((HEAP[$y_i_i_i_i_i] >>> 3) + HEAP[$y_i_i_i_i_i] & -954437177) >>> 0) % 63, $181) << 1) + $this1_i_i_i + 8 | 0;
  31312.             HEAP[$this_addr_i1_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0];
  31313.             HEAP[$i_addr_i2_i_i_i] = 0;
  31314.             var $this1_i3_i_i_i = HEAP[$this_addr_i1_i_i_i];
  31315.             __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t($this1_i_i_i + 4 | 0, $177, $179, $this1_i_i_i, $arrayidx_i_i_i, HEAP[$this1_i3_i_i_i + 104 | 0] + ((HEAP[$i_addr_i2_i_i_i] + HEAP[$this1_i3_i_i_i + 80 | 0]) * 20 & -1) | 0);
  31316.             var $idx20_i_i_i = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0] + 80 | 0;
  31317.             HEAP[$idx20_i_i_i] = HEAP[$idx20_i_i_i] + 1 | 0;
  31318.             HEAP[$retval_i_i_i] = 1;
  31319.             break;
  31320.           }
  31321.         }
  31322.       } while (0);
  31323.       HEAP[$retval_i] = HEAP[$retval_i_i_i] & 1;
  31324.     } else {
  31325.       HEAP[$retval_i] = 0;
  31326.     }
  31327.     $retval = HEAP[$retval_i] & 1;
  31328.     var $2332 = $retval;
  31329.     STACKTOP = __stackBase__;
  31330.     return $2332;
  31331.   } else if (($0 | 0) == 6) {
  31332.     HEAP[$this_addr_i582] = $this1 | 0;
  31333.     HEAP[$c_addr_i583] = $c_addr;
  31334.     var $this1_i584 = HEAP[$this_addr_i582];
  31335.     HEAP[$this_addr_i4_i526] = $this1_i584 | 0;
  31336.     HEAP[$this_addr_i_i3_i525] = HEAP[$this_addr_i4_i526] | 0;
  31337.     var $this1_i_i6_i589 = HEAP[$this_addr_i_i3_i525];
  31338.     if ((((HEAP[$this1_i_i6_i589 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i589 + 1 | 0] & 255) & 65535 | 0) == 1) {
  31339.       HEAP[$this_addr_i_i577] = HEAP[$c_addr_i583];
  31340.       HEAP[$obj_addr_i_i578] = $this1_i584 | 0;
  31341.       var $this1_i_i603 = HEAP[$this_addr_i_i577];
  31342.       HEAP[$this_addr_i_i_i572] = HEAP[$obj_addr_i_i578];
  31343.       HEAP[$c_addr_i_i_i573] = $this1_i_i603;
  31344.       var $this1_i_i_i604 = HEAP[$this_addr_i_i_i572];
  31345.       HEAP[$this_addr_i_i_i_i568] = HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0];
  31346.       HEAP[$i_addr_i_i_i_i569] = 0;
  31347.       HEAP[$ref_tmp_i_i_i574] = $this1_i_i_i604;
  31348.       HEAP[$base_addr_i127_i_i_i] = $ref_tmp_i_i_i574;
  31349.       HEAP[$offset_addr_i128_i_i_i] = $this1_i_i_i604 + 2 | 0;
  31350.       var $2007 = HEAP[HEAP[$base_addr_i127_i_i_i]];
  31351.       HEAP[$this_addr_i_i124_i_i_i] = HEAP[$offset_addr_i128_i_i_i];
  31352.       HEAP[$base_addr_i_i125_i_i_i] = $2007;
  31353.       HEAP[$this_addr_i_i_i122_i_i_i] = HEAP[$this_addr_i_i124_i_i_i];
  31354.       HEAP[$this_addr_i_i_i_i121_i_i_i] = HEAP[$this_addr_i_i_i122_i_i_i] | 0;
  31355.       var $this1_i_i_i_i132_i_i_i = HEAP[$this_addr_i_i_i_i121_i_i_i];
  31356.       HEAP[$offset_i_i126_i_i_i] = ((HEAP[$this1_i_i_i_i132_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i132_i_i_i + 1 | 0] & 255) & 65535;
  31357.       if ((HEAP[$offset_i_i126_i_i_i] | 0) != 0) {
  31358.         var $2025 = HEAP[$offset_i_i126_i_i_i];
  31359.         HEAP[$P_addr_i_i_i119_i_i_i] = HEAP[$base_addr_i_i125_i_i_i];
  31360.         HEAP[$offset_addr_i_i_i120_i_i_i] = $2025;
  31361.         HEAP[$retval_i_i123_i_i_i] = HEAP[$P_addr_i_i_i119_i_i_i] + HEAP[$offset_addr_i_i_i120_i_i_i] | 0;
  31362.       } else {
  31363.         HEAP[$X_addr_i_i_i_i118_i_i_i] = 111704;
  31364.         HEAP[$retval_i_i123_i_i_i] = HEAP[$X_addr_i_i_i_i118_i_i_i];
  31365.       }
  31366.       var $2033 = HEAP[$retval_i_i123_i_i_i];
  31367.       HEAP[$this_addr_i152_i_i_i] = HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0];
  31368.       HEAP[$i_addr_i153_i_i_i] = 0;
  31369.       var $this1_i154_i_i_i = HEAP[$this_addr_i152_i_i_i];
  31370.       var $call8_i_i_i609 = __ZNK2OT8Coverage12get_coverageEj($2033, HEAP[HEAP[$this1_i154_i_i_i + 96 | 0] + ((HEAP[$i_addr_i153_i_i_i] + HEAP[$this1_i154_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  31371.       HEAP[$mark1_index_i_i_i] = $call8_i_i_i609;
  31372.       do {
  31373.         if (($call8_i_i_i609 | 0) == -1) {
  31374.           HEAP[$retval_i_i_i571] = 0;
  31375.         } else {
  31376.           __ZN2OT18hb_apply_context_t28skipping_backward_iterator_tC1EPS0_jjb($skippy_iter_i_i_i575, HEAP[$c_addr_i_i_i573], HEAP[HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0] + 80 | 0], 1, 0);
  31377.           var $and_i_i_i615 = HEAP[HEAP[$c_addr_i_i_i573] + 36 | 0] & -15;
  31378.           HEAP[$this_addr_i149_i_i_i] = $skippy_iter_i_i_i575;
  31379.           HEAP[$lookup_props_addr_i_i_i_i528] = $and_i_i_i615;
  31380.           var $2059 = HEAP[$lookup_props_addr_i_i_i_i528];
  31381.           HEAP[$this_addr_i_i148_i_i_i] = HEAP[$this_addr_i149_i_i_i] + 8 | 0;
  31382.           HEAP[$lookup_props__addr_i_i_i_i_i527] = $2059;
  31383.           HEAP[HEAP[$this_addr_i_i148_i_i_i] | 0] = HEAP[$lookup_props__addr_i_i_i_i_i527];
  31384.           if (!__ZN2OT18hb_apply_context_t28skipping_backward_iterator_t4prevEv($skippy_iter_i_i_i575)) {
  31385.             HEAP[$retval_i_i_i571] = 0;
  31386.             break;
  31387.           }
  31388.           if ((HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0] + 96 | 0] + (HEAP[$skippy_iter_i_i_i575 | 0] * 20 & -1) + 12 | 0] & 8 | 0) == 0) {
  31389.             HEAP[$retval_i_i_i571] = 0;
  31390.             break;
  31391.           }
  31392.           HEAP[$j_i_i_i576] = HEAP[$skippy_iter_i_i_i575 | 0];
  31393.           HEAP[$this_addr_i107_i_i_i] = HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0];
  31394.           HEAP[$i_addr_i108_i_i_i] = 0;
  31395.           var $this1_i109_i_i_i = HEAP[$this_addr_i107_i_i_i];
  31396.           HEAP[$info_addr_i101_i_i_i] = HEAP[$this1_i109_i_i_i + 96 | 0] + ((HEAP[$i_addr_i108_i_i_i] + HEAP[$this1_i109_i_i_i + 80 | 0]) * 20 & -1) | 0;
  31397.           HEAP[$id1_i_i_i] = (HEAP[HEAP[$info_addr_i101_i_i_i] + 15 | 0] & 255) >> 5;
  31398.           HEAP[$info_addr_i96_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0] + 96 | 0] + (HEAP[$j_i_i_i576] * 20 & -1) | 0;
  31399.           HEAP[$id2_i_i_i] = (HEAP[HEAP[$info_addr_i96_i_i_i] + 15 | 0] & 255) >> 5;
  31400.           HEAP[$this_addr_i89_i_i_i] = HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0];
  31401.           HEAP[$i_addr_i90_i_i_i] = 0;
  31402.           var $this1_i91_i_i_i = HEAP[$this_addr_i89_i_i_i];
  31403.           HEAP[$info_addr_i74_i_i_i] = HEAP[$this1_i91_i_i_i + 96 | 0] + ((HEAP[$i_addr_i90_i_i_i] + HEAP[$this1_i91_i_i_i + 80 | 0]) * 20 & -1) | 0;
  31404.           HEAP[$info_addr_i_i72_i_i_i] = HEAP[$info_addr_i74_i_i_i];
  31405.           if ((HEAP[HEAP[$info_addr_i_i72_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  31406.             HEAP[$retval_i73_i_i_i] = 0;
  31407.           } else {
  31408.             HEAP[$retval_i73_i_i_i] = HEAP[HEAP[$info_addr_i74_i_i_i] + 15 | 0] & 15;
  31409.           }
  31410.           HEAP[$comp1_i_i_i] = HEAP[$retval_i73_i_i_i];
  31411.           HEAP[$info_addr_i_i_i_i531] = HEAP[HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0] + 96 | 0] + (HEAP[$j_i_i_i576] * 20 & -1) | 0;
  31412.           HEAP[$info_addr_i_i_i_i_i529] = HEAP[$info_addr_i_i_i_i531];
  31413.           if ((HEAP[HEAP[$info_addr_i_i_i_i_i529] + 15 | 0] & 16 | 0) != 0) {
  31414.             HEAP[$retval_i_i_i_i530] = 0;
  31415.           } else {
  31416.             HEAP[$retval_i_i_i_i530] = HEAP[HEAP[$info_addr_i_i_i_i531] + 15 | 0] & 15;
  31417.           }
  31418.           HEAP[$comp2_i_i_i] = HEAP[$retval_i_i_i_i530];
  31419.           var $2133 = HEAP[$id1_i_i_i];
  31420.           do {
  31421.             if (($2133 | 0) == (HEAP[$id2_i_i_i] | 0)) {
  31422.               if (($2133 | 0) == 0) {
  31423.                 break;
  31424.               }
  31425.               if ((HEAP[$comp1_i_i_i] | 0) == (HEAP[$comp2_i_i_i] | 0)) {
  31426.                 break;
  31427.               } else {
  31428.                 label = 648;
  31429.                 break;
  31430.               }
  31431.             } else {
  31432.               if ($2133 >>> 0 > 0) {
  31433.                 if ((HEAP[$comp1_i_i_i] | 0) == 0) {
  31434.                   break;
  31435.                 }
  31436.               }
  31437.               if (HEAP[$id2_i_i_i] >>> 0 <= 0) {
  31438.                 label = 648;
  31439.                 break;
  31440.               }
  31441.               if ((HEAP[$comp2_i_i_i] | 0) != 0) {
  31442.                 label = 648;
  31443.                 break;
  31444.               } else {
  31445.                 break;
  31446.               }
  31447.             }
  31448.           } while (0);
  31449.           if (label == 648) {
  31450.             HEAP[$retval_i_i_i571] = 0;
  31451.             break;
  31452.           }
  31453.           HEAP[$ref_tmp56_i_i_i] = $this1_i_i_i604;
  31454.           HEAP[$base_addr_i46_i_i_i541] = $ref_tmp56_i_i_i;
  31455.           HEAP[$offset_addr_i47_i_i_i542] = $this1_i_i_i604 + 4 | 0;
  31456.           var $2147 = HEAP[HEAP[$base_addr_i46_i_i_i541]];
  31457.           HEAP[$this_addr_i_i43_i_i_i538] = HEAP[$offset_addr_i47_i_i_i542];
  31458.           HEAP[$base_addr_i_i44_i_i_i539] = $2147;
  31459.           HEAP[$this_addr_i_i_i41_i_i_i536] = HEAP[$this_addr_i_i43_i_i_i538];
  31460.           HEAP[$this_addr_i_i_i_i40_i_i_i535] = HEAP[$this_addr_i_i_i41_i_i_i536] | 0;
  31461.           var $this1_i_i_i_i51_i_i_i657 = HEAP[$this_addr_i_i_i_i40_i_i_i535];
  31462.           var $conv_i_i61_i_i_i667 = ((HEAP[$this1_i_i_i_i51_i_i_i657 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i51_i_i_i657 + 1 | 0] & 255) & 65535;
  31463.           HEAP[$offset_i_i45_i_i_i540] = $conv_i_i61_i_i_i667;
  31464.           if (($conv_i_i61_i_i_i667 | 0) != 0) {
  31465.             var $2164 = HEAP[$offset_i_i45_i_i_i540];
  31466.             HEAP[$P_addr_i_i_i38_i_i_i533] = HEAP[$base_addr_i_i44_i_i_i539];
  31467.             HEAP[$offset_addr_i_i_i39_i_i_i534] = $2164;
  31468.             HEAP[$retval_i_i42_i_i_i537] = HEAP[$P_addr_i_i_i38_i_i_i533] + HEAP[$offset_addr_i_i_i39_i_i_i534] | 0;
  31469.           } else {
  31470.             HEAP[$X_addr_i_i_i_i37_i_i_i532] = 111704;
  31471.             HEAP[$retval_i_i42_i_i_i537] = HEAP[$X_addr_i_i_i_i37_i_i_i532];
  31472.           }
  31473.           var $call62_i_i_i = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i42_i_i_i537], HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i573] + 12 | 0] + 96 | 0] + (HEAP[$j_i_i_i576] * 20 & -1) | 0]);
  31474.           HEAP[$mark2_index_i_i_i] = $call62_i_i_i;
  31475.           if (($call62_i_i_i | 0) == -1) {
  31476.             HEAP[$retval_i_i_i571] = 0;
  31477.             break;
  31478.           }
  31479.           HEAP[$ref_tmp67_i_i_i] = $this1_i_i_i604;
  31480.           HEAP[$base_addr_i15_i_i_i553] = $ref_tmp67_i_i_i;
  31481.           HEAP[$offset_addr_i16_i_i_i554] = $this1_i_i_i604 + 8 | 0;
  31482.           var $2191 = HEAP[HEAP[$base_addr_i15_i_i_i553]];
  31483.           HEAP[$this_addr_i_i12_i_i_i550] = HEAP[$offset_addr_i16_i_i_i554];
  31484.           HEAP[$base_addr_i_i13_i_i_i551] = $2191;
  31485.           HEAP[$this_addr_i_i_i10_i_i_i548] = HEAP[$this_addr_i_i12_i_i_i550];
  31486.           HEAP[$this_addr_i_i_i_i9_i_i_i547] = HEAP[$this_addr_i_i_i10_i_i_i548] | 0;
  31487.           var $this1_i_i_i_i20_i_i_i677 = HEAP[$this_addr_i_i_i_i9_i_i_i547];
  31488.           HEAP[$offset_i_i14_i_i_i552] = ((HEAP[$this1_i_i_i_i20_i_i_i677 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20_i_i_i677 + 1 | 0] & 255) & 65535;
  31489.           if ((HEAP[$offset_i_i14_i_i_i552] | 0) != 0) {
  31490.             var $2209 = HEAP[$offset_i_i14_i_i_i552];
  31491.             HEAP[$P_addr_i_i_i7_i_i_i545] = HEAP[$base_addr_i_i13_i_i_i551];
  31492.             HEAP[$offset_addr_i_i_i8_i_i_i546] = $2209;
  31493.             HEAP[$retval_i_i11_i_i_i549] = HEAP[$P_addr_i_i_i7_i_i_i545] + HEAP[$offset_addr_i_i_i8_i_i_i546] | 0;
  31494.           } else {
  31495.             HEAP[$X_addr_i_i_i_i6_i_i_i544] = 111704;
  31496.             HEAP[$retval_i_i11_i_i_i549] = HEAP[$X_addr_i_i_i_i6_i_i_i544];
  31497.           }
  31498.           var $2217 = HEAP[$retval_i_i11_i_i_i549];
  31499.           var $2224 = HEAP[$c_addr_i_i_i573];
  31500.           var $2225 = HEAP[$mark1_index_i_i_i];
  31501.           var $2226 = HEAP[$mark2_index_i_i_i];
  31502.           HEAP[$ref_tmp69_i_i_i] = $this1_i_i_i604;
  31503.           HEAP[$base_addr_i_i_i_i564] = $ref_tmp69_i_i_i;
  31504.           HEAP[$offset_addr_i_i_i_i565] = $this1_i_i_i604 + 10 | 0;
  31505.           var $2233 = HEAP[HEAP[$base_addr_i_i_i_i564]];
  31506.           HEAP[$this_addr_i_i3_i_i_i561] = HEAP[$offset_addr_i_i_i_i565];
  31507.           HEAP[$base_addr_i_i_i_i_i562] = $2233;
  31508.           HEAP[$this_addr_i_i_i_i_i_i559] = HEAP[$this_addr_i_i3_i_i_i561];
  31509.           HEAP[$this_addr_i_i_i_i_i_i_i558] = HEAP[$this_addr_i_i_i_i_i_i559] | 0;
  31510.           var $this1_i_i_i_i_i_i_i695 = HEAP[$this_addr_i_i_i_i_i_i_i558];
  31511.           var $conv_i_i5_i_i_i705 = ((HEAP[$this1_i_i_i_i_i_i_i695 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i695 + 1 | 0] & 255) & 65535;
  31512.           HEAP[$offset_i_i_i_i_i563] = $conv_i_i5_i_i_i705;
  31513.           if (($conv_i_i5_i_i_i705 | 0) != 0) {
  31514.             var $2250 = HEAP[$offset_i_i_i_i_i563];
  31515.             HEAP[$P_addr_i_i_i_i_i_i556] = HEAP[$base_addr_i_i_i_i_i562];
  31516.             HEAP[$offset_addr_i_i_i_i_i_i557] = $2250;
  31517.             HEAP[$retval_i_i_i_i_i560] = HEAP[$P_addr_i_i_i_i_i_i556] + HEAP[$offset_addr_i_i_i_i_i_i557] | 0;
  31518.           } else {
  31519.             HEAP[$X_addr_i_i_i_i_i_i_i555] = 111704;
  31520.             HEAP[$retval_i_i_i_i_i560] = HEAP[$X_addr_i_i_i_i_i_i_i555];
  31521.           }
  31522.           var $2258 = HEAP[$retval_i_i_i_i_i560];
  31523.           HEAP[$this_addr_i1_i_i_i567] = $this1_i_i_i604 + 6 | 0;
  31524.           HEAP[$this_addr_i_i_i_i_i566] = HEAP[$this_addr_i1_i_i_i567] | 0;
  31525.           var $this1_i_i_i_i_i713 = HEAP[$this_addr_i_i_i_i_i566];
  31526.           var $tobool_i_i_i_i724 = __ZNK2OT9MarkArray5applyEPNS_18hb_apply_context_tEjjRKNS_12AnchorMatrixEjj($2217, $2224, $2225, $2226, $2258, ((HEAP[$this1_i_i_i_i_i713 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i713 + 1 | 0] & 255) & 65535, HEAP[$j_i_i_i576]) & 1;
  31527.           HEAP[$retval_i_i_i571] = $tobool_i_i_i_i724;
  31528.         }
  31529.       } while (0);
  31530.       HEAP[$retval_i581] = HEAP[$retval_i_i_i571] & 1;
  31531.     } else {
  31532.       HEAP[$retval_i581] = 0;
  31533.     }
  31534.     $retval = HEAP[$retval_i581] & 1;
  31535.     var $2332 = $retval;
  31536.     STACKTOP = __stackBase__;
  31537.     return $2332;
  31538.   } else if (($0 | 0) == 7) {
  31539.     $retval = __ZNK2OT7Context8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr) & 1;
  31540.     var $2332 = $retval;
  31541.     STACKTOP = __stackBase__;
  31542.     return $2332;
  31543.   } else if (($0 | 0) == 8) {
  31544.     $retval = __ZNK2OT12ChainContext8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr) & 1;
  31545.     var $2332 = $retval;
  31546.     STACKTOP = __stackBase__;
  31547.     return $2332;
  31548.   } else if (($0 | 0) == 9) {
  31549.     HEAP[$this_addr_i745] = $this1 | 0;
  31550.     HEAP[$c_addr_i746] = $c_addr;
  31551.     var $this1_i747 = HEAP[$this_addr_i745];
  31552.     var $call_i = __ZNK2OT9ExtensionINS_12ExtensionPosEE12get_subtableINS_17PosLookupSubTableEEERKT_v($this1_i747);
  31553.     var $2308 = HEAP[$c_addr_i746];
  31554.     HEAP[$this_addr_i_i744] = $this1_i747;
  31555.     var $this1_i_i748 = HEAP[$this_addr_i_i744];
  31556.     HEAP[$this_addr_i_i_i743] = $this1_i_i748 | 0;
  31557.     HEAP[$this_addr_i_i_i_i742] = HEAP[$this_addr_i_i_i743] | 0;
  31558.     var $this1_i_i_i_i751 = HEAP[$this_addr_i_i_i_i742];
  31559.     if ((((HEAP[$this1_i_i_i_i751 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i751 + 1 | 0] & 255) & 65535 | 0) == 1) {
  31560.       HEAP[$this_addr_i2_i_i] = $this1_i_i748 | 0;
  31561.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] + 2 | 0;
  31562.       HEAP[$this_addr_i_i_i_i_i741] = HEAP[$this_addr_i_i1_i_i] | 0;
  31563.       var $this1_i_i_i_i_i755 = HEAP[$this_addr_i_i_i_i_i741];
  31564.       HEAP[$retval_i_i] = ((HEAP[$this1_i_i_i_i_i755 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i755 + 1 | 0] & 255) & 65535;
  31565.     } else {
  31566.       HEAP[$retval_i_i] = 0;
  31567.     }
  31568.     $retval = __ZNK2OT17PosLookupSubTable8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_j($call_i, $2308, HEAP[$retval_i_i]) & 1;
  31569.     var $2332 = $retval;
  31570.     STACKTOP = __stackBase__;
  31571.     return $2332;
  31572.   } else {
  31573.     $retval = 0;
  31574.     var $2332 = $retval;
  31575.     STACKTOP = __stackBase__;
  31576.     return $2332;
  31577.   }
  31578. }
  31579. function __ZNK2OT7Context8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_($this, $c) {
  31580.   var __stackBase__ = STACKTOP;
  31581.   STACKTOP = STACKTOP + 559 | 0;
  31582.   var $this_addr_i77_i_i = __stackBase__;
  31583.   var $i_addr_i78_i_i = __stackBase__ + 4;
  31584.   var $X_addr_i_i_i_i48_i_i = __stackBase__ + 8;
  31585.   var $P_addr_i_i_i49_i_i = __stackBase__ + 12;
  31586.   var $offset_addr_i_i_i50_i_i = __stackBase__ + 16;
  31587.   var $this_addr_i_i_i_i51_i_i = __stackBase__ + 20;
  31588.   var $this_addr_i_i_i52_i_i = __stackBase__ + 24;
  31589.   var $retval_i_i53_i_i = __stackBase__ + 28;
  31590.   var $this_addr_i_i54_i_i = __stackBase__ + 32;
  31591.   var $base_addr_i_i55_i_i = __stackBase__ + 36;
  31592.   var $offset_i_i56_i_i = __stackBase__ + 40;
  31593.   var $base_addr_i57_i_i = __stackBase__ + 44;
  31594.   var $offset_addr_i58_i_i = __stackBase__ + 48;
  31595.   var $X_addr_i_i_i_i17_i_i = __stackBase__ + 52;
  31596.   var $P_addr_i_i_i18_i_i = __stackBase__ + 56;
  31597.   var $offset_addr_i_i_i19_i_i = __stackBase__ + 60;
  31598.   var $this_addr_i_i_i_i20_i_i = __stackBase__ + 64;
  31599.   var $this_addr_i_i_i21_i_i = __stackBase__ + 68;
  31600.   var $retval_i_i22_i_i = __stackBase__ + 72;
  31601.   var $this_addr_i_i23_i_i = __stackBase__ + 76;
  31602.   var $base_addr_i_i24_i_i = __stackBase__ + 80;
  31603.   var $offset_i_i25_i_i = __stackBase__ + 84;
  31604.   var $base_addr_i26_i_i = __stackBase__ + 88;
  31605.   var $offset_addr_i27_i_i = __stackBase__ + 92;
  31606.   var $this_addr_i10_i_i = __stackBase__ + 96;
  31607.   var $i_addr_i11_i_i = __stackBase__ + 100;
  31608.   var $X_addr_i_i_i_i_i66 = __stackBase__ + 104;
  31609.   var $this_addr_i_i_i1_i_i67 = __stackBase__ + 108;
  31610.   var $this_addr_i_i2_i_i68 = __stackBase__ + 112;
  31611.   var $retval_i_i_i69 = __stackBase__ + 116;
  31612.   var $this_addr_i3_i_i70 = __stackBase__ + 120;
  31613.   var $i_addr_i4_i_i71 = __stackBase__ + 124;
  31614.   var $X_addr_i_i_i_i_i_i72 = __stackBase__ + 128;
  31615.   var $P_addr_i_i_i_i_i73 = __stackBase__ + 132;
  31616.   var $offset_addr_i_i_i_i_i74 = __stackBase__ + 136;
  31617.   var $this_addr_i_i_i_i_i_i75 = __stackBase__ + 140;
  31618.   var $this_addr_i_i_i_i_i76 = __stackBase__ + 144;
  31619.   var $retval_i_i_i_i77 = __stackBase__ + 148;
  31620.   var $this_addr_i_i_i_i78 = __stackBase__ + 152;
  31621.   var $base_addr_i_i_i_i79 = __stackBase__ + 156;
  31622.   var $offset_i_i_i_i80 = __stackBase__ + 160;
  31623.   var $base_addr_i_i_i81 = __stackBase__ + 164;
  31624.   var $offset_addr_i_i_i82 = __stackBase__ + 168;
  31625.   var $this_addr_i_i_i83 = __stackBase__ + 172;
  31626.   var $i_addr_i_i_i84 = __stackBase__ + 176;
  31627.   var $retval_i_i86 = __stackBase__ + 180;
  31628.   var $this_addr_i_i87 = __stackBase__ + 181;
  31629.   var $c_addr_i_i88 = __stackBase__ + 185;
  31630.   var $index_i_i89 = __stackBase__ + 189;
  31631.   var $ref_tmp_i_i90 = __stackBase__ + 193;
  31632.   var $class_def_i_i = __stackBase__ + 197;
  31633.   var $ref_tmp10_i_i91 = __stackBase__ + 201;
  31634.   var $rule_set_i_i92 = __stackBase__ + 205;
  31635.   var $ref_tmp16_i_i = __stackBase__ + 209;
  31636.   var $lookup_context_i_i93 = __stackBase__ + 213;
  31637.   var $this_addr_i94 = __stackBase__ + 221;
  31638.   var $obj_addr_i95 = __stackBase__ + 225;
  31639.   var $X_addr_i_i_i_i19_i_i = __stackBase__ + 229;
  31640.   var $P_addr_i_i_i20_i_i = __stackBase__ + 233;
  31641.   var $offset_addr_i_i_i21_i_i = __stackBase__ + 237;
  31642.   var $this_addr_i_i_i_i22_i_i = __stackBase__ + 241;
  31643.   var $this_addr_i_i_i23_i_i = __stackBase__ + 245;
  31644.   var $retval_i_i24_i_i = __stackBase__ + 249;
  31645.   var $this_addr_i_i25_i_i = __stackBase__ + 253;
  31646.   var $base_addr_i_i26_i_i = __stackBase__ + 257;
  31647.   var $offset_i_i27_i_i = __stackBase__ + 261;
  31648.   var $base_addr_i28_i_i = __stackBase__ + 265;
  31649.   var $offset_addr_i29_i_i = __stackBase__ + 269;
  31650.   var $this_addr_i12_i_i = __stackBase__ + 273;
  31651.   var $i_addr_i13_i_i = __stackBase__ + 277;
  31652.   var $X_addr_i_i_i_i_i = __stackBase__ + 281;
  31653.   var $this_addr_i_i_i1_i_i = __stackBase__ + 285;
  31654.   var $this_addr_i_i2_i_i = __stackBase__ + 289;
  31655.   var $retval_i_i_i = __stackBase__ + 293;
  31656.   var $this_addr_i3_i_i = __stackBase__ + 297;
  31657.   var $i_addr_i4_i_i = __stackBase__ + 301;
  31658.   var $X_addr_i_i_i_i_i_i9 = __stackBase__ + 305;
  31659.   var $P_addr_i_i_i_i_i10 = __stackBase__ + 309;
  31660.   var $offset_addr_i_i_i_i_i11 = __stackBase__ + 313;
  31661.   var $this_addr_i_i_i_i_i_i12 = __stackBase__ + 317;
  31662.   var $this_addr_i_i_i_i_i13 = __stackBase__ + 321;
  31663.   var $retval_i_i_i_i14 = __stackBase__ + 325;
  31664.   var $this_addr_i_i_i_i15 = __stackBase__ + 329;
  31665.   var $base_addr_i_i_i_i16 = __stackBase__ + 333;
  31666.   var $offset_i_i_i_i17 = __stackBase__ + 337;
  31667.   var $base_addr_i_i_i18 = __stackBase__ + 341;
  31668.   var $offset_addr_i_i_i19 = __stackBase__ + 345;
  31669.   var $retval_i_i23 = __stackBase__ + 357;
  31670.   var $this_addr_i_i24 = __stackBase__ + 358;
  31671.   var $c_addr_i_i25 = __stackBase__ + 362;
  31672.   var $index_i_i26 = __stackBase__ + 366;
  31673.   var $ref_tmp_i_i27 = __stackBase__ + 370;
  31674.   var $rule_set_i_i = __stackBase__ + 374;
  31675.   var $ref_tmp10_i_i = __stackBase__ + 378;
  31676.   var $lookup_context_i_i28 = __stackBase__ + 382;
  31677.   var $this_addr_i29 = __stackBase__ + 390;
  31678.   var $obj_addr_i30 = __stackBase__ + 394;
  31679.   var $this_addr_i_i3 = __stackBase__ + 398;
  31680.   var $this_addr_i4 = __stackBase__ + 402;
  31681.   var $this_addr_i37_i_i = __stackBase__ + 406;
  31682.   var $i_addr_i38_i_i = __stackBase__ + 410;
  31683.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 414;
  31684.   var $P_addr_i_i_i_i_i = __stackBase__ + 418;
  31685.   var $offset_addr_i_i_i_i_i = __stackBase__ + 422;
  31686.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 426;
  31687.   var $this_addr_i_i_i_i_i = __stackBase__ + 430;
  31688.   var $retval_i_i_i_i = __stackBase__ + 434;
  31689.   var $this_addr_i_i33_i_i = __stackBase__ + 438;
  31690.   var $base_addr_i_i_i_i = __stackBase__ + 442;
  31691.   var $offset_i_i_i_i = __stackBase__ + 446;
  31692.   var $base_addr_i_i_i = __stackBase__ + 450;
  31693.   var $offset_addr_i34_i_i = __stackBase__ + 454;
  31694.   var $this_addr_i_i17_i_i = __stackBase__ + 458;
  31695.   var $this_addr_i18_i_i = __stackBase__ + 462;
  31696.   var $P_addr_i_i_i = __stackBase__ + 466;
  31697.   var $offset_addr_i_i_i = __stackBase__ + 470;
  31698.   var $this_addr_i_i3_i_i = __stackBase__ + 474;
  31699.   var $this_addr_i4_i_i = __stackBase__ + 478;
  31700.   var $this_addr_i_i_i_i = __stackBase__ + 482;
  31701.   var $this_addr_i1_i_i = __stackBase__ + 486;
  31702.   var $this_addr_i_i_i = __stackBase__ + 490;
  31703.   var $i_addr_i_i_i = __stackBase__ + 494;
  31704.   var $c_addr_i_i_i = __stackBase__ + 498;
  31705.   var $inputCount_addr_i_i_i = __stackBase__ + 502;
  31706.   var $input_addr_i_i_i = __stackBase__ + 506;
  31707.   var $lookupCount_addr_i_i_i = __stackBase__ + 510;
  31708.   var $lookupRecord_addr_i_i_i = __stackBase__ + 514;
  31709.   var $lookup_context_addr_i_i_i = __stackBase__ + 518;
  31710.   var $retval_i_i = __stackBase__ + 522;
  31711.   var $this_addr_i_i = __stackBase__ + 523;
  31712.   var $c_addr_i_i = __stackBase__ + 527;
  31713.   var $index_i_i = __stackBase__ + 531;
  31714.   var $ref_tmp_i_i = __stackBase__ + 535;
  31715.   var $lookupRecord_i_i = __stackBase__ + 539;
  31716.   var $lookup_context_i_i = __stackBase__ + 543;
  31717.   var $this_addr_i = __stackBase__ + 551;
  31718.   var $obj_addr_i = __stackBase__ + 555;
  31719.   var $retval;
  31720.   var $c_addr;
  31721.   $c_addr = $c;
  31722.   var $this1 = $this;
  31723.   HEAP[$this_addr_i4] = $this1 | 0;
  31724.   HEAP[$this_addr_i_i3] = HEAP[$this_addr_i4] | 0;
  31725.   var $this1_i_i6 = HEAP[$this_addr_i_i3];
  31726.   var $conv = ((HEAP[$this1_i_i6 | 0] & 255) << 8) + (HEAP[$this1_i_i6 + 1 | 0] & 255) & 65535;
  31727.   if (($conv | 0) == 1) {
  31728.     HEAP[$this_addr_i29] = $c_addr;
  31729.     HEAP[$obj_addr_i30] = $this1 | 0;
  31730.     var $this1_i31 = HEAP[$this_addr_i29];
  31731.     HEAP[$this_addr_i_i24] = HEAP[$obj_addr_i30];
  31732.     HEAP[$c_addr_i_i25] = $this1_i31;
  31733.     var $this1_i_i32 = HEAP[$this_addr_i_i24];
  31734.     HEAP[__stackBase__ + 349] = HEAP[HEAP[$c_addr_i_i25] + 12 | 0];
  31735.     HEAP[__stackBase__ + 353] = 0;
  31736.     HEAP[$ref_tmp_i_i27] = $this1_i_i32;
  31737.     HEAP[$base_addr_i28_i_i] = $ref_tmp_i_i27;
  31738.     HEAP[$offset_addr_i29_i_i] = $this1_i_i32 + 2 | 0;
  31739.     var $30 = HEAP[HEAP[$base_addr_i28_i_i]];
  31740.     HEAP[$this_addr_i_i25_i_i] = HEAP[$offset_addr_i29_i_i];
  31741.     HEAP[$base_addr_i_i26_i_i] = $30;
  31742.     HEAP[$this_addr_i_i_i23_i_i] = HEAP[$this_addr_i_i25_i_i];
  31743.     HEAP[$this_addr_i_i_i_i22_i_i] = HEAP[$this_addr_i_i_i23_i_i] | 0;
  31744.     var $this1_i_i_i_i33_i_i = HEAP[$this_addr_i_i_i_i22_i_i];
  31745.     HEAP[$offset_i_i27_i_i] = ((HEAP[$this1_i_i_i_i33_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i33_i_i + 1 | 0] & 255) & 65535;
  31746.     if ((HEAP[$offset_i_i27_i_i] | 0) != 0) {
  31747.       var $48 = HEAP[$offset_i_i27_i_i];
  31748.       HEAP[$P_addr_i_i_i20_i_i] = HEAP[$base_addr_i_i26_i_i];
  31749.       HEAP[$offset_addr_i_i_i21_i_i] = $48;
  31750.       HEAP[$retval_i_i24_i_i] = HEAP[$P_addr_i_i_i20_i_i] + HEAP[$offset_addr_i_i_i21_i_i] | 0;
  31751.     } else {
  31752.       HEAP[$X_addr_i_i_i_i19_i_i] = 111704;
  31753.       HEAP[$retval_i_i24_i_i] = HEAP[$X_addr_i_i_i_i19_i_i];
  31754.     }
  31755.     var $56 = HEAP[$retval_i_i24_i_i];
  31756.     HEAP[$this_addr_i12_i_i] = HEAP[HEAP[$c_addr_i_i25] + 12 | 0];
  31757.     HEAP[$i_addr_i13_i_i] = 0;
  31758.     var $this1_i14_i_i = HEAP[$this_addr_i12_i_i];
  31759.     var $call8_i_i37 = __ZNK2OT8Coverage12get_coverageEj($56, HEAP[HEAP[$this1_i14_i_i + 96 | 0] + ((HEAP[$i_addr_i13_i_i] + HEAP[$this1_i14_i_i + 80 | 0]) * 20 & -1) | 0]);
  31760.     HEAP[$index_i_i26] = $call8_i_i37;
  31761.     if (($call8_i_i37 | 0) == -1) {
  31762.       HEAP[$retval_i_i23] = 0;
  31763.     } else {
  31764.       HEAP[$ref_tmp10_i_i] = $this1_i_i32;
  31765.       var $75 = HEAP[$index_i_i26];
  31766.       HEAP[$this_addr_i3_i_i] = $this1_i_i32 + 4 | 0;
  31767.       HEAP[$i_addr_i4_i_i] = $75;
  31768.       var $this1_i5_i_i40 = HEAP[$this_addr_i3_i_i];
  31769.       var $79 = HEAP[$i_addr_i4_i_i];
  31770.       HEAP[$this_addr_i_i2_i_i] = $this1_i5_i_i40 | 0;
  31771.       HEAP[$this_addr_i_i_i1_i_i] = HEAP[$this_addr_i_i2_i_i] | 0;
  31772.       var $this1_i_i_i7_i_i = HEAP[$this_addr_i_i_i1_i_i];
  31773.       if ($79 >>> 0 >= (((HEAP[$this1_i_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i7_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  31774.         HEAP[$X_addr_i_i_i_i_i] = 111704;
  31775.         HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  31776.       } else {
  31777.         HEAP[$retval_i_i_i] = (HEAP[$i_addr_i4_i_i] << 1) + $this1_i5_i_i40 + 2 | 0;
  31778.       }
  31779.       var $95 = HEAP[$retval_i_i_i];
  31780.       HEAP[$base_addr_i_i_i18] = $ref_tmp10_i_i;
  31781.       HEAP[$offset_addr_i_i_i19] = $95;
  31782.       var $101 = HEAP[HEAP[$base_addr_i_i_i18]];
  31783.       HEAP[$this_addr_i_i_i_i15] = HEAP[$offset_addr_i_i_i19];
  31784.       HEAP[$base_addr_i_i_i_i16] = $101;
  31785.       HEAP[$this_addr_i_i_i_i_i13] = HEAP[$this_addr_i_i_i_i15];
  31786.       HEAP[$this_addr_i_i_i_i_i_i12] = HEAP[$this_addr_i_i_i_i_i13] | 0;
  31787.       var $this1_i_i_i_i_i_i46 = HEAP[$this_addr_i_i_i_i_i_i12];
  31788.       var $conv_i_i_i_i56 = ((HEAP[$this1_i_i_i_i_i_i46 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i46 + 1 | 0] & 255) & 65535;
  31789.       HEAP[$offset_i_i_i_i17] = $conv_i_i_i_i56;
  31790.       if (($conv_i_i_i_i56 | 0) != 0) {
  31791.         var $118 = HEAP[$offset_i_i_i_i17];
  31792.         HEAP[$P_addr_i_i_i_i_i10] = HEAP[$base_addr_i_i_i_i16];
  31793.         HEAP[$offset_addr_i_i_i_i_i11] = $118;
  31794.         HEAP[$retval_i_i_i_i14] = HEAP[$P_addr_i_i_i_i_i10] + HEAP[$offset_addr_i_i_i_i_i11] | 0;
  31795.       } else {
  31796.         HEAP[$X_addr_i_i_i_i_i_i9] = 111704;
  31797.         HEAP[$retval_i_i_i_i14] = HEAP[$X_addr_i_i_i_i_i_i9];
  31798.       }
  31799.       HEAP[$rule_set_i_i] = HEAP[$retval_i_i_i_i14];
  31800.       var $133 = $lookup_context_i_i28;
  31801.       HEAP[$133] = HEAP[110728];
  31802.       HEAP[$133 + 1] = HEAP[110729];
  31803.       HEAP[$133 + 2] = HEAP[110730];
  31804.       HEAP[$133 + 3] = HEAP[110731];
  31805.       HEAP[$133 + 4] = HEAP[110732];
  31806.       HEAP[$133 + 5] = HEAP[110733];
  31807.       HEAP[$133 + 6] = HEAP[110734];
  31808.       HEAP[$133 + 7] = HEAP[110735];
  31809.       var $tobool_i_i_i62 = __ZNK2OT7RuleSet5applyEPNS_18hb_apply_context_tERNS_25ContextApplyLookupContextE(HEAP[$rule_set_i_i], HEAP[$c_addr_i_i25], $lookup_context_i_i28) & 1;
  31810.       HEAP[$retval_i_i23] = $tobool_i_i_i62;
  31811.     }
  31812.     $retval = HEAP[$retval_i_i23] & 1;
  31813.     var $486 = $retval;
  31814.     STACKTOP = __stackBase__;
  31815.     return $486;
  31816.   } else if (($conv | 0) == 2) {
  31817.     HEAP[$this_addr_i94] = $c_addr;
  31818.     HEAP[$obj_addr_i95] = $this1 | 0;
  31819.     var $this1_i96 = HEAP[$this_addr_i94];
  31820.     HEAP[$this_addr_i_i87] = HEAP[$obj_addr_i95];
  31821.     HEAP[$c_addr_i_i88] = $this1_i96;
  31822.     var $this1_i_i97 = HEAP[$this_addr_i_i87];
  31823.     HEAP[$this_addr_i_i_i83] = HEAP[HEAP[$c_addr_i_i88] + 12 | 0];
  31824.     HEAP[$i_addr_i_i_i84] = 0;
  31825.     HEAP[$ref_tmp_i_i90] = $this1_i_i97;
  31826.     HEAP[$base_addr_i57_i_i] = $ref_tmp_i_i90;
  31827.     HEAP[$offset_addr_i58_i_i] = $this1_i_i97 + 2 | 0;
  31828.     var $175 = HEAP[HEAP[$base_addr_i57_i_i]];
  31829.     HEAP[$this_addr_i_i54_i_i] = HEAP[$offset_addr_i58_i_i];
  31830.     HEAP[$base_addr_i_i55_i_i] = $175;
  31831.     HEAP[$this_addr_i_i_i52_i_i] = HEAP[$this_addr_i_i54_i_i];
  31832.     HEAP[$this_addr_i_i_i_i51_i_i] = HEAP[$this_addr_i_i_i52_i_i] | 0;
  31833.     var $this1_i_i_i_i62_i_i = HEAP[$this_addr_i_i_i_i51_i_i];
  31834.     HEAP[$offset_i_i56_i_i] = ((HEAP[$this1_i_i_i_i62_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i62_i_i + 1 | 0] & 255) & 65535;
  31835.     if ((HEAP[$offset_i_i56_i_i] | 0) != 0) {
  31836.       var $193 = HEAP[$offset_i_i56_i_i];
  31837.       HEAP[$P_addr_i_i_i49_i_i] = HEAP[$base_addr_i_i55_i_i];
  31838.       HEAP[$offset_addr_i_i_i50_i_i] = $193;
  31839.       HEAP[$retval_i_i53_i_i] = HEAP[$P_addr_i_i_i49_i_i] + HEAP[$offset_addr_i_i_i50_i_i] | 0;
  31840.     } else {
  31841.       HEAP[$X_addr_i_i_i_i48_i_i] = 111704;
  31842.       HEAP[$retval_i_i53_i_i] = HEAP[$X_addr_i_i_i_i48_i_i];
  31843.     }
  31844.     var $201 = HEAP[$retval_i_i53_i_i];
  31845.     HEAP[$this_addr_i77_i_i] = HEAP[HEAP[$c_addr_i_i88] + 12 | 0];
  31846.     HEAP[$i_addr_i78_i_i] = 0;
  31847.     var $this1_i79_i_i = HEAP[$this_addr_i77_i_i];
  31848.     var $call8_i_i102 = __ZNK2OT8Coverage12get_coverageEj($201, HEAP[HEAP[$this1_i79_i_i + 96 | 0] + ((HEAP[$i_addr_i78_i_i] + HEAP[$this1_i79_i_i + 80 | 0]) * 20 & -1) | 0]);
  31849.     HEAP[$index_i_i89] = $call8_i_i102;
  31850.     if (($call8_i_i102 | 0) == -1) {
  31851.       HEAP[$retval_i_i86] = 0;
  31852.     } else {
  31853.       HEAP[$ref_tmp10_i_i91] = $this1_i_i97;
  31854.       HEAP[$base_addr_i26_i_i] = $ref_tmp10_i_i91;
  31855.       HEAP[$offset_addr_i27_i_i] = $this1_i_i97 + 4 | 0;
  31856.       var $225 = HEAP[HEAP[$base_addr_i26_i_i]];
  31857.       HEAP[$this_addr_i_i23_i_i] = HEAP[$offset_addr_i27_i_i];
  31858.       HEAP[$base_addr_i_i24_i_i] = $225;
  31859.       HEAP[$this_addr_i_i_i21_i_i] = HEAP[$this_addr_i_i23_i_i];
  31860.       HEAP[$this_addr_i_i_i_i20_i_i] = HEAP[$this_addr_i_i_i21_i_i] | 0;
  31861.       var $this1_i_i_i_i31_i_i = HEAP[$this_addr_i_i_i_i20_i_i];
  31862.       HEAP[$offset_i_i25_i_i] = ((HEAP[$this1_i_i_i_i31_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i31_i_i + 1 | 0] & 255) & 65535;
  31863.       if ((HEAP[$offset_i_i25_i_i] | 0) != 0) {
  31864.         var $243 = HEAP[$offset_i_i25_i_i];
  31865.         HEAP[$P_addr_i_i_i18_i_i] = HEAP[$base_addr_i_i24_i_i];
  31866.         HEAP[$offset_addr_i_i_i19_i_i] = $243;
  31867.         HEAP[$retval_i_i22_i_i] = HEAP[$P_addr_i_i_i18_i_i] + HEAP[$offset_addr_i_i_i19_i_i] | 0;
  31868.       } else {
  31869.         HEAP[$X_addr_i_i_i_i17_i_i] = 111704;
  31870.         HEAP[$retval_i_i22_i_i] = HEAP[$X_addr_i_i_i_i17_i_i];
  31871.       }
  31872.       HEAP[$class_def_i_i] = HEAP[$retval_i_i22_i_i];
  31873.       var $258 = HEAP[$class_def_i_i];
  31874.       HEAP[$this_addr_i10_i_i] = HEAP[HEAP[$c_addr_i_i88] + 12 | 0];
  31875.       HEAP[$i_addr_i11_i_i] = 0;
  31876.       var $this1_i12_i_i = HEAP[$this_addr_i10_i_i];
  31877.       var $call15_i_i = __ZNK2OT8ClassDef9get_classEj($258, HEAP[HEAP[$this1_i12_i_i + 96 | 0] + ((HEAP[$i_addr_i11_i_i] + HEAP[$this1_i12_i_i + 80 | 0]) * 20 & -1) | 0]);
  31878.       HEAP[$index_i_i89] = $call15_i_i;
  31879.       HEAP[$ref_tmp16_i_i] = $this1_i_i97;
  31880.       var $270 = HEAP[$index_i_i89];
  31881.       HEAP[$this_addr_i3_i_i70] = $this1_i_i97 + 6 | 0;
  31882.       HEAP[$i_addr_i4_i_i71] = $270;
  31883.       var $this1_i5_i_i107 = HEAP[$this_addr_i3_i_i70];
  31884.       var $274 = HEAP[$i_addr_i4_i_i71];
  31885.       HEAP[$this_addr_i_i2_i_i68] = $this1_i5_i_i107 | 0;
  31886.       HEAP[$this_addr_i_i_i1_i_i67] = HEAP[$this_addr_i_i2_i_i68] | 0;
  31887.       var $this1_i_i_i7_i_i111 = HEAP[$this_addr_i_i_i1_i_i67];
  31888.       if ($274 >>> 0 >= (((HEAP[$this1_i_i_i7_i_i111 | 0] & 255) << 8) + (HEAP[$this1_i_i_i7_i_i111 + 1 | 0] & 255) & 65535) >>> 0) {
  31889.         HEAP[$X_addr_i_i_i_i_i66] = 111704;
  31890.         HEAP[$retval_i_i_i69] = HEAP[$X_addr_i_i_i_i_i66];
  31891.       } else {
  31892.         HEAP[$retval_i_i_i69] = (HEAP[$i_addr_i4_i_i71] << 1) + $this1_i5_i_i107 + 2 | 0;
  31893.       }
  31894.       var $290 = HEAP[$retval_i_i_i69];
  31895.       HEAP[$base_addr_i_i_i81] = $ref_tmp16_i_i;
  31896.       HEAP[$offset_addr_i_i_i82] = $290;
  31897.       var $296 = HEAP[HEAP[$base_addr_i_i_i81]];
  31898.       HEAP[$this_addr_i_i_i_i78] = HEAP[$offset_addr_i_i_i82];
  31899.       HEAP[$base_addr_i_i_i_i79] = $296;
  31900.       HEAP[$this_addr_i_i_i_i_i76] = HEAP[$this_addr_i_i_i_i78];
  31901.       HEAP[$this_addr_i_i_i_i_i_i75] = HEAP[$this_addr_i_i_i_i_i76] | 0;
  31902.       var $this1_i_i_i_i_i_i130 = HEAP[$this_addr_i_i_i_i_i_i75];
  31903.       var $conv_i_i_i_i140 = ((HEAP[$this1_i_i_i_i_i_i130 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i130 + 1 | 0] & 255) & 65535;
  31904.       HEAP[$offset_i_i_i_i80] = $conv_i_i_i_i140;
  31905.       if (($conv_i_i_i_i140 | 0) != 0) {
  31906.         var $313 = HEAP[$offset_i_i_i_i80];
  31907.         HEAP[$P_addr_i_i_i_i_i73] = HEAP[$base_addr_i_i_i_i79];
  31908.         HEAP[$offset_addr_i_i_i_i_i74] = $313;
  31909.         HEAP[$retval_i_i_i_i77] = HEAP[$P_addr_i_i_i_i_i73] + HEAP[$offset_addr_i_i_i_i_i74] | 0;
  31910.       } else {
  31911.         HEAP[$X_addr_i_i_i_i_i_i72] = 111704;
  31912.         HEAP[$retval_i_i_i_i77] = HEAP[$X_addr_i_i_i_i_i_i72];
  31913.       }
  31914.       HEAP[$rule_set_i_i92] = HEAP[$retval_i_i_i_i77];
  31915.       HEAP[$lookup_context_i_i93 | 0] = 176;
  31916.       HEAP[$lookup_context_i_i93 + 4 | 0] = HEAP[$class_def_i_i];
  31917.       var $tobool_i_i_i150 = __ZNK2OT7RuleSet5applyEPNS_18hb_apply_context_tERNS_25ContextApplyLookupContextE(HEAP[$rule_set_i_i92], HEAP[$c_addr_i_i88], $lookup_context_i_i93) & 1;
  31918.       HEAP[$retval_i_i86] = $tobool_i_i_i150;
  31919.     }
  31920.     $retval = HEAP[$retval_i_i86] & 1;
  31921.     var $486 = $retval;
  31922.     STACKTOP = __stackBase__;
  31923.     return $486;
  31924.   } else if (($conv | 0) == 3) {
  31925.     HEAP[$this_addr_i] = $c_addr;
  31926.     HEAP[$obj_addr_i] = $this1 | 0;
  31927.     var $this1_i = HEAP[$this_addr_i];
  31928.     HEAP[$this_addr_i_i] = HEAP[$obj_addr_i];
  31929.     HEAP[$c_addr_i_i] = $this1_i;
  31930.     var $this1_i_i = HEAP[$this_addr_i_i];
  31931.     HEAP[$this_addr_i_i_i] = HEAP[HEAP[$c_addr_i_i] + 12 | 0];
  31932.     HEAP[$i_addr_i_i_i] = 0;
  31933.     HEAP[$ref_tmp_i_i] = $this1_i_i;
  31934.     HEAP[$base_addr_i_i_i] = $ref_tmp_i_i;
  31935.     HEAP[$offset_addr_i34_i_i] = $this1_i_i + 6 | 0;
  31936.     var $370 = HEAP[HEAP[$base_addr_i_i_i]];
  31937.     HEAP[$this_addr_i_i33_i_i] = HEAP[$offset_addr_i34_i_i];
  31938.     HEAP[$base_addr_i_i_i_i] = $370;
  31939.     HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i33_i_i];
  31940.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  31941.     var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  31942.     HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  31943.     if ((HEAP[$offset_i_i_i_i] | 0) != 0) {
  31944.       var $388 = HEAP[$offset_i_i_i_i];
  31945.       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  31946.       HEAP[$offset_addr_i_i_i_i_i] = $388;
  31947.       HEAP[$retval_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  31948.     } else {
  31949.       HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  31950.       HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  31951.     }
  31952.     var $396 = HEAP[$retval_i_i_i_i];
  31953.     HEAP[$this_addr_i37_i_i] = HEAP[HEAP[$c_addr_i_i] + 12 | 0];
  31954.     HEAP[$i_addr_i38_i_i] = 0;
  31955.     var $this1_i39_i_i = HEAP[$this_addr_i37_i_i];
  31956.     var $call8_i_i = __ZNK2OT8Coverage12get_coverageEj($396, HEAP[HEAP[$this1_i39_i_i + 96 | 0] + ((HEAP[$i_addr_i38_i_i] + HEAP[$this1_i39_i_i + 80 | 0]) * 20 & -1) | 0]);
  31957.     HEAP[$index_i_i] = $call8_i_i;
  31958.     if (($call8_i_i | 0) == -1) {
  31959.       HEAP[$retval_i_i] = 0;
  31960.     } else {
  31961.       HEAP[$this_addr_i18_i_i] = $this1_i_i + 2 | 0;
  31962.       HEAP[$this_addr_i_i17_i_i] = HEAP[$this_addr_i18_i_i] | 0;
  31963.       var $this1_i_i21_i_i = HEAP[$this_addr_i_i17_i_i];
  31964.       var $mul_i_i = (((HEAP[$this1_i_i21_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i_i + 1 | 0] & 255) & 65535) << 1;
  31965.       HEAP[$P_addr_i_i_i] = $this1_i_i + 6 | 0;
  31966.       HEAP[$offset_addr_i_i_i] = $mul_i_i;
  31967.       HEAP[$lookupRecord_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  31968.       HEAP[$lookup_context_i_i | 0] = 114;
  31969.       HEAP[$lookup_context_i_i + 4 | 0] = $this1_i_i;
  31970.       var $429 = HEAP[$c_addr_i_i];
  31971.       HEAP[$this_addr_i4_i_i] = $this1_i_i + 2 | 0;
  31972.       HEAP[$this_addr_i_i3_i_i] = HEAP[$this_addr_i4_i_i] | 0;
  31973.       var $this1_i_i7_i_i = HEAP[$this_addr_i_i3_i_i];
  31974.       var $conv17_i_i = ((HEAP[$this1_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i + 1 | 0] & 255) & 65535;
  31975.       HEAP[$this_addr_i1_i_i] = $this1_i_i + 4 | 0;
  31976.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  31977.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  31978.       var $conv21_i_i = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  31979.       var $443 = HEAP[$lookupRecord_i_i];
  31980.       HEAP[$c_addr_i_i_i] = $429;
  31981.       HEAP[$inputCount_addr_i_i_i] = $conv17_i_i;
  31982.       HEAP[$input_addr_i_i_i] = $this1_i_i + 8 | 0;
  31983.       HEAP[$lookupCount_addr_i_i_i] = $conv21_i_i;
  31984.       HEAP[$lookupRecord_addr_i_i_i] = $443;
  31985.       HEAP[$lookup_context_addr_i_i_i] = $lookup_context_i_i;
  31986.       if (__ZN2OTL11match_inputEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_PjPbSB_(HEAP[$c_addr_i_i_i], HEAP[$inputCount_addr_i_i_i], HEAP[$input_addr_i_i_i], HEAP[HEAP[$lookup_context_addr_i_i_i] | 0], HEAP[HEAP[$lookup_context_addr_i_i_i] + 4 | 0], 0, 0, 0)) {
  31987.         var $466 = __ZN2OTL12apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_jPKNS_12LookupRecordE(HEAP[$c_addr_i_i_i], HEAP[$inputCount_addr_i_i_i], HEAP[$input_addr_i_i_i], HEAP[HEAP[$lookup_context_addr_i_i_i] | 0], HEAP[HEAP[$lookup_context_addr_i_i_i] + 4 | 0], HEAP[$lookupCount_addr_i_i_i], HEAP[$lookupRecord_addr_i_i_i]);
  31988.       } else {
  31989.         var $466 = 0;
  31990.       }
  31991.       var $466;
  31992.       HEAP[$retval_i_i] = $466 & 1;
  31993.     }
  31994.     $retval = HEAP[$retval_i_i] & 1;
  31995.     var $486 = $retval;
  31996.     STACKTOP = __stackBase__;
  31997.     return $486;
  31998.   } else {
  31999.     $retval = 0;
  32000.     var $486 = $retval;
  32001.     STACKTOP = __stackBase__;
  32002.     return $486;
  32003.   }
  32004. }
  32005. function __ZNK2OT12ChainContext8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_($this, $c) {
  32006.   var __stackBase__ = STACKTOP;
  32007.   STACKTOP = STACKTOP + 767 | 0;
  32008.   var $X_addr_i_i_i_i19_i_i = __stackBase__;
  32009.   var $P_addr_i_i_i20_i_i = __stackBase__ + 4;
  32010.   var $offset_addr_i_i_i21_i_i = __stackBase__ + 8;
  32011.   var $this_addr_i_i_i_i22_i_i = __stackBase__ + 12;
  32012.   var $this_addr_i_i_i23_i_i = __stackBase__ + 16;
  32013.   var $retval_i_i24_i_i = __stackBase__ + 20;
  32014.   var $this_addr_i_i25_i_i = __stackBase__ + 24;
  32015.   var $base_addr_i_i26_i_i = __stackBase__ + 28;
  32016.   var $offset_i_i27_i_i = __stackBase__ + 32;
  32017.   var $base_addr_i28_i_i = __stackBase__ + 36;
  32018.   var $offset_addr_i29_i_i = __stackBase__ + 40;
  32019.   var $this_addr_i12_i_i = __stackBase__ + 44;
  32020.   var $i_addr_i13_i_i = __stackBase__ + 48;
  32021.   var $X_addr_i_i_i_i_i84 = __stackBase__ + 52;
  32022.   var $this_addr_i_i_i1_i_i85 = __stackBase__ + 56;
  32023.   var $this_addr_i_i2_i_i86 = __stackBase__ + 60;
  32024.   var $retval_i_i_i87 = __stackBase__ + 64;
  32025.   var $this_addr_i3_i_i88 = __stackBase__ + 68;
  32026.   var $i_addr_i4_i_i89 = __stackBase__ + 72;
  32027.   var $X_addr_i_i_i_i_i_i90 = __stackBase__ + 76;
  32028.   var $P_addr_i_i_i_i_i91 = __stackBase__ + 80;
  32029.   var $offset_addr_i_i_i_i_i92 = __stackBase__ + 84;
  32030.   var $this_addr_i_i_i_i_i_i93 = __stackBase__ + 88;
  32031.   var $this_addr_i_i_i_i_i94 = __stackBase__ + 92;
  32032.   var $retval_i_i_i_i95 = __stackBase__ + 96;
  32033.   var $this_addr_i_i_i_i96 = __stackBase__ + 100;
  32034.   var $base_addr_i_i_i_i97 = __stackBase__ + 104;
  32035.   var $offset_i_i_i_i98 = __stackBase__ + 108;
  32036.   var $base_addr_i_i_i99 = __stackBase__ + 112;
  32037.   var $offset_addr_i_i_i100 = __stackBase__ + 116;
  32038.   var $retval_i_i104 = __stackBase__ + 128;
  32039.   var $this_addr_i_i105 = __stackBase__ + 129;
  32040.   var $c_addr_i_i106 = __stackBase__ + 133;
  32041.   var $index_i_i107 = __stackBase__ + 137;
  32042.   var $ref_tmp_i_i108 = __stackBase__ + 141;
  32043.   var $rule_set_i_i109 = __stackBase__ + 145;
  32044.   var $ref_tmp10_i_i110 = __stackBase__ + 149;
  32045.   var $lookup_context_i_i111 = __stackBase__ + 153;
  32046.   var $this_addr_i112 = __stackBase__ + 169;
  32047.   var $obj_addr_i113 = __stackBase__ + 173;
  32048.   var $this_addr_i137_i_i = __stackBase__ + 177;
  32049.   var $i_addr_i138_i_i = __stackBase__ + 181;
  32050.   var $X_addr_i_i_i_i108_i_i = __stackBase__ + 185;
  32051.   var $P_addr_i_i_i109_i_i = __stackBase__ + 189;
  32052.   var $offset_addr_i_i_i110_i_i = __stackBase__ + 193;
  32053.   var $this_addr_i_i_i_i111_i_i11 = __stackBase__ + 197;
  32054.   var $this_addr_i_i_i112_i_i12 = __stackBase__ + 201;
  32055.   var $retval_i_i113_i_i = __stackBase__ + 205;
  32056.   var $this_addr_i_i114_i_i = __stackBase__ + 209;
  32057.   var $base_addr_i_i115_i_i = __stackBase__ + 213;
  32058.   var $offset_i_i116_i_i = __stackBase__ + 217;
  32059.   var $base_addr_i117_i_i = __stackBase__ + 221;
  32060.   var $offset_addr_i118_i_i = __stackBase__ + 225;
  32061.   var $X_addr_i_i_i_i76_i_i = __stackBase__ + 229;
  32062.   var $P_addr_i_i_i77_i_i = __stackBase__ + 233;
  32063.   var $offset_addr_i_i_i78_i_i = __stackBase__ + 237;
  32064.   var $this_addr_i_i_i_i79_i_i = __stackBase__ + 241;
  32065.   var $this_addr_i_i_i80_i_i = __stackBase__ + 245;
  32066.   var $retval_i_i81_i_i = __stackBase__ + 249;
  32067.   var $this_addr_i_i82_i_i = __stackBase__ + 253;
  32068.   var $base_addr_i_i83_i_i = __stackBase__ + 257;
  32069.   var $offset_i_i84_i_i = __stackBase__ + 261;
  32070.   var $base_addr_i85_i_i = __stackBase__ + 265;
  32071.   var $offset_addr_i86_i_i = __stackBase__ + 269;
  32072.   var $X_addr_i_i_i_i46_i_i = __stackBase__ + 273;
  32073.   var $P_addr_i_i_i47_i_i = __stackBase__ + 277;
  32074.   var $offset_addr_i_i_i48_i_i = __stackBase__ + 281;
  32075.   var $this_addr_i_i_i_i49_i_i = __stackBase__ + 285;
  32076.   var $this_addr_i_i_i50_i_i = __stackBase__ + 289;
  32077.   var $retval_i_i51_i_i = __stackBase__ + 293;
  32078.   var $this_addr_i_i52_i_i = __stackBase__ + 297;
  32079.   var $base_addr_i_i53_i_i = __stackBase__ + 301;
  32080.   var $offset_i_i54_i_i = __stackBase__ + 305;
  32081.   var $base_addr_i55_i_i = __stackBase__ + 309;
  32082.   var $offset_addr_i56_i_i = __stackBase__ + 313;
  32083.   var $X_addr_i_i_i_i17_i_i = __stackBase__ + 317;
  32084.   var $P_addr_i_i_i18_i_i = __stackBase__ + 321;
  32085.   var $offset_addr_i_i_i19_i_i = __stackBase__ + 325;
  32086.   var $this_addr_i_i_i_i20_i_i = __stackBase__ + 329;
  32087.   var $this_addr_i_i_i21_i_i = __stackBase__ + 333;
  32088.   var $retval_i_i22_i_i = __stackBase__ + 337;
  32089.   var $this_addr_i_i23_i_i = __stackBase__ + 341;
  32090.   var $base_addr_i_i24_i_i = __stackBase__ + 345;
  32091.   var $offset_i_i25_i_i = __stackBase__ + 349;
  32092.   var $base_addr_i26_i_i = __stackBase__ + 353;
  32093.   var $offset_addr_i27_i_i = __stackBase__ + 357;
  32094.   var $this_addr_i10_i_i = __stackBase__ + 361;
  32095.   var $i_addr_i11_i_i = __stackBase__ + 365;
  32096.   var $X_addr_i_i_i_i_i13 = __stackBase__ + 369;
  32097.   var $this_addr_i_i_i1_i_i = __stackBase__ + 373;
  32098.   var $this_addr_i_i2_i_i = __stackBase__ + 377;
  32099.   var $retval_i_i_i14 = __stackBase__ + 381;
  32100.   var $this_addr_i3_i_i = __stackBase__ + 385;
  32101.   var $i_addr_i4_i_i = __stackBase__ + 389;
  32102.   var $X_addr_i_i_i_i_i_i15 = __stackBase__ + 393;
  32103.   var $P_addr_i_i_i_i_i16 = __stackBase__ + 397;
  32104.   var $offset_addr_i_i_i_i_i17 = __stackBase__ + 401;
  32105.   var $this_addr_i_i_i_i_i_i18 = __stackBase__ + 405;
  32106.   var $this_addr_i_i_i_i_i19 = __stackBase__ + 409;
  32107.   var $retval_i_i_i_i20 = __stackBase__ + 413;
  32108.   var $this_addr_i_i_i_i21 = __stackBase__ + 417;
  32109.   var $base_addr_i_i_i_i22 = __stackBase__ + 421;
  32110.   var $offset_i_i_i_i23 = __stackBase__ + 425;
  32111.   var $base_addr_i_i_i24 = __stackBase__ + 429;
  32112.   var $offset_addr_i_i_i25 = __stackBase__ + 433;
  32113.   var $this_addr_i_i_i26 = __stackBase__ + 437;
  32114.   var $i_addr_i_i_i27 = __stackBase__ + 441;
  32115.   var $retval_i_i29 = __stackBase__ + 445;
  32116.   var $this_addr_i_i30 = __stackBase__ + 446;
  32117.   var $c_addr_i_i31 = __stackBase__ + 450;
  32118.   var $index_i_i32 = __stackBase__ + 454;
  32119.   var $ref_tmp_i_i33 = __stackBase__ + 458;
  32120.   var $backtrack_class_def_i_i = __stackBase__ + 462;
  32121.   var $ref_tmp10_i_i = __stackBase__ + 466;
  32122.   var $input_class_def_i_i = __stackBase__ + 470;
  32123.   var $ref_tmp12_i_i = __stackBase__ + 474;
  32124.   var $lookahead_class_def_i_i = __stackBase__ + 478;
  32125.   var $ref_tmp14_i_i = __stackBase__ + 482;
  32126.   var $rule_set_i_i = __stackBase__ + 486;
  32127.   var $ref_tmp20_i_i = __stackBase__ + 490;
  32128.   var $lookup_context_i_i34 = __stackBase__ + 494;
  32129.   var $this_addr_i35 = __stackBase__ + 510;
  32130.   var $obj_addr_i36 = __stackBase__ + 514;
  32131.   var $this_addr_i_i3 = __stackBase__ + 518;
  32132.   var $this_addr_i4 = __stackBase__ + 522;
  32133.   var $P_addr_i_i109_i_i = __stackBase__ + 526;
  32134.   var $offset_addr_i_i110_i_i = __stackBase__ + 530;
  32135.   var $this_addr_i_i_i_i111_i_i = __stackBase__ + 534;
  32136.   var $this_addr_i_i_i112_i_i = __stackBase__ + 538;
  32137.   var $this_addr_i_i113_i_i = __stackBase__ + 542;
  32138.   var $X_addr_i114_i_i = __stackBase__ + 546;
  32139.   var $X_addr_i_i_i_i_i = __stackBase__ + 550;
  32140.   var $this_addr_i_i_i99_i_i = __stackBase__ + 554;
  32141.   var $this_addr_i_i100_i_i = __stackBase__ + 558;
  32142.   var $retval_i_i_i = __stackBase__ + 562;
  32143.   var $this_addr_i101_i_i = __stackBase__ + 566;
  32144.   var $i_addr_i102_i_i = __stackBase__ + 570;
  32145.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 574;
  32146.   var $P_addr_i_i_i_i_i = __stackBase__ + 578;
  32147.   var $offset_addr_i_i_i_i_i = __stackBase__ + 582;
  32148.   var $this_addr_i_i_i_i82_i_i = __stackBase__ + 586;
  32149.   var $this_addr_i_i_i83_i_i = __stackBase__ + 590;
  32150.   var $retval_i_i_i_i = __stackBase__ + 594;
  32151.   var $this_addr_i_i84_i_i = __stackBase__ + 598;
  32152.   var $base_addr_i_i_i_i = __stackBase__ + 602;
  32153.   var $offset_i_i_i_i = __stackBase__ + 606;
  32154.   var $base_addr_i_i_i = __stackBase__ + 610;
  32155.   var $offset_addr_i_i_i = __stackBase__ + 614;
  32156.   var $this_addr_i75_i_i = __stackBase__ + 618;
  32157.   var $i_addr_i76_i_i = __stackBase__ + 622;
  32158.   var $P_addr_i_i49_i_i = __stackBase__ + 626;
  32159.   var $offset_addr_i_i50_i_i = __stackBase__ + 630;
  32160.   var $this_addr_i_i_i_i51_i_i = __stackBase__ + 634;
  32161.   var $this_addr_i_i_i52_i_i = __stackBase__ + 638;
  32162.   var $this_addr_i_i53_i_i = __stackBase__ + 642;
  32163.   var $X_addr_i54_i_i = __stackBase__ + 646;
  32164.   var $P_addr_i_i_i_i = __stackBase__ + 650;
  32165.   var $offset_addr_i_i_i_i = __stackBase__ + 654;
  32166.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 658;
  32167.   var $this_addr_i_i_i_i_i = __stackBase__ + 662;
  32168.   var $this_addr_i_i45_i_i = __stackBase__ + 666;
  32169.   var $X_addr_i_i_i = __stackBase__ + 670;
  32170.   var $this_addr_i_i31_i_i = __stackBase__ + 674;
  32171.   var $this_addr_i32_i_i = __stackBase__ + 678;
  32172.   var $this_addr_i_i17_i_i = __stackBase__ + 682;
  32173.   var $this_addr_i18_i_i = __stackBase__ + 686;
  32174.   var $this_addr_i_i3_i_i = __stackBase__ + 690;
  32175.   var $this_addr_i4_i_i = __stackBase__ + 694;
  32176.   var $this_addr_i_i_i_i = __stackBase__ + 698;
  32177.   var $this_addr_i1_i_i = __stackBase__ + 702;
  32178.   var $this_addr_i_i_i = __stackBase__ + 706;
  32179.   var $i_addr_i_i_i = __stackBase__ + 710;
  32180.   var $retval_i_i = __stackBase__ + 714;
  32181.   var $this_addr_i_i = __stackBase__ + 715;
  32182.   var $c_addr_i_i = __stackBase__ + 719;
  32183.   var $input_i_i = __stackBase__ + 723;
  32184.   var $index_i_i = __stackBase__ + 727;
  32185.   var $ref_tmp_i_i = __stackBase__ + 731;
  32186.   var $lookahead_i_i = __stackBase__ + 735;
  32187.   var $lookup_i_i = __stackBase__ + 739;
  32188.   var $lookup_context_i_i = __stackBase__ + 743;
  32189.   var $this_addr_i = __stackBase__ + 759;
  32190.   var $obj_addr_i = __stackBase__ + 763;
  32191.   var $retval;
  32192.   var $c_addr;
  32193.   $c_addr = $c;
  32194.   var $this1 = $this;
  32195.   HEAP[$this_addr_i4] = $this1 | 0;
  32196.   HEAP[$this_addr_i_i3] = HEAP[$this_addr_i4] | 0;
  32197.   var $this1_i_i6 = HEAP[$this_addr_i_i3];
  32198.   var $conv = ((HEAP[$this1_i_i6 | 0] & 255) << 8) + (HEAP[$this1_i_i6 + 1 | 0] & 255) & 65535;
  32199.   if (($conv | 0) == 1) {
  32200.     HEAP[$this_addr_i112] = $c_addr;
  32201.     HEAP[$obj_addr_i113] = $this1 | 0;
  32202.     var $this1_i114 = HEAP[$this_addr_i112];
  32203.     HEAP[$this_addr_i_i105] = HEAP[$obj_addr_i113];
  32204.     HEAP[$c_addr_i_i106] = $this1_i114;
  32205.     var $this1_i_i115 = HEAP[$this_addr_i_i105];
  32206.     HEAP[__stackBase__ + 120] = HEAP[HEAP[$c_addr_i_i106] + 12 | 0];
  32207.     HEAP[__stackBase__ + 124] = 0;
  32208.     HEAP[$ref_tmp_i_i108] = $this1_i_i115;
  32209.     HEAP[$base_addr_i28_i_i] = $ref_tmp_i_i108;
  32210.     HEAP[$offset_addr_i29_i_i] = $this1_i_i115 + 2 | 0;
  32211.     var $30 = HEAP[HEAP[$base_addr_i28_i_i]];
  32212.     HEAP[$this_addr_i_i25_i_i] = HEAP[$offset_addr_i29_i_i];
  32213.     HEAP[$base_addr_i_i26_i_i] = $30;
  32214.     HEAP[$this_addr_i_i_i23_i_i] = HEAP[$this_addr_i_i25_i_i];
  32215.     HEAP[$this_addr_i_i_i_i22_i_i] = HEAP[$this_addr_i_i_i23_i_i] | 0;
  32216.     var $this1_i_i_i_i33_i_i = HEAP[$this_addr_i_i_i_i22_i_i];
  32217.     HEAP[$offset_i_i27_i_i] = ((HEAP[$this1_i_i_i_i33_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i33_i_i + 1 | 0] & 255) & 65535;
  32218.     if ((HEAP[$offset_i_i27_i_i] | 0) != 0) {
  32219.       var $48 = HEAP[$offset_i_i27_i_i];
  32220.       HEAP[$P_addr_i_i_i20_i_i] = HEAP[$base_addr_i_i26_i_i];
  32221.       HEAP[$offset_addr_i_i_i21_i_i] = $48;
  32222.       HEAP[$retval_i_i24_i_i] = HEAP[$P_addr_i_i_i20_i_i] + HEAP[$offset_addr_i_i_i21_i_i] | 0;
  32223.     } else {
  32224.       HEAP[$X_addr_i_i_i_i19_i_i] = 111704;
  32225.       HEAP[$retval_i_i24_i_i] = HEAP[$X_addr_i_i_i_i19_i_i];
  32226.     }
  32227.     var $56 = HEAP[$retval_i_i24_i_i];
  32228.     HEAP[$this_addr_i12_i_i] = HEAP[HEAP[$c_addr_i_i106] + 12 | 0];
  32229.     HEAP[$i_addr_i13_i_i] = 0;
  32230.     var $this1_i14_i_i = HEAP[$this_addr_i12_i_i];
  32231.     var $call8_i_i120 = __ZNK2OT8Coverage12get_coverageEj($56, HEAP[HEAP[$this1_i14_i_i + 96 | 0] + ((HEAP[$i_addr_i13_i_i] + HEAP[$this1_i14_i_i + 80 | 0]) * 20 & -1) | 0]);
  32232.     HEAP[$index_i_i107] = $call8_i_i120;
  32233.     if (($call8_i_i120 | 0) == -1) {
  32234.       HEAP[$retval_i_i104] = 0;
  32235.     } else {
  32236.       HEAP[$ref_tmp10_i_i110] = $this1_i_i115;
  32237.       var $75 = HEAP[$index_i_i107];
  32238.       HEAP[$this_addr_i3_i_i88] = $this1_i_i115 + 4 | 0;
  32239.       HEAP[$i_addr_i4_i_i89] = $75;
  32240.       var $this1_i5_i_i124 = HEAP[$this_addr_i3_i_i88];
  32241.       var $79 = HEAP[$i_addr_i4_i_i89];
  32242.       HEAP[$this_addr_i_i2_i_i86] = $this1_i5_i_i124 | 0;
  32243.       HEAP[$this_addr_i_i_i1_i_i85] = HEAP[$this_addr_i_i2_i_i86] | 0;
  32244.       var $this1_i_i_i7_i_i128 = HEAP[$this_addr_i_i_i1_i_i85];
  32245.       if ($79 >>> 0 >= (((HEAP[$this1_i_i_i7_i_i128 | 0] & 255) << 8) + (HEAP[$this1_i_i_i7_i_i128 + 1 | 0] & 255) & 65535) >>> 0) {
  32246.         HEAP[$X_addr_i_i_i_i_i84] = 111704;
  32247.         HEAP[$retval_i_i_i87] = HEAP[$X_addr_i_i_i_i_i84];
  32248.       } else {
  32249.         HEAP[$retval_i_i_i87] = (HEAP[$i_addr_i4_i_i89] << 1) + $this1_i5_i_i124 + 2 | 0;
  32250.       }
  32251.       var $95 = HEAP[$retval_i_i_i87];
  32252.       HEAP[$base_addr_i_i_i99] = $ref_tmp10_i_i110;
  32253.       HEAP[$offset_addr_i_i_i100] = $95;
  32254.       var $101 = HEAP[HEAP[$base_addr_i_i_i99]];
  32255.       HEAP[$this_addr_i_i_i_i96] = HEAP[$offset_addr_i_i_i100];
  32256.       HEAP[$base_addr_i_i_i_i97] = $101;
  32257.       HEAP[$this_addr_i_i_i_i_i94] = HEAP[$this_addr_i_i_i_i96];
  32258.       HEAP[$this_addr_i_i_i_i_i_i93] = HEAP[$this_addr_i_i_i_i_i94] | 0;
  32259.       var $this1_i_i_i_i_i_i148 = HEAP[$this_addr_i_i_i_i_i_i93];
  32260.       var $conv_i_i_i_i158 = ((HEAP[$this1_i_i_i_i_i_i148 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i148 + 1 | 0] & 255) & 65535;
  32261.       HEAP[$offset_i_i_i_i98] = $conv_i_i_i_i158;
  32262.       if (($conv_i_i_i_i158 | 0) != 0) {
  32263.         var $118 = HEAP[$offset_i_i_i_i98];
  32264.         HEAP[$P_addr_i_i_i_i_i91] = HEAP[$base_addr_i_i_i_i97];
  32265.         HEAP[$offset_addr_i_i_i_i_i92] = $118;
  32266.         HEAP[$retval_i_i_i_i95] = HEAP[$P_addr_i_i_i_i_i91] + HEAP[$offset_addr_i_i_i_i_i92] | 0;
  32267.       } else {
  32268.         HEAP[$X_addr_i_i_i_i_i_i90] = 111704;
  32269.         HEAP[$retval_i_i_i_i95] = HEAP[$X_addr_i_i_i_i_i_i90];
  32270.       }
  32271.       HEAP[$rule_set_i_i109] = HEAP[$retval_i_i_i_i95];
  32272.       var $133 = $lookup_context_i_i111;
  32273.       for (var $$src = 110712, $$dest = $133, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  32274.         HEAP[$$dest] = HEAP[$$src];
  32275.       }
  32276.       var $tobool_i_i_i165 = __ZNK2OT12ChainRuleSet5applyEPNS_18hb_apply_context_tERNS_30ChainContextApplyLookupContextE(HEAP[$rule_set_i_i109], HEAP[$c_addr_i_i106], $lookup_context_i_i111) & 1;
  32277.       HEAP[$retval_i_i104] = $tobool_i_i_i165;
  32278.     }
  32279.     $retval = HEAP[$retval_i_i104] & 1;
  32280.     var $649 = $retval;
  32281.     STACKTOP = __stackBase__;
  32282.     return $649;
  32283.   } else if (($conv | 0) == 2) {
  32284.     HEAP[$this_addr_i35] = $c_addr;
  32285.     HEAP[$obj_addr_i36] = $this1 | 0;
  32286.     var $this1_i37 = HEAP[$this_addr_i35];
  32287.     HEAP[$this_addr_i_i30] = HEAP[$obj_addr_i36];
  32288.     HEAP[$c_addr_i_i31] = $this1_i37;
  32289.     var $this1_i_i38 = HEAP[$this_addr_i_i30];
  32290.     HEAP[$this_addr_i_i_i26] = HEAP[HEAP[$c_addr_i_i31] + 12 | 0];
  32291.     HEAP[$i_addr_i_i_i27] = 0;
  32292.     HEAP[$ref_tmp_i_i33] = $this1_i_i38;
  32293.     HEAP[$base_addr_i117_i_i] = $ref_tmp_i_i33;
  32294.     HEAP[$offset_addr_i118_i_i] = $this1_i_i38 + 2 | 0;
  32295.     var $179 = HEAP[HEAP[$base_addr_i117_i_i]];
  32296.     HEAP[$this_addr_i_i114_i_i] = HEAP[$offset_addr_i118_i_i];
  32297.     HEAP[$base_addr_i_i115_i_i] = $179;
  32298.     HEAP[$this_addr_i_i_i112_i_i12] = HEAP[$this_addr_i_i114_i_i];
  32299.     HEAP[$this_addr_i_i_i_i111_i_i11] = HEAP[$this_addr_i_i_i112_i_i12] | 0;
  32300.     var $this1_i_i_i_i122_i_i = HEAP[$this_addr_i_i_i_i111_i_i11];
  32301.     HEAP[$offset_i_i116_i_i] = ((HEAP[$this1_i_i_i_i122_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i122_i_i + 1 | 0] & 255) & 65535;
  32302.     if ((HEAP[$offset_i_i116_i_i] | 0) != 0) {
  32303.       var $197 = HEAP[$offset_i_i116_i_i];
  32304.       HEAP[$P_addr_i_i_i109_i_i] = HEAP[$base_addr_i_i115_i_i];
  32305.       HEAP[$offset_addr_i_i_i110_i_i] = $197;
  32306.       HEAP[$retval_i_i113_i_i] = HEAP[$P_addr_i_i_i109_i_i] + HEAP[$offset_addr_i_i_i110_i_i] | 0;
  32307.     } else {
  32308.       HEAP[$X_addr_i_i_i_i108_i_i] = 111704;
  32309.       HEAP[$retval_i_i113_i_i] = HEAP[$X_addr_i_i_i_i108_i_i];
  32310.     }
  32311.     var $205 = HEAP[$retval_i_i113_i_i];
  32312.     HEAP[$this_addr_i137_i_i] = HEAP[HEAP[$c_addr_i_i31] + 12 | 0];
  32313.     HEAP[$i_addr_i138_i_i] = 0;
  32314.     var $this1_i139_i_i = HEAP[$this_addr_i137_i_i];
  32315.     var $call8_i_i = __ZNK2OT8Coverage12get_coverageEj($205, HEAP[HEAP[$this1_i139_i_i + 96 | 0] + ((HEAP[$i_addr_i138_i_i] + HEAP[$this1_i139_i_i + 80 | 0]) * 20 & -1) | 0]);
  32316.     HEAP[$index_i_i32] = $call8_i_i;
  32317.     if (($call8_i_i | 0) == -1) {
  32318.       HEAP[$retval_i_i29] = 0;
  32319.     } else {
  32320.       HEAP[$ref_tmp10_i_i] = $this1_i_i38;
  32321.       HEAP[$base_addr_i85_i_i] = $ref_tmp10_i_i;
  32322.       HEAP[$offset_addr_i86_i_i] = $this1_i_i38 + 4 | 0;
  32323.       var $229 = HEAP[HEAP[$base_addr_i85_i_i]];
  32324.       HEAP[$this_addr_i_i82_i_i] = HEAP[$offset_addr_i86_i_i];
  32325.       HEAP[$base_addr_i_i83_i_i] = $229;
  32326.       HEAP[$this_addr_i_i_i80_i_i] = HEAP[$this_addr_i_i82_i_i];
  32327.       HEAP[$this_addr_i_i_i_i79_i_i] = HEAP[$this_addr_i_i_i80_i_i] | 0;
  32328.       var $this1_i_i_i_i90_i_i = HEAP[$this_addr_i_i_i_i79_i_i];
  32329.       HEAP[$offset_i_i84_i_i] = ((HEAP[$this1_i_i_i_i90_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i90_i_i + 1 | 0] & 255) & 65535;
  32330.       if ((HEAP[$offset_i_i84_i_i] | 0) != 0) {
  32331.         var $247 = HEAP[$offset_i_i84_i_i];
  32332.         HEAP[$P_addr_i_i_i77_i_i] = HEAP[$base_addr_i_i83_i_i];
  32333.         HEAP[$offset_addr_i_i_i78_i_i] = $247;
  32334.         HEAP[$retval_i_i81_i_i] = HEAP[$P_addr_i_i_i77_i_i] + HEAP[$offset_addr_i_i_i78_i_i] | 0;
  32335.       } else {
  32336.         HEAP[$X_addr_i_i_i_i76_i_i] = 111704;
  32337.         HEAP[$retval_i_i81_i_i] = HEAP[$X_addr_i_i_i_i76_i_i];
  32338.       }
  32339.       HEAP[$backtrack_class_def_i_i] = HEAP[$retval_i_i81_i_i];
  32340.       HEAP[$ref_tmp12_i_i] = $this1_i_i38;
  32341.       HEAP[$base_addr_i55_i_i] = $ref_tmp12_i_i;
  32342.       HEAP[$offset_addr_i56_i_i] = $this1_i_i38 + 6 | 0;
  32343.       var $268 = HEAP[HEAP[$base_addr_i55_i_i]];
  32344.       HEAP[$this_addr_i_i52_i_i] = HEAP[$offset_addr_i56_i_i];
  32345.       HEAP[$base_addr_i_i53_i_i] = $268;
  32346.       HEAP[$this_addr_i_i_i50_i_i] = HEAP[$this_addr_i_i52_i_i];
  32347.       HEAP[$this_addr_i_i_i_i49_i_i] = HEAP[$this_addr_i_i_i50_i_i] | 0;
  32348.       var $this1_i_i_i_i60_i_i = HEAP[$this_addr_i_i_i_i49_i_i];
  32349.       var $conv_i_i70_i_i = ((HEAP[$this1_i_i_i_i60_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i60_i_i + 1 | 0] & 255) & 65535;
  32350.       HEAP[$offset_i_i54_i_i] = $conv_i_i70_i_i;
  32351.       if (($conv_i_i70_i_i | 0) != 0) {
  32352.         var $285 = HEAP[$offset_i_i54_i_i];
  32353.         HEAP[$P_addr_i_i_i47_i_i] = HEAP[$base_addr_i_i53_i_i];
  32354.         HEAP[$offset_addr_i_i_i48_i_i] = $285;
  32355.         HEAP[$retval_i_i51_i_i] = HEAP[$P_addr_i_i_i47_i_i] + HEAP[$offset_addr_i_i_i48_i_i] | 0;
  32356.       } else {
  32357.         HEAP[$X_addr_i_i_i_i46_i_i] = 111704;
  32358.         HEAP[$retval_i_i51_i_i] = HEAP[$X_addr_i_i_i_i46_i_i];
  32359.       }
  32360.       HEAP[$input_class_def_i_i] = HEAP[$retval_i_i51_i_i];
  32361.       HEAP[$ref_tmp14_i_i] = $this1_i_i38;
  32362.       HEAP[$base_addr_i26_i_i] = $ref_tmp14_i_i;
  32363.       HEAP[$offset_addr_i27_i_i] = $this1_i_i38 + 8 | 0;
  32364.       var $306 = HEAP[HEAP[$base_addr_i26_i_i]];
  32365.       HEAP[$this_addr_i_i23_i_i] = HEAP[$offset_addr_i27_i_i];
  32366.       HEAP[$base_addr_i_i24_i_i] = $306;
  32367.       HEAP[$this_addr_i_i_i21_i_i] = HEAP[$this_addr_i_i23_i_i];
  32368.       HEAP[$this_addr_i_i_i_i20_i_i] = HEAP[$this_addr_i_i_i21_i_i] | 0;
  32369.       var $this1_i_i_i_i31_i_i = HEAP[$this_addr_i_i_i_i20_i_i];
  32370.       var $conv_i_i41_i_i = ((HEAP[$this1_i_i_i_i31_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i31_i_i + 1 | 0] & 255) & 65535;
  32371.       HEAP[$offset_i_i25_i_i] = $conv_i_i41_i_i;
  32372.       if (($conv_i_i41_i_i | 0) != 0) {
  32373.         var $323 = HEAP[$offset_i_i25_i_i];
  32374.         HEAP[$P_addr_i_i_i18_i_i] = HEAP[$base_addr_i_i24_i_i];
  32375.         HEAP[$offset_addr_i_i_i19_i_i] = $323;
  32376.         HEAP[$retval_i_i22_i_i] = HEAP[$P_addr_i_i_i18_i_i] + HEAP[$offset_addr_i_i_i19_i_i] | 0;
  32377.       } else {
  32378.         HEAP[$X_addr_i_i_i_i17_i_i] = 111704;
  32379.         HEAP[$retval_i_i22_i_i] = HEAP[$X_addr_i_i_i_i17_i_i];
  32380.       }
  32381.       HEAP[$lookahead_class_def_i_i] = HEAP[$retval_i_i22_i_i];
  32382.       var $338 = HEAP[$input_class_def_i_i];
  32383.       HEAP[$this_addr_i10_i_i] = HEAP[HEAP[$c_addr_i_i31] + 12 | 0];
  32384.       HEAP[$i_addr_i11_i_i] = 0;
  32385.       var $this1_i12_i_i = HEAP[$this_addr_i10_i_i];
  32386.       var $call19_i_i = __ZNK2OT8ClassDef9get_classEj($338, HEAP[HEAP[$this1_i12_i_i + 96 | 0] + ((HEAP[$i_addr_i11_i_i] + HEAP[$this1_i12_i_i + 80 | 0]) * 20 & -1) | 0]);
  32387.       HEAP[$index_i_i32] = $call19_i_i;
  32388.       HEAP[$ref_tmp20_i_i] = $this1_i_i38;
  32389.       var $350 = HEAP[$index_i_i32];
  32390.       HEAP[$this_addr_i3_i_i] = $this1_i_i38 + 10 | 0;
  32391.       HEAP[$i_addr_i4_i_i] = $350;
  32392.       var $this1_i5_i_i43 = HEAP[$this_addr_i3_i_i];
  32393.       var $354 = HEAP[$i_addr_i4_i_i];
  32394.       HEAP[$this_addr_i_i2_i_i] = $this1_i5_i_i43 | 0;
  32395.       HEAP[$this_addr_i_i_i1_i_i] = HEAP[$this_addr_i_i2_i_i] | 0;
  32396.       var $this1_i_i_i7_i_i = HEAP[$this_addr_i_i_i1_i_i];
  32397.       if ($354 >>> 0 >= (((HEAP[$this1_i_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i7_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  32398.         HEAP[$X_addr_i_i_i_i_i13] = 111704;
  32399.         HEAP[$retval_i_i_i14] = HEAP[$X_addr_i_i_i_i_i13];
  32400.       } else {
  32401.         HEAP[$retval_i_i_i14] = (HEAP[$i_addr_i4_i_i] << 1) + $this1_i5_i_i43 + 2 | 0;
  32402.       }
  32403.       var $370 = HEAP[$retval_i_i_i14];
  32404.       HEAP[$base_addr_i_i_i24] = $ref_tmp20_i_i;
  32405.       HEAP[$offset_addr_i_i_i25] = $370;
  32406.       var $376 = HEAP[HEAP[$base_addr_i_i_i24]];
  32407.       HEAP[$this_addr_i_i_i_i21] = HEAP[$offset_addr_i_i_i25];
  32408.       HEAP[$base_addr_i_i_i_i22] = $376;
  32409.       HEAP[$this_addr_i_i_i_i_i19] = HEAP[$this_addr_i_i_i_i21];
  32410.       HEAP[$this_addr_i_i_i_i_i_i18] = HEAP[$this_addr_i_i_i_i_i19] | 0;
  32411.       var $this1_i_i_i_i_i_i62 = HEAP[$this_addr_i_i_i_i_i_i18];
  32412.       var $conv_i_i_i_i72 = ((HEAP[$this1_i_i_i_i_i_i62 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i62 + 1 | 0] & 255) & 65535;
  32413.       HEAP[$offset_i_i_i_i23] = $conv_i_i_i_i72;
  32414.       if (($conv_i_i_i_i72 | 0) != 0) {
  32415.         var $393 = HEAP[$offset_i_i_i_i23];
  32416.         HEAP[$P_addr_i_i_i_i_i16] = HEAP[$base_addr_i_i_i_i22];
  32417.         HEAP[$offset_addr_i_i_i_i_i17] = $393;
  32418.         HEAP[$retval_i_i_i_i20] = HEAP[$P_addr_i_i_i_i_i16] + HEAP[$offset_addr_i_i_i_i_i17] | 0;
  32419.       } else {
  32420.         HEAP[$X_addr_i_i_i_i_i_i15] = 111704;
  32421.         HEAP[$retval_i_i_i_i20] = HEAP[$X_addr_i_i_i_i_i_i15];
  32422.       }
  32423.       HEAP[$rule_set_i_i] = HEAP[$retval_i_i_i_i20];
  32424.       HEAP[$lookup_context_i_i34 | 0] = 176;
  32425.       var $arrayinit_begin_i_i80 = $lookup_context_i_i34 + 4 | 0;
  32426.       HEAP[$arrayinit_begin_i_i80] = HEAP[$backtrack_class_def_i_i];
  32427.       var $arrayinit_element_i_i81 = $arrayinit_begin_i_i80 + 4 | 0;
  32428.       HEAP[$arrayinit_element_i_i81] = HEAP[$input_class_def_i_i];
  32429.       HEAP[$arrayinit_element_i_i81 + 4 | 0] = HEAP[$lookahead_class_def_i_i];
  32430.       var $tobool_i_i_i83 = __ZNK2OT12ChainRuleSet5applyEPNS_18hb_apply_context_tERNS_30ChainContextApplyLookupContextE(HEAP[$rule_set_i_i], HEAP[$c_addr_i_i31], $lookup_context_i_i34) & 1;
  32431.       HEAP[$retval_i_i29] = $tobool_i_i_i83;
  32432.     }
  32433.     $retval = HEAP[$retval_i_i29] & 1;
  32434.     var $649 = $retval;
  32435.     STACKTOP = __stackBase__;
  32436.     return $649;
  32437.   } else if (($conv | 0) == 3) {
  32438.     HEAP[$this_addr_i] = $c_addr;
  32439.     HEAP[$obj_addr_i] = $this1 | 0;
  32440.     var $this1_i = HEAP[$this_addr_i];
  32441.     HEAP[$this_addr_i_i] = HEAP[$obj_addr_i];
  32442.     HEAP[$c_addr_i_i] = $this1_i;
  32443.     var $this1_i_i = HEAP[$this_addr_i_i];
  32444.     HEAP[$this_addr_i_i_i] = HEAP[HEAP[$c_addr_i_i] + 12 | 0];
  32445.     HEAP[$i_addr_i_i_i] = 0;
  32446.     HEAP[$X_addr_i114_i_i] = $this1_i_i + 2 | 0;
  32447.     var $456 = HEAP[$X_addr_i114_i_i];
  32448.     HEAP[$this_addr_i_i113_i_i] = HEAP[$X_addr_i114_i_i];
  32449.     HEAP[$this_addr_i_i_i112_i_i] = HEAP[$this_addr_i_i113_i_i] | 0;
  32450.     HEAP[$this_addr_i_i_i_i111_i_i] = HEAP[$this_addr_i_i_i112_i_i] | 0;
  32451.     var $this1_i_i_i_i119_i_i = HEAP[$this_addr_i_i_i_i111_i_i];
  32452.     var $add_i_i131_i_i = ((((HEAP[$this1_i_i_i_i119_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i119_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  32453.     HEAP[$P_addr_i_i109_i_i] = $456;
  32454.     HEAP[$offset_addr_i_i110_i_i] = $add_i_i131_i_i;
  32455.     HEAP[$input_i_i] = HEAP[$P_addr_i_i109_i_i] + HEAP[$offset_addr_i_i110_i_i] | 0;
  32456.     HEAP[$ref_tmp_i_i] = $this1_i_i;
  32457.     HEAP[$this_addr_i101_i_i] = HEAP[$input_i_i];
  32458.     HEAP[$i_addr_i102_i_i] = 0;
  32459.     var $this1_i103_i_i = HEAP[$this_addr_i101_i_i];
  32460.     var $480 = HEAP[$i_addr_i102_i_i];
  32461.     HEAP[$this_addr_i_i100_i_i] = $this1_i103_i_i | 0;
  32462.     HEAP[$this_addr_i_i_i99_i_i] = HEAP[$this_addr_i_i100_i_i] | 0;
  32463.     var $this1_i_i_i106_i_i = HEAP[$this_addr_i_i_i99_i_i];
  32464.     if ($480 >>> 0 >= (((HEAP[$this1_i_i_i106_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i106_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  32465.       HEAP[$X_addr_i_i_i_i_i] = 111704;
  32466.       HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  32467.     } else {
  32468.       HEAP[$retval_i_i_i] = (HEAP[$i_addr_i102_i_i] << 1) + $this1_i103_i_i + 2 | 0;
  32469.     }
  32470.     var $496 = HEAP[$retval_i_i_i];
  32471.     HEAP[$base_addr_i_i_i] = $ref_tmp_i_i;
  32472.     HEAP[$offset_addr_i_i_i] = $496;
  32473.     var $502 = HEAP[HEAP[$base_addr_i_i_i]];
  32474.     HEAP[$this_addr_i_i84_i_i] = HEAP[$offset_addr_i_i_i];
  32475.     HEAP[$base_addr_i_i_i_i] = $502;
  32476.     HEAP[$this_addr_i_i_i83_i_i] = HEAP[$this_addr_i_i84_i_i];
  32477.     HEAP[$this_addr_i_i_i_i82_i_i] = HEAP[$this_addr_i_i_i83_i_i] | 0;
  32478.     var $this1_i_i_i_i88_i_i = HEAP[$this_addr_i_i_i_i82_i_i];
  32479.     var $conv_i_i98_i_i = ((HEAP[$this1_i_i_i_i88_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i88_i_i + 1 | 0] & 255) & 65535;
  32480.     HEAP[$offset_i_i_i_i] = $conv_i_i98_i_i;
  32481.     if (($conv_i_i98_i_i | 0) != 0) {
  32482.       var $519 = HEAP[$offset_i_i_i_i];
  32483.       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  32484.       HEAP[$offset_addr_i_i_i_i_i] = $519;
  32485.       HEAP[$retval_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  32486.     } else {
  32487.       HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  32488.       HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  32489.     }
  32490.     var $527 = HEAP[$retval_i_i_i_i];
  32491.     HEAP[$this_addr_i75_i_i] = HEAP[HEAP[$c_addr_i_i] + 12 | 0];
  32492.     HEAP[$i_addr_i76_i_i] = 0;
  32493.     var $this1_i77_i_i = HEAP[$this_addr_i75_i_i];
  32494.     var $call10_i_i = __ZNK2OT8Coverage12get_coverageEj($527, HEAP[HEAP[$this1_i77_i_i + 96 | 0] + ((HEAP[$i_addr_i76_i_i] + HEAP[$this1_i77_i_i + 80 | 0]) * 20 & -1) | 0]);
  32495.     HEAP[$index_i_i] = $call10_i_i;
  32496.     if (($call10_i_i | 0) == -1) {
  32497.       HEAP[$retval_i_i] = 0;
  32498.     } else {
  32499.       HEAP[$X_addr_i54_i_i] = HEAP[$input_i_i];
  32500.       var $548 = HEAP[$X_addr_i54_i_i];
  32501.       HEAP[$this_addr_i_i53_i_i] = HEAP[$X_addr_i54_i_i];
  32502.       HEAP[$this_addr_i_i_i52_i_i] = HEAP[$this_addr_i_i53_i_i] | 0;
  32503.       HEAP[$this_addr_i_i_i_i51_i_i] = HEAP[$this_addr_i_i_i52_i_i] | 0;
  32504.       var $this1_i_i_i_i59_i_i = HEAP[$this_addr_i_i_i_i51_i_i];
  32505.       var $add_i_i71_i_i = ((((HEAP[$this1_i_i_i_i59_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i59_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  32506.       HEAP[$P_addr_i_i49_i_i] = $548;
  32507.       HEAP[$offset_addr_i_i50_i_i] = $add_i_i71_i_i;
  32508.       HEAP[$lookahead_i_i] = HEAP[$P_addr_i_i49_i_i] + HEAP[$offset_addr_i_i50_i_i] | 0;
  32509.       HEAP[$X_addr_i_i_i] = HEAP[$lookahead_i_i];
  32510.       var $570 = HEAP[$X_addr_i_i_i];
  32511.       HEAP[$this_addr_i_i45_i_i] = HEAP[$X_addr_i_i_i];
  32512.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i45_i_i] | 0;
  32513.       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  32514.       var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  32515.       var $add_i_i48_i_i = ((((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  32516.       HEAP[$P_addr_i_i_i_i] = $570;
  32517.       HEAP[$offset_addr_i_i_i_i] = $add_i_i48_i_i;
  32518.       HEAP[$lookup_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  32519.       HEAP[$lookup_context_i_i | 0] = 114;
  32520.       var $arrayinit_begin_i_i = $lookup_context_i_i + 4 | 0;
  32521.       HEAP[$arrayinit_begin_i_i] = $this1_i_i;
  32522.       var $arrayinit_element_i_i = $arrayinit_begin_i_i + 4 | 0;
  32523.       HEAP[$arrayinit_element_i_i] = $this1_i_i;
  32524.       HEAP[$arrayinit_element_i_i + 4 | 0] = $this1_i_i;
  32525.       var $592 = HEAP[$c_addr_i_i];
  32526.       HEAP[$this_addr_i32_i_i] = $this1_i_i + 2 | 0;
  32527.       HEAP[$this_addr_i_i31_i_i] = HEAP[$this_addr_i32_i_i] | 0;
  32528.       var $this1_i_i35_i_i = HEAP[$this_addr_i_i31_i_i];
  32529.       var $conv_i_i = ((HEAP[$this1_i_i35_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i35_i_i + 1 | 0] & 255) & 65535;
  32530.       HEAP[$this_addr_i18_i_i] = HEAP[$input_i_i] | 0;
  32531.       HEAP[$this_addr_i_i17_i_i] = HEAP[$this_addr_i18_i_i] | 0;
  32532.       var $this1_i_i21_i_i = HEAP[$this_addr_i_i17_i_i];
  32533.       var $conv20_i_i = ((HEAP[$this1_i_i21_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i_i + 1 | 0] & 255) & 65535;
  32534.       var $add_ptr_i_i = HEAP[$input_i_i] + 4 | 0;
  32535.       HEAP[$this_addr_i4_i_i] = HEAP[$lookahead_i_i] | 0;
  32536.       HEAP[$this_addr_i_i3_i_i] = HEAP[$this_addr_i4_i_i] | 0;
  32537.       var $this1_i_i7_i_i = HEAP[$this_addr_i_i3_i_i];
  32538.       var $conv25_i_i = ((HEAP[$this1_i_i7_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i_i + 1 | 0] & 255) & 65535;
  32539.       var $623 = HEAP[$lookahead_i_i] + 2 | 0;
  32540.       HEAP[$this_addr_i1_i_i] = HEAP[$lookup_i_i] | 0;
  32541.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i1_i_i] | 0;
  32542.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  32543.       var $tobool_i_i_i = __ZN2OTL26chain_context_apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEjS5_jS5_jPKNS_12LookupRecordERNS_30ChainContextApplyLookupContextE($592, $conv_i_i, $this1_i_i + 4 | 0, $conv20_i_i, $add_ptr_i_i, $conv25_i_i, $623, ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535, HEAP[$lookup_i_i] + 2 | 0, $lookup_context_i_i) & 1;
  32544.       HEAP[$retval_i_i] = $tobool_i_i_i;
  32545.     }
  32546.     $retval = HEAP[$retval_i_i] & 1;
  32547.     var $649 = $retval;
  32548.     STACKTOP = __stackBase__;
  32549.     return $649;
  32550.   } else {
  32551.     $retval = 0;
  32552.     var $649 = $retval;
  32553.     STACKTOP = __stackBase__;
  32554.     return $649;
  32555.   }
  32556. }
  32557. function __ZNK2OT8Coverage12get_coverageEj($this, $glyph_id) {
  32558.   var __stackBase__ = STACKTOP;
  32559.   STACKTOP = STACKTOP + 132 | 0;
  32560.   var $this_addr_i_i15_i_i = __stackBase__;
  32561.   var $this_addr_i16_i_i = __stackBase__ + 4;
  32562.   var $a_addr_i_i_i = __stackBase__ + 8;
  32563.   var $b_i_i_i = __stackBase__ + 10;
  32564.   var $this_addr_i_i1_i_i = __stackBase__ + 12;
  32565.   var $this_addr_i2_i_i = __stackBase__ + 16;
  32566.   var $this_addr_i_i_i_i8 = __stackBase__ + 20;
  32567.   var $this_addr_i_i_i9 = __stackBase__ + 24;
  32568.   var $retval_i_i10 = __stackBase__ + 28;
  32569.   var $this_addr_i_i11 = __stackBase__ + 32;
  32570.   var $x_addr_i_i = __stackBase__ + 36;
  32571.   var $count_i_i = __stackBase__ + 40;
  32572.   var $i_i_i = __stackBase__ + 44;
  32573.   var $p_i_i = __stackBase__ + 48;
  32574.   var $this_addr_i12 = __stackBase__ + 52;
  32575.   var $glyph_id_addr_i13 = __stackBase__ + 56;
  32576.   var $i_i14 = __stackBase__ + 60;
  32577.   var $this_addr_i_i6_i = __stackBase__ + 64;
  32578.   var $this_addr_i7_i = __stackBase__ + 68;
  32579.   var $this_addr_i_i1_i = __stackBase__ + 72;
  32580.   var $this_addr_i2_i = __stackBase__ + 76;
  32581.   var $X_addr_i_i_i_i = __stackBase__ + 80;
  32582.   var $this_addr_i_i_i_i = __stackBase__ + 84;
  32583.   var $this_addr_i_i_i = __stackBase__ + 88;
  32584.   var $retval_i_i = __stackBase__ + 92;
  32585.   var $this_addr_i_i1 = __stackBase__ + 96;
  32586.   var $i_addr_i_i = __stackBase__ + 100;
  32587.   var $retval_i = __stackBase__ + 104;
  32588.   var $this_addr_i2 = __stackBase__ + 108;
  32589.   var $glyph_id_addr_i = __stackBase__ + 112;
  32590.   var $i_i = __stackBase__ + 116;
  32591.   var $range_i = __stackBase__ + 120;
  32592.   var $this_addr_i_i = __stackBase__ + 124;
  32593.   var $this_addr_i = __stackBase__ + 128;
  32594.   var $retval;
  32595.   var $glyph_id_addr;
  32596.   $glyph_id_addr = $glyph_id;
  32597.   var $this1 = $this;
  32598.   HEAP[$this_addr_i] = $this1 | 0;
  32599.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  32600.   var $this1_i_i = HEAP[$this_addr_i_i];
  32601.   var $conv = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  32602.   if (($conv | 0) == 1) {
  32603.     HEAP[$this_addr_i12] = $this1 | 0;
  32604.     HEAP[$glyph_id_addr_i13] = $glyph_id_addr;
  32605.     HEAP[$this_addr_i_i11] = HEAP[$this_addr_i12] + 2 | 0;
  32606.     HEAP[$x_addr_i_i] = $glyph_id_addr_i13;
  32607.     var $this1_i_i16 = HEAP[$this_addr_i_i11];
  32608.     HEAP[$this_addr_i_i_i9] = $this1_i_i16 | 0;
  32609.     HEAP[$this_addr_i_i_i_i8] = HEAP[$this_addr_i_i_i9] | 0;
  32610.     var $this1_i_i_i_i20 = HEAP[$this_addr_i_i_i_i8];
  32611.     HEAP[$count_i_i] = ((HEAP[$this1_i_i_i_i20 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20 + 1 | 0] & 255) & 65535;
  32612.     L1042 : do {
  32613.       if (HEAP[$count_i_i] >>> 0 < 32) {
  32614.         HEAP[$i_i_i] = 0;
  32615.         L1044 : do {
  32616.           if (HEAP[$i_i_i] >>> 0 < HEAP[$count_i_i] >>> 0) {
  32617.             var $array_i_i33 = $this1_i_i16 + 2 | 0;
  32618.             while (1) {
  32619.               var $conv3_i_i = HEAP[HEAP[$x_addr_i_i]] & 65535;
  32620.               HEAP[$this_addr_i16_i_i] = (HEAP[$i_i_i] << 1) + $array_i_i33 | 0;
  32621.               HEAP[$a_addr_i_i_i] = $conv3_i_i;
  32622.               HEAP[$this_addr_i_i15_i_i] = HEAP[$this_addr_i16_i_i] | 0;
  32623.               var $this1_i_i19_i_i = HEAP[$this_addr_i_i15_i_i];
  32624.               HEAP[$b_i_i_i] = ((HEAP[$this1_i_i19_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i19_i_i + 1 | 0] & 255) & 65535;
  32625.               if ((HEAP[$a_addr_i_i_i] & 65535 | 0) < (HEAP[$b_i_i_i] & 65535 | 0)) {
  32626.                 var $cond6_i_i_i = -1;
  32627.               } else {
  32628.                 var $cond6_i_i_i = (HEAP[$a_addr_i_i_i] & 65535 | 0) == (HEAP[$b_i_i_i] & 65535 | 0) ? 0 : 1;
  32629.               }
  32630.               var $cond6_i_i_i;
  32631.               var $44 = HEAP[$i_i_i];
  32632.               if (($cond6_i_i_i | 0) == 0) {
  32633.                 break;
  32634.               }
  32635.               HEAP[$i_i_i] = $44 + 1 | 0;
  32636.               if (HEAP[$i_i_i] >>> 0 >= HEAP[$count_i_i] >>> 0) {
  32637.                 break L1044;
  32638.               }
  32639.             }
  32640.             HEAP[$retval_i_i10] = $44;
  32641.             break L1042;
  32642.           }
  32643.         } while (0);
  32644.         HEAP[$retval_i_i10] = -1;
  32645.       } else {
  32646.         var $48 = HEAP[$x_addr_i_i];
  32647.         HEAP[$this_addr_i2_i_i] = $this1_i_i16 | 0;
  32648.         HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] | 0;
  32649.         var $this1_i_i5_i_i = HEAP[$this_addr_i_i1_i_i];
  32650.         var $58 = _bsearch($48, $this1_i_i16 + 2 | 0, ((HEAP[$this1_i_i5_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i + 1 | 0] & 255) & 65535, 2, 178);
  32651.         HEAP[$p_i_i] = $58;
  32652.         if ((HEAP[$p_i_i] | 0) != 0) {
  32653.           var $cond_i_i = (HEAP[$p_i_i] - ($this1_i_i16 + 2) | 0) / 2 & -1;
  32654.         } else {
  32655.           var $cond_i_i = -1;
  32656.         }
  32657.         var $cond_i_i;
  32658.         HEAP[$retval_i_i10] = $cond_i_i;
  32659.       }
  32660.     } while (0);
  32661.     HEAP[$i_i14] = HEAP[$retval_i_i10];
  32662.     $retval = HEAP[$i_i14];
  32663.     var $122 = $retval;
  32664.     STACKTOP = __stackBase__;
  32665.     return $122;
  32666.   } else if (($conv | 0) == 2) {
  32667.     HEAP[$this_addr_i2] = $this1 | 0;
  32668.     HEAP[$glyph_id_addr_i] = $glyph_id_addr;
  32669.     var $this1_i3 = HEAP[$this_addr_i2];
  32670.     var $call_i = __ZNK2OT13SortedArrayOfINS_11RangeRecordEE6searchIjEEiRKT_($this1_i3 + 2 | 0, $glyph_id_addr_i);
  32671.     HEAP[$i_i] = $call_i;
  32672.     if ((HEAP[$i_i] | 0) != -1) {
  32673.       var $81 = HEAP[$i_i];
  32674.       HEAP[$this_addr_i_i1] = $this1_i3 + 2 | 0;
  32675.       HEAP[$i_addr_i_i] = $81;
  32676.       var $this1_i_i4 = HEAP[$this_addr_i_i1];
  32677.       var $85 = HEAP[$i_addr_i_i];
  32678.       HEAP[$this_addr_i_i_i] = $this1_i_i4 | 0;
  32679.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  32680.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  32681.       if ($85 >>> 0 >= (((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  32682.         HEAP[$X_addr_i_i_i_i] = 111840;
  32683.         HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  32684.       } else {
  32685.         HEAP[$retval_i_i] = $this1_i_i4 + (HEAP[$i_addr_i_i] * 6 & -1) + 2 | 0;
  32686.       }
  32687.       HEAP[$range_i] = HEAP[$retval_i_i];
  32688.       HEAP[$this_addr_i7_i] = HEAP[$range_i] + 4 | 0;
  32689.       HEAP[$this_addr_i_i6_i] = HEAP[$this_addr_i7_i] | 0;
  32690.       var $this1_i_i10_i = HEAP[$this_addr_i_i6_i];
  32691.       var $conv_i = ((HEAP[$this1_i_i10_i | 0] & 255) << 8) + (HEAP[$this1_i_i10_i + 1 | 0] & 255) & 65535;
  32692.       var $108 = HEAP[$glyph_id_addr_i];
  32693.       HEAP[$this_addr_i2_i] = HEAP[$range_i] | 0;
  32694.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  32695.       var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  32696.       HEAP[$retval_i] = $conv_i + $108 + -(((HEAP[$this1_i_i4_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i + 1 | 0] & 255) & 65535) | 0;
  32697.     } else {
  32698.       HEAP[$retval_i] = -1;
  32699.     }
  32700.     $retval = HEAP[$retval_i];
  32701.     var $122 = $retval;
  32702.     STACKTOP = __stackBase__;
  32703.     return $122;
  32704.   } else {
  32705.     $retval = -1;
  32706.     var $122 = $retval;
  32707.     STACKTOP = __stackBase__;
  32708.     return $122;
  32709.   }
  32710. }
  32711. function __ZN2OTL14match_coverageEjRKNS_7IntTypeItLj2EEEPKv($glyph_id, $value, $data) {
  32712.   var __stackBase__ = STACKTOP;
  32713.   STACKTOP = STACKTOP + 48 | 0;
  32714.   var $X_addr_i_i_i_i = __stackBase__;
  32715.   var $P_addr_i_i_i = __stackBase__ + 4;
  32716.   var $offset_addr_i_i_i = __stackBase__ + 8;
  32717.   var $this_addr_i_i_i_i = __stackBase__ + 12;
  32718.   var $this_addr_i_i_i = __stackBase__ + 16;
  32719.   var $retval_i_i = __stackBase__ + 20;
  32720.   var $this_addr_i_i = __stackBase__ + 24;
  32721.   var $base_addr_i_i = __stackBase__ + 28;
  32722.   var $offset_i_i = __stackBase__ + 32;
  32723.   var $base_addr_i = __stackBase__ + 36;
  32724.   var $offset_addr_i = __stackBase__ + 40;
  32725.   var $glyph_id_addr;
  32726.   var $data_addr = __stackBase__ + 44;
  32727.   $glyph_id_addr = $glyph_id;
  32728.   HEAP[$data_addr] = $data;
  32729.   HEAP[$base_addr_i] = $data_addr;
  32730.   HEAP[$offset_addr_i] = $value;
  32731.   var $8 = HEAP[HEAP[$base_addr_i]];
  32732.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  32733.   HEAP[$base_addr_i_i] = $8;
  32734.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  32735.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  32736.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  32737.   HEAP[$offset_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  32738.   if ((HEAP[$offset_i_i] | 0) != 0) {
  32739.     var $26 = HEAP[$offset_i_i];
  32740.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  32741.     HEAP[$offset_addr_i_i_i] = $26;
  32742.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  32743.     var $34 = HEAP[$retval_i_i];
  32744.     var $35 = $retval_i_i;
  32745.     var $36 = $this_addr_i_i;
  32746.     var $37 = $base_addr_i_i;
  32747.     var $38 = $offset_i_i;
  32748.     var $39 = $base_addr_i;
  32749.     var $40 = $offset_addr_i;
  32750.     var $41 = $glyph_id_addr;
  32751.     var $call1 = __ZNK2OT8Coverage12get_coverageEj($34, $41);
  32752.     var $cmp = ($call1 | 0) != -1;
  32753.     STACKTOP = __stackBase__;
  32754.     return $cmp;
  32755.   } else {
  32756.     HEAP[$X_addr_i_i_i_i] = 111704;
  32757.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  32758.     var $34 = HEAP[$retval_i_i];
  32759.     var $35 = $retval_i_i;
  32760.     var $36 = $this_addr_i_i;
  32761.     var $37 = $base_addr_i_i;
  32762.     var $38 = $offset_i_i;
  32763.     var $39 = $base_addr_i;
  32764.     var $40 = $offset_addr_i;
  32765.     var $41 = $glyph_id_addr;
  32766.     var $call1 = __ZNK2OT8Coverage12get_coverageEj($34, $41);
  32767.     var $cmp = ($call1 | 0) != -1;
  32768.     STACKTOP = __stackBase__;
  32769.     return $cmp;
  32770.   }
  32771. }
  32772. function __ZN2OTL26chain_context_apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEjS5_jS5_jPKNS_12LookupRecordERNS_30ChainContextApplyLookupContextE($c, $backtrackCount, $backtrack, $inputCount, $input, $lookaheadCount, $lookahead, $lookupCount, $lookupRecord, $lookup_context) {
  32773.   var __stackBase__ = STACKTOP;
  32774.   STACKTOP = STACKTOP + 4 | 0;
  32775.   var $c_addr;
  32776.   var $inputCount_addr;
  32777.   var $input_addr;
  32778.   var $lookup_context_addr;
  32779.   var $lookahead_offset = __stackBase__;
  32780.   $c_addr = $c;
  32781.   $inputCount_addr = $inputCount;
  32782.   $input_addr = $input;
  32783.   $lookup_context_addr = $lookup_context;
  32784.   HEAP[$lookahead_offset] = 0;
  32785.   if (!__ZN2OTL11match_inputEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_PjPbSB_($c_addr, $inputCount_addr, $input_addr, HEAP[$lookup_context_addr | 0], HEAP[$lookup_context_addr + 8 | 0], $lookahead_offset, 0, 0)) {
  32786.     var $31 = 0;
  32787.     var $31;
  32788.     STACKTOP = __stackBase__;
  32789.     return $31;
  32790.   }
  32791.   if (!__ZN2OTL15match_backtrackEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_($c_addr, $backtrackCount, $backtrack, HEAP[$lookup_context_addr | 0], HEAP[$lookup_context_addr + 4 | 0])) {
  32792.     var $31 = 0;
  32793.     var $31;
  32794.     STACKTOP = __stackBase__;
  32795.     return $31;
  32796.   }
  32797.   if (!__ZN2OTL15match_lookaheadEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_j($c_addr, $lookaheadCount, $lookahead, HEAP[$lookup_context_addr | 0], HEAP[$lookup_context_addr + 12 | 0], HEAP[$lookahead_offset])) {
  32798.     var $31 = 0;
  32799.     var $31;
  32800.     STACKTOP = __stackBase__;
  32801.     return $31;
  32802.   }
  32803.   var $31 = __ZN2OTL12apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_jPKNS_12LookupRecordE($c_addr, $inputCount_addr, $input_addr, HEAP[$lookup_context_addr | 0], HEAP[$lookup_context_addr + 8 | 0], $lookupCount, $lookupRecord);
  32804.   var $31;
  32805.   STACKTOP = __stackBase__;
  32806.   return $31;
  32807. }
  32808. function __ZN2OTL11match_inputEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_PjPbSB_($c, $count, $input, $match_func, $match_data, $end_offset, $p_is_mark_ligature, $p_total_component_count) {
  32809.   var label = 0;
  32810.   var __stackBase__ = STACKTOP;
  32811.   STACKTOP = STACKTOP + 172 | 0;
  32812.   var $this_addr_i_i = __stackBase__;
  32813.   var $match_func__addr_i_i = __stackBase__ + 4;
  32814.   var $match_data__addr_i_i = __stackBase__ + 8;
  32815.   var $this_addr_i112 = __stackBase__ + 12;
  32816.   var $match_func_addr_i = __stackBase__ + 16;
  32817.   var $match_data_addr_i = __stackBase__ + 20;
  32818.   var $glyph_data_addr_i = __stackBase__ + 24;
  32819.   var $this_addr_i107 = __stackBase__ + 28;
  32820.   var $this_addr_i98 = __stackBase__ + 32;
  32821.   var $i_addr_i99 = __stackBase__ + 36;
  32822.   var $this_addr_i91 = __stackBase__ + 40;
  32823.   var $i_addr_i92 = __stackBase__ + 44;
  32824.   var $info_addr_i_i67 = __stackBase__ + 48;
  32825.   var $retval_i68 = __stackBase__ + 52;
  32826.   var $info_addr_i69 = __stackBase__ + 56;
  32827.   var $this_addr_i60 = __stackBase__ + 60;
  32828.   var $i_addr_i61 = __stackBase__ + 64;
  32829.   var $info_addr_i54 = __stackBase__ + 68;
  32830.   var $this_addr_i47 = __stackBase__ + 72;
  32831.   var $i_addr_i48 = __stackBase__ + 76;
  32832.   var $info_addr_i_i30 = __stackBase__ + 80;
  32833.   var $retval_i31 = __stackBase__ + 84;
  32834.   var $info_addr_i32 = __stackBase__ + 88;
  32835.   var $info_addr_i22 = __stackBase__ + 100;
  32836.   var $info_addr_i_i6 = __stackBase__ + 104;
  32837.   var $retval_i7 = __stackBase__ + 108;
  32838.   var $info_addr_i8 = __stackBase__ + 112;
  32839.   var $info_addr_i_i = __stackBase__ + 116;
  32840.   var $retval_i = __stackBase__ + 120;
  32841.   var $info_addr_i = __stackBase__ + 124;
  32842.   var $retval;
  32843.   var $c_addr;
  32844.   var $count_addr;
  32845.   var $end_offset_addr;
  32846.   var $p_is_mark_ligature_addr;
  32847.   var $p_total_component_count_addr;
  32848.   var $skippy_iter = __stackBase__ + 128;
  32849.   var $is_mark_ligature;
  32850.   var $total_component_count;
  32851.   var $first_lig_id;
  32852.   var $first_lig_comp;
  32853.   var $i;
  32854.   var $this_lig_id;
  32855.   var $this_lig_comp;
  32856.   $c_addr = $c;
  32857.   $count_addr = $count;
  32858.   $end_offset_addr = $end_offset;
  32859.   $p_is_mark_ligature_addr = $p_is_mark_ligature;
  32860.   $p_total_component_count_addr = $p_total_component_count;
  32861.   HEAP[__stackBase__ + 92] = HEAP[$c_addr + 12 | 0];
  32862.   HEAP[__stackBase__ + 96] = 0;
  32863.   __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter, $c_addr, HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0], $count_addr - 1 | 0, 0);
  32864.   HEAP[$this_addr_i112] = $skippy_iter;
  32865.   HEAP[$match_func_addr_i] = $match_func;
  32866.   HEAP[$match_data_addr_i] = $match_data;
  32867.   HEAP[$glyph_data_addr_i] = $input;
  32868.   var $this1_i113 = HEAP[$this_addr_i112];
  32869.   var $18 = HEAP[$match_func_addr_i];
  32870.   var $19 = HEAP[$match_data_addr_i];
  32871.   HEAP[$this_addr_i_i] = $this1_i113 + 8 | 0;
  32872.   HEAP[$match_func__addr_i_i] = $18;
  32873.   HEAP[$match_data__addr_i_i] = $19;
  32874.   var $this1_i_i = HEAP[$this_addr_i_i];
  32875.   HEAP[$this1_i_i + 16 | 0] = HEAP[$match_func__addr_i_i];
  32876.   HEAP[$this1_i_i + 20 | 0] = HEAP[$match_data__addr_i_i];
  32877.   HEAP[$this1_i113 + 32 | 0] = HEAP[$glyph_data_addr_i];
  32878.   HEAP[$this_addr_i107] = $skippy_iter;
  32879.   var $this1_i108 = HEAP[$this_addr_i107];
  32880.   do {
  32881.     if ((HEAP[$this1_i108 + 36 | 0] | 0) != 0) {
  32882.       if (!((HEAP[$this1_i108 + 36 | 0] + HEAP[$this1_i108 | 0] | 0) >>> 0 >= HEAP[$this1_i108 + 40 | 0] >>> 0)) {
  32883.         break;
  32884.       }
  32885.       $retval = 0;
  32886.       var $190 = $retval;
  32887.       STACKTOP = __stackBase__;
  32888.       return $190;
  32889.     } else {
  32890.     }
  32891.   } while (0);
  32892.   HEAP[$this_addr_i98] = HEAP[$c_addr + 12 | 0];
  32893.   HEAP[$i_addr_i99] = 0;
  32894.   var $this1_i100 = HEAP[$this_addr_i98];
  32895.   $is_mark_ligature = ((HEAP[HEAP[$this1_i100 + 96 | 0] + ((HEAP[$i_addr_i99] + HEAP[$this1_i100 + 80 | 0]) * 20 & -1) + 12 | 0] & 8 | 0) != 0 ^ 1 ^ 1) & 1;
  32896.   $total_component_count = 0;
  32897.   HEAP[$this_addr_i91] = HEAP[$c_addr + 12 | 0];
  32898.   HEAP[$i_addr_i92] = 0;
  32899.   var $this1_i93 = HEAP[$this_addr_i91];
  32900.   HEAP[$info_addr_i69] = HEAP[$this1_i93 + 96 | 0] + ((HEAP[$i_addr_i92] + HEAP[$this1_i93 + 80 | 0]) * 20 & -1) | 0;
  32901.   do {
  32902.     if ((HEAP[HEAP[$info_addr_i69] + 12 | 0] & 4 | 0) != 0) {
  32903.       HEAP[$info_addr_i_i67] = HEAP[$info_addr_i69];
  32904.       if ((HEAP[HEAP[$info_addr_i_i67] + 15 | 0] & 16 | 0) == 0) {
  32905.         label = 23;
  32906.         break;
  32907.       }
  32908.       HEAP[$retval_i68] = HEAP[HEAP[$info_addr_i69] + 15 | 0] & 15;
  32909.       break;
  32910.     } else {
  32911.       label = 23;
  32912.     }
  32913.   } while (0);
  32914.   if (label == 23) {
  32915.     HEAP[$retval_i68] = 1;
  32916.   }
  32917.   $total_component_count = $total_component_count + HEAP[$retval_i68] | 0;
  32918.   HEAP[$this_addr_i60] = HEAP[$c_addr + 12 | 0];
  32919.   HEAP[$i_addr_i61] = 0;
  32920.   var $this1_i62 = HEAP[$this_addr_i60];
  32921.   HEAP[$info_addr_i54] = HEAP[$this1_i62 + 96 | 0] + ((HEAP[$i_addr_i61] + HEAP[$this1_i62 + 80 | 0]) * 20 & -1) | 0;
  32922.   $first_lig_id = (HEAP[HEAP[$info_addr_i54] + 15 | 0] & 255) >> 5;
  32923.   HEAP[$this_addr_i47] = HEAP[$c_addr + 12 | 0];
  32924.   HEAP[$i_addr_i48] = 0;
  32925.   var $this1_i49 = HEAP[$this_addr_i47];
  32926.   HEAP[$info_addr_i32] = HEAP[$this1_i49 + 96 | 0] + ((HEAP[$i_addr_i48] + HEAP[$this1_i49 + 80 | 0]) * 20 & -1) | 0;
  32927.   HEAP[$info_addr_i_i30] = HEAP[$info_addr_i32];
  32928.   if ((HEAP[HEAP[$info_addr_i_i30] + 15 | 0] & 16 | 0) != 0) {
  32929.     HEAP[$retval_i31] = 0;
  32930.   } else {
  32931.     HEAP[$retval_i31] = HEAP[HEAP[$info_addr_i32] + 15 | 0] & 15;
  32932.   }
  32933.   $first_lig_comp = HEAP[$retval_i31];
  32934.   $i = 1;
  32935.   L34 : do {
  32936.     if ($i >>> 0 < $count_addr >>> 0) {
  32937.       var $idx23 = $skippy_iter | 0;
  32938.       var $idx27 = $skippy_iter | 0;
  32939.       var $idx50 = $skippy_iter | 0;
  32940.       var $idx61 = $skippy_iter | 0;
  32941.       L36 : while (1) {
  32942.         if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter)) {
  32943.           label = 30;
  32944.           break;
  32945.         }
  32946.         HEAP[$info_addr_i22] = HEAP[HEAP[$c_addr + 12 | 0] + 96 | 0] + (HEAP[$idx23] * 20 & -1) | 0;
  32947.         $this_lig_id = (HEAP[HEAP[$info_addr_i22] + 15 | 0] & 255) >> 5;
  32948.         HEAP[$info_addr_i8] = HEAP[HEAP[$c_addr + 12 | 0] + 96 | 0] + (HEAP[$idx27] * 20 & -1) | 0;
  32949.         HEAP[$info_addr_i_i6] = HEAP[$info_addr_i8];
  32950.         if ((HEAP[HEAP[$info_addr_i_i6] + 15 | 0] & 16 | 0) != 0) {
  32951.           HEAP[$retval_i7] = 0;
  32952.         } else {
  32953.           HEAP[$retval_i7] = HEAP[HEAP[$info_addr_i8] + 15 | 0] & 15;
  32954.         }
  32955.         $this_lig_comp = HEAP[$retval_i7];
  32956.         do {
  32957.           if (($first_lig_id | 0) != 0) {
  32958.             if (($first_lig_comp | 0) == 0) {
  32959.               label = 39;
  32960.               break;
  32961.             }
  32962.             if (($first_lig_id | 0) != ($this_lig_id | 0)) {
  32963.               label = 38;
  32964.               break L36;
  32965.             }
  32966.             if (($first_lig_comp | 0) != ($this_lig_comp | 0)) {
  32967.               label = 38;
  32968.               break L36;
  32969.             } else {
  32970.               break;
  32971.             }
  32972.           } else {
  32973.             label = 39;
  32974.           }
  32975.         } while (0);
  32976.         do {
  32977.           if (label == 39) {
  32978.             label = 0;
  32979.             if (($this_lig_id | 0) == 0) {
  32980.               break;
  32981.             }
  32982.             if (($this_lig_comp | 0) == 0) {
  32983.               break;
  32984.             }
  32985.             if (($this_lig_id | 0) != ($first_lig_id | 0)) {
  32986.               label = 42;
  32987.               break L36;
  32988.             }
  32989.           }
  32990.         } while (0);
  32991.         if ($is_mark_ligature & 1) {
  32992.           var $160 = (HEAP[HEAP[HEAP[$c_addr + 12 | 0] + 96 | 0] + (HEAP[$idx50] * 20 & -1) + 12 | 0] & 8 | 0) != 0;
  32993.         } else {
  32994.           var $160 = 0;
  32995.         }
  32996.         var $160;
  32997.         $is_mark_ligature = $160 & 1;
  32998.         HEAP[$info_addr_i] = HEAP[HEAP[$c_addr + 12 | 0] + 96 | 0] + (HEAP[$idx61] * 20 & -1) | 0;
  32999.         do {
  33000.           if ((HEAP[HEAP[$info_addr_i] + 12 | 0] & 4 | 0) != 0) {
  33001.             HEAP[$info_addr_i_i] = HEAP[$info_addr_i];
  33002.             if ((HEAP[HEAP[$info_addr_i_i] + 15 | 0] & 16 | 0) == 0) {
  33003.               label = 48;
  33004.               break;
  33005.             }
  33006.             HEAP[$retval_i] = HEAP[HEAP[$info_addr_i] + 15 | 0] & 15;
  33007.             break;
  33008.           } else {
  33009.             label = 48;
  33010.           }
  33011.         } while (0);
  33012.         if (label == 48) {
  33013.           label = 0;
  33014.           HEAP[$retval_i] = 1;
  33015.         }
  33016.         $total_component_count = $total_component_count + HEAP[$retval_i] | 0;
  33017.         $i = $i + 1 | 0;
  33018.         if ($i >>> 0 >= $count_addr >>> 0) {
  33019.           break L34;
  33020.         }
  33021.       }
  33022.       if (label == 30) {
  33023.         $retval = 0;
  33024.         var $190 = $retval;
  33025.         STACKTOP = __stackBase__;
  33026.         return $190;
  33027.       } else if (label == 38) {
  33028.         $retval = 0;
  33029.         var $190 = $retval;
  33030.         STACKTOP = __stackBase__;
  33031.         return $190;
  33032.       } else if (label == 42) {
  33033.         $retval = 0;
  33034.         var $190 = $retval;
  33035.         STACKTOP = __stackBase__;
  33036.         return $190;
  33037.       }
  33038.     }
  33039.   } while (0);
  33040.   if (($end_offset_addr | 0) != 0) {
  33041.     HEAP[$end_offset_addr] = HEAP[$skippy_iter | 0] + -HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] + 1 | 0;
  33042.   }
  33043.   if (($p_is_mark_ligature_addr | 0) != 0) {
  33044.     HEAP[$p_is_mark_ligature_addr] = $is_mark_ligature & 1;
  33045.   }
  33046.   if (($p_total_component_count_addr | 0) != 0) {
  33047.     HEAP[$p_total_component_count_addr] = $total_component_count;
  33048.   }
  33049.   $retval = 1;
  33050.   var $190 = $retval;
  33051.   STACKTOP = __stackBase__;
  33052.   return $190;
  33053. }
  33054. function __ZN2OTL15match_backtrackEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_($c, $count, $backtrack, $match_func, $match_data) {
  33055.   var __stackBase__ = STACKTOP;
  33056.   STACKTOP = STACKTOP + 84 | 0;
  33057.   var $this_addr_i10 = __stackBase__;
  33058.   var $this_addr_i_i = __stackBase__ + 4;
  33059.   var $match_func__addr_i_i = __stackBase__ + 8;
  33060.   var $match_data__addr_i_i = __stackBase__ + 12;
  33061.   var $this_addr_i8 = __stackBase__ + 16;
  33062.   var $match_func_addr_i = __stackBase__ + 20;
  33063.   var $match_data_addr_i = __stackBase__ + 24;
  33064.   var $glyph_data_addr_i = __stackBase__ + 28;
  33065.   var $this_addr_i5 = __stackBase__ + 32;
  33066.   var $retval;
  33067.   var $c_addr;
  33068.   var $count_addr;
  33069.   var $skippy_iter = __stackBase__ + 44;
  33070.   var $i;
  33071.   $c_addr = $c;
  33072.   $count_addr = $count;
  33073.   HEAP[__stackBase__ + 36] = HEAP[$c_addr + 12 | 0];
  33074.   HEAP[__stackBase__ + 40] = 0;
  33075.   HEAP[$this_addr_i10] = HEAP[$c_addr + 12 | 0];
  33076.   var $this1_i11 = HEAP[$this_addr_i10];
  33077.   if (HEAP[$this1_i11 + 77 | 0] & 1) {
  33078.     var $cond_i = HEAP[$this1_i11 + 88 | 0];
  33079.   } else {
  33080.     var $cond_i = HEAP[$this1_i11 + 80 | 0];
  33081.   }
  33082.   var $cond_i;
  33083.   __ZN2OT18hb_apply_context_t28skipping_backward_iterator_tC1EPS0_jjb($skippy_iter, $c_addr, $cond_i, $count_addr, 1);
  33084.   HEAP[$this_addr_i8] = $skippy_iter;
  33085.   HEAP[$match_func_addr_i] = $match_func;
  33086.   HEAP[$match_data_addr_i] = $match_data;
  33087.   HEAP[$glyph_data_addr_i] = $backtrack;
  33088.   var $this1_i9 = HEAP[$this_addr_i8];
  33089.   var $22 = HEAP[$match_func_addr_i];
  33090.   var $23 = HEAP[$match_data_addr_i];
  33091.   HEAP[$this_addr_i_i] = $this1_i9 + 8 | 0;
  33092.   HEAP[$match_func__addr_i_i] = $22;
  33093.   HEAP[$match_data__addr_i_i] = $23;
  33094.   var $this1_i_i = HEAP[$this_addr_i_i];
  33095.   HEAP[$this1_i_i + 16 | 0] = HEAP[$match_func__addr_i_i];
  33096.   HEAP[$this1_i_i + 20 | 0] = HEAP[$match_data__addr_i_i];
  33097.   HEAP[$this1_i9 + 32 | 0] = HEAP[$glyph_data_addr_i];
  33098.   HEAP[$this_addr_i5] = $skippy_iter;
  33099.   var $this1_i6 = HEAP[$this_addr_i5];
  33100.   if (HEAP[$this1_i6 | 0] >>> 0 < HEAP[$this1_i6 + 36 | 0] >>> 0) {
  33101.     $retval = 0;
  33102.     var $49 = $retval;
  33103.     STACKTOP = __stackBase__;
  33104.     return $49;
  33105.   }
  33106.   $i = 0;
  33107.   L88 : do {
  33108.     if ($i >>> 0 < $count_addr >>> 0) {
  33109.       while (1) {
  33110.         if (!__ZN2OT18hb_apply_context_t28skipping_backward_iterator_t4prevEv($skippy_iter)) {
  33111.           break;
  33112.         }
  33113.         $i = $i + 1 | 0;
  33114.         if ($i >>> 0 >= $count_addr >>> 0) {
  33115.           break L88;
  33116.         }
  33117.       }
  33118.       $retval = 0;
  33119.       var $49 = $retval;
  33120.       STACKTOP = __stackBase__;
  33121.       return $49;
  33122.     }
  33123.   } while (0);
  33124.   $retval = 1;
  33125.   var $49 = $retval;
  33126.   STACKTOP = __stackBase__;
  33127.   return $49;
  33128. }
  33129. function __ZN2OTL15match_lookaheadEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_j($c, $count, $lookahead, $match_func, $match_data, $offset) {
  33130.   var __stackBase__ = STACKTOP;
  33131.   STACKTOP = STACKTOP + 84 | 0;
  33132.   var $this_addr_i_i = __stackBase__;
  33133.   var $match_func__addr_i_i = __stackBase__ + 4;
  33134.   var $match_data__addr_i_i = __stackBase__ + 8;
  33135.   var $this_addr_i10 = __stackBase__ + 12;
  33136.   var $match_func_addr_i = __stackBase__ + 16;
  33137.   var $match_data_addr_i = __stackBase__ + 20;
  33138.   var $glyph_data_addr_i = __stackBase__ + 24;
  33139.   var $this_addr_i5 = __stackBase__ + 28;
  33140.   var $retval;
  33141.   var $c_addr;
  33142.   var $count_addr;
  33143.   var $skippy_iter = __stackBase__ + 40;
  33144.   var $i;
  33145.   $c_addr = $c;
  33146.   $count_addr = $count;
  33147.   HEAP[__stackBase__ + 32] = HEAP[$c_addr + 12 | 0];
  33148.   HEAP[__stackBase__ + 36] = 0;
  33149.   __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter, $c_addr, HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] - 1 + $offset | 0, $count_addr, 1);
  33150.   HEAP[$this_addr_i10] = $skippy_iter;
  33151.   HEAP[$match_func_addr_i] = $match_func;
  33152.   HEAP[$match_data_addr_i] = $match_data;
  33153.   HEAP[$glyph_data_addr_i] = $lookahead;
  33154.   var $this1_i11 = HEAP[$this_addr_i10];
  33155.   var $19 = HEAP[$match_func_addr_i];
  33156.   var $20 = HEAP[$match_data_addr_i];
  33157.   HEAP[$this_addr_i_i] = $this1_i11 + 8 | 0;
  33158.   HEAP[$match_func__addr_i_i] = $19;
  33159.   HEAP[$match_data__addr_i_i] = $20;
  33160.   var $this1_i_i = HEAP[$this_addr_i_i];
  33161.   HEAP[$this1_i_i + 16 | 0] = HEAP[$match_func__addr_i_i];
  33162.   HEAP[$this1_i_i + 20 | 0] = HEAP[$match_data__addr_i_i];
  33163.   HEAP[$this1_i11 + 32 | 0] = HEAP[$glyph_data_addr_i];
  33164.   HEAP[$this_addr_i5] = $skippy_iter;
  33165.   var $this1_i6 = HEAP[$this_addr_i5];
  33166.   do {
  33167.     if ((HEAP[$this1_i6 + 36 | 0] | 0) != 0) {
  33168.       if (!((HEAP[$this1_i6 + 36 | 0] + HEAP[$this1_i6 | 0] | 0) >>> 0 >= HEAP[$this1_i6 + 40 | 0] >>> 0)) {
  33169.         break;
  33170.       }
  33171.       $retval = 0;
  33172.       var $49 = $retval;
  33173.       STACKTOP = __stackBase__;
  33174.       return $49;
  33175.     } else {
  33176.     }
  33177.   } while (0);
  33178.   $i = 0;
  33179.   L103 : do {
  33180.     if ($i >>> 0 < $count_addr >>> 0) {
  33181.       while (1) {
  33182.         if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter)) {
  33183.           break;
  33184.         }
  33185.         $i = $i + 1 | 0;
  33186.         if ($i >>> 0 >= $count_addr >>> 0) {
  33187.           break L103;
  33188.         }
  33189.       }
  33190.       $retval = 0;
  33191.       var $49 = $retval;
  33192.       STACKTOP = __stackBase__;
  33193.       return $49;
  33194.     }
  33195.   } while (0);
  33196.   $retval = 1;
  33197.   var $49 = $retval;
  33198.   STACKTOP = __stackBase__;
  33199.   return $49;
  33200. }
  33201. function __ZN2OTL12apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_jPKNS_12LookupRecordE($c, $count, $input, $match_func, $match_data, $lookupCount, $lookupRecord) {
  33202.   var label = 0;
  33203.   var __stackBase__ = STACKTOP;
  33204.   STACKTOP = STACKTOP + 262 | 0;
  33205.   var $retval_i144 = __stackBase__;
  33206.   var $this_addr_i145 = __stackBase__ + 1;
  33207.   var $lookup_index_addr_i146 = __stackBase__ + 5;
  33208.   var $ret_i147;
  33209.   var $this_addr_i_i130 = __stackBase__ + 9;
  33210.   var $this_addr_i131 = __stackBase__ + 13;
  33211.   var $this_addr_i_i121 = __stackBase__ + 17;
  33212.   var $this_addr_i123 = __stackBase__ + 21;
  33213.   var $syllable_addr_i124 = __stackBase__ + 25;
  33214.   var $this_addr_i_i107 = __stackBase__ + 29;
  33215.   var $this_addr_i108 = __stackBase__ + 33;
  33216.   var $this_addr_i79 = __stackBase__ + 37;
  33217.   var $this_addr_i72 = __stackBase__ + 41;
  33218.   var $i_addr_i73 = __stackBase__ + 45;
  33219.   var $this_addr_i_i65 = __stackBase__ + 49;
  33220.   var $match_func__addr_i_i = __stackBase__ + 53;
  33221.   var $match_data__addr_i_i = __stackBase__ + 57;
  33222.   var $this_addr_i66 = __stackBase__ + 61;
  33223.   var $match_func_addr_i = __stackBase__ + 65;
  33224.   var $match_data_addr_i = __stackBase__ + 69;
  33225.   var $glyph_data_addr_i = __stackBase__ + 73;
  33226.   var $this_addr_i37 = __stackBase__ + 77;
  33227.   var $this_addr_i_i23 = __stackBase__ + 81;
  33228.   var $this_addr_i24 = __stackBase__ + 85;
  33229.   var $this_addr_i_i19 = __stackBase__ + 89;
  33230.   var $this_addr_i20 = __stackBase__ + 93;
  33231.   var $retval_i = __stackBase__ + 97;
  33232.   var $this_addr_i9 = __stackBase__ + 98;
  33233.   var $lookup_index_addr_i = __stackBase__ + 102;
  33234.   var $ret_i;
  33235.   var $this_addr_i_i = __stackBase__ + 106;
  33236.   var $this_addr_i7 = __stackBase__ + 110;
  33237.   var $syllable_addr_i = __stackBase__ + 114;
  33238.   var $this_addr_i = __stackBase__ + 126;
  33239.   var $retval;
  33240.   var $c_addr;
  33241.   var $count_addr;
  33242.   var $input_addr;
  33243.   var $match_func_addr;
  33244.   var $match_data_addr;
  33245.   var $lookupCount_addr;
  33246.   var $lookupRecord_addr;
  33247.   var $skippy_iter = __stackBase__ + 130;
  33248.   var $syllable;
  33249.   var $i;
  33250.   var $old_pos;
  33251.   var $tmp = __stackBase__ + 174;
  33252.   var $old_pos55;
  33253.   var $tmp75 = __stackBase__ + 218;
  33254.   $c_addr = $c;
  33255.   $count_addr = $count;
  33256.   $input_addr = $input;
  33257.   $match_func_addr = $match_func;
  33258.   $match_data_addr = $match_data;
  33259.   $lookupCount_addr = $lookupCount;
  33260.   $lookupRecord_addr = $lookupRecord;
  33261.   HEAP[__stackBase__ + 118] = HEAP[$c_addr + 12 | 0];
  33262.   HEAP[__stackBase__ + 122] = 0;
  33263.   do {
  33264.     if (($count_addr | 0) != 0) {
  33265.       if (($count_addr + HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] | 0) >>> 0 > HEAP[HEAP[$c_addr + 12 | 0] + 84 | 0] >>> 0) {
  33266.         break;
  33267.       }
  33268.       __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter, $c_addr, HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0], $count_addr - 1 | 0, 0);
  33269.       HEAP[$this_addr_i66] = $skippy_iter;
  33270.       HEAP[$match_func_addr_i] = $match_func_addr;
  33271.       HEAP[$match_data_addr_i] = $match_data_addr;
  33272.       HEAP[$glyph_data_addr_i] = $input_addr;
  33273.       var $this1_i67 = HEAP[$this_addr_i66];
  33274.       var $28 = HEAP[$match_func_addr_i];
  33275.       var $29 = HEAP[$match_data_addr_i];
  33276.       HEAP[$this_addr_i_i65] = $this1_i67 + 8 | 0;
  33277.       HEAP[$match_func__addr_i_i] = $28;
  33278.       HEAP[$match_data__addr_i_i] = $29;
  33279.       var $this1_i_i69 = HEAP[$this_addr_i_i65];
  33280.       HEAP[$this1_i_i69 + 16 | 0] = HEAP[$match_func__addr_i_i];
  33281.       HEAP[$this1_i_i69 + 20 | 0] = HEAP[$match_data__addr_i_i];
  33282.       HEAP[$this1_i67 + 32 | 0] = HEAP[$glyph_data_addr_i];
  33283.       HEAP[$this_addr_i72] = HEAP[$c_addr + 12 | 0];
  33284.       HEAP[$i_addr_i73] = 0;
  33285.       var $this1_i74 = HEAP[$this_addr_i72];
  33286.       $syllable = HEAP[HEAP[$this1_i74 + 96 | 0] + ((HEAP[$i_addr_i73] + HEAP[$this1_i74 + 80 | 0]) * 20 & -1) + 14 | 0];
  33287.       $i = 0;
  33288.       do {
  33289.         if (($lookupCount_addr | 0) != 0) {
  33290.           HEAP[$this_addr_i108] = $lookupRecord_addr | 0;
  33291.           HEAP[$this_addr_i_i107] = HEAP[$this_addr_i108] | 0;
  33292.           var $this1_i_i111 = HEAP[$this_addr_i_i107];
  33293.           if (0 != (((HEAP[$this1_i_i111 | 0] & 255) << 8) + (HEAP[$this1_i_i111 + 1 | 0] & 255) & 65535 | 0)) {
  33294.             label = 101;
  33295.             break;
  33296.           }
  33297.           $old_pos = HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0];
  33298.           HEAP[$this_addr_i131] = $lookupRecord_addr + 2 | 0;
  33299.           HEAP[$this_addr_i_i130] = HEAP[$this_addr_i131] | 0;
  33300.           var $this1_i_i134 = HEAP[$this_addr_i_i130];
  33301.           var $conv18 = ((HEAP[$this1_i_i134 | 0] & 255) << 8) + (HEAP[$this1_i_i134 + 1 | 0] & 255) & 65535;
  33302.           HEAP[$this_addr_i145] = $c_addr;
  33303.           HEAP[$lookup_index_addr_i146] = $conv18;
  33304.           var $this1_i148 = HEAP[$this_addr_i145];
  33305.           do {
  33306.             if ((HEAP[$this1_i148 + 32 | 0] | 0) == 0) {
  33307.               label = 97;
  33308.             } else {
  33309.               if ((HEAP[$this1_i148 + 28 | 0] | 0) == 0) {
  33310.                 label = 97;
  33311.                 break;
  33312.               }
  33313.               var $nesting_level_left2_i155 = $this1_i148 + 32 | 0;
  33314.               HEAP[$nesting_level_left2_i155] = HEAP[$nesting_level_left2_i155] - 1 | 0;
  33315.               $ret_i147 = FUNCTION_TABLE[HEAP[$this1_i148 + 28 | 0]]($this1_i148, HEAP[$lookup_index_addr_i146]) & 1;
  33316.               var $nesting_level_left5_i160 = $this1_i148 + 32 | 0;
  33317.               HEAP[$nesting_level_left5_i160] = HEAP[$nesting_level_left5_i160] + 1 | 0;
  33318.               HEAP[$retval_i144] = $ret_i147 & 1;
  33319.               break;
  33320.             }
  33321.           } while (0);
  33322.           if (label == 97) {
  33323.             HEAP[$retval_i144] = 0;
  33324.           }
  33325.           $lookupRecord_addr = $lookupRecord_addr + 4 | 0;
  33326.           $lookupCount_addr = $lookupCount_addr - 1 | 0;
  33327.           $i = -$old_pos + HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] + $i | 0;
  33328.           if (!(HEAP[$retval_i144] & 1)) {
  33329.             label = 101;
  33330.             break;
  33331.           }
  33332.           __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($tmp, $c_addr, HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] - 1 | 0, $count_addr - $i | 0, 0);
  33333.           HEAP[$this_addr_i123] = $tmp;
  33334.           HEAP[$syllable_addr_i124] = $syllable & 255;
  33335.           var $conv_i127 = HEAP[$syllable_addr_i124] & 255;
  33336.           HEAP[$this_addr_i_i121] = HEAP[$this_addr_i123] + 8 | 0;
  33337.           HEAP[HEAP[$this_addr_i_i121] + 12 | 0] = $conv_i127;
  33338.           var $109 = $skippy_iter;
  33339.           var $110 = $tmp;
  33340.           for (var $$src = $110, $$dest = $109, $$stop = $$src + 44; $$src < $$stop; $$src++, $$dest++) {
  33341.             HEAP[$$dest] = HEAP[$$src];
  33342.           }
  33343.           break;
  33344.         } else {
  33345.           label = 101;
  33346.         }
  33347.       } while (0);
  33348.       if (label == 101) {
  33349.         HEAP[$this_addr_i79] = HEAP[$c_addr + 12 | 0];
  33350.         var $this1_i80 = HEAP[$this_addr_i79];
  33351.         do {
  33352.           if (HEAP[$this1_i80 + 77 | 0] & 1) {
  33353.             do {
  33354.               if ((HEAP[$this1_i80 + 100 | 0] | 0) != (HEAP[$this1_i80 + 96 | 0] | 0)) {
  33355.                 label = 104;
  33356.               } else {
  33357.                 if ((HEAP[$this1_i80 + 88 | 0] | 0) != (HEAP[$this1_i80 + 80 | 0] | 0)) {
  33358.                   label = 104;
  33359.                   break;
  33360.                 } else {
  33361.                   break;
  33362.                 }
  33363.               }
  33364.             } while (0);
  33365.             if (label == 104) {
  33366.               if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i80, 1, 1)) {
  33367.                 break;
  33368.               }
  33369.               var $123 = HEAP[$this1_i80 + 100 | 0] + (HEAP[$this1_i80 + 88 | 0] * 20 & -1) | 0;
  33370.               var $124 = HEAP[$this1_i80 + 96 | 0] + (HEAP[$this1_i80 + 80 | 0] * 20 & -1) | 0;
  33371.               for (var $$src = $124, $$dest = $123, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  33372.                 HEAP[$$dest] = HEAP[$$src];
  33373.               }
  33374.             }
  33375.             var $out_len11_i100 = $this1_i80 + 88 | 0;
  33376.             HEAP[$out_len11_i100] = HEAP[$out_len11_i100] + 1 | 0;
  33377.             label = 107;
  33378.             break;
  33379.           } else {
  33380.             label = 107;
  33381.           }
  33382.         } while (0);
  33383.         if (label == 107) {
  33384.           var $idx13_i103 = $this1_i80 + 80 | 0;
  33385.           HEAP[$idx13_i103] = HEAP[$idx13_i103] + 1 | 0;
  33386.         }
  33387.         $i = $i + 1 | 0;
  33388.       }
  33389.       L139 : do {
  33390.         if ($i >>> 0 < $count_addr >>> 0) {
  33391.           var $idx43 = $skippy_iter | 0;
  33392.           var $151 = $skippy_iter;
  33393.           var $152 = $tmp75;
  33394.           while (1) {
  33395.             if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter)) {
  33396.               break;
  33397.             }
  33398.             L144 : do {
  33399.               if (HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] >>> 0 < HEAP[$idx43] >>> 0) {
  33400.                 while (1) {
  33401.                   HEAP[$this_addr_i37] = HEAP[$c_addr + 12 | 0];
  33402.                   var $this1_i38 = HEAP[$this_addr_i37];
  33403.                   do {
  33404.                     if (HEAP[$this1_i38 + 77 | 0] & 1) {
  33405.                       do {
  33406.                         if ((HEAP[$this1_i38 + 100 | 0] | 0) != (HEAP[$this1_i38 + 96 | 0] | 0)) {
  33407.                           label = 117;
  33408.                         } else {
  33409.                           if ((HEAP[$this1_i38 + 88 | 0] | 0) != (HEAP[$this1_i38 + 80 | 0] | 0)) {
  33410.                             label = 117;
  33411.                             break;
  33412.                           } else {
  33413.                             break;
  33414.                           }
  33415.                         }
  33416.                       } while (0);
  33417.                       if (label == 117) {
  33418.                         label = 0;
  33419.                         if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i38, 1, 1)) {
  33420.                           break;
  33421.                         }
  33422.                         var $173 = HEAP[$this1_i38 + 100 | 0] + (HEAP[$this1_i38 + 88 | 0] * 20 & -1) | 0;
  33423.                         var $174 = HEAP[$this1_i38 + 96 | 0] + (HEAP[$this1_i38 + 80 | 0] * 20 & -1) | 0;
  33424.                         for (var $$src = $174, $$dest = $173, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  33425.                           HEAP[$$dest] = HEAP[$$src];
  33426.                         }
  33427.                       }
  33428.                       var $out_len11_i58 = $this1_i38 + 88 | 0;
  33429.                       HEAP[$out_len11_i58] = HEAP[$out_len11_i58] + 1 | 0;
  33430.                       label = 120;
  33431.                       break;
  33432.                     } else {
  33433.                       label = 120;
  33434.                     }
  33435.                   } while (0);
  33436.                   if (label == 120) {
  33437.                     label = 0;
  33438.                     var $idx13_i61 = $this1_i38 + 80 | 0;
  33439.                     HEAP[$idx13_i61] = HEAP[$idx13_i61] + 1 | 0;
  33440.                   }
  33441.                   if (HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] >>> 0 >= HEAP[$idx43] >>> 0) {
  33442.                     break L144;
  33443.                   }
  33444.                 }
  33445.               }
  33446.             } while (0);
  33447.             do {
  33448.               if (($lookupCount_addr | 0) != 0) {
  33449.                 HEAP[$this_addr_i24] = $lookupRecord_addr | 0;
  33450.                 HEAP[$this_addr_i_i23] = HEAP[$this_addr_i24] | 0;
  33451.                 var $this1_i_i27 = HEAP[$this_addr_i_i23];
  33452.                 if (($i | 0) != (((HEAP[$this1_i_i27 | 0] & 255) << 8) + (HEAP[$this1_i_i27 + 1 | 0] & 255) & 65535 | 0)) {
  33453.                   label = 130;
  33454.                   break;
  33455.                 }
  33456.                 $old_pos55 = HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0];
  33457.                 HEAP[$this_addr_i20] = $lookupRecord_addr + 2 | 0;
  33458.                 HEAP[$this_addr_i_i19] = HEAP[$this_addr_i20] | 0;
  33459.                 var $this1_i_i22 = HEAP[$this_addr_i_i19];
  33460.                 var $conv62 = ((HEAP[$this1_i_i22 | 0] & 255) << 8) + (HEAP[$this1_i_i22 + 1 | 0] & 255) & 65535;
  33461.                 HEAP[$this_addr_i9] = $c_addr;
  33462.                 HEAP[$lookup_index_addr_i] = $conv62;
  33463.                 var $this1_i10 = HEAP[$this_addr_i9];
  33464.                 do {
  33465.                   if ((HEAP[$this1_i10 + 32 | 0] | 0) == 0) {
  33466.                     label = 126;
  33467.                   } else {
  33468.                     if ((HEAP[$this1_i10 + 28 | 0] | 0) == 0) {
  33469.                       label = 126;
  33470.                       break;
  33471.                     }
  33472.                     var $nesting_level_left2_i = $this1_i10 + 32 | 0;
  33473.                     HEAP[$nesting_level_left2_i] = HEAP[$nesting_level_left2_i] - 1 | 0;
  33474.                     $ret_i = FUNCTION_TABLE[HEAP[$this1_i10 + 28 | 0]]($this1_i10, HEAP[$lookup_index_addr_i]) & 1;
  33475.                     var $nesting_level_left5_i = $this1_i10 + 32 | 0;
  33476.                     HEAP[$nesting_level_left5_i] = HEAP[$nesting_level_left5_i] + 1 | 0;
  33477.                     HEAP[$retval_i] = $ret_i & 1;
  33478.                     break;
  33479.                   }
  33480.                 } while (0);
  33481.                 if (label == 126) {
  33482.                   label = 0;
  33483.                   HEAP[$retval_i] = 0;
  33484.                 }
  33485.                 $lookupRecord_addr = $lookupRecord_addr + 4 | 0;
  33486.                 $lookupCount_addr = $lookupCount_addr - 1 | 0;
  33487.                 $i = -$old_pos55 + HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] + $i | 0;
  33488.                 if (!(HEAP[$retval_i] & 1)) {
  33489.                   label = 130;
  33490.                   break;
  33491.                 }
  33492.                 __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($tmp75, $c_addr, HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] - 1 | 0, $count_addr - $i | 0, 0);
  33493.                 HEAP[$this_addr_i7] = $tmp75;
  33494.                 HEAP[$syllable_addr_i] = $syllable & 255;
  33495.                 var $conv_i = HEAP[$syllable_addr_i] & 255;
  33496.                 HEAP[$this_addr_i_i] = HEAP[$this_addr_i7] + 8 | 0;
  33497.                 HEAP[HEAP[$this_addr_i_i] + 12 | 0] = $conv_i;
  33498.                 for (var $$src = $152, $$dest = $151, $$stop = $$src + 44; $$src < $$stop; $$src++, $$dest++) {
  33499.                   HEAP[$$dest] = HEAP[$$src];
  33500.                 }
  33501.                 break;
  33502.               } else {
  33503.                 label = 130;
  33504.               }
  33505.             } while (0);
  33506.             if (label == 130) {
  33507.               label = 0;
  33508.               HEAP[$this_addr_i] = HEAP[$c_addr + 12 | 0];
  33509.               var $this1_i = HEAP[$this_addr_i];
  33510.               do {
  33511.                 if (HEAP[$this1_i + 77 | 0] & 1) {
  33512.                   do {
  33513.                     if ((HEAP[$this1_i + 100 | 0] | 0) != (HEAP[$this1_i + 96 | 0] | 0)) {
  33514.                       label = 133;
  33515.                     } else {
  33516.                       if ((HEAP[$this1_i + 88 | 0] | 0) != (HEAP[$this1_i + 80 | 0] | 0)) {
  33517.                         label = 133;
  33518.                         break;
  33519.                       } else {
  33520.                         break;
  33521.                       }
  33522.                     }
  33523.                   } while (0);
  33524.                   if (label == 133) {
  33525.                     label = 0;
  33526.                     if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i, 1, 1)) {
  33527.                       break;
  33528.                     }
  33529.                     var $229 = HEAP[$this1_i + 100 | 0] + (HEAP[$this1_i + 88 | 0] * 20 & -1) | 0;
  33530.                     var $230 = HEAP[$this1_i + 96 | 0] + (HEAP[$this1_i + 80 | 0] * 20 & -1) | 0;
  33531.                     for (var $$src = $230, $$dest = $229, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  33532.                       HEAP[$$dest] = HEAP[$$src];
  33533.                     }
  33534.                   }
  33535.                   var $out_len11_i = $this1_i + 88 | 0;
  33536.                   HEAP[$out_len11_i] = HEAP[$out_len11_i] + 1 | 0;
  33537.                   label = 136;
  33538.                   break;
  33539.                 } else {
  33540.                   label = 136;
  33541.                 }
  33542.               } while (0);
  33543.               if (label == 136) {
  33544.                 label = 0;
  33545.                 var $idx13_i = $this1_i + 80 | 0;
  33546.                 HEAP[$idx13_i] = HEAP[$idx13_i] + 1 | 0;
  33547.               }
  33548.               $i = $i + 1 | 0;
  33549.             }
  33550.             if ($i >>> 0 >= $count_addr >>> 0) {
  33551.               break L139;
  33552.             }
  33553.           }
  33554.           $retval = 1;
  33555.           var $237 = $retval;
  33556.           STACKTOP = __stackBase__;
  33557.           return $237;
  33558.         }
  33559.       } while (0);
  33560.       $retval = 1;
  33561.       var $237 = $retval;
  33562.       STACKTOP = __stackBase__;
  33563.       return $237;
  33564.     }
  33565.   } while (0);
  33566.   $retval = 0;
  33567.   var $237 = $retval;
  33568.   STACKTOP = __stackBase__;
  33569.   return $237;
  33570. }
  33571. function __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($this, $c_, $start_index_, $num_items_, $context_match) {
  33572.   var __stackBase__ = STACKTOP;
  33573.   STACKTOP = STACKTOP + 60 | 0;
  33574.   var $this_addr_i14_i = __stackBase__;
  33575.   var $lookup_props__addr_i_i = __stackBase__ + 4;
  33576.   var $this_addr_i9_i = __stackBase__ + 8;
  33577.   var $this_addr_i7_i = __stackBase__ + 12;
  33578.   var $this_addr_i5_i = __stackBase__ + 16;
  33579.   var $mask__addr_i_i = __stackBase__ + 20;
  33580.   var $this_addr_i3_i = __stackBase__ + 24;
  33581.   var $i_addr_i_i = __stackBase__ + 28;
  33582.   var $this_addr_i1_i = __stackBase__ + 32;
  33583.   var $syllable__addr_i_i;
  33584.   var $this_addr_i_i_i = __stackBase__ + 36;
  33585.   var $this_addr_i_i = __stackBase__ + 40;
  33586.   var $this_addr_i = __stackBase__ + 44;
  33587.   var $c__addr_i = __stackBase__ + 48;
  33588.   var $start_index__addr_i = __stackBase__ + 52;
  33589.   var $num_items__addr_i = __stackBase__ + 56;
  33590.   var $context_match_addr_i;
  33591.   HEAP[$this_addr_i] = $this;
  33592.   HEAP[$c__addr_i] = $c_;
  33593.   HEAP[$start_index__addr_i] = $start_index_;
  33594.   HEAP[$num_items__addr_i] = $num_items_;
  33595.   $context_match_addr_i = $context_match & 1 & 1;
  33596.   var $this1_i = HEAP[$this_addr_i];
  33597.   HEAP[$this1_i | 0] = HEAP[$start_index__addr_i];
  33598.   HEAP[$this1_i + 4 | 0] = HEAP[$c__addr_i];
  33599.   HEAP[$this_addr_i_i] = $this1_i + 8 | 0;
  33600.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  33601.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  33602.   HEAP[$this1_i_i_i | 0] = 0;
  33603.   HEAP[$this1_i_i_i + 4 | 0] = 0;
  33604.   HEAP[$this1_i_i_i + 5 | 0] = 0;
  33605.   HEAP[$this1_i_i_i + 8 | 0] = -1;
  33606.   HEAP[$this1_i_i_i + 12 | 0] = 0;
  33607.   HEAP[$this1_i_i_i + 16 | 0] = 0;
  33608.   HEAP[$this1_i_i_i + 20 | 0] = 0;
  33609.   HEAP[$this1_i + 32 | 0] = 0;
  33610.   HEAP[$this1_i + 36 | 0] = HEAP[$num_items__addr_i];
  33611.   HEAP[$this1_i + 40 | 0] = HEAP[HEAP[HEAP[$this1_i + 4 | 0] + 12 | 0] + 84 | 0];
  33612.   var $19 = HEAP[HEAP[$this1_i + 4 | 0] + 36 | 0];
  33613.   HEAP[$this_addr_i14_i] = $this1_i + 8 | 0;
  33614.   HEAP[$lookup_props__addr_i_i] = $19;
  33615.   HEAP[HEAP[$this_addr_i14_i] | 0] = HEAP[$lookup_props__addr_i_i];
  33616.   if ($context_match_addr_i & 1) {
  33617.     var $28 = 1;
  33618.   } else {
  33619.     var $28 = (HEAP[HEAP[$this1_i + 4 | 0] | 0] | 0) == 1;
  33620.   }
  33621.   var $28;
  33622.   HEAP[$this_addr_i9_i] = $this1_i + 8 | 0;
  33623.   HEAP[HEAP[$this_addr_i9_i] + 4 | 0] = $28 & 1 & 1;
  33624.   var $matcher7_i = $this1_i + 8 | 0;
  33625.   do {
  33626.     if ($context_match_addr_i & 1) {
  33627.       var $37 = 1;
  33628.     } else {
  33629.       if ((HEAP[HEAP[$this1_i + 4 | 0] | 0] | 0) == 1) {
  33630.         var $37 = 1;
  33631.         break;
  33632.       }
  33633.       var $37 = HEAP[HEAP[$this1_i + 4 | 0] + 24 | 0] & 1;
  33634.     }
  33635.   } while (0);
  33636.   var $37;
  33637.   HEAP[$this_addr_i7_i] = $matcher7_i;
  33638.   HEAP[HEAP[$this_addr_i7_i] + 5 | 0] = $37 & 1 & 1;
  33639.   if (!($context_match_addr_i & 1)) {
  33640.     var $43 = HEAP[HEAP[$this1_i + 4 | 0] + 20 | 0];
  33641.     HEAP[$this_addr_i5_i] = $this1_i + 8 | 0;
  33642.     HEAP[$mask__addr_i_i] = $43;
  33643.     HEAP[HEAP[$this_addr_i5_i] + 8 | 0] = HEAP[$mask__addr_i_i];
  33644.   }
  33645.   var $matcher19_i = $this1_i + 8 | 0;
  33646.   if ((HEAP[$start_index__addr_i] | 0) != (HEAP[HEAP[HEAP[$this1_i + 4 | 0] + 12 | 0] + 80 | 0] | 0)) {
  33647.     var $cond_i = 0;
  33648.     var $cond_i;
  33649.     var $conv26_i = $cond_i & 255;
  33650.     var $63 = $this_addr_i1_i;
  33651.     HEAP[$this_addr_i1_i] = $matcher19_i;
  33652.     $syllable__addr_i_i = $conv26_i;
  33653.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  33654.     var $64 = $syllable__addr_i_i;
  33655.     var $syllable_i_i = $this1_i2_i + 12 | 0;
  33656.     HEAP[$syllable_i_i] = $64;
  33657.     var $65 = $this_addr_i1_i;
  33658.     var $66 = $this_addr_i;
  33659.     var $67 = $c__addr_i;
  33660.     var $68 = $start_index__addr_i;
  33661.     var $69 = $num_items__addr_i;
  33662.     STACKTOP = __stackBase__;
  33663.     return;
  33664.   }
  33665.   HEAP[$this_addr_i3_i] = HEAP[HEAP[$this1_i + 4 | 0] + 12 | 0];
  33666.   HEAP[$i_addr_i_i] = 0;
  33667.   var $this1_i4_i = HEAP[$this_addr_i3_i];
  33668.   var $cond_i = HEAP[HEAP[$this1_i4_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i4_i + 80 | 0]) * 20 & -1) + 14 | 0] & 255;
  33669.   var $cond_i;
  33670.   var $conv26_i = $cond_i & 255;
  33671.   var $63 = $this_addr_i1_i;
  33672.   HEAP[$this_addr_i1_i] = $matcher19_i;
  33673.   $syllable__addr_i_i = $conv26_i;
  33674.   var $this1_i2_i = HEAP[$this_addr_i1_i];
  33675.   var $64 = $syllable__addr_i_i;
  33676.   var $syllable_i_i = $this1_i2_i + 12 | 0;
  33677.   HEAP[$syllable_i_i] = $64;
  33678.   var $65 = $this_addr_i1_i;
  33679.   var $66 = $this_addr_i;
  33680.   var $67 = $c__addr_i;
  33681.   var $68 = $start_index__addr_i;
  33682.   var $69 = $num_items__addr_i;
  33683.   STACKTOP = __stackBase__;
  33684.   return;
  33685. }
  33686. function __ZNK2OT18hb_apply_context_t9matcher_t8may_skipEPKS0_RK15hb_glyph_info_t($this, $c, $info) {
  33687.   var __stackBase__ = STACKTOP;
  33688.   STACKTOP = STACKTOP + 16 | 0;
  33689.   var $info_addr_i17 = __stackBase__;
  33690.   var $info_addr_i8 = __stackBase__ + 4;
  33691.   var $info_addr_i1 = __stackBase__ + 8;
  33692.   var $info_addr_i = __stackBase__ + 12;
  33693.   var $retval;
  33694.   var $info_addr;
  33695.   $info_addr = $info;
  33696.   var $this1 = $this;
  33697.   if (!__ZNK2OT18hb_apply_context_t16match_propertiesEjjj($c, HEAP[$info_addr | 0], HEAP[$info_addr + 12 | 0] & 65535, HEAP[$this1 | 0])) {
  33698.     $retval = 1;
  33699.     var $29 = $retval;
  33700.     STACKTOP = __stackBase__;
  33701.     return $29;
  33702.   }
  33703.   HEAP[$info_addr_i] = $info_addr;
  33704.   do {
  33705.     if (((HEAP[HEAP[$info_addr_i] + 16 | 0] & 128 | 0) != 0 & 1 | 0) != 0) {
  33706.       if (!(HEAP[$this1 + 4 | 0] & 1)) {
  33707.         HEAP[$info_addr_i17] = $info_addr;
  33708.         if (((HEAP[HEAP[$info_addr_i17] + 16 | 0] & 64 | 0) != 0 & 1 | 0) != 0) {
  33709.           break;
  33710.         }
  33711.       }
  33712.       if (!(HEAP[$this1 + 5 | 0] & 1)) {
  33713.         HEAP[$info_addr_i8] = $info_addr;
  33714.         if (((HEAP[HEAP[$info_addr_i8] + 16 | 0] & 32 | 0) != 0 & 1 | 0) != 0) {
  33715.           break;
  33716.         }
  33717.       }
  33718.       HEAP[$info_addr_i1] = $info_addr;
  33719.       if ((HEAP[HEAP[$info_addr_i1] + 15 | 0] & 16 | 0) != 0) {
  33720.         break;
  33721.       }
  33722.       $retval = 2;
  33723.       var $29 = $retval;
  33724.       STACKTOP = __stackBase__;
  33725.       return $29;
  33726.     }
  33727.   } while (0);
  33728.   $retval = 0;
  33729.   var $29 = $retval;
  33730.   STACKTOP = __stackBase__;
  33731.   return $29;
  33732. }
  33733. function __ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($this) {
  33734.   var label = 0;
  33735.   var __stackBase__ = STACKTOP;
  33736.   STACKTOP = STACKTOP + 20 | 0;
  33737.   var $retval_i = __stackBase__;
  33738.   var $this_addr_i1 = __stackBase__ + 4;
  33739.   var $info_addr_i = __stackBase__ + 8;
  33740.   var $glyph_data_addr_i = __stackBase__ + 12;
  33741.   var $this_addr_i = __stackBase__ + 16;
  33742.   var $retval;
  33743.   var $info;
  33744.   var $skip;
  33745.   var $this1 = $this;
  33746.   if (HEAP[$this1 + 36 | 0] >>> 0 <= 0) {
  33747.     ___assert_func(103192, 408, 108640, 103176);
  33748.   }
  33749.   var $idx = $this1 | 0;
  33750.   var $idx2 = $this1 | 0;
  33751.   var $c = $this1 + 4 | 0;
  33752.   var $matcher = $this1 + 8 | 0;
  33753.   var $c4 = $this1 + 4 | 0;
  33754.   var $matcher7 = $this1 + 8 | 0;
  33755.   var $match_glyph_data = $this1 + 32 | 0;
  33756.   while (1) {
  33757.     HEAP[$this_addr_i] = $this1;
  33758.     var $this1_i = HEAP[$this_addr_i];
  33759.     if ((HEAP[$this1_i + 36 | 0] | 0) != 0) {
  33760.       if (!((HEAP[$this1_i + 36 | 0] + HEAP[$this1_i | 0] | 0) >>> 0 >= HEAP[$this1_i + 40 | 0] >>> 0 ^ 1)) {
  33761.         label = 189;
  33762.         break;
  33763.       }
  33764.     }
  33765.     HEAP[$idx] = HEAP[$idx] + 1 | 0;
  33766.     $info = HEAP[HEAP[HEAP[$c] + 12 | 0] + 96 | 0] + (HEAP[$idx2] * 20 & -1) | 0;
  33767.     var $call5 = __ZNK2OT18hb_apply_context_t9matcher_t8may_skipEPKS0_RK15hb_glyph_info_t($matcher, HEAP[$c4], $info);
  33768.     $skip = $call5;
  33769.     if (($call5 | 0) == 1) {
  33770.       continue;
  33771.     }
  33772.     var $24 = HEAP[$match_glyph_data];
  33773.     HEAP[$this_addr_i1] = $matcher7;
  33774.     HEAP[$info_addr_i] = $info;
  33775.     HEAP[$glyph_data_addr_i] = $24;
  33776.     var $this1_i2 = HEAP[$this_addr_i1];
  33777.     do {
  33778.       if ((HEAP[$this1_i2 + 8 | 0] & HEAP[HEAP[$info_addr_i] + 4 | 0] | 0) != 0) {
  33779.         if (HEAP[$this1_i2 + 12 | 0] << 24 >> 24 != 0) {
  33780.           if ((HEAP[$this1_i2 + 12 | 0] & 255 | 0) != (HEAP[HEAP[$info_addr_i] + 14 | 0] & 255 | 0)) {
  33781.             label = 179;
  33782.             break;
  33783.           }
  33784.         }
  33785.         if ((HEAP[$this1_i2 + 16 | 0] | 0) != 0) {
  33786.           var $cond_i = FUNCTION_TABLE[HEAP[$this1_i2 + 16 | 0]](HEAP[HEAP[$info_addr_i] | 0], HEAP[$glyph_data_addr_i], HEAP[$this1_i2 + 20 | 0]) ? 1 : 0;
  33787.           HEAP[$retval_i] = $cond_i;
  33788.           var $38 = $cond_i;
  33789.           break;
  33790.         } else {
  33791.           HEAP[$retval_i] = 2;
  33792.           var $38 = 2;
  33793.           break;
  33794.         }
  33795.       } else {
  33796.         label = 179;
  33797.       }
  33798.     } while (0);
  33799.     if (label == 179) {
  33800.       label = 0;
  33801.       HEAP[$retval_i] = 0;
  33802.       var $38 = 0;
  33803.     }
  33804.     var $38;
  33805.     if (($38 | 0) == 1) {
  33806.       label = 186;
  33807.       break;
  33808.     }
  33809.     var $cmp11 = ($skip | 0) == 0;
  33810.     if (($38 | 0) == 2) {
  33811.       if ($cmp11) {
  33812.         label = 186;
  33813.         break;
  33814.       } else {
  33815.         continue;
  33816.       }
  33817.     } else {
  33818.       if ($cmp11) {
  33819.         label = 188;
  33820.         break;
  33821.       } else {
  33822.         continue;
  33823.       }
  33824.     }
  33825.   }
  33826.   if (label == 186) {
  33827.     var $num_items13 = $this1 + 36 | 0;
  33828.     HEAP[$num_items13] = HEAP[$num_items13] - 1 | 0;
  33829.     var $match_glyph_data14 = $this1 + 32 | 0;
  33830.     HEAP[$match_glyph_data14] = HEAP[$match_glyph_data14] + 2 | 0;
  33831.     $retval = 1;
  33832.     var $43 = $retval;
  33833.     STACKTOP = __stackBase__;
  33834.     return $43;
  33835.   } else if (label == 188) {
  33836.     $retval = 0;
  33837.     var $43 = $retval;
  33838.     STACKTOP = __stackBase__;
  33839.     return $43;
  33840.   } else if (label == 189) {
  33841.     $retval = 0;
  33842.     var $43 = $retval;
  33843.     STACKTOP = __stackBase__;
  33844.     return $43;
  33845.   }
  33846. }
  33847. function __ZN2OT18hb_apply_context_t28skipping_backward_iterator_tC1EPS0_jjb($this, $c_, $start_index_, $num_items_, $context_match) {
  33848.   var __stackBase__ = STACKTOP;
  33849.   STACKTOP = STACKTOP + 60 | 0;
  33850.   var $this_addr_i14_i = __stackBase__;
  33851.   var $lookup_props__addr_i_i = __stackBase__ + 4;
  33852.   var $this_addr_i9_i = __stackBase__ + 8;
  33853.   var $this_addr_i7_i = __stackBase__ + 12;
  33854.   var $this_addr_i5_i = __stackBase__ + 16;
  33855.   var $mask__addr_i_i = __stackBase__ + 20;
  33856.   var $this_addr_i3_i = __stackBase__ + 24;
  33857.   var $i_addr_i_i = __stackBase__ + 28;
  33858.   var $this_addr_i1_i = __stackBase__ + 32;
  33859.   var $syllable__addr_i_i;
  33860.   var $this_addr_i_i_i = __stackBase__ + 36;
  33861.   var $this_addr_i_i = __stackBase__ + 40;
  33862.   var $this_addr_i = __stackBase__ + 44;
  33863.   var $c__addr_i = __stackBase__ + 48;
  33864.   var $start_index__addr_i = __stackBase__ + 52;
  33865.   var $num_items__addr_i = __stackBase__ + 56;
  33866.   var $context_match_addr_i;
  33867.   HEAP[$this_addr_i] = $this;
  33868.   HEAP[$c__addr_i] = $c_;
  33869.   HEAP[$start_index__addr_i] = $start_index_;
  33870.   HEAP[$num_items__addr_i] = $num_items_;
  33871.   $context_match_addr_i = $context_match & 1 & 1;
  33872.   var $this1_i = HEAP[$this_addr_i];
  33873.   HEAP[$this1_i | 0] = HEAP[$start_index__addr_i];
  33874.   HEAP[$this1_i + 4 | 0] = HEAP[$c__addr_i];
  33875.   HEAP[$this_addr_i_i] = $this1_i + 8 | 0;
  33876.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  33877.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  33878.   HEAP[$this1_i_i_i | 0] = 0;
  33879.   HEAP[$this1_i_i_i + 4 | 0] = 0;
  33880.   HEAP[$this1_i_i_i + 5 | 0] = 0;
  33881.   HEAP[$this1_i_i_i + 8 | 0] = -1;
  33882.   HEAP[$this1_i_i_i + 12 | 0] = 0;
  33883.   HEAP[$this1_i_i_i + 16 | 0] = 0;
  33884.   HEAP[$this1_i_i_i + 20 | 0] = 0;
  33885.   HEAP[$this1_i + 32 | 0] = 0;
  33886.   HEAP[$this1_i + 36 | 0] = HEAP[$num_items__addr_i];
  33887.   var $16 = HEAP[HEAP[$this1_i + 4 | 0] + 36 | 0];
  33888.   HEAP[$this_addr_i14_i] = $this1_i + 8 | 0;
  33889.   HEAP[$lookup_props__addr_i_i] = $16;
  33890.   HEAP[HEAP[$this_addr_i14_i] | 0] = HEAP[$lookup_props__addr_i_i];
  33891.   if ($context_match_addr_i & 1) {
  33892.     var $25 = 1;
  33893.   } else {
  33894.     var $25 = (HEAP[HEAP[$this1_i + 4 | 0] | 0] | 0) == 1;
  33895.   }
  33896.   var $25;
  33897.   HEAP[$this_addr_i9_i] = $this1_i + 8 | 0;
  33898.   HEAP[HEAP[$this_addr_i9_i] + 4 | 0] = $25 & 1 & 1;
  33899.   var $matcher6_i = $this1_i + 8 | 0;
  33900.   do {
  33901.     if ($context_match_addr_i & 1) {
  33902.       var $34 = 1;
  33903.     } else {
  33904.       if ((HEAP[HEAP[$this1_i + 4 | 0] | 0] | 0) == 1) {
  33905.         var $34 = 1;
  33906.         break;
  33907.       }
  33908.       var $34 = HEAP[HEAP[$this1_i + 4 | 0] + 24 | 0] & 1;
  33909.     }
  33910.   } while (0);
  33911.   var $34;
  33912.   HEAP[$this_addr_i7_i] = $matcher6_i;
  33913.   HEAP[HEAP[$this_addr_i7_i] + 5 | 0] = $34 & 1 & 1;
  33914.   if (!($context_match_addr_i & 1)) {
  33915.     var $40 = HEAP[HEAP[$this1_i + 4 | 0] + 20 | 0];
  33916.     HEAP[$this_addr_i5_i] = $this1_i + 8 | 0;
  33917.     HEAP[$mask__addr_i_i] = $40;
  33918.     HEAP[HEAP[$this_addr_i5_i] + 8 | 0] = HEAP[$mask__addr_i_i];
  33919.   }
  33920.   var $matcher18_i = $this1_i + 8 | 0;
  33921.   if ((HEAP[$start_index__addr_i] | 0) != (HEAP[HEAP[HEAP[$this1_i + 4 | 0] + 12 | 0] + 80 | 0] | 0)) {
  33922.     var $cond_i = 0;
  33923.     var $cond_i;
  33924.     var $conv24_i = $cond_i & 255;
  33925.     var $60 = $this_addr_i1_i;
  33926.     HEAP[$this_addr_i1_i] = $matcher18_i;
  33927.     $syllable__addr_i_i = $conv24_i;
  33928.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  33929.     var $61 = $syllable__addr_i_i;
  33930.     var $syllable_i_i = $this1_i2_i + 12 | 0;
  33931.     HEAP[$syllable_i_i] = $61;
  33932.     var $62 = $this_addr_i1_i;
  33933.     var $63 = $this_addr_i;
  33934.     var $64 = $c__addr_i;
  33935.     var $65 = $start_index__addr_i;
  33936.     var $66 = $num_items__addr_i;
  33937.     STACKTOP = __stackBase__;
  33938.     return;
  33939.   }
  33940.   HEAP[$this_addr_i3_i] = HEAP[HEAP[$this1_i + 4 | 0] + 12 | 0];
  33941.   HEAP[$i_addr_i_i] = 0;
  33942.   var $this1_i4_i = HEAP[$this_addr_i3_i];
  33943.   var $cond_i = HEAP[HEAP[$this1_i4_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i4_i + 80 | 0]) * 20 & -1) + 14 | 0] & 255;
  33944.   var $cond_i;
  33945.   var $conv24_i = $cond_i & 255;
  33946.   var $60 = $this_addr_i1_i;
  33947.   HEAP[$this_addr_i1_i] = $matcher18_i;
  33948.   $syllable__addr_i_i = $conv24_i;
  33949.   var $this1_i2_i = HEAP[$this_addr_i1_i];
  33950.   var $61 = $syllable__addr_i_i;
  33951.   var $syllable_i_i = $this1_i2_i + 12 | 0;
  33952.   HEAP[$syllable_i_i] = $61;
  33953.   var $62 = $this_addr_i1_i;
  33954.   var $63 = $this_addr_i;
  33955.   var $64 = $c__addr_i;
  33956.   var $65 = $start_index__addr_i;
  33957.   var $66 = $num_items__addr_i;
  33958.   STACKTOP = __stackBase__;
  33959.   return;
  33960. }
  33961. function __ZNK2OT18hb_apply_context_t16match_propertiesEjjj($this, $glyph, $glyph_props, $lookup_props) {
  33962.   var __stackBase__ = STACKTOP;
  33963.   STACKTOP = STACKTOP + 202 | 0;
  33964.   var $X_addr_i_i_i_i_i_i = __stackBase__;
  33965.   var $P_addr_i_i_i_i_i = __stackBase__ + 4;
  33966.   var $offset_addr_i_i_i21_i_i = __stackBase__ + 8;
  33967.   var $this_addr_i_i_i_i22_i_i = __stackBase__ + 12;
  33968.   var $this_addr_i_i_i23_i_i = __stackBase__ + 16;
  33969.   var $retval_i_i_i_i = __stackBase__ + 20;
  33970.   var $this_addr_i_i24_i_i = __stackBase__ + 24;
  33971.   var $base_addr_i_i_i_i = __stackBase__ + 28;
  33972.   var $offset_i_i_i_i = __stackBase__ + 32;
  33973.   var $base_addr_i_i_i = __stackBase__ + 36;
  33974.   var $offset_addr_i_i_i = __stackBase__ + 40;
  33975.   var $X_addr_i_i_i_i_i_i_i_i = __stackBase__ + 44;
  33976.   var $P_addr_i_i_i_i_i_i_i = __stackBase__ + 48;
  33977.   var $offset_addr_i_i_i_i_i_i_i = __stackBase__ + 52;
  33978.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 56;
  33979.   var $this_addr_i_i_i1_i_i_i_i = __stackBase__ + 60;
  33980.   var $retval_i_i_i_i_i_i = __stackBase__ + 64;
  33981.   var $this_addr_i_i2_i_i_i_i = __stackBase__ + 68;
  33982.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 72;
  33983.   var $offset_i_i_i_i_i_i = __stackBase__ + 76;
  33984.   var $base_addr_i_i_i_i_i = __stackBase__ + 80;
  33985.   var $offset_addr_i_i_i_i_i = __stackBase__ + 84;
  33986.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 88;
  33987.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 92;
  33988.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 96;
  33989.   var $retval_i_i_i_i_i = __stackBase__ + 100;
  33990.   var $this_addr_i_i1_i1_i_i = __stackBase__ + 104;
  33991.   var $i_addr_i_i_i_i_i = __stackBase__ + 108;
  33992.   var $this_addr_i2_i2_i_i = __stackBase__ + 112;
  33993.   var $set_index_addr_i_i_i_i = __stackBase__ + 116;
  33994.   var $glyph_id_addr_i_i_i_i = __stackBase__ + 120;
  33995.   var $ref_tmp_i_i_i_i = __stackBase__ + 124;
  33996.   var $this_addr_i_i_i3_i_i = __stackBase__ + 128;
  33997.   var $this_addr_i_i4_i_i = __stackBase__ + 132;
  33998.   var $retval_i_i_i = __stackBase__ + 136;
  33999.   var $this_addr_i5_i_i = __stackBase__ + 137;
  34000.   var $set_index_addr_i_i_i = __stackBase__ + 141;
  34001.   var $glyph_id_addr_i_i_i = __stackBase__ + 145;
  34002.   var $this_addr_i_i1_i_i_i = __stackBase__ + 149;
  34003.   var $this_addr_i2_i_i_i = __stackBase__ + 153;
  34004.   var $this_addr_i_i_i_i_i = __stackBase__ + 157;
  34005.   var $this_addr_i_i_i_i = __stackBase__ + 161;
  34006.   var $this_addr_i_i_i = __stackBase__ + 165;
  34007.   var $this_addr_i_i = __stackBase__ + 169;
  34008.   var $set_index_addr_i_i = __stackBase__ + 173;
  34009.   var $glyph_id_addr_i_i = __stackBase__ + 177;
  34010.   var $ref_tmp_i_i = __stackBase__ + 181;
  34011.   var $retval_i = __stackBase__ + 185;
  34012.   var $this_addr_i = __stackBase__ + 186;
  34013.   var $glyph_addr_i = __stackBase__ + 190;
  34014.   var $glyph_props_addr_i = __stackBase__ + 194;
  34015.   var $lookup_props_addr_i = __stackBase__ + 198;
  34016.   var $retval;
  34017.   var $glyph_props_addr;
  34018.   var $lookup_props_addr;
  34019.   $glyph_props_addr = $glyph_props;
  34020.   $lookup_props_addr = $lookup_props;
  34021.   if (($glyph_props_addr & 14 & $lookup_props_addr | 0) != 0) {
  34022.     $retval = 0;
  34023.     var $174 = $retval;
  34024.     STACKTOP = __stackBase__;
  34025.     return $174;
  34026.   }
  34027.   if (($glyph_props_addr & 8 | 0) == 0) {
  34028.     $retval = 1;
  34029.     var $174 = $retval;
  34030.     STACKTOP = __stackBase__;
  34031.     return $174;
  34032.   }
  34033.   HEAP[$this_addr_i] = $this;
  34034.   HEAP[$glyph_addr_i] = $glyph;
  34035.   HEAP[$glyph_props_addr_i] = $glyph_props_addr;
  34036.   HEAP[$lookup_props_addr_i] = $lookup_props_addr;
  34037.   do {
  34038.     if ((HEAP[$lookup_props_addr_i] & 16 | 0) != 0) {
  34039.       var $shr_i = HEAP[$lookup_props_addr_i] >>> 16;
  34040.       var $13 = HEAP[$glyph_addr_i];
  34041.       HEAP[$this_addr_i_i] = HEAP[HEAP[$this_addr_i] + 40 | 0];
  34042.       HEAP[$set_index_addr_i_i] = $shr_i;
  34043.       HEAP[$glyph_id_addr_i_i] = $13;
  34044.       var $this1_i_i = HEAP[$this_addr_i_i];
  34045.       HEAP[$this_addr_i_i_i] = $this1_i_i | 0;
  34046.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  34047.       HEAP[$this_addr_i_i_i_i] = $this1_i_i_i | 0;
  34048.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  34049.       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  34050.       var $shl_i_i_i = (((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) << 16;
  34051.       HEAP[$this_addr_i2_i_i_i] = $this1_i_i_i + 2 | 0;
  34052.       HEAP[$this_addr_i_i1_i_i_i] = HEAP[$this_addr_i2_i_i_i] | 0;
  34053.       var $this1_i_i5_i_i_i = HEAP[$this_addr_i_i1_i_i_i];
  34054.       if (((((HEAP[$this1_i_i5_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i + 1 | 0] & 255) & 65535) + $shl_i_i_i | 0) >>> 0 >= 65538) {
  34055.         HEAP[$ref_tmp_i_i] = $this1_i_i;
  34056.         HEAP[$base_addr_i_i_i] = $ref_tmp_i_i;
  34057.         HEAP[$offset_addr_i_i_i] = $this1_i_i + 12 | 0;
  34058.         var $38 = HEAP[HEAP[$base_addr_i_i_i]];
  34059.         HEAP[$this_addr_i_i24_i_i] = HEAP[$offset_addr_i_i_i];
  34060.         HEAP[$base_addr_i_i_i_i] = $38;
  34061.         HEAP[$this_addr_i_i_i23_i_i] = HEAP[$this_addr_i_i24_i_i];
  34062.         HEAP[$this_addr_i_i_i_i22_i_i] = HEAP[$this_addr_i_i_i23_i_i] | 0;
  34063.         var $this1_i_i_i_i28_i_i = HEAP[$this_addr_i_i_i_i22_i_i];
  34064.         HEAP[$offset_i_i_i_i] = ((HEAP[$this1_i_i_i_i28_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i28_i_i + 1 | 0] & 255) & 65535;
  34065.         if ((HEAP[$offset_i_i_i_i] | 0) != 0) {
  34066.           var $56 = HEAP[$offset_i_i_i_i];
  34067.           HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  34068.           HEAP[$offset_addr_i_i_i21_i_i] = $56;
  34069.           HEAP[$retval_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i21_i_i] | 0;
  34070.         } else {
  34071.           HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  34072.           HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  34073.         }
  34074.         var $71 = HEAP[$set_index_addr_i_i];
  34075.         var $72 = HEAP[$glyph_id_addr_i_i];
  34076.         HEAP[$this_addr_i5_i_i] = HEAP[$retval_i_i_i_i];
  34077.         HEAP[$set_index_addr_i_i_i] = $71;
  34078.         HEAP[$glyph_id_addr_i_i_i] = $72;
  34079.         var $this1_i6_i_i = HEAP[$this_addr_i5_i_i];
  34080.         HEAP[$this_addr_i_i4_i_i] = $this1_i6_i_i | 0;
  34081.         HEAP[$this_addr_i_i_i3_i_i] = HEAP[$this_addr_i_i4_i_i] | 0;
  34082.         var $this1_i_i_i9_i_i = HEAP[$this_addr_i_i_i3_i_i];
  34083.         if ((((HEAP[$this1_i_i_i9_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i9_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  34084.           var $83 = HEAP[$set_index_addr_i_i_i];
  34085.           var $84 = HEAP[$glyph_id_addr_i_i_i];
  34086.           HEAP[$this_addr_i2_i2_i_i] = $this1_i6_i_i | 0;
  34087.           HEAP[$set_index_addr_i_i_i_i] = $83;
  34088.           HEAP[$glyph_id_addr_i_i_i_i] = $84;
  34089.           var $this1_i3_i20_i_i = HEAP[$this_addr_i2_i2_i_i];
  34090.           HEAP[$ref_tmp_i_i_i_i] = $this1_i3_i20_i_i;
  34091.           var $90 = HEAP[$set_index_addr_i_i_i_i];
  34092.           HEAP[$this_addr_i_i1_i1_i_i] = $this1_i3_i20_i_i + 2 | 0;
  34093.           HEAP[$i_addr_i_i_i_i_i] = $90;
  34094.           var $this1_i_i4_i_i_i = HEAP[$this_addr_i_i1_i1_i_i];
  34095.           var $94 = HEAP[$i_addr_i_i_i_i_i];
  34096.           HEAP[$this_addr_i_i_i_i_i_i] = $this1_i_i4_i_i_i | 0;
  34097.           HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i] | 0;
  34098.           var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  34099.           if ($94 >>> 0 >= (((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  34100.             HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  34101.             HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  34102.           } else {
  34103.             HEAP[$retval_i_i_i_i_i] = (HEAP[$i_addr_i_i_i_i_i] << 2) + $this1_i_i4_i_i_i + 2 | 0;
  34104.           }
  34105.           var $110 = HEAP[$retval_i_i_i_i_i];
  34106.           HEAP[$base_addr_i_i_i_i_i] = $ref_tmp_i_i_i_i;
  34107.           HEAP[$offset_addr_i_i_i_i_i] = $110;
  34108.           var $116 = HEAP[HEAP[$base_addr_i_i_i_i_i]];
  34109.           HEAP[$this_addr_i_i2_i_i_i_i] = HEAP[$offset_addr_i_i_i_i_i];
  34110.           HEAP[$base_addr_i_i_i_i_i_i] = $116;
  34111.           HEAP[$this_addr_i_i_i1_i_i_i_i] = HEAP[$this_addr_i_i2_i_i_i_i];
  34112.           HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i_i_i_i] | 0;
  34113.           var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  34114.           var $add14_i_i_i_i_i_i_i_i = ((HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i_i_i_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i_i_i_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i + 3 | 0] & 255) | 0;
  34115.           HEAP[$offset_i_i_i_i_i_i] = $add14_i_i_i_i_i_i_i_i;
  34116.           if (($add14_i_i_i_i_i_i_i_i | 0) != 0) {
  34117.             var $135 = HEAP[$offset_i_i_i_i_i_i];
  34118.             HEAP[$P_addr_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  34119.             HEAP[$offset_addr_i_i_i_i_i_i_i] = $135;
  34120.             HEAP[$retval_i_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i] | 0;
  34121.           } else {
  34122.             HEAP[$X_addr_i_i_i_i_i_i_i_i] = 111704;
  34123.             HEAP[$retval_i_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i_i];
  34124.           }
  34125.           var $cmp_i_i_i_i = (__ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i_i_i], HEAP[$glyph_id_addr_i_i_i_i]) | 0) != -1;
  34126.           HEAP[$retval_i_i_i] = $cmp_i_i_i_i;
  34127.         } else {
  34128.           HEAP[$retval_i_i_i] = 0;
  34129.         }
  34130.         var $160 = HEAP[$retval_i_i_i];
  34131.       } else {
  34132.         var $160 = 0;
  34133.       }
  34134.       var $160;
  34135.       HEAP[$retval_i] = $160;
  34136.     } else {
  34137.       if ((HEAP[$lookup_props_addr_i] & 65280 | 0) != 0) {
  34138.         HEAP[$retval_i] = (HEAP[$lookup_props_addr_i] & 65280 | 0) == (HEAP[$glyph_props_addr_i] & 65280 | 0);
  34139.         break;
  34140.       } else {
  34141.         HEAP[$retval_i] = 1;
  34142.         break;
  34143.       }
  34144.     }
  34145.   } while (0);
  34146.   $retval = HEAP[$retval_i];
  34147.   var $174 = $retval;
  34148.   STACKTOP = __stackBase__;
  34149.   return $174;
  34150. }
  34151. function __ZZNK2OT13SortedArrayOfINS_11RangeRecordEE6searchIjEEiRKT_ENS3_IjE3Cmp3cmpE_1PKjPKS1_($a, $b) {
  34152.   var __stackBase__ = STACKTOP;
  34153.   STACKTOP = STACKTOP + 32 | 0;
  34154.   var $this_addr_i_i1_i = __stackBase__;
  34155.   var $this_addr_i2_i = __stackBase__ + 4;
  34156.   var $this_addr_i_i_i = __stackBase__ + 8;
  34157.   var $this_addr_i_i = __stackBase__ + 12;
  34158.   var $this_addr_i = __stackBase__ + 16;
  34159.   var $g_addr_i = __stackBase__ + 20;
  34160.   var $a_i = __stackBase__ + 24;
  34161.   var $b_i = __stackBase__ + 28;
  34162.   var $2 = HEAP[$a];
  34163.   HEAP[$this_addr_i] = $b;
  34164.   HEAP[$g_addr_i] = $2;
  34165.   var $this1_i = HEAP[$this_addr_i];
  34166.   HEAP[$this_addr_i_i] = $this1_i | 0;
  34167.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  34168.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  34169.   HEAP[$a_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  34170.   HEAP[$this_addr_i2_i] = $this1_i + 2 | 0;
  34171.   HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  34172.   var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  34173.   HEAP[$b_i] = ((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535;
  34174.   if (HEAP[$g_addr_i] >>> 0 < HEAP[$a_i] >>> 0) {
  34175.     var $cond5_i = -1;
  34176.     var $cond5_i;
  34177.     var $23 = $this_addr_i;
  34178.     var $24 = $g_addr_i;
  34179.     var $25 = $a_i;
  34180.     var $26 = $b_i;
  34181.     STACKTOP = __stackBase__;
  34182.     return $cond5_i;
  34183.   }
  34184.   var $cond5_i = HEAP[$g_addr_i] >>> 0 <= HEAP[$b_i] >>> 0 ? 0 : 1;
  34185.   var $cond5_i;
  34186.   var $23 = $this_addr_i;
  34187.   var $24 = $g_addr_i;
  34188.   var $25 = $a_i;
  34189.   var $26 = $b_i;
  34190.   STACKTOP = __stackBase__;
  34191.   return $cond5_i;
  34192. }
  34193. function __ZZNK2OT13SortedArrayOfINS_7IntTypeItLj2EEEE6searchIjEEiRKT_ENS4_IjE3Cmp3cmpE_0PKjPKS2_($a, $b) {
  34194.   var __stackBase__ = STACKTOP;
  34195.   STACKTOP = STACKTOP + 12 | 0;
  34196.   var $this_addr_i_i = __stackBase__;
  34197.   var $this_addr_i = __stackBase__ + 4;
  34198.   var $a_addr_i = __stackBase__ + 8;
  34199.   var $b_i = __stackBase__ + 10;
  34200.   var $conv = HEAP[$a] & 65535;
  34201.   HEAP[$this_addr_i] = $b;
  34202.   HEAP[$a_addr_i] = $conv;
  34203.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  34204.   var $this1_i_i = HEAP[$this_addr_i_i];
  34205.   HEAP[$b_i] = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  34206.   if ((HEAP[$a_addr_i] & 65535 | 0) < (HEAP[$b_i] & 65535 | 0)) {
  34207.     var $cond6_i = -1;
  34208.     var $cond6_i;
  34209.     var $14 = $this_addr_i;
  34210.     var $15 = $a_addr_i;
  34211.     var $16 = $b_i;
  34212.     STACKTOP = __stackBase__;
  34213.     return $cond6_i;
  34214.   }
  34215.   var $cond6_i = (HEAP[$a_addr_i] & 65535 | 0) == (HEAP[$b_i] & 65535 | 0) ? 0 : 1;
  34216.   var $cond6_i;
  34217.   var $14 = $this_addr_i;
  34218.   var $15 = $a_addr_i;
  34219.   var $16 = $b_i;
  34220.   STACKTOP = __stackBase__;
  34221.   return $cond6_i;
  34222. }
  34223. function __ZNK2OT13SortedArrayOfINS_11RangeRecordEE6searchIjEEiRKT_($this, $x) {
  34224.   var __stackBase__ = STACKTOP;
  34225.   STACKTOP = STACKTOP + 48 | 0;
  34226.   var $this_addr_i_i1_i = __stackBase__;
  34227.   var $this_addr_i2_i = __stackBase__ + 4;
  34228.   var $this_addr_i_i_i = __stackBase__ + 8;
  34229.   var $this_addr_i_i15 = __stackBase__ + 12;
  34230.   var $this_addr_i16 = __stackBase__ + 16;
  34231.   var $g_addr_i = __stackBase__ + 20;
  34232.   var $a_i = __stackBase__ + 24;
  34233.   var $b_i = __stackBase__ + 28;
  34234.   var $this_addr_i_i1 = __stackBase__ + 32;
  34235.   var $this_addr_i2 = __stackBase__ + 36;
  34236.   var $this_addr_i_i = __stackBase__ + 40;
  34237.   var $this_addr_i = __stackBase__ + 44;
  34238.   var $retval;
  34239.   var $x_addr;
  34240.   var $count;
  34241.   var $i;
  34242.   var $p;
  34243.   $x_addr = $x;
  34244.   var $this1 = $this;
  34245.   HEAP[$this_addr_i] = $this1 | 0;
  34246.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  34247.   var $this1_i_i = HEAP[$this_addr_i_i];
  34248.   $count = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  34249.   if ($count >>> 0 >= 32) {
  34250.     HEAP[$this_addr_i2] = $this1 | 0;
  34251.     HEAP[$this_addr_i_i1] = HEAP[$this_addr_i2] | 0;
  34252.     var $this1_i_i5 = HEAP[$this_addr_i_i1];
  34253.     $p = _bsearch($x_addr, $this1 + 2 | 0, ((HEAP[$this1_i_i5 | 0] & 255) << 8) + (HEAP[$this1_i_i5 + 1 | 0] & 255) & 65535, 6, 72);
  34254.     if (($p | 0) != 0) {
  34255.       var $cond = ($p - ($this1 + 2) | 0) / 6 & -1;
  34256.     } else {
  34257.       var $cond = -1;
  34258.     }
  34259.     var $cond;
  34260.     $retval = $cond;
  34261.     var $56 = $retval;
  34262.     STACKTOP = __stackBase__;
  34263.     return $56;
  34264.   }
  34265.   $i = 0;
  34266.   L322 : do {
  34267.     if ($i >>> 0 < $count >>> 0) {
  34268.       var $array = $this1 + 2 | 0;
  34269.       while (1) {
  34270.         var $29 = HEAP[$x_addr];
  34271.         HEAP[$this_addr_i16] = $array + ($i * 6 & -1) | 0;
  34272.         HEAP[$g_addr_i] = $29;
  34273.         var $this1_i17 = HEAP[$this_addr_i16];
  34274.         HEAP[$this_addr_i_i15] = $this1_i17 | 0;
  34275.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i15] | 0;
  34276.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  34277.         HEAP[$a_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  34278.         HEAP[$this_addr_i2_i] = $this1_i17 + 2 | 0;
  34279.         HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  34280.         var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  34281.         HEAP[$b_i] = ((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535;
  34282.         if (HEAP[$g_addr_i] >>> 0 < HEAP[$a_i] >>> 0) {
  34283.           var $cond5_i = -1;
  34284.         } else {
  34285.           var $cond5_i = HEAP[$g_addr_i] >>> 0 <= HEAP[$b_i] >>> 0 ? 0 : 1;
  34286.         }
  34287.         var $cond5_i;
  34288.         var $38 = $i;
  34289.         if (($cond5_i | 0) == 0) {
  34290.           break;
  34291.         }
  34292.         $i = $38 + 1 | 0;
  34293.         if ($i >>> 0 >= $count >>> 0) {
  34294.           break L322;
  34295.         }
  34296.       }
  34297.       $retval = $38;
  34298.       var $56 = $retval;
  34299.       STACKTOP = __stackBase__;
  34300.       return $56;
  34301.     }
  34302.   } while (0);
  34303.   $retval = -1;
  34304.   var $56 = $retval;
  34305.   STACKTOP = __stackBase__;
  34306.   return $56;
  34307. }
  34308. function __ZN2OT18hb_apply_context_t28skipping_backward_iterator_t4prevEv($this) {
  34309.   var label = 0;
  34310.   var __stackBase__ = STACKTOP;
  34311.   STACKTOP = STACKTOP + 20 | 0;
  34312.   var $retval_i = __stackBase__;
  34313.   var $this_addr_i1 = __stackBase__ + 4;
  34314.   var $info_addr_i = __stackBase__ + 8;
  34315.   var $glyph_data_addr_i = __stackBase__ + 12;
  34316.   var $this_addr_i = __stackBase__ + 16;
  34317.   var $retval;
  34318.   var $info;
  34319.   var $skip;
  34320.   var $this1 = $this;
  34321.   if (HEAP[$this1 + 36 | 0] >>> 0 <= 0) {
  34322.     ___assert_func(103192, 478, 108568, 103176);
  34323.   }
  34324.   HEAP[$this_addr_i] = $this1;
  34325.   var $this1_i5 = HEAP[$this_addr_i];
  34326.   L338 : do {
  34327.     if (HEAP[$this1_i5 | 0] >>> 0 < HEAP[$this1_i5 + 36 | 0] >>> 0 ^ 1) {
  34328.       var $idx = $this1 | 0;
  34329.       var $idx2 = $this1 | 0;
  34330.       var $c = $this1 + 4 | 0;
  34331.       var $matcher = $this1 + 8 | 0;
  34332.       var $c3 = $this1 + 4 | 0;
  34333.       var $matcher6 = $this1 + 8 | 0;
  34334.       var $match_glyph_data = $this1 + 32 | 0;
  34335.       L340 : while (1) {
  34336.         HEAP[$idx] = HEAP[$idx] - 1 | 0;
  34337.         $info = HEAP[HEAP[HEAP[$c] + 12 | 0] + 100 | 0] + (HEAP[$idx2] * 20 & -1) | 0;
  34338.         var $call4 = __ZNK2OT18hb_apply_context_t9matcher_t8may_skipEPKS0_RK15hb_glyph_info_t($matcher, HEAP[$c3], $info);
  34339.         $skip = $call4;
  34340.         do {
  34341.           if (($call4 | 0) != 1) {
  34342.             var $23 = HEAP[$match_glyph_data];
  34343.             HEAP[$this_addr_i1] = $matcher6;
  34344.             HEAP[$info_addr_i] = $info;
  34345.             HEAP[$glyph_data_addr_i] = $23;
  34346.             var $this1_i2 = HEAP[$this_addr_i1];
  34347.             do {
  34348.               if ((HEAP[$this1_i2 + 8 | 0] & HEAP[HEAP[$info_addr_i] + 4 | 0] | 0) != 0) {
  34349.                 if (HEAP[$this1_i2 + 12 | 0] << 24 >> 24 != 0) {
  34350.                   if ((HEAP[$this1_i2 + 12 | 0] & 255 | 0) != (HEAP[HEAP[$info_addr_i] + 14 | 0] & 255 | 0)) {
  34351.                     label = 269;
  34352.                     break;
  34353.                   }
  34354.                 }
  34355.                 if ((HEAP[$this1_i2 + 16 | 0] | 0) != 0) {
  34356.                   var $cond_i = FUNCTION_TABLE[HEAP[$this1_i2 + 16 | 0]](HEAP[HEAP[$info_addr_i] | 0], HEAP[$glyph_data_addr_i], HEAP[$this1_i2 + 20 | 0]) ? 1 : 0;
  34357.                   HEAP[$retval_i] = $cond_i;
  34358.                   var $37 = $cond_i;
  34359.                   break;
  34360.                 } else {
  34361.                   HEAP[$retval_i] = 2;
  34362.                   var $37 = 2;
  34363.                   break;
  34364.                 }
  34365.               } else {
  34366.                 label = 269;
  34367.               }
  34368.             } while (0);
  34369.             if (label == 269) {
  34370.               label = 0;
  34371.               HEAP[$retval_i] = 0;
  34372.               var $37 = 0;
  34373.             }
  34374.             var $37;
  34375.             if (($37 | 0) == 1) {
  34376.               label = 276;
  34377.               break L340;
  34378.             }
  34379.             var $cmp10 = ($skip | 0) == 0;
  34380.             if (($37 | 0) == 2) {
  34381.               if ($cmp10) {
  34382.                 label = 276;
  34383.                 break L340;
  34384.               } else {
  34385.                 break;
  34386.               }
  34387.             } else {
  34388.               if ($cmp10) {
  34389.                 label = 278;
  34390.                 break L340;
  34391.               } else {
  34392.                 break;
  34393.               }
  34394.             }
  34395.           }
  34396.         } while (0);
  34397.         HEAP[$this_addr_i] = $this1;
  34398.         var $this1_i = HEAP[$this_addr_i];
  34399.         if (!(HEAP[$this1_i | 0] >>> 0 < HEAP[$this1_i + 36 | 0] >>> 0 ^ 1)) {
  34400.           break L338;
  34401.         }
  34402.       }
  34403.       if (label == 278) {
  34404.         $retval = 0;
  34405.         var $42 = $retval;
  34406.         STACKTOP = __stackBase__;
  34407.         return $42;
  34408.       } else if (label == 276) {
  34409.         var $num_items12 = $this1 + 36 | 0;
  34410.         HEAP[$num_items12] = HEAP[$num_items12] - 1 | 0;
  34411.         var $match_glyph_data14 = $this1 + 32 | 0;
  34412.         HEAP[$match_glyph_data14] = HEAP[$match_glyph_data14] + 2 | 0;
  34413.         $retval = 1;
  34414.         var $42 = $retval;
  34415.         STACKTOP = __stackBase__;
  34416.         return $42;
  34417.       }
  34418.     }
  34419.   } while (0);
  34420.   $retval = 0;
  34421.   var $42 = $retval;
  34422.   STACKTOP = __stackBase__;
  34423.   return $42;
  34424. }
  34425. function __ZNK2OT8ClassDef9get_classEj($this, $glyph_id) {
  34426.   var __stackBase__ = STACKTOP;
  34427.   STACKTOP = STACKTOP + 124 | 0;
  34428.   var $this_addr_i_i34_i = __stackBase__;
  34429.   var $this_addr_i35_i = __stackBase__ + 4;
  34430.   var $this_addr_i_i20_i = __stackBase__ + 8;
  34431.   var $this_addr_i21_i = __stackBase__ + 12;
  34432.   var $X_addr_i_i_i_i8 = __stackBase__ + 16;
  34433.   var $this_addr_i_i_i_i9 = __stackBase__ + 20;
  34434.   var $this_addr_i_i15_i = __stackBase__ + 24;
  34435.   var $retval_i_i10 = __stackBase__ + 28;
  34436.   var $this_addr_i16_i = __stackBase__ + 32;
  34437.   var $i_addr_i_i11 = __stackBase__ + 36;
  34438.   var $this_addr_i_i1_i12 = __stackBase__ + 40;
  34439.   var $this_addr_i2_i13 = __stackBase__ + 44;
  34440.   var $this_addr_i_i_i14 = __stackBase__ + 48;
  34441.   var $this_addr_i_i15 = __stackBase__ + 52;
  34442.   var $retval_i16 = __stackBase__ + 56;
  34443.   var $this_addr_i17 = __stackBase__ + 60;
  34444.   var $glyph_id_addr_i18 = __stackBase__ + 64;
  34445.   var $this_addr_i_i1_i = __stackBase__ + 68;
  34446.   var $this_addr_i2_i = __stackBase__ + 72;
  34447.   var $X_addr_i_i_i_i = __stackBase__ + 76;
  34448.   var $this_addr_i_i_i_i = __stackBase__ + 80;
  34449.   var $this_addr_i_i_i = __stackBase__ + 84;
  34450.   var $retval_i_i = __stackBase__ + 88;
  34451.   var $this_addr_i_i1 = __stackBase__ + 92;
  34452.   var $i_addr_i_i = __stackBase__ + 96;
  34453.   var $retval_i = __stackBase__ + 100;
  34454.   var $this_addr_i2 = __stackBase__ + 104;
  34455.   var $glyph_id_addr_i = __stackBase__ + 108;
  34456.   var $i_i = __stackBase__ + 112;
  34457.   var $this_addr_i_i = __stackBase__ + 116;
  34458.   var $this_addr_i = __stackBase__ + 120;
  34459.   var $retval;
  34460.   var $glyph_id_addr;
  34461.   $glyph_id_addr = $glyph_id;
  34462.   var $this1 = $this;
  34463.   HEAP[$this_addr_i] = $this1 | 0;
  34464.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  34465.   var $this1_i_i = HEAP[$this_addr_i_i];
  34466.   var $conv = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  34467.   if (($conv | 0) == 1) {
  34468.     HEAP[$this_addr_i17] = $this1 | 0;
  34469.     HEAP[$glyph_id_addr_i18] = $glyph_id_addr;
  34470.     var $this1_i19 = HEAP[$this_addr_i17];
  34471.     var $10 = HEAP[$glyph_id_addr_i18];
  34472.     HEAP[$this_addr_i_i15] = $this1_i19 + 2 | 0;
  34473.     HEAP[$this_addr_i_i_i14] = HEAP[$this_addr_i_i15] | 0;
  34474.     var $this1_i_i_i22 = HEAP[$this_addr_i_i_i14];
  34475.     var $sub_i = $10 - (((HEAP[$this1_i_i_i22 | 0] & 255) << 8) + (HEAP[$this1_i_i_i22 + 1 | 0] & 255) & 65535) | 0;
  34476.     HEAP[$this_addr_i35_i] = $this1_i19 + 4 | 0;
  34477.     HEAP[$this_addr_i_i34_i] = HEAP[$this_addr_i35_i] | 0;
  34478.     var $this1_i_i38_i = HEAP[$this_addr_i_i34_i];
  34479.     if ($sub_i >>> 0 < (((HEAP[$this1_i_i38_i | 0] & 255) << 8) + (HEAP[$this1_i_i38_i + 1 | 0] & 255) & 65535) >>> 0) {
  34480.       var $25 = HEAP[$glyph_id_addr_i18];
  34481.       HEAP[$this_addr_i21_i] = $this1_i19 + 2 | 0;
  34482.       HEAP[$this_addr_i_i20_i] = HEAP[$this_addr_i21_i] | 0;
  34483.       var $this1_i_i24_i = HEAP[$this_addr_i_i20_i];
  34484.       var $sub8_i = $25 - (((HEAP[$this1_i_i24_i | 0] & 255) << 8) + (HEAP[$this1_i_i24_i + 1 | 0] & 255) & 65535) | 0;
  34485.       HEAP[$this_addr_i16_i] = $this1_i19 + 4 | 0;
  34486.       HEAP[$i_addr_i_i11] = $sub8_i;
  34487.       var $this1_i17_i = HEAP[$this_addr_i16_i];
  34488.       var $35 = HEAP[$i_addr_i_i11];
  34489.       HEAP[$this_addr_i_i15_i] = $this1_i17_i | 0;
  34490.       HEAP[$this_addr_i_i_i_i9] = HEAP[$this_addr_i_i15_i] | 0;
  34491.       var $this1_i_i_i_i35 = HEAP[$this_addr_i_i_i_i9];
  34492.       if ($35 >>> 0 >= (((HEAP[$this1_i_i_i_i35 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i35 + 1 | 0] & 255) & 65535) >>> 0) {
  34493.         HEAP[$X_addr_i_i_i_i8] = 111704;
  34494.         HEAP[$retval_i_i10] = HEAP[$X_addr_i_i_i_i8];
  34495.       } else {
  34496.         HEAP[$retval_i_i10] = (HEAP[$i_addr_i_i11] << 1) + $this1_i17_i + 2 | 0;
  34497.       }
  34498.       HEAP[$this_addr_i2_i13] = HEAP[$retval_i_i10];
  34499.       HEAP[$this_addr_i_i1_i12] = HEAP[$this_addr_i2_i13] | 0;
  34500.       var $this1_i_i5_i = HEAP[$this_addr_i_i1_i12];
  34501.       HEAP[$retval_i16] = ((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535;
  34502.     } else {
  34503.       HEAP[$retval_i16] = 0;
  34504.     }
  34505.     $retval = HEAP[$retval_i16];
  34506.     var $99 = $retval;
  34507.     STACKTOP = __stackBase__;
  34508.     return $99;
  34509.   } else if (($conv | 0) == 2) {
  34510.     HEAP[$this_addr_i2] = $this1 | 0;
  34511.     HEAP[$glyph_id_addr_i] = $glyph_id_addr;
  34512.     var $this1_i3 = HEAP[$this_addr_i2];
  34513.     var $call_i = __ZNK2OT13SortedArrayOfINS_11RangeRecordEE6searchIjEEiRKT_($this1_i3 + 2 | 0, $glyph_id_addr_i);
  34514.     HEAP[$i_i] = $call_i;
  34515.     if ((HEAP[$i_i] | 0) != -1) {
  34516.       var $68 = HEAP[$i_i];
  34517.       HEAP[$this_addr_i_i1] = $this1_i3 + 2 | 0;
  34518.       HEAP[$i_addr_i_i] = $68;
  34519.       var $this1_i_i4 = HEAP[$this_addr_i_i1];
  34520.       var $72 = HEAP[$i_addr_i_i];
  34521.       HEAP[$this_addr_i_i_i] = $this1_i_i4 | 0;
  34522.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  34523.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  34524.       if ($72 >>> 0 >= (((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  34525.         HEAP[$X_addr_i_i_i_i] = 111840;
  34526.         HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  34527.       } else {
  34528.         HEAP[$retval_i_i] = $this1_i_i4 + (HEAP[$i_addr_i_i] * 6 & -1) + 2 | 0;
  34529.       }
  34530.       HEAP[$this_addr_i2_i] = HEAP[$retval_i_i] + 4 | 0;
  34531.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  34532.       var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  34533.       HEAP[$retval_i] = ((HEAP[$this1_i_i4_i | 0] & 255) << 8) + (HEAP[$this1_i_i4_i + 1 | 0] & 255) & 65535;
  34534.     } else {
  34535.       HEAP[$retval_i] = 0;
  34536.     }
  34537.     $retval = HEAP[$retval_i];
  34538.     var $99 = $retval;
  34539.     STACKTOP = __stackBase__;
  34540.     return $99;
  34541.   } else {
  34542.     $retval = 0;
  34543.     var $99 = $retval;
  34544.     STACKTOP = __stackBase__;
  34545.     return $99;
  34546.   }
  34547. }
  34548. function __ZN2OTL11match_classEjRKNS_7IntTypeItLj2EEEPKv($glyph_id, $value, $data) {
  34549.   var __stackBase__ = STACKTOP;
  34550.   STACKTOP = STACKTOP + 8 | 0;
  34551.   var $this_addr_i_i = __stackBase__;
  34552.   var $this_addr_i = __stackBase__ + 4;
  34553.   var $call = __ZNK2OT8ClassDef9get_classEj($data, $glyph_id);
  34554.   HEAP[$this_addr_i] = $value;
  34555.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  34556.   var $this1_i_i = HEAP[$this_addr_i_i];
  34557.   STACKTOP = __stackBase__;
  34558.   return ($call | 0) == (((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535 | 0);
  34559. }
  34560. function __ZN2OTL11match_glyphEjRKNS_7IntTypeItLj2EEEPKv($glyph_id, $value, $data) {
  34561.   var __stackBase__ = STACKTOP;
  34562.   STACKTOP = STACKTOP + 8 | 0;
  34563.   var $this_addr_i_i = __stackBase__;
  34564.   var $this_addr_i = __stackBase__ + 4;
  34565.   HEAP[$this_addr_i] = $value;
  34566.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  34567.   var $this1_i_i = HEAP[$this_addr_i_i];
  34568.   STACKTOP = __stackBase__;
  34569.   return ($glyph_id | 0) == (((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535 | 0);
  34570. }
  34571. function __ZNK2OT12ChainRuleSet5applyEPNS_18hb_apply_context_tERNS_30ChainContextApplyLookupContextE($this, $c, $lookup_context) {
  34572.   var __stackBase__ = STACKTOP;
  34573.   STACKTOP = STACKTOP + 232 | 0;
  34574.   var $this_addr_i_i37 = __stackBase__;
  34575.   var $this_addr_i38 = __stackBase__ + 4;
  34576.   var $X_addr_i_i_i = __stackBase__ + 8;
  34577.   var $this_addr_i_i_i16 = __stackBase__ + 12;
  34578.   var $this_addr_i_i17 = __stackBase__ + 16;
  34579.   var $retval_i = __stackBase__ + 20;
  34580.   var $this_addr_i18 = __stackBase__ + 24;
  34581.   var $i_addr_i19 = __stackBase__ + 28;
  34582.   var $X_addr_i_i_i_i = __stackBase__ + 32;
  34583.   var $P_addr_i_i_i5 = __stackBase__ + 36;
  34584.   var $offset_addr_i_i_i6 = __stackBase__ + 40;
  34585.   var $this_addr_i_i_i_i7 = __stackBase__ + 44;
  34586.   var $this_addr_i_i_i8 = __stackBase__ + 48;
  34587.   var $retval_i_i = __stackBase__ + 52;
  34588.   var $this_addr_i_i9 = __stackBase__ + 56;
  34589.   var $base_addr_i_i = __stackBase__ + 60;
  34590.   var $offset_i_i = __stackBase__ + 64;
  34591.   var $base_addr_i = __stackBase__ + 68;
  34592.   var $offset_addr_i = __stackBase__ + 72;
  34593.   var $P_addr_i_i73_i = __stackBase__ + 84;
  34594.   var $offset_addr_i_i74_i = __stackBase__ + 88;
  34595.   var $this_addr_i_i_i_i75_i = __stackBase__ + 92;
  34596.   var $this_addr_i_i_i76_i = __stackBase__ + 96;
  34597.   var $this_addr_i_i77_i = __stackBase__ + 100;
  34598.   var $X_addr_i78_i = __stackBase__ + 104;
  34599.   var $P_addr_i_i49_i = __stackBase__ + 108;
  34600.   var $offset_addr_i_i50_i = __stackBase__ + 112;
  34601.   var $this_addr_i_i1_i_i_i = __stackBase__ + 116;
  34602.   var $this_addr_i2_i_i_i = __stackBase__ + 120;
  34603.   var $this_addr_i_i_i_i51_i = __stackBase__ + 124;
  34604.   var $this_addr_i_i_i52_i = __stackBase__ + 128;
  34605.   var $this_addr_i_i53_i = __stackBase__ + 132;
  34606.   var $X_addr_i54_i = __stackBase__ + 136;
  34607.   var $P_addr_i_i_i = __stackBase__ + 140;
  34608.   var $offset_addr_i_i_i = __stackBase__ + 144;
  34609.   var $this_addr_i_i_i_i_i = __stackBase__ + 148;
  34610.   var $this_addr_i_i_i_i = __stackBase__ + 152;
  34611.   var $this_addr_i_i45_i = __stackBase__ + 156;
  34612.   var $X_addr_i_i = __stackBase__ + 160;
  34613.   var $this_addr_i_i31_i = __stackBase__ + 164;
  34614.   var $this_addr_i32_i = __stackBase__ + 168;
  34615.   var $this_addr_i_i17_i = __stackBase__ + 172;
  34616.   var $this_addr_i18_i = __stackBase__ + 176;
  34617.   var $this_addr_i_i3_i = __stackBase__ + 180;
  34618.   var $this_addr_i4_i = __stackBase__ + 184;
  34619.   var $this_addr_i_i_i = __stackBase__ + 188;
  34620.   var $this_addr_i1_i = __stackBase__ + 192;
  34621.   var $this_addr_i_i = __stackBase__ + 196;
  34622.   var $i_addr_i_i = __stackBase__ + 200;
  34623.   var $this_addr_i = __stackBase__ + 204;
  34624.   var $c_addr_i = __stackBase__ + 208;
  34625.   var $lookup_context_addr_i = __stackBase__ + 212;
  34626.   var $input_i = __stackBase__ + 216;
  34627.   var $lookahead_i = __stackBase__ + 220;
  34628.   var $lookup_i = __stackBase__ + 224;
  34629.   var $retval;
  34630.   var $c_addr;
  34631.   var $lookup_context_addr;
  34632.   var $num_rules;
  34633.   var $i;
  34634.   var $ref_tmp = __stackBase__ + 228;
  34635.   $c_addr = $c;
  34636.   $lookup_context_addr = $lookup_context;
  34637.   var $this1 = $this;
  34638.   HEAP[__stackBase__ + 76] = HEAP[$c_addr + 12 | 0];
  34639.   HEAP[__stackBase__ + 80] = 0;
  34640.   HEAP[$this_addr_i38] = $this1 | 0;
  34641.   HEAP[$this_addr_i_i37] = HEAP[$this_addr_i38] | 0;
  34642.   var $this1_i_i40 = HEAP[$this_addr_i_i37];
  34643.   $num_rules = ((HEAP[$this1_i_i40 | 0] & 255) << 8) + (HEAP[$this1_i_i40 + 1 | 0] & 255) & 65535;
  34644.   $i = 0;
  34645.   L394 : do {
  34646.     if ($i >>> 0 < $num_rules >>> 0) {
  34647.       var $15 = $this1 | 0;
  34648.       while (1) {
  34649.         HEAP[$ref_tmp] = $this1;
  34650.         HEAP[$this_addr_i18] = $15;
  34651.         HEAP[$i_addr_i19] = $i;
  34652.         var $this1_i20 = HEAP[$this_addr_i18];
  34653.         var $123 = HEAP[$i_addr_i19];
  34654.         HEAP[$this_addr_i_i17] = $this1_i20 | 0;
  34655.         HEAP[$this_addr_i_i_i16] = HEAP[$this_addr_i_i17] | 0;
  34656.         var $this1_i_i_i24 = HEAP[$this_addr_i_i_i16];
  34657.         if ($123 >>> 0 >= (((HEAP[$this1_i_i_i24 | 0] & 255) << 8) + (HEAP[$this1_i_i_i24 + 1 | 0] & 255) & 65535) >>> 0) {
  34658.           HEAP[$X_addr_i_i_i] = 111704;
  34659.           HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  34660.         } else {
  34661.           HEAP[$retval_i] = (HEAP[$i_addr_i19] << 1) + $this1_i20 + 2 | 0;
  34662.         }
  34663.         var $130 = HEAP[$retval_i];
  34664.         HEAP[$base_addr_i] = $ref_tmp;
  34665.         HEAP[$offset_addr_i] = $130;
  34666.         var $134 = HEAP[HEAP[$base_addr_i]];
  34667.         HEAP[$this_addr_i_i9] = HEAP[$offset_addr_i];
  34668.         HEAP[$base_addr_i_i] = $134;
  34669.         HEAP[$this_addr_i_i_i8] = HEAP[$this_addr_i_i9];
  34670.         HEAP[$this_addr_i_i_i_i7] = HEAP[$this_addr_i_i_i8] | 0;
  34671.         var $this1_i_i_i_i12 = HEAP[$this_addr_i_i_i_i7];
  34672.         var $conv_i_i = ((HEAP[$this1_i_i_i_i12 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i12 + 1 | 0] & 255) & 65535;
  34673.         HEAP[$offset_i_i] = $conv_i_i;
  34674.         if (($conv_i_i | 0) != 0) {
  34675.           var $141 = HEAP[$offset_i_i];
  34676.           HEAP[$P_addr_i_i_i5] = HEAP[$base_addr_i_i];
  34677.           HEAP[$offset_addr_i_i_i6] = $141;
  34678.           HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i5] + HEAP[$offset_addr_i_i_i6] | 0;
  34679.         } else {
  34680.           HEAP[$X_addr_i_i_i_i] = 111704;
  34681.           HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  34682.         }
  34683.         HEAP[$this_addr_i] = HEAP[$retval_i_i];
  34684.         HEAP[$c_addr_i] = $c_addr;
  34685.         HEAP[$lookup_context_addr_i] = $lookup_context_addr;
  34686.         var $this1_i = HEAP[$this_addr_i];
  34687.         HEAP[$this_addr_i_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  34688.         HEAP[$i_addr_i_i] = 0;
  34689.         HEAP[$X_addr_i78_i] = $this1_i | 0;
  34690.         var $151 = HEAP[$X_addr_i78_i];
  34691.         HEAP[$this_addr_i_i77_i] = HEAP[$X_addr_i78_i];
  34692.         HEAP[$this_addr_i_i_i76_i] = HEAP[$this_addr_i_i77_i] | 0;
  34693.         HEAP[$this_addr_i_i_i_i75_i] = HEAP[$this_addr_i_i_i76_i] | 0;
  34694.         var $this1_i_i_i_i83_i = HEAP[$this_addr_i_i_i_i75_i];
  34695.         var $add_i_i95_i = ((((HEAP[$this1_i_i_i_i83_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i83_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  34696.         HEAP[$P_addr_i_i73_i] = $151;
  34697.         HEAP[$offset_addr_i_i74_i] = $add_i_i95_i;
  34698.         HEAP[$input_i] = HEAP[$P_addr_i_i73_i] + HEAP[$offset_addr_i_i74_i] | 0;
  34699.         HEAP[$X_addr_i54_i] = HEAP[$input_i];
  34700.         var $161 = HEAP[$X_addr_i54_i];
  34701.         HEAP[$this_addr_i_i53_i] = HEAP[$X_addr_i54_i];
  34702.         var $this1_i_i55_i = HEAP[$this_addr_i_i53_i];
  34703.         HEAP[$this_addr_i_i_i52_i] = $this1_i_i55_i | 0;
  34704.         HEAP[$this_addr_i_i_i_i51_i] = HEAP[$this_addr_i_i_i52_i] | 0;
  34705.         var $this1_i_i_i_i59_i = HEAP[$this_addr_i_i_i_i51_i];
  34706.         if ((((HEAP[$this1_i_i_i_i59_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i59_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  34707.           HEAP[$this_addr_i2_i_i_i] = $this1_i_i55_i | 0;
  34708.           HEAP[$this_addr_i_i1_i_i_i] = HEAP[$this_addr_i2_i_i_i] | 0;
  34709.           var $this1_i_i5_i_i_i = HEAP[$this_addr_i_i1_i_i_i];
  34710.           var $cond_i_i_i = (((HEAP[$this1_i_i5_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i + 1 | 0] & 255) & 65535) - 1 | 0;
  34711.         } else {
  34712.           var $cond_i_i_i = 0;
  34713.         }
  34714.         var $cond_i_i_i;
  34715.         HEAP[$P_addr_i_i49_i] = $161;
  34716.         HEAP[$offset_addr_i_i50_i] = ($cond_i_i_i << 1) + 2 | 0;
  34717.         HEAP[$lookahead_i] = HEAP[$P_addr_i_i49_i] + HEAP[$offset_addr_i_i50_i] | 0;
  34718.         HEAP[$X_addr_i_i] = HEAP[$lookahead_i];
  34719.         var $172 = HEAP[$X_addr_i_i];
  34720.         HEAP[$this_addr_i_i45_i] = HEAP[$X_addr_i_i];
  34721.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i45_i] | 0;
  34722.         HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  34723.         var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  34724.         var $add_i_i48_i = ((((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  34725.         HEAP[$P_addr_i_i_i] = $172;
  34726.         HEAP[$offset_addr_i_i_i] = $add_i_i48_i;
  34727.         HEAP[$lookup_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  34728.         var $180 = HEAP[$c_addr_i];
  34729.         HEAP[$this_addr_i32_i] = $this1_i | 0;
  34730.         HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  34731.         var $this1_i_i35_i = HEAP[$this_addr_i_i31_i];
  34732.         var $conv_i = ((HEAP[$this1_i_i35_i | 0] & 255) << 8) + (HEAP[$this1_i_i35_i + 1 | 0] & 255) & 65535;
  34733.         HEAP[$this_addr_i18_i] = HEAP[$input_i] | 0;
  34734.         HEAP[$this_addr_i_i17_i] = HEAP[$this_addr_i18_i] | 0;
  34735.         var $this1_i_i21_i = HEAP[$this_addr_i_i17_i];
  34736.         var $conv12_i = ((HEAP[$this1_i_i21_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i + 1 | 0] & 255) & 65535;
  34737.         var $arraydecay14_i = HEAP[$input_i] + 2 | 0;
  34738.         HEAP[$this_addr_i4_i] = HEAP[$lookahead_i] | 0;
  34739.         HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i] | 0;
  34740.         var $this1_i_i7_i = HEAP[$this_addr_i_i3_i];
  34741.         var $conv17_i = ((HEAP[$this1_i_i7_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i + 1 | 0] & 255) & 65535;
  34742.         var $arraydecay19_i = HEAP[$lookahead_i] + 2 | 0;
  34743.         HEAP[$this_addr_i1_i] = HEAP[$lookup_i] | 0;
  34744.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  34745.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  34746.         if (__ZN2OTL26chain_context_apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEjS5_jS5_jPKNS_12LookupRecordERNS_30ChainContextApplyLookupContextE($180, $conv_i, $this1_i + 2 | 0, $conv12_i, $arraydecay14_i, $conv17_i, $arraydecay19_i, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535, HEAP[$lookup_i] + 2 | 0, HEAP[$lookup_context_addr_i]) & 1) {
  34747.           break;
  34748.         }
  34749.         $i = $i + 1 | 0;
  34750.         if ($i >>> 0 >= $num_rules >>> 0) {
  34751.           break L394;
  34752.         }
  34753.       }
  34754.       $retval = 1;
  34755.       var $208 = $retval;
  34756.       STACKTOP = __stackBase__;
  34757.       return $208;
  34758.     }
  34759.   } while (0);
  34760.   $retval = 0;
  34761.   var $208 = $retval;
  34762.   STACKTOP = __stackBase__;
  34763.   return $208;
  34764. }
  34765. function __ZNK2OT7RuleSet5applyEPNS_18hb_apply_context_tERNS_25ContextApplyLookupContextE($this, $c, $lookup_context) {
  34766.   var __stackBase__ = STACKTOP;
  34767.   STACKTOP = STACKTOP + 176 | 0;
  34768.   var $this_addr_i_i30 = __stackBase__;
  34769.   var $this_addr_i31 = __stackBase__ + 4;
  34770.   var $X_addr_i_i_i = __stackBase__ + 8;
  34771.   var $this_addr_i_i_i11 = __stackBase__ + 12;
  34772.   var $this_addr_i_i12 = __stackBase__ + 16;
  34773.   var $retval_i = __stackBase__ + 20;
  34774.   var $this_addr_i13 = __stackBase__ + 24;
  34775.   var $i_addr_i14 = __stackBase__ + 28;
  34776.   var $X_addr_i_i_i_i = __stackBase__ + 32;
  34777.   var $P_addr_i_i_i = __stackBase__ + 36;
  34778.   var $offset_addr_i_i_i = __stackBase__ + 40;
  34779.   var $this_addr_i_i_i_i = __stackBase__ + 44;
  34780.   var $this_addr_i_i_i6 = __stackBase__ + 48;
  34781.   var $retval_i_i = __stackBase__ + 52;
  34782.   var $this_addr_i_i7 = __stackBase__ + 56;
  34783.   var $base_addr_i_i = __stackBase__ + 60;
  34784.   var $offset_i_i = __stackBase__ + 64;
  34785.   var $base_addr_i = __stackBase__ + 68;
  34786.   var $offset_addr_i = __stackBase__ + 72;
  34787.   var $this_addr_i_i31_i = __stackBase__ + 84;
  34788.   var $this_addr_i32_i = __stackBase__ + 88;
  34789.   var $this_addr_i_i17_i = __stackBase__ + 92;
  34790.   var $this_addr_i18_i = __stackBase__ + 96;
  34791.   var $P_addr_i_i = __stackBase__ + 100;
  34792.   var $offset_addr_i_i = __stackBase__ + 104;
  34793.   var $this_addr_i_i3_i = __stackBase__ + 108;
  34794.   var $this_addr_i4_i = __stackBase__ + 112;
  34795.   var $this_addr_i_i_i = __stackBase__ + 116;
  34796.   var $this_addr_i1_i = __stackBase__ + 120;
  34797.   var $this_addr_i_i = __stackBase__ + 124;
  34798.   var $i_addr_i_i = __stackBase__ + 128;
  34799.   var $c_addr_i_i = __stackBase__ + 132;
  34800.   var $inputCount_addr_i_i = __stackBase__ + 136;
  34801.   var $input_addr_i_i = __stackBase__ + 140;
  34802.   var $lookupCount_addr_i_i = __stackBase__ + 144;
  34803.   var $lookupRecord_addr_i_i = __stackBase__ + 148;
  34804.   var $lookup_context_addr_i_i = __stackBase__ + 152;
  34805.   var $this_addr_i = __stackBase__ + 156;
  34806.   var $c_addr_i = __stackBase__ + 160;
  34807.   var $lookup_context_addr_i = __stackBase__ + 164;
  34808.   var $lookupRecord_i = __stackBase__ + 168;
  34809.   var $retval;
  34810.   var $c_addr;
  34811.   var $lookup_context_addr;
  34812.   var $num_rules;
  34813.   var $i;
  34814.   var $ref_tmp = __stackBase__ + 172;
  34815.   $c_addr = $c;
  34816.   $lookup_context_addr = $lookup_context;
  34817.   var $this1 = $this;
  34818.   HEAP[__stackBase__ + 76] = HEAP[$c_addr + 12 | 0];
  34819.   HEAP[__stackBase__ + 80] = 0;
  34820.   HEAP[$this_addr_i31] = $this1 | 0;
  34821.   HEAP[$this_addr_i_i30] = HEAP[$this_addr_i31] | 0;
  34822.   var $this1_i_i33 = HEAP[$this_addr_i_i30];
  34823.   $num_rules = ((HEAP[$this1_i_i33 | 0] & 255) << 8) + (HEAP[$this1_i_i33 + 1 | 0] & 255) & 65535;
  34824.   $i = 0;
  34825.   L415 : do {
  34826.     if ($i >>> 0 < $num_rules >>> 0) {
  34827.       var $15 = $this1 | 0;
  34828.       while (1) {
  34829.         HEAP[$ref_tmp] = $this1;
  34830.         HEAP[$this_addr_i13] = $15;
  34831.         HEAP[$i_addr_i14] = $i;
  34832.         var $this1_i15 = HEAP[$this_addr_i13];
  34833.         var $95 = HEAP[$i_addr_i14];
  34834.         HEAP[$this_addr_i_i12] = $this1_i15 | 0;
  34835.         HEAP[$this_addr_i_i_i11] = HEAP[$this_addr_i_i12] | 0;
  34836.         var $this1_i_i_i18 = HEAP[$this_addr_i_i_i11];
  34837.         if ($95 >>> 0 >= (((HEAP[$this1_i_i_i18 | 0] & 255) << 8) + (HEAP[$this1_i_i_i18 + 1 | 0] & 255) & 65535) >>> 0) {
  34838.           HEAP[$X_addr_i_i_i] = 111704;
  34839.           HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  34840.         } else {
  34841.           HEAP[$retval_i] = (HEAP[$i_addr_i14] << 1) + $this1_i15 + 2 | 0;
  34842.         }
  34843.         var $102 = HEAP[$retval_i];
  34844.         HEAP[$base_addr_i] = $ref_tmp;
  34845.         HEAP[$offset_addr_i] = $102;
  34846.         var $106 = HEAP[HEAP[$base_addr_i]];
  34847.         HEAP[$this_addr_i_i7] = HEAP[$offset_addr_i];
  34848.         HEAP[$base_addr_i_i] = $106;
  34849.         HEAP[$this_addr_i_i_i6] = HEAP[$this_addr_i_i7];
  34850.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i6] | 0;
  34851.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  34852.         var $conv_i_i = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  34853.         HEAP[$offset_i_i] = $conv_i_i;
  34854.         if (($conv_i_i | 0) != 0) {
  34855.           var $113 = HEAP[$offset_i_i];
  34856.           HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  34857.           HEAP[$offset_addr_i_i_i] = $113;
  34858.           HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  34859.         } else {
  34860.           HEAP[$X_addr_i_i_i_i] = 111704;
  34861.           HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  34862.         }
  34863.         HEAP[$this_addr_i] = HEAP[$retval_i_i];
  34864.         HEAP[$c_addr_i] = $c_addr;
  34865.         HEAP[$lookup_context_addr_i] = $lookup_context_addr;
  34866.         var $this1_i = HEAP[$this_addr_i];
  34867.         HEAP[$this_addr_i_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  34868.         HEAP[$i_addr_i_i] = 0;
  34869.         HEAP[$this_addr_i32_i] = $this1_i | 0;
  34870.         HEAP[$this_addr_i_i31_i] = HEAP[$this_addr_i32_i] | 0;
  34871.         var $this1_i_i35_i = HEAP[$this_addr_i_i31_i];
  34872.         if ((((HEAP[$this1_i_i35_i | 0] & 255) << 8) + (HEAP[$this1_i_i35_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  34873.           HEAP[$this_addr_i18_i] = $this1_i | 0;
  34874.           HEAP[$this_addr_i_i17_i] = HEAP[$this_addr_i18_i] | 0;
  34875.           var $this1_i_i21_i = HEAP[$this_addr_i_i17_i];
  34876.           var $cond_i = (((HEAP[$this1_i_i21_i | 0] & 255) << 8) + (HEAP[$this1_i_i21_i + 1 | 0] & 255) & 65535) - 1 | 0;
  34877.         } else {
  34878.           var $cond_i = 0;
  34879.         }
  34880.         var $cond_i;
  34881.         HEAP[$P_addr_i_i] = $this1_i + 4 | 0;
  34882.         HEAP[$offset_addr_i_i] = $cond_i << 1;
  34883.         HEAP[$lookupRecord_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  34884.         var $130 = HEAP[$c_addr_i];
  34885.         HEAP[$this_addr_i4_i] = $this1_i | 0;
  34886.         HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i] | 0;
  34887.         var $this1_i_i7_i = HEAP[$this_addr_i_i3_i];
  34888.         var $conv11_i = ((HEAP[$this1_i_i7_i | 0] & 255) << 8) + (HEAP[$this1_i_i7_i + 1 | 0] & 255) & 65535;
  34889.         HEAP[$this_addr_i1_i] = $this1_i + 2 | 0;
  34890.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i1_i] | 0;
  34891.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  34892.         var $conv15_i = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  34893.         var $135 = HEAP[$lookupRecord_i];
  34894.         var $136 = HEAP[$lookup_context_addr_i];
  34895.         HEAP[$c_addr_i_i] = $130;
  34896.         HEAP[$inputCount_addr_i_i] = $conv11_i;
  34897.         HEAP[$input_addr_i_i] = $this1_i + 4 | 0;
  34898.         HEAP[$lookupCount_addr_i_i] = $conv15_i;
  34899.         HEAP[$lookupRecord_addr_i_i] = $135;
  34900.         HEAP[$lookup_context_addr_i_i] = $136;
  34901.         if (__ZN2OTL11match_inputEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_PjPbSB_(HEAP[$c_addr_i_i], HEAP[$inputCount_addr_i_i], HEAP[$input_addr_i_i], HEAP[HEAP[$lookup_context_addr_i_i] | 0], HEAP[HEAP[$lookup_context_addr_i_i] + 4 | 0], 0, 0, 0)) {
  34902.           var $153 = __ZN2OTL12apply_lookupEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_jPKNS_12LookupRecordE(HEAP[$c_addr_i_i], HEAP[$inputCount_addr_i_i], HEAP[$input_addr_i_i], HEAP[HEAP[$lookup_context_addr_i_i] | 0], HEAP[HEAP[$lookup_context_addr_i_i] + 4 | 0], HEAP[$lookupCount_addr_i_i], HEAP[$lookupRecord_addr_i_i]);
  34903.         } else {
  34904.           var $153 = 0;
  34905.         }
  34906.         var $153;
  34907.         if ($153 & 1) {
  34908.           break;
  34909.         }
  34910.         $i = $i + 1 | 0;
  34911.         if ($i >>> 0 >= $num_rules >>> 0) {
  34912.           break L415;
  34913.         }
  34914.       }
  34915.       $retval = 1;
  34916.       var $160 = $retval;
  34917.       STACKTOP = __stackBase__;
  34918.       return $160;
  34919.     }
  34920.   } while (0);
  34921.   $retval = 0;
  34922.   var $160 = $retval;
  34923.   STACKTOP = __stackBase__;
  34924.   return $160;
  34925. }
  34926. function __ZNK2OT9MarkArray5applyEPNS_18hb_apply_context_tEjjRKNS_12AnchorMatrixEjj($this, $c, $mark_index, $glyph_index, $anchors, $class_count, $glyph_pos) {
  34927.   var label = 0;
  34928.   var __stackBase__ = STACKTOP;
  34929.   STACKTOP = STACKTOP + 217 | 0;
  34930.   var $X_addr_i_i_i44 = __stackBase__;
  34931.   var $this_addr_i_i_i45 = __stackBase__ + 4;
  34932.   var $this_addr_i_i46 = __stackBase__ + 8;
  34933.   var $retval_i47 = __stackBase__ + 12;
  34934.   var $this_addr_i48 = __stackBase__ + 16;
  34935.   var $i_addr_i49 = __stackBase__ + 20;
  34936.   var $this_addr_i_i38 = __stackBase__ + 24;
  34937.   var $this_addr_i39 = __stackBase__ + 28;
  34938.   var $X_addr_i_i_i_i = __stackBase__ + 32;
  34939.   var $P_addr_i_i_i = __stackBase__ + 36;
  34940.   var $offset_addr_i_i_i = __stackBase__ + 40;
  34941.   var $this_addr_i_i_i_i20 = __stackBase__ + 44;
  34942.   var $this_addr_i_i_i21 = __stackBase__ + 48;
  34943.   var $retval_i_i = __stackBase__ + 52;
  34944.   var $this_addr_i_i22 = __stackBase__ + 56;
  34945.   var $base_addr_i_i23 = __stackBase__ + 60;
  34946.   var $offset_i_i = __stackBase__ + 64;
  34947.   var $base_addr_i = __stackBase__ + 68;
  34948.   var $offset_addr_i = __stackBase__ + 72;
  34949.   var $X_addr_i_i_i = __stackBase__ + 76;
  34950.   var $this_addr_i_i_i4_i = __stackBase__ + 80;
  34951.   var $this_addr_i_i5_i = __stackBase__ + 84;
  34952.   var $this_addr_i6_i = __stackBase__ + 88;
  34953.   var $X_addr_i_i_i_i_i = __stackBase__ + 92;
  34954.   var $P_addr_i_i_i_i = __stackBase__ + 96;
  34955.   var $offset_addr_i_i_i_i = __stackBase__ + 100;
  34956.   var $this_addr_i_i_i_i_i = __stackBase__ + 104;
  34957.   var $this_addr_i_i_i_i = __stackBase__ + 108;
  34958.   var $retval_i_i_i = __stackBase__ + 112;
  34959.   var $this_addr_i_i1_i = __stackBase__ + 116;
  34960.   var $base_addr_i_i_i = __stackBase__ + 120;
  34961.   var $offset_i_i_i = __stackBase__ + 124;
  34962.   var $base_addr_i_i = __stackBase__ + 128;
  34963.   var $offset_addr_i_i = __stackBase__ + 132;
  34964.   var $this_addr_i_i_i = __stackBase__ + 136;
  34965.   var $this_addr_i_i = __stackBase__ + 140;
  34966.   var $retval_i = __stackBase__ + 144;
  34967.   var $this_addr_i16 = __stackBase__ + 148;
  34968.   var $row_addr_i = __stackBase__ + 152;
  34969.   var $col_addr_i = __stackBase__ + 156;
  34970.   var $cols_addr_i = __stackBase__ + 160;
  34971.   var $found_addr_i = __stackBase__ + 164;
  34972.   var $ref_tmp_i = __stackBase__ + 168;
  34973.   var $this_addr_i7 = __stackBase__ + 172;
  34974.   var $i_addr_i8 = __stackBase__ + 176;
  34975.   var $this_addr_i = __stackBase__ + 188;
  34976.   var $i_addr_i = __stackBase__ + 192;
  34977.   var $retval;
  34978.   var $c_addr;
  34979.   var $glyph_pos_addr;
  34980.   var $record;
  34981.   var $mark_class;
  34982.   var $mark_anchor;
  34983.   var $ref_tmp = __stackBase__ + 196;
  34984.   var $found = __stackBase__ + 200;
  34985.   var $glyph_anchor;
  34986.   var $mark_x = __stackBase__ + 201;
  34987.   var $mark_y = __stackBase__ + 205;
  34988.   var $base_x = __stackBase__ + 209;
  34989.   var $base_y = __stackBase__ + 213;
  34990.   var $o;
  34991.   $c_addr = $c;
  34992.   $glyph_pos_addr = $glyph_pos;
  34993.   var $this1 = $this;
  34994.   HEAP[__stackBase__ + 180] = HEAP[$c_addr + 12 | 0];
  34995.   HEAP[__stackBase__ + 184] = 0;
  34996.   HEAP[$this_addr_i48] = $this1;
  34997.   HEAP[$i_addr_i49] = $mark_index;
  34998.   var $this1_i50 = HEAP[$this_addr_i48];
  34999.   var $12 = HEAP[$i_addr_i49];
  35000.   HEAP[$this_addr_i_i46] = $this1_i50 | 0;
  35001.   HEAP[$this_addr_i_i_i45] = HEAP[$this_addr_i_i46] | 0;
  35002.   var $this1_i_i_i53 = HEAP[$this_addr_i_i_i45];
  35003.   if ($12 >>> 0 >= (((HEAP[$this1_i_i_i53 | 0] & 255) << 8) + (HEAP[$this1_i_i_i53 + 1 | 0] & 255) & 65535) >>> 0) {
  35004.     HEAP[$X_addr_i_i_i44] = 111704;
  35005.     HEAP[$retval_i47] = HEAP[$X_addr_i_i_i44];
  35006.   } else {
  35007.     HEAP[$retval_i47] = (HEAP[$i_addr_i49] << 2) + $this1_i50 + 2 | 0;
  35008.   }
  35009.   $record = HEAP[$retval_i47];
  35010.   HEAP[$this_addr_i39] = $record | 0;
  35011.   HEAP[$this_addr_i_i38] = HEAP[$this_addr_i39] | 0;
  35012.   var $this1_i_i41 = HEAP[$this_addr_i_i38];
  35013.   $mark_class = ((HEAP[$this1_i_i41 | 0] & 255) << 8) + (HEAP[$this1_i_i41 + 1 | 0] & 255) & 65535;
  35014.   HEAP[$ref_tmp] = $this1;
  35015.   HEAP[$base_addr_i] = $ref_tmp;
  35016.   HEAP[$offset_addr_i] = $record + 2 | 0;
  35017.   var $42 = HEAP[HEAP[$base_addr_i]];
  35018.   HEAP[$this_addr_i_i22] = HEAP[$offset_addr_i];
  35019.   HEAP[$base_addr_i_i23] = $42;
  35020.   HEAP[$this_addr_i_i_i21] = HEAP[$this_addr_i_i22];
  35021.   HEAP[$this_addr_i_i_i_i20] = HEAP[$this_addr_i_i_i21] | 0;
  35022.   var $this1_i_i_i_i27 = HEAP[$this_addr_i_i_i_i20];
  35023.   var $conv_i_i37 = ((HEAP[$this1_i_i_i_i27 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i27 + 1 | 0] & 255) & 65535;
  35024.   HEAP[$offset_i_i] = $conv_i_i37;
  35025.   if (($conv_i_i37 | 0) != 0) {
  35026.     var $59 = HEAP[$offset_i_i];
  35027.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i23];
  35028.     HEAP[$offset_addr_i_i_i] = $59;
  35029.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  35030.   } else {
  35031.     HEAP[$X_addr_i_i_i_i] = 111704;
  35032.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  35033.   }
  35034.   $mark_anchor = HEAP[$retval_i_i];
  35035.   HEAP[$this_addr_i16] = $anchors;
  35036.   HEAP[$row_addr_i] = $glyph_index;
  35037.   HEAP[$col_addr_i] = $mark_class;
  35038.   HEAP[$cols_addr_i] = $class_count;
  35039.   HEAP[$found_addr_i] = $found;
  35040.   var $this1_i17 = HEAP[$this_addr_i16];
  35041.   HEAP[HEAP[$found_addr_i]] = 0;
  35042.   var $86 = HEAP[$row_addr_i];
  35043.   HEAP[$this_addr_i_i] = $this1_i17 | 0;
  35044.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  35045.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  35046.   do {
  35047.     if ($86 >>> 0 >= (((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  35048.       label = 350;
  35049.     } else {
  35050.       if (HEAP[$col_addr_i] >>> 0 >= HEAP[$cols_addr_i] >>> 0) {
  35051.         label = 350;
  35052.         break;
  35053.       }
  35054.       var $mul_i = Math.imul(HEAP[$cols_addr_i], HEAP[$row_addr_i]);
  35055.       HEAP[$this_addr_i6_i] = ($mul_i + HEAP[$col_addr_i] << 1) + $this1_i17 + 2 | 0;
  35056.       HEAP[$this_addr_i_i5_i] = HEAP[$this_addr_i6_i];
  35057.       HEAP[$this_addr_i_i_i4_i] = HEAP[$this_addr_i_i5_i] | 0;
  35058.       var $this1_i_i_i10_i = HEAP[$this_addr_i_i_i4_i];
  35059.       HEAP[HEAP[$found_addr_i]] = (0 == (((HEAP[$this1_i_i_i10_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i10_i + 1 | 0] & 255) & 65535 | 0) ^ 1) & 1;
  35060.       HEAP[$ref_tmp_i] = $this1_i17;
  35061.       var $116 = (Math.imul(HEAP[$cols_addr_i], HEAP[$row_addr_i]) + HEAP[$col_addr_i] << 1) + $this1_i17 + 2 | 0;
  35062.       HEAP[$base_addr_i_i] = $ref_tmp_i;
  35063.       HEAP[$offset_addr_i_i] = $116;
  35064.       var $122 = HEAP[HEAP[$base_addr_i_i]];
  35065.       HEAP[$this_addr_i_i1_i] = HEAP[$offset_addr_i_i];
  35066.       HEAP[$base_addr_i_i_i] = $122;
  35067.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i];
  35068.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  35069.       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  35070.       HEAP[$offset_i_i_i] = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  35071.       if ((HEAP[$offset_i_i_i] | 0) != 0) {
  35072.         var $140 = HEAP[$offset_i_i_i];
  35073.         HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  35074.         HEAP[$offset_addr_i_i_i_i] = $140;
  35075.         HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  35076.       } else {
  35077.         HEAP[$X_addr_i_i_i_i_i] = 111704;
  35078.         HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  35079.       }
  35080.       HEAP[$retval_i] = HEAP[$retval_i_i_i];
  35081.       break;
  35082.     }
  35083.   } while (0);
  35084.   if (label == 350) {
  35085.     HEAP[$X_addr_i_i_i] = 111704;
  35086.     HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  35087.   }
  35088.   $glyph_anchor = HEAP[$retval_i];
  35089.   if (HEAP[$found] & 1) {
  35090.     var $167 = HEAP[$c_addr + 4 | 0];
  35091.     HEAP[$this_addr_i7] = HEAP[$c_addr + 12 | 0];
  35092.     HEAP[$i_addr_i8] = 0;
  35093.     var $this1_i9 = HEAP[$this_addr_i7];
  35094.     __ZNK2OT6Anchor10get_anchorEP9hb_font_tjPiS3_($mark_anchor, $167, HEAP[HEAP[$this1_i9 + 96 | 0] + ((HEAP[$i_addr_i8] + HEAP[$this1_i9 + 80 | 0]) * 20 & -1) | 0], $mark_x, $mark_y);
  35095.     __ZNK2OT6Anchor10get_anchorEP9hb_font_tjPiS3_($glyph_anchor, HEAP[$c_addr + 4 | 0], HEAP[HEAP[HEAP[$c_addr + 12 | 0] + 96 | 0] + ($glyph_pos_addr * 20 & -1) | 0], $base_x, $base_y);
  35096.     HEAP[$this_addr_i] = HEAP[$c_addr + 12 | 0];
  35097.     HEAP[$i_addr_i] = 0;
  35098.     var $this1_i = HEAP[$this_addr_i];
  35099.     $o = HEAP[$this1_i + 104 | 0] + ((HEAP[$i_addr_i] + HEAP[$this1_i + 80 | 0]) * 20 & -1) | 0;
  35100.     HEAP[$o + 8 | 0] = HEAP[$base_x] - HEAP[$mark_x] | 0;
  35101.     HEAP[$o + 12 | 0] = HEAP[$base_y] - HEAP[$mark_y] | 0;
  35102.     HEAP[$o + 16 | 0] = HEAP[HEAP[$c_addr + 12 | 0] + 80 | 0] - $glyph_pos_addr & 65535;
  35103.     var $idx24 = HEAP[$c_addr + 12 | 0] + 80 | 0;
  35104.     HEAP[$idx24] = HEAP[$idx24] + 1 | 0;
  35105.     $retval = 1;
  35106.     var $210 = $retval;
  35107.     STACKTOP = __stackBase__;
  35108.     return $210;
  35109.   } else {
  35110.     $retval = 0;
  35111.     var $210 = $retval;
  35112.     STACKTOP = __stackBase__;
  35113.     return $210;
  35114.   }
  35115. }
  35116. function __ZNK2OT6Anchor10get_anchorEP9hb_font_tjPiS3_($this, $font, $glyph_id, $x, $y) {
  35117.   var label = 0;
  35118.   var __stackBase__ = STACKTOP;
  35119.   STACKTOP = STACKTOP + 368 | 0;
  35120.   var $this_addr_i_i25_i = __stackBase__;
  35121.   var $this_addr_i26_i = __stackBase__ + 4;
  35122.   var $this_addr_i21_i = __stackBase__ + 8;
  35123.   var $v_addr_i22_i = __stackBase__ + 12;
  35124.   var $this_addr_i_i7_i50 = __stackBase__ + 14;
  35125.   var $this_addr_i8_i51 = __stackBase__ + 18;
  35126.   var $this_addr_i1_i_i = __stackBase__ + 22;
  35127.   var $glyph_addr_i2_i_i = __stackBase__ + 26;
  35128.   var $direction_addr_i_i_i = __stackBase__ + 30;
  35129.   var $x_addr_i3_i_i = __stackBase__ + 34;
  35130.   var $y_addr_i4_i_i = __stackBase__ + 38;
  35131.   var $origin_x_i_i_i = __stackBase__ + 42;
  35132.   var $origin_y_i_i_i = __stackBase__ + 46;
  35133.   var $this_addr_i_i3_i = __stackBase__ + 50;
  35134.   var $glyph_addr_i_i_i = __stackBase__ + 54;
  35135.   var $point_index_addr_i_i_i = __stackBase__ + 58;
  35136.   var $x_addr_i_i_i = __stackBase__ + 62;
  35137.   var $y_addr_i_i_i = __stackBase__ + 66;
  35138.   var $this_addr_i4_i = __stackBase__ + 70;
  35139.   var $glyph_addr_i_i = __stackBase__ + 74;
  35140.   var $point_index_addr_i_i = __stackBase__ + 78;
  35141.   var $direction_addr_i_i = __stackBase__ + 82;
  35142.   var $x_addr_i_i = __stackBase__ + 86;
  35143.   var $y_addr_i_i = __stackBase__ + 90;
  35144.   var $ret_i_i = __stackBase__ + 94;
  35145.   var $this_addr_i1_i52 = __stackBase__ + 98;
  35146.   var $v_addr_i_i53 = __stackBase__ + 102;
  35147.   var $this_addr_i_i_i54 = __stackBase__ + 104;
  35148.   var $this_addr_i_i55 = __stackBase__ + 108;
  35149.   var $this_addr_i56 = __stackBase__ + 112;
  35150.   var $font_addr_i57 = __stackBase__ + 116;
  35151.   var $glyph_id_addr_i58 = __stackBase__ + 120;
  35152.   var $x_addr_i59 = __stackBase__ + 124;
  35153.   var $y_addr_i60 = __stackBase__ + 128;
  35154.   var $x_ppem_i61 = __stackBase__ + 132;
  35155.   var $y_ppem_i62 = __stackBase__ + 136;
  35156.   var $cx_i = __stackBase__ + 140;
  35157.   var $cy_i = __stackBase__ + 144;
  35158.   var $ret_i = __stackBase__ + 148;
  35159.   var $this_addr_i_i7_i6 = __stackBase__ + 152;
  35160.   var $this_addr_i8_i7 = __stackBase__ + 156;
  35161.   var $this_addr_i3_i8 = __stackBase__ + 160;
  35162.   var $v_addr_i4_i = __stackBase__ + 164;
  35163.   var $this_addr_i1_i9 = __stackBase__ + 166;
  35164.   var $v_addr_i_i10 = __stackBase__ + 170;
  35165.   var $this_addr_i_i_i11 = __stackBase__ + 172;
  35166.   var $this_addr_i_i12 = __stackBase__ + 176;
  35167.   var $this_addr_i13 = __stackBase__ + 180;
  35168.   var $font_addr_i14 = __stackBase__ + 184;
  35169.   var $glyph_id_addr_i15 = __stackBase__ + 188;
  35170.   var $x_addr_i16 = __stackBase__ + 192;
  35171.   var $y_addr_i17 = __stackBase__ + 196;
  35172.   var $X_addr_i_i_i_i34_i = __stackBase__ + 200;
  35173.   var $P_addr_i_i_i35_i = __stackBase__ + 204;
  35174.   var $offset_addr_i_i_i36_i = __stackBase__ + 208;
  35175.   var $this_addr_i_i_i_i37_i = __stackBase__ + 212;
  35176.   var $this_addr_i_i_i38_i = __stackBase__ + 216;
  35177.   var $retval_i_i39_i = __stackBase__ + 220;
  35178.   var $this_addr_i_i40_i = __stackBase__ + 224;
  35179.   var $base_addr_i_i41_i = __stackBase__ + 228;
  35180.   var $offset_i_i42_i = __stackBase__ + 232;
  35181.   var $base_addr_i43_i = __stackBase__ + 236;
  35182.   var $offset_addr_i44_i = __stackBase__ + 240;
  35183.   var $this_addr_i30_i = __stackBase__ + 244;
  35184.   var $v_addr_i31_i = __stackBase__ + 248;
  35185.   var $this_addr_i24_i = __stackBase__ + 250;
  35186.   var $font_addr_i25_i = __stackBase__ + 254;
  35187.   var $X_addr_i_i_i_i_i = __stackBase__ + 258;
  35188.   var $P_addr_i_i_i_i = __stackBase__ + 262;
  35189.   var $offset_addr_i_i_i_i = __stackBase__ + 266;
  35190.   var $this_addr_i_i_i_i_i = __stackBase__ + 270;
  35191.   var $this_addr_i_i_i_i = __stackBase__ + 274;
  35192.   var $retval_i_i_i = __stackBase__ + 278;
  35193.   var $this_addr_i_i21_i = __stackBase__ + 282;
  35194.   var $base_addr_i_i_i = __stackBase__ + 286;
  35195.   var $offset_i_i_i = __stackBase__ + 290;
  35196.   var $base_addr_i_i = __stackBase__ + 294;
  35197.   var $offset_addr_i_i = __stackBase__ + 298;
  35198.   var $this_addr_i_i7_i = __stackBase__ + 302;
  35199.   var $this_addr_i8_i = __stackBase__ + 306;
  35200.   var $this_addr_i3_i = __stackBase__ + 310;
  35201.   var $v_addr_i_i = __stackBase__ + 314;
  35202.   var $this_addr_i1_i = __stackBase__ + 316;
  35203.   var $font_addr_i_i = __stackBase__ + 320;
  35204.   var $this_addr_i_i_i = __stackBase__ + 324;
  35205.   var $this_addr_i_i1 = __stackBase__ + 328;
  35206.   var $this_addr_i2 = __stackBase__ + 332;
  35207.   var $font_addr_i = __stackBase__ + 336;
  35208.   var $glyph_id_addr_i = __stackBase__ + 340;
  35209.   var $x_addr_i = __stackBase__ + 344;
  35210.   var $y_addr_i = __stackBase__ + 348;
  35211.   var $ref_tmp_i = __stackBase__ + 352;
  35212.   var $ref_tmp9_i = __stackBase__ + 356;
  35213.   var $this_addr_i_i = __stackBase__ + 360;
  35214.   var $this_addr_i = __stackBase__ + 364;
  35215.   var $font_addr;
  35216.   var $glyph_id_addr;
  35217.   var $x_addr;
  35218.   var $y_addr;
  35219.   $font_addr = $font;
  35220.   $glyph_id_addr = $glyph_id;
  35221.   $x_addr = $x;
  35222.   $y_addr = $y;
  35223.   var $this1 = $this;
  35224.   HEAP[$y_addr] = 0;
  35225.   HEAP[$x_addr] = 0;
  35226.   HEAP[$this_addr_i] = $this1 | 0;
  35227.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  35228.   var $this1_i_i = HEAP[$this_addr_i_i];
  35229.   var $conv = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  35230.   if (($conv | 0) == 2) {
  35231.     HEAP[$this_addr_i56] = $this1 | 0;
  35232.     HEAP[$font_addr_i57] = $font_addr;
  35233.     HEAP[$glyph_id_addr_i58] = $glyph_id_addr;
  35234.     HEAP[$x_addr_i59] = $x_addr;
  35235.     HEAP[$y_addr_i60] = $y_addr;
  35236.     var $this1_i63 = HEAP[$this_addr_i56];
  35237.     HEAP[$x_ppem_i61] = HEAP[HEAP[$font_addr_i57] + 64 | 0];
  35238.     HEAP[$y_ppem_i62] = HEAP[HEAP[$font_addr_i57] + 68 | 0];
  35239.     HEAP[$ret_i] = 0;
  35240.     do {
  35241.       if ((HEAP[$x_ppem_i61] | 0) != 0) {
  35242.         label = 365;
  35243.       } else {
  35244.         if ((HEAP[$y_ppem_i62] | 0) != 0) {
  35245.           label = 365;
  35246.           break;
  35247.         } else {
  35248.           break;
  35249.         }
  35250.       }
  35251.     } while (0);
  35252.     if (label == 365) {
  35253.       var $70 = HEAP[$font_addr_i57];
  35254.       var $71 = HEAP[$glyph_id_addr_i58];
  35255.       HEAP[$this_addr_i_i55] = $this1_i63 + 6 | 0;
  35256.       HEAP[$this_addr_i_i_i54] = HEAP[$this_addr_i_i55] | 0;
  35257.       var $this1_i_i_i67 = HEAP[$this_addr_i_i_i54];
  35258.       var $conv_i = ((HEAP[$this1_i_i_i67 | 0] & 255) << 8) + (HEAP[$this1_i_i_i67 + 1 | 0] & 255) & 65535;
  35259.       HEAP[$this_addr_i4_i] = $70;
  35260.       HEAP[$glyph_addr_i_i] = $71;
  35261.       HEAP[$point_index_addr_i_i] = $conv_i;
  35262.       HEAP[$direction_addr_i_i] = 4;
  35263.       HEAP[$x_addr_i_i] = $cx_i;
  35264.       HEAP[$y_addr_i_i] = $cy_i;
  35265.       var $this1_i5_i77 = HEAP[$this_addr_i4_i];
  35266.       var $85 = HEAP[$glyph_addr_i_i];
  35267.       var $86 = HEAP[$point_index_addr_i_i];
  35268.       var $87 = HEAP[$x_addr_i_i];
  35269.       var $88 = HEAP[$y_addr_i_i];
  35270.       HEAP[$this_addr_i_i3_i] = $this1_i5_i77;
  35271.       HEAP[$glyph_addr_i_i_i] = $85;
  35272.       HEAP[$point_index_addr_i_i_i] = $86;
  35273.       HEAP[$x_addr_i_i_i] = $87;
  35274.       HEAP[$y_addr_i_i_i] = $88;
  35275.       var $this1_i_i6_i = HEAP[$this_addr_i_i3_i];
  35276.       HEAP[HEAP[$y_addr_i_i_i]] = 0;
  35277.       HEAP[HEAP[$x_addr_i_i_i]] = 0;
  35278.       var $call_i_i_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i_i6_i + 72 | 0] + 80 | 0]]($this1_i_i6_i, HEAP[$this1_i_i6_i + 76 | 0], HEAP[$glyph_addr_i_i_i], HEAP[$point_index_addr_i_i_i], HEAP[$x_addr_i_i_i], HEAP[$y_addr_i_i_i], HEAP[HEAP[$this1_i_i6_i + 72 | 0] + 124 | 0]);
  35279.       HEAP[$ret_i_i] = $call_i_i_i;
  35280.       if (($call_i_i_i | 0) != 0) {
  35281.         var $110 = HEAP[$glyph_addr_i_i];
  35282.         var $111 = HEAP[$direction_addr_i_i];
  35283.         var $112 = HEAP[$x_addr_i_i];
  35284.         var $113 = HEAP[$y_addr_i_i];
  35285.         HEAP[$this_addr_i1_i_i] = $this1_i5_i77;
  35286.         HEAP[$glyph_addr_i2_i_i] = $110;
  35287.         HEAP[$direction_addr_i_i_i] = $111;
  35288.         HEAP[$x_addr_i3_i_i] = $112;
  35289.         HEAP[$y_addr_i4_i_i] = $113;
  35290.         __ZN9hb_font_t30get_glyph_origin_for_directionEj14hb_direction_tPiS1_(HEAP[$this_addr_i1_i_i], HEAP[$glyph_addr_i2_i_i], HEAP[$direction_addr_i_i_i], $origin_x_i_i_i, $origin_y_i_i_i);
  35291.         var $124 = HEAP[$x_addr_i3_i_i];
  35292.         HEAP[$124] = HEAP[$124] - HEAP[$origin_x_i_i_i] | 0;
  35293.         var $127 = HEAP[$y_addr_i4_i_i];
  35294.         HEAP[$127] = HEAP[$127] - HEAP[$origin_y_i_i_i] | 0;
  35295.       }
  35296.       HEAP[$ret_i] = HEAP[$ret_i_i];
  35297.     }
  35298.     do {
  35299.       if ((HEAP[$x_ppem_i61] | 0) != 0) {
  35300.         if ((HEAP[$ret_i] | 0) == 0) {
  35301.           label = 371;
  35302.           break;
  35303.         }
  35304.         var $cond_i = HEAP[$cx_i];
  35305.         break;
  35306.       } else {
  35307.         label = 371;
  35308.       }
  35309.     } while (0);
  35310.     if (label == 371) {
  35311.       var $147 = HEAP[$font_addr_i57];
  35312.       HEAP[$this_addr_i8_i51] = $this1_i63 + 2 | 0;
  35313.       HEAP[$this_addr_i_i7_i50] = HEAP[$this_addr_i8_i51] | 0;
  35314.       var $this1_i_i11_i84 = HEAP[$this_addr_i_i7_i50];
  35315.       var $conv5_i_i20_i93 = ((HEAP[$this1_i_i11_i84 | 0] & 255) << 8) + (HEAP[$this1_i_i11_i84 + 1 | 0] & 255) & 65535;
  35316.       HEAP[$this_addr_i21_i] = $147;
  35317.       HEAP[$v_addr_i22_i] = $conv5_i_i20_i93;
  35318.       var $this1_i23_i = HEAP[$this_addr_i21_i];
  35319.       var $cond_i = __ZN9hb_font_t8em_scaleEsi($this1_i23_i, HEAP[$v_addr_i22_i], HEAP[$this1_i23_i + 56 | 0]);
  35320.     }
  35321.     var $cond_i;
  35322.     HEAP[HEAP[$x_addr_i59]] = $cond_i;
  35323.     do {
  35324.       if ((HEAP[$y_ppem_i62] | 0) != 0) {
  35325.         if ((HEAP[$ret_i] | 0) == 0) {
  35326.           label = 375;
  35327.           break;
  35328.         }
  35329.         var $cond18_i = HEAP[$cy_i];
  35330.         break;
  35331.       } else {
  35332.         label = 375;
  35333.       }
  35334.     } while (0);
  35335.     if (label == 375) {
  35336.       var $164 = HEAP[$font_addr_i57];
  35337.       HEAP[$this_addr_i26_i] = $this1_i63 + 4 | 0;
  35338.       HEAP[$this_addr_i_i25_i] = HEAP[$this_addr_i26_i] | 0;
  35339.       var $this1_i_i29_i = HEAP[$this_addr_i_i25_i];
  35340.       var $conv5_i_i38_i = ((HEAP[$this1_i_i29_i | 0] & 255) << 8) + (HEAP[$this1_i_i29_i + 1 | 0] & 255) & 65535;
  35341.       HEAP[$this_addr_i1_i52] = $164;
  35342.       HEAP[$v_addr_i_i53] = $conv5_i_i38_i;
  35343.       var $this1_i2_i96 = HEAP[$this_addr_i1_i52];
  35344.       var $cond18_i = __ZN9hb_font_t8em_scaleEsi($this1_i2_i96, HEAP[$v_addr_i_i53], HEAP[$this1_i2_i96 + 60 | 0]);
  35345.     }
  35346.     var $cond18_i;
  35347.     HEAP[HEAP[$y_addr_i60]] = $cond18_i;
  35348.     STACKTOP = __stackBase__;
  35349.     return;
  35350.   } else if (($conv | 0) == 1) {
  35351.     HEAP[$this_addr_i13] = $this1 | 0;
  35352.     HEAP[$font_addr_i14] = $font_addr;
  35353.     HEAP[$glyph_id_addr_i15] = $glyph_id_addr;
  35354.     HEAP[$x_addr_i16] = $x_addr;
  35355.     HEAP[$y_addr_i17] = $y_addr;
  35356.     var $this1_i18 = HEAP[$this_addr_i13];
  35357.     var $17 = HEAP[$font_addr_i14];
  35358.     HEAP[$this_addr_i_i12] = $this1_i18 + 2 | 0;
  35359.     HEAP[$this_addr_i_i_i11] = HEAP[$this_addr_i_i12] | 0;
  35360.     var $this1_i_i_i22 = HEAP[$this_addr_i_i_i11];
  35361.     var $conv5_i_i_i31 = ((HEAP[$this1_i_i_i22 | 0] & 255) << 8) + (HEAP[$this1_i_i_i22 + 1 | 0] & 255) & 65535;
  35362.     HEAP[$this_addr_i3_i8] = $17;
  35363.     HEAP[$v_addr_i4_i] = $conv5_i_i_i31;
  35364.     var $this1_i5_i = HEAP[$this_addr_i3_i8];
  35365.     var $call_i6_i33 = __ZN9hb_font_t8em_scaleEsi($this1_i5_i, HEAP[$v_addr_i4_i], HEAP[$this1_i5_i + 56 | 0]);
  35366.     HEAP[HEAP[$x_addr_i16]] = $call_i6_i33;
  35367.     var $31 = HEAP[$font_addr_i14];
  35368.     HEAP[$this_addr_i8_i7] = $this1_i18 + 4 | 0;
  35369.     HEAP[$this_addr_i_i7_i6] = HEAP[$this_addr_i8_i7] | 0;
  35370.     var $this1_i_i11_i37 = HEAP[$this_addr_i_i7_i6];
  35371.     var $conv5_i_i20_i46 = ((HEAP[$this1_i_i11_i37 | 0] & 255) << 8) + (HEAP[$this1_i_i11_i37 + 1 | 0] & 255) & 65535;
  35372.     HEAP[$this_addr_i1_i9] = $31;
  35373.     HEAP[$v_addr_i_i10] = $conv5_i_i20_i46;
  35374.     var $this1_i2_i47 = HEAP[$this_addr_i1_i9];
  35375.     var $call_i_i49 = __ZN9hb_font_t8em_scaleEsi($this1_i2_i47, HEAP[$v_addr_i_i10], HEAP[$this1_i2_i47 + 60 | 0]);
  35376.     HEAP[HEAP[$y_addr_i17]] = $call_i_i49;
  35377.     STACKTOP = __stackBase__;
  35378.     return;
  35379.   } else if (($conv | 0) == 3) {
  35380.     HEAP[$this_addr_i2] = $this1 | 0;
  35381.     HEAP[$font_addr_i] = $font_addr;
  35382.     HEAP[$glyph_id_addr_i] = $glyph_id_addr;
  35383.     HEAP[$x_addr_i] = $x_addr;
  35384.     HEAP[$y_addr_i] = $y_addr;
  35385.     var $this1_i3 = HEAP[$this_addr_i2];
  35386.     var $199 = HEAP[$font_addr_i];
  35387.     HEAP[$this_addr_i_i1] = $this1_i3 + 2 | 0;
  35388.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i1] | 0;
  35389.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  35390.     var $conv5_i_i_i = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  35391.     HEAP[$this_addr_i3_i] = $199;
  35392.     HEAP[$v_addr_i_i] = $conv5_i_i_i;
  35393.     var $this1_i4_i = HEAP[$this_addr_i3_i];
  35394.     var $call_i6_i = __ZN9hb_font_t8em_scaleEsi($this1_i4_i, HEAP[$v_addr_i_i], HEAP[$this1_i4_i + 56 | 0]);
  35395.     HEAP[HEAP[$x_addr_i]] = $call_i6_i;
  35396.     var $213 = HEAP[$font_addr_i];
  35397.     HEAP[$this_addr_i8_i] = $this1_i3 + 4 | 0;
  35398.     HEAP[$this_addr_i_i7_i] = HEAP[$this_addr_i8_i] | 0;
  35399.     var $this1_i_i11_i = HEAP[$this_addr_i_i7_i];
  35400.     var $conv5_i_i20_i = ((HEAP[$this1_i_i11_i | 0] & 255) << 8) + (HEAP[$this1_i_i11_i + 1 | 0] & 255) & 65535;
  35401.     HEAP[$this_addr_i30_i] = $213;
  35402.     HEAP[$v_addr_i31_i] = $conv5_i_i20_i;
  35403.     var $this1_i32_i = HEAP[$this_addr_i30_i];
  35404.     var $call_i33_i = __ZN9hb_font_t8em_scaleEsi($this1_i32_i, HEAP[$v_addr_i31_i], HEAP[$this1_i32_i + 60 | 0]);
  35405.     HEAP[HEAP[$y_addr_i]] = $call_i33_i;
  35406.     if ((HEAP[HEAP[$font_addr_i] + 64 | 0] | 0) != 0) {
  35407.       HEAP[$ref_tmp_i] = $this1_i3;
  35408.       HEAP[$base_addr_i43_i] = $ref_tmp_i;
  35409.       HEAP[$offset_addr_i44_i] = $this1_i3 + 6 | 0;
  35410.       var $235 = HEAP[HEAP[$base_addr_i43_i]];
  35411.       HEAP[$this_addr_i_i40_i] = HEAP[$offset_addr_i44_i];
  35412.       HEAP[$base_addr_i_i41_i] = $235;
  35413.       HEAP[$this_addr_i_i_i38_i] = HEAP[$this_addr_i_i40_i];
  35414.       HEAP[$this_addr_i_i_i_i37_i] = HEAP[$this_addr_i_i_i38_i] | 0;
  35415.       var $this1_i_i_i_i48_i = HEAP[$this_addr_i_i_i_i37_i];
  35416.       HEAP[$offset_i_i42_i] = ((HEAP[$this1_i_i_i_i48_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i48_i + 1 | 0] & 255) & 65535;
  35417.       if ((HEAP[$offset_i_i42_i] | 0) != 0) {
  35418.         var $253 = HEAP[$offset_i_i42_i];
  35419.         HEAP[$P_addr_i_i_i35_i] = HEAP[$base_addr_i_i41_i];
  35420.         HEAP[$offset_addr_i_i_i36_i] = $253;
  35421.         HEAP[$retval_i_i39_i] = HEAP[$P_addr_i_i_i35_i] + HEAP[$offset_addr_i_i_i36_i] | 0;
  35422.       } else {
  35423.         HEAP[$X_addr_i_i_i_i34_i] = 111704;
  35424.         HEAP[$retval_i_i39_i] = HEAP[$X_addr_i_i_i_i34_i];
  35425.       }
  35426.       var $268 = HEAP[$font_addr_i];
  35427.       HEAP[$this_addr_i24_i] = HEAP[$retval_i_i39_i];
  35428.       HEAP[$font_addr_i25_i] = $268;
  35429.       var $call_i29_i = __ZNK2OT6Device9get_deltaEji(HEAP[$this_addr_i24_i], HEAP[HEAP[$font_addr_i25_i] + 64 | 0], HEAP[HEAP[$font_addr_i25_i] + 56 | 0]);
  35430.       var $277 = HEAP[$x_addr_i];
  35431.       HEAP[$277] = HEAP[$277] + $call_i29_i | 0;
  35432.     }
  35433.     if ((HEAP[HEAP[$font_addr_i] + 68 | 0] | 0) != 0) {
  35434.       HEAP[$ref_tmp9_i] = $this1_i3;
  35435.       HEAP[$base_addr_i_i] = $ref_tmp9_i;
  35436.       HEAP[$offset_addr_i_i] = $this1_i3 + 8 | 0;
  35437.       var $287 = HEAP[HEAP[$base_addr_i_i]];
  35438.       HEAP[$this_addr_i_i21_i] = HEAP[$offset_addr_i_i];
  35439.       HEAP[$base_addr_i_i_i] = $287;
  35440.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i21_i];
  35441.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  35442.       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  35443.       HEAP[$offset_i_i_i] = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  35444.       if ((HEAP[$offset_i_i_i] | 0) != 0) {
  35445.         var $305 = HEAP[$offset_i_i_i];
  35446.         HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  35447.         HEAP[$offset_addr_i_i_i_i] = $305;
  35448.         HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  35449.       } else {
  35450.         HEAP[$X_addr_i_i_i_i_i] = 111704;
  35451.         HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  35452.       }
  35453.       var $320 = HEAP[$font_addr_i];
  35454.       HEAP[$this_addr_i1_i] = HEAP[$retval_i_i_i];
  35455.       HEAP[$font_addr_i_i] = $320;
  35456.       var $call_i_i = __ZNK2OT6Device9get_deltaEji(HEAP[$this_addr_i1_i], HEAP[HEAP[$font_addr_i_i] + 64 | 0], HEAP[HEAP[$font_addr_i_i] + 56 | 0]);
  35457.       var $329 = HEAP[$y_addr_i];
  35458.       HEAP[$329] = HEAP[$329] + $call_i_i | 0;
  35459.     }
  35460.     STACKTOP = __stackBase__;
  35461.     return;
  35462.   } else {
  35463.     STACKTOP = __stackBase__;
  35464.     return;
  35465.   }
  35466. }
  35467. function __ZNK2OT6Device9get_deltaEji($this, $ppem, $scale) {
  35468.   var __stackBase__ = STACKTOP;
  35469.   STACKTOP = STACKTOP + 76 | 0;
  35470.   var $this_addr_i_i43_i = __stackBase__;
  35471.   var $this_addr_i44_i = __stackBase__ + 4;
  35472.   var $this_addr_i_i29_i = __stackBase__ + 8;
  35473.   var $this_addr_i30_i = __stackBase__ + 12;
  35474.   var $this_addr_i_i15_i = __stackBase__ + 16;
  35475.   var $this_addr_i16_i = __stackBase__ + 20;
  35476.   var $this_addr_i_i1_i = __stackBase__ + 24;
  35477.   var $this_addr_i2_i = __stackBase__ + 28;
  35478.   var $this_addr_i_i_i = __stackBase__ + 32;
  35479.   var $this_addr_i_i = __stackBase__ + 36;
  35480.   var $retval_i = __stackBase__ + 40;
  35481.   var $this_addr_i = __stackBase__ + 44;
  35482.   var $ppem_size_addr_i = __stackBase__ + 48;
  35483.   var $f_i = __stackBase__ + 52;
  35484.   var $s_i = __stackBase__ + 56;
  35485.   var $byte_i = __stackBase__ + 60;
  35486.   var $bits_i = __stackBase__ + 64;
  35487.   var $mask_i = __stackBase__ + 68;
  35488.   var $delta_i = __stackBase__ + 72;
  35489.   var $retval;
  35490.   var $ppem_addr;
  35491.   var $scale_addr;
  35492.   $ppem_addr = $ppem;
  35493.   $scale_addr = $scale;
  35494.   if (($ppem_addr | 0) == 0) {
  35495.     $retval = 0;
  35496.     var $73 = $retval;
  35497.     STACKTOP = __stackBase__;
  35498.     return $73;
  35499.   }
  35500.   HEAP[$this_addr_i] = $this;
  35501.   HEAP[$ppem_size_addr_i] = $ppem_addr;
  35502.   var $this1_i = HEAP[$this_addr_i];
  35503.   HEAP[$this_addr_i_i] = $this1_i + 4 | 0;
  35504.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  35505.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  35506.   HEAP[$f_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  35507.   L510 : do {
  35508.     if (HEAP[$f_i] >>> 0 < 1 | HEAP[$f_i] >>> 0 > 3) {
  35509.       HEAP[$retval_i] = 0;
  35510.       var $60 = 0;
  35511.     } else {
  35512.       var $19 = HEAP[$ppem_size_addr_i];
  35513.       HEAP[$this_addr_i44_i] = $this1_i | 0;
  35514.       HEAP[$this_addr_i_i43_i] = HEAP[$this_addr_i44_i] | 0;
  35515.       var $this1_i_i47_i = HEAP[$this_addr_i_i43_i];
  35516.       do {
  35517.         if ($19 >>> 0 >= (((HEAP[$this1_i_i47_i | 0] & 255) << 8) + (HEAP[$this1_i_i47_i + 1 | 0] & 255) & 65535) >>> 0) {
  35518.           var $26 = HEAP[$ppem_size_addr_i];
  35519.           HEAP[$this_addr_i30_i] = $this1_i + 2 | 0;
  35520.           HEAP[$this_addr_i_i29_i] = HEAP[$this_addr_i30_i] | 0;
  35521.           var $this1_i_i33_i = HEAP[$this_addr_i_i29_i];
  35522.           if ($26 >>> 0 > (((HEAP[$this1_i_i33_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i + 1 | 0] & 255) & 65535) >>> 0) {
  35523.             break;
  35524.           }
  35525.           var $33 = HEAP[$ppem_size_addr_i];
  35526.           HEAP[$this_addr_i16_i] = $this1_i | 0;
  35527.           HEAP[$this_addr_i_i15_i] = HEAP[$this_addr_i16_i] | 0;
  35528.           var $this1_i_i19_i = HEAP[$this_addr_i_i15_i];
  35529.           HEAP[$s_i] = $33 - (((HEAP[$this1_i_i19_i | 0] & 255) << 8) + (HEAP[$this1_i_i19_i + 1 | 0] & 255) & 65535) | 0;
  35530.           HEAP[$this_addr_i2_i] = (HEAP[$s_i] >>> ((4 - HEAP[$f_i] | 0) >>> 0) << 1) + $this1_i + 6 | 0;
  35531.           HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  35532.           var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  35533.           HEAP[$byte_i] = ((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535;
  35534.           HEAP[$bits_i] = HEAP[$byte_i] >>> ((16 - (((1 << 4 - HEAP[$f_i]) - 1 & HEAP[$s_i]) + 1 << HEAP[$f_i]) | 0) >>> 0);
  35535.           HEAP[$mask_i] = 65535 >> 16 - (1 << HEAP[$f_i]);
  35536.           HEAP[$delta_i] = HEAP[$mask_i] & HEAP[$bits_i];
  35537.           if (HEAP[$delta_i] >>> 0 >= (HEAP[$mask_i] + 1 | 0) >>> 1 >>> 0) {
  35538.             HEAP[$delta_i] = -HEAP[$mask_i] - 1 + HEAP[$delta_i] | 0;
  35539.           }
  35540.           var $59 = HEAP[$delta_i];
  35541.           HEAP[$retval_i] = $59;
  35542.           var $60 = $59;
  35543.           break L510;
  35544.         }
  35545.       } while (0);
  35546.       HEAP[$retval_i] = 0;
  35547.       var $60 = 0;
  35548.     }
  35549.   } while (0);
  35550.   var $60;
  35551.   if (($60 | 0) != 0) {
  35552.     $retval = ($60 | 0) * ($scale_addr | 0) / ($ppem_addr >>> 0) & -1;
  35553.     var $73 = $retval;
  35554.     STACKTOP = __stackBase__;
  35555.     return $73;
  35556.   } else {
  35557.     $retval = 0;
  35558.     var $73 = $retval;
  35559.     STACKTOP = __stackBase__;
  35560.     return $73;
  35561.   }
  35562. }
  35563. function __ZN9hb_font_t8em_scaleEsi($this, $v, $scale) {
  35564.   var label = 0;
  35565.   var __stackBase__ = STACKTOP;
  35566.   STACKTOP = STACKTOP + 264 | 0;
  35567.   var $this_addr_i_i_i15_i_i_i = __stackBase__;
  35568.   var $this_addr_i_i16_i_i_i = __stackBase__ + 4;
  35569.   var $this_addr_i17_i_i_i = __stackBase__ + 8;
  35570.   var $upem_i_i_i_i = __stackBase__ + 12;
  35571.   var $blob_addr_i1_i_i_i_i = __stackBase__ + 16;
  35572.   var $length_addr_i_i5_i_i_i = __stackBase__ + 20;
  35573.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 24;
  35574.   var $X_addr_i_i6_i_i_i = __stackBase__ + 28;
  35575.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 32;
  35576.   var $this_addr_i_i_i_i7_i_i_i = __stackBase__ + 36;
  35577.   var $obj_addr_i_i_i8_i_i_i = __stackBase__ + 40;
  35578.   var $blob_addr_i_i9_i_i_i = __stackBase__ + 44;
  35579.   var $blob_addr_i10_i_i_i = __stackBase__ + 48;
  35580.   var $base_i_i_i_i = __stackBase__ + 52;
  35581.   var $this_addr_i_i1_i19_i_i_i_i = __stackBase__ + 56;
  35582.   var $base_addr_i_i_i20_i_i_i_i = __stackBase__ + 60;
  35583.   var $len_addr_i_i_i21_i_i_i_i = __stackBase__ + 64;
  35584.   var $p_i_i_i22_i_i_i_i = __stackBase__ + 68;
  35585.   var $this_addr_i2_i23_i_i_i_i = __stackBase__ + 72;
  35586.   var $obj_addr_i_i24_i_i_i_i = __stackBase__ + 76;
  35587.   var $this_addr_i_i_i25_i_i_i_i = __stackBase__ + 80;
  35588.   var $this_addr_i_i26_i_i_i_i = __stackBase__ + 84;
  35589.   var $this_addr_i28_i_i_i_i = __stackBase__ + 88;
  35590.   var $c_addr_i29_i_i_i_i = __stackBase__ + 92;
  35591.   var $this_addr_i_i1_i_i_i_i_i = __stackBase__ + 96;
  35592.   var $base_addr_i_i_i_i_i_i_i = __stackBase__ + 100;
  35593.   var $len_addr_i_i_i_i_i_i_i = __stackBase__ + 104;
  35594.   var $p_i_i_i_i_i_i_i = __stackBase__ + 108;
  35595.   var $this_addr_i2_i_i_i_i_i = __stackBase__ + 112;
  35596.   var $obj_addr_i_i_i_i_i_i = __stackBase__ + 116;
  35597.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 120;
  35598.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 124;
  35599.   var $this_addr_i15_i_i_i_i = __stackBase__ + 128;
  35600.   var $c_addr_i_i_i_i_i = __stackBase__ + 132;
  35601.   var $retval_i_i_i_i_i = __stackBase__ + 136;
  35602.   var $blob_addr_i13_i_i_i_i = __stackBase__ + 140;
  35603.   var $length_addr_i_i_i_i_i = __stackBase__ + 144;
  35604.   var $blob_addr_i_i_i_i_i = __stackBase__ + 148;
  35605.   var $X_addr_i_i_i_i_i = __stackBase__ + 152;
  35606.   var $this_addr_i7_i_i_i_i = __stackBase__ + 156;
  35607.   var $this_addr_i4_i_i_i_i = __stackBase__ + 160;
  35608.   var $blob_addr_i1_i_i_i_i_i = __stackBase__ + 164;
  35609.   var $blob_addr_i_i_i_i_i_i = __stackBase__ + 168;
  35610.   var $length_addr_i_i_i_i_i_i = __stackBase__ + 172;
  35611.   var $this_addr_i1_i_i_i_i = __stackBase__ + 176;
  35612.   var $this_addr_i_i_i_i_i = __stackBase__ + 180;
  35613.   var $b_addr_i_i_i_i_i = __stackBase__ + 184;
  35614.   var $retval_i1_i_i_i = __stackBase__ + 188;
  35615.   var $blob_addr_i_i_i_i = __stackBase__ + 192;
  35616.   var $c_i_i_i_i = __stackBase__ + 196;
  35617.   var $sane_i_i_i_i;
  35618.   var $t_i_i_i_i = __stackBase__ + 220;
  35619.   var $edit_count28_i_i_i_i = __stackBase__ + 224;
  35620.   var $retval_i_i_i_i = __stackBase__ + 228;
  35621.   var $this_addr_i_i_i_i = __stackBase__ + 232;
  35622.   var $tag_addr_i_i_i_i = __stackBase__ + 236;
  35623.   var $blob_i_i_i_i = __stackBase__ + 240;
  35624.   var $this_addr_i_i_i = __stackBase__ + 244;
  35625.   var $head_blob_i_i_i = __stackBase__ + 248;
  35626.   var $head_table_i_i_i = __stackBase__ + 252;
  35627.   var $this_addr_i_i = __stackBase__ + 256;
  35628.   var $face_addr_i = __stackBase__ + 260;
  35629.   var $mul = ($v << 16 >> 16 | 0) * ($scale | 0);
  35630.   HEAP[$face_addr_i] = HEAP[$this + 52 | 0];
  35631.   HEAP[$this_addr_i_i] = HEAP[$face_addr_i];
  35632.   var $this1_i_i = HEAP[$this_addr_i_i];
  35633.   if ((HEAP[$this1_i_i + 64 | 0] | 0) != 0) {
  35634.     var $upem2_i_i = $this1_i_i + 64 | 0;
  35635.     var $229 = HEAP[$upem2_i_i];
  35636.     var $230 = $this_addr_i_i;
  35637.     var $231 = $face_addr_i;
  35638.     var $conv4 = $229 >>> 0;
  35639.     var $div = $mul / $conv4;
  35640.     var $conv5 = $div & -1;
  35641.     STACKTOP = __stackBase__;
  35642.     return $conv5;
  35643.   }
  35644.   HEAP[$this_addr_i_i_i] = $this1_i_i;
  35645.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  35646.   HEAP[$this_addr_i_i_i_i] = $this1_i_i_i;
  35647.   HEAP[$tag_addr_i_i_i_i] = 1751474532;
  35648.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  35649.   do {
  35650.     if (($this1_i_i_i_i | 0) != 0) {
  35651.       if ((HEAP[$this1_i_i_i_i + 48 | 0] | 0) == 0) {
  35652.         label = 413;
  35653.         break;
  35654.       }
  35655.       var $call4_i_i_i_i = FUNCTION_TABLE[HEAP[$this1_i_i_i_i + 48 | 0]]($this1_i_i_i_i, HEAP[$tag_addr_i_i_i_i], HEAP[$this1_i_i_i_i + 52 | 0]);
  35656.       HEAP[$blob_i_i_i_i] = $call4_i_i_i_i;
  35657.       if ((HEAP[$blob_i_i_i_i] | 0) != 0) {
  35658.         HEAP[$retval_i_i_i_i] = HEAP[$blob_i_i_i_i];
  35659.         break;
  35660.       } else {
  35661.         HEAP[$retval_i_i_i_i] = 111632;
  35662.         break;
  35663.       }
  35664.     } else {
  35665.       label = 413;
  35666.     }
  35667.   } while (0);
  35668.   if (label == 413) {
  35669.     HEAP[$retval_i_i_i_i] = 111632;
  35670.   }
  35671.   HEAP[$blob_addr_i_i_i_i] = HEAP[$retval_i_i_i_i];
  35672.   var $30 = $c_i_i_i_i;
  35673.   for (var $$dest = $30, $$stop = $$dest + 24; $$dest < $$stop; $$dest++) {
  35674.     HEAP[$$dest] = 0;
  35675.   }
  35676.   var $31 = HEAP[$blob_addr_i_i_i_i];
  35677.   HEAP[$this_addr_i_i_i_i_i] = $c_i_i_i_i | 0;
  35678.   HEAP[$b_addr_i_i_i_i_i] = $31;
  35679.   var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  35680.   var $call_i_i_i_i_i = _hb_blob_reference(HEAP[$b_addr_i_i_i_i_i]);
  35681.   HEAP[$this1_i_i_i_i_i + 20 | 0] = $call_i_i_i_i_i;
  35682.   HEAP[$this1_i_i_i_i_i + 12 | 0] = 0;
  35683.   var $arraydecay1_i_i_i_i = $c_i_i_i_i | 0;
  35684.   var $start_i_i_i_i = $c_i_i_i_i + 4 | 0;
  35685.   var $arraydecay4_i_i_i_i = $c_i_i_i_i | 0;
  35686.   var $start5_i_i_i_i = $arraydecay4_i_i_i_i + 4 | 0;
  35687.   var $arraydecay6_i_i_i_i = $c_i_i_i_i | 0;
  35688.   var $edit_count_i_i_i_i = $c_i_i_i_i + 16 | 0;
  35689.   var $writable_i_i_i_i = $c_i_i_i_i + 12 | 0;
  35690.   var $start37_i_i_i_i = $c_i_i_i_i + 4 | 0;
  35691.   var $start39_i_i_i_i = $c_i_i_i_i + 4 | 0;
  35692.   var $end_i_i_i_i = $c_i_i_i_i + 8 | 0;
  35693.   var $start43_i_i_i_i = $c_i_i_i_i + 4 | 0;
  35694.   var $writable47_i_i_i_i = $c_i_i_i_i + 12 | 0;
  35695.   while (1) {
  35696.     HEAP[$this_addr_i1_i_i_i_i] = $arraydecay1_i_i_i_i;
  35697.     var $this1_i2_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i];
  35698.     HEAP[$blob_addr_i_i_i_i_i_i] = HEAP[$this1_i2_i_i_i_i + 20 | 0];
  35699.     HEAP[$length_addr_i_i_i_i_i_i] = 0;
  35700.     HEAP[$this1_i2_i_i_i_i + 4 | 0] = HEAP[HEAP[$blob_addr_i_i_i_i_i_i] + 48 | 0];
  35701.     var $78 = HEAP[$this1_i2_i_i_i_i + 4 | 0];
  35702.     HEAP[$blob_addr_i1_i_i_i_i_i] = HEAP[$this1_i2_i_i_i_i + 20 | 0];
  35703.     HEAP[$this1_i2_i_i_i_i + 8 | 0] = $78 + HEAP[HEAP[$blob_addr_i1_i_i_i_i_i] + 52 | 0] | 0;
  35704.     HEAP[$this1_i2_i_i_i_i + 16 | 0] = 0;
  35705.     HEAP[$this1_i2_i_i_i_i | 0] = 0;
  35706.     if ((HEAP[$start_i_i_i_i] | 0) == 0) {
  35707.       label = 419;
  35708.       break;
  35709.     }
  35710.     HEAP[$X_addr_i_i_i_i_i] = HEAP[$start5_i_i_i_i];
  35711.     HEAP[$t_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  35712.     HEAP[$this_addr_i15_i_i_i_i] = HEAP[$t_i_i_i_i];
  35713.     HEAP[$c_addr_i_i_i_i_i] = $arraydecay6_i_i_i_i;
  35714.     var $this1_i16_i_i_i_i = HEAP[$this_addr_i15_i_i_i_i];
  35715.     HEAP[$this_addr_i2_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  35716.     HEAP[$obj_addr_i_i_i_i_i_i] = $this1_i16_i_i_i_i;
  35717.     var $93 = HEAP[$obj_addr_i_i_i_i_i_i];
  35718.     HEAP[$this_addr_i_i1_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i];
  35719.     HEAP[$base_addr_i_i_i_i_i_i_i] = $93;
  35720.     HEAP[$len_addr_i_i_i_i_i_i_i] = 54;
  35721.     var $this1_i_i4_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i];
  35722.     HEAP[$p_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i_i];
  35723.     do {
  35724.       if (HEAP[$this1_i_i4_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i_i_i_i_i] >>> 0) {
  35725.         if (!(HEAP[$p_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i_i_i_i_i + 8 | 0] >>> 0)) {
  35726.           var $102 = 0;
  35727.           break;
  35728.         }
  35729.         var $102 = (HEAP[$this1_i_i4_i_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i_i_i_i_i] >>> 0;
  35730.       } else {
  35731.         var $102 = 0;
  35732.       }
  35733.     } while (0);
  35734.     var $102;
  35735.     if ($102 & 1) {
  35736.       HEAP[$this_addr_i_i_i_i_i_i] = $this1_i16_i_i_i_i | 0;
  35737.       HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i] | 0;
  35738.       var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  35739.       var $106 = (((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1;
  35740.     } else {
  35741.       var $106 = 0;
  35742.     }
  35743.     var $106;
  35744.     $sane_i_i_i_i = $106 & 1 & 1;
  35745.     var $109 = HEAP[$edit_count_i_i_i_i];
  35746.     if ($sane_i_i_i_i & 1) {
  35747.       label = 426;
  35748.       break;
  35749.     }
  35750.     HEAP[$edit_count28_i_i_i_i] = $109;
  35751.     if ((HEAP[$edit_count28_i_i_i_i] | 0) == 0) {
  35752.       label = 445;
  35753.       break;
  35754.     }
  35755.     if (HEAP[$writable_i_i_i_i] & 1) {
  35756.       label = 445;
  35757.       break;
  35758.     }
  35759.     HEAP[$blob_addr_i13_i_i_i_i] = HEAP[$blob_addr_i_i_i_i];
  35760.     HEAP[$length_addr_i_i_i_i_i] = 0;
  35761.     var $call_i14_i_i_i_i = __ZL13_try_writableP9hb_blob_t(HEAP[$blob_addr_i13_i_i_i_i]);
  35762.     var $tobool3_i_i_i_i_i = (HEAP[$length_addr_i_i_i_i_i] | 0) != 0;
  35763.     if ($call_i14_i_i_i_i) {
  35764.       if ($tobool3_i_i_i_i_i) {
  35765.         HEAP[HEAP[$length_addr_i_i_i_i_i]] = HEAP[HEAP[$blob_addr_i13_i_i_i_i] + 52 | 0];
  35766.       }
  35767.       HEAP[$retval_i_i_i_i_i] = HEAP[HEAP[$blob_addr_i13_i_i_i_i] + 48 | 0];
  35768.     } else {
  35769.       if ($tobool3_i_i_i_i_i) {
  35770.         HEAP[HEAP[$length_addr_i_i_i_i_i]] = 0;
  35771.       }
  35772.       HEAP[$retval_i_i_i_i_i] = 0;
  35773.     }
  35774.     HEAP[$start37_i_i_i_i] = HEAP[$retval_i_i_i_i_i];
  35775.     var $161 = HEAP[$start39_i_i_i_i];
  35776.     HEAP[$blob_addr_i_i_i_i_i] = HEAP[$blob_addr_i_i_i_i];
  35777.     HEAP[$end_i_i_i_i] = $161 + HEAP[HEAP[$blob_addr_i_i_i_i_i] + 52 | 0] | 0;
  35778.     if ((HEAP[$start43_i_i_i_i] | 0) == 0) {
  35779.       label = 445;
  35780.       break;
  35781.     }
  35782.     HEAP[$writable47_i_i_i_i] = 1;
  35783.   }
  35784.   do {
  35785.     if (label == 426) {
  35786.       if (($109 | 0) == 0) {
  35787.         label = 445;
  35788.         break;
  35789.       }
  35790.       HEAP[$c_i_i_i_i + 16 | 0] = 0;
  35791.       HEAP[$this_addr_i28_i_i_i_i] = HEAP[$t_i_i_i_i];
  35792.       HEAP[$c_addr_i29_i_i_i_i] = $c_i_i_i_i | 0;
  35793.       var $this1_i30_i_i_i_i = HEAP[$this_addr_i28_i_i_i_i];
  35794.       HEAP[$this_addr_i2_i23_i_i_i_i] = HEAP[$c_addr_i29_i_i_i_i];
  35795.       HEAP[$obj_addr_i_i24_i_i_i_i] = $this1_i30_i_i_i_i;
  35796.       var $117 = HEAP[$obj_addr_i_i24_i_i_i_i];
  35797.       HEAP[$this_addr_i_i1_i19_i_i_i_i] = HEAP[$this_addr_i2_i23_i_i_i_i];
  35798.       HEAP[$base_addr_i_i_i20_i_i_i_i] = $117;
  35799.       HEAP[$len_addr_i_i_i21_i_i_i_i] = 54;
  35800.       var $this1_i_i4_i32_i_i_i_i = HEAP[$this_addr_i_i1_i19_i_i_i_i];
  35801.       HEAP[$p_i_i_i22_i_i_i_i] = HEAP[$base_addr_i_i_i20_i_i_i_i];
  35802.       do {
  35803.         if (HEAP[$this1_i_i4_i32_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$p_i_i_i22_i_i_i_i] >>> 0) {
  35804.           if (!(HEAP[$p_i_i_i22_i_i_i_i] >>> 0 <= HEAP[$this1_i_i4_i32_i_i_i_i + 8 | 0] >>> 0)) {
  35805.             var $130 = 0;
  35806.             break;
  35807.           }
  35808.           var $130 = (HEAP[$this1_i_i4_i32_i_i_i_i + 8 | 0] - HEAP[$p_i_i_i22_i_i_i_i] | 0) >>> 0 >= HEAP[$len_addr_i_i_i21_i_i_i_i] >>> 0;
  35809.         } else {
  35810.           var $130 = 0;
  35811.         }
  35812.       } while (0);
  35813.       var $130;
  35814.       if ($130 & 1) {
  35815.         HEAP[$this_addr_i_i26_i_i_i_i] = $this1_i30_i_i_i_i | 0;
  35816.         HEAP[$this_addr_i_i_i25_i_i_i_i] = HEAP[$this_addr_i_i26_i_i_i_i] | 0;
  35817.         var $this1_i_i_i51_i_i_i_i = HEAP[$this_addr_i_i_i25_i_i_i_i];
  35818.         var $144 = (((HEAP[$this1_i_i_i51_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i51_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1;
  35819.       } else {
  35820.         var $144 = 0;
  35821.       }
  35822.       var $144;
  35823.       $sane_i_i_i_i = $144 & 1 & 1;
  35824.       if ((HEAP[$c_i_i_i_i + 16 | 0] | 0) == 0) {
  35825.         label = 445;
  35826.         break;
  35827.       }
  35828.       $sane_i_i_i_i = 0;
  35829.       label = 445;
  35830.       break;
  35831.     } else if (label == 419) {
  35832.       HEAP[$this_addr_i7_i_i_i_i] = $arraydecay4_i_i_i_i;
  35833.       var $this1_i8_i_i_i_i = HEAP[$this_addr_i7_i_i_i_i];
  35834.       _hb_blob_destroy(HEAP[$this1_i8_i_i_i_i + 20 | 0]);
  35835.       HEAP[$this1_i8_i_i_i_i + 20 | 0] = 0;
  35836.       HEAP[$this1_i8_i_i_i_i + 8 | 0] = 0;
  35837.       HEAP[$this1_i8_i_i_i_i + 4 | 0] = 0;
  35838.       HEAP[$retval_i1_i_i_i] = HEAP[$blob_addr_i_i_i_i];
  35839.       break;
  35840.     }
  35841.   } while (0);
  35842.   do {
  35843.     if (label == 445) {
  35844.       HEAP[$this_addr_i4_i_i_i_i] = $c_i_i_i_i | 0;
  35845.       var $this1_i5_i_i_i_i = HEAP[$this_addr_i4_i_i_i_i];
  35846.       _hb_blob_destroy(HEAP[$this1_i5_i_i_i_i + 20 | 0]);
  35847.       HEAP[$this1_i5_i_i_i_i + 20 | 0] = 0;
  35848.       HEAP[$this1_i5_i_i_i_i + 8 | 0] = 0;
  35849.       HEAP[$this1_i5_i_i_i_i + 4 | 0] = 0;
  35850.       var $170 = HEAP[$blob_addr_i_i_i_i];
  35851.       if ($sane_i_i_i_i & 1) {
  35852.         HEAP[$retval_i1_i_i_i] = $170;
  35853.         break;
  35854.       } else {
  35855.         _hb_blob_destroy($170);
  35856.         HEAP[$retval_i1_i_i_i] = 111632;
  35857.         break;
  35858.       }
  35859.     }
  35860.   } while (0);
  35861.   HEAP[$head_blob_i_i_i] = HEAP[$retval_i1_i_i_i];
  35862.   HEAP[$blob_addr_i10_i_i_i] = HEAP[$head_blob_i_i_i];
  35863.   HEAP[$blob_addr_i_i9_i_i_i] = HEAP[$blob_addr_i10_i_i_i];
  35864.   HEAP[$obj_addr_i_i_i8_i_i_i] = HEAP[$blob_addr_i_i9_i_i_i];
  35865.   HEAP[$this_addr_i_i_i_i7_i_i_i] = HEAP[$obj_addr_i_i_i8_i_i_i] | 0;
  35866.   HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i7_i_i_i] | 0;
  35867.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i_i_i_i] | 0] | 0) != -1) {
  35868.     HEAP[HEAP[$blob_addr_i_i9_i_i_i] + 44 | 0] = 1;
  35869.   }
  35870.   HEAP[$blob_addr_i1_i_i_i_i] = HEAP[$blob_addr_i10_i_i_i];
  35871.   HEAP[$length_addr_i_i5_i_i_i] = 0;
  35872.   var $197 = HEAP[HEAP[$blob_addr_i1_i_i_i_i] + 48 | 0];
  35873.   HEAP[$base_i_i_i_i] = $197;
  35874.   if (($197 | 0) != 0) {
  35875.     HEAP[$X_addr_i_i6_i_i_i] = HEAP[$base_i_i_i_i];
  35876.     var $cond_i_i_i_i = HEAP[$X_addr_i_i6_i_i_i];
  35877.   } else {
  35878.     HEAP[$X_addr_i_i_i_i_i_i] = 111768;
  35879.     var $cond_i_i_i_i = HEAP[$X_addr_i_i_i_i_i_i];
  35880.   }
  35881.   var $cond_i_i_i_i;
  35882.   HEAP[$head_table_i_i_i] = $cond_i_i_i_i;
  35883.   HEAP[$this_addr_i17_i_i_i] = HEAP[$head_table_i_i_i];
  35884.   HEAP[$this_addr_i_i16_i_i_i] = HEAP[$this_addr_i17_i_i_i] + 18 | 0;
  35885.   HEAP[$this_addr_i_i_i15_i_i_i] = HEAP[$this_addr_i_i16_i_i_i] | 0;
  35886.   var $this1_i_i_i20_i_i_i = HEAP[$this_addr_i_i_i15_i_i_i];
  35887.   HEAP[$upem_i_i_i_i] = ((HEAP[$this1_i_i_i20_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i20_i_i_i + 1 | 0] & 255) & 65535;
  35888.   HEAP[$this1_i_i_i + 64 | 0] = 16 <= HEAP[$upem_i_i_i_i] >>> 0 & HEAP[$upem_i_i_i_i] >>> 0 <= 16384 ? HEAP[$upem_i_i_i_i] : 1e3;
  35889.   _hb_blob_destroy(HEAP[$head_blob_i_i_i]);
  35890.   var $upem2_i_i = $this1_i_i + 64 | 0;
  35891.   var $229 = HEAP[$upem2_i_i];
  35892.   var $230 = $this_addr_i_i;
  35893.   var $231 = $face_addr_i;
  35894.   var $conv4 = $229 >>> 0;
  35895.   var $div = $mul / $conv4;
  35896.   var $conv5 = $div & -1;
  35897.   STACKTOP = __stackBase__;
  35898.   return $conv5;
  35899. }
  35900. function __ZNK2OT11ValueFormat11apply_valueEP9hb_font_t14hb_direction_tPKvPKNS_7IntTypeItLj2EEER19hb_glyph_position_t($this, $font, $direction, $base, $values, $glyph_pos) {
  35901.   var __stackBase__ = STACKTOP;
  35902.   STACKTOP = STACKTOP + 356 | 0;
  35903.   var $this_addr_i_i195 = __stackBase__;
  35904.   var $this_addr_i196 = __stackBase__ + 4;
  35905.   var $this_addr_i190 = __stackBase__ + 8;
  35906.   var $v_addr_i191 = __stackBase__ + 12;
  35907.   var $X_addr_i_i188 = __stackBase__ + 14;
  35908.   var $value_addr_i189 = __stackBase__ + 18;
  35909.   var $this_addr_i_i174 = __stackBase__ + 22;
  35910.   var $this_addr_i175 = __stackBase__ + 26;
  35911.   var $X_addr_i_i172 = __stackBase__ + 30;
  35912.   var $value_addr_i173 = __stackBase__ + 34;
  35913.   var $this_addr_i167 = __stackBase__ + 38;
  35914.   var $v_addr_i168 = __stackBase__ + 42;
  35915.   var $this_addr_i162 = __stackBase__ + 44;
  35916.   var $v_addr_i163 = __stackBase__ + 48;
  35917.   var $this_addr_i_i_i154 = __stackBase__ + 50;
  35918.   var $this_addr_i_i155 = __stackBase__ + 54;
  35919.   var $this_addr_i156 = __stackBase__ + 58;
  35920.   var $format_i = __stackBase__ + 62;
  35921.   var $X_addr_i_i152 = __stackBase__ + 66;
  35922.   var $value_addr_i153 = __stackBase__ + 70;
  35923.   var $X_addr_i_i_i_i122 = __stackBase__ + 74;
  35924.   var $P_addr_i_i_i123 = __stackBase__ + 78;
  35925.   var $offset_addr_i_i_i124 = __stackBase__ + 82;
  35926.   var $this_addr_i_i_i_i125 = __stackBase__ + 86;
  35927.   var $this_addr_i_i_i126 = __stackBase__ + 90;
  35928.   var $retval_i_i127 = __stackBase__ + 94;
  35929.   var $this_addr_i_i128 = __stackBase__ + 98;
  35930.   var $base_addr_i_i129 = __stackBase__ + 102;
  35931.   var $offset_i_i130 = __stackBase__ + 106;
  35932.   var $base_addr_i131 = __stackBase__ + 110;
  35933.   var $offset_addr_i132 = __stackBase__ + 114;
  35934.   var $this_addr_i_i108 = __stackBase__ + 118;
  35935.   var $this_addr_i109 = __stackBase__ + 122;
  35936.   var $this_addr_i102 = __stackBase__ + 126;
  35937.   var $font_addr_i103 = __stackBase__ + 130;
  35938.   var $X_addr_i_i100 = __stackBase__ + 134;
  35939.   var $value_addr_i101 = __stackBase__ + 138;
  35940.   var $X_addr_i_i_i_i70 = __stackBase__ + 142;
  35941.   var $P_addr_i_i_i71 = __stackBase__ + 146;
  35942.   var $offset_addr_i_i_i72 = __stackBase__ + 150;
  35943.   var $this_addr_i_i_i_i73 = __stackBase__ + 154;
  35944.   var $this_addr_i_i_i74 = __stackBase__ + 158;
  35945.   var $retval_i_i75 = __stackBase__ + 162;
  35946.   var $this_addr_i_i76 = __stackBase__ + 166;
  35947.   var $base_addr_i_i77 = __stackBase__ + 170;
  35948.   var $offset_i_i78 = __stackBase__ + 174;
  35949.   var $base_addr_i79 = __stackBase__ + 178;
  35950.   var $offset_addr_i80 = __stackBase__ + 182;
  35951.   var $X_addr_i_i68 = __stackBase__ + 186;
  35952.   var $value_addr_i69 = __stackBase__ + 190;
  35953.   var $this_addr_i64 = __stackBase__ + 194;
  35954.   var $v_addr_i = __stackBase__ + 198;
  35955.   var $this_addr_i58 = __stackBase__ + 200;
  35956.   var $font_addr_i59 = __stackBase__ + 204;
  35957.   var $X_addr_i_i56 = __stackBase__ + 208;
  35958.   var $value_addr_i57 = __stackBase__ + 212;
  35959.   var $X_addr_i_i_i_i26 = __stackBase__ + 216;
  35960.   var $P_addr_i_i_i27 = __stackBase__ + 220;
  35961.   var $offset_addr_i_i_i28 = __stackBase__ + 224;
  35962.   var $this_addr_i_i_i_i29 = __stackBase__ + 228;
  35963.   var $this_addr_i_i_i30 = __stackBase__ + 232;
  35964.   var $retval_i_i31 = __stackBase__ + 236;
  35965.   var $this_addr_i_i32 = __stackBase__ + 240;
  35966.   var $base_addr_i_i33 = __stackBase__ + 244;
  35967.   var $offset_i_i34 = __stackBase__ + 248;
  35968.   var $base_addr_i35 = __stackBase__ + 252;
  35969.   var $offset_addr_i36 = __stackBase__ + 256;
  35970.   var $this_addr_i_i12 = __stackBase__ + 260;
  35971.   var $this_addr_i13 = __stackBase__ + 264;
  35972.   var $this_addr_i8 = __stackBase__ + 268;
  35973.   var $font_addr_i9 = __stackBase__ + 272;
  35974.   var $X_addr_i_i6 = __stackBase__ + 276;
  35975.   var $value_addr_i7 = __stackBase__ + 280;
  35976.   var $X_addr_i_i_i_i = __stackBase__ + 284;
  35977.   var $P_addr_i_i_i = __stackBase__ + 288;
  35978.   var $offset_addr_i_i_i = __stackBase__ + 292;
  35979.   var $this_addr_i_i_i_i = __stackBase__ + 296;
  35980.   var $this_addr_i_i_i = __stackBase__ + 300;
  35981.   var $retval_i_i = __stackBase__ + 304;
  35982.   var $this_addr_i_i3 = __stackBase__ + 308;
  35983.   var $base_addr_i_i = __stackBase__ + 312;
  35984.   var $offset_i_i = __stackBase__ + 316;
  35985.   var $base_addr_i = __stackBase__ + 320;
  35986.   var $offset_addr_i = __stackBase__ + 324;
  35987.   var $X_addr_i_i = __stackBase__ + 328;
  35988.   var $value_addr_i = __stackBase__ + 332;
  35989.   var $this_addr_i1 = __stackBase__ + 336;
  35990.   var $font_addr_i = __stackBase__ + 340;
  35991.   var $this_addr_i_i = __stackBase__ + 344;
  35992.   var $this_addr_i = __stackBase__ + 348;
  35993.   var $font_addr;
  35994.   var $base_addr = __stackBase__ + 352;
  35995.   var $values_addr;
  35996.   var $glyph_pos_addr;
  35997.   var $x_ppem;
  35998.   var $y_ppem;
  35999.   var $format;
  36000.   var $horizontal;
  36001.   $font_addr = $font;
  36002.   HEAP[$base_addr] = $base;
  36003.   $values_addr = $values;
  36004.   $glyph_pos_addr = $glyph_pos;
  36005.   var $this1 = $this;
  36006.   HEAP[$this_addr_i] = $this1;
  36007.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  36008.   var $this1_i_i = HEAP[$this_addr_i_i];
  36009.   $format = ((HEAP[$this1_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i + 1 | 0] & 255) & 65535;
  36010.   $horizontal = ($direction & -2 | 0) == 4 & 1;
  36011.   if (($format | 0) == 0) {
  36012.     STACKTOP = __stackBase__;
  36013.     return;
  36014.   }
  36015.   if (($format & 1 | 0) != 0) {
  36016.     var $11 = $values_addr;
  36017.     $values_addr = $11 + 2 | 0;
  36018.     HEAP[$value_addr_i] = $11;
  36019.     HEAP[$X_addr_i_i] = HEAP[$value_addr_i];
  36020.     HEAP[$this_addr_i13] = HEAP[$X_addr_i_i];
  36021.     HEAP[$this_addr_i_i12] = HEAP[$this_addr_i13] | 0;
  36022.     var $this1_i_i16 = HEAP[$this_addr_i_i12];
  36023.     var $conv5_i_i25 = ((HEAP[$this1_i_i16 | 0] & 255) << 8) + (HEAP[$this1_i_i16 + 1 | 0] & 255) & 65535;
  36024.     HEAP[$this_addr_i64] = $font_addr;
  36025.     HEAP[$v_addr_i] = $conv5_i_i25;
  36026.     var $this1_i65 = HEAP[$this_addr_i64];
  36027.     var $call_i67 = __ZN9hb_font_t8em_scaleEsi($this1_i65, HEAP[$v_addr_i], HEAP[$this1_i65 + 56 | 0]);
  36028.     var $x_offset = $glyph_pos_addr + 8 | 0;
  36029.     HEAP[$x_offset] = HEAP[$x_offset] + $call_i67 | 0;
  36030.   }
  36031.   if (($format & 2 | 0) != 0) {
  36032.     var $35 = $values_addr;
  36033.     $values_addr = $35 + 2 | 0;
  36034.     HEAP[$value_addr_i69] = $35;
  36035.     HEAP[$X_addr_i_i68] = HEAP[$value_addr_i69];
  36036.     HEAP[$this_addr_i109] = HEAP[$X_addr_i_i68];
  36037.     HEAP[$this_addr_i_i108] = HEAP[$this_addr_i109] | 0;
  36038.     var $this1_i_i112 = HEAP[$this_addr_i_i108];
  36039.     var $conv5_i_i121 = ((HEAP[$this1_i_i112 | 0] & 255) << 8) + (HEAP[$this1_i_i112 + 1 | 0] & 255) & 65535;
  36040.     HEAP[$this_addr_i167] = $font_addr;
  36041.     HEAP[$v_addr_i168] = $conv5_i_i121;
  36042.     var $this1_i169 = HEAP[$this_addr_i167];
  36043.     var $call_i171 = __ZN9hb_font_t8em_scaleEsi($this1_i169, HEAP[$v_addr_i168], HEAP[$this1_i169 + 60 | 0]);
  36044.     var $y_offset = $glyph_pos_addr + 12 | 0;
  36045.     HEAP[$y_offset] = HEAP[$y_offset] + $call_i171 | 0;
  36046.   }
  36047.   do {
  36048.     if (($format & 4 | 0) != 0) {
  36049.       if (($horizontal | 0) != 0) {
  36050.         var $60 = $values_addr;
  36051.         $values_addr = $60 + 2 | 0;
  36052.         HEAP[$value_addr_i173] = $60;
  36053.         HEAP[$X_addr_i_i172] = HEAP[$value_addr_i173];
  36054.         HEAP[$this_addr_i196] = HEAP[$X_addr_i_i172];
  36055.         HEAP[$this_addr_i_i195] = HEAP[$this_addr_i196] | 0;
  36056.         var $this1_i_i199 = HEAP[$this_addr_i_i195];
  36057.         var $conv5_i_i208 = ((HEAP[$this1_i_i199 | 0] & 255) << 8) + (HEAP[$this1_i_i199 + 1 | 0] & 255) & 65535;
  36058.         HEAP[$this_addr_i190] = $font_addr;
  36059.         HEAP[$v_addr_i191] = $conv5_i_i208;
  36060.         var $this1_i192 = HEAP[$this_addr_i190];
  36061.         var $call_i194 = __ZN9hb_font_t8em_scaleEsi($this1_i192, HEAP[$v_addr_i191], HEAP[$this1_i192 + 56 | 0]);
  36062.         var $x_advance = $glyph_pos_addr | 0;
  36063.         HEAP[$x_advance] = HEAP[$x_advance] + $call_i194 | 0;
  36064.         break;
  36065.       } else {
  36066.         $values_addr = $values_addr + 2 | 0;
  36067.         break;
  36068.       }
  36069.     }
  36070.   } while (0);
  36071.   do {
  36072.     if (($format & 8 | 0) != 0) {
  36073.       if (($horizontal | 0) != 0) {
  36074.         $values_addr = $values_addr + 2 | 0;
  36075.         break;
  36076.       } else {
  36077.         var $86 = $values_addr;
  36078.         $values_addr = $86 + 2 | 0;
  36079.         HEAP[$value_addr_i189] = $86;
  36080.         HEAP[$X_addr_i_i188] = HEAP[$value_addr_i189];
  36081.         HEAP[$this_addr_i175] = HEAP[$X_addr_i_i188];
  36082.         HEAP[$this_addr_i_i174] = HEAP[$this_addr_i175] | 0;
  36083.         var $this1_i_i178 = HEAP[$this_addr_i_i174];
  36084.         var $conv5_i_i187 = ((HEAP[$this1_i_i178 | 0] & 255) << 8) + (HEAP[$this1_i_i178 + 1 | 0] & 255) & 65535;
  36085.         HEAP[$this_addr_i162] = $font_addr;
  36086.         HEAP[$v_addr_i163] = $conv5_i_i187;
  36087.         var $this1_i164 = HEAP[$this_addr_i162];
  36088.         var $call_i166 = __ZN9hb_font_t8em_scaleEsi($this1_i164, HEAP[$v_addr_i163], HEAP[$this1_i164 + 60 | 0]);
  36089.         var $y_advance = $glyph_pos_addr + 4 | 0;
  36090.         HEAP[$y_advance] = HEAP[$y_advance] - $call_i166 | 0;
  36091.         break;
  36092.       }
  36093.     }
  36094.   } while (0);
  36095.   HEAP[$this_addr_i156] = $this1;
  36096.   HEAP[$this_addr_i_i155] = HEAP[$this_addr_i156];
  36097.   HEAP[$this_addr_i_i_i154] = HEAP[$this_addr_i_i155] | 0;
  36098.   var $this1_i_i_i160 = HEAP[$this_addr_i_i_i154];
  36099.   HEAP[$format_i] = ((HEAP[$this1_i_i_i160 | 0] & 255) << 8) + (HEAP[$this1_i_i_i160 + 1 | 0] & 255) & 65535;
  36100.   if ((HEAP[$format_i] & 240 | 0) == 0) {
  36101.     STACKTOP = __stackBase__;
  36102.     return;
  36103.   }
  36104.   $x_ppem = HEAP[$font_addr + 64 | 0];
  36105.   $y_ppem = HEAP[$font_addr + 68 | 0];
  36106.   do {
  36107.     if (($x_ppem | 0) == 0) {
  36108.       if (($y_ppem | 0) != 0) {
  36109.         break;
  36110.       }
  36111.       STACKTOP = __stackBase__;
  36112.       return;
  36113.     }
  36114.   } while (0);
  36115.   do {
  36116.     if (($format & 16 | 0) != 0) {
  36117.       var $129 = $values_addr;
  36118.       $values_addr = $129 + 2 | 0;
  36119.       if (($x_ppem | 0) == 0) {
  36120.         break;
  36121.       }
  36122.       HEAP[$value_addr_i153] = $129;
  36123.       HEAP[$X_addr_i_i152] = HEAP[$value_addr_i153];
  36124.       var $137 = HEAP[$X_addr_i_i152];
  36125.       HEAP[$base_addr_i131] = $base_addr;
  36126.       HEAP[$offset_addr_i132] = $137;
  36127.       var $142 = HEAP[HEAP[$base_addr_i131]];
  36128.       HEAP[$this_addr_i_i128] = HEAP[$offset_addr_i132];
  36129.       HEAP[$base_addr_i_i129] = $142;
  36130.       HEAP[$this_addr_i_i_i126] = HEAP[$this_addr_i_i128];
  36131.       HEAP[$this_addr_i_i_i_i125] = HEAP[$this_addr_i_i_i126] | 0;
  36132.       var $this1_i_i_i_i136 = HEAP[$this_addr_i_i_i_i125];
  36133.       HEAP[$offset_i_i130] = ((HEAP[$this1_i_i_i_i136 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i136 + 1 | 0] & 255) & 65535;
  36134.       if ((HEAP[$offset_i_i130] | 0) != 0) {
  36135.         var $160 = HEAP[$offset_i_i130];
  36136.         HEAP[$P_addr_i_i_i123] = HEAP[$base_addr_i_i129];
  36137.         HEAP[$offset_addr_i_i_i124] = $160;
  36138.         HEAP[$retval_i_i127] = HEAP[$P_addr_i_i_i123] + HEAP[$offset_addr_i_i_i124] | 0;
  36139.       } else {
  36140.         HEAP[$X_addr_i_i_i_i122] = 111704;
  36141.         HEAP[$retval_i_i127] = HEAP[$X_addr_i_i_i_i122];
  36142.       }
  36143.       HEAP[$this_addr_i102] = HEAP[$retval_i_i127];
  36144.       HEAP[$font_addr_i103] = $font_addr;
  36145.       var $call_i107 = __ZNK2OT6Device9get_deltaEji(HEAP[$this_addr_i102], HEAP[HEAP[$font_addr_i103] + 64 | 0], HEAP[HEAP[$font_addr_i103] + 56 | 0]);
  36146.       var $x_offset63 = $glyph_pos_addr + 8 | 0;
  36147.       HEAP[$x_offset63] = HEAP[$x_offset63] + $call_i107 | 0;
  36148.     }
  36149.   } while (0);
  36150.   do {
  36151.     if (($format & 32 | 0) != 0) {
  36152.       var $188 = $values_addr;
  36153.       $values_addr = $188 + 2 | 0;
  36154.       if (($y_ppem | 0) == 0) {
  36155.         break;
  36156.       }
  36157.       HEAP[$value_addr_i101] = $188;
  36158.       HEAP[$X_addr_i_i100] = HEAP[$value_addr_i101];
  36159.       var $196 = HEAP[$X_addr_i_i100];
  36160.       HEAP[$base_addr_i79] = $base_addr;
  36161.       HEAP[$offset_addr_i80] = $196;
  36162.       var $201 = HEAP[HEAP[$base_addr_i79]];
  36163.       HEAP[$this_addr_i_i76] = HEAP[$offset_addr_i80];
  36164.       HEAP[$base_addr_i_i77] = $201;
  36165.       HEAP[$this_addr_i_i_i74] = HEAP[$this_addr_i_i76];
  36166.       HEAP[$this_addr_i_i_i_i73] = HEAP[$this_addr_i_i_i74] | 0;
  36167.       var $this1_i_i_i_i84 = HEAP[$this_addr_i_i_i_i73];
  36168.       HEAP[$offset_i_i78] = ((HEAP[$this1_i_i_i_i84 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i84 + 1 | 0] & 255) & 65535;
  36169.       if ((HEAP[$offset_i_i78] | 0) != 0) {
  36170.         var $219 = HEAP[$offset_i_i78];
  36171.         HEAP[$P_addr_i_i_i71] = HEAP[$base_addr_i_i77];
  36172.         HEAP[$offset_addr_i_i_i72] = $219;
  36173.         HEAP[$retval_i_i75] = HEAP[$P_addr_i_i_i71] + HEAP[$offset_addr_i_i_i72] | 0;
  36174.       } else {
  36175.         HEAP[$X_addr_i_i_i_i70] = 111704;
  36176.         HEAP[$retval_i_i75] = HEAP[$X_addr_i_i_i_i70];
  36177.       }
  36178.       HEAP[$this_addr_i58] = HEAP[$retval_i_i75];
  36179.       HEAP[$font_addr_i59] = $font_addr;
  36180.       var $call_i63 = __ZNK2OT6Device9get_deltaEji(HEAP[$this_addr_i58], HEAP[HEAP[$font_addr_i59] + 68 | 0], HEAP[HEAP[$font_addr_i59] + 60 | 0]);
  36181.       var $y_offset78 = $glyph_pos_addr + 12 | 0;
  36182.       HEAP[$y_offset78] = HEAP[$y_offset78] + $call_i63 | 0;
  36183.     }
  36184.   } while (0);
  36185.   L634 : do {
  36186.     if (($format & 64 | 0) != 0) {
  36187.       do {
  36188.         if (($horizontal | 0) != 0) {
  36189.           if (($x_ppem | 0) == 0) {
  36190.             break;
  36191.           }
  36192.           var $248 = $values_addr;
  36193.           $values_addr = $248 + 2 | 0;
  36194.           HEAP[$value_addr_i57] = $248;
  36195.           HEAP[$X_addr_i_i56] = HEAP[$value_addr_i57];
  36196.           var $256 = HEAP[$X_addr_i_i56];
  36197.           HEAP[$base_addr_i35] = $base_addr;
  36198.           HEAP[$offset_addr_i36] = $256;
  36199.           var $261 = HEAP[HEAP[$base_addr_i35]];
  36200.           HEAP[$this_addr_i_i32] = HEAP[$offset_addr_i36];
  36201.           HEAP[$base_addr_i_i33] = $261;
  36202.           HEAP[$this_addr_i_i_i30] = HEAP[$this_addr_i_i32];
  36203.           HEAP[$this_addr_i_i_i_i29] = HEAP[$this_addr_i_i_i30] | 0;
  36204.           var $this1_i_i_i_i40 = HEAP[$this_addr_i_i_i_i29];
  36205.           HEAP[$offset_i_i34] = ((HEAP[$this1_i_i_i_i40 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i40 + 1 | 0] & 255) & 65535;
  36206.           if ((HEAP[$offset_i_i34] | 0) != 0) {
  36207.             var $279 = HEAP[$offset_i_i34];
  36208.             HEAP[$P_addr_i_i_i27] = HEAP[$base_addr_i_i33];
  36209.             HEAP[$offset_addr_i_i_i28] = $279;
  36210.             HEAP[$retval_i_i31] = HEAP[$P_addr_i_i_i27] + HEAP[$offset_addr_i_i_i28] | 0;
  36211.           } else {
  36212.             HEAP[$X_addr_i_i_i_i26] = 111704;
  36213.             HEAP[$retval_i_i31] = HEAP[$X_addr_i_i_i_i26];
  36214.           }
  36215.           HEAP[$this_addr_i8] = HEAP[$retval_i_i31];
  36216.           HEAP[$font_addr_i9] = $font_addr;
  36217.           var $call_i11 = __ZNK2OT6Device9get_deltaEji(HEAP[$this_addr_i8], HEAP[HEAP[$font_addr_i9] + 64 | 0], HEAP[HEAP[$font_addr_i9] + 56 | 0]);
  36218.           var $x_advance95 = $glyph_pos_addr | 0;
  36219.           HEAP[$x_advance95] = HEAP[$x_advance95] + $call_i11 | 0;
  36220.           break L634;
  36221.         }
  36222.       } while (0);
  36223.       $values_addr = $values_addr + 2 | 0;
  36224.     }
  36225.   } while (0);
  36226.   if (($format & 128 | 0) == 0) {
  36227.     STACKTOP = __stackBase__;
  36228.     return;
  36229.   }
  36230.   do {
  36231.     if (($horizontal | 0) == 0) {
  36232.       if (($y_ppem | 0) == 0) {
  36233.         break;
  36234.       }
  36235.       var $309 = $values_addr;
  36236.       $values_addr = $309 + 2 | 0;
  36237.       HEAP[$value_addr_i7] = $309;
  36238.       HEAP[$X_addr_i_i6] = HEAP[$value_addr_i7];
  36239.       var $317 = HEAP[$X_addr_i_i6];
  36240.       HEAP[$base_addr_i] = $base_addr;
  36241.       HEAP[$offset_addr_i] = $317;
  36242.       var $322 = HEAP[HEAP[$base_addr_i]];
  36243.       HEAP[$this_addr_i_i3] = HEAP[$offset_addr_i];
  36244.       HEAP[$base_addr_i_i] = $322;
  36245.       HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i3];
  36246.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  36247.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  36248.       HEAP[$offset_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  36249.       if ((HEAP[$offset_i_i] | 0) != 0) {
  36250.         var $340 = HEAP[$offset_i_i];
  36251.         HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  36252.         HEAP[$offset_addr_i_i_i] = $340;
  36253.         HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  36254.       } else {
  36255.         HEAP[$X_addr_i_i_i_i] = 111704;
  36256.         HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  36257.       }
  36258.       HEAP[$this_addr_i1] = HEAP[$retval_i_i];
  36259.       HEAP[$font_addr_i] = $font_addr;
  36260.       var $call_i = __ZNK2OT6Device9get_deltaEji(HEAP[$this_addr_i1], HEAP[HEAP[$font_addr_i] + 68 | 0], HEAP[HEAP[$font_addr_i] + 60 | 0]);
  36261.       var $y_advance112 = $glyph_pos_addr + 4 | 0;
  36262.       HEAP[$y_advance112] = HEAP[$y_advance112] - $call_i | 0;
  36263.       STACKTOP = __stackBase__;
  36264.       return;
  36265.     }
  36266.   } while (0);
  36267.   $values_addr = $values_addr + 2 | 0;
  36268.   STACKTOP = __stackBase__;
  36269.   return;
  36270. }
  36271. function __ZN2OT11SubstLookup18apply_recurse_funcEPNS_18hb_apply_context_tEj($c, $lookup_index) {
  36272.   var __stackBase__ = STACKTOP;
  36273.   STACKTOP = STACKTOP + 12 | 0;
  36274.   var $X_addr_i_i = __stackBase__;
  36275.   var $this_addr_i = __stackBase__ + 4;
  36276.   var $i_addr_i = __stackBase__ + 8;
  36277.   var $c_addr;
  36278.   var $l;
  36279.   var $saved_lookup_props;
  36280.   var $ret;
  36281.   $c_addr = $c;
  36282.   HEAP[$this_addr_i] = HEAP[HEAP[HEAP[$c_addr + 8 | 0] + 72 | 0] + 16 | 0];
  36283.   HEAP[$i_addr_i] = $lookup_index;
  36284.   var $call_i = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i], HEAP[$i_addr_i]);
  36285.   HEAP[$X_addr_i_i] = $call_i;
  36286.   $l = HEAP[$X_addr_i_i];
  36287.   $saved_lookup_props = HEAP[$c_addr + 36 | 0];
  36288.   __ZN2OT18hb_apply_context_t10set_lookupERKNS_6LookupE($c_addr, $l);
  36289.   $ret = __ZNK2OT11SubstLookup10apply_onceEPNS_18hb_apply_context_tE($l, $c_addr) & 1;
  36290.   HEAP[$c_addr + 36 | 0] = $saved_lookup_props;
  36291.   STACKTOP = __stackBase__;
  36292.   return $ret & 1;
  36293. }
  36294. function __ZNK2OT11SubstLookup10apply_onceEPNS_18hb_apply_context_tE($this, $c) {
  36295.   var label = 0;
  36296.   var __stackBase__ = STACKTOP;
  36297.   STACKTOP = STACKTOP + 77 | 0;
  36298.   var $this_addr_i10 = __stackBase__;
  36299.   var $i_addr_i11 = __stackBase__ + 4;
  36300.   var $this_addr_i7 = __stackBase__ + 8;
  36301.   var $info_addr_i = __stackBase__ + 12;
  36302.   var $lookup_props_addr_i = __stackBase__ + 16;
  36303.   var $property_i = __stackBase__ + 20;
  36304.   var $this_addr_i_i_i5_i = __stackBase__ + 32;
  36305.   var $this_addr_i_i6_i = __stackBase__ + 36;
  36306.   var $this_addr_i7_i = __stackBase__ + 40;
  36307.   var $this_addr_i_i_i_i = __stackBase__ + 44;
  36308.   var $this_addr_i_i_i = __stackBase__ + 48;
  36309.   var $this_addr_i_i = __stackBase__ + 52;
  36310.   var $retval_i = __stackBase__ + 56;
  36311.   var $this_addr_i = __stackBase__ + 57;
  36312.   var $c_addr_i = __stackBase__ + 61;
  36313.   var $lookup_type_i = __stackBase__ + 65;
  36314.   var $count_i = __stackBase__ + 69;
  36315.   var $i_i = __stackBase__ + 73;
  36316.   var $r_i;
  36317.   var $retval;
  36318.   var $c_addr;
  36319.   $c_addr = $c;
  36320.   HEAP[__stackBase__ + 24] = HEAP[$c_addr + 12 | 0];
  36321.   HEAP[__stackBase__ + 28] = 0;
  36322.   HEAP[$this_addr_i10] = HEAP[$c_addr + 12 | 0];
  36323.   HEAP[$i_addr_i11] = 0;
  36324.   var $this1_i12 = HEAP[$this_addr_i10];
  36325.   var $arrayidx_i16 = HEAP[$this1_i12 + 96 | 0] + ((HEAP[$i_addr_i11] + HEAP[$this1_i12 + 80 | 0]) * 20 & -1) | 0;
  36326.   var $17 = HEAP[$c_addr + 36 | 0];
  36327.   HEAP[$this_addr_i7] = $c_addr;
  36328.   HEAP[$info_addr_i] = $arrayidx_i16;
  36329.   HEAP[$lookup_props_addr_i] = $17;
  36330.   var $this1_i8 = HEAP[$this_addr_i7];
  36331.   HEAP[$property_i] = HEAP[HEAP[$info_addr_i] + 12 | 0] & 65535;
  36332.   if (!__ZNK2OT18hb_apply_context_t16match_propertiesEjjj($this1_i8, HEAP[HEAP[$info_addr_i] | 0], HEAP[$property_i], HEAP[$lookup_props_addr_i])) {
  36333.     $retval = 0;
  36334.     var $80 = $retval;
  36335.     STACKTOP = __stackBase__;
  36336.     return $80;
  36337.   }
  36338.   HEAP[$this_addr_i] = $this;
  36339.   HEAP[$c_addr_i] = $c_addr;
  36340.   var $this1_i = HEAP[$this_addr_i];
  36341.   HEAP[$this_addr_i_i] = $this1_i;
  36342.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  36343.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  36344.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  36345.   HEAP[$lookup_type_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  36346.   HEAP[$this_addr_i7_i] = $this1_i;
  36347.   HEAP[$this_addr_i_i6_i] = HEAP[$this_addr_i7_i] + 4 | 0;
  36348.   HEAP[$this_addr_i_i_i5_i] = HEAP[$this_addr_i_i6_i] | 0;
  36349.   var $this1_i_i_i11_i = HEAP[$this_addr_i_i_i5_i];
  36350.   HEAP[$count_i] = ((HEAP[$this1_i_i_i11_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i11_i + 1 | 0] & 255) & 65535;
  36351.   HEAP[$i_i] = 0;
  36352.   L664 : do {
  36353.     if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  36354.       while (1) {
  36355.         $r_i = __ZNK2OT19SubstLookupSubTable8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_j(__ZNK2OT11SubstLookup12get_subtableEj($this1_i, HEAP[$i_i]), HEAP[$c_addr_i], HEAP[$lookup_type_i]) & 1;
  36356.         if ($r_i & 1 & 1) {
  36357.           break;
  36358.         }
  36359.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  36360.         if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  36361.           label = 515;
  36362.           break L664;
  36363.         }
  36364.       }
  36365.       HEAP[$retval_i] = $r_i & 1 & 1;
  36366.       break;
  36367.     } else {
  36368.       label = 515;
  36369.     }
  36370.   } while (0);
  36371.   if (label == 515) {
  36372.     HEAP[$retval_i] = 0;
  36373.   }
  36374.   $retval = HEAP[$retval_i] & 1;
  36375.   var $80 = $retval;
  36376.   STACKTOP = __stackBase__;
  36377.   return $80;
  36378. }
  36379. function __ZNK2OT19SubstLookupSubTable8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_j($this, $c, $lookup_type) {
  36380.   var label = 0;
  36381.   var __stackBase__ = STACKTOP;
  36382.   STACKTOP = STACKTOP + 1851 | 0;
  36383.   var $this_addr_i_i_i_i_i517 = __stackBase__;
  36384.   var $this_addr_i_i1_i_i = __stackBase__ + 4;
  36385.   var $this_addr_i2_i_i = __stackBase__ + 8;
  36386.   var $this_addr_i_i_i_i518 = __stackBase__ + 12;
  36387.   var $this_addr_i_i_i519 = __stackBase__ + 16;
  36388.   var $retval_i_i = __stackBase__ + 20;
  36389.   var $this_addr_i_i520 = __stackBase__ + 24;
  36390.   var $this_addr_i521 = __stackBase__ + 28;
  36391.   var $c_addr_i522 = __stackBase__ + 32;
  36392.   var $this_addr_i_i3_i389 = __stackBase__ + 36;
  36393.   var $this_addr_i4_i390 = __stackBase__ + 40;
  36394.   var $this_addr_i106_i_i_i = __stackBase__ + 44;
  36395.   var $i_addr_i107_i_i_i = __stackBase__ + 48;
  36396.   var $X_addr_i_i_i_i_i_i_i391 = __stackBase__ + 52;
  36397.   var $P_addr_i_i_i_i_i_i392 = __stackBase__ + 56;
  36398.   var $offset_addr_i_i_i_i_i_i393 = __stackBase__ + 60;
  36399.   var $this_addr_i_i_i_i87_i_i_i = __stackBase__ + 64;
  36400.   var $this_addr_i_i_i88_i_i_i = __stackBase__ + 68;
  36401.   var $retval_i_i_i_i_i394 = __stackBase__ + 72;
  36402.   var $this_addr_i_i89_i_i_i = __stackBase__ + 76;
  36403.   var $base_addr_i_i_i_i_i395 = __stackBase__ + 80;
  36404.   var $offset_i_i_i_i_i396 = __stackBase__ + 84;
  36405.   var $base_addr_i_i_i_i397 = __stackBase__ + 88;
  36406.   var $offset_addr_i_i_i_i398 = __stackBase__ + 92;
  36407.   var $P_addr_i_i61_i_i_i = __stackBase__ + 96;
  36408.   var $offset_addr_i_i62_i_i_i = __stackBase__ + 100;
  36409.   var $this_addr_i_i_i_i63_i_i_i = __stackBase__ + 104;
  36410.   var $this_addr_i_i_i64_i_i_i = __stackBase__ + 108;
  36411.   var $this_addr_i_i65_i_i_i = __stackBase__ + 112;
  36412.   var $X_addr_i66_i_i_i = __stackBase__ + 116;
  36413.   var $P_addr_i_i_i_i_i = __stackBase__ + 120;
  36414.   var $offset_addr_i_i_i_i_i399 = __stackBase__ + 124;
  36415.   var $this_addr_i_i_i_i_i_i_i400 = __stackBase__ + 128;
  36416.   var $this_addr_i_i_i54_i_i_i = __stackBase__ + 132;
  36417.   var $this_addr_i_i55_i_i_i = __stackBase__ + 136;
  36418.   var $X_addr_i_i_i_i = __stackBase__ + 140;
  36419.   var $this_addr_i_i40_i_i_i = __stackBase__ + 144;
  36420.   var $this_addr_i41_i_i_i = __stackBase__ + 148;
  36421.   var $this_addr_i_i24_i_i_i = __stackBase__ + 152;
  36422.   var $this_addr_i25_i_i_i = __stackBase__ + 156;
  36423.   var $X_addr_i_i_i_i_i_i401 = __stackBase__ + 160;
  36424.   var $this_addr_i_i_i13_i_i_i = __stackBase__ + 164;
  36425.   var $this_addr_i_i14_i_i_i402 = __stackBase__ + 168;
  36426.   var $retval_i_i_i_i403 = __stackBase__ + 172;
  36427.   var $this_addr_i15_i_i_i = __stackBase__ + 176;
  36428.   var $i_addr_i16_i_i_i = __stackBase__ + 180;
  36429.   var $this_addr_i_i5_i_i_i404 = __stackBase__ + 184;
  36430.   var $this_addr_i6_i_i_i = __stackBase__ + 188;
  36431.   var $this_addr_i3_i_i_i405 = __stackBase__ + 192;
  36432.   var $i_addr_i_i_i_i406 = __stackBase__ + 196;
  36433.   var $this_addr_i1_i_i_i_i407 = __stackBase__ + 200;
  36434.   var $i_addr_i_i_i_i_i408 = __stackBase__ + 204;
  36435.   var $this_addr_i1_i_i_i_i_i409 = __stackBase__ + 208;
  36436.   var $i_addr_i2_i_i_i_i_i = __stackBase__ + 212;
  36437.   var $this_addr_i_i_i_i_i_i410 = __stackBase__ + 216;
  36438.   var $i_addr_i_i_i_i_i_i411 = __stackBase__ + 220;
  36439.   var $this_addr_i_i_i_i_i412 = __stackBase__ + 224;
  36440.   var $glyph_index_addr_i_i_i_i_i413 = __stackBase__ + 228;
  36441.   var $class_guess_addr_i_i_i_i_i414 = __stackBase__ + 232;
  36442.   var $this_addr_i_i_i_i415 = __stackBase__ + 236;
  36443.   var $glyph_index_addr_i_i_i_i = __stackBase__ + 240;
  36444.   var $class_guess_addr_i_i_i_i = __stackBase__ + 244;
  36445.   var $retval_i_i_i417 = __stackBase__ + 248;
  36446.   var $this_addr_i_i_i418 = __stackBase__ + 249;
  36447.   var $c_addr_i_i_i419 = __stackBase__ + 253;
  36448.   var $index_i_i_i420 = __stackBase__ + 257;
  36449.   var $ref_tmp_i_i_i421 = __stackBase__ + 261;
  36450.   var $lookahead_i_i_i = __stackBase__ + 265;
  36451.   var $substitute_i_i_i422 = __stackBase__ + 269;
  36452.   var $this_addr_i_i423 = __stackBase__ + 273;
  36453.   var $obj_addr_i_i424 = __stackBase__ + 277;
  36454.   var $retval_i427 = __stackBase__ + 281;
  36455.   var $this_addr_i428 = __stackBase__ + 282;
  36456.   var $c_addr_i429 = __stackBase__ + 286;
  36457.   var $this_addr_i_i3_i245 = __stackBase__ + 290;
  36458.   var $this_addr_i4_i246 = __stackBase__ + 294;
  36459.   var $X_addr_i_i_i_i58_i_i_i = __stackBase__ + 298;
  36460.   var $P_addr_i_i_i59_i_i_i = __stackBase__ + 302;
  36461.   var $offset_addr_i_i_i60_i_i_i = __stackBase__ + 306;
  36462.   var $this_addr_i_i_i_i61_i_i_i = __stackBase__ + 310;
  36463.   var $this_addr_i_i_i62_i_i_i = __stackBase__ + 314;
  36464.   var $retval_i_i63_i_i_i = __stackBase__ + 318;
  36465.   var $this_addr_i_i64_i_i_i = __stackBase__ + 322;
  36466.   var $base_addr_i_i65_i_i_i = __stackBase__ + 326;
  36467.   var $offset_i_i66_i_i_i = __stackBase__ + 330;
  36468.   var $base_addr_i67_i_i_i = __stackBase__ + 334;
  36469.   var $offset_addr_i68_i_i_i = __stackBase__ + 338;
  36470.   var $X_addr_i_i_i_i_i_i247 = __stackBase__ + 342;
  36471.   var $this_addr_i_i_i35_i_i_i = __stackBase__ + 346;
  36472.   var $this_addr_i_i36_i_i_i = __stackBase__ + 350;
  36473.   var $retval_i37_i_i_i = __stackBase__ + 354;
  36474.   var $this_addr_i38_i_i_i = __stackBase__ + 358;
  36475.   var $i_addr_i39_i_i_i = __stackBase__ + 362;
  36476.   var $X_addr_i_i_i_i10_i_i_i = __stackBase__ + 366;
  36477.   var $P_addr_i_i_i_i_i_i248 = __stackBase__ + 370;
  36478.   var $offset_addr_i_i_i_i_i_i249 = __stackBase__ + 374;
  36479.   var $this_addr_i_i_i_i11_i_i_i = __stackBase__ + 378;
  36480.   var $this_addr_i_i_i12_i_i_i = __stackBase__ + 382;
  36481.   var $retval_i_i13_i_i_i = __stackBase__ + 386;
  36482.   var $this_addr_i_i14_i_i_i = __stackBase__ + 390;
  36483.   var $base_addr_i_i15_i_i_i = __stackBase__ + 394;
  36484.   var $offset_i_i_i_i_i250 = __stackBase__ + 398;
  36485.   var $base_addr_i_i_i_i251 = __stackBase__ + 402;
  36486.   var $offset_addr_i_i_i_i252 = __stackBase__ + 406;
  36487.   var $this_addr_i3_i_i_i = __stackBase__ + 410;
  36488.   var $i_addr_i4_i_i_i = __stackBase__ + 414;
  36489.   var $this_addr_i1_i_i_i253 = __stackBase__ + 418;
  36490.   var $i_addr_i_i_i_i254 = __stackBase__ + 422;
  36491.   var $X_addr_i_i_i_i38_i_i_i_i = __stackBase__ + 426;
  36492.   var $P_addr_i_i_i_i_i_i_i = __stackBase__ + 430;
  36493.   var $offset_addr_i_i_i_i_i_i_i = __stackBase__ + 434;
  36494.   var $this_addr_i_i_i_i39_i_i_i_i = __stackBase__ + 438;
  36495.   var $this_addr_i_i_i40_i_i_i_i = __stackBase__ + 442;
  36496.   var $retval_i_i41_i_i_i_i = __stackBase__ + 446;
  36497.   var $this_addr_i_i42_i_i_i_i = __stackBase__ + 450;
  36498.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 454;
  36499.   var $offset_i_i_i_i_i_i = __stackBase__ + 458;
  36500.   var $base_addr_i_i_i_i_i255 = __stackBase__ + 462;
  36501.   var $offset_addr_i_i_i_i_i = __stackBase__ + 466;
  36502.   var $X_addr_i_i_i_i_i_i_i256 = __stackBase__ + 470;
  36503.   var $this_addr_i_i_i14_i_i_i_i = __stackBase__ + 474;
  36504.   var $this_addr_i_i15_i_i_i_i = __stackBase__ + 478;
  36505.   var $retval_i16_i_i_i_i = __stackBase__ + 482;
  36506.   var $this_addr_i17_i_i_i_i257 = __stackBase__ + 486;
  36507.   var $i_addr_i18_i_i_i_i258 = __stackBase__ + 490;
  36508.   var $this_addr_i_i7_i_i_i_i = __stackBase__ + 494;
  36509.   var $this_addr_i8_i_i_i_i = __stackBase__ + 498;
  36510.   var $this_addr_i4_i_i_i_i = __stackBase__ + 502;
  36511.   var $i_addr_i_i_i_i_i259 = __stackBase__ + 506;
  36512.   var $X_addr_i_i_i47_i_i_i_i_i = __stackBase__ + 510;
  36513.   var $this_addr_i_i_i48_i_i_i_i_i = __stackBase__ + 514;
  36514.   var $this_addr_i_i49_i_i_i_i_i = __stackBase__ + 518;
  36515.   var $retval_i50_i_i_i_i_i = __stackBase__ + 522;
  36516.   var $this_addr_i51_i_i_i_i_i = __stackBase__ + 526;
  36517.   var $i_addr_i52_i_i_i_i_i = __stackBase__ + 530;
  36518.   var $this_addr_i_i33_i_i_i_i_i = __stackBase__ + 534;
  36519.   var $this_addr_i34_i_i_i_i_i = __stackBase__ + 538;
  36520.   var $X_addr_i_i_i_i_i_i_i_i = __stackBase__ + 542;
  36521.   var $this_addr_i_i_i16_i_i_i_i_i = __stackBase__ + 546;
  36522.   var $this_addr_i_i17_i_i_i_i_i = __stackBase__ + 550;
  36523.   var $retval_i_i_i_i_i_i = __stackBase__ + 554;
  36524.   var $this_addr_i18_i_i_i_i_i = __stackBase__ + 558;
  36525.   var $i_addr_i19_i_i_i_i_i = __stackBase__ + 562;
  36526.   var $this_addr_i_i6_i_i_i_i_i = __stackBase__ + 566;
  36527.   var $this_addr_i7_i_i_i_i_i = __stackBase__ + 570;
  36528.   var $this_addr_i_i_i_i_i_i260 = __stackBase__ + 574;
  36529.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 578;
  36530.   var $this_addr_i164_i_i_i_i_i_i = __stackBase__ + 582;
  36531.   var $i_addr_i165_i_i_i_i_i_i = __stackBase__ + 586;
  36532.   var $info_addr_i_i140_i_i_i_i_i_i = __stackBase__ + 590;
  36533.   var $retval_i141_i_i_i_i_i_i = __stackBase__ + 594;
  36534.   var $info_addr_i142_i_i_i_i_i_i = __stackBase__ + 598;
  36535.   var $this_addr_i133_i_i_i_i_i_i = __stackBase__ + 602;
  36536.   var $i_addr_i134_i_i_i_i_i_i = __stackBase__ + 606;
  36537.   var $info_addr_i124_i_i_i_i_i_i = __stackBase__ + 610;
  36538.   var $lig_id_addr_i125_i_i_i_i_i_i = __stackBase__ + 614;
  36539.   var $lig_num_comps_addr_i_i_i_i_i_i_i = __stackBase__ + 618;
  36540.   var $info_addr_i118_i_i_i_i_i_i = __stackBase__ + 622;
  36541.   var $this_addr_i111_i_i_i_i_i_i = __stackBase__ + 626;
  36542.   var $i_addr_i112_i_i_i_i_i_i = __stackBase__ + 630;
  36543.   var $this_addr_i104_i_i_i_i_i_i = __stackBase__ + 634;
  36544.   var $i_addr_i105_i_i_i_i_i_i = __stackBase__ + 638;
  36545.   var $info_addr_i_i87_i_i_i_i_i_i = __stackBase__ + 642;
  36546.   var $retval_i88_i_i_i_i_i_i = __stackBase__ + 646;
  36547.   var $info_addr_i89_i_i_i_i_i_i = __stackBase__ + 650;
  36548.   var $a_addr_i83_i_i_i_i_i_i = __stackBase__ + 654;
  36549.   var $b_addr_i84_i_i_i_i_i_i = __stackBase__ + 658;
  36550.   var $a_addr_i79_i_i_i_i_i_i = __stackBase__ + 662;
  36551.   var $b_addr_i80_i_i_i_i_i_i = __stackBase__ + 666;
  36552.   var $this_addr_i72_i_i_i_i_i_i = __stackBase__ + 670;
  36553.   var $i_addr_i73_i_i_i_i_i_i = __stackBase__ + 674;
  36554.   var $info_addr_i62_i_i_i_i_i_i = __stackBase__ + 678;
  36555.   var $lig_id_addr_i63_i_i_i_i_i_i = __stackBase__ + 682;
  36556.   var $lig_comp_addr_i64_i_i_i_i_i_i = __stackBase__ + 686;
  36557.   var $this_addr_i56_i_i_i_i_i_i = __stackBase__ + 690;
  36558.   var $this_addr_i48_i_i_i_i_i_i = __stackBase__ + 694;
  36559.   var $this_addr_i41_i_i_i_i_i_i = __stackBase__ + 698;
  36560.   var $i_addr_i42_i_i_i_i_i_i = __stackBase__ + 702;
  36561.   var $info_addr_i35_i_i_i_i_i_i = __stackBase__ + 706;
  36562.   var $this_addr_i32_i_i_i_i_i_i = __stackBase__ + 710;
  36563.   var $i_addr_i_i_i_i_i_i_i261 = __stackBase__ + 714;
  36564.   var $info_addr_i_i16_i_i_i_i_i_i = __stackBase__ + 718;
  36565.   var $retval_i17_i_i_i_i_i_i = __stackBase__ + 722;
  36566.   var $info_addr_i18_i_i_i_i_i_i = __stackBase__ + 726;
  36567.   var $info_addr_i11_i_i_i_i_i_i = __stackBase__ + 730;
  36568.   var $info_addr_i_i_i_i_i_i_i_i = __stackBase__ + 734;
  36569.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 738;
  36570.   var $info_addr_i5_i_i_i_i_i_i = __stackBase__ + 742;
  36571.   var $a_addr_i1_i_i_i_i_i_i = __stackBase__ + 746;
  36572.   var $b_addr_i2_i_i_i_i_i_i = __stackBase__ + 750;
  36573.   var $a_addr_i_i_i_i_i_i_i = __stackBase__ + 754;
  36574.   var $b_addr_i_i_i_i_i_i_i = __stackBase__ + 758;
  36575.   var $info_addr_i_i_i_i_i_i_i = __stackBase__ + 762;
  36576.   var $lig_id_addr_i_i_i_i_i_i_i = __stackBase__ + 766;
  36577.   var $lig_comp_addr_i_i_i_i_i_i_i = __stackBase__ + 770;
  36578.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 774;
  36579.   var $match_func__addr_i_i_i_i_i_i_i_i = __stackBase__ + 778;
  36580.   var $match_data__addr_i_i_i_i_i_i_i_i = __stackBase__ + 782;
  36581.   var $this_addr_i_i_i_i_i_i_i262 = __stackBase__ + 786;
  36582.   var $match_func_addr_i_i_i_i_i_i_i = __stackBase__ + 790;
  36583.   var $match_data_addr_i_i_i_i_i_i_i = __stackBase__ + 794;
  36584.   var $glyph_data_addr_i_i_i_i_i_i_i = __stackBase__ + 798;
  36585.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 802;
  36586.   var $count_addr_i_i_i_i_i_i = __stackBase__ + 806;
  36587.   var $input_addr_i_i_i_i_i_i = __stackBase__ + 810;
  36588.   var $match_func_addr_i_i_i_i_i_i = __stackBase__ + 814;
  36589.   var $match_data_addr_i_i_i_i_i_i = __stackBase__ + 818;
  36590.   var $lig_glyph_addr_i_i_i_i_i_i = __stackBase__ + 822;
  36591.   var $is_mark_ligature_addr_i_i_i_i_i_i;
  36592.   var $total_component_count_addr_i_i_i_i_i_i = __stackBase__ + 826;
  36593.   var $skippy_iter_i_i_i_i_i_i = __stackBase__ + 830;
  36594.   var $klass_i_i_i_i_i_i = __stackBase__ + 874;
  36595.   var $lig_id_i_i_i_i_i_i = __stackBase__ + 878;
  36596.   var $last_lig_id_i_i_i_i_i_i = __stackBase__ + 882;
  36597.   var $last_num_components_i_i_i_i_i_i = __stackBase__ + 886;
  36598.   var $components_so_far_i_i_i_i_i_i = __stackBase__ + 890;
  36599.   var $i_i_i_i_i_i_i = __stackBase__ + 894;
  36600.   var $new_lig_comp_i_i_i_i_i_i = __stackBase__ + 898;
  36601.   var $ref_tmp_i_i_i_i_i_i = __stackBase__ + 902;
  36602.   var $ref_tmp29_i_i_i_i_i_i = __stackBase__ + 906;
  36603.   var $ref_tmp31_i_i_i_i_i_i = __stackBase__ + 910;
  36604.   var $i50_i_i_i_i_i_i = __stackBase__ + 914;
  36605.   var $new_lig_comp61_i_i_i_i_i_i = __stackBase__ + 918;
  36606.   var $ref_tmp67_i_i_i_i_i_i = __stackBase__ + 922;
  36607.   var $ref_tmp68_i_i_i_i_i_i = __stackBase__ + 926;
  36608.   var $ref_tmp70_i_i_i_i_i_i = __stackBase__ + 930;
  36609.   var $retval_i_i_i_i_i263 = __stackBase__ + 934;
  36610.   var $this_addr_i_i_i_i_i264 = __stackBase__ + 935;
  36611.   var $c_addr_i_i_i_i_i = __stackBase__ + 939;
  36612.   var $count_i_i_i_i_i = __stackBase__ + 943;
  36613.   var $end_offset_i_i_i_i_i = __stackBase__ + 947;
  36614.   var $is_mark_ligature_i_i_i_i_i = __stackBase__ + 951;
  36615.   var $total_component_count_i_i_i_i_i = __stackBase__ + 952;
  36616.   var $retval_i_i_i_i266 = __stackBase__ + 956;
  36617.   var $this_addr_i_i_i_i267 = __stackBase__ + 957;
  36618.   var $c_addr_i_i_i_i268 = __stackBase__ + 961;
  36619.   var $num_ligs_i_i_i_i = __stackBase__ + 965;
  36620.   var $i_i_i_i_i269 = __stackBase__ + 969;
  36621.   var $lig_i_i_i_i = __stackBase__ + 973;
  36622.   var $ref_tmp_i_i_i_i = __stackBase__ + 977;
  36623.   var $retval_i_i_i271 = __stackBase__ + 981;
  36624.   var $this_addr_i_i_i272 = __stackBase__ + 982;
  36625.   var $c_addr_i_i_i273 = __stackBase__ + 986;
  36626.   var $glyph_id_i_i_i274 = __stackBase__ + 990;
  36627.   var $index_i_i_i275 = __stackBase__ + 994;
  36628.   var $ref_tmp_i_i_i276 = __stackBase__ + 998;
  36629.   var $lig_set_i_i_i = __stackBase__ + 1002;
  36630.   var $ref_tmp10_i_i_i277 = __stackBase__ + 1006;
  36631.   var $this_addr_i_i278 = __stackBase__ + 1010;
  36632.   var $obj_addr_i_i279 = __stackBase__ + 1014;
  36633.   var $retval_i282 = __stackBase__ + 1018;
  36634.   var $this_addr_i283 = __stackBase__ + 1019;
  36635.   var $c_addr_i284 = __stackBase__ + 1023;
  36636.   var $this_addr_i_i3_i101 = __stackBase__ + 1027;
  36637.   var $this_addr_i4_i102 = __stackBase__ + 1031;
  36638.   var $this_addr_i115_i_i_i = __stackBase__ + 1035;
  36639.   var $i_addr_i116_i_i_i = __stackBase__ + 1039;
  36640.   var $X_addr_i_i_i_i86_i_i_i = __stackBase__ + 1043;
  36641.   var $P_addr_i_i_i87_i_i_i = __stackBase__ + 1047;
  36642.   var $offset_addr_i_i_i88_i_i_i = __stackBase__ + 1051;
  36643.   var $this_addr_i_i_i_i89_i_i_i = __stackBase__ + 1055;
  36644.   var $this_addr_i_i_i90_i_i_i = __stackBase__ + 1059;
  36645.   var $retval_i_i91_i_i_i = __stackBase__ + 1063;
  36646.   var $this_addr_i_i92_i_i_i = __stackBase__ + 1067;
  36647.   var $base_addr_i_i93_i_i_i = __stackBase__ + 1071;
  36648.   var $offset_i_i94_i_i_i = __stackBase__ + 1075;
  36649.   var $base_addr_i95_i_i_i = __stackBase__ + 1079;
  36650.   var $offset_addr_i96_i_i_i = __stackBase__ + 1083;
  36651.   var $X_addr_i_i_i58_i_i_i = __stackBase__ + 1087;
  36652.   var $this_addr_i_i_i59_i_i_i = __stackBase__ + 1091;
  36653.   var $this_addr_i_i60_i_i_i = __stackBase__ + 1095;
  36654.   var $retval_i61_i_i_i = __stackBase__ + 1099;
  36655.   var $this_addr_i62_i_i_i = __stackBase__ + 1103;
  36656.   var $i_addr_i63_i_i_i = __stackBase__ + 1107;
  36657.   var $X_addr_i_i_i_i_i_i_i103 = __stackBase__ + 1111;
  36658.   var $P_addr_i_i_i_i_i_i104 = __stackBase__ + 1115;
  36659.   var $offset_addr_i_i_i_i_i_i105 = __stackBase__ + 1119;
  36660.   var $this_addr_i_i_i_i_i_i_i106 = __stackBase__ + 1123;
  36661.   var $this_addr_i_i_i52_i_i_i = __stackBase__ + 1127;
  36662.   var $retval_i_i_i_i_i107 = __stackBase__ + 1131;
  36663.   var $this_addr_i_i53_i_i_i = __stackBase__ + 1135;
  36664.   var $base_addr_i_i_i_i_i108 = __stackBase__ + 1139;
  36665.   var $offset_i_i_i_i_i109 = __stackBase__ + 1143;
  36666.   var $base_addr_i_i_i_i110 = __stackBase__ + 1147;
  36667.   var $offset_addr_i_i_i_i111 = __stackBase__ + 1151;
  36668.   var $this_addr_i_i38_i_i_i = __stackBase__ + 1155;
  36669.   var $this_addr_i39_i_i_i = __stackBase__ + 1159;
  36670.   var $this_addr_i29_i_i_i = __stackBase__ + 1163;
  36671.   var $i_addr_i30_i_i_i = __stackBase__ + 1167;
  36672.   var $retval_i26_i_i_i = __stackBase__ + 1171;
  36673.   var $number_addr_i_i_i_i = __stackBase__ + 1175;
  36674.   var $n_bits_i_i_i_i = __stackBase__ + 1179;
  36675.   var $this_addr_i_i12_i_i_i112 = __stackBase__ + 1183;
  36676.   var $this_addr_i13_i_i_i113 = __stackBase__ + 1187;
  36677.   var $X_addr_i_i_i_i_i_i115 = __stackBase__ + 1191;
  36678.   var $this_addr_i_i_i_i_i_i116 = __stackBase__ + 1195;
  36679.   var $this_addr_i_i3_i_i_i117 = __stackBase__ + 1199;
  36680.   var $retval_i_i_i_i118 = __stackBase__ + 1203;
  36681.   var $this_addr_i4_i_i_i119 = __stackBase__ + 1207;
  36682.   var $i_addr_i5_i_i_i120 = __stackBase__ + 1211;
  36683.   var $this_addr_i_i_i_i_i121 = __stackBase__ + 1215;
  36684.   var $this_addr_i1_i_i_i122 = __stackBase__ + 1219;
  36685.   var $this_addr_i_i_i_i123 = __stackBase__ + 1223;
  36686.   var $i_addr_i_i_i_i124 = __stackBase__ + 1227;
  36687.   var $retval_i_i_i126 = __stackBase__ + 1231;
  36688.   var $this_addr_i_i_i127 = __stackBase__ + 1232;
  36689.   var $c_addr_i_i_i128 = __stackBase__ + 1236;
  36690.   var $glyph_id_i_i_i129 = __stackBase__ + 1240;
  36691.   var $index_i_i_i130 = __stackBase__ + 1244;
  36692.   var $ref_tmp_i_i_i131 = __stackBase__ + 1248;
  36693.   var $alt_set_i_i_i = __stackBase__ + 1252;
  36694.   var $ref_tmp10_i_i_i132 = __stackBase__ + 1256;
  36695.   var $glyph_mask_i_i_i = __stackBase__ + 1260;
  36696.   var $lookup_mask_i_i_i = __stackBase__ + 1264;
  36697.   var $shift_i_i_i = __stackBase__ + 1268;
  36698.   var $alt_index_i_i_i = __stackBase__ + 1272;
  36699.   var $this_addr_i_i133 = __stackBase__ + 1276;
  36700.   var $obj_addr_i_i134 = __stackBase__ + 1280;
  36701.   var $retval_i137 = __stackBase__ + 1284;
  36702.   var $this_addr_i138 = __stackBase__ + 1285;
  36703.   var $c_addr_i139 = __stackBase__ + 1289;
  36704.   var $this_addr_i_i3_i3 = __stackBase__ + 1293;
  36705.   var $this_addr_i4_i4 = __stackBase__ + 1297;
  36706.   var $this_addr_i71_i_i_i = __stackBase__ + 1301;
  36707.   var $i_addr_i72_i_i_i = __stackBase__ + 1305;
  36708.   var $X_addr_i_i_i_i42_i_i_i = __stackBase__ + 1309;
  36709.   var $P_addr_i_i_i43_i_i_i = __stackBase__ + 1313;
  36710.   var $offset_addr_i_i_i44_i_i_i = __stackBase__ + 1317;
  36711.   var $this_addr_i_i_i_i45_i_i_i = __stackBase__ + 1321;
  36712.   var $this_addr_i_i_i46_i_i_i = __stackBase__ + 1325;
  36713.   var $retval_i_i47_i_i_i = __stackBase__ + 1329;
  36714.   var $this_addr_i_i48_i_i_i = __stackBase__ + 1333;
  36715.   var $base_addr_i_i49_i_i_i = __stackBase__ + 1337;
  36716.   var $offset_i_i50_i_i_i = __stackBase__ + 1341;
  36717.   var $base_addr_i51_i_i_i = __stackBase__ + 1345;
  36718.   var $offset_addr_i52_i_i_i = __stackBase__ + 1349;
  36719.   var $X_addr_i_i_i_i_i_i5 = __stackBase__ + 1353;
  36720.   var $this_addr_i_i_i15_i_i_i = __stackBase__ + 1357;
  36721.   var $this_addr_i_i16_i_i_i = __stackBase__ + 1361;
  36722.   var $retval_i17_i_i_i = __stackBase__ + 1365;
  36723.   var $this_addr_i18_i_i_i = __stackBase__ + 1369;
  36724.   var $i_addr_i19_i_i_i = __stackBase__ + 1373;
  36725.   var $X_addr_i_i_i_i_i_i_i6 = __stackBase__ + 1377;
  36726.   var $P_addr_i_i_i_i_i_i7 = __stackBase__ + 1381;
  36727.   var $offset_addr_i_i_i_i_i_i8 = __stackBase__ + 1385;
  36728.   var $this_addr_i_i_i_i5_i_i_i = __stackBase__ + 1389;
  36729.   var $this_addr_i_i_i6_i_i_i = __stackBase__ + 1393;
  36730.   var $retval_i_i_i_i_i9 = __stackBase__ + 1397;
  36731.   var $this_addr_i_i7_i_i_i = __stackBase__ + 1401;
  36732.   var $base_addr_i_i_i_i_i10 = __stackBase__ + 1405;
  36733.   var $offset_i_i_i_i_i11 = __stackBase__ + 1409;
  36734.   var $base_addr_i_i_i_i12 = __stackBase__ + 1413;
  36735.   var $offset_addr_i_i_i_i13 = __stackBase__ + 1417;
  36736.   var $this_addr_i2_i_i_i = __stackBase__ + 1421;
  36737.   var $i_addr_i_i_i_i14 = __stackBase__ + 1425;
  36738.   var $this_addr_i_i47_i_i_i_i = __stackBase__ + 1429;
  36739.   var $this_addr_i48_i_i_i_i = __stackBase__ + 1433;
  36740.   var $this_addr_i38_i_i_i_i = __stackBase__ + 1437;
  36741.   var $i_addr_i39_i_i_i_i = __stackBase__ + 1441;
  36742.   var $this_addr_i_i24_i_i_i_i = __stackBase__ + 1445;
  36743.   var $this_addr_i25_i_i_i_i = __stackBase__ + 1449;
  36744.   var $this_addr_i17_i_i_i_i = __stackBase__ + 1453;
  36745.   var $i_addr_i18_i_i_i_i = __stackBase__ + 1457;
  36746.   var $info_addr_i_i_i_i_i_i = __stackBase__ + 1461;
  36747.   var $lig_id_addr_i_i_i_i_i_i = __stackBase__ + 1465;
  36748.   var $lig_comp_addr_i_i_i_i_i_i = __stackBase__ + 1469;
  36749.   var $info_addr_i_i_i_i_i = __stackBase__ + 1473;
  36750.   var $comp_addr_i_i_i_i_i = __stackBase__ + 1477;
  36751.   var $this_addr_i_i6_i_i_i_i = __stackBase__ + 1481;
  36752.   var $this_addr_i7_i_i_i_i = __stackBase__ + 1485;
  36753.   var $this_addr_i3_i_i_i_i = __stackBase__ + 1489;
  36754.   var $i_addr_i_i_i_i_i = __stackBase__ + 1493;
  36755.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 1497;
  36756.   var $glyph_index_addr_i2_i_i_i_i_i = __stackBase__ + 1501;
  36757.   var $this_addr_i1_i_i_i_i_i_i = __stackBase__ + 1505;
  36758.   var $i_addr_i2_i_i_i_i_i_i = __stackBase__ + 1509;
  36759.   var $this_addr_i_i_i_i_i_i_i15 = __stackBase__ + 1513;
  36760.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 1517;
  36761.   var $this_addr_i_i_i_i_i_i16 = __stackBase__ + 1521;
  36762.   var $glyph_index_addr_i_i_i_i_i_i = __stackBase__ + 1525;
  36763.   var $class_guess_addr_i_i_i_i_i_i = __stackBase__ + 1529;
  36764.   var $this_addr_i1_i_i_i_i = __stackBase__ + 1533;
  36765.   var $glyph_index_addr_i_i_i_i_i = __stackBase__ + 1537;
  36766.   var $class_guess_addr_i_i_i_i_i = __stackBase__ + 1541;
  36767.   var $this_addr_i_i_i_i_i17 = __stackBase__ + 1545;
  36768.   var $retval_i_i_i_i18 = __stackBase__ + 1549;
  36769.   var $this_addr_i_i_i_i19 = __stackBase__ + 1550;
  36770.   var $c_addr_i_i_i_i = __stackBase__ + 1554;
  36771.   var $klass_i_i_i_i = __stackBase__ + 1558;
  36772.   var $count_i_i_i_i = __stackBase__ + 1562;
  36773.   var $i_i_i_i_i = __stackBase__ + 1566;
  36774.   var $retval_i_i_i21 = __stackBase__ + 1570;
  36775.   var $this_addr_i_i_i22 = __stackBase__ + 1571;
  36776.   var $c_addr_i_i_i23 = __stackBase__ + 1575;
  36777.   var $index_i_i_i24 = __stackBase__ + 1579;
  36778.   var $ref_tmp_i_i_i25 = __stackBase__ + 1583;
  36779.   var $ref_tmp10_i_i_i = __stackBase__ + 1587;
  36780.   var $this_addr_i_i26 = __stackBase__ + 1591;
  36781.   var $obj_addr_i_i27 = __stackBase__ + 1595;
  36782.   var $retval_i30 = __stackBase__ + 1599;
  36783.   var $this_addr_i31 = __stackBase__ + 1600;
  36784.   var $c_addr_i32 = __stackBase__ + 1604;
  36785.   var $this_addr_i8_i_i_i = __stackBase__ + 1608;
  36786.   var $i_addr_i9_i_i_i = __stackBase__ + 1612;
  36787.   var $X_addr_i_i_i_i_i_i11_i = __stackBase__ + 1616;
  36788.   var $P_addr_i_i_i_i_i12_i = __stackBase__ + 1620;
  36789.   var $offset_addr_i_i_i_i_i13_i = __stackBase__ + 1624;
  36790.   var $this_addr_i_i_i_i_i_i14_i = __stackBase__ + 1628;
  36791.   var $this_addr_i_i_i_i_i15_i = __stackBase__ + 1632;
  36792.   var $retval_i_i_i_i16_i = __stackBase__ + 1636;
  36793.   var $this_addr_i_i5_i_i_i = __stackBase__ + 1640;
  36794.   var $base_addr_i_i_i_i17_i = __stackBase__ + 1644;
  36795.   var $offset_i_i_i_i18_i = __stackBase__ + 1648;
  36796.   var $base_addr_i_i_i19_i = __stackBase__ + 1652;
  36797.   var $offset_addr_i_i_i20_i = __stackBase__ + 1656;
  36798.   var $this_addr_i_i_i_i21_i = __stackBase__ + 1660;
  36799.   var $this_addr_i1_i_i22_i = __stackBase__ + 1664;
  36800.   var $this_addr_i_i_i23_i = __stackBase__ + 1668;
  36801.   var $i_addr_i_i_i24_i = __stackBase__ + 1672;
  36802.   var $retval_i_i26_i = __stackBase__ + 1676;
  36803.   var $this_addr_i_i27_i = __stackBase__ + 1677;
  36804.   var $c_addr_i_i28_i = __stackBase__ + 1681;
  36805.   var $glyph_id_i_i29_i = __stackBase__ + 1685;
  36806.   var $index_i_i30_i = __stackBase__ + 1689;
  36807.   var $ref_tmp_i_i31_i = __stackBase__ + 1693;
  36808.   var $this_addr_i32_i = __stackBase__ + 1697;
  36809.   var $obj_addr_i33_i = __stackBase__ + 1701;
  36810.   var $this_addr_i_i3_i = __stackBase__ + 1705;
  36811.   var $this_addr_i4_i = __stackBase__ + 1709;
  36812.   var $this_addr_i34_i_i_i = __stackBase__ + 1713;
  36813.   var $i_addr_i35_i_i_i = __stackBase__ + 1717;
  36814.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 1721;
  36815.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 1725;
  36816.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 1729;
  36817.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 1733;
  36818.   var $this_addr_i_i_i28_i_i_i = __stackBase__ + 1737;
  36819.   var $retval_i_i_i_i_i = __stackBase__ + 1741;
  36820.   var $this_addr_i_i29_i_i_i = __stackBase__ + 1745;
  36821.   var $base_addr_i_i_i_i_i = __stackBase__ + 1749;
  36822.   var $offset_i_i_i_i_i = __stackBase__ + 1753;
  36823.   var $base_addr_i_i_i_i = __stackBase__ + 1757;
  36824.   var $offset_addr_i_i_i_i = __stackBase__ + 1761;
  36825.   var $this_addr_i_i12_i_i_i = __stackBase__ + 1765;
  36826.   var $this_addr_i13_i_i_i = __stackBase__ + 1769;
  36827.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 1773;
  36828.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 1777;
  36829.   var $this_addr_i_i3_i_i_i = __stackBase__ + 1781;
  36830.   var $retval_i_i_i_i = __stackBase__ + 1785;
  36831.   var $this_addr_i4_i_i_i = __stackBase__ + 1789;
  36832.   var $i_addr_i5_i_i_i = __stackBase__ + 1793;
  36833.   var $this_addr_i_i_i_i_i = __stackBase__ + 1797;
  36834.   var $this_addr_i1_i_i_i = __stackBase__ + 1801;
  36835.   var $this_addr_i_i_i_i = __stackBase__ + 1805;
  36836.   var $i_addr_i_i_i_i = __stackBase__ + 1809;
  36837.   var $retval_i_i_i = __stackBase__ + 1813;
  36838.   var $this_addr_i_i_i = __stackBase__ + 1814;
  36839.   var $c_addr_i_i_i = __stackBase__ + 1818;
  36840.   var $glyph_id_i_i_i = __stackBase__ + 1822;
  36841.   var $index_i_i_i = __stackBase__ + 1826;
  36842.   var $ref_tmp_i_i_i = __stackBase__ + 1830;
  36843.   var $this_addr_i_i = __stackBase__ + 1834;
  36844.   var $obj_addr_i_i = __stackBase__ + 1838;
  36845.   var $retval_i = __stackBase__ + 1842;
  36846.   var $this_addr_i = __stackBase__ + 1843;
  36847.   var $c_addr_i = __stackBase__ + 1847;
  36848.   var $retval;
  36849.   var $c_addr;
  36850.   $c_addr = $c;
  36851.   var $this1 = $this;
  36852.   var $0 = $lookup_type;
  36853.   if (($0 | 0) == 2) {
  36854.     HEAP[$this_addr_i31] = $this1 | 0;
  36855.     HEAP[$c_addr_i32] = $c_addr;
  36856.     var $this1_i33 = HEAP[$this_addr_i31];
  36857.     HEAP[$this_addr_i4_i4] = $this1_i33 | 0;
  36858.     HEAP[$this_addr_i_i3_i3] = HEAP[$this_addr_i4_i4] | 0;
  36859.     var $this1_i_i6_i38 = HEAP[$this_addr_i_i3_i3];
  36860.     if ((((HEAP[$this1_i_i6_i38 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i38 + 1 | 0] & 255) & 65535 | 0) == 1) {
  36861.       HEAP[$this_addr_i_i26] = HEAP[$c_addr_i32];
  36862.       HEAP[$obj_addr_i_i27] = $this1_i33 | 0;
  36863.       var $this1_i_i51 = HEAP[$this_addr_i_i26];
  36864.       HEAP[$this_addr_i_i_i22] = HEAP[$obj_addr_i_i27];
  36865.       HEAP[$c_addr_i_i_i23] = $this1_i_i51;
  36866.       var $this1_i_i_i52 = HEAP[$this_addr_i_i_i22];
  36867.       HEAP[$this_addr_i2_i_i_i] = HEAP[HEAP[$c_addr_i_i_i23] + 12 | 0];
  36868.       HEAP[$i_addr_i_i_i_i14] = 0;
  36869.       HEAP[$ref_tmp_i_i_i25] = $this1_i_i_i52;
  36870.       HEAP[$base_addr_i51_i_i_i] = $ref_tmp_i_i_i25;
  36871.       HEAP[$offset_addr_i52_i_i_i] = $this1_i_i_i52 + 2 | 0;
  36872.       var $252 = HEAP[HEAP[$base_addr_i51_i_i_i]];
  36873.       HEAP[$this_addr_i_i48_i_i_i] = HEAP[$offset_addr_i52_i_i_i];
  36874.       HEAP[$base_addr_i_i49_i_i_i] = $252;
  36875.       HEAP[$this_addr_i_i_i46_i_i_i] = HEAP[$this_addr_i_i48_i_i_i];
  36876.       HEAP[$this_addr_i_i_i_i45_i_i_i] = HEAP[$this_addr_i_i_i46_i_i_i] | 0;
  36877.       var $this1_i_i_i_i56_i_i_i = HEAP[$this_addr_i_i_i_i45_i_i_i];
  36878.       HEAP[$offset_i_i50_i_i_i] = ((HEAP[$this1_i_i_i_i56_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i56_i_i_i + 1 | 0] & 255) & 65535;
  36879.       if ((HEAP[$offset_i_i50_i_i_i] | 0) != 0) {
  36880.         var $270 = HEAP[$offset_i_i50_i_i_i];
  36881.         HEAP[$P_addr_i_i_i43_i_i_i] = HEAP[$base_addr_i_i49_i_i_i];
  36882.         HEAP[$offset_addr_i_i_i44_i_i_i] = $270;
  36883.         HEAP[$retval_i_i47_i_i_i] = HEAP[$P_addr_i_i_i43_i_i_i] + HEAP[$offset_addr_i_i_i44_i_i_i] | 0;
  36884.       } else {
  36885.         HEAP[$X_addr_i_i_i_i42_i_i_i] = 111704;
  36886.         HEAP[$retval_i_i47_i_i_i] = HEAP[$X_addr_i_i_i_i42_i_i_i];
  36887.       }
  36888.       var $278 = HEAP[$retval_i_i47_i_i_i];
  36889.       HEAP[$this_addr_i71_i_i_i] = HEAP[HEAP[$c_addr_i_i_i23] + 12 | 0];
  36890.       HEAP[$i_addr_i72_i_i_i] = 0;
  36891.       var $this1_i73_i_i_i = HEAP[$this_addr_i71_i_i_i];
  36892.       var $call8_i_i_i56 = __ZNK2OT8Coverage12get_coverageEj($278, HEAP[HEAP[$this1_i73_i_i_i + 96 | 0] + ((HEAP[$i_addr_i72_i_i_i] + HEAP[$this1_i73_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  36893.       HEAP[$index_i_i_i24] = $call8_i_i_i56;
  36894.       if (($call8_i_i_i56 | 0) == -1) {
  36895.         HEAP[$retval_i_i_i21] = 0;
  36896.       } else {
  36897.         HEAP[$ref_tmp10_i_i_i] = $this1_i_i_i52;
  36898.         var $297 = HEAP[$index_i_i_i24];
  36899.         HEAP[$this_addr_i18_i_i_i] = $this1_i_i_i52 + 4 | 0;
  36900.         HEAP[$i_addr_i19_i_i_i] = $297;
  36901.         var $this1_i20_i_i_i = HEAP[$this_addr_i18_i_i_i];
  36902.         var $301 = HEAP[$i_addr_i19_i_i_i];
  36903.         HEAP[$this_addr_i_i16_i_i_i] = $this1_i20_i_i_i | 0;
  36904.         HEAP[$this_addr_i_i_i15_i_i_i] = HEAP[$this_addr_i_i16_i_i_i] | 0;
  36905.         var $this1_i_i_i24_i_i_i = HEAP[$this_addr_i_i_i15_i_i_i];
  36906.         if ($301 >>> 0 >= (((HEAP[$this1_i_i_i24_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i24_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  36907.           HEAP[$X_addr_i_i_i_i_i_i5] = 111704;
  36908.           HEAP[$retval_i17_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i5];
  36909.         } else {
  36910.           HEAP[$retval_i17_i_i_i] = (HEAP[$i_addr_i19_i_i_i] << 1) + $this1_i20_i_i_i + 2 | 0;
  36911.         }
  36912.         var $317 = HEAP[$retval_i17_i_i_i];
  36913.         HEAP[$base_addr_i_i_i_i12] = $ref_tmp10_i_i_i;
  36914.         HEAP[$offset_addr_i_i_i_i13] = $317;
  36915.         var $323 = HEAP[HEAP[$base_addr_i_i_i_i12]];
  36916.         HEAP[$this_addr_i_i7_i_i_i] = HEAP[$offset_addr_i_i_i_i13];
  36917.         HEAP[$base_addr_i_i_i_i_i10] = $323;
  36918.         HEAP[$this_addr_i_i_i6_i_i_i] = HEAP[$this_addr_i_i7_i_i_i];
  36919.         HEAP[$this_addr_i_i_i_i5_i_i_i] = HEAP[$this_addr_i_i_i6_i_i_i] | 0;
  36920.         var $this1_i_i_i_i11_i_i_i = HEAP[$this_addr_i_i_i_i5_i_i_i];
  36921.         var $conv_i_i_i_i_i67 = ((HEAP[$this1_i_i_i_i11_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i11_i_i_i + 1 | 0] & 255) & 65535;
  36922.         HEAP[$offset_i_i_i_i_i11] = $conv_i_i_i_i_i67;
  36923.         if (($conv_i_i_i_i_i67 | 0) != 0) {
  36924.           var $340 = HEAP[$offset_i_i_i_i_i11];
  36925.           HEAP[$P_addr_i_i_i_i_i_i7] = HEAP[$base_addr_i_i_i_i_i10];
  36926.           HEAP[$offset_addr_i_i_i_i_i_i8] = $340;
  36927.           HEAP[$retval_i_i_i_i_i9] = HEAP[$P_addr_i_i_i_i_i_i7] + HEAP[$offset_addr_i_i_i_i_i_i8] | 0;
  36928.         } else {
  36929.           HEAP[$X_addr_i_i_i_i_i_i_i6] = 111704;
  36930.           HEAP[$retval_i_i_i_i_i9] = HEAP[$X_addr_i_i_i_i_i_i_i6];
  36931.         }
  36932.         var $355 = HEAP[$c_addr_i_i_i23];
  36933.         HEAP[$this_addr_i_i_i_i19] = HEAP[$retval_i_i_i_i_i9];
  36934.         HEAP[$c_addr_i_i_i_i] = $355;
  36935.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i19];
  36936.         HEAP[$this_addr_i3_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0];
  36937.         HEAP[$i_addr_i_i_i_i_i] = 0;
  36938.         HEAP[$this_addr_i48_i_i_i_i] = $this1_i_i_i_i | 0;
  36939.         HEAP[$this_addr_i_i47_i_i_i_i] = HEAP[$this_addr_i48_i_i_i_i] | 0;
  36940.         var $this1_i_i51_i_i_i_i = HEAP[$this_addr_i_i47_i_i_i_i];
  36941.         if ((((HEAP[$this1_i_i51_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i51_i_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  36942.           HEAP[$this_addr_i38_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0];
  36943.           HEAP[$i_addr_i39_i_i_i_i] = 0;
  36944.           var $this1_i40_i_i_i_i = HEAP[$this_addr_i38_i_i_i_i];
  36945.           HEAP[$klass_i_i_i_i] = (HEAP[HEAP[$this1_i40_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i39_i_i_i_i] + HEAP[$this1_i40_i_i_i_i + 80 | 0]) * 20 & -1) + 12 | 0] & 4 | 0) != 0 ? 2 : 0;
  36946.           HEAP[$this_addr_i25_i_i_i_i] = $this1_i_i_i_i | 0;
  36947.           HEAP[$this_addr_i_i24_i_i_i_i] = HEAP[$this_addr_i25_i_i_i_i] | 0;
  36948.           var $this1_i_i28_i_i_i_i = HEAP[$this_addr_i_i24_i_i_i_i];
  36949.           HEAP[$count_i_i_i_i] = ((HEAP[$this1_i_i28_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i28_i_i_i_i + 1 | 0] & 255) & 65535;
  36950.           HEAP[$i_i_i_i_i] = 0;
  36951.           var $396 = HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0];
  36952.           L695 : do {
  36953.             if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i] >>> 0) {
  36954.               var $array_i_i_i_i75 = $this1_i_i_i_i + 2 | 0;
  36955.               var $440 = $396;
  36956.               while (1) {
  36957.                 var $440;
  36958.                 HEAP[$this_addr_i17_i_i_i_i] = $440;
  36959.                 HEAP[$i_addr_i18_i_i_i_i] = 0;
  36960.                 var $this1_i19_i_i_i_i = HEAP[$this_addr_i17_i_i_i_i];
  36961.                 var $444 = HEAP[$i_i_i_i_i];
  36962.                 HEAP[$info_addr_i_i_i_i_i] = HEAP[$this1_i19_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i18_i_i_i_i] + HEAP[$this1_i19_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  36963.                 HEAP[$comp_addr_i_i_i_i_i] = $444;
  36964.                 var $446 = HEAP[$comp_addr_i_i_i_i_i];
  36965.                 HEAP[$info_addr_i_i_i_i_i_i] = HEAP[$info_addr_i_i_i_i_i];
  36966.                 HEAP[$lig_id_addr_i_i_i_i_i_i] = 0;
  36967.                 HEAP[$lig_comp_addr_i_i_i_i_i_i] = $446;
  36968.                 HEAP[HEAP[$info_addr_i_i_i_i_i_i] + 15 | 0] = (HEAP[$lig_comp_addr_i_i_i_i_i_i] & 15 | HEAP[$lig_id_addr_i_i_i_i_i_i] << 5) & 255;
  36969.                 var $450 = HEAP[$c_addr_i_i_i_i];
  36970.                 HEAP[$this_addr_i7_i_i_i_i] = (HEAP[$i_i_i_i_i] << 1) + $array_i_i_i_i75 | 0;
  36971.                 HEAP[$this_addr_i_i6_i_i_i_i] = HEAP[$this_addr_i7_i_i_i_i] | 0;
  36972.                 var $this1_i_i9_i_i_i_i = HEAP[$this_addr_i_i6_i_i_i_i];
  36973.                 var $conv18_i_i_i_i = ((HEAP[$this1_i_i9_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i9_i_i_i_i + 1 | 0] & 255) & 65535;
  36974.                 var $454 = HEAP[$klass_i_i_i_i];
  36975.                 HEAP[$this_addr_i1_i_i_i_i] = $450;
  36976.                 HEAP[$glyph_index_addr_i_i_i_i_i] = $conv18_i_i_i_i;
  36977.                 HEAP[$class_guess_addr_i_i_i_i_i] = $454;
  36978.                 var $this1_i2_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i];
  36979.                 var $455 = HEAP[$glyph_index_addr_i_i_i_i_i];
  36980.                 var $456 = HEAP[$class_guess_addr_i_i_i_i_i];
  36981.                 HEAP[$this_addr_i_i_i_i_i_i16] = $this1_i2_i_i_i_i;
  36982.                 HEAP[$glyph_index_addr_i_i_i_i_i_i] = $455;
  36983.                 HEAP[$class_guess_addr_i_i_i_i_i_i] = $456;
  36984.                 var $this1_i_i_i_i_i_i83 = HEAP[$this_addr_i_i_i_i_i_i16];
  36985.                 do {
  36986.                   if (HEAP[$this1_i_i_i_i_i_i83 + 44 | 0] & 1) {
  36987.                     var $conv_i_i_i_i_i_i84 = __ZNK2OT4GDEF15get_glyph_propsEj(HEAP[$this1_i_i_i_i_i_i83 + 40 | 0], HEAP[$glyph_index_addr_i_i_i_i_i_i]) & 65535;
  36988.                     HEAP[$this_addr_i_i_i_i_i_i_i15] = HEAP[$this1_i_i_i_i_i_i83 + 12 | 0];
  36989.                     HEAP[$i_addr_i_i_i_i_i_i_i] = 0;
  36990.                     var $this1_i_i_i_i_i_i_i85 = HEAP[$this_addr_i_i_i_i_i_i_i15];
  36991.                     HEAP[HEAP[$this1_i_i_i_i_i_i_i85 + 96 | 0] + ((HEAP[$i_addr_i_i_i_i_i_i_i] + HEAP[$this1_i_i_i_i_i_i_i85 + 80 | 0]) * 20 & -1) + 12 | 0] = $conv_i_i_i_i_i_i84;
  36992.                   } else {
  36993.                     if ((HEAP[$class_guess_addr_i_i_i_i_i_i] | 0) == 0) {
  36994.                       break;
  36995.                     }
  36996.                     var $conv5_i_i_i_i_i_i89 = HEAP[$class_guess_addr_i_i_i_i_i_i] & 65535;
  36997.                     HEAP[$this_addr_i1_i_i_i_i_i_i] = HEAP[$this1_i_i_i_i_i_i83 + 12 | 0];
  36998.                     HEAP[$i_addr_i2_i_i_i_i_i_i] = 0;
  36999.                     var $this1_i3_i_i_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i_i_i];
  37000.                     HEAP[HEAP[$this1_i3_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i2_i_i_i_i_i_i] + HEAP[$this1_i3_i_i_i_i_i_i + 80 | 0]) * 20 & -1) + 12 | 0] = $conv5_i_i_i_i_i_i89;
  37001.                   }
  37002.                 } while (0);
  37003.                 var $470 = HEAP[$glyph_index_addr_i_i_i_i_i];
  37004.                 HEAP[$this_addr_i1_i_i_i_i_i] = HEAP[$this1_i2_i_i_i_i + 12 | 0];
  37005.                 HEAP[$glyph_index_addr_i2_i_i_i_i_i] = $470;
  37006.                 var $this1_i3_i_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i_i];
  37007.                 if (__ZN11hb_buffer_t13make_room_forEjj($this1_i3_i_i_i_i_i, 0, 1)) {
  37008.                   var $475 = HEAP[$this1_i3_i_i_i_i_i + 100 | 0] + (HEAP[$this1_i3_i_i_i_i_i + 88 | 0] * 20 & -1) | 0;
  37009.                   var $476 = HEAP[$this1_i3_i_i_i_i_i + 96 | 0] + (HEAP[$this1_i3_i_i_i_i_i + 80 | 0] * 20 & -1) | 0;
  37010.                   for (var $$src = $476, $$dest = $475, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  37011.                     HEAP[$$dest] = HEAP[$$src];
  37012.                   }
  37013.                   HEAP[HEAP[$this1_i3_i_i_i_i_i + 100 | 0] + (HEAP[$this1_i3_i_i_i_i_i + 88 | 0] * 20 & -1) | 0] = HEAP[$glyph_index_addr_i2_i_i_i_i_i];
  37014.                   var $out_len6_i_i_i_i_i_i = $this1_i3_i_i_i_i_i + 88 | 0;
  37015.                   HEAP[$out_len6_i_i_i_i_i_i] = HEAP[$out_len6_i_i_i_i_i_i] + 1 | 0;
  37016.                 }
  37017.                 HEAP[$i_i_i_i_i] = HEAP[$i_i_i_i_i] + 1 | 0;
  37018.                 var $485 = HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0];
  37019.                 if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i] >>> 0) {
  37020.                   var $440 = $485;
  37021.                 } else {
  37022.                   var $_lcssa_i_i_i_i = $485;
  37023.                   break L695;
  37024.                 }
  37025.               }
  37026.             } else {
  37027.               var $_lcssa_i_i_i_i = $396;
  37028.             }
  37029.           } while (0);
  37030.           var $_lcssa_i_i_i_i;
  37031.           HEAP[$this_addr_i_i_i_i_i17] = $_lcssa_i_i_i_i;
  37032.           var $idx_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i17] + 80 | 0;
  37033.           HEAP[$idx_i_i_i_i_i] = HEAP[$idx_i_i_i_i_i] + 1 | 0;
  37034.           HEAP[$retval_i_i_i_i18] = 1;
  37035.         } else {
  37036.           HEAP[$retval_i_i_i_i18] = 0;
  37037.         }
  37038.         HEAP[$retval_i_i_i21] = HEAP[$retval_i_i_i_i18] & 1;
  37039.       }
  37040.       HEAP[$retval_i30] = HEAP[$retval_i_i_i21] & 1;
  37041.     } else {
  37042.       HEAP[$retval_i30] = 0;
  37043.     }
  37044.     $retval = HEAP[$retval_i30] & 1;
  37045.     var $1741 = $retval;
  37046.     STACKTOP = __stackBase__;
  37047.     return $1741;
  37048.   } else if (($0 | 0) == 3) {
  37049.     HEAP[$this_addr_i138] = $this1 | 0;
  37050.     HEAP[$c_addr_i139] = $c_addr;
  37051.     var $this1_i140 = HEAP[$this_addr_i138];
  37052.     HEAP[$this_addr_i4_i102] = $this1_i140 | 0;
  37053.     HEAP[$this_addr_i_i3_i101] = HEAP[$this_addr_i4_i102] | 0;
  37054.     var $this1_i_i6_i145 = HEAP[$this_addr_i_i3_i101];
  37055.     if ((((HEAP[$this1_i_i6_i145 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i145 + 1 | 0] & 255) & 65535 | 0) == 1) {
  37056.       HEAP[$this_addr_i_i133] = HEAP[$c_addr_i139];
  37057.       HEAP[$obj_addr_i_i134] = $this1_i140 | 0;
  37058.       var $this1_i_i159 = HEAP[$this_addr_i_i133];
  37059.       HEAP[$this_addr_i_i_i127] = HEAP[$obj_addr_i_i134];
  37060.       HEAP[$c_addr_i_i_i128] = $this1_i_i159;
  37061.       var $this1_i_i_i160 = HEAP[$this_addr_i_i_i127];
  37062.       HEAP[$this_addr_i_i_i_i123] = HEAP[HEAP[$c_addr_i_i_i128] + 12 | 0];
  37063.       HEAP[$i_addr_i_i_i_i124] = 0;
  37064.       HEAP[$this_addr_i115_i_i_i] = HEAP[HEAP[$c_addr_i_i_i128] + 12 | 0];
  37065.       HEAP[$i_addr_i116_i_i_i] = 0;
  37066.       var $this1_i117_i_i_i = HEAP[$this_addr_i115_i_i_i];
  37067.       HEAP[$glyph_id_i_i_i129] = HEAP[HEAP[$this1_i117_i_i_i + 96 | 0] + ((HEAP[$i_addr_i116_i_i_i] + HEAP[$this1_i117_i_i_i + 80 | 0]) * 20 & -1) | 0];
  37068.       HEAP[$ref_tmp_i_i_i131] = $this1_i_i_i160;
  37069.       HEAP[$base_addr_i95_i_i_i] = $ref_tmp_i_i_i131;
  37070.       HEAP[$offset_addr_i96_i_i_i] = $this1_i_i_i160 + 2 | 0;
  37071.       var $562 = HEAP[HEAP[$base_addr_i95_i_i_i]];
  37072.       HEAP[$this_addr_i_i92_i_i_i] = HEAP[$offset_addr_i96_i_i_i];
  37073.       HEAP[$base_addr_i_i93_i_i_i] = $562;
  37074.       HEAP[$this_addr_i_i_i90_i_i_i] = HEAP[$this_addr_i_i92_i_i_i];
  37075.       HEAP[$this_addr_i_i_i_i89_i_i_i] = HEAP[$this_addr_i_i_i90_i_i_i] | 0;
  37076.       var $this1_i_i_i_i100_i_i_i = HEAP[$this_addr_i_i_i_i89_i_i_i];
  37077.       HEAP[$offset_i_i94_i_i_i] = ((HEAP[$this1_i_i_i_i100_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i100_i_i_i + 1 | 0] & 255) & 65535;
  37078.       if ((HEAP[$offset_i_i94_i_i_i] | 0) != 0) {
  37079.         var $580 = HEAP[$offset_i_i94_i_i_i];
  37080.         HEAP[$P_addr_i_i_i87_i_i_i] = HEAP[$base_addr_i_i93_i_i_i];
  37081.         HEAP[$offset_addr_i_i_i88_i_i_i] = $580;
  37082.         HEAP[$retval_i_i91_i_i_i] = HEAP[$P_addr_i_i_i87_i_i_i] + HEAP[$offset_addr_i_i_i88_i_i_i] | 0;
  37083.       } else {
  37084.         HEAP[$X_addr_i_i_i_i86_i_i_i] = 111704;
  37085.         HEAP[$retval_i_i91_i_i_i] = HEAP[$X_addr_i_i_i_i86_i_i_i];
  37086.       }
  37087.       var $call8_i_i_i166 = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i91_i_i_i], HEAP[$glyph_id_i_i_i129]);
  37088.       HEAP[$index_i_i_i130] = $call8_i_i_i166;
  37089.       do {
  37090.         if (($call8_i_i_i166 | 0) == -1) {
  37091.           HEAP[$retval_i_i_i126] = 0;
  37092.         } else {
  37093.           HEAP[$ref_tmp10_i_i_i132] = $this1_i_i_i160;
  37094.           var $598 = HEAP[$index_i_i_i130];
  37095.           HEAP[$this_addr_i62_i_i_i] = $this1_i_i_i160 + 4 | 0;
  37096.           HEAP[$i_addr_i63_i_i_i] = $598;
  37097.           var $this1_i64_i_i_i = HEAP[$this_addr_i62_i_i_i];
  37098.           var $602 = HEAP[$i_addr_i63_i_i_i];
  37099.           HEAP[$this_addr_i_i60_i_i_i] = $this1_i64_i_i_i | 0;
  37100.           HEAP[$this_addr_i_i_i59_i_i_i] = HEAP[$this_addr_i_i60_i_i_i] | 0;
  37101.           var $this1_i_i_i68_i_i_i = HEAP[$this_addr_i_i_i59_i_i_i];
  37102.           if ($602 >>> 0 >= (((HEAP[$this1_i_i_i68_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i68_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  37103.             HEAP[$X_addr_i_i_i58_i_i_i] = 111704;
  37104.             HEAP[$retval_i61_i_i_i] = HEAP[$X_addr_i_i_i58_i_i_i];
  37105.           } else {
  37106.             HEAP[$retval_i61_i_i_i] = (HEAP[$i_addr_i63_i_i_i] << 1) + $this1_i64_i_i_i + 2 | 0;
  37107.           }
  37108.           var $618 = HEAP[$retval_i61_i_i_i];
  37109.           HEAP[$base_addr_i_i_i_i110] = $ref_tmp10_i_i_i132;
  37110.           HEAP[$offset_addr_i_i_i_i111] = $618;
  37111.           var $624 = HEAP[HEAP[$base_addr_i_i_i_i110]];
  37112.           HEAP[$this_addr_i_i53_i_i_i] = HEAP[$offset_addr_i_i_i_i111];
  37113.           HEAP[$base_addr_i_i_i_i_i108] = $624;
  37114.           HEAP[$this_addr_i_i_i52_i_i_i] = HEAP[$this_addr_i_i53_i_i_i];
  37115.           HEAP[$this_addr_i_i_i_i_i_i_i106] = HEAP[$this_addr_i_i_i52_i_i_i] | 0;
  37116.           var $this1_i_i_i_i_i_i_i170 = HEAP[$this_addr_i_i_i_i_i_i_i106];
  37117.           var $conv_i_i57_i_i_i = ((HEAP[$this1_i_i_i_i_i_i_i170 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i170 + 1 | 0] & 255) & 65535;
  37118.           HEAP[$offset_i_i_i_i_i109] = $conv_i_i57_i_i_i;
  37119.           if (($conv_i_i57_i_i_i | 0) != 0) {
  37120.             var $641 = HEAP[$offset_i_i_i_i_i109];
  37121.             HEAP[$P_addr_i_i_i_i_i_i104] = HEAP[$base_addr_i_i_i_i_i108];
  37122.             HEAP[$offset_addr_i_i_i_i_i_i105] = $641;
  37123.             HEAP[$retval_i_i_i_i_i107] = HEAP[$P_addr_i_i_i_i_i_i104] + HEAP[$offset_addr_i_i_i_i_i_i105] | 0;
  37124.           } else {
  37125.             HEAP[$X_addr_i_i_i_i_i_i_i103] = 111704;
  37126.             HEAP[$retval_i_i_i_i_i107] = HEAP[$X_addr_i_i_i_i_i_i_i103];
  37127.           }
  37128.           HEAP[$alt_set_i_i_i] = HEAP[$retval_i_i_i_i_i107];
  37129.           HEAP[$this_addr_i39_i_i_i] = HEAP[$alt_set_i_i_i] | 0;
  37130.           HEAP[$this_addr_i_i38_i_i_i] = HEAP[$this_addr_i39_i_i_i] | 0;
  37131.           var $this1_i_i42_i_i_i = HEAP[$this_addr_i_i38_i_i_i];
  37132.           if ((((HEAP[$this1_i_i42_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i42_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 == 0) {
  37133.             HEAP[$retval_i_i_i126] = 0;
  37134.             break;
  37135.           }
  37136.           HEAP[$this_addr_i29_i_i_i] = HEAP[HEAP[$c_addr_i_i_i128] + 12 | 0];
  37137.           HEAP[$i_addr_i30_i_i_i] = 0;
  37138.           var $this1_i31_i_i_i = HEAP[$this_addr_i29_i_i_i];
  37139.           HEAP[$glyph_mask_i_i_i] = HEAP[HEAP[$this1_i31_i_i_i + 96 | 0] + ((HEAP[$i_addr_i30_i_i_i] + HEAP[$this1_i31_i_i_i + 80 | 0]) * 20 & -1) + 4 | 0];
  37140.           HEAP[$lookup_mask_i_i_i] = HEAP[HEAP[$c_addr_i_i_i128] + 20 | 0];
  37141.           HEAP[$number_addr_i_i_i_i] = HEAP[$lookup_mask_i_i_i];
  37142.           HEAP[$n_bits_i_i_i_i] = 0;
  37143.           if ((HEAP[$number_addr_i_i_i_i] | 0) != 0) {
  37144.             var $683 = HEAP[$n_bits_i_i_i_i];
  37145.             L736 : do {
  37146.               if ((HEAP[$number_addr_i_i_i_i] & 1 | 0) != 0 ^ 1) {
  37147.                 var $684 = $683;
  37148.                 while (1) {
  37149.                   var $684;
  37150.                   HEAP[$n_bits_i_i_i_i] = $684 + 1 | 0;
  37151.                   HEAP[$number_addr_i_i_i_i] = HEAP[$number_addr_i_i_i_i] >>> 1;
  37152.                   var $687 = HEAP[$n_bits_i_i_i_i];
  37153.                   if ((HEAP[$number_addr_i_i_i_i] & 1 | 0) != 0 ^ 1) {
  37154.                     var $684 = $687;
  37155.                   } else {
  37156.                     var $_lcssa_i_i_i_i188 = $687;
  37157.                     break L736;
  37158.                   }
  37159.                 }
  37160.               } else {
  37161.                 var $_lcssa_i_i_i_i188 = $683;
  37162.               }
  37163.             } while (0);
  37164.             var $_lcssa_i_i_i_i188;
  37165.             HEAP[$retval_i26_i_i_i] = $_lcssa_i_i_i_i188;
  37166.           } else {
  37167.             HEAP[$retval_i26_i_i_i] = 0;
  37168.           }
  37169.           HEAP[$shift_i_i_i] = HEAP[$retval_i26_i_i_i];
  37170.           HEAP[$alt_index_i_i_i] = (HEAP[$glyph_mask_i_i_i] & HEAP[$lookup_mask_i_i_i]) >>> (HEAP[$shift_i_i_i] >>> 0);
  37171.           var $695 = HEAP[$alt_index_i_i_i];
  37172.           HEAP[$this_addr_i13_i_i_i113] = HEAP[$alt_set_i_i_i] | 0;
  37173.           HEAP[$this_addr_i_i12_i_i_i112] = HEAP[$this_addr_i13_i_i_i113] | 0;
  37174.           var $this1_i_i16_i_i_i192 = HEAP[$this_addr_i_i12_i_i_i112];
  37175.           if ($695 >>> 0 > (((HEAP[$this1_i_i16_i_i_i192 | 0] & 255) << 8) + (HEAP[$this1_i_i16_i_i_i192 + 1 | 0] & 255) & 65535) >>> 0 | (HEAP[$alt_index_i_i_i] | 0) == 0) {
  37176.             HEAP[$retval_i_i_i126] = 0;
  37177.             break;
  37178.           }
  37179.           var $sub_i_i_i = HEAP[$alt_index_i_i_i] - 1 | 0;
  37180.           HEAP[$this_addr_i4_i_i_i119] = HEAP[$alt_set_i_i_i];
  37181.           HEAP[$i_addr_i5_i_i_i120] = $sub_i_i_i;
  37182.           var $this1_i6_i_i_i204 = HEAP[$this_addr_i4_i_i_i119];
  37183.           var $712 = HEAP[$i_addr_i5_i_i_i120];
  37184.           HEAP[$this_addr_i_i3_i_i_i117] = $this1_i6_i_i_i204 | 0;
  37185.           HEAP[$this_addr_i_i_i_i_i_i116] = HEAP[$this_addr_i_i3_i_i_i117] | 0;
  37186.           var $this1_i_i_i_i_i_i208 = HEAP[$this_addr_i_i_i_i_i_i116];
  37187.           if ($712 >>> 0 >= (((HEAP[$this1_i_i_i_i_i_i208 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i208 + 1 | 0] & 255) & 65535) >>> 0) {
  37188.             HEAP[$X_addr_i_i_i_i_i_i115] = 111704;
  37189.             HEAP[$retval_i_i_i_i118] = HEAP[$X_addr_i_i_i_i_i_i115];
  37190.           } else {
  37191.             HEAP[$retval_i_i_i_i118] = (HEAP[$i_addr_i5_i_i_i120] << 1) + $this1_i6_i_i_i204 + 2 | 0;
  37192.           }
  37193.           HEAP[$this_addr_i1_i_i_i122] = HEAP[$retval_i_i_i_i118];
  37194.           HEAP[$this_addr_i_i_i_i_i121] = HEAP[$this_addr_i1_i_i_i122] | 0;
  37195.           var $this1_i_i_i_i_i226 = HEAP[$this_addr_i_i_i_i_i121];
  37196.           HEAP[$glyph_id_i_i_i129] = ((HEAP[$this1_i_i_i_i_i226 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i226 + 1 | 0] & 255) & 65535;
  37197.           __ZNK2OT18hb_apply_context_t13replace_glyphEjj(HEAP[$c_addr_i_i_i128], HEAP[$glyph_id_i_i_i129], 0);
  37198.           HEAP[$retval_i_i_i126] = 1;
  37199.         }
  37200.       } while (0);
  37201.       HEAP[$retval_i137] = HEAP[$retval_i_i_i126] & 1;
  37202.     } else {
  37203.       HEAP[$retval_i137] = 0;
  37204.     }
  37205.     $retval = HEAP[$retval_i137] & 1;
  37206.     var $1741 = $retval;
  37207.     STACKTOP = __stackBase__;
  37208.     return $1741;
  37209.   } else if (($0 | 0) == 1) {
  37210.     HEAP[$this_addr_i] = $this1 | 0;
  37211.     HEAP[$c_addr_i] = $c_addr;
  37212.     var $this1_i = HEAP[$this_addr_i];
  37213.     HEAP[$this_addr_i4_i] = $this1_i | 0;
  37214.     HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i] | 0;
  37215.     var $this1_i_i6_i = HEAP[$this_addr_i_i3_i];
  37216.     var $conv_i = ((HEAP[$this1_i_i6_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i + 1 | 0] & 255) & 65535;
  37217.     if (($conv_i | 0) == 1) {
  37218.       HEAP[$this_addr_i32_i] = HEAP[$c_addr_i];
  37219.       HEAP[$obj_addr_i33_i] = $this1_i | 0;
  37220.       var $this1_i34_i = HEAP[$this_addr_i32_i];
  37221.       HEAP[$this_addr_i_i27_i] = HEAP[$obj_addr_i33_i];
  37222.       HEAP[$c_addr_i_i28_i] = $this1_i34_i;
  37223.       var $this1_i_i35_i = HEAP[$this_addr_i_i27_i];
  37224.       HEAP[$this_addr_i_i_i23_i] = HEAP[HEAP[$c_addr_i_i28_i] + 12 | 0];
  37225.       HEAP[$i_addr_i_i_i24_i] = 0;
  37226.       HEAP[$this_addr_i8_i_i_i] = HEAP[HEAP[$c_addr_i_i28_i] + 12 | 0];
  37227.       HEAP[$i_addr_i9_i_i_i] = 0;
  37228.       var $this1_i10_i_i_i = HEAP[$this_addr_i8_i_i_i];
  37229.       HEAP[$glyph_id_i_i29_i] = HEAP[HEAP[$this1_i10_i_i_i + 96 | 0] + ((HEAP[$i_addr_i9_i_i_i] + HEAP[$this1_i10_i_i_i + 80 | 0]) * 20 & -1) | 0];
  37230.       HEAP[$ref_tmp_i_i31_i] = $this1_i_i35_i;
  37231.       HEAP[$base_addr_i_i_i19_i] = $ref_tmp_i_i31_i;
  37232.       HEAP[$offset_addr_i_i_i20_i] = $this1_i_i35_i + 2 | 0;
  37233.       var $43 = HEAP[HEAP[$base_addr_i_i_i19_i]];
  37234.       HEAP[$this_addr_i_i5_i_i_i] = HEAP[$offset_addr_i_i_i20_i];
  37235.       HEAP[$base_addr_i_i_i_i17_i] = $43;
  37236.       HEAP[$this_addr_i_i_i_i_i15_i] = HEAP[$this_addr_i_i5_i_i_i];
  37237.       HEAP[$this_addr_i_i_i_i_i_i14_i] = HEAP[$this_addr_i_i_i_i_i15_i] | 0;
  37238.       var $this1_i_i_i_i_i_i42_i = HEAP[$this_addr_i_i_i_i_i_i14_i];
  37239.       HEAP[$offset_i_i_i_i18_i] = ((HEAP[$this1_i_i_i_i_i_i42_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i42_i + 1 | 0] & 255) & 65535;
  37240.       if ((HEAP[$offset_i_i_i_i18_i] | 0) != 0) {
  37241.         var $61 = HEAP[$offset_i_i_i_i18_i];
  37242.         HEAP[$P_addr_i_i_i_i_i12_i] = HEAP[$base_addr_i_i_i_i17_i];
  37243.         HEAP[$offset_addr_i_i_i_i_i13_i] = $61;
  37244.         HEAP[$retval_i_i_i_i16_i] = HEAP[$P_addr_i_i_i_i_i12_i] + HEAP[$offset_addr_i_i_i_i_i13_i] | 0;
  37245.       } else {
  37246.         HEAP[$X_addr_i_i_i_i_i_i11_i] = 111704;
  37247.         HEAP[$retval_i_i_i_i16_i] = HEAP[$X_addr_i_i_i_i_i_i11_i];
  37248.       }
  37249.       var $call8_i_i56_i = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i16_i], HEAP[$glyph_id_i_i29_i]);
  37250.       HEAP[$index_i_i30_i] = $call8_i_i56_i;
  37251.       if (($call8_i_i56_i | 0) == -1) {
  37252.         HEAP[$retval_i_i26_i] = 0;
  37253.       } else {
  37254.         var $78 = HEAP[$glyph_id_i_i29_i];
  37255.         HEAP[$this_addr_i1_i_i22_i] = $this1_i_i35_i + 4 | 0;
  37256.         HEAP[$this_addr_i_i_i_i21_i] = HEAP[$this_addr_i1_i_i22_i] | 0;
  37257.         var $this1_i_i_i_i61_i = HEAP[$this_addr_i_i_i_i21_i];
  37258.         HEAP[$glyph_id_i_i29_i] = ((((HEAP[$this1_i_i_i_i61_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i61_i + 1 | 0] & 255) & 65535) << 16 >> 16) + $78 & 65535;
  37259.         __ZNK2OT18hb_apply_context_t13replace_glyphEjj(HEAP[$c_addr_i_i28_i], HEAP[$glyph_id_i_i29_i], 0);
  37260.         HEAP[$retval_i_i26_i] = 1;
  37261.       }
  37262.       HEAP[$retval_i] = HEAP[$retval_i_i26_i] & 1;
  37263.     } else if (($conv_i | 0) == 2) {
  37264.       HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  37265.       HEAP[$obj_addr_i_i] = $this1_i | 0;
  37266.       var $this1_i_i = HEAP[$this_addr_i_i];
  37267.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i];
  37268.       HEAP[$c_addr_i_i_i] = $this1_i_i;
  37269.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  37270.       HEAP[$this_addr_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0];
  37271.       HEAP[$i_addr_i_i_i_i] = 0;
  37272.       HEAP[$this_addr_i34_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0];
  37273.       HEAP[$i_addr_i35_i_i_i] = 0;
  37274.       var $this1_i36_i_i_i = HEAP[$this_addr_i34_i_i_i];
  37275.       HEAP[$glyph_id_i_i_i] = HEAP[HEAP[$this1_i36_i_i_i + 96 | 0] + ((HEAP[$i_addr_i35_i_i_i] + HEAP[$this1_i36_i_i_i + 80 | 0]) * 20 & -1) | 0];
  37276.       HEAP[$ref_tmp_i_i_i] = $this1_i_i_i;
  37277.       HEAP[$base_addr_i_i_i_i] = $ref_tmp_i_i_i;
  37278.       HEAP[$offset_addr_i_i_i_i] = $this1_i_i_i + 2 | 0;
  37279.       var $130 = HEAP[HEAP[$base_addr_i_i_i_i]];
  37280.       HEAP[$this_addr_i_i29_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  37281.       HEAP[$base_addr_i_i_i_i_i] = $130;
  37282.       HEAP[$this_addr_i_i_i28_i_i_i] = HEAP[$this_addr_i_i29_i_i_i];
  37283.       HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i28_i_i_i] | 0;
  37284.       var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  37285.       HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  37286.       if ((HEAP[$offset_i_i_i_i_i] | 0) != 0) {
  37287.         var $148 = HEAP[$offset_i_i_i_i_i];
  37288.         HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  37289.         HEAP[$offset_addr_i_i_i_i_i_i] = $148;
  37290.         HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  37291.       } else {
  37292.         HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  37293.         HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  37294.       }
  37295.       var $call8_i_i_i = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i_i], HEAP[$glyph_id_i_i_i]);
  37296.       HEAP[$index_i_i_i] = $call8_i_i_i;
  37297.       do {
  37298.         if (($call8_i_i_i | 0) == -1) {
  37299.           HEAP[$retval_i_i_i] = 0;
  37300.         } else {
  37301.           var $165 = HEAP[$index_i_i_i];
  37302.           HEAP[$this_addr_i13_i_i_i] = $this1_i_i_i + 4 | 0;
  37303.           HEAP[$this_addr_i_i12_i_i_i] = HEAP[$this_addr_i13_i_i_i] | 0;
  37304.           var $this1_i_i16_i_i_i = HEAP[$this_addr_i_i12_i_i_i];
  37305.           if ($165 >>> 0 >= (((HEAP[$this1_i_i16_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i16_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  37306.             HEAP[$retval_i_i_i] = 0;
  37307.             break;
  37308.           }
  37309.           var $175 = HEAP[$index_i_i_i];
  37310.           HEAP[$this_addr_i4_i_i_i] = $this1_i_i_i + 4 | 0;
  37311.           HEAP[$i_addr_i5_i_i_i] = $175;
  37312.           var $this1_i6_i_i_i = HEAP[$this_addr_i4_i_i_i];
  37313.           var $179 = HEAP[$i_addr_i5_i_i_i];
  37314.           HEAP[$this_addr_i_i3_i_i_i] = $this1_i6_i_i_i | 0;
  37315.           HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i3_i_i_i] | 0;
  37316.           var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  37317.           if ($179 >>> 0 >= (((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  37318.             HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  37319.             HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  37320.           } else {
  37321.             HEAP[$retval_i_i_i_i] = (HEAP[$i_addr_i5_i_i_i] << 1) + $this1_i6_i_i_i + 2 | 0;
  37322.           }
  37323.           HEAP[$this_addr_i1_i_i_i] = HEAP[$retval_i_i_i_i];
  37324.           HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i] | 0;
  37325.           var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  37326.           HEAP[$glyph_id_i_i_i] = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  37327.           __ZNK2OT18hb_apply_context_t13replace_glyphEjj(HEAP[$c_addr_i_i_i], HEAP[$glyph_id_i_i_i], 0);
  37328.           HEAP[$retval_i_i_i] = 1;
  37329.         }
  37330.       } while (0);
  37331.       HEAP[$retval_i] = HEAP[$retval_i_i_i] & 1;
  37332.     } else {
  37333.       HEAP[$retval_i] = 0;
  37334.     }
  37335.     $retval = HEAP[$retval_i] & 1;
  37336.     var $1741 = $retval;
  37337.     STACKTOP = __stackBase__;
  37338.     return $1741;
  37339.   } else if (($0 | 0) == 4) {
  37340.     HEAP[$this_addr_i283] = $this1 | 0;
  37341.     HEAP[$c_addr_i284] = $c_addr;
  37342.     var $this1_i285 = HEAP[$this_addr_i283];
  37343.     HEAP[$this_addr_i4_i246] = $this1_i285 | 0;
  37344.     HEAP[$this_addr_i_i3_i245] = HEAP[$this_addr_i4_i246] | 0;
  37345.     var $this1_i_i6_i290 = HEAP[$this_addr_i_i3_i245];
  37346.     if ((((HEAP[$this1_i_i6_i290 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i290 + 1 | 0] & 255) & 65535 | 0) == 1) {
  37347.       HEAP[$this_addr_i_i278] = HEAP[$c_addr_i284];
  37348.       HEAP[$obj_addr_i_i279] = $this1_i285 | 0;
  37349.       var $this1_i_i304 = HEAP[$this_addr_i_i278];
  37350.       HEAP[$this_addr_i_i_i272] = HEAP[$obj_addr_i_i279];
  37351.       HEAP[$c_addr_i_i_i273] = $this1_i_i304;
  37352.       var $this1_i_i_i305 = HEAP[$this_addr_i_i_i272];
  37353.       HEAP[$this_addr_i1_i_i_i253] = HEAP[HEAP[$c_addr_i_i_i273] + 12 | 0];
  37354.       HEAP[$i_addr_i_i_i_i254] = 0;
  37355.       HEAP[$this_addr_i3_i_i_i] = HEAP[HEAP[$c_addr_i_i_i273] + 12 | 0];
  37356.       HEAP[$i_addr_i4_i_i_i] = 0;
  37357.       var $this1_i5_i_i_i = HEAP[$this_addr_i3_i_i_i];
  37358.       HEAP[$glyph_id_i_i_i274] = HEAP[HEAP[$this1_i5_i_i_i + 96 | 0] + ((HEAP[$i_addr_i4_i_i_i] + HEAP[$this1_i5_i_i_i + 80 | 0]) * 20 & -1) | 0];
  37359.       HEAP[$ref_tmp_i_i_i276] = $this1_i_i_i305;
  37360.       HEAP[$base_addr_i_i_i_i251] = $ref_tmp_i_i_i276;
  37361.       HEAP[$offset_addr_i_i_i_i252] = $this1_i_i_i305 + 2 | 0;
  37362.       var $803 = HEAP[HEAP[$base_addr_i_i_i_i251]];
  37363.       HEAP[$this_addr_i_i14_i_i_i] = HEAP[$offset_addr_i_i_i_i252];
  37364.       HEAP[$base_addr_i_i15_i_i_i] = $803;
  37365.       HEAP[$this_addr_i_i_i12_i_i_i] = HEAP[$this_addr_i_i14_i_i_i];
  37366.       HEAP[$this_addr_i_i_i_i11_i_i_i] = HEAP[$this_addr_i_i_i12_i_i_i] | 0;
  37367.       var $this1_i_i_i_i19_i_i_i = HEAP[$this_addr_i_i_i_i11_i_i_i];
  37368.       HEAP[$offset_i_i_i_i_i250] = ((HEAP[$this1_i_i_i_i19_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i19_i_i_i + 1 | 0] & 255) & 65535;
  37369.       if ((HEAP[$offset_i_i_i_i_i250] | 0) != 0) {
  37370.         var $821 = HEAP[$offset_i_i_i_i_i250];
  37371.         HEAP[$P_addr_i_i_i_i_i_i248] = HEAP[$base_addr_i_i15_i_i_i];
  37372.         HEAP[$offset_addr_i_i_i_i_i_i249] = $821;
  37373.         HEAP[$retval_i_i13_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i248] + HEAP[$offset_addr_i_i_i_i_i_i249] | 0;
  37374.       } else {
  37375.         HEAP[$X_addr_i_i_i_i10_i_i_i] = 111704;
  37376.         HEAP[$retval_i_i13_i_i_i] = HEAP[$X_addr_i_i_i_i10_i_i_i];
  37377.       }
  37378.       var $call8_i_i_i314 = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i13_i_i_i], HEAP[$glyph_id_i_i_i274]);
  37379.       HEAP[$index_i_i_i275] = $call8_i_i_i314;
  37380.       if (($call8_i_i_i314 | 0) == -1) {
  37381.         HEAP[$retval_i_i_i271] = 0;
  37382.       } else {
  37383.         HEAP[$ref_tmp10_i_i_i277] = $this1_i_i_i305;
  37384.         var $839 = HEAP[$index_i_i_i275];
  37385.         HEAP[$this_addr_i38_i_i_i] = $this1_i_i_i305 + 4 | 0;
  37386.         HEAP[$i_addr_i39_i_i_i] = $839;
  37387.         var $this1_i40_i_i_i317 = HEAP[$this_addr_i38_i_i_i];
  37388.         var $843 = HEAP[$i_addr_i39_i_i_i];
  37389.         HEAP[$this_addr_i_i36_i_i_i] = $this1_i40_i_i_i317 | 0;
  37390.         HEAP[$this_addr_i_i_i35_i_i_i] = HEAP[$this_addr_i_i36_i_i_i] | 0;
  37391.         var $this1_i_i_i44_i_i_i = HEAP[$this_addr_i_i_i35_i_i_i];
  37392.         if ($843 >>> 0 >= (((HEAP[$this1_i_i_i44_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i44_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  37393.           HEAP[$X_addr_i_i_i_i_i_i247] = 111704;
  37394.           HEAP[$retval_i37_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i247];
  37395.         } else {
  37396.           HEAP[$retval_i37_i_i_i] = (HEAP[$i_addr_i39_i_i_i] << 1) + $this1_i40_i_i_i317 + 2 | 0;
  37397.         }
  37398.         var $859 = HEAP[$retval_i37_i_i_i];
  37399.         HEAP[$base_addr_i67_i_i_i] = $ref_tmp10_i_i_i277;
  37400.         HEAP[$offset_addr_i68_i_i_i] = $859;
  37401.         var $865 = HEAP[HEAP[$base_addr_i67_i_i_i]];
  37402.         HEAP[$this_addr_i_i64_i_i_i] = HEAP[$offset_addr_i68_i_i_i];
  37403.         HEAP[$base_addr_i_i65_i_i_i] = $865;
  37404.         HEAP[$this_addr_i_i_i62_i_i_i] = HEAP[$this_addr_i_i64_i_i_i];
  37405.         HEAP[$this_addr_i_i_i_i61_i_i_i] = HEAP[$this_addr_i_i_i62_i_i_i] | 0;
  37406.         var $this1_i_i_i_i72_i_i_i = HEAP[$this_addr_i_i_i_i61_i_i_i];
  37407.         var $conv_i_i82_i_i_i = ((HEAP[$this1_i_i_i_i72_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i72_i_i_i + 1 | 0] & 255) & 65535;
  37408.         HEAP[$offset_i_i66_i_i_i] = $conv_i_i82_i_i_i;
  37409.         if (($conv_i_i82_i_i_i | 0) != 0) {
  37410.           var $882 = HEAP[$offset_i_i66_i_i_i];
  37411.           HEAP[$P_addr_i_i_i59_i_i_i] = HEAP[$base_addr_i_i65_i_i_i];
  37412.           HEAP[$offset_addr_i_i_i60_i_i_i] = $882;
  37413.           HEAP[$retval_i_i63_i_i_i] = HEAP[$P_addr_i_i_i59_i_i_i] + HEAP[$offset_addr_i_i_i60_i_i_i] | 0;
  37414.         } else {
  37415.           HEAP[$X_addr_i_i_i_i58_i_i_i] = 111704;
  37416.           HEAP[$retval_i_i63_i_i_i] = HEAP[$X_addr_i_i_i_i58_i_i_i];
  37417.         }
  37418.         HEAP[$lig_set_i_i_i] = HEAP[$retval_i_i63_i_i_i];
  37419.         var $898 = HEAP[$c_addr_i_i_i273];
  37420.         HEAP[$this_addr_i_i_i_i267] = HEAP[$lig_set_i_i_i];
  37421.         HEAP[$c_addr_i_i_i_i268] = $898;
  37422.         var $this1_i_i_i_i323 = HEAP[$this_addr_i_i_i_i267];
  37423.         HEAP[$this_addr_i4_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i268] + 12 | 0];
  37424.         HEAP[$i_addr_i_i_i_i_i259] = 0;
  37425.         HEAP[$this_addr_i8_i_i_i_i] = $this1_i_i_i_i323 | 0;
  37426.         HEAP[$this_addr_i_i7_i_i_i_i] = HEAP[$this_addr_i8_i_i_i_i] | 0;
  37427.         var $this1_i_i_i_i_i_i327 = HEAP[$this_addr_i_i7_i_i_i_i];
  37428.         HEAP[$num_ligs_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i327 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i327 + 1 | 0] & 255) & 65535;
  37429.         HEAP[$i_i_i_i_i269] = 0;
  37430.         L802 : do {
  37431.           if (HEAP[$i_i_i_i_i269] >>> 0 < HEAP[$num_ligs_i_i_i_i] >>> 0) {
  37432.             var $921 = $this1_i_i_i_i323 | 0;
  37433.             var $idx21_i_i_i_i_i_i = $skippy_iter_i_i_i_i_i_i | 0;
  37434.             while (1) {
  37435.               HEAP[$ref_tmp_i_i_i_i] = $this1_i_i_i_i323;
  37436.               var $1160 = HEAP[$i_i_i_i_i269];
  37437.               HEAP[$this_addr_i17_i_i_i_i257] = $921;
  37438.               HEAP[$i_addr_i18_i_i_i_i258] = $1160;
  37439.               var $this1_i19_i_i_i_i336 = HEAP[$this_addr_i17_i_i_i_i257];
  37440.               var $1161 = HEAP[$i_addr_i18_i_i_i_i258];
  37441.               HEAP[$this_addr_i_i15_i_i_i_i] = $this1_i19_i_i_i_i336 | 0;
  37442.               HEAP[$this_addr_i_i_i14_i_i_i_i] = HEAP[$this_addr_i_i15_i_i_i_i] | 0;
  37443.               var $this1_i_i_i23_i_i_i_i = HEAP[$this_addr_i_i_i14_i_i_i_i];
  37444.               if ($1161 >>> 0 >= (((HEAP[$this1_i_i_i23_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i23_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  37445.                 HEAP[$X_addr_i_i_i_i_i_i_i256] = 111704;
  37446.                 HEAP[$retval_i16_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i256];
  37447.               } else {
  37448.                 HEAP[$retval_i16_i_i_i_i] = (HEAP[$i_addr_i18_i_i_i_i258] << 1) + $this1_i19_i_i_i_i336 + 2 | 0;
  37449.               }
  37450.               var $1168 = HEAP[$retval_i16_i_i_i_i];
  37451.               HEAP[$base_addr_i_i_i_i_i255] = $ref_tmp_i_i_i_i;
  37452.               HEAP[$offset_addr_i_i_i_i_i] = $1168;
  37453.               var $1172 = HEAP[HEAP[$base_addr_i_i_i_i_i255]];
  37454.               HEAP[$this_addr_i_i42_i_i_i_i] = HEAP[$offset_addr_i_i_i_i_i];
  37455.               HEAP[$base_addr_i_i_i_i_i_i] = $1172;
  37456.               HEAP[$this_addr_i_i_i40_i_i_i_i] = HEAP[$this_addr_i_i42_i_i_i_i];
  37457.               HEAP[$this_addr_i_i_i_i39_i_i_i_i] = HEAP[$this_addr_i_i_i40_i_i_i_i] | 0;
  37458.               var $this1_i_i_i_i46_i_i_i_i = HEAP[$this_addr_i_i_i_i39_i_i_i_i];
  37459.               var $conv_i_i56_i_i_i_i = ((HEAP[$this1_i_i_i_i46_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i46_i_i_i_i + 1 | 0] & 255) & 65535;
  37460.               HEAP[$offset_i_i_i_i_i_i] = $conv_i_i56_i_i_i_i;
  37461.               if (($conv_i_i56_i_i_i_i | 0) != 0) {
  37462.                 var $1179 = HEAP[$offset_i_i_i_i_i_i];
  37463.                 HEAP[$P_addr_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  37464.                 HEAP[$offset_addr_i_i_i_i_i_i_i] = $1179;
  37465.                 HEAP[$retval_i_i41_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i] | 0;
  37466.               } else {
  37467.                 HEAP[$X_addr_i_i_i_i38_i_i_i_i] = 111704;
  37468.                 HEAP[$retval_i_i41_i_i_i_i] = HEAP[$X_addr_i_i_i_i38_i_i_i_i];
  37469.               }
  37470.               HEAP[$lig_i_i_i_i] = HEAP[$retval_i_i41_i_i_i_i];
  37471.               var $1185 = HEAP[$c_addr_i_i_i_i268];
  37472.               HEAP[$this_addr_i_i_i_i_i264] = HEAP[$lig_i_i_i_i];
  37473.               HEAP[$c_addr_i_i_i_i_i] = $1185;
  37474.               var $this1_i_i_i_i_i338 = HEAP[$this_addr_i_i_i_i_i264];
  37475.               HEAP[$this_addr_i_i_i_i_i_i260] = HEAP[HEAP[$c_addr_i_i_i_i_i] + 12 | 0];
  37476.               HEAP[$i_addr_i_i_i_i_i_i] = 0;
  37477.               HEAP[$this_addr_i7_i_i_i_i_i] = $this1_i_i_i_i_i338 + 2 | 0;
  37478.               HEAP[$this_addr_i_i6_i_i_i_i_i] = HEAP[$this_addr_i7_i_i_i_i_i] | 0;
  37479.               var $this1_i_i9_i_i_i_i_i = HEAP[$this_addr_i_i6_i_i_i_i_i];
  37480.               var $conv_i_i_i_i_i345 = ((HEAP[$this1_i_i9_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i9_i_i_i_i_i + 1 | 0] & 255) & 65535;
  37481.               HEAP[$count_i_i_i_i_i] = $conv_i_i_i_i_i345;
  37482.               do {
  37483.                 if ($conv_i_i_i_i_i345 >>> 0 < 1) {
  37484.                   var $tobool_i15_i_i_i_i_i = 0;
  37485.                   HEAP[$retval_i_i_i_i_i263] = $tobool_i15_i_i_i_i_i;
  37486.                   var $1433 = $tobool_i15_i_i_i_i_i;
  37487.                 } else {
  37488.                   HEAP[$end_offset_i_i_i_i_i] = 0;
  37489.                   HEAP[$is_mark_ligature_i_i_i_i_i] = 0;
  37490.                   HEAP[$total_component_count_i_i_i_i_i] = 0;
  37491.                   var $1191 = HEAP[$c_addr_i_i_i_i_i];
  37492.                   var $1192 = HEAP[$count_i_i_i_i_i];
  37493.                   HEAP[$this_addr_i18_i_i_i_i_i] = $this1_i_i_i_i_i338 + 2 | 0;
  37494.                   HEAP[$i_addr_i19_i_i_i_i_i] = 1;
  37495.                   var $this1_i20_i_i_i_i_i = HEAP[$this_addr_i18_i_i_i_i_i];
  37496.                   var $1193 = HEAP[$i_addr_i19_i_i_i_i_i];
  37497.                   HEAP[$this_addr_i_i17_i_i_i_i_i] = $this1_i20_i_i_i_i_i | 0;
  37498.                   HEAP[$this_addr_i_i_i16_i_i_i_i_i] = HEAP[$this_addr_i_i17_i_i_i_i_i] | 0;
  37499.                   var $this1_i_i_i24_i_i_i_i_i = HEAP[$this_addr_i_i_i16_i_i_i_i_i];
  37500.                   if ($1193 >>> 0 < (((HEAP[$this1_i_i_i24_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i24_i_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0 & (HEAP[$i_addr_i19_i_i_i_i_i] | 0) != 0) {
  37501.                     HEAP[$retval_i_i_i_i_i_i] = (HEAP[$i_addr_i19_i_i_i_i_i] - 1 << 1) + $this1_i20_i_i_i_i_i + 2 | 0;
  37502.                   } else {
  37503.                     HEAP[$X_addr_i_i_i_i_i_i_i_i] = 111704;
  37504.                     HEAP[$retval_i_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i_i];
  37505.                   }
  37506.                   if (!__ZN2OTL11match_inputEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_PjPbSB_($1191, $1192, HEAP[$retval_i_i_i_i_i_i], 66, 0, $end_offset_i_i_i_i_i, $is_mark_ligature_i_i_i_i_i, $total_component_count_i_i_i_i_i)) {
  37507.                     var $tobool_i78_i_i_i_i_i = 0;
  37508.                     HEAP[$retval_i_i_i_i_i263] = $tobool_i78_i_i_i_i_i;
  37509.                     var $1433 = $tobool_i78_i_i_i_i_i;
  37510.                     break;
  37511.                   }
  37512.                   __ZN11hb_buffer_t14merge_clustersEjj(HEAP[HEAP[$c_addr_i_i_i_i_i] + 12 | 0], HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i] + 12 | 0] + 80 | 0], HEAP[$end_offset_i_i_i_i_i] + HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i] + 12 | 0] + 80 | 0] | 0);
  37513.                   var $1211 = HEAP[$c_addr_i_i_i_i_i];
  37514.                   var $1212 = HEAP[$count_i_i_i_i_i];
  37515.                   HEAP[$this_addr_i51_i_i_i_i_i] = $this1_i_i_i_i_i338 + 2 | 0;
  37516.                   HEAP[$i_addr_i52_i_i_i_i_i] = 1;
  37517.                   var $this1_i53_i_i_i_i_i = HEAP[$this_addr_i51_i_i_i_i_i];
  37518.                   var $1213 = HEAP[$i_addr_i52_i_i_i_i_i];
  37519.                   HEAP[$this_addr_i_i49_i_i_i_i_i] = $this1_i53_i_i_i_i_i | 0;
  37520.                   HEAP[$this_addr_i_i_i48_i_i_i_i_i] = HEAP[$this_addr_i_i49_i_i_i_i_i] | 0;
  37521.                   var $this1_i_i_i57_i_i_i_i_i = HEAP[$this_addr_i_i_i48_i_i_i_i_i];
  37522.                   if ($1213 >>> 0 < (((HEAP[$this1_i_i_i57_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i57_i_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0 & (HEAP[$i_addr_i52_i_i_i_i_i] | 0) != 0) {
  37523.                     HEAP[$retval_i50_i_i_i_i_i] = (HEAP[$i_addr_i52_i_i_i_i_i] - 1 << 1) + $this1_i53_i_i_i_i_i + 2 | 0;
  37524.                   } else {
  37525.                     HEAP[$X_addr_i_i_i47_i_i_i_i_i] = 111704;
  37526.                     HEAP[$retval_i50_i_i_i_i_i] = HEAP[$X_addr_i_i_i47_i_i_i_i_i];
  37527.                   }
  37528.                   var $1220 = HEAP[$retval_i50_i_i_i_i_i];
  37529.                   HEAP[$this_addr_i34_i_i_i_i_i] = $this1_i_i_i_i_i338 | 0;
  37530.                   HEAP[$this_addr_i_i33_i_i_i_i_i] = HEAP[$this_addr_i34_i_i_i_i_i] | 0;
  37531.                   var $this1_i_i37_i_i_i_i_i = HEAP[$this_addr_i_i33_i_i_i_i_i];
  37532.                   var $conv20_i_i_i_i_i = ((HEAP[$this1_i_i37_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i37_i_i_i_i_i + 1 | 0] & 255) & 65535;
  37533.                   var $tobool_i3_i_i_i_i = HEAP[$is_mark_ligature_i_i_i_i_i] & 1;
  37534.                   var $1224 = HEAP[$total_component_count_i_i_i_i_i];
  37535.                   HEAP[$c_addr_i_i_i_i_i_i] = $1211;
  37536.                   HEAP[$count_addr_i_i_i_i_i_i] = $1212;
  37537.                   HEAP[$input_addr_i_i_i_i_i_i] = $1220;
  37538.                   HEAP[$match_func_addr_i_i_i_i_i_i] = 66;
  37539.                   HEAP[$match_data_addr_i_i_i_i_i_i] = 0;
  37540.                   HEAP[$lig_glyph_addr_i_i_i_i_i_i] = $conv20_i_i_i_i_i;
  37541.                   $is_mark_ligature_addr_i_i_i_i_i_i = $tobool_i3_i_i_i_i & 1;
  37542.                   HEAP[$total_component_count_addr_i_i_i_i_i_i] = $1224;
  37543.                   __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter_i_i_i_i_i_i, HEAP[$c_addr_i_i_i_i_i_i], HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 80 | 0], HEAP[$count_addr_i_i_i_i_i_i] - 1 | 0, 0);
  37544.                   var $1230 = HEAP[$match_func_addr_i_i_i_i_i_i];
  37545.                   var $1231 = HEAP[$match_data_addr_i_i_i_i_i_i];
  37546.                   var $1232 = HEAP[$input_addr_i_i_i_i_i_i];
  37547.                   HEAP[$this_addr_i_i_i_i_i_i_i262] = $skippy_iter_i_i_i_i_i_i;
  37548.                   HEAP[$match_func_addr_i_i_i_i_i_i_i] = $1230;
  37549.                   HEAP[$match_data_addr_i_i_i_i_i_i_i] = $1231;
  37550.                   HEAP[$glyph_data_addr_i_i_i_i_i_i_i] = $1232;
  37551.                   var $this1_i_i_i_i_i_i_i352 = HEAP[$this_addr_i_i_i_i_i_i_i262];
  37552.                   var $1233 = HEAP[$match_func_addr_i_i_i_i_i_i_i];
  37553.                   var $1234 = HEAP[$match_data_addr_i_i_i_i_i_i_i];
  37554.                   HEAP[$this_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i352 + 8 | 0;
  37555.                   HEAP[$match_func__addr_i_i_i_i_i_i_i_i] = $1233;
  37556.                   HEAP[$match_data__addr_i_i_i_i_i_i_i_i] = $1234;
  37557.                   var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  37558.                   HEAP[$this1_i_i_i_i_i_i_i_i + 16 | 0] = HEAP[$match_func__addr_i_i_i_i_i_i_i_i];
  37559.                   HEAP[$this1_i_i_i_i_i_i_i_i + 20 | 0] = HEAP[$match_data__addr_i_i_i_i_i_i_i_i];
  37560.                   HEAP[$this1_i_i_i_i_i_i_i352 + 32 | 0] = HEAP[$glyph_data_addr_i_i_i_i_i_i_i];
  37561.                   HEAP[$this_addr_i56_i_i_i_i_i_i] = $skippy_iter_i_i_i_i_i_i;
  37562.                   var $this1_i57_i_i_i_i_i_i = HEAP[$this_addr_i56_i_i_i_i_i_i];
  37563.                   do {
  37564.                     if ((HEAP[$this1_i57_i_i_i_i_i_i + 36 | 0] | 0) != 0) {
  37565.                       if ((HEAP[$this1_i57_i_i_i_i_i_i + 36 | 0] + HEAP[$this1_i57_i_i_i_i_i_i | 0] | 0) >>> 0 >= HEAP[$this1_i57_i_i_i_i_i_i + 40 | 0] >>> 0) {
  37566.                         break;
  37567.                       } else {
  37568.                         label = 631;
  37569.                         break;
  37570.                       }
  37571.                     } else {
  37572.                       label = 631;
  37573.                     }
  37574.                   } while (0);
  37575.                   L830 : do {
  37576.                     if (label == 631) {
  37577.                       label = 0;
  37578.                       HEAP[$klass_i_i_i_i_i_i] = $is_mark_ligature_addr_i_i_i_i_i_i & 1 ? 0 : 4;
  37579.                       if ($is_mark_ligature_addr_i_i_i_i_i_i & 1) {
  37580.                         var $cond4_i_i_i_i_i_i = 0;
  37581.                       } else {
  37582.                         var $cond4_i_i_i_i_i_i = __ZL15allocate_lig_idP11hb_buffer_t(HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0]) & 255;
  37583.                       }
  37584.                       var $cond4_i_i_i_i_i_i;
  37585.                       HEAP[$lig_id_i_i_i_i_i_i] = $cond4_i_i_i_i_i_i;
  37586.                       HEAP[$this_addr_i111_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37587.                       HEAP[$i_addr_i112_i_i_i_i_i_i] = 0;
  37588.                       var $this1_i113_i_i_i_i_i_i = HEAP[$this_addr_i111_i_i_i_i_i_i];
  37589.                       HEAP[$info_addr_i118_i_i_i_i_i_i] = HEAP[$this1_i113_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i112_i_i_i_i_i_i] + HEAP[$this1_i113_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37590.                       HEAP[$last_lig_id_i_i_i_i_i_i] = (HEAP[HEAP[$info_addr_i118_i_i_i_i_i_i] + 15 | 0] & 255) >> 5;
  37591.                       HEAP[$this_addr_i164_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37592.                       HEAP[$i_addr_i165_i_i_i_i_i_i] = 0;
  37593.                       var $this1_i166_i_i_i_i_i_i = HEAP[$this_addr_i164_i_i_i_i_i_i];
  37594.                       HEAP[$info_addr_i142_i_i_i_i_i_i] = HEAP[$this1_i166_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i165_i_i_i_i_i_i] + HEAP[$this1_i166_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37595.                       do {
  37596.                         if ((HEAP[HEAP[$info_addr_i142_i_i_i_i_i_i] + 12 | 0] & 4 | 0) != 0) {
  37597.                           HEAP[$info_addr_i_i140_i_i_i_i_i_i] = HEAP[$info_addr_i142_i_i_i_i_i_i];
  37598.                           if ((HEAP[HEAP[$info_addr_i_i140_i_i_i_i_i_i] + 15 | 0] & 16 | 0) == 0) {
  37599.                             label = 636;
  37600.                             break;
  37601.                           }
  37602.                           HEAP[$retval_i141_i_i_i_i_i_i] = HEAP[HEAP[$info_addr_i142_i_i_i_i_i_i] + 15 | 0] & 15;
  37603.                           break;
  37604.                         } else {
  37605.                           label = 636;
  37606.                         }
  37607.                       } while (0);
  37608.                       if (label == 636) {
  37609.                         label = 0;
  37610.                         HEAP[$retval_i141_i_i_i_i_i_i] = 1;
  37611.                       }
  37612.                       HEAP[$last_num_components_i_i_i_i_i_i] = HEAP[$retval_i141_i_i_i_i_i_i];
  37613.                       HEAP[$components_so_far_i_i_i_i_i_i] = HEAP[$last_num_components_i_i_i_i_i_i];
  37614.                       if (!($is_mark_ligature_addr_i_i_i_i_i_i & 1)) {
  37615.                         HEAP[$this_addr_i133_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37616.                         HEAP[$i_addr_i134_i_i_i_i_i_i] = 0;
  37617.                         var $this1_i135_i_i_i_i_i_i = HEAP[$this_addr_i133_i_i_i_i_i_i];
  37618.                         var $1273 = HEAP[$lig_id_i_i_i_i_i_i];
  37619.                         var $1274 = HEAP[$total_component_count_addr_i_i_i_i_i_i];
  37620.                         HEAP[$info_addr_i124_i_i_i_i_i_i] = HEAP[$this1_i135_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i134_i_i_i_i_i_i] + HEAP[$this1_i135_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37621.                         HEAP[$lig_id_addr_i125_i_i_i_i_i_i] = $1273;
  37622.                         HEAP[$lig_num_comps_addr_i_i_i_i_i_i_i] = $1274;
  37623.                         HEAP[HEAP[$info_addr_i124_i_i_i_i_i_i] + 15 | 0] = (HEAP[$lig_id_addr_i125_i_i_i_i_i_i] << 5 | 16 | HEAP[$lig_num_comps_addr_i_i_i_i_i_i_i] & 15) & 255;
  37624.                       }
  37625.                       __ZNK2OT18hb_apply_context_t13replace_glyphEjj(HEAP[$c_addr_i_i_i_i_i_i], HEAP[$lig_glyph_addr_i_i_i_i_i_i], HEAP[$klass_i_i_i_i_i_i]);
  37626.                       HEAP[$i_i_i_i_i_i_i] = 1;
  37627.                       L844 : do {
  37628.                         if (HEAP[$i_i_i_i_i_i_i] >>> 0 < HEAP[$count_addr_i_i_i_i_i_i] >>> 0) {
  37629.                           while (1) {
  37630.                             if (!__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter_i_i_i_i_i_i)) {
  37631.                               break L830;
  37632.                             }
  37633.                             L848 : do {
  37634.                               if (HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 80 | 0] >>> 0 < HEAP[$idx21_i_i_i_i_i_i] >>> 0) {
  37635.                                 while (1) {
  37636.                                   if (!($is_mark_ligature_addr_i_i_i_i_i_i & 1)) {
  37637.                                     var $sub25_i_i_i_i_i_i = -HEAP[$last_num_components_i_i_i_i_i_i] + HEAP[$components_so_far_i_i_i_i_i_i] | 0;
  37638.                                     HEAP[$this_addr_i104_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37639.                                     HEAP[$i_addr_i105_i_i_i_i_i_i] = 0;
  37640.                                     var $this1_i106_i_i_i_i_i_i = HEAP[$this_addr_i104_i_i_i_i_i_i];
  37641.                                     HEAP[$info_addr_i89_i_i_i_i_i_i] = HEAP[$this1_i106_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i105_i_i_i_i_i_i] + HEAP[$this1_i106_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37642.                                     HEAP[$info_addr_i_i87_i_i_i_i_i_i] = HEAP[$info_addr_i89_i_i_i_i_i_i];
  37643.                                     if ((HEAP[HEAP[$info_addr_i_i87_i_i_i_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  37644.                                       HEAP[$retval_i88_i_i_i_i_i_i] = 0;
  37645.                                     } else {
  37646.                                       HEAP[$retval_i88_i_i_i_i_i_i] = HEAP[HEAP[$info_addr_i89_i_i_i_i_i_i] + 15 | 0] & 15;
  37647.                                     }
  37648.                                     HEAP[$ref_tmp_i_i_i_i_i_i] = HEAP[$retval_i88_i_i_i_i_i_i];
  37649.                                     HEAP[$ref_tmp29_i_i_i_i_i_i] = 1;
  37650.                                     HEAP[$a_addr_i83_i_i_i_i_i_i] = $ref_tmp_i_i_i_i_i_i;
  37651.                                     HEAP[$b_addr_i84_i_i_i_i_i_i] = $ref_tmp29_i_i_i_i_i_i;
  37652.                                     HEAP[$ref_tmp31_i_i_i_i_i_i] = HEAP[HEAP[$a_addr_i83_i_i_i_i_i_i]] >>> 0 > HEAP[HEAP[$b_addr_i84_i_i_i_i_i_i]] >>> 0 ? HEAP[HEAP[$a_addr_i83_i_i_i_i_i_i]] : HEAP[HEAP[$b_addr_i84_i_i_i_i_i_i]];
  37653.                                     HEAP[$a_addr_i79_i_i_i_i_i_i] = $ref_tmp31_i_i_i_i_i_i;
  37654.                                     HEAP[$b_addr_i80_i_i_i_i_i_i] = $last_num_components_i_i_i_i_i_i;
  37655.                                     HEAP[$new_lig_comp_i_i_i_i_i_i] = $sub25_i_i_i_i_i_i + (HEAP[HEAP[$a_addr_i79_i_i_i_i_i_i]] >>> 0 < HEAP[HEAP[$b_addr_i80_i_i_i_i_i_i]] >>> 0 ? HEAP[HEAP[$a_addr_i79_i_i_i_i_i_i]] : HEAP[HEAP[$b_addr_i80_i_i_i_i_i_i]]) | 0;
  37656.                                     HEAP[$this_addr_i72_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37657.                                     HEAP[$i_addr_i73_i_i_i_i_i_i] = 0;
  37658.                                     var $this1_i74_i_i_i_i_i_i = HEAP[$this_addr_i72_i_i_i_i_i_i];
  37659.                                     var $1322 = HEAP[$lig_id_i_i_i_i_i_i];
  37660.                                     var $1323 = HEAP[$new_lig_comp_i_i_i_i_i_i];
  37661.                                     HEAP[$info_addr_i62_i_i_i_i_i_i] = HEAP[$this1_i74_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i73_i_i_i_i_i_i] + HEAP[$this1_i74_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37662.                                     HEAP[$lig_id_addr_i63_i_i_i_i_i_i] = $1322;
  37663.                                     HEAP[$lig_comp_addr_i64_i_i_i_i_i_i] = $1323;
  37664.                                     HEAP[HEAP[$info_addr_i62_i_i_i_i_i_i] + 15 | 0] = (HEAP[$lig_comp_addr_i64_i_i_i_i_i_i] & 15 | HEAP[$lig_id_addr_i63_i_i_i_i_i_i] << 5) & 255;
  37665.                                   }
  37666.                                   HEAP[$this_addr_i48_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37667.                                   var $this1_i49_i_i_i_i_i_i = HEAP[$this_addr_i48_i_i_i_i_i_i];
  37668.                                   do {
  37669.                                     if (HEAP[$this1_i49_i_i_i_i_i_i + 77 | 0] & 1) {
  37670.                                       do {
  37671.                                         if ((HEAP[$this1_i49_i_i_i_i_i_i + 100 | 0] | 0) != (HEAP[$this1_i49_i_i_i_i_i_i + 96 | 0] | 0)) {
  37672.                                           label = 650;
  37673.                                         } else {
  37674.                                           if ((HEAP[$this1_i49_i_i_i_i_i_i + 88 | 0] | 0) != (HEAP[$this1_i49_i_i_i_i_i_i + 80 | 0] | 0)) {
  37675.                                             label = 650;
  37676.                                             break;
  37677.                                           } else {
  37678.                                             break;
  37679.                                           }
  37680.                                         }
  37681.                                       } while (0);
  37682.                                       if (label == 650) {
  37683.                                         label = 0;
  37684.                                         if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i49_i_i_i_i_i_i, 1, 1)) {
  37685.                                           break;
  37686.                                         }
  37687.                                         var $1338 = HEAP[$this1_i49_i_i_i_i_i_i + 100 | 0] + (HEAP[$this1_i49_i_i_i_i_i_i + 88 | 0] * 20 & -1) | 0;
  37688.                                         var $1339 = HEAP[$this1_i49_i_i_i_i_i_i + 96 | 0] + (HEAP[$this1_i49_i_i_i_i_i_i + 80 | 0] * 20 & -1) | 0;
  37689.                                         for (var $$src = $1339, $$dest = $1338, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  37690.                                           HEAP[$$dest] = HEAP[$$src];
  37691.                                         }
  37692.                                       }
  37693.                                       var $out_len11_i_i_i_i_i_i_i = $this1_i49_i_i_i_i_i_i + 88 | 0;
  37694.                                       HEAP[$out_len11_i_i_i_i_i_i_i] = HEAP[$out_len11_i_i_i_i_i_i_i] + 1 | 0;
  37695.                                       label = 653;
  37696.                                       break;
  37697.                                     } else {
  37698.                                       label = 653;
  37699.                                     }
  37700.                                   } while (0);
  37701.                                   if (label == 653) {
  37702.                                     label = 0;
  37703.                                     var $idx13_i_i_i_i_i_i_i = $this1_i49_i_i_i_i_i_i + 80 | 0;
  37704.                                     HEAP[$idx13_i_i_i_i_i_i_i] = HEAP[$idx13_i_i_i_i_i_i_i] + 1 | 0;
  37705.                                   }
  37706.                                   if (HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 80 | 0] >>> 0 >= HEAP[$idx21_i_i_i_i_i_i] >>> 0) {
  37707.                                     break L848;
  37708.                                   }
  37709.                                 }
  37710.                               }
  37711.                             } while (0);
  37712.                             HEAP[$this_addr_i41_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37713.                             HEAP[$i_addr_i42_i_i_i_i_i_i] = 0;
  37714.                             var $this1_i43_i_i_i_i_i_i = HEAP[$this_addr_i41_i_i_i_i_i_i];
  37715.                             HEAP[$info_addr_i35_i_i_i_i_i_i] = HEAP[$this1_i43_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i42_i_i_i_i_i_i] + HEAP[$this1_i43_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37716.                             HEAP[$last_lig_id_i_i_i_i_i_i] = (HEAP[HEAP[$info_addr_i35_i_i_i_i_i_i] + 15 | 0] & 255) >> 5;
  37717.                             HEAP[$this_addr_i32_i_i_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0];
  37718.                             HEAP[$i_addr_i_i_i_i_i_i_i261] = 0;
  37719.                             var $this1_i33_i_i_i_i_i_i = HEAP[$this_addr_i32_i_i_i_i_i_i];
  37720.                             HEAP[$info_addr_i18_i_i_i_i_i_i] = HEAP[$this1_i33_i_i_i_i_i_i + 96 | 0] + ((HEAP[$i_addr_i_i_i_i_i_i_i261] + HEAP[$this1_i33_i_i_i_i_i_i + 80 | 0]) * 20 & -1) | 0;
  37721.                             do {
  37722.                               if ((HEAP[HEAP[$info_addr_i18_i_i_i_i_i_i] + 12 | 0] & 4 | 0) != 0) {
  37723.                                 HEAP[$info_addr_i_i16_i_i_i_i_i_i] = HEAP[$info_addr_i18_i_i_i_i_i_i];
  37724.                                 if ((HEAP[HEAP[$info_addr_i_i16_i_i_i_i_i_i] + 15 | 0] & 16 | 0) == 0) {
  37725.                                   label = 658;
  37726.                                   break;
  37727.                                 }
  37728.                                 HEAP[$retval_i17_i_i_i_i_i_i] = HEAP[HEAP[$info_addr_i18_i_i_i_i_i_i] + 15 | 0] & 15;
  37729.                                 break;
  37730.                               } else {
  37731.                                 label = 658;
  37732.                               }
  37733.                             } while (0);
  37734.                             if (label == 658) {
  37735.                               label = 0;
  37736.                               HEAP[$retval_i17_i_i_i_i_i_i] = 1;
  37737.                             }
  37738.                             HEAP[$last_num_components_i_i_i_i_i_i] = HEAP[$retval_i17_i_i_i_i_i_i];
  37739.                             HEAP[$components_so_far_i_i_i_i_i_i] = HEAP[$components_so_far_i_i_i_i_i_i] + HEAP[$last_num_components_i_i_i_i_i_i] | 0;
  37740.                             var $idx45_i_i_i_i_i_i = HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 80 | 0;
  37741.                             HEAP[$idx45_i_i_i_i_i_i] = HEAP[$idx45_i_i_i_i_i_i] + 1 | 0;
  37742.                             HEAP[$i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i] + 1 | 0;
  37743.                             if (HEAP[$i_i_i_i_i_i_i] >>> 0 >= HEAP[$count_addr_i_i_i_i_i_i] >>> 0) {
  37744.                               break L844;
  37745.                             }
  37746.                           }
  37747.                         }
  37748.                       } while (0);
  37749.                       if ($is_mark_ligature_addr_i_i_i_i_i_i & 1) {
  37750.                         break;
  37751.                       }
  37752.                       if ((HEAP[$last_lig_id_i_i_i_i_i_i] | 0) == 0) {
  37753.                         break;
  37754.                       }
  37755.                       HEAP[$i50_i_i_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 80 | 0];
  37756.                       if (HEAP[$i50_i_i_i_i_i_i] >>> 0 >= HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 84 | 0] >>> 0) {
  37757.                         break;
  37758.                       }
  37759.                       while (1) {
  37760.                         var $1383 = HEAP[$last_lig_id_i_i_i_i_i_i];
  37761.                         HEAP[$info_addr_i11_i_i_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i50_i_i_i_i_i_i] * 20 & -1) | 0;
  37762.                         if (($1383 | 0) != ((HEAP[HEAP[$info_addr_i11_i_i_i_i_i_i] + 15 | 0] & 255) >> 5 | 0)) {
  37763.                           break L830;
  37764.                         }
  37765.                         var $sub62_i_i_i_i_i_i = -HEAP[$last_num_components_i_i_i_i_i_i] + HEAP[$components_so_far_i_i_i_i_i_i] | 0;
  37766.                         HEAP[$info_addr_i5_i_i_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i50_i_i_i_i_i_i] * 20 & -1) | 0;
  37767.                         HEAP[$info_addr_i_i_i_i_i_i_i_i] = HEAP[$info_addr_i5_i_i_i_i_i_i];
  37768.                         if ((HEAP[HEAP[$info_addr_i_i_i_i_i_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  37769.                           HEAP[$retval_i_i_i_i_i_i_i] = 0;
  37770.                         } else {
  37771.                           HEAP[$retval_i_i_i_i_i_i_i] = HEAP[HEAP[$info_addr_i5_i_i_i_i_i_i] + 15 | 0] & 15;
  37772.                         }
  37773.                         HEAP[$ref_tmp67_i_i_i_i_i_i] = HEAP[$retval_i_i_i_i_i_i_i];
  37774.                         HEAP[$ref_tmp68_i_i_i_i_i_i] = 1;
  37775.                         HEAP[$a_addr_i1_i_i_i_i_i_i] = $ref_tmp67_i_i_i_i_i_i;
  37776.                         HEAP[$b_addr_i2_i_i_i_i_i_i] = $ref_tmp68_i_i_i_i_i_i;
  37777.                         HEAP[$ref_tmp70_i_i_i_i_i_i] = HEAP[HEAP[$a_addr_i1_i_i_i_i_i_i]] >>> 0 > HEAP[HEAP[$b_addr_i2_i_i_i_i_i_i]] >>> 0 ? HEAP[HEAP[$a_addr_i1_i_i_i_i_i_i]] : HEAP[HEAP[$b_addr_i2_i_i_i_i_i_i]];
  37778.                         HEAP[$a_addr_i_i_i_i_i_i_i] = $ref_tmp70_i_i_i_i_i_i;
  37779.                         HEAP[$b_addr_i_i_i_i_i_i_i] = $last_num_components_i_i_i_i_i_i;
  37780.                         HEAP[$new_lig_comp61_i_i_i_i_i_i] = $sub62_i_i_i_i_i_i + (HEAP[HEAP[$a_addr_i_i_i_i_i_i_i]] >>> 0 < HEAP[HEAP[$b_addr_i_i_i_i_i_i_i]] >>> 0 ? HEAP[HEAP[$a_addr_i_i_i_i_i_i_i]] : HEAP[HEAP[$b_addr_i_i_i_i_i_i_i]]) | 0;
  37781.                         var $1422 = HEAP[$lig_id_i_i_i_i_i_i];
  37782.                         var $1423 = HEAP[$new_lig_comp61_i_i_i_i_i_i];
  37783.                         HEAP[$info_addr_i_i_i_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i50_i_i_i_i_i_i] * 20 & -1) | 0;
  37784.                         HEAP[$lig_id_addr_i_i_i_i_i_i_i] = $1422;
  37785.                         HEAP[$lig_comp_addr_i_i_i_i_i_i_i] = $1423;
  37786.                         HEAP[HEAP[$info_addr_i_i_i_i_i_i_i] + 15 | 0] = (HEAP[$lig_comp_addr_i_i_i_i_i_i_i] & 15 | HEAP[$lig_id_addr_i_i_i_i_i_i_i] << 5) & 255;
  37787.                         HEAP[$i50_i_i_i_i_i_i] = HEAP[$i50_i_i_i_i_i_i] + 1 | 0;
  37788.                         if (HEAP[$i50_i_i_i_i_i_i] >>> 0 >= HEAP[HEAP[HEAP[$c_addr_i_i_i_i_i_i] + 12 | 0] + 84 | 0] >>> 0) {
  37789.                           break L830;
  37790.                         }
  37791.                       }
  37792.                     }
  37793.                   } while (0);
  37794.                   var $tobool_i_i_i_i_i_i365 = 1;
  37795.                   HEAP[$retval_i_i_i_i_i263] = $tobool_i_i_i_i_i_i365;
  37796.                   var $1433 = $tobool_i_i_i_i_i_i365;
  37797.                 }
  37798.               } while (0);
  37799.               var $1433;
  37800.               if ($1433) {
  37801.                 break;
  37802.               }
  37803.               HEAP[$i_i_i_i_i269] = HEAP[$i_i_i_i_i269] + 1 | 0;
  37804.               if (HEAP[$i_i_i_i_i269] >>> 0 >= HEAP[$num_ligs_i_i_i_i] >>> 0) {
  37805.                 label = 672;
  37806.                 break L802;
  37807.               }
  37808.             }
  37809.             HEAP[$retval_i_i_i_i266] = 1;
  37810.             break;
  37811.           } else {
  37812.             label = 672;
  37813.           }
  37814.         } while (0);
  37815.         if (label == 672) {
  37816.           HEAP[$retval_i_i_i_i266] = 0;
  37817.         }
  37818.         HEAP[$retval_i_i_i271] = HEAP[$retval_i_i_i_i266] & 1;
  37819.       }
  37820.       HEAP[$retval_i282] = HEAP[$retval_i_i_i271] & 1;
  37821.     } else {
  37822.       HEAP[$retval_i282] = 0;
  37823.     }
  37824.     $retval = HEAP[$retval_i282] & 1;
  37825.     var $1741 = $retval;
  37826.     STACKTOP = __stackBase__;
  37827.     return $1741;
  37828.   } else if (($0 | 0) == 5) {
  37829.     $retval = __ZNK2OT7Context8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr) & 1;
  37830.     var $1741 = $retval;
  37831.     STACKTOP = __stackBase__;
  37832.     return $1741;
  37833.   } else if (($0 | 0) == 6) {
  37834.     $retval = __ZNK2OT12ChainContext8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_($this1 | 0, $c_addr) & 1;
  37835.     var $1741 = $retval;
  37836.     STACKTOP = __stackBase__;
  37837.     return $1741;
  37838.   } else if (($0 | 0) == 7) {
  37839.     HEAP[$this_addr_i521] = $this1 | 0;
  37840.     HEAP[$c_addr_i522] = $c_addr;
  37841.     var $this1_i523 = HEAP[$this_addr_i521];
  37842.     var $call_i = __ZNK2OT9ExtensionINS_14ExtensionSubstEE12get_subtableINS_19SubstLookupSubTableEEERKT_v($this1_i523);
  37843.     var $1476 = HEAP[$c_addr_i522];
  37844.     HEAP[$this_addr_i_i520] = $this1_i523;
  37845.     var $this1_i_i524 = HEAP[$this_addr_i_i520];
  37846.     HEAP[$this_addr_i_i_i519] = $this1_i_i524 | 0;
  37847.     HEAP[$this_addr_i_i_i_i518] = HEAP[$this_addr_i_i_i519] | 0;
  37848.     var $this1_i_i_i_i527 = HEAP[$this_addr_i_i_i_i518];
  37849.     if ((((HEAP[$this1_i_i_i_i527 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i527 + 1 | 0] & 255) & 65535 | 0) == 1) {
  37850.       HEAP[$this_addr_i2_i_i] = $this1_i_i524 | 0;
  37851.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] + 2 | 0;
  37852.       HEAP[$this_addr_i_i_i_i_i517] = HEAP[$this_addr_i_i1_i_i] | 0;
  37853.       var $this1_i_i_i_i_i531 = HEAP[$this_addr_i_i_i_i_i517];
  37854.       HEAP[$retval_i_i] = ((HEAP[$this1_i_i_i_i_i531 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i531 + 1 | 0] & 255) & 65535;
  37855.     } else {
  37856.       HEAP[$retval_i_i] = 0;
  37857.     }
  37858.     $retval = __ZNK2OT19SubstLookupSubTable8dispatchINS_18hb_apply_context_tEEENT_8return_tEPS3_j($call_i, $1476, HEAP[$retval_i_i]) & 1;
  37859.     var $1741 = $retval;
  37860.     STACKTOP = __stackBase__;
  37861.     return $1741;
  37862.   } else if (($0 | 0) == 8) {
  37863.     HEAP[$this_addr_i428] = $this1 | 0;
  37864.     HEAP[$c_addr_i429] = $c_addr;
  37865.     var $this1_i430 = HEAP[$this_addr_i428];
  37866.     HEAP[$this_addr_i4_i390] = $this1_i430 | 0;
  37867.     HEAP[$this_addr_i_i3_i389] = HEAP[$this_addr_i4_i390] | 0;
  37868.     var $this1_i_i6_i435 = HEAP[$this_addr_i_i3_i389];
  37869.     if ((((HEAP[$this1_i_i6_i435 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i435 + 1 | 0] & 255) & 65535 | 0) == 1) {
  37870.       HEAP[$this_addr_i_i423] = HEAP[$c_addr_i429];
  37871.       HEAP[$obj_addr_i_i424] = $this1_i430 | 0;
  37872.       var $this1_i_i449 = HEAP[$this_addr_i_i423];
  37873.       HEAP[$this_addr_i_i_i418] = HEAP[$obj_addr_i_i424];
  37874.       HEAP[$c_addr_i_i_i419] = $this1_i_i449;
  37875.       var $this1_i_i_i450 = HEAP[$this_addr_i_i_i418];
  37876.       HEAP[$this_addr_i3_i_i_i405] = HEAP[HEAP[$c_addr_i_i_i419] + 12 | 0];
  37877.       HEAP[$i_addr_i_i_i_i406] = 0;
  37878.       L910 : do {
  37879.         if ((HEAP[HEAP[$c_addr_i_i_i419] + 32 | 0] | 0) != 8) {
  37880.           HEAP[$retval_i_i_i417] = 0;
  37881.         } else {
  37882.           HEAP[$ref_tmp_i_i_i421] = $this1_i_i_i450;
  37883.           HEAP[$base_addr_i_i_i_i397] = $ref_tmp_i_i_i421;
  37884.           HEAP[$offset_addr_i_i_i_i398] = $this1_i_i_i450 + 2 | 0;
  37885.           var $1535 = HEAP[HEAP[$base_addr_i_i_i_i397]];
  37886.           HEAP[$this_addr_i_i89_i_i_i] = HEAP[$offset_addr_i_i_i_i398];
  37887.           HEAP[$base_addr_i_i_i_i_i395] = $1535;
  37888.           HEAP[$this_addr_i_i_i88_i_i_i] = HEAP[$this_addr_i_i89_i_i_i];
  37889.           HEAP[$this_addr_i_i_i_i87_i_i_i] = HEAP[$this_addr_i_i_i88_i_i_i] | 0;
  37890.           var $this1_i_i_i_i93_i_i_i = HEAP[$this_addr_i_i_i_i87_i_i_i];
  37891.           HEAP[$offset_i_i_i_i_i396] = ((HEAP[$this1_i_i_i_i93_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i93_i_i_i + 1 | 0] & 255) & 65535;
  37892.           if ((HEAP[$offset_i_i_i_i_i396] | 0) != 0) {
  37893.             var $1553 = HEAP[$offset_i_i_i_i_i396];
  37894.             HEAP[$P_addr_i_i_i_i_i_i392] = HEAP[$base_addr_i_i_i_i_i395];
  37895.             HEAP[$offset_addr_i_i_i_i_i_i393] = $1553;
  37896.             HEAP[$retval_i_i_i_i_i394] = HEAP[$P_addr_i_i_i_i_i_i392] + HEAP[$offset_addr_i_i_i_i_i_i393] | 0;
  37897.           } else {
  37898.             HEAP[$X_addr_i_i_i_i_i_i_i391] = 111704;
  37899.             HEAP[$retval_i_i_i_i_i394] = HEAP[$X_addr_i_i_i_i_i_i_i391];
  37900.           }
  37901.           var $1561 = HEAP[$retval_i_i_i_i_i394];
  37902.           HEAP[$this_addr_i106_i_i_i] = HEAP[HEAP[$c_addr_i_i_i419] + 12 | 0];
  37903.           HEAP[$i_addr_i107_i_i_i] = 0;
  37904.           var $this1_i108_i_i_i = HEAP[$this_addr_i106_i_i_i];
  37905.           var $call9_i_i_i = __ZNK2OT8Coverage12get_coverageEj($1561, HEAP[HEAP[$this1_i108_i_i_i + 96 | 0] + ((HEAP[$i_addr_i107_i_i_i] + HEAP[$this1_i108_i_i_i + 80 | 0]) * 20 & -1) | 0]);
  37906.           HEAP[$index_i_i_i420] = $call9_i_i_i;
  37907.           if (($call9_i_i_i | 0) == -1) {
  37908.             HEAP[$retval_i_i_i417] = 0;
  37909.             break;
  37910.           }
  37911.           HEAP[$X_addr_i66_i_i_i] = $this1_i_i_i450 + 4 | 0;
  37912.           var $1581 = HEAP[$X_addr_i66_i_i_i];
  37913.           HEAP[$this_addr_i_i65_i_i_i] = HEAP[$X_addr_i66_i_i_i];
  37914.           HEAP[$this_addr_i_i_i64_i_i_i] = HEAP[$this_addr_i_i65_i_i_i] | 0;
  37915.           HEAP[$this_addr_i_i_i_i63_i_i_i] = HEAP[$this_addr_i_i_i64_i_i_i] | 0;
  37916.           var $this1_i_i_i_i71_i_i_i = HEAP[$this_addr_i_i_i_i63_i_i_i];
  37917.           var $add_i_i83_i_i_i = ((((HEAP[$this1_i_i_i_i71_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i71_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  37918.           HEAP[$P_addr_i_i61_i_i_i] = $1581;
  37919.           HEAP[$offset_addr_i_i62_i_i_i] = $add_i_i83_i_i_i;
  37920.           HEAP[$lookahead_i_i_i] = HEAP[$P_addr_i_i61_i_i_i] + HEAP[$offset_addr_i_i62_i_i_i] | 0;
  37921.           HEAP[$X_addr_i_i_i_i] = HEAP[$lookahead_i_i_i];
  37922.           var $1603 = HEAP[$X_addr_i_i_i_i];
  37923.           HEAP[$this_addr_i_i55_i_i_i] = HEAP[$X_addr_i_i_i_i];
  37924.           HEAP[$this_addr_i_i_i54_i_i_i] = HEAP[$this_addr_i_i55_i_i_i] | 0;
  37925.           HEAP[$this_addr_i_i_i_i_i_i_i400] = HEAP[$this_addr_i_i_i54_i_i_i] | 0;
  37926.           var $this1_i_i_i_i_i_i_i459 = HEAP[$this_addr_i_i_i_i_i_i_i400];
  37927.           var $add_i_i60_i_i_i = ((((HEAP[$this1_i_i_i_i_i_i_i459 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i459 + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  37928.           HEAP[$P_addr_i_i_i_i_i] = $1603;
  37929.           HEAP[$offset_addr_i_i_i_i_i399] = $add_i_i60_i_i_i;
  37930.           HEAP[$substitute_i_i_i422] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i399] | 0;
  37931.           var $1622 = HEAP[$c_addr_i_i_i419];
  37932.           HEAP[$this_addr_i41_i_i_i] = $this1_i_i_i450 + 4 | 0;
  37933.           HEAP[$this_addr_i_i40_i_i_i] = HEAP[$this_addr_i41_i_i_i] | 0;
  37934.           var $this1_i_i44_i_i_i = HEAP[$this_addr_i_i40_i_i_i];
  37935.           do {
  37936.             if (__ZN2OTL15match_backtrackEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_($1622, ((HEAP[$this1_i_i44_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i44_i_i_i + 1 | 0] & 255) & 65535, $this1_i_i_i450 + 6 | 0, 114, $this1_i_i_i450)) {
  37937.               var $1633 = HEAP[$c_addr_i_i_i419];
  37938.               HEAP[$this_addr_i25_i_i_i] = HEAP[$lookahead_i_i_i] | 0;
  37939.               HEAP[$this_addr_i_i24_i_i_i] = HEAP[$this_addr_i25_i_i_i] | 0;
  37940.               var $this1_i_i28_i_i_i = HEAP[$this_addr_i_i24_i_i_i];
  37941.               if (!__ZN2OTL15match_lookaheadEPNS_18hb_apply_context_tEjPKNS_7IntTypeItLj2EEEPFbjRS4_PKvES8_j($1633, ((HEAP[$this1_i_i28_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i28_i_i_i + 1 | 0] & 255) & 65535, HEAP[$lookahead_i_i_i] + 2 | 0, 114, $this1_i_i_i450, 1)) {
  37942.                 break;
  37943.               }
  37944.               var $1646 = HEAP[$c_addr_i_i_i419];
  37945.               var $1649 = HEAP[$index_i_i_i420];
  37946.               HEAP[$this_addr_i15_i_i_i] = HEAP[$substitute_i_i_i422];
  37947.               HEAP[$i_addr_i16_i_i_i] = $1649;
  37948.               var $this1_i17_i_i_i = HEAP[$this_addr_i15_i_i_i];
  37949.               var $1653 = HEAP[$i_addr_i16_i_i_i];
  37950.               HEAP[$this_addr_i_i14_i_i_i402] = $this1_i17_i_i_i | 0;
  37951.               HEAP[$this_addr_i_i_i13_i_i_i] = HEAP[$this_addr_i_i14_i_i_i402] | 0;
  37952.               var $this1_i_i_i20_i_i_i = HEAP[$this_addr_i_i_i13_i_i_i];
  37953.               if ($1653 >>> 0 >= (((HEAP[$this1_i_i_i20_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i20_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  37954.                 HEAP[$X_addr_i_i_i_i_i_i401] = 111704;
  37955.                 HEAP[$retval_i_i_i_i403] = HEAP[$X_addr_i_i_i_i_i_i401];
  37956.               } else {
  37957.                 HEAP[$retval_i_i_i_i403] = (HEAP[$i_addr_i16_i_i_i] << 1) + $this1_i17_i_i_i + 2 | 0;
  37958.               }
  37959.               HEAP[$this_addr_i6_i_i_i] = HEAP[$retval_i_i_i_i403];
  37960.               HEAP[$this_addr_i_i5_i_i_i404] = HEAP[$this_addr_i6_i_i_i] | 0;
  37961.               var $this1_i_i8_i_i_i485 = HEAP[$this_addr_i_i5_i_i_i404];
  37962.               var $conv29_i_i_i = ((HEAP[$this1_i_i8_i_i_i485 | 0] & 255) << 8) + (HEAP[$this1_i_i8_i_i_i485 + 1 | 0] & 255) & 65535;
  37963.               HEAP[$this_addr_i_i_i_i415] = $1646;
  37964.               HEAP[$glyph_index_addr_i_i_i_i] = $conv29_i_i_i;
  37965.               HEAP[$class_guess_addr_i_i_i_i] = 0;
  37966.               var $this1_i_i_i_i491 = HEAP[$this_addr_i_i_i_i415];
  37967.               var $1678 = HEAP[$glyph_index_addr_i_i_i_i];
  37968.               var $1679 = HEAP[$class_guess_addr_i_i_i_i];
  37969.               HEAP[$this_addr_i_i_i_i_i412] = $this1_i_i_i_i491;
  37970.               HEAP[$glyph_index_addr_i_i_i_i_i413] = $1678;
  37971.               HEAP[$class_guess_addr_i_i_i_i_i414] = $1679;
  37972.               var $this1_i_i_i_i_i492 = HEAP[$this_addr_i_i_i_i_i412];
  37973.               do {
  37974.                 if (HEAP[$this1_i_i_i_i_i492 + 44 | 0] & 1) {
  37975.                   var $conv_i_i_i_i_i495 = __ZNK2OT4GDEF15get_glyph_propsEj(HEAP[$this1_i_i_i_i_i492 + 40 | 0], HEAP[$glyph_index_addr_i_i_i_i_i413]) & 65535;
  37976.                   HEAP[$this_addr_i_i_i_i_i_i410] = HEAP[$this1_i_i_i_i_i492 + 12 | 0];
  37977.                   HEAP[$i_addr_i_i_i_i_i_i411] = 0;
  37978.                   var $this1_i_i_i_i_i_i497 = HEAP[$this_addr_i_i_i_i_i_i410];
  37979.                   HEAP[HEAP[$this1_i_i_i_i_i_i497 + 96 | 0] + ((HEAP[$i_addr_i_i_i_i_i_i411] + HEAP[$this1_i_i_i_i_i_i497 + 80 | 0]) * 20 & -1) + 12 | 0] = $conv_i_i_i_i_i495;
  37980.                 } else {
  37981.                   if ((HEAP[$class_guess_addr_i_i_i_i_i414] | 0) == 0) {
  37982.                     break;
  37983.                   }
  37984.                   var $conv5_i_i_i_i_i504 = HEAP[$class_guess_addr_i_i_i_i_i414] & 65535;
  37985.                   HEAP[$this_addr_i1_i_i_i_i_i409] = HEAP[$this1_i_i_i_i_i492 + 12 | 0];
  37986.                   HEAP[$i_addr_i2_i_i_i_i_i] = 0;
  37987.                   var $this1_i3_i_i_i_i_i505 = HEAP[$this_addr_i1_i_i_i_i_i409];
  37988.                   HEAP[HEAP[$this1_i3_i_i_i_i_i505 + 96 | 0] + ((HEAP[$i_addr_i2_i_i_i_i_i] + HEAP[$this1_i3_i_i_i_i_i505 + 80 | 0]) * 20 & -1) + 12 | 0] = $conv5_i_i_i_i_i504;
  37989.                 }
  37990.               } while (0);
  37991.               var $1706 = HEAP[$glyph_index_addr_i_i_i_i];
  37992.               HEAP[$this_addr_i1_i_i_i_i407] = HEAP[$this1_i_i_i_i491 + 12 | 0];
  37993.               HEAP[$i_addr_i_i_i_i_i408] = 0;
  37994.               var $this1_i2_i_i_i_i506 = HEAP[$this_addr_i1_i_i_i_i407];
  37995.               HEAP[HEAP[$this1_i2_i_i_i_i506 + 96 | 0] + ((HEAP[$i_addr_i_i_i_i_i408] + HEAP[$this1_i2_i_i_i_i506 + 80 | 0]) * 20 & -1) | 0] = $1706;
  37996.               var $idx31_i_i_i = HEAP[HEAP[$c_addr_i_i_i419] + 12 | 0] + 80 | 0;
  37997.               HEAP[$idx31_i_i_i] = HEAP[$idx31_i_i_i] - 1 | 0;
  37998.               HEAP[$retval_i_i_i417] = 1;
  37999.               break L910;
  38000.             }
  38001.           } while (0);
  38002.           HEAP[$retval_i_i_i417] = 0;
  38003.         }
  38004.       } while (0);
  38005.       HEAP[$retval_i427] = HEAP[$retval_i_i_i417] & 1;
  38006.     } else {
  38007.       HEAP[$retval_i427] = 0;
  38008.     }
  38009.     $retval = HEAP[$retval_i427] & 1;
  38010.     var $1741 = $retval;
  38011.     STACKTOP = __stackBase__;
  38012.     return $1741;
  38013.   } else {
  38014.     $retval = 0;
  38015.     var $1741 = $retval;
  38016.     STACKTOP = __stackBase__;
  38017.     return $1741;
  38018.   }
  38019. }
  38020. function __ZNK2OT4GDEF15get_glyph_propsEj($this, $glyph) {
  38021.   var __stackBase__ = STACKTOP;
  38022.   STACKTOP = STACKTOP + 112 | 0;
  38023.   var $X_addr_i_i_i_i_i1 = __stackBase__;
  38024.   var $P_addr_i_i_i_i2 = __stackBase__ + 4;
  38025.   var $offset_addr_i_i_i_i3 = __stackBase__ + 8;
  38026.   var $this_addr_i_i_i_i_i4 = __stackBase__ + 12;
  38027.   var $this_addr_i_i_i_i5 = __stackBase__ + 16;
  38028.   var $retval_i_i_i6 = __stackBase__ + 20;
  38029.   var $this_addr_i_i_i7 = __stackBase__ + 24;
  38030.   var $base_addr_i_i_i8 = __stackBase__ + 28;
  38031.   var $offset_i_i_i9 = __stackBase__ + 32;
  38032.   var $base_addr_i_i10 = __stackBase__ + 36;
  38033.   var $offset_addr_i_i11 = __stackBase__ + 40;
  38034.   var $this_addr_i12 = __stackBase__ + 44;
  38035.   var $glyph_addr_i13 = __stackBase__ + 48;
  38036.   var $ref_tmp_i14 = __stackBase__ + 52;
  38037.   var $X_addr_i_i_i_i_i = __stackBase__ + 56;
  38038.   var $P_addr_i_i_i_i = __stackBase__ + 60;
  38039.   var $offset_addr_i_i_i_i = __stackBase__ + 64;
  38040.   var $this_addr_i_i_i_i_i = __stackBase__ + 68;
  38041.   var $this_addr_i_i_i_i = __stackBase__ + 72;
  38042.   var $retval_i_i_i = __stackBase__ + 76;
  38043.   var $this_addr_i_i_i = __stackBase__ + 80;
  38044.   var $base_addr_i_i_i = __stackBase__ + 84;
  38045.   var $offset_i_i_i = __stackBase__ + 88;
  38046.   var $base_addr_i_i = __stackBase__ + 92;
  38047.   var $offset_addr_i_i = __stackBase__ + 96;
  38048.   var $this_addr_i = __stackBase__ + 100;
  38049.   var $glyph_addr_i = __stackBase__ + 104;
  38050.   var $ref_tmp_i = __stackBase__ + 108;
  38051.   var $retval;
  38052.   var $glyph_addr;
  38053.   var $klass;
  38054.   $glyph_addr = $glyph;
  38055.   var $this1 = $this;
  38056.   HEAP[$this_addr_i] = $this1;
  38057.   HEAP[$glyph_addr_i] = $glyph_addr;
  38058.   var $this1_i = HEAP[$this_addr_i];
  38059.   HEAP[$ref_tmp_i] = $this1_i;
  38060.   HEAP[$base_addr_i_i] = $ref_tmp_i;
  38061.   HEAP[$offset_addr_i_i] = $this1_i + 4 | 0;
  38062.   var $10 = HEAP[HEAP[$base_addr_i_i]];
  38063.   HEAP[$this_addr_i_i_i] = HEAP[$offset_addr_i_i];
  38064.   HEAP[$base_addr_i_i_i] = $10;
  38065.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i];
  38066.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  38067.   var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  38068.   HEAP[$offset_i_i_i] = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  38069.   if ((HEAP[$offset_i_i_i] | 0) != 0) {
  38070.     var $28 = HEAP[$offset_i_i_i];
  38071.     HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  38072.     HEAP[$offset_addr_i_i_i_i] = $28;
  38073.     HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  38074.   } else {
  38075.     HEAP[$X_addr_i_i_i_i_i] = 111704;
  38076.     HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  38077.   }
  38078.   var $call2_i = __ZNK2OT8ClassDef9get_classEj(HEAP[$retval_i_i_i], HEAP[$glyph_addr_i]);
  38079.   $klass = $call2_i;
  38080.   if (($call2_i | 0) == 3) {
  38081.     HEAP[$this_addr_i12] = $this1;
  38082.     HEAP[$glyph_addr_i13] = $glyph_addr;
  38083.     var $this1_i15 = HEAP[$this_addr_i12];
  38084.     HEAP[$ref_tmp_i14] = $this1_i15;
  38085.     HEAP[$base_addr_i_i10] = $ref_tmp_i14;
  38086.     HEAP[$offset_addr_i_i11] = $this1_i15 + 10 | 0;
  38087.     var $57 = HEAP[HEAP[$base_addr_i_i10]];
  38088.     HEAP[$this_addr_i_i_i7] = HEAP[$offset_addr_i_i11];
  38089.     HEAP[$base_addr_i_i_i8] = $57;
  38090.     HEAP[$this_addr_i_i_i_i5] = HEAP[$this_addr_i_i_i7];
  38091.     HEAP[$this_addr_i_i_i_i_i4] = HEAP[$this_addr_i_i_i_i5] | 0;
  38092.     var $this1_i_i_i_i_i19 = HEAP[$this_addr_i_i_i_i_i4];
  38093.     HEAP[$offset_i_i_i9] = ((HEAP[$this1_i_i_i_i_i19 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i19 + 1 | 0] & 255) & 65535;
  38094.     if ((HEAP[$offset_i_i_i9] | 0) != 0) {
  38095.       var $75 = HEAP[$offset_i_i_i9];
  38096.       HEAP[$P_addr_i_i_i_i2] = HEAP[$base_addr_i_i_i8];
  38097.       HEAP[$offset_addr_i_i_i_i3] = $75;
  38098.       HEAP[$retval_i_i_i6] = HEAP[$P_addr_i_i_i_i2] + HEAP[$offset_addr_i_i_i_i3] | 0;
  38099.     } else {
  38100.       HEAP[$X_addr_i_i_i_i_i1] = 111704;
  38101.       HEAP[$retval_i_i_i6] = HEAP[$X_addr_i_i_i_i_i1];
  38102.     }
  38103.     $klass = __ZNK2OT8ClassDef9get_classEj(HEAP[$retval_i_i_i6], HEAP[$glyph_addr_i13]);
  38104.     $retval = $klass << 8 | 8;
  38105.     var $95 = $retval;
  38106.     STACKTOP = __stackBase__;
  38107.     return $95;
  38108.   } else if (($call2_i | 0) == 1) {
  38109.     $retval = 2;
  38110.     var $95 = $retval;
  38111.     STACKTOP = __stackBase__;
  38112.     return $95;
  38113.   } else if (($call2_i | 0) == 2) {
  38114.     $retval = 4;
  38115.     var $95 = $retval;
  38116.     STACKTOP = __stackBase__;
  38117.     return $95;
  38118.   } else if (($call2_i | 0) == 4) {
  38119.     $retval = 16;
  38120.     var $95 = $retval;
  38121.     STACKTOP = __stackBase__;
  38122.     return $95;
  38123.   } else {
  38124.     $retval = 1;
  38125.     var $95 = $retval;
  38126.     STACKTOP = __stackBase__;
  38127.     return $95;
  38128.   }
  38129. }
  38130. function __ZL15allocate_lig_idP11hb_buffer_t($buffer) {
  38131.   var __stackBase__ = STACKTOP;
  38132.   STACKTOP = STACKTOP + 4 | 0;
  38133.   var $this_addr_i = __stackBase__;
  38134.   var $buffer_addr;
  38135.   var $lig_id;
  38136.   $buffer_addr = $buffer;
  38137.   HEAP[$this_addr_i] = $buffer_addr;
  38138.   var $serial_i = HEAP[$this_addr_i] + 108 | 0;
  38139.   var $2 = HEAP[$serial_i];
  38140.   HEAP[$serial_i] = $2 + 1 | 0;
  38141.   $lig_id = $2 & 7;
  38142.   if ($lig_id << 24 >> 24 != 0) {
  38143.     var $6 = $lig_id;
  38144.     STACKTOP = __stackBase__;
  38145.     return $6;
  38146.   }
  38147.   $lig_id = __ZL15allocate_lig_idP11hb_buffer_t($buffer_addr);
  38148.   var $6 = $lig_id;
  38149.   STACKTOP = __stackBase__;
  38150.   return $6;
  38151. }
  38152. function __ZNK2OT18hb_apply_context_t13replace_glyphEjj($this, $glyph_index, $class_guess) {
  38153.   var label = 0;
  38154.   var __stackBase__ = STACKTOP;
  38155.   STACKTOP = STACKTOP + 36 | 0;
  38156.   var $this_addr_i1 = __stackBase__;
  38157.   var $glyph_index_addr_i2 = __stackBase__ + 4;
  38158.   var $this_addr_i1_i = __stackBase__ + 8;
  38159.   var $i_addr_i2_i = __stackBase__ + 12;
  38160.   var $this_addr_i_i = __stackBase__ + 16;
  38161.   var $i_addr_i_i = __stackBase__ + 20;
  38162.   var $this_addr_i = __stackBase__ + 24;
  38163.   var $glyph_index_addr_i = __stackBase__ + 28;
  38164.   var $class_guess_addr_i = __stackBase__ + 32;
  38165.   var $glyph_index_addr;
  38166.   $glyph_index_addr = $glyph_index;
  38167.   var $this1 = $this;
  38168.   HEAP[$this_addr_i] = $this1;
  38169.   HEAP[$glyph_index_addr_i] = $glyph_index_addr;
  38170.   HEAP[$class_guess_addr_i] = $class_guess;
  38171.   var $this1_i = HEAP[$this_addr_i];
  38172.   do {
  38173.     if (HEAP[$this1_i + 44 | 0] & 1) {
  38174.       var $conv_i = __ZNK2OT4GDEF15get_glyph_propsEj(HEAP[$this1_i + 40 | 0], HEAP[$glyph_index_addr_i]) & 65535;
  38175.       HEAP[$this_addr_i_i] = HEAP[$this1_i + 12 | 0];
  38176.       HEAP[$i_addr_i_i] = 0;
  38177.       var $this1_i_i = HEAP[$this_addr_i_i];
  38178.       HEAP[HEAP[$this1_i_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i_i + 80 | 0]) * 20 & -1) + 12 | 0] = $conv_i;
  38179.     } else {
  38180.       if ((HEAP[$class_guess_addr_i] | 0) == 0) {
  38181.         break;
  38182.       }
  38183.       var $conv5_i = HEAP[$class_guess_addr_i] & 65535;
  38184.       HEAP[$this_addr_i1_i] = HEAP[$this1_i + 12 | 0];
  38185.       HEAP[$i_addr_i2_i] = 0;
  38186.       var $this1_i3_i = HEAP[$this_addr_i1_i];
  38187.       HEAP[HEAP[$this1_i3_i + 96 | 0] + ((HEAP[$i_addr_i2_i] + HEAP[$this1_i3_i + 80 | 0]) * 20 & -1) + 12 | 0] = $conv5_i;
  38188.     }
  38189.   } while (0);
  38190.   HEAP[$this_addr_i1] = HEAP[$this1 + 12 | 0];
  38191.   HEAP[$glyph_index_addr_i2] = $glyph_index_addr;
  38192.   var $this1_i3 = HEAP[$this_addr_i1];
  38193.   do {
  38194.     if ((HEAP[$this1_i3 + 100 | 0] | 0) != (HEAP[$this1_i3 + 96 | 0] | 0)) {
  38195.       label = 745;
  38196.     } else {
  38197.       if ((HEAP[$this1_i3 + 88 | 0] | 0) != (HEAP[$this1_i3 + 80 | 0] | 0)) {
  38198.         label = 745;
  38199.         break;
  38200.       } else {
  38201.         break;
  38202.       }
  38203.     }
  38204.   } while (0);
  38205.   do {
  38206.     if (label == 745) {
  38207.       if (__ZN11hb_buffer_t13make_room_forEjj($this1_i3, 1, 1)) {
  38208.         var $40 = HEAP[$this1_i3 + 100 | 0] + (HEAP[$this1_i3 + 88 | 0] * 20 & -1) | 0;
  38209.         var $41 = HEAP[$this1_i3 + 96 | 0] + (HEAP[$this1_i3 + 80 | 0] * 20 & -1) | 0;
  38210.         for (var $$src = $41, $$dest = $40, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  38211.           HEAP[$$dest] = HEAP[$$src];
  38212.         }
  38213.         break;
  38214.       } else {
  38215.         var $47 = $this_addr_i1;
  38216.         var $48 = $glyph_index_addr_i2;
  38217.         STACKTOP = __stackBase__;
  38218.         return;
  38219.       }
  38220.     }
  38221.   } while (0);
  38222.   HEAP[HEAP[$this1_i3 + 100 | 0] + (HEAP[$this1_i3 + 88 | 0] * 20 & -1) | 0] = HEAP[$glyph_index_addr_i2];
  38223.   var $idx13_i = $this1_i3 + 80 | 0;
  38224.   HEAP[$idx13_i] = HEAP[$idx13_i] + 1 | 0;
  38225.   var $out_len14_i = $this1_i3 + 88 | 0;
  38226.   HEAP[$out_len14_i] = HEAP[$out_len14_i] + 1 | 0;
  38227.   var $47 = $this_addr_i1;
  38228.   var $48 = $glyph_index_addr_i2;
  38229.   STACKTOP = __stackBase__;
  38230.   return;
  38231. }
  38232. function __ZNK2OT14ExtensionSubst10is_reverseEv($this) {
  38233.   var __stackBase__ = STACKTOP;
  38234.   STACKTOP = STACKTOP + 36 | 0;
  38235.   var $lookup_type_addr_i = __stackBase__;
  38236.   var $X_addr_i = __stackBase__ + 4;
  38237.   var $this_addr_i_i_i_i = __stackBase__ + 8;
  38238.   var $this_addr_i_i1_i = __stackBase__ + 12;
  38239.   var $this_addr_i2_i = __stackBase__ + 16;
  38240.   var $this_addr_i_i_i = __stackBase__ + 20;
  38241.   var $this_addr_i_i = __stackBase__ + 24;
  38242.   var $retval_i = __stackBase__ + 28;
  38243.   var $this_addr_i = __stackBase__ + 32;
  38244.   var $retval;
  38245.   var $type;
  38246.   var $this1 = $this;
  38247.   HEAP[$this_addr_i] = $this1;
  38248.   var $this1_i = HEAP[$this_addr_i];
  38249.   HEAP[$this_addr_i_i] = $this1_i | 0;
  38250.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  38251.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  38252.   do {
  38253.     if ((((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  38254.       HEAP[$this_addr_i2_i] = $this1_i | 0;
  38255.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] + 2 | 0;
  38256.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i1_i] | 0;
  38257.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  38258.       var $conv_i_i = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  38259.       HEAP[$retval_i] = $conv_i_i;
  38260.       $type = $conv_i_i;
  38261.       if (($conv_i_i | 0) != 7) {
  38262.         break;
  38263.       }
  38264.       var $call2 = __ZNK2OT9ExtensionINS_14ExtensionSubstEE12get_subtableINS_19SubstLookupSubTableEEERKT_v($this1);
  38265.       HEAP[$X_addr_i] = $call2;
  38266.       $retval = __ZNK2OT14ExtensionSubst10is_reverseEv(HEAP[$X_addr_i]);
  38267.       var $30 = $retval;
  38268.       STACKTOP = __stackBase__;
  38269.       return $30;
  38270.     } else {
  38271.       HEAP[$retval_i] = 0;
  38272.       $type = 0;
  38273.     }
  38274.   } while (0);
  38275.   HEAP[$lookup_type_addr_i] = $type;
  38276.   $retval = (HEAP[$lookup_type_addr_i] | 0) == 8;
  38277.   var $30 = $retval;
  38278.   STACKTOP = __stackBase__;
  38279.   return $30;
  38280. }
  38281. function __ZNK2OT19SubstLookupSubTable8dispatchINS_24hb_would_apply_context_tEEENT_8return_tEPS3_j($this, $c, $lookup_type) {
  38282.   var label = 0;
  38283.   var __stackBase__ = STACKTOP;
  38284.   STACKTOP = STACKTOP + 1759 | 0;
  38285.   var $this_addr_i_i_i_i_i588 = __stackBase__;
  38286.   var $this_addr_i_i1_i_i = __stackBase__ + 4;
  38287.   var $this_addr_i2_i_i = __stackBase__ + 8;
  38288.   var $this_addr_i_i_i_i589 = __stackBase__ + 12;
  38289.   var $this_addr_i_i_i590 = __stackBase__ + 16;
  38290.   var $retval_i_i = __stackBase__ + 20;
  38291.   var $this_addr_i_i591 = __stackBase__ + 24;
  38292.   var $this_addr_i592 = __stackBase__ + 28;
  38293.   var $c_addr_i593 = __stackBase__ + 32;
  38294.   var $this_addr_i_i3_i508 = __stackBase__ + 36;
  38295.   var $this_addr_i4_i509 = __stackBase__ + 40;
  38296.   var $X_addr_i_i_i_i_i_i_i510 = __stackBase__ + 44;
  38297.   var $P_addr_i_i_i_i_i_i511 = __stackBase__ + 48;
  38298.   var $offset_addr_i_i_i_i_i_i512 = __stackBase__ + 52;
  38299.   var $this_addr_i_i_i_i_i_i_i513 = __stackBase__ + 56;
  38300.   var $this_addr_i_i_i_i_i_i514 = __stackBase__ + 60;
  38301.   var $retval_i_i_i_i_i515 = __stackBase__ + 64;
  38302.   var $this_addr_i_i_i_i_i516 = __stackBase__ + 68;
  38303.   var $base_addr_i_i_i_i_i517 = __stackBase__ + 72;
  38304.   var $offset_i_i_i_i_i518 = __stackBase__ + 76;
  38305.   var $base_addr_i_i_i_i519 = __stackBase__ + 80;
  38306.   var $offset_addr_i_i_i_i520 = __stackBase__ + 84;
  38307.   var $this_addr_i_i_i522 = __stackBase__ + 88;
  38308.   var $c_addr_i_i_i523 = __stackBase__ + 92;
  38309.   var $ref_tmp_i_i_i524 = __stackBase__ + 96;
  38310.   var $this_addr_i_i525 = __stackBase__ + 100;
  38311.   var $obj_addr_i_i526 = __stackBase__ + 104;
  38312.   var $retval_i529 = __stackBase__ + 108;
  38313.   var $this_addr_i530 = __stackBase__ + 109;
  38314.   var $c_addr_i531 = __stackBase__ + 113;
  38315.   var $X_addr_i_i_i_i6_i_i46_i = __stackBase__ + 117;
  38316.   var $P_addr_i_i_i7_i_i47_i = __stackBase__ + 121;
  38317.   var $offset_addr_i_i_i8_i_i48_i = __stackBase__ + 125;
  38318.   var $this_addr_i_i_i_i9_i_i49_i = __stackBase__ + 129;
  38319.   var $this_addr_i_i_i10_i_i50_i = __stackBase__ + 133;
  38320.   var $retval_i_i11_i_i51_i = __stackBase__ + 137;
  38321.   var $this_addr_i_i12_i_i52_i = __stackBase__ + 141;
  38322.   var $base_addr_i_i13_i_i53_i = __stackBase__ + 145;
  38323.   var $offset_i_i14_i_i54_i = __stackBase__ + 149;
  38324.   var $base_addr_i15_i_i55_i = __stackBase__ + 153;
  38325.   var $offset_addr_i16_i_i56_i = __stackBase__ + 157;
  38326.   var $X_addr_i_i_i_i_i57_i = __stackBase__ + 161;
  38327.   var $this_addr_i_i_i1_i_i58_i = __stackBase__ + 165;
  38328.   var $this_addr_i_i2_i_i59_i = __stackBase__ + 169;
  38329.   var $retval_i_i_i60_i = __stackBase__ + 173;
  38330.   var $this_addr_i_i_i61_i = __stackBase__ + 177;
  38331.   var $i_addr_i_i_i62_i = __stackBase__ + 181;
  38332.   var $X_addr_i_i_i_i_i_i63_i = __stackBase__ + 185;
  38333.   var $P_addr_i_i_i_i_i64_i = __stackBase__ + 189;
  38334.   var $offset_addr_i_i_i_i_i65_i = __stackBase__ + 193;
  38335.   var $this_addr_i_i_i_i_i_i66_i = __stackBase__ + 197;
  38336.   var $this_addr_i_i_i_i_i67_i = __stackBase__ + 201;
  38337.   var $retval_i_i_i_i68_i = __stackBase__ + 205;
  38338.   var $this_addr_i_i_i_i69_i = __stackBase__ + 209;
  38339.   var $base_addr_i_i_i_i70_i = __stackBase__ + 213;
  38340.   var $offset_i_i_i_i71_i = __stackBase__ + 217;
  38341.   var $base_addr_i_i_i72_i = __stackBase__ + 221;
  38342.   var $offset_addr_i_i_i73_i = __stackBase__ + 225;
  38343.   var $this_addr_i_i75_i = __stackBase__ + 229;
  38344.   var $c_addr_i_i76_i = __stackBase__ + 233;
  38345.   var $rule_set_i_i77_i = __stackBase__ + 237;
  38346.   var $ref_tmp_i_i78_i = __stackBase__ + 241;
  38347.   var $ref_tmp2_i_i_i345 = __stackBase__ + 245;
  38348.   var $lookup_context_i_i79_i = __stackBase__ + 249;
  38349.   var $this_addr_i80_i = __stackBase__ + 265;
  38350.   var $obj_addr_i81_i = __stackBase__ + 269;
  38351.   var $this_addr_i_i41_i = __stackBase__ + 273;
  38352.   var $this_addr_i42_i = __stackBase__ + 277;
  38353.   var $X_addr_i_i_i_i65_i_i_i = __stackBase__ + 281;
  38354.   var $P_addr_i_i_i66_i_i_i = __stackBase__ + 285;
  38355.   var $offset_addr_i_i_i67_i_i_i = __stackBase__ + 289;
  38356.   var $this_addr_i_i_i_i68_i_i_i = __stackBase__ + 293;
  38357.   var $this_addr_i_i_i69_i_i_i = __stackBase__ + 297;
  38358.   var $retval_i_i70_i_i_i = __stackBase__ + 301;
  38359.   var $this_addr_i_i71_i_i_i = __stackBase__ + 305;
  38360.   var $base_addr_i_i72_i_i_i = __stackBase__ + 309;
  38361.   var $offset_i_i73_i_i_i = __stackBase__ + 313;
  38362.   var $base_addr_i74_i_i_i = __stackBase__ + 317;
  38363.   var $offset_addr_i75_i_i_i = __stackBase__ + 321;
  38364.   var $X_addr_i_i_i_i35_i_i_i = __stackBase__ + 325;
  38365.   var $P_addr_i_i_i36_i_i_i = __stackBase__ + 329;
  38366.   var $offset_addr_i_i_i37_i_i_i = __stackBase__ + 333;
  38367.   var $this_addr_i_i_i_i38_i_i_i = __stackBase__ + 337;
  38368.   var $this_addr_i_i_i39_i_i_i = __stackBase__ + 341;
  38369.   var $retval_i_i40_i_i_i = __stackBase__ + 345;
  38370.   var $this_addr_i_i41_i_i_i = __stackBase__ + 349;
  38371.   var $base_addr_i_i42_i_i_i = __stackBase__ + 353;
  38372.   var $offset_i_i43_i_i_i = __stackBase__ + 357;
  38373.   var $base_addr_i44_i_i_i = __stackBase__ + 361;
  38374.   var $offset_addr_i45_i_i_i = __stackBase__ + 365;
  38375.   var $X_addr_i_i_i_i6_i_i_i346 = __stackBase__ + 369;
  38376.   var $P_addr_i_i_i7_i_i_i347 = __stackBase__ + 373;
  38377.   var $offset_addr_i_i_i8_i_i_i348 = __stackBase__ + 377;
  38378.   var $this_addr_i_i_i_i9_i_i_i349 = __stackBase__ + 381;
  38379.   var $this_addr_i_i_i10_i_i_i350 = __stackBase__ + 385;
  38380.   var $retval_i_i11_i_i_i351 = __stackBase__ + 389;
  38381.   var $this_addr_i_i12_i_i_i352 = __stackBase__ + 393;
  38382.   var $base_addr_i_i13_i_i_i353 = __stackBase__ + 397;
  38383.   var $offset_i_i14_i_i_i354 = __stackBase__ + 401;
  38384.   var $base_addr_i15_i_i_i355 = __stackBase__ + 405;
  38385.   var $offset_addr_i16_i_i_i356 = __stackBase__ + 409;
  38386.   var $X_addr_i_i_i_i_i_i357 = __stackBase__ + 413;
  38387.   var $this_addr_i_i_i1_i_i_i358 = __stackBase__ + 417;
  38388.   var $this_addr_i_i2_i_i_i359 = __stackBase__ + 421;
  38389.   var $retval_i_i_i_i360 = __stackBase__ + 425;
  38390.   var $this_addr_i_i_i6_i = __stackBase__ + 429;
  38391.   var $i_addr_i_i_i_i361 = __stackBase__ + 433;
  38392.   var $X_addr_i_i_i_i_i_i_i362 = __stackBase__ + 437;
  38393.   var $P_addr_i_i_i_i_i_i363 = __stackBase__ + 441;
  38394.   var $offset_addr_i_i_i_i_i_i364 = __stackBase__ + 445;
  38395.   var $this_addr_i_i_i_i_i_i7_i = __stackBase__ + 449;
  38396.   var $this_addr_i_i_i_i_i8_i = __stackBase__ + 453;
  38397.   var $retval_i_i_i_i_i365 = __stackBase__ + 457;
  38398.   var $this_addr_i_i_i_i9_i366 = __stackBase__ + 461;
  38399.   var $base_addr_i_i_i_i_i367 = __stackBase__ + 465;
  38400.   var $offset_i_i_i_i_i368 = __stackBase__ + 469;
  38401.   var $base_addr_i_i_i_i369 = __stackBase__ + 473;
  38402.   var $offset_addr_i_i_i_i370 = __stackBase__ + 477;
  38403.   var $this_addr_i_i11_i = __stackBase__ + 481;
  38404.   var $c_addr_i_i12_i = __stackBase__ + 485;
  38405.   var $backtrack_class_def_i_i_i = __stackBase__ + 489;
  38406.   var $ref_tmp_i_i_i371 = __stackBase__ + 493;
  38407.   var $input_class_def_i_i_i = __stackBase__ + 497;
  38408.   var $ref_tmp3_i_i_i = __stackBase__ + 501;
  38409.   var $lookahead_class_def_i_i_i = __stackBase__ + 505;
  38410.   var $ref_tmp5_i_i_i372 = __stackBase__ + 509;
  38411.   var $index_i_i_i373 = __stackBase__ + 513;
  38412.   var $rule_set_i_i_i374 = __stackBase__ + 517;
  38413.   var $ref_tmp8_i_i_i = __stackBase__ + 521;
  38414.   var $lookup_context_i_i13_i = __stackBase__ + 525;
  38415.   var $this_addr_i14_i = __stackBase__ + 541;
  38416.   var $obj_addr_i15_i = __stackBase__ + 545;
  38417.   var $P_addr_i_i71_i_i_i = __stackBase__ + 549;
  38418.   var $offset_addr_i_i72_i_i_i = __stackBase__ + 553;
  38419.   var $this_addr_i_i_i_i73_i_i_i = __stackBase__ + 557;
  38420.   var $this_addr_i_i_i74_i_i_i = __stackBase__ + 561;
  38421.   var $this_addr_i_i75_i_i_i = __stackBase__ + 565;
  38422.   var $X_addr_i76_i_i_i = __stackBase__ + 569;
  38423.   var $P_addr_i_i47_i_i_i = __stackBase__ + 573;
  38424.   var $offset_addr_i_i48_i_i_i = __stackBase__ + 577;
  38425.   var $this_addr_i_i_i_i49_i_i_i376 = __stackBase__ + 581;
  38426.   var $this_addr_i_i_i50_i_i_i377 = __stackBase__ + 585;
  38427.   var $this_addr_i_i51_i_i_i = __stackBase__ + 589;
  38428.   var $X_addr_i52_i_i_i = __stackBase__ + 593;
  38429.   var $P_addr_i_i_i_i_i = __stackBase__ + 597;
  38430.   var $offset_addr_i_i_i_i_i378 = __stackBase__ + 601;
  38431.   var $this_addr_i_i_i_i_i_i_i379 = __stackBase__ + 605;
  38432.   var $this_addr_i_i_i_i_i_i380 = __stackBase__ + 609;
  38433.   var $this_addr_i_i43_i_i_i = __stackBase__ + 613;
  38434.   var $X_addr_i_i_i_i = __stackBase__ + 617;
  38435.   var $this_addr_i_i29_i_i_i = __stackBase__ + 621;
  38436.   var $this_addr_i30_i_i_i = __stackBase__ + 625;
  38437.   var $this_addr_i_i15_i_i_i = __stackBase__ + 629;
  38438.   var $this_addr_i16_i_i_i = __stackBase__ + 633;
  38439.   var $this_addr_i_i1_i_i_i = __stackBase__ + 637;
  38440.   var $this_addr_i2_i_i_i = __stackBase__ + 641;
  38441.   var $this_addr_i_i_i_i_i381 = __stackBase__ + 645;
  38442.   var $this_addr_i_i_i_i382 = __stackBase__ + 649;
  38443.   var $this_addr_i_i_i384 = __stackBase__ + 653;
  38444.   var $c_addr_i_i_i385 = __stackBase__ + 657;
  38445.   var $input_i_i_i = __stackBase__ + 661;
  38446.   var $lookahead_i_i_i = __stackBase__ + 665;
  38447.   var $lookup_i_i_i = __stackBase__ + 669;
  38448.   var $lookup_context_i_i_i386 = __stackBase__ + 673;
  38449.   var $this_addr_i_i387 = __stackBase__ + 689;
  38450.   var $obj_addr_i_i388 = __stackBase__ + 693;
  38451.   var $retval_i391 = __stackBase__ + 697;
  38452.   var $this_addr_i392 = __stackBase__ + 698;
  38453.   var $c_addr_i393 = __stackBase__ + 702;
  38454.   var $X_addr_i_i_i_i6_i_i35_i = __stackBase__ + 706;
  38455.   var $P_addr_i_i_i7_i_i36_i = __stackBase__ + 710;
  38456.   var $offset_addr_i_i_i8_i_i37_i = __stackBase__ + 714;
  38457.   var $this_addr_i_i_i_i9_i_i38_i = __stackBase__ + 718;
  38458.   var $this_addr_i_i_i10_i_i39_i = __stackBase__ + 722;
  38459.   var $retval_i_i11_i_i40_i = __stackBase__ + 726;
  38460.   var $this_addr_i_i12_i_i41_i = __stackBase__ + 730;
  38461.   var $base_addr_i_i13_i_i42_i = __stackBase__ + 734;
  38462.   var $offset_i_i14_i_i43_i = __stackBase__ + 738;
  38463.   var $base_addr_i15_i_i44_i = __stackBase__ + 742;
  38464.   var $offset_addr_i16_i_i45_i = __stackBase__ + 746;
  38465.   var $X_addr_i_i_i_i_i46_i = __stackBase__ + 750;
  38466.   var $this_addr_i_i_i1_i_i47_i = __stackBase__ + 754;
  38467.   var $this_addr_i_i2_i_i48_i = __stackBase__ + 758;
  38468.   var $retval_i_i_i49_i = __stackBase__ + 762;
  38469.   var $this_addr_i_i_i50_i = __stackBase__ + 766;
  38470.   var $i_addr_i_i_i51_i = __stackBase__ + 770;
  38471.   var $X_addr_i_i_i_i_i_i52_i = __stackBase__ + 774;
  38472.   var $P_addr_i_i_i_i_i53_i = __stackBase__ + 778;
  38473.   var $offset_addr_i_i_i_i_i54_i = __stackBase__ + 782;
  38474.   var $this_addr_i_i_i_i_i_i55_i = __stackBase__ + 786;
  38475.   var $this_addr_i_i_i_i_i56_i = __stackBase__ + 790;
  38476.   var $retval_i_i_i_i57_i = __stackBase__ + 794;
  38477.   var $this_addr_i_i_i_i58_i = __stackBase__ + 798;
  38478.   var $base_addr_i_i_i_i59_i = __stackBase__ + 802;
  38479.   var $offset_i_i_i_i60_i = __stackBase__ + 806;
  38480.   var $base_addr_i_i_i61_i = __stackBase__ + 810;
  38481.   var $offset_addr_i_i_i62_i = __stackBase__ + 814;
  38482.   var $this_addr_i_i64_i = __stackBase__ + 818;
  38483.   var $c_addr_i_i65_i = __stackBase__ + 822;
  38484.   var $rule_set_i_i66_i = __stackBase__ + 826;
  38485.   var $ref_tmp_i_i67_i = __stackBase__ + 830;
  38486.   var $ref_tmp2_i_i_i = __stackBase__ + 834;
  38487.   var $lookup_context_i_i68_i = __stackBase__ + 838;
  38488.   var $this_addr_i69_i = __stackBase__ + 846;
  38489.   var $obj_addr_i70_i = __stackBase__ + 850;
  38490.   var $this_addr_i_i30_i = __stackBase__ + 854;
  38491.   var $this_addr_i31_i = __stackBase__ + 858;
  38492.   var $X_addr_i_i_i_i6_i_i_i = __stackBase__ + 862;
  38493.   var $P_addr_i_i_i7_i_i_i = __stackBase__ + 866;
  38494.   var $offset_addr_i_i_i8_i_i_i = __stackBase__ + 870;
  38495.   var $this_addr_i_i_i_i9_i_i_i = __stackBase__ + 874;
  38496.   var $this_addr_i_i_i10_i_i_i = __stackBase__ + 878;
  38497.   var $retval_i_i11_i_i_i = __stackBase__ + 882;
  38498.   var $this_addr_i_i12_i_i_i = __stackBase__ + 886;
  38499.   var $base_addr_i_i13_i_i_i = __stackBase__ + 890;
  38500.   var $offset_i_i14_i_i_i = __stackBase__ + 894;
  38501.   var $base_addr_i15_i_i_i = __stackBase__ + 898;
  38502.   var $offset_addr_i16_i_i_i = __stackBase__ + 902;
  38503.   var $X_addr_i_i_i_i_i_i234 = __stackBase__ + 906;
  38504.   var $this_addr_i_i_i1_i_i_i = __stackBase__ + 910;
  38505.   var $this_addr_i_i2_i_i6_i = __stackBase__ + 914;
  38506.   var $retval_i_i_i_i235 = __stackBase__ + 918;
  38507.   var $this_addr_i_i_i7_i = __stackBase__ + 922;
  38508.   var $i_addr_i_i_i_i236 = __stackBase__ + 926;
  38509.   var $X_addr_i_i_i_i_i_i_i237 = __stackBase__ + 930;
  38510.   var $P_addr_i_i_i_i_i_i238 = __stackBase__ + 934;
  38511.   var $offset_addr_i_i_i_i_i_i239 = __stackBase__ + 938;
  38512.   var $this_addr_i_i_i_i_i_i_i240 = __stackBase__ + 942;
  38513.   var $this_addr_i_i_i_i_i_i241 = __stackBase__ + 946;
  38514.   var $retval_i_i_i_i8_i = __stackBase__ + 950;
  38515.   var $this_addr_i_i_i_i9_i = __stackBase__ + 954;
  38516.   var $base_addr_i_i_i_i_i242 = __stackBase__ + 958;
  38517.   var $offset_i_i_i_i_i243 = __stackBase__ + 962;
  38518.   var $base_addr_i_i_i_i244 = __stackBase__ + 966;
  38519.   var $offset_addr_i_i_i10_i = __stackBase__ + 970;
  38520.   var $this_addr_i_i12_i = __stackBase__ + 974;
  38521.   var $c_addr_i_i13_i = __stackBase__ + 978;
  38522.   var $class_def_i_i_i = __stackBase__ + 982;
  38523.   var $ref_tmp_i_i_i245 = __stackBase__ + 986;
  38524.   var $index_i_i_i246 = __stackBase__ + 990;
  38525.   var $rule_set_i_i_i = __stackBase__ + 994;
  38526.   var $ref_tmp4_i_i_i = __stackBase__ + 998;
  38527.   var $lookup_context_i_i14_i = __stackBase__ + 1002;
  38528.   var $this_addr_i15_i = __stackBase__ + 1010;
  38529.   var $obj_addr_i16_i = __stackBase__ + 1014;
  38530.   var $this_addr_i_i16_i_i_i = __stackBase__ + 1018;
  38531.   var $this_addr_i17_i_i_i = __stackBase__ + 1022;
  38532.   var $P_addr_i_i_i_i = __stackBase__ + 1026;
  38533.   var $offset_addr_i_i_i_i248 = __stackBase__ + 1030;
  38534.   var $this_addr_i_i2_i_i_i = __stackBase__ + 1034;
  38535.   var $this_addr_i3_i_i_i = __stackBase__ + 1038;
  38536.   var $this_addr_i_i_i_i_i249 = __stackBase__ + 1042;
  38537.   var $this_addr_i_i_i_i250 = __stackBase__ + 1046;
  38538.   var $retval_i_i_i_i_i251 = __stackBase__ + 1050;
  38539.   var $c_addr_i_i_i_i_i252 = __stackBase__ + 1051;
  38540.   var $count_addr_i_i_i_i_i = __stackBase__ + 1055;
  38541.   var $input_addr_i_i_i_i_i = __stackBase__ + 1059;
  38542.   var $match_func_addr_i_i_i_i_i = __stackBase__ + 1063;
  38543.   var $match_data_addr_i_i_i_i_i = __stackBase__ + 1067;
  38544.   var $i_i_i_i_i_i253 = __stackBase__ + 1071;
  38545.   var $c_addr_i_i_i_i254 = __stackBase__ + 1075;
  38546.   var $inputCount_addr_i_i_i_i = __stackBase__ + 1079;
  38547.   var $input_addr_i_i_i_i = __stackBase__ + 1083;
  38548.   var $lookupCount_addr_i_i_i_i = __stackBase__ + 1087;
  38549.   var $lookupRecord_addr_i_i_i_i = __stackBase__ + 1091;
  38550.   var $lookup_context_addr_i_i_i_i = __stackBase__ + 1095;
  38551.   var $this_addr_i_i_i256 = __stackBase__ + 1099;
  38552.   var $c_addr_i_i_i257 = __stackBase__ + 1103;
  38553.   var $lookupRecord_i_i_i = __stackBase__ + 1107;
  38554.   var $lookup_context_i_i_i = __stackBase__ + 1111;
  38555.   var $this_addr_i_i258 = __stackBase__ + 1119;
  38556.   var $obj_addr_i_i259 = __stackBase__ + 1123;
  38557.   var $retval_i262 = __stackBase__ + 1127;
  38558.   var $this_addr_i263 = __stackBase__ + 1128;
  38559.   var $c_addr_i264 = __stackBase__ + 1132;
  38560.   var $this_addr_i_i3_i158 = __stackBase__ + 1136;
  38561.   var $this_addr_i4_i159 = __stackBase__ + 1140;
  38562.   var $X_addr_i_i_i_i46_i_i_i = __stackBase__ + 1144;
  38563.   var $P_addr_i_i_i47_i_i_i = __stackBase__ + 1148;
  38564.   var $offset_addr_i_i_i48_i_i_i = __stackBase__ + 1152;
  38565.   var $this_addr_i_i_i_i49_i_i_i = __stackBase__ + 1156;
  38566.   var $this_addr_i_i_i50_i_i_i = __stackBase__ + 1160;
  38567.   var $retval_i_i51_i_i_i = __stackBase__ + 1164;
  38568.   var $this_addr_i_i52_i_i_i = __stackBase__ + 1168;
  38569.   var $base_addr_i_i53_i_i_i = __stackBase__ + 1172;
  38570.   var $offset_i_i54_i_i_i = __stackBase__ + 1176;
  38571.   var $base_addr_i55_i_i_i = __stackBase__ + 1180;
  38572.   var $offset_addr_i56_i_i_i = __stackBase__ + 1184;
  38573.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 1188;
  38574.   var $this_addr_i_i_i24_i_i_i = __stackBase__ + 1192;
  38575.   var $this_addr_i_i25_i_i_i = __stackBase__ + 1196;
  38576.   var $retval_i26_i_i_i = __stackBase__ + 1200;
  38577.   var $this_addr_i27_i_i_i = __stackBase__ + 1204;
  38578.   var $i_addr_i_i_i_i = __stackBase__ + 1208;
  38579.   var $X_addr_i_i_i_i1_i_i_i = __stackBase__ + 1212;
  38580.   var $P_addr_i_i_i_i_i_i160 = __stackBase__ + 1216;
  38581.   var $offset_addr_i_i_i_i_i_i161 = __stackBase__ + 1220;
  38582.   var $this_addr_i_i_i_i2_i_i_i = __stackBase__ + 1224;
  38583.   var $this_addr_i_i_i3_i_i_i = __stackBase__ + 1228;
  38584.   var $retval_i_i4_i_i_i = __stackBase__ + 1232;
  38585.   var $this_addr_i_i5_i_i_i = __stackBase__ + 1236;
  38586.   var $base_addr_i_i6_i_i_i = __stackBase__ + 1240;
  38587.   var $offset_i_i_i_i_i162 = __stackBase__ + 1244;
  38588.   var $base_addr_i_i_i_i163 = __stackBase__ + 1248;
  38589.   var $offset_addr_i_i_i_i164 = __stackBase__ + 1252;
  38590.   var $this_addr_i_i47_i_i_i_i = __stackBase__ + 1256;
  38591.   var $this_addr_i48_i_i_i_i = __stackBase__ + 1260;
  38592.   var $X_addr_i_i_i_i_i_i_i165 = __stackBase__ + 1264;
  38593.   var $this_addr_i_i_i25_i_i_i_i = __stackBase__ + 1268;
  38594.   var $this_addr_i_i26_i_i_i_i = __stackBase__ + 1272;
  38595.   var $retval_i27_i_i_i_i = __stackBase__ + 1276;
  38596.   var $this_addr_i28_i_i_i_i = __stackBase__ + 1280;
  38597.   var $i_addr_i_i_i_i_i = __stackBase__ + 1284;
  38598.   var $X_addr_i_i_i_i3_i_i_i_i = __stackBase__ + 1288;
  38599.   var $P_addr_i_i_i_i_i_i_i = __stackBase__ + 1292;
  38600.   var $offset_addr_i_i_i_i_i_i_i = __stackBase__ + 1296;
  38601.   var $this_addr_i_i_i_i4_i_i_i_i = __stackBase__ + 1300;
  38602.   var $this_addr_i_i_i5_i_i_i_i = __stackBase__ + 1304;
  38603.   var $retval_i_i6_i_i_i_i = __stackBase__ + 1308;
  38604.   var $this_addr_i_i7_i_i_i_i = __stackBase__ + 1312;
  38605.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 1316;
  38606.   var $offset_i_i_i_i_i_i = __stackBase__ + 1320;
  38607.   var $base_addr_i_i_i_i_i166 = __stackBase__ + 1324;
  38608.   var $offset_addr_i_i_i_i_i = __stackBase__ + 1328;
  38609.   var $this_addr_i_i11_i_i_i_i_i = __stackBase__ + 1332;
  38610.   var $this_addr_i12_i_i_i_i_i = __stackBase__ + 1336;
  38611.   var $X_addr_i_i_i_i_i_i_i_i = __stackBase__ + 1340;
  38612.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 1344;
  38613.   var $this_addr_i_i3_i_i_i_i_i = __stackBase__ + 1348;
  38614.   var $retval_i_i_i_i_i_i = __stackBase__ + 1352;
  38615.   var $this_addr_i4_i_i_i_i_i = __stackBase__ + 1356;
  38616.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 1360;
  38617.   var $this_addr_i_i_i_i_i_i_i167 = __stackBase__ + 1364;
  38618.   var $this_addr_i_i_i_i_i_i168 = __stackBase__ + 1368;
  38619.   var $retval_i_i_i_i_i169 = __stackBase__ + 1372;
  38620.   var $this_addr_i_i_i_i_i170 = __stackBase__ + 1373;
  38621.   var $c_addr_i_i_i_i_i = __stackBase__ + 1377;
  38622.   var $i_i_i_i_i_i = __stackBase__ + 1381;
  38623.   var $retval_i_i_i_i = __stackBase__ + 1385;
  38624.   var $this_addr_i_i_i_i = __stackBase__ + 1386;
  38625.   var $c_addr_i_i_i_i = __stackBase__ + 1390;
  38626.   var $num_ligs_i_i_i_i = __stackBase__ + 1394;
  38627.   var $i_i_i_i_i = __stackBase__ + 1398;
  38628.   var $lig_i_i_i_i = __stackBase__ + 1402;
  38629.   var $ref_tmp_i_i_i_i = __stackBase__ + 1406;
  38630.   var $retval_i_i_i = __stackBase__ + 1410;
  38631.   var $this_addr_i_i_i172 = __stackBase__ + 1411;
  38632.   var $c_addr_i_i_i173 = __stackBase__ + 1415;
  38633.   var $index_i_i_i = __stackBase__ + 1419;
  38634.   var $ref_tmp_i_i_i174 = __stackBase__ + 1423;
  38635.   var $lig_set_i_i_i = __stackBase__ + 1427;
  38636.   var $ref_tmp5_i_i_i = __stackBase__ + 1431;
  38637.   var $this_addr_i_i175 = __stackBase__ + 1435;
  38638.   var $obj_addr_i_i176 = __stackBase__ + 1439;
  38639.   var $retval_i179 = __stackBase__ + 1443;
  38640.   var $this_addr_i180 = __stackBase__ + 1444;
  38641.   var $c_addr_i181 = __stackBase__ + 1448;
  38642.   var $this_addr_i_i3_i78 = __stackBase__ + 1452;
  38643.   var $this_addr_i4_i79 = __stackBase__ + 1456;
  38644.   var $X_addr_i_i_i_i_i_i_i80 = __stackBase__ + 1460;
  38645.   var $P_addr_i_i_i_i_i_i81 = __stackBase__ + 1464;
  38646.   var $offset_addr_i_i_i_i_i_i82 = __stackBase__ + 1468;
  38647.   var $this_addr_i_i_i_i_i_i_i83 = __stackBase__ + 1472;
  38648.   var $this_addr_i_i_i_i_i_i84 = __stackBase__ + 1476;
  38649.   var $retval_i_i_i_i_i85 = __stackBase__ + 1480;
  38650.   var $this_addr_i_i_i_i_i86 = __stackBase__ + 1484;
  38651.   var $base_addr_i_i_i_i_i87 = __stackBase__ + 1488;
  38652.   var $offset_i_i_i_i_i88 = __stackBase__ + 1492;
  38653.   var $base_addr_i_i_i_i89 = __stackBase__ + 1496;
  38654.   var $offset_addr_i_i_i_i90 = __stackBase__ + 1500;
  38655.   var $this_addr_i_i_i92 = __stackBase__ + 1504;
  38656.   var $c_addr_i_i_i93 = __stackBase__ + 1508;
  38657.   var $ref_tmp_i_i_i94 = __stackBase__ + 1512;
  38658.   var $this_addr_i_i95 = __stackBase__ + 1516;
  38659.   var $obj_addr_i_i96 = __stackBase__ + 1520;
  38660.   var $retval_i99 = __stackBase__ + 1524;
  38661.   var $this_addr_i100 = __stackBase__ + 1525;
  38662.   var $c_addr_i101 = __stackBase__ + 1529;
  38663.   var $this_addr_i_i3_i = __stackBase__ + 1533;
  38664.   var $this_addr_i4_i = __stackBase__ + 1537;
  38665.   var $X_addr_i_i_i_i_i_i_i3 = __stackBase__ + 1541;
  38666.   var $P_addr_i_i_i_i_i_i4 = __stackBase__ + 1545;
  38667.   var $offset_addr_i_i_i_i_i_i5 = __stackBase__ + 1549;
  38668.   var $this_addr_i_i_i_i_i_i_i6 = __stackBase__ + 1553;
  38669.   var $this_addr_i_i_i_i_i_i7 = __stackBase__ + 1557;
  38670.   var $retval_i_i_i_i_i8 = __stackBase__ + 1561;
  38671.   var $this_addr_i_i_i_i_i9 = __stackBase__ + 1565;
  38672.   var $base_addr_i_i_i_i_i10 = __stackBase__ + 1569;
  38673.   var $offset_i_i_i_i_i11 = __stackBase__ + 1573;
  38674.   var $base_addr_i_i_i_i12 = __stackBase__ + 1577;
  38675.   var $offset_addr_i_i_i_i13 = __stackBase__ + 1581;
  38676.   var $this_addr_i_i_i15 = __stackBase__ + 1585;
  38677.   var $c_addr_i_i_i16 = __stackBase__ + 1589;
  38678.   var $ref_tmp_i_i_i17 = __stackBase__ + 1593;
  38679.   var $this_addr_i_i18 = __stackBase__ + 1597;
  38680.   var $obj_addr_i_i19 = __stackBase__ + 1601;
  38681.   var $retval_i22 = __stackBase__ + 1605;
  38682.   var $this_addr_i23 = __stackBase__ + 1606;
  38683.   var $c_addr_i24 = __stackBase__ + 1610;
  38684.   var $this_addr_i_i52_i = __stackBase__ + 1614;
  38685.   var $this_addr_i53_i = __stackBase__ + 1618;
  38686.   var $X_addr_i_i_i_i_i_i6_i = __stackBase__ + 1622;
  38687.   var $P_addr_i_i_i_i_i7_i = __stackBase__ + 1626;
  38688.   var $offset_addr_i_i_i_i_i8_i = __stackBase__ + 1630;
  38689.   var $this_addr_i_i_i_i_i_i9_i = __stackBase__ + 1634;
  38690.   var $this_addr_i_i_i_i_i10_i = __stackBase__ + 1638;
  38691.   var $retval_i_i_i_i11_i = __stackBase__ + 1642;
  38692.   var $this_addr_i_i_i_i12_i = __stackBase__ + 1646;
  38693.   var $base_addr_i_i_i_i13_i = __stackBase__ + 1650;
  38694.   var $offset_i_i_i_i14_i = __stackBase__ + 1654;
  38695.   var $base_addr_i_i_i15_i = __stackBase__ + 1658;
  38696.   var $offset_addr_i_i_i16_i = __stackBase__ + 1662;
  38697.   var $this_addr_i_i18_i = __stackBase__ + 1666;
  38698.   var $c_addr_i_i19_i = __stackBase__ + 1670;
  38699.   var $ref_tmp_i_i20_i = __stackBase__ + 1674;
  38700.   var $this_addr_i21_i = __stackBase__ + 1678;
  38701.   var $obj_addr_i22_i = __stackBase__ + 1682;
  38702.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 1686;
  38703.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 1690;
  38704.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 1694;
  38705.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 1698;
  38706.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 1702;
  38707.   var $retval_i_i_i_i_i = __stackBase__ + 1706;
  38708.   var $this_addr_i_i_i_i_i = __stackBase__ + 1710;
  38709.   var $base_addr_i_i_i_i_i = __stackBase__ + 1714;
  38710.   var $offset_i_i_i_i_i = __stackBase__ + 1718;
  38711.   var $base_addr_i_i_i_i = __stackBase__ + 1722;
  38712.   var $offset_addr_i_i_i_i = __stackBase__ + 1726;
  38713.   var $this_addr_i_i_i = __stackBase__ + 1730;
  38714.   var $c_addr_i_i_i = __stackBase__ + 1734;
  38715.   var $ref_tmp_i_i_i = __stackBase__ + 1738;
  38716.   var $this_addr_i_i = __stackBase__ + 1742;
  38717.   var $obj_addr_i_i = __stackBase__ + 1746;
  38718.   var $retval_i = __stackBase__ + 1750;
  38719.   var $this_addr_i = __stackBase__ + 1751;
  38720.   var $c_addr_i = __stackBase__ + 1755;
  38721.   var $retval;
  38722.   var $c_addr;
  38723.   $c_addr = $c;
  38724.   var $this1 = $this;
  38725.   var $0 = $lookup_type;
  38726.   if (($0 | 0) == 2) {
  38727.     HEAP[$this_addr_i23] = $this1 | 0;
  38728.     HEAP[$c_addr_i24] = $c_addr;
  38729.     var $this1_i25 = HEAP[$this_addr_i23];
  38730.     HEAP[$this_addr_i4_i] = $this1_i25 | 0;
  38731.     HEAP[$this_addr_i_i3_i] = HEAP[$this_addr_i4_i] | 0;
  38732.     var $this1_i_i6_i = HEAP[$this_addr_i_i3_i];
  38733.     if ((((HEAP[$this1_i_i6_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i + 1 | 0] & 255) & 65535 | 0) == 1) {
  38734.       HEAP[$this_addr_i_i18] = HEAP[$c_addr_i24];
  38735.       HEAP[$obj_addr_i_i19] = $this1_i25 | 0;
  38736.       var $this1_i_i41 = HEAP[$this_addr_i_i18];
  38737.       HEAP[$this_addr_i_i_i15] = HEAP[$obj_addr_i_i19];
  38738.       HEAP[$c_addr_i_i_i16] = $this1_i_i41;
  38739.       var $this1_i_i_i42 = HEAP[$this_addr_i_i_i15];
  38740.       if ((HEAP[HEAP[$c_addr_i_i_i16] + 8 | 0] | 0) == 1) {
  38741.         HEAP[$ref_tmp_i_i_i17] = $this1_i_i_i42;
  38742.         HEAP[$base_addr_i_i_i_i12] = $ref_tmp_i_i_i17;
  38743.         HEAP[$offset_addr_i_i_i_i13] = $this1_i_i_i42 + 2 | 0;
  38744.         var $160 = HEAP[HEAP[$base_addr_i_i_i_i12]];
  38745.         HEAP[$this_addr_i_i_i_i_i9] = HEAP[$offset_addr_i_i_i_i13];
  38746.         HEAP[$base_addr_i_i_i_i_i10] = $160;
  38747.         HEAP[$this_addr_i_i_i_i_i_i7] = HEAP[$this_addr_i_i_i_i_i9];
  38748.         HEAP[$this_addr_i_i_i_i_i_i_i6] = HEAP[$this_addr_i_i_i_i_i_i7] | 0;
  38749.         var $this1_i_i_i_i_i_i_i50 = HEAP[$this_addr_i_i_i_i_i_i_i6];
  38750.         HEAP[$offset_i_i_i_i_i11] = ((HEAP[$this1_i_i_i_i_i_i_i50 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i50 + 1 | 0] & 255) & 65535;
  38751.         if ((HEAP[$offset_i_i_i_i_i11] | 0) != 0) {
  38752.           var $178 = HEAP[$offset_i_i_i_i_i11];
  38753.           HEAP[$P_addr_i_i_i_i_i_i4] = HEAP[$base_addr_i_i_i_i_i10];
  38754.           HEAP[$offset_addr_i_i_i_i_i_i5] = $178;
  38755.           HEAP[$retval_i_i_i_i_i8] = HEAP[$P_addr_i_i_i_i_i_i4] + HEAP[$offset_addr_i_i_i_i_i_i5] | 0;
  38756.         } else {
  38757.           HEAP[$X_addr_i_i_i_i_i_i_i3] = 111704;
  38758.           HEAP[$retval_i_i_i_i_i8] = HEAP[$X_addr_i_i_i_i_i_i_i3];
  38759.         }
  38760.         var $196 = (__ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i_i8], HEAP[HEAP[HEAP[$c_addr_i_i_i16] + 4 | 0]]) | 0) != -1;
  38761.       } else {
  38762.         var $196 = 0;
  38763.       }
  38764.       var $196;
  38765.       HEAP[$retval_i22] = $196 & 1 & 1;
  38766.     } else {
  38767.       HEAP[$retval_i22] = 0;
  38768.     }
  38769.     $retval = HEAP[$retval_i22] & 1;
  38770.     var $1533 = $retval;
  38771.     STACKTOP = __stackBase__;
  38772.     return $1533;
  38773.   } else if (($0 | 0) == 3) {
  38774.     HEAP[$this_addr_i100] = $this1 | 0;
  38775.     HEAP[$c_addr_i101] = $c_addr;
  38776.     var $this1_i102 = HEAP[$this_addr_i100];
  38777.     HEAP[$this_addr_i4_i79] = $this1_i102 | 0;
  38778.     HEAP[$this_addr_i_i3_i78] = HEAP[$this_addr_i4_i79] | 0;
  38779.     var $this1_i_i6_i107 = HEAP[$this_addr_i_i3_i78];
  38780.     if ((((HEAP[$this1_i_i6_i107 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i107 + 1 | 0] & 255) & 65535 | 0) == 1) {
  38781.       HEAP[$this_addr_i_i95] = HEAP[$c_addr_i101];
  38782.       HEAP[$obj_addr_i_i96] = $this1_i102 | 0;
  38783.       var $this1_i_i121 = HEAP[$this_addr_i_i95];
  38784.       HEAP[$this_addr_i_i_i92] = HEAP[$obj_addr_i_i96];
  38785.       HEAP[$c_addr_i_i_i93] = $this1_i_i121;
  38786.       var $this1_i_i_i122 = HEAP[$this_addr_i_i_i92];
  38787.       if ((HEAP[HEAP[$c_addr_i_i_i93] + 8 | 0] | 0) == 1) {
  38788.         HEAP[$ref_tmp_i_i_i94] = $this1_i_i_i122;
  38789.         HEAP[$base_addr_i_i_i_i89] = $ref_tmp_i_i_i94;
  38790.         HEAP[$offset_addr_i_i_i_i90] = $this1_i_i_i122 + 2 | 0;
  38791.         var $235 = HEAP[HEAP[$base_addr_i_i_i_i89]];
  38792.         HEAP[$this_addr_i_i_i_i_i86] = HEAP[$offset_addr_i_i_i_i90];
  38793.         HEAP[$base_addr_i_i_i_i_i87] = $235;
  38794.         HEAP[$this_addr_i_i_i_i_i_i84] = HEAP[$this_addr_i_i_i_i_i86];
  38795.         HEAP[$this_addr_i_i_i_i_i_i_i83] = HEAP[$this_addr_i_i_i_i_i_i84] | 0;
  38796.         var $this1_i_i_i_i_i_i_i130 = HEAP[$this_addr_i_i_i_i_i_i_i83];
  38797.         HEAP[$offset_i_i_i_i_i88] = ((HEAP[$this1_i_i_i_i_i_i_i130 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i130 + 1 | 0] & 255) & 65535;
  38798.         if ((HEAP[$offset_i_i_i_i_i88] | 0) != 0) {
  38799.           var $253 = HEAP[$offset_i_i_i_i_i88];
  38800.           HEAP[$P_addr_i_i_i_i_i_i81] = HEAP[$base_addr_i_i_i_i_i87];
  38801.           HEAP[$offset_addr_i_i_i_i_i_i82] = $253;
  38802.           HEAP[$retval_i_i_i_i_i85] = HEAP[$P_addr_i_i_i_i_i_i81] + HEAP[$offset_addr_i_i_i_i_i_i82] | 0;
  38803.         } else {
  38804.           HEAP[$X_addr_i_i_i_i_i_i_i80] = 111704;
  38805.           HEAP[$retval_i_i_i_i_i85] = HEAP[$X_addr_i_i_i_i_i_i_i80];
  38806.         }
  38807.         var $271 = (__ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i_i85], HEAP[HEAP[HEAP[$c_addr_i_i_i93] + 4 | 0]]) | 0) != -1;
  38808.       } else {
  38809.         var $271 = 0;
  38810.       }
  38811.       var $271;
  38812.       HEAP[$retval_i99] = $271 & 1 & 1;
  38813.     } else {
  38814.       HEAP[$retval_i99] = 0;
  38815.     }
  38816.     $retval = HEAP[$retval_i99] & 1;
  38817.     var $1533 = $retval;
  38818.     STACKTOP = __stackBase__;
  38819.     return $1533;
  38820.   } else if (($0 | 0) == 4) {
  38821.     HEAP[$this_addr_i180] = $this1 | 0;
  38822.     HEAP[$c_addr_i181] = $c_addr;
  38823.     var $this1_i182 = HEAP[$this_addr_i180];
  38824.     HEAP[$this_addr_i4_i159] = $this1_i182 | 0;
  38825.     HEAP[$this_addr_i_i3_i158] = HEAP[$this_addr_i4_i159] | 0;
  38826.     var $this1_i_i6_i187 = HEAP[$this_addr_i_i3_i158];
  38827.     if ((((HEAP[$this1_i_i6_i187 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i187 + 1 | 0] & 255) & 65535 | 0) == 1) {
  38828.       HEAP[$this_addr_i_i175] = HEAP[$c_addr_i181];
  38829.       HEAP[$obj_addr_i_i176] = $this1_i182 | 0;
  38830.       var $this1_i_i201 = HEAP[$this_addr_i_i175];
  38831.       HEAP[$this_addr_i_i_i172] = HEAP[$obj_addr_i_i176];
  38832.       HEAP[$c_addr_i_i_i173] = $this1_i_i201;
  38833.       var $this1_i_i_i202 = HEAP[$this_addr_i_i_i172];
  38834.       HEAP[$ref_tmp_i_i_i174] = $this1_i_i_i202;
  38835.       HEAP[$base_addr_i55_i_i_i] = $ref_tmp_i_i_i174;
  38836.       HEAP[$offset_addr_i56_i_i_i] = $this1_i_i_i202 + 2 | 0;
  38837.       var $312 = HEAP[HEAP[$base_addr_i55_i_i_i]];
  38838.       HEAP[$this_addr_i_i52_i_i_i] = HEAP[$offset_addr_i56_i_i_i];
  38839.       HEAP[$base_addr_i_i53_i_i_i] = $312;
  38840.       HEAP[$this_addr_i_i_i50_i_i_i] = HEAP[$this_addr_i_i52_i_i_i];
  38841.       HEAP[$this_addr_i_i_i_i49_i_i_i] = HEAP[$this_addr_i_i_i50_i_i_i] | 0;
  38842.       var $this1_i_i_i_i60_i_i_i = HEAP[$this_addr_i_i_i_i49_i_i_i];
  38843.       HEAP[$offset_i_i54_i_i_i] = ((HEAP[$this1_i_i_i_i60_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i60_i_i_i + 1 | 0] & 255) & 65535;
  38844.       if ((HEAP[$offset_i_i54_i_i_i] | 0) != 0) {
  38845.         var $330 = HEAP[$offset_i_i54_i_i_i];
  38846.         HEAP[$P_addr_i_i_i47_i_i_i] = HEAP[$base_addr_i_i53_i_i_i];
  38847.         HEAP[$offset_addr_i_i_i48_i_i_i] = $330;
  38848.         HEAP[$retval_i_i51_i_i_i] = HEAP[$P_addr_i_i_i47_i_i_i] + HEAP[$offset_addr_i_i_i48_i_i_i] | 0;
  38849.       } else {
  38850.         HEAP[$X_addr_i_i_i_i46_i_i_i] = 111704;
  38851.         HEAP[$retval_i_i51_i_i_i] = HEAP[$X_addr_i_i_i_i46_i_i_i];
  38852.       }
  38853.       var $call3_i_i_i = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i51_i_i_i], HEAP[HEAP[HEAP[$c_addr_i_i_i173] + 4 | 0]]);
  38854.       HEAP[$index_i_i_i] = $call3_i_i_i;
  38855.       if (($call3_i_i_i | 0) == -1) {
  38856.         HEAP[$retval_i_i_i] = 0;
  38857.       } else {
  38858.         HEAP[$ref_tmp5_i_i_i] = $this1_i_i_i202;
  38859.         var $350 = HEAP[$index_i_i_i];
  38860.         HEAP[$this_addr_i27_i_i_i] = $this1_i_i_i202 + 4 | 0;
  38861.         HEAP[$i_addr_i_i_i_i] = $350;
  38862.         var $this1_i28_i_i_i = HEAP[$this_addr_i27_i_i_i];
  38863.         var $354 = HEAP[$i_addr_i_i_i_i];
  38864.         HEAP[$this_addr_i_i25_i_i_i] = $this1_i28_i_i_i | 0;
  38865.         HEAP[$this_addr_i_i_i24_i_i_i] = HEAP[$this_addr_i_i25_i_i_i] | 0;
  38866.         var $this1_i_i_i31_i_i_i = HEAP[$this_addr_i_i_i24_i_i_i];
  38867.         if ($354 >>> 0 >= (((HEAP[$this1_i_i_i31_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i31_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  38868.           HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  38869.           HEAP[$retval_i26_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  38870.         } else {
  38871.           HEAP[$retval_i26_i_i_i] = (HEAP[$i_addr_i_i_i_i] << 1) + $this1_i28_i_i_i + 2 | 0;
  38872.         }
  38873.         var $370 = HEAP[$retval_i26_i_i_i];
  38874.         HEAP[$base_addr_i_i_i_i163] = $ref_tmp5_i_i_i;
  38875.         HEAP[$offset_addr_i_i_i_i164] = $370;
  38876.         var $376 = HEAP[HEAP[$base_addr_i_i_i_i163]];
  38877.         HEAP[$this_addr_i_i5_i_i_i] = HEAP[$offset_addr_i_i_i_i164];
  38878.         HEAP[$base_addr_i_i6_i_i_i] = $376;
  38879.         HEAP[$this_addr_i_i_i3_i_i_i] = HEAP[$this_addr_i_i5_i_i_i];
  38880.         HEAP[$this_addr_i_i_i_i2_i_i_i] = HEAP[$this_addr_i_i_i3_i_i_i] | 0;
  38881.         var $this1_i_i_i_i10_i_i_i = HEAP[$this_addr_i_i_i_i2_i_i_i];
  38882.         var $conv_i_i20_i_i_i = ((HEAP[$this1_i_i_i_i10_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i10_i_i_i + 1 | 0] & 255) & 65535;
  38883.         HEAP[$offset_i_i_i_i_i162] = $conv_i_i20_i_i_i;
  38884.         if (($conv_i_i20_i_i_i | 0) != 0) {
  38885.           var $393 = HEAP[$offset_i_i_i_i_i162];
  38886.           HEAP[$P_addr_i_i_i_i_i_i160] = HEAP[$base_addr_i_i6_i_i_i];
  38887.           HEAP[$offset_addr_i_i_i_i_i_i161] = $393;
  38888.           HEAP[$retval_i_i4_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i160] + HEAP[$offset_addr_i_i_i_i_i_i161] | 0;
  38889.         } else {
  38890.           HEAP[$X_addr_i_i_i_i1_i_i_i] = 111704;
  38891.           HEAP[$retval_i_i4_i_i_i] = HEAP[$X_addr_i_i_i_i1_i_i_i];
  38892.         }
  38893.         HEAP[$lig_set_i_i_i] = HEAP[$retval_i_i4_i_i_i];
  38894.         var $409 = HEAP[$c_addr_i_i_i173];
  38895.         HEAP[$this_addr_i_i_i_i] = HEAP[$lig_set_i_i_i];
  38896.         HEAP[$c_addr_i_i_i_i] = $409;
  38897.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  38898.         HEAP[$this_addr_i48_i_i_i_i] = $this1_i_i_i_i | 0;
  38899.         HEAP[$this_addr_i_i47_i_i_i_i] = HEAP[$this_addr_i48_i_i_i_i] | 0;
  38900.         var $this1_i_i50_i_i_i_i = HEAP[$this_addr_i_i47_i_i_i_i];
  38901.         HEAP[$num_ligs_i_i_i_i] = ((HEAP[$this1_i_i50_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i50_i_i_i_i + 1 | 0] & 255) & 65535;
  38902.         HEAP[$i_i_i_i_i] = 0;
  38903.         L1034 : do {
  38904.           if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$num_ligs_i_i_i_i] >>> 0) {
  38905.             var $426 = $this1_i_i_i_i | 0;
  38906.             while (1) {
  38907.               HEAP[$ref_tmp_i_i_i_i] = $this1_i_i_i_i;
  38908.               var $489 = HEAP[$i_i_i_i_i];
  38909.               HEAP[$this_addr_i28_i_i_i_i] = $426;
  38910.               HEAP[$i_addr_i_i_i_i_i] = $489;
  38911.               var $this1_i29_i_i_i_i = HEAP[$this_addr_i28_i_i_i_i];
  38912.               var $490 = HEAP[$i_addr_i_i_i_i_i];
  38913.               HEAP[$this_addr_i_i26_i_i_i_i] = $this1_i29_i_i_i_i | 0;
  38914.               HEAP[$this_addr_i_i_i25_i_i_i_i] = HEAP[$this_addr_i_i26_i_i_i_i] | 0;
  38915.               var $this1_i_i_i32_i_i_i_i = HEAP[$this_addr_i_i_i25_i_i_i_i];
  38916.               if ($490 >>> 0 >= (((HEAP[$this1_i_i_i32_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i32_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  38917.                 HEAP[$X_addr_i_i_i_i_i_i_i165] = 111704;
  38918.                 HEAP[$retval_i27_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i165];
  38919.               } else {
  38920.                 HEAP[$retval_i27_i_i_i_i] = (HEAP[$i_addr_i_i_i_i_i] << 1) + $this1_i29_i_i_i_i + 2 | 0;
  38921.               }
  38922.               var $497 = HEAP[$retval_i27_i_i_i_i];
  38923.               HEAP[$base_addr_i_i_i_i_i166] = $ref_tmp_i_i_i_i;
  38924.               HEAP[$offset_addr_i_i_i_i_i] = $497;
  38925.               var $501 = HEAP[HEAP[$base_addr_i_i_i_i_i166]];
  38926.               HEAP[$this_addr_i_i7_i_i_i_i] = HEAP[$offset_addr_i_i_i_i_i];
  38927.               HEAP[$base_addr_i_i_i_i_i_i] = $501;
  38928.               HEAP[$this_addr_i_i_i5_i_i_i_i] = HEAP[$this_addr_i_i7_i_i_i_i];
  38929.               HEAP[$this_addr_i_i_i_i4_i_i_i_i] = HEAP[$this_addr_i_i_i5_i_i_i_i] | 0;
  38930.               var $this1_i_i_i_i11_i_i_i_i = HEAP[$this_addr_i_i_i_i4_i_i_i_i];
  38931.               var $conv_i_i21_i_i_i_i = ((HEAP[$this1_i_i_i_i11_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i11_i_i_i_i + 1 | 0] & 255) & 65535;
  38932.               HEAP[$offset_i_i_i_i_i_i] = $conv_i_i21_i_i_i_i;
  38933.               if (($conv_i_i21_i_i_i_i | 0) != 0) {
  38934.                 var $508 = HEAP[$offset_i_i_i_i_i_i];
  38935.                 HEAP[$P_addr_i_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i_i];
  38936.                 HEAP[$offset_addr_i_i_i_i_i_i_i] = $508;
  38937.                 HEAP[$retval_i_i6_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i_i] | 0;
  38938.               } else {
  38939.                 HEAP[$X_addr_i_i_i_i3_i_i_i_i] = 111704;
  38940.                 HEAP[$retval_i_i6_i_i_i_i] = HEAP[$X_addr_i_i_i_i3_i_i_i_i];
  38941.               }
  38942.               HEAP[$lig_i_i_i_i] = HEAP[$retval_i_i6_i_i_i_i];
  38943.               var $514 = HEAP[$c_addr_i_i_i_i];
  38944.               HEAP[$this_addr_i_i_i_i_i170] = HEAP[$lig_i_i_i_i];
  38945.               HEAP[$c_addr_i_i_i_i_i] = $514;
  38946.               var $this1_i_i_i_i_i208 = HEAP[$this_addr_i_i_i_i_i170];
  38947.               var $516 = HEAP[HEAP[$c_addr_i_i_i_i_i] + 8 | 0];
  38948.               HEAP[$this_addr_i12_i_i_i_i_i] = $this1_i_i_i_i_i208 + 2 | 0;
  38949.               HEAP[$this_addr_i_i11_i_i_i_i_i] = HEAP[$this_addr_i12_i_i_i_i_i] | 0;
  38950.               var $this1_i_i15_i_i_i_i_i = HEAP[$this_addr_i_i11_i_i_i_i_i];
  38951.               L1046 : do {
  38952.                 if (($516 | 0) != (((HEAP[$this1_i_i15_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i15_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0)) {
  38953.                   var $tobool_i10_i_i_i_i_i = 0;
  38954.                   HEAP[$retval_i_i_i_i_i169] = $tobool_i10_i_i_i_i_i;
  38955.                   var $544 = $tobool_i10_i_i_i_i_i;
  38956.                 } else {
  38957.                   HEAP[$i_i_i_i_i_i] = 1;
  38958.                   L1048 : do {
  38959.                     if (HEAP[$i_i_i_i_i_i] >>> 0 < HEAP[HEAP[$c_addr_i_i_i_i_i] + 8 | 0] >>> 0) {
  38960.                       var $component8_i_i_i_i_i = $this1_i_i_i_i_i208 + 2 | 0;
  38961.                       while (1) {
  38962.                         var $526 = HEAP[(HEAP[$i_i_i_i_i_i] << 2) + HEAP[HEAP[$c_addr_i_i_i_i_i] + 4 | 0] | 0];
  38963.                         var $527 = HEAP[$i_i_i_i_i_i];
  38964.                         HEAP[$this_addr_i4_i_i_i_i_i] = $component8_i_i_i_i_i;
  38965.                         HEAP[$i_addr_i_i_i_i_i_i] = $527;
  38966.                         var $this1_i5_i_i_i_i_i = HEAP[$this_addr_i4_i_i_i_i_i];
  38967.                         var $528 = HEAP[$i_addr_i_i_i_i_i_i];
  38968.                         HEAP[$this_addr_i_i3_i_i_i_i_i] = $this1_i5_i_i_i_i_i | 0;
  38969.                         HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i3_i_i_i_i_i] | 0;
  38970.                         var $this1_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i];
  38971.                         if ($528 >>> 0 < (((HEAP[$this1_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) >>> 0 & (HEAP[$i_addr_i_i_i_i_i_i] | 0) != 0) {
  38972.                           HEAP[$retval_i_i_i_i_i_i] = (HEAP[$i_addr_i_i_i_i_i_i] - 1 << 1) + $this1_i5_i_i_i_i_i + 2 | 0;
  38973.                         } else {
  38974.                           HEAP[$X_addr_i_i_i_i_i_i_i_i] = 111704;
  38975.                           HEAP[$retval_i_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i_i];
  38976.                         }
  38977.                         HEAP[$this_addr_i_i_i_i_i_i168] = HEAP[$retval_i_i_i_i_i_i];
  38978.                         HEAP[$this_addr_i_i_i_i_i_i_i167] = HEAP[$this_addr_i_i_i_i_i_i168] | 0;
  38979.                         var $this1_i_i_i_i_i_i_i214 = HEAP[$this_addr_i_i_i_i_i_i_i167];
  38980.                         if (($526 | 0) != (((HEAP[$this1_i_i_i_i_i_i_i214 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i214 + 1 | 0] & 255) & 65535 | 0)) {
  38981.                           break;
  38982.                         }
  38983.                         HEAP[$i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i] + 1 | 0;
  38984.                         if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[HEAP[$c_addr_i_i_i_i_i] + 8 | 0] >>> 0) {
  38985.                           break L1048;
  38986.                         }
  38987.                       }
  38988.                       var $tobool_i2_i_i_i_i_i = 0;
  38989.                       HEAP[$retval_i_i_i_i_i169] = $tobool_i2_i_i_i_i_i;
  38990.                       var $544 = $tobool_i2_i_i_i_i_i;
  38991.                       break L1046;
  38992.                     }
  38993.                   } while (0);
  38994.                   var $tobool_i_i_i_i_i_i = 1;
  38995.                   HEAP[$retval_i_i_i_i_i169] = $tobool_i_i_i_i_i_i;
  38996.                   var $544 = $tobool_i_i_i_i_i_i;
  38997.                 }
  38998.               } while (0);
  38999.               var $544;
  39000.               if ($544) {
  39001.                 break;
  39002.               }
  39003.               HEAP[$i_i_i_i_i] = HEAP[$i_i_i_i_i] + 1 | 0;
  39004.               if (HEAP[$i_i_i_i_i] >>> 0 >= HEAP[$num_ligs_i_i_i_i] >>> 0) {
  39005.                 label = 827;
  39006.                 break L1034;
  39007.               }
  39008.             }
  39009.             HEAP[$retval_i_i_i_i] = 1;
  39010.             break;
  39011.           } else {
  39012.             label = 827;
  39013.           }
  39014.         } while (0);
  39015.         if (label == 827) {
  39016.           HEAP[$retval_i_i_i_i] = 0;
  39017.         }
  39018.         HEAP[$retval_i_i_i] = HEAP[$retval_i_i_i_i] & 1;
  39019.       }
  39020.       HEAP[$retval_i179] = HEAP[$retval_i_i_i] & 1;
  39021.     } else {
  39022.       HEAP[$retval_i179] = 0;
  39023.     }
  39024.     $retval = HEAP[$retval_i179] & 1;
  39025.     var $1533 = $retval;
  39026.     STACKTOP = __stackBase__;
  39027.     return $1533;
  39028.   } else if (($0 | 0) == 1) {
  39029.     HEAP[$this_addr_i] = $this1 | 0;
  39030.     HEAP[$c_addr_i] = $c_addr;
  39031.     var $this1_i = HEAP[$this_addr_i];
  39032.     HEAP[$this_addr_i53_i] = $this1_i | 0;
  39033.     HEAP[$this_addr_i_i52_i] = HEAP[$this_addr_i53_i] | 0;
  39034.     var $this1_i_i55_i = HEAP[$this_addr_i_i52_i];
  39035.     var $conv_i = ((HEAP[$this1_i_i55_i | 0] & 255) << 8) + (HEAP[$this1_i_i55_i + 1 | 0] & 255) & 65535;
  39036.     if (($conv_i | 0) == 2) {
  39037.       HEAP[$this_addr_i_i] = HEAP[$c_addr_i];
  39038.       HEAP[$obj_addr_i_i] = $this1_i | 0;
  39039.       var $this1_i_i = HEAP[$this_addr_i_i];
  39040.       HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i];
  39041.       HEAP[$c_addr_i_i_i] = $this1_i_i;
  39042.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  39043.       if ((HEAP[HEAP[$c_addr_i_i_i] + 8 | 0] | 0) == 1) {
  39044.         HEAP[$ref_tmp_i_i_i] = $this1_i_i_i;
  39045.         HEAP[$base_addr_i_i_i_i] = $ref_tmp_i_i_i;
  39046.         HEAP[$offset_addr_i_i_i_i] = $this1_i_i_i + 2 | 0;
  39047.         var $85 = HEAP[HEAP[$base_addr_i_i_i_i]];
  39048.         HEAP[$this_addr_i_i_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  39049.         HEAP[$base_addr_i_i_i_i_i] = $85;
  39050.         HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i];
  39051.         HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i] | 0;
  39052.         var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  39053.         HEAP[$offset_i_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  39054.         if ((HEAP[$offset_i_i_i_i_i] | 0) != 0) {
  39055.           var $103 = HEAP[$offset_i_i_i_i_i];
  39056.           HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  39057.           HEAP[$offset_addr_i_i_i_i_i_i] = $103;
  39058.           HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  39059.         } else {
  39060.           HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  39061.           HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  39062.         }
  39063.         var $121 = (__ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i_i], HEAP[HEAP[HEAP[$c_addr_i_i_i] + 4 | 0]]) | 0) != -1;
  39064.       } else {
  39065.         var $121 = 0;
  39066.       }
  39067.       var $121;
  39068.       HEAP[$retval_i] = $121 & 1 & 1;
  39069.     } else if (($conv_i | 0) == 1) {
  39070.       HEAP[$this_addr_i21_i] = HEAP[$c_addr_i];
  39071.       HEAP[$obj_addr_i22_i] = $this1_i | 0;
  39072.       var $this1_i23_i = HEAP[$this_addr_i21_i];
  39073.       HEAP[$this_addr_i_i18_i] = HEAP[$obj_addr_i22_i];
  39074.       HEAP[$c_addr_i_i19_i] = $this1_i23_i;
  39075.       var $this1_i_i24_i = HEAP[$this_addr_i_i18_i];
  39076.       if ((HEAP[HEAP[$c_addr_i_i19_i] + 8 | 0] | 0) == 1) {
  39077.         HEAP[$ref_tmp_i_i20_i] = $this1_i_i24_i;
  39078.         HEAP[$base_addr_i_i_i15_i] = $ref_tmp_i_i20_i;
  39079.         HEAP[$offset_addr_i_i_i16_i] = $this1_i_i24_i + 2 | 0;
  39080.         var $26 = HEAP[HEAP[$base_addr_i_i_i15_i]];
  39081.         HEAP[$this_addr_i_i_i_i12_i] = HEAP[$offset_addr_i_i_i16_i];
  39082.         HEAP[$base_addr_i_i_i_i13_i] = $26;
  39083.         HEAP[$this_addr_i_i_i_i_i10_i] = HEAP[$this_addr_i_i_i_i12_i];
  39084.         HEAP[$this_addr_i_i_i_i_i_i9_i] = HEAP[$this_addr_i_i_i_i_i10_i] | 0;
  39085.         var $this1_i_i_i_i_i_i31_i = HEAP[$this_addr_i_i_i_i_i_i9_i];
  39086.         HEAP[$offset_i_i_i_i14_i] = ((HEAP[$this1_i_i_i_i_i_i31_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i31_i + 1 | 0] & 255) & 65535;
  39087.         if ((HEAP[$offset_i_i_i_i14_i] | 0) != 0) {
  39088.           var $44 = HEAP[$offset_i_i_i_i14_i];
  39089.           HEAP[$P_addr_i_i_i_i_i7_i] = HEAP[$base_addr_i_i_i_i13_i];
  39090.           HEAP[$offset_addr_i_i_i_i_i8_i] = $44;
  39091.           HEAP[$retval_i_i_i_i11_i] = HEAP[$P_addr_i_i_i_i_i7_i] + HEAP[$offset_addr_i_i_i_i_i8_i] | 0;
  39092.         } else {
  39093.           HEAP[$X_addr_i_i_i_i_i_i6_i] = 111704;
  39094.           HEAP[$retval_i_i_i_i11_i] = HEAP[$X_addr_i_i_i_i_i_i6_i];
  39095.         }
  39096.         var $62 = (__ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i11_i], HEAP[HEAP[HEAP[$c_addr_i_i19_i] + 4 | 0]]) | 0) != -1;
  39097.       } else {
  39098.         var $62 = 0;
  39099.       }
  39100.       var $62;
  39101.       HEAP[$retval_i] = $62 & 1 & 1;
  39102.     } else {
  39103.       HEAP[$retval_i] = 0;
  39104.     }
  39105.     $retval = HEAP[$retval_i] & 1;
  39106.     var $1533 = $retval;
  39107.     STACKTOP = __stackBase__;
  39108.     return $1533;
  39109.   } else if (($0 | 0) == 6) {
  39110.     HEAP[$this_addr_i392] = $this1 | 0;
  39111.     HEAP[$c_addr_i393] = $c_addr;
  39112.     var $this1_i394 = HEAP[$this_addr_i392];
  39113.     HEAP[$this_addr_i42_i] = $this1_i394 | 0;
  39114.     HEAP[$this_addr_i_i41_i] = HEAP[$this_addr_i42_i] | 0;
  39115.     var $this1_i_i44_i = HEAP[$this_addr_i_i41_i];
  39116.     var $conv_i406 = ((HEAP[$this1_i_i44_i | 0] & 255) << 8) + (HEAP[$this1_i_i44_i + 1 | 0] & 255) & 65535;
  39117.     if (($conv_i406 | 0) == 1) {
  39118.       HEAP[$this_addr_i80_i] = HEAP[$c_addr_i393];
  39119.       HEAP[$obj_addr_i81_i] = $this1_i394 | 0;
  39120.       var $this1_i82_i = HEAP[$this_addr_i80_i];
  39121.       HEAP[$this_addr_i_i75_i] = HEAP[$obj_addr_i81_i];
  39122.       HEAP[$c_addr_i_i76_i] = $this1_i82_i;
  39123.       var $this1_i_i83_i = HEAP[$this_addr_i_i75_i];
  39124.       HEAP[$ref_tmp_i_i78_i] = $this1_i_i83_i;
  39125.       HEAP[$ref_tmp2_i_i_i345] = $this1_i_i83_i;
  39126.       HEAP[$base_addr_i15_i_i55_i] = $ref_tmp2_i_i_i345;
  39127.       HEAP[$offset_addr_i16_i_i56_i] = $this1_i_i83_i + 2 | 0;
  39128.       var $970 = HEAP[HEAP[$base_addr_i15_i_i55_i]];
  39129.       HEAP[$this_addr_i_i12_i_i52_i] = HEAP[$offset_addr_i16_i_i56_i];
  39130.       HEAP[$base_addr_i_i13_i_i53_i] = $970;
  39131.       HEAP[$this_addr_i_i_i10_i_i50_i] = HEAP[$this_addr_i_i12_i_i52_i];
  39132.       HEAP[$this_addr_i_i_i_i9_i_i49_i] = HEAP[$this_addr_i_i_i10_i_i50_i] | 0;
  39133.       var $this1_i_i_i_i20_i_i88_i = HEAP[$this_addr_i_i_i_i9_i_i49_i];
  39134.       HEAP[$offset_i_i14_i_i54_i] = ((HEAP[$this1_i_i_i_i20_i_i88_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20_i_i88_i + 1 | 0] & 255) & 65535;
  39135.       if ((HEAP[$offset_i_i14_i_i54_i] | 0) != 0) {
  39136.         var $988 = HEAP[$offset_i_i14_i_i54_i];
  39137.         HEAP[$P_addr_i_i_i7_i_i47_i] = HEAP[$base_addr_i_i13_i_i53_i];
  39138.         HEAP[$offset_addr_i_i_i8_i_i48_i] = $988;
  39139.         HEAP[$retval_i_i11_i_i51_i] = HEAP[$P_addr_i_i_i7_i_i47_i] + HEAP[$offset_addr_i_i_i8_i_i48_i] | 0;
  39140.       } else {
  39141.         HEAP[$X_addr_i_i_i_i6_i_i46_i] = 111704;
  39142.         HEAP[$retval_i_i11_i_i51_i] = HEAP[$X_addr_i_i_i_i6_i_i46_i];
  39143.       }
  39144.       var $call4_i_i_i411 = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i11_i_i51_i], HEAP[HEAP[HEAP[$c_addr_i_i76_i] + 4 | 0]]);
  39145.       HEAP[$this_addr_i_i_i61_i] = $this1_i_i83_i + 4 | 0;
  39146.       HEAP[$i_addr_i_i_i62_i] = $call4_i_i_i411;
  39147.       var $this1_i_i_i104_i = HEAP[$this_addr_i_i_i61_i];
  39148.       var $1009 = HEAP[$i_addr_i_i_i62_i];
  39149.       HEAP[$this_addr_i_i2_i_i59_i] = $this1_i_i_i104_i | 0;
  39150.       HEAP[$this_addr_i_i_i1_i_i58_i] = HEAP[$this_addr_i_i2_i_i59_i] | 0;
  39151.       var $this1_i_i_i4_i_i108_i = HEAP[$this_addr_i_i_i1_i_i58_i];
  39152.       if ($1009 >>> 0 >= (((HEAP[$this1_i_i_i4_i_i108_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i4_i_i108_i + 1 | 0] & 255) & 65535) >>> 0) {
  39153.         HEAP[$X_addr_i_i_i_i_i57_i] = 111704;
  39154.         HEAP[$retval_i_i_i60_i] = HEAP[$X_addr_i_i_i_i_i57_i];
  39155.       } else {
  39156.         HEAP[$retval_i_i_i60_i] = (HEAP[$i_addr_i_i_i62_i] << 1) + $this1_i_i_i104_i + 2 | 0;
  39157.       }
  39158.       var $1025 = HEAP[$retval_i_i_i60_i];
  39159.       HEAP[$base_addr_i_i_i72_i] = $ref_tmp_i_i78_i;
  39160.       HEAP[$offset_addr_i_i_i73_i] = $1025;
  39161.       var $1031 = HEAP[HEAP[$base_addr_i_i_i72_i]];
  39162.       HEAP[$this_addr_i_i_i_i69_i] = HEAP[$offset_addr_i_i_i73_i];
  39163.       HEAP[$base_addr_i_i_i_i70_i] = $1031;
  39164.       HEAP[$this_addr_i_i_i_i_i67_i] = HEAP[$this_addr_i_i_i_i69_i];
  39165.       HEAP[$this_addr_i_i_i_i_i_i66_i] = HEAP[$this_addr_i_i_i_i_i67_i] | 0;
  39166.       var $this1_i_i_i_i_i_i127_i = HEAP[$this_addr_i_i_i_i_i_i66_i];
  39167.       var $conv_i_i_i_i137_i = ((HEAP[$this1_i_i_i_i_i_i127_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i127_i + 1 | 0] & 255) & 65535;
  39168.       HEAP[$offset_i_i_i_i71_i] = $conv_i_i_i_i137_i;
  39169.       if (($conv_i_i_i_i137_i | 0) != 0) {
  39170.         var $1048 = HEAP[$offset_i_i_i_i71_i];
  39171.         HEAP[$P_addr_i_i_i_i_i64_i] = HEAP[$base_addr_i_i_i_i70_i];
  39172.         HEAP[$offset_addr_i_i_i_i_i65_i] = $1048;
  39173.         HEAP[$retval_i_i_i_i68_i] = HEAP[$P_addr_i_i_i_i_i64_i] + HEAP[$offset_addr_i_i_i_i_i65_i] | 0;
  39174.       } else {
  39175.         HEAP[$X_addr_i_i_i_i_i_i63_i] = 111704;
  39176.         HEAP[$retval_i_i_i_i68_i] = HEAP[$X_addr_i_i_i_i_i_i63_i];
  39177.       }
  39178.       HEAP[$rule_set_i_i77_i] = HEAP[$retval_i_i_i_i68_i];
  39179.       var $1063 = $lookup_context_i_i79_i;
  39180.       for (var $$src = 110712, $$dest = $1063, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  39181.         HEAP[$$dest] = HEAP[$$src];
  39182.       }
  39183.       var $tobool_i148_i = __ZNK2OT12ChainRuleSet11would_applyEPNS_24hb_would_apply_context_tERNS_30ChainContextApplyLookupContextE(HEAP[$rule_set_i_i77_i], HEAP[$c_addr_i_i76_i], $lookup_context_i_i79_i) & 1 & 1;
  39184.       HEAP[$retval_i391] = $tobool_i148_i;
  39185.     } else if (($conv_i406 | 0) == 2) {
  39186.       HEAP[$this_addr_i14_i] = HEAP[$c_addr_i393];
  39187.       HEAP[$obj_addr_i15_i] = $this1_i394 | 0;
  39188.       var $this1_i16_i = HEAP[$this_addr_i14_i];
  39189.       HEAP[$this_addr_i_i11_i] = HEAP[$obj_addr_i15_i];
  39190.       HEAP[$c_addr_i_i12_i] = $this1_i16_i;
  39191.       var $this1_i_i17_i = HEAP[$this_addr_i_i11_i];
  39192.       HEAP[$ref_tmp_i_i_i371] = $this1_i_i17_i;
  39193.       HEAP[$base_addr_i15_i_i_i355] = $ref_tmp_i_i_i371;
  39194.       HEAP[$offset_addr_i16_i_i_i356] = $this1_i_i17_i + 4 | 0;
  39195.       var $1098 = HEAP[HEAP[$base_addr_i15_i_i_i355]];
  39196.       HEAP[$this_addr_i_i12_i_i_i352] = HEAP[$offset_addr_i16_i_i_i356];
  39197.       HEAP[$base_addr_i_i13_i_i_i353] = $1098;
  39198.       HEAP[$this_addr_i_i_i10_i_i_i350] = HEAP[$this_addr_i_i12_i_i_i352];
  39199.       HEAP[$this_addr_i_i_i_i9_i_i_i349] = HEAP[$this_addr_i_i_i10_i_i_i350] | 0;
  39200.       var $this1_i_i_i_i20_i_i_i417 = HEAP[$this_addr_i_i_i_i9_i_i_i349];
  39201.       HEAP[$offset_i_i14_i_i_i354] = ((HEAP[$this1_i_i_i_i20_i_i_i417 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20_i_i_i417 + 1 | 0] & 255) & 65535;
  39202.       if ((HEAP[$offset_i_i14_i_i_i354] | 0) != 0) {
  39203.         var $1116 = HEAP[$offset_i_i14_i_i_i354];
  39204.         HEAP[$P_addr_i_i_i7_i_i_i347] = HEAP[$base_addr_i_i13_i_i_i353];
  39205.         HEAP[$offset_addr_i_i_i8_i_i_i348] = $1116;
  39206.         HEAP[$retval_i_i11_i_i_i351] = HEAP[$P_addr_i_i_i7_i_i_i347] + HEAP[$offset_addr_i_i_i8_i_i_i348] | 0;
  39207.       } else {
  39208.         HEAP[$X_addr_i_i_i_i6_i_i_i346] = 111704;
  39209.         HEAP[$retval_i_i11_i_i_i351] = HEAP[$X_addr_i_i_i_i6_i_i_i346];
  39210.       }
  39211.       HEAP[$backtrack_class_def_i_i_i] = HEAP[$retval_i_i11_i_i_i351];
  39212.       HEAP[$ref_tmp3_i_i_i] = $this1_i_i17_i;
  39213.       HEAP[$base_addr_i74_i_i_i] = $ref_tmp3_i_i_i;
  39214.       HEAP[$offset_addr_i75_i_i_i] = $this1_i_i17_i + 6 | 0;
  39215.       var $1137 = HEAP[HEAP[$base_addr_i74_i_i_i]];
  39216.       HEAP[$this_addr_i_i71_i_i_i] = HEAP[$offset_addr_i75_i_i_i];
  39217.       HEAP[$base_addr_i_i72_i_i_i] = $1137;
  39218.       HEAP[$this_addr_i_i_i69_i_i_i] = HEAP[$this_addr_i_i71_i_i_i];
  39219.       HEAP[$this_addr_i_i_i_i68_i_i_i] = HEAP[$this_addr_i_i_i69_i_i_i] | 0;
  39220.       var $this1_i_i_i_i79_i_i_i = HEAP[$this_addr_i_i_i_i68_i_i_i];
  39221.       var $conv_i_i89_i_i_i = ((HEAP[$this1_i_i_i_i79_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i79_i_i_i + 1 | 0] & 255) & 65535;
  39222.       HEAP[$offset_i_i73_i_i_i] = $conv_i_i89_i_i_i;
  39223.       if (($conv_i_i89_i_i_i | 0) != 0) {
  39224.         var $1154 = HEAP[$offset_i_i73_i_i_i];
  39225.         HEAP[$P_addr_i_i_i66_i_i_i] = HEAP[$base_addr_i_i72_i_i_i];
  39226.         HEAP[$offset_addr_i_i_i67_i_i_i] = $1154;
  39227.         HEAP[$retval_i_i70_i_i_i] = HEAP[$P_addr_i_i_i66_i_i_i] + HEAP[$offset_addr_i_i_i67_i_i_i] | 0;
  39228.       } else {
  39229.         HEAP[$X_addr_i_i_i_i65_i_i_i] = 111704;
  39230.         HEAP[$retval_i_i70_i_i_i] = HEAP[$X_addr_i_i_i_i65_i_i_i];
  39231.       }
  39232.       HEAP[$input_class_def_i_i_i] = HEAP[$retval_i_i70_i_i_i];
  39233.       HEAP[$ref_tmp5_i_i_i372] = $this1_i_i17_i;
  39234.       HEAP[$base_addr_i44_i_i_i] = $ref_tmp5_i_i_i372;
  39235.       HEAP[$offset_addr_i45_i_i_i] = $this1_i_i17_i + 8 | 0;
  39236.       var $1175 = HEAP[HEAP[$base_addr_i44_i_i_i]];
  39237.       HEAP[$this_addr_i_i41_i_i_i] = HEAP[$offset_addr_i45_i_i_i];
  39238.       HEAP[$base_addr_i_i42_i_i_i] = $1175;
  39239.       HEAP[$this_addr_i_i_i39_i_i_i] = HEAP[$this_addr_i_i41_i_i_i];
  39240.       HEAP[$this_addr_i_i_i_i38_i_i_i] = HEAP[$this_addr_i_i_i39_i_i_i] | 0;
  39241.       var $this1_i_i_i_i49_i_i_i = HEAP[$this_addr_i_i_i_i38_i_i_i];
  39242.       var $conv_i_i59_i_i_i = ((HEAP[$this1_i_i_i_i49_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i49_i_i_i + 1 | 0] & 255) & 65535;
  39243.       HEAP[$offset_i_i43_i_i_i] = $conv_i_i59_i_i_i;
  39244.       if (($conv_i_i59_i_i_i | 0) != 0) {
  39245.         var $1192 = HEAP[$offset_i_i43_i_i_i];
  39246.         HEAP[$P_addr_i_i_i36_i_i_i] = HEAP[$base_addr_i_i42_i_i_i];
  39247.         HEAP[$offset_addr_i_i_i37_i_i_i] = $1192;
  39248.         HEAP[$retval_i_i40_i_i_i] = HEAP[$P_addr_i_i_i36_i_i_i] + HEAP[$offset_addr_i_i_i37_i_i_i] | 0;
  39249.       } else {
  39250.         HEAP[$X_addr_i_i_i_i35_i_i_i] = 111704;
  39251.         HEAP[$retval_i_i40_i_i_i] = HEAP[$X_addr_i_i_i_i35_i_i_i];
  39252.       }
  39253.       HEAP[$lookahead_class_def_i_i_i] = HEAP[$retval_i_i40_i_i_i];
  39254.       var $call7_i_i_i434 = __ZNK2OT8ClassDef9get_classEj(HEAP[$input_class_def_i_i_i], HEAP[HEAP[HEAP[$c_addr_i_i12_i] + 4 | 0]]);
  39255.       HEAP[$index_i_i_i373] = $call7_i_i_i434;
  39256.       HEAP[$ref_tmp8_i_i_i] = $this1_i_i17_i;
  39257.       var $1212 = HEAP[$index_i_i_i373];
  39258.       HEAP[$this_addr_i_i_i6_i] = $this1_i_i17_i + 10 | 0;
  39259.       HEAP[$i_addr_i_i_i_i361] = $1212;
  39260.       var $this1_i_i_i18_i = HEAP[$this_addr_i_i_i6_i];
  39261.       var $1216 = HEAP[$i_addr_i_i_i_i361];
  39262.       HEAP[$this_addr_i_i2_i_i_i359] = $this1_i_i_i18_i | 0;
  39263.       HEAP[$this_addr_i_i_i1_i_i_i358] = HEAP[$this_addr_i_i2_i_i_i359] | 0;
  39264.       var $this1_i_i_i4_i_i_i438 = HEAP[$this_addr_i_i_i1_i_i_i358];
  39265.       if ($1216 >>> 0 >= (((HEAP[$this1_i_i_i4_i_i_i438 | 0] & 255) << 8) + (HEAP[$this1_i_i_i4_i_i_i438 + 1 | 0] & 255) & 65535) >>> 0) {
  39266.         HEAP[$X_addr_i_i_i_i_i_i357] = 111704;
  39267.         HEAP[$retval_i_i_i_i360] = HEAP[$X_addr_i_i_i_i_i_i357];
  39268.       } else {
  39269.         HEAP[$retval_i_i_i_i360] = (HEAP[$i_addr_i_i_i_i361] << 1) + $this1_i_i_i18_i + 2 | 0;
  39270.       }
  39271.       var $1232 = HEAP[$retval_i_i_i_i360];
  39272.       HEAP[$base_addr_i_i_i_i369] = $ref_tmp8_i_i_i;
  39273.       HEAP[$offset_addr_i_i_i_i370] = $1232;
  39274.       var $1238 = HEAP[HEAP[$base_addr_i_i_i_i369]];
  39275.       HEAP[$this_addr_i_i_i_i9_i366] = HEAP[$offset_addr_i_i_i_i370];
  39276.       HEAP[$base_addr_i_i_i_i_i367] = $1238;
  39277.       HEAP[$this_addr_i_i_i_i_i8_i] = HEAP[$this_addr_i_i_i_i9_i366];
  39278.       HEAP[$this_addr_i_i_i_i_i_i7_i] = HEAP[$this_addr_i_i_i_i_i8_i] | 0;
  39279.       var $this1_i_i_i_i_i_i23_i = HEAP[$this_addr_i_i_i_i_i_i7_i];
  39280.       var $conv_i_i_i_i33_i = ((HEAP[$this1_i_i_i_i_i_i23_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i23_i + 1 | 0] & 255) & 65535;
  39281.       HEAP[$offset_i_i_i_i_i368] = $conv_i_i_i_i33_i;
  39282.       if (($conv_i_i_i_i33_i | 0) != 0) {
  39283.         var $1255 = HEAP[$offset_i_i_i_i_i368];
  39284.         HEAP[$P_addr_i_i_i_i_i_i363] = HEAP[$base_addr_i_i_i_i_i367];
  39285.         HEAP[$offset_addr_i_i_i_i_i_i364] = $1255;
  39286.         HEAP[$retval_i_i_i_i_i365] = HEAP[$P_addr_i_i_i_i_i_i363] + HEAP[$offset_addr_i_i_i_i_i_i364] | 0;
  39287.       } else {
  39288.         HEAP[$X_addr_i_i_i_i_i_i_i362] = 111704;
  39289.         HEAP[$retval_i_i_i_i_i365] = HEAP[$X_addr_i_i_i_i_i_i_i362];
  39290.       }
  39291.       HEAP[$rule_set_i_i_i374] = HEAP[$retval_i_i_i_i_i365];
  39292.       HEAP[$lookup_context_i_i13_i | 0] = 176;
  39293.       var $arrayinit_begin_i_i37_i = $lookup_context_i_i13_i + 4 | 0;
  39294.       HEAP[$arrayinit_begin_i_i37_i] = HEAP[$backtrack_class_def_i_i_i];
  39295.       var $arrayinit_element_i_i38_i = $arrayinit_begin_i_i37_i + 4 | 0;
  39296.       HEAP[$arrayinit_element_i_i38_i] = HEAP[$input_class_def_i_i_i];
  39297.       HEAP[$arrayinit_element_i_i38_i + 4 | 0] = HEAP[$lookahead_class_def_i_i_i];
  39298.       var $tobool_i5_i459 = __ZNK2OT12ChainRuleSet11would_applyEPNS_24hb_would_apply_context_tERNS_30ChainContextApplyLookupContextE(HEAP[$rule_set_i_i_i374], HEAP[$c_addr_i_i12_i], $lookup_context_i_i13_i) & 1 & 1;
  39299.       HEAP[$retval_i391] = $tobool_i5_i459;
  39300.     } else if (($conv_i406 | 0) == 3) {
  39301.       HEAP[$this_addr_i_i387] = HEAP[$c_addr_i393];
  39302.       HEAP[$obj_addr_i_i388] = $this1_i394 | 0;
  39303.       var $this1_i_i462 = HEAP[$this_addr_i_i387];
  39304.       HEAP[$this_addr_i_i_i384] = HEAP[$obj_addr_i_i388];
  39305.       HEAP[$c_addr_i_i_i385] = $this1_i_i462;
  39306.       var $this1_i_i_i463 = HEAP[$this_addr_i_i_i384];
  39307.       HEAP[$X_addr_i76_i_i_i] = $this1_i_i_i463 + 2 | 0;
  39308.       var $1306 = HEAP[$X_addr_i76_i_i_i];
  39309.       HEAP[$this_addr_i_i75_i_i_i] = HEAP[$X_addr_i76_i_i_i];
  39310.       HEAP[$this_addr_i_i_i74_i_i_i] = HEAP[$this_addr_i_i75_i_i_i] | 0;
  39311.       HEAP[$this_addr_i_i_i_i73_i_i_i] = HEAP[$this_addr_i_i_i74_i_i_i] | 0;
  39312.       var $this1_i_i_i_i81_i_i_i = HEAP[$this_addr_i_i_i_i73_i_i_i];
  39313.       var $add_i_i93_i_i_i = ((((HEAP[$this1_i_i_i_i81_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i81_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  39314.       HEAP[$P_addr_i_i71_i_i_i] = $1306;
  39315.       HEAP[$offset_addr_i_i72_i_i_i] = $add_i_i93_i_i_i;
  39316.       HEAP[$input_i_i_i] = HEAP[$P_addr_i_i71_i_i_i] + HEAP[$offset_addr_i_i72_i_i_i] | 0;
  39317.       HEAP[$X_addr_i52_i_i_i] = HEAP[$input_i_i_i];
  39318.       var $1328 = HEAP[$X_addr_i52_i_i_i];
  39319.       HEAP[$this_addr_i_i51_i_i_i] = HEAP[$X_addr_i52_i_i_i];
  39320.       HEAP[$this_addr_i_i_i50_i_i_i377] = HEAP[$this_addr_i_i51_i_i_i] | 0;
  39321.       HEAP[$this_addr_i_i_i_i49_i_i_i376] = HEAP[$this_addr_i_i_i50_i_i_i377] | 0;
  39322.       var $this1_i_i_i_i57_i_i_i = HEAP[$this_addr_i_i_i_i49_i_i_i376];
  39323.       var $add_i_i69_i_i_i = ((((HEAP[$this1_i_i_i_i57_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i57_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  39324.       HEAP[$P_addr_i_i47_i_i_i] = $1328;
  39325.       HEAP[$offset_addr_i_i48_i_i_i] = $add_i_i69_i_i_i;
  39326.       HEAP[$lookahead_i_i_i] = HEAP[$P_addr_i_i47_i_i_i] + HEAP[$offset_addr_i_i48_i_i_i] | 0;
  39327.       HEAP[$X_addr_i_i_i_i] = HEAP[$lookahead_i_i_i];
  39328.       var $1350 = HEAP[$X_addr_i_i_i_i];
  39329.       HEAP[$this_addr_i_i43_i_i_i] = HEAP[$X_addr_i_i_i_i];
  39330.       HEAP[$this_addr_i_i_i_i_i_i380] = HEAP[$this_addr_i_i43_i_i_i] | 0;
  39331.       HEAP[$this_addr_i_i_i_i_i_i_i379] = HEAP[$this_addr_i_i_i_i_i_i380] | 0;
  39332.       var $this1_i_i_i_i_i_i_i467 = HEAP[$this_addr_i_i_i_i_i_i_i379];
  39333.       var $add_i_i46_i_i_i = ((((HEAP[$this1_i_i_i_i_i_i_i467 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i467 + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  39334.       HEAP[$P_addr_i_i_i_i_i] = $1350;
  39335.       HEAP[$offset_addr_i_i_i_i_i378] = $add_i_i46_i_i_i;
  39336.       HEAP[$lookup_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i378] | 0;
  39337.       HEAP[$lookup_context_i_i_i386 | 0] = 114;
  39338.       var $arrayinit_begin_i_i_i = $lookup_context_i_i_i386 + 4 | 0;
  39339.       HEAP[$arrayinit_begin_i_i_i] = $this1_i_i_i463;
  39340.       var $arrayinit_element_i_i_i = $arrayinit_begin_i_i_i + 4 | 0;
  39341.       HEAP[$arrayinit_element_i_i_i] = $this1_i_i_i463;
  39342.       HEAP[$arrayinit_element_i_i_i + 4 | 0] = $this1_i_i_i463;
  39343.       var $1372 = HEAP[$c_addr_i_i_i385];
  39344.       HEAP[$this_addr_i30_i_i_i] = $this1_i_i_i463 + 2 | 0;
  39345.       HEAP[$this_addr_i_i29_i_i_i] = HEAP[$this_addr_i30_i_i_i] | 0;
  39346.       var $this1_i_i33_i_i_i = HEAP[$this_addr_i_i29_i_i_i];
  39347.       var $conv_i_i_i480 = ((HEAP[$this1_i_i33_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i_i_i + 1 | 0] & 255) & 65535;
  39348.       HEAP[$this_addr_i16_i_i_i] = HEAP[$input_i_i_i] | 0;
  39349.       HEAP[$this_addr_i_i15_i_i_i] = HEAP[$this_addr_i16_i_i_i] | 0;
  39350.       var $this1_i_i19_i_i_i = HEAP[$this_addr_i_i15_i_i_i];
  39351.       var $conv12_i_i_i = ((HEAP[$this1_i_i19_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i19_i_i_i + 1 | 0] & 255) & 65535;
  39352.       var $add_ptr_i_i_i482 = HEAP[$input_i_i_i] + 4 | 0;
  39353.       HEAP[$this_addr_i2_i_i_i] = HEAP[$lookahead_i_i_i] | 0;
  39354.       HEAP[$this_addr_i_i1_i_i_i] = HEAP[$this_addr_i2_i_i_i] | 0;
  39355.       var $this1_i_i5_i_i_i = HEAP[$this_addr_i_i1_i_i_i];
  39356.       var $conv17_i_i_i = ((HEAP[$this1_i_i5_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i + 1 | 0] & 255) & 65535;
  39357.       var $1403 = HEAP[$lookahead_i_i_i] + 2 | 0;
  39358.       HEAP[$this_addr_i_i_i_i382] = HEAP[$lookup_i_i_i] | 0;
  39359.       HEAP[$this_addr_i_i_i_i_i381] = HEAP[$this_addr_i_i_i_i382] | 0;
  39360.       var $this1_i_i_i_i_i485 = HEAP[$this_addr_i_i_i_i_i381];
  39361.       var $tobool_i2_i498 = __ZN2OTL32chain_context_would_apply_lookupEPNS_24hb_would_apply_context_tEjPKNS_7IntTypeItLj2EEEjS5_jS5_jPKNS_12LookupRecordERNS_30ChainContextApplyLookupContextE($1372, $conv_i_i_i480, $this1_i_i_i463 + 4 | 0, $conv12_i_i_i, $add_ptr_i_i_i482, $conv17_i_i_i, $1403, ((HEAP[$this1_i_i_i_i_i485 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i485 + 1 | 0] & 255) & 65535, HEAP[$lookup_i_i_i] + 2 | 0, $lookup_context_i_i_i386) & 1 & 1;
  39362.       HEAP[$retval_i391] = $tobool_i2_i498;
  39363.     } else {
  39364.       HEAP[$retval_i391] = 0;
  39365.     }
  39366.     $retval = HEAP[$retval_i391] & 1;
  39367.     var $1533 = $retval;
  39368.     STACKTOP = __stackBase__;
  39369.     return $1533;
  39370.   } else if (($0 | 0) == 7) {
  39371.     HEAP[$this_addr_i592] = $this1 | 0;
  39372.     HEAP[$c_addr_i593] = $c_addr;
  39373.     var $this1_i594 = HEAP[$this_addr_i592];
  39374.     var $call_i = __ZNK2OT9ExtensionINS_14ExtensionSubstEE12get_subtableINS_19SubstLookupSubTableEEERKT_v($this1_i594);
  39375.     var $1434 = HEAP[$c_addr_i593];
  39376.     HEAP[$this_addr_i_i591] = $this1_i594;
  39377.     var $this1_i_i595 = HEAP[$this_addr_i_i591];
  39378.     HEAP[$this_addr_i_i_i590] = $this1_i_i595 | 0;
  39379.     HEAP[$this_addr_i_i_i_i589] = HEAP[$this_addr_i_i_i590] | 0;
  39380.     var $this1_i_i_i_i598 = HEAP[$this_addr_i_i_i_i589];
  39381.     if ((((HEAP[$this1_i_i_i_i598 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i598 + 1 | 0] & 255) & 65535 | 0) == 1) {
  39382.       HEAP[$this_addr_i2_i_i] = $this1_i_i595 | 0;
  39383.       HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] + 2 | 0;
  39384.       HEAP[$this_addr_i_i_i_i_i588] = HEAP[$this_addr_i_i1_i_i] | 0;
  39385.       var $this1_i_i_i_i_i602 = HEAP[$this_addr_i_i_i_i_i588];
  39386.       HEAP[$retval_i_i] = ((HEAP[$this1_i_i_i_i_i602 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i602 + 1 | 0] & 255) & 65535;
  39387.     } else {
  39388.       HEAP[$retval_i_i] = 0;
  39389.     }
  39390.     $retval = __ZNK2OT19SubstLookupSubTable8dispatchINS_24hb_would_apply_context_tEEENT_8return_tEPS3_j($call_i, $1434, HEAP[$retval_i_i]) & 1;
  39391.     var $1533 = $retval;
  39392.     STACKTOP = __stackBase__;
  39393.     return $1533;
  39394.   } else if (($0 | 0) == 8) {
  39395.     HEAP[$this_addr_i530] = $this1 | 0;
  39396.     HEAP[$c_addr_i531] = $c_addr;
  39397.     var $this1_i532 = HEAP[$this_addr_i530];
  39398.     HEAP[$this_addr_i4_i509] = $this1_i532 | 0;
  39399.     HEAP[$this_addr_i_i3_i508] = HEAP[$this_addr_i4_i509] | 0;
  39400.     var $this1_i_i6_i537 = HEAP[$this_addr_i_i3_i508];
  39401.     if ((((HEAP[$this1_i_i6_i537 | 0] & 255) << 8) + (HEAP[$this1_i_i6_i537 + 1 | 0] & 255) & 65535 | 0) == 1) {
  39402.       HEAP[$this_addr_i_i525] = HEAP[$c_addr_i531];
  39403.       HEAP[$obj_addr_i_i526] = $this1_i532 | 0;
  39404.       var $this1_i_i551 = HEAP[$this_addr_i_i525];
  39405.       HEAP[$this_addr_i_i_i522] = HEAP[$obj_addr_i_i526];
  39406.       HEAP[$c_addr_i_i_i523] = $this1_i_i551;
  39407.       var $this1_i_i_i552 = HEAP[$this_addr_i_i_i522];
  39408.       if ((HEAP[HEAP[$c_addr_i_i_i523] + 8 | 0] | 0) == 1) {
  39409.         HEAP[$ref_tmp_i_i_i524] = $this1_i_i_i552;
  39410.         HEAP[$base_addr_i_i_i_i519] = $ref_tmp_i_i_i524;
  39411.         HEAP[$offset_addr_i_i_i_i520] = $this1_i_i_i552 + 2 | 0;
  39412.         var $1482 = HEAP[HEAP[$base_addr_i_i_i_i519]];
  39413.         HEAP[$this_addr_i_i_i_i_i516] = HEAP[$offset_addr_i_i_i_i520];
  39414.         HEAP[$base_addr_i_i_i_i_i517] = $1482;
  39415.         HEAP[$this_addr_i_i_i_i_i_i514] = HEAP[$this_addr_i_i_i_i_i516];
  39416.         HEAP[$this_addr_i_i_i_i_i_i_i513] = HEAP[$this_addr_i_i_i_i_i_i514] | 0;
  39417.         var $this1_i_i_i_i_i_i_i560 = HEAP[$this_addr_i_i_i_i_i_i_i513];
  39418.         HEAP[$offset_i_i_i_i_i518] = ((HEAP[$this1_i_i_i_i_i_i_i560 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i560 + 1 | 0] & 255) & 65535;
  39419.         if ((HEAP[$offset_i_i_i_i_i518] | 0) != 0) {
  39420.           var $1500 = HEAP[$offset_i_i_i_i_i518];
  39421.           HEAP[$P_addr_i_i_i_i_i_i511] = HEAP[$base_addr_i_i_i_i_i517];
  39422.           HEAP[$offset_addr_i_i_i_i_i_i512] = $1500;
  39423.           HEAP[$retval_i_i_i_i_i515] = HEAP[$P_addr_i_i_i_i_i_i511] + HEAP[$offset_addr_i_i_i_i_i_i512] | 0;
  39424.         } else {
  39425.           HEAP[$X_addr_i_i_i_i_i_i_i510] = 111704;
  39426.           HEAP[$retval_i_i_i_i_i515] = HEAP[$X_addr_i_i_i_i_i_i_i510];
  39427.         }
  39428.         var $1518 = (__ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i_i_i_i515], HEAP[HEAP[HEAP[$c_addr_i_i_i523] + 4 | 0]]) | 0) != -1;
  39429.       } else {
  39430.         var $1518 = 0;
  39431.       }
  39432.       var $1518;
  39433.       HEAP[$retval_i529] = $1518 & 1 & 1;
  39434.     } else {
  39435.       HEAP[$retval_i529] = 0;
  39436.     }
  39437.     $retval = HEAP[$retval_i529] & 1;
  39438.     var $1533 = $retval;
  39439.     STACKTOP = __stackBase__;
  39440.     return $1533;
  39441.   } else if (($0 | 0) == 5) {
  39442.     HEAP[$this_addr_i263] = $this1 | 0;
  39443.     HEAP[$c_addr_i264] = $c_addr;
  39444.     var $this1_i265 = HEAP[$this_addr_i263];
  39445.     HEAP[$this_addr_i31_i] = $this1_i265 | 0;
  39446.     HEAP[$this_addr_i_i30_i] = HEAP[$this_addr_i31_i] | 0;
  39447.     var $this1_i_i33_i = HEAP[$this_addr_i_i30_i];
  39448.     var $conv_i277 = ((HEAP[$this1_i_i33_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i + 1 | 0] & 255) & 65535;
  39449.     if (($conv_i277 | 0) == 3) {
  39450.       HEAP[$this_addr_i_i258] = HEAP[$c_addr_i264];
  39451.       HEAP[$obj_addr_i_i259] = $this1_i265 | 0;
  39452.       var $this1_i_i318 = HEAP[$this_addr_i_i258];
  39453.       HEAP[$this_addr_i_i_i256] = HEAP[$obj_addr_i_i259];
  39454.       HEAP[$c_addr_i_i_i257] = $this1_i_i318;
  39455.       var $this1_i_i_i319 = HEAP[$this_addr_i_i_i256];
  39456.       HEAP[$this_addr_i17_i_i_i] = $this1_i_i_i319 + 2 | 0;
  39457.       HEAP[$this_addr_i_i16_i_i_i] = HEAP[$this_addr_i17_i_i_i] | 0;
  39458.       var $this1_i_i20_i_i_i = HEAP[$this_addr_i_i16_i_i_i];
  39459.       var $mul_i_i_i = (((HEAP[$this1_i_i20_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i20_i_i_i + 1 | 0] & 255) & 65535) << 1;
  39460.       HEAP[$P_addr_i_i_i_i] = $this1_i_i_i319 + 6 | 0;
  39461.       HEAP[$offset_addr_i_i_i_i248] = $mul_i_i_i;
  39462.       HEAP[$lookupRecord_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i248] | 0;
  39463.       HEAP[$lookup_context_i_i_i | 0] = 114;
  39464.       HEAP[$lookup_context_i_i_i + 4 | 0] = $this1_i_i_i319;
  39465.       var $863 = HEAP[$c_addr_i_i_i257];
  39466.       HEAP[$this_addr_i3_i_i_i] = $this1_i_i_i319 + 2 | 0;
  39467.       HEAP[$this_addr_i_i2_i_i_i] = HEAP[$this_addr_i3_i_i_i] | 0;
  39468.       var $this1_i_i6_i_i_i = HEAP[$this_addr_i_i2_i_i_i];
  39469.       var $conv7_i_i_i = ((HEAP[$this1_i_i6_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i6_i_i_i + 1 | 0] & 255) & 65535;
  39470.       HEAP[$this_addr_i_i_i_i250] = $this1_i_i_i319 + 4 | 0;
  39471.       HEAP[$this_addr_i_i_i_i_i249] = HEAP[$this_addr_i_i_i_i250] | 0;
  39472.       var $this1_i_i_i_i_i323 = HEAP[$this_addr_i_i_i_i_i249];
  39473.       var $conv11_i_i_i = ((HEAP[$this1_i_i_i_i_i323 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i323 + 1 | 0] & 255) & 65535;
  39474.       var $877 = HEAP[$lookupRecord_i_i_i];
  39475.       HEAP[$c_addr_i_i_i_i254] = $863;
  39476.       HEAP[$inputCount_addr_i_i_i_i] = $conv7_i_i_i;
  39477.       HEAP[$input_addr_i_i_i_i] = $this1_i_i_i319 + 8 | 0;
  39478.       HEAP[$lookupCount_addr_i_i_i_i] = $conv11_i_i_i;
  39479.       HEAP[$lookupRecord_addr_i_i_i_i] = $877;
  39480.       HEAP[$lookup_context_addr_i_i_i_i] = $lookup_context_i_i_i;
  39481.       var $885 = HEAP[$inputCount_addr_i_i_i_i];
  39482.       var $886 = HEAP[$input_addr_i_i_i_i];
  39483.       var $888 = HEAP[HEAP[$lookup_context_addr_i_i_i_i] | 0];
  39484.       var $890 = HEAP[HEAP[$lookup_context_addr_i_i_i_i] + 4 | 0];
  39485.       HEAP[$c_addr_i_i_i_i_i252] = HEAP[$c_addr_i_i_i_i254];
  39486.       HEAP[$count_addr_i_i_i_i_i] = $885;
  39487.       HEAP[$input_addr_i_i_i_i_i] = $886;
  39488.       HEAP[$match_func_addr_i_i_i_i_i] = $888;
  39489.       HEAP[$match_data_addr_i_i_i_i_i] = $890;
  39490.       L1154 : do {
  39491.         if ((HEAP[$count_addr_i_i_i_i_i] | 0) != (HEAP[HEAP[$c_addr_i_i_i_i_i252] + 8 | 0] | 0)) {
  39492.           HEAP[$retval_i_i_i_i_i251] = 0;
  39493.         } else {
  39494.           HEAP[$i_i_i_i_i_i253] = 1;
  39495.           L1157 : do {
  39496.             if (HEAP[$i_i_i_i_i_i253] >>> 0 < HEAP[$count_addr_i_i_i_i_i] >>> 0) {
  39497.               while (1) {
  39498.                 if (!FUNCTION_TABLE[HEAP[$match_func_addr_i_i_i_i_i]](HEAP[(HEAP[$i_i_i_i_i_i253] << 2) + HEAP[HEAP[$c_addr_i_i_i_i_i252] + 4 | 0] | 0], (HEAP[$i_i_i_i_i_i253] - 1 << 1) + HEAP[$input_addr_i_i_i_i_i] | 0, HEAP[$match_data_addr_i_i_i_i_i])) {
  39499.                   break;
  39500.                 }
  39501.                 HEAP[$i_i_i_i_i_i253] = HEAP[$i_i_i_i_i_i253] + 1 | 0;
  39502.                 if (HEAP[$i_i_i_i_i_i253] >>> 0 >= HEAP[$count_addr_i_i_i_i_i] >>> 0) {
  39503.                   break L1157;
  39504.                 }
  39505.               }
  39506.               HEAP[$retval_i_i_i_i_i251] = 0;
  39507.               break L1154;
  39508.             }
  39509.           } while (0);
  39510.           HEAP[$retval_i_i_i_i_i251] = 1;
  39511.         }
  39512.       } while (0);
  39513.       HEAP[$retval_i262] = HEAP[$retval_i_i_i_i_i251] & 1 & 1;
  39514.     } else if (($conv_i277 | 0) == 2) {
  39515.       HEAP[$this_addr_i15_i] = HEAP[$c_addr_i264];
  39516.       HEAP[$obj_addr_i16_i] = $this1_i265 | 0;
  39517.       var $this1_i17_i = HEAP[$this_addr_i15_i];
  39518.       HEAP[$this_addr_i_i12_i] = HEAP[$obj_addr_i16_i];
  39519.       HEAP[$c_addr_i_i13_i] = $this1_i17_i;
  39520.       var $this1_i_i18_i = HEAP[$this_addr_i_i12_i];
  39521.       HEAP[$ref_tmp_i_i_i245] = $this1_i_i18_i;
  39522.       HEAP[$base_addr_i15_i_i_i] = $ref_tmp_i_i_i245;
  39523.       HEAP[$offset_addr_i16_i_i_i] = $this1_i_i18_i + 4 | 0;
  39524.       var $728 = HEAP[HEAP[$base_addr_i15_i_i_i]];
  39525.       HEAP[$this_addr_i_i12_i_i_i] = HEAP[$offset_addr_i16_i_i_i];
  39526.       HEAP[$base_addr_i_i13_i_i_i] = $728;
  39527.       HEAP[$this_addr_i_i_i10_i_i_i] = HEAP[$this_addr_i_i12_i_i_i];
  39528.       HEAP[$this_addr_i_i_i_i9_i_i_i] = HEAP[$this_addr_i_i_i10_i_i_i] | 0;
  39529.       var $this1_i_i_i_i20_i_i_i = HEAP[$this_addr_i_i_i_i9_i_i_i];
  39530.       HEAP[$offset_i_i14_i_i_i] = ((HEAP[$this1_i_i_i_i20_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20_i_i_i + 1 | 0] & 255) & 65535;
  39531.       if ((HEAP[$offset_i_i14_i_i_i] | 0) != 0) {
  39532.         var $746 = HEAP[$offset_i_i14_i_i_i];
  39533.         HEAP[$P_addr_i_i_i7_i_i_i] = HEAP[$base_addr_i_i13_i_i_i];
  39534.         HEAP[$offset_addr_i_i_i8_i_i_i] = $746;
  39535.         HEAP[$retval_i_i11_i_i_i] = HEAP[$P_addr_i_i_i7_i_i_i] + HEAP[$offset_addr_i_i_i8_i_i_i] | 0;
  39536.       } else {
  39537.         HEAP[$X_addr_i_i_i_i6_i_i_i] = 111704;
  39538.         HEAP[$retval_i_i11_i_i_i] = HEAP[$X_addr_i_i_i_i6_i_i_i];
  39539.       }
  39540.       HEAP[$class_def_i_i_i] = HEAP[$retval_i_i11_i_i_i];
  39541.       var $call3_i_i_i286 = __ZNK2OT8ClassDef9get_classEj(HEAP[$class_def_i_i_i], HEAP[HEAP[HEAP[$c_addr_i_i13_i] + 4 | 0]]);
  39542.       HEAP[$index_i_i_i246] = $call3_i_i_i286;
  39543.       HEAP[$ref_tmp4_i_i_i] = $this1_i_i18_i;
  39544.       var $766 = HEAP[$index_i_i_i246];
  39545.       HEAP[$this_addr_i_i_i7_i] = $this1_i_i18_i + 6 | 0;
  39546.       HEAP[$i_addr_i_i_i_i236] = $766;
  39547.       var $this1_i_i_i19_i = HEAP[$this_addr_i_i_i7_i];
  39548.       var $770 = HEAP[$i_addr_i_i_i_i236];
  39549.       HEAP[$this_addr_i_i2_i_i6_i] = $this1_i_i_i19_i | 0;
  39550.       HEAP[$this_addr_i_i_i1_i_i_i] = HEAP[$this_addr_i_i2_i_i6_i] | 0;
  39551.       var $this1_i_i_i4_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i];
  39552.       if ($770 >>> 0 >= (((HEAP[$this1_i_i_i4_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i4_i_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  39553.         HEAP[$X_addr_i_i_i_i_i_i234] = 111704;
  39554.         HEAP[$retval_i_i_i_i235] = HEAP[$X_addr_i_i_i_i_i_i234];
  39555.       } else {
  39556.         HEAP[$retval_i_i_i_i235] = (HEAP[$i_addr_i_i_i_i236] << 1) + $this1_i_i_i19_i + 2 | 0;
  39557.       }
  39558.       var $786 = HEAP[$retval_i_i_i_i235];
  39559.       HEAP[$base_addr_i_i_i_i244] = $ref_tmp4_i_i_i;
  39560.       HEAP[$offset_addr_i_i_i10_i] = $786;
  39561.       var $792 = HEAP[HEAP[$base_addr_i_i_i_i244]];
  39562.       HEAP[$this_addr_i_i_i_i9_i] = HEAP[$offset_addr_i_i_i10_i];
  39563.       HEAP[$base_addr_i_i_i_i_i242] = $792;
  39564.       HEAP[$this_addr_i_i_i_i_i_i241] = HEAP[$this_addr_i_i_i_i9_i];
  39565.       HEAP[$this_addr_i_i_i_i_i_i_i240] = HEAP[$this_addr_i_i_i_i_i_i241] | 0;
  39566.       var $this1_i_i_i_i_i_i_i304 = HEAP[$this_addr_i_i_i_i_i_i_i240];
  39567.       var $conv_i_i_i_i22_i = ((HEAP[$this1_i_i_i_i_i_i_i304 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i304 + 1 | 0] & 255) & 65535;
  39568.       HEAP[$offset_i_i_i_i_i243] = $conv_i_i_i_i22_i;
  39569.       if (($conv_i_i_i_i22_i | 0) != 0) {
  39570.         var $809 = HEAP[$offset_i_i_i_i_i243];
  39571.         HEAP[$P_addr_i_i_i_i_i_i238] = HEAP[$base_addr_i_i_i_i_i242];
  39572.         HEAP[$offset_addr_i_i_i_i_i_i239] = $809;
  39573.         HEAP[$retval_i_i_i_i8_i] = HEAP[$P_addr_i_i_i_i_i_i238] + HEAP[$offset_addr_i_i_i_i_i_i239] | 0;
  39574.       } else {
  39575.         HEAP[$X_addr_i_i_i_i_i_i_i237] = 111704;
  39576.         HEAP[$retval_i_i_i_i8_i] = HEAP[$X_addr_i_i_i_i_i_i_i237];
  39577.       }
  39578.       HEAP[$rule_set_i_i_i] = HEAP[$retval_i_i_i_i8_i];
  39579.       HEAP[$lookup_context_i_i14_i | 0] = 176;
  39580.       HEAP[$lookup_context_i_i14_i + 4 | 0] = HEAP[$class_def_i_i_i];
  39581.       var $tobool_i5_i317 = __ZNK2OT7RuleSet11would_applyEPNS_24hb_would_apply_context_tERNS_25ContextApplyLookupContextE(HEAP[$rule_set_i_i_i], HEAP[$c_addr_i_i13_i], $lookup_context_i_i14_i) & 1 & 1;
  39582.       HEAP[$retval_i262] = $tobool_i5_i317;
  39583.     } else if (($conv_i277 | 0) == 1) {
  39584.       HEAP[$this_addr_i69_i] = HEAP[$c_addr_i264];
  39585.       HEAP[$obj_addr_i70_i] = $this1_i265 | 0;
  39586.       var $this1_i71_i = HEAP[$this_addr_i69_i];
  39587.       HEAP[$this_addr_i_i64_i] = HEAP[$obj_addr_i70_i];
  39588.       HEAP[$c_addr_i_i65_i] = $this1_i71_i;
  39589.       var $this1_i_i72_i = HEAP[$this_addr_i_i64_i];
  39590.       HEAP[$ref_tmp_i_i67_i] = $this1_i_i72_i;
  39591.       HEAP[$ref_tmp2_i_i_i] = $this1_i_i72_i;
  39592.       HEAP[$base_addr_i15_i_i44_i] = $ref_tmp2_i_i_i;
  39593.       HEAP[$offset_addr_i16_i_i45_i] = $this1_i_i72_i + 2 | 0;
  39594.       var $604 = HEAP[HEAP[$base_addr_i15_i_i44_i]];
  39595.       HEAP[$this_addr_i_i12_i_i41_i] = HEAP[$offset_addr_i16_i_i45_i];
  39596.       HEAP[$base_addr_i_i13_i_i42_i] = $604;
  39597.       HEAP[$this_addr_i_i_i10_i_i39_i] = HEAP[$this_addr_i_i12_i_i41_i];
  39598.       HEAP[$this_addr_i_i_i_i9_i_i38_i] = HEAP[$this_addr_i_i_i10_i_i39_i] | 0;
  39599.       var $this1_i_i_i_i20_i_i78_i = HEAP[$this_addr_i_i_i_i9_i_i38_i];
  39600.       HEAP[$offset_i_i14_i_i43_i] = ((HEAP[$this1_i_i_i_i20_i_i78_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i20_i_i78_i + 1 | 0] & 255) & 65535;
  39601.       if ((HEAP[$offset_i_i14_i_i43_i] | 0) != 0) {
  39602.         var $622 = HEAP[$offset_i_i14_i_i43_i];
  39603.         HEAP[$P_addr_i_i_i7_i_i36_i] = HEAP[$base_addr_i_i13_i_i42_i];
  39604.         HEAP[$offset_addr_i_i_i8_i_i37_i] = $622;
  39605.         HEAP[$retval_i_i11_i_i40_i] = HEAP[$P_addr_i_i_i7_i_i36_i] + HEAP[$offset_addr_i_i_i8_i_i37_i] | 0;
  39606.       } else {
  39607.         HEAP[$X_addr_i_i_i_i6_i_i35_i] = 111704;
  39608.         HEAP[$retval_i_i11_i_i40_i] = HEAP[$X_addr_i_i_i_i6_i_i35_i];
  39609.       }
  39610.       var $call4_i_i_i281 = __ZNK2OT8Coverage12get_coverageEj(HEAP[$retval_i_i11_i_i40_i], HEAP[HEAP[HEAP[$c_addr_i_i65_i] + 4 | 0]]);
  39611.       HEAP[$this_addr_i_i_i50_i] = $this1_i_i72_i + 4 | 0;
  39612.       HEAP[$i_addr_i_i_i51_i] = $call4_i_i_i281;
  39613.       var $this1_i_i_i94_i = HEAP[$this_addr_i_i_i50_i];
  39614.       var $643 = HEAP[$i_addr_i_i_i51_i];
  39615.       HEAP[$this_addr_i_i2_i_i48_i] = $this1_i_i_i94_i | 0;
  39616.       HEAP[$this_addr_i_i_i1_i_i47_i] = HEAP[$this_addr_i_i2_i_i48_i] | 0;
  39617.       var $this1_i_i_i4_i_i98_i = HEAP[$this_addr_i_i_i1_i_i47_i];
  39618.       if ($643 >>> 0 >= (((HEAP[$this1_i_i_i4_i_i98_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i4_i_i98_i + 1 | 0] & 255) & 65535) >>> 0) {
  39619.         HEAP[$X_addr_i_i_i_i_i46_i] = 111704;
  39620.         HEAP[$retval_i_i_i49_i] = HEAP[$X_addr_i_i_i_i_i46_i];
  39621.       } else {
  39622.         HEAP[$retval_i_i_i49_i] = (HEAP[$i_addr_i_i_i51_i] << 1) + $this1_i_i_i94_i + 2 | 0;
  39623.       }
  39624.       var $659 = HEAP[$retval_i_i_i49_i];
  39625.       HEAP[$base_addr_i_i_i61_i] = $ref_tmp_i_i67_i;
  39626.       HEAP[$offset_addr_i_i_i62_i] = $659;
  39627.       var $665 = HEAP[HEAP[$base_addr_i_i_i61_i]];
  39628.       HEAP[$this_addr_i_i_i_i58_i] = HEAP[$offset_addr_i_i_i62_i];
  39629.       HEAP[$base_addr_i_i_i_i59_i] = $665;
  39630.       HEAP[$this_addr_i_i_i_i_i56_i] = HEAP[$this_addr_i_i_i_i58_i];
  39631.       HEAP[$this_addr_i_i_i_i_i_i55_i] = HEAP[$this_addr_i_i_i_i_i56_i] | 0;
  39632.       var $this1_i_i_i_i_i_i117_i = HEAP[$this_addr_i_i_i_i_i_i55_i];
  39633.       var $conv_i_i_i_i127_i = ((HEAP[$this1_i_i_i_i_i_i117_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i117_i + 1 | 0] & 255) & 65535;
  39634.       HEAP[$offset_i_i_i_i60_i] = $conv_i_i_i_i127_i;
  39635.       if (($conv_i_i_i_i127_i | 0) != 0) {
  39636.         var $682 = HEAP[$offset_i_i_i_i60_i];
  39637.         HEAP[$P_addr_i_i_i_i_i53_i] = HEAP[$base_addr_i_i_i_i59_i];
  39638.         HEAP[$offset_addr_i_i_i_i_i54_i] = $682;
  39639.         HEAP[$retval_i_i_i_i57_i] = HEAP[$P_addr_i_i_i_i_i53_i] + HEAP[$offset_addr_i_i_i_i_i54_i] | 0;
  39640.       } else {
  39641.         HEAP[$X_addr_i_i_i_i_i_i52_i] = 111704;
  39642.         HEAP[$retval_i_i_i_i57_i] = HEAP[$X_addr_i_i_i_i_i_i52_i];
  39643.       }
  39644.       HEAP[$rule_set_i_i66_i] = HEAP[$retval_i_i_i_i57_i];
  39645.       var $697 = $lookup_context_i_i68_i;
  39646.       HEAP[$697] = HEAP[110728];
  39647.       HEAP[$697 + 1] = HEAP[110729];
  39648.       HEAP[$697 + 2] = HEAP[110730];
  39649.       HEAP[$697 + 3] = HEAP[110731];
  39650.       HEAP[$697 + 4] = HEAP[110732];
  39651.       HEAP[$697 + 5] = HEAP[110733];
  39652.       HEAP[$697 + 6] = HEAP[110734];
  39653.       HEAP[$697 + 7] = HEAP[110735];
  39654.       var $tobool_i138_i = __ZNK2OT7RuleSet11would_applyEPNS_24hb_would_apply_context_tERNS_25ContextApplyLookupContextE(HEAP[$rule_set_i_i66_i], HEAP[$c_addr_i_i65_i], $lookup_context_i_i68_i) & 1 & 1;
  39655.       HEAP[$retval_i262] = $tobool_i138_i;
  39656.     } else {
  39657.       HEAP[$retval_i262] = 0;
  39658.     }
  39659.     $retval = HEAP[$retval_i262] & 1;
  39660.     var $1533 = $retval;
  39661.     STACKTOP = __stackBase__;
  39662.     return $1533;
  39663.   } else {
  39664.     $retval = 0;
  39665.     var $1533 = $retval;
  39666.     STACKTOP = __stackBase__;
  39667.     return $1533;
  39668.   }
  39669. }
  39670. function __ZN2OTL32chain_context_would_apply_lookupEPNS_24hb_would_apply_context_tEjPKNS_7IntTypeItLj2EEEjS5_jS5_jPKNS_12LookupRecordERNS_30ChainContextApplyLookupContextE($c, $backtrackCount, $backtrack, $inputCount, $input, $lookaheadCount, $lookahead, $lookupCount, $lookupRecord, $lookup_context) {
  39671.   var __stackBase__ = STACKTOP;
  39672.   STACKTOP = STACKTOP + 25 | 0;
  39673.   var $retval_i = __stackBase__;
  39674.   var $c_addr_i = __stackBase__ + 1;
  39675.   var $count_addr_i = __stackBase__ + 5;
  39676.   var $input_addr_i = __stackBase__ + 9;
  39677.   var $match_func_addr_i = __stackBase__ + 13;
  39678.   var $match_data_addr_i = __stackBase__ + 17;
  39679.   var $i_i = __stackBase__ + 21;
  39680.   var $c_addr;
  39681.   var $inputCount_addr;
  39682.   var $input_addr;
  39683.   var $lookaheadCount_addr;
  39684.   var $lookup_context_addr;
  39685.   $c_addr = $c;
  39686.   $inputCount_addr = $inputCount;
  39687.   $input_addr = $input;
  39688.   $lookaheadCount_addr = $lookaheadCount;
  39689.   $lookup_context_addr = $lookup_context;
  39690.   do {
  39691.     if (HEAP[$c_addr + 12 | 0] & 1) {
  39692.       if (($backtrackCount | 0) != 0) {
  39693.         var $42 = 0;
  39694.         var $42;
  39695.         STACKTOP = __stackBase__;
  39696.         return $42;
  39697.       }
  39698.       if (($lookaheadCount_addr | 0) != 0) {
  39699.         var $42 = 0;
  39700.       } else {
  39701.         break;
  39702.       }
  39703.       var $42;
  39704.       STACKTOP = __stackBase__;
  39705.       return $42;
  39706.     }
  39707.   } while (0);
  39708.   var $8 = HEAP[$lookup_context_addr | 0];
  39709.   var $10 = HEAP[$lookup_context_addr + 8 | 0];
  39710.   HEAP[$c_addr_i] = $c_addr;
  39711.   HEAP[$count_addr_i] = $inputCount_addr;
  39712.   HEAP[$input_addr_i] = $input_addr;
  39713.   HEAP[$match_func_addr_i] = $8;
  39714.   HEAP[$match_data_addr_i] = $10;
  39715.   L8 : do {
  39716.     if ((HEAP[$count_addr_i] | 0) != (HEAP[HEAP[$c_addr_i] + 8 | 0] | 0)) {
  39717.       HEAP[$retval_i] = 0;
  39718.     } else {
  39719.       HEAP[$i_i] = 1;
  39720.       L11 : do {
  39721.         if (HEAP[$i_i] >>> 0 < HEAP[$count_addr_i] >>> 0) {
  39722.           while (1) {
  39723.             if (!FUNCTION_TABLE[HEAP[$match_func_addr_i]](HEAP[(HEAP[$i_i] << 2) + HEAP[HEAP[$c_addr_i] + 4 | 0] | 0], (HEAP[$i_i] - 1 << 1) + HEAP[$input_addr_i] | 0, HEAP[$match_data_addr_i])) {
  39724.               break;
  39725.             }
  39726.             HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  39727.             if (HEAP[$i_i] >>> 0 >= HEAP[$count_addr_i] >>> 0) {
  39728.               break L11;
  39729.             }
  39730.           }
  39731.           HEAP[$retval_i] = 0;
  39732.           break L8;
  39733.         }
  39734.       } while (0);
  39735.       HEAP[$retval_i] = 1;
  39736.     }
  39737.   } while (0);
  39738.   var $42 = HEAP[$retval_i];
  39739.   var $42;
  39740.   STACKTOP = __stackBase__;
  39741.   return $42;
  39742. }
  39743. function __ZNK2OT12ChainRuleSet11would_applyEPNS_24hb_would_apply_context_tERNS_30ChainContextApplyLookupContextE($this, $c, $lookup_context) {
  39744.   var __stackBase__ = STACKTOP;
  39745.   STACKTOP = STACKTOP + 216 | 0;
  39746.   var $this_addr_i_i33 = __stackBase__;
  39747.   var $this_addr_i34 = __stackBase__ + 4;
  39748.   var $X_addr_i_i_i = __stackBase__ + 8;
  39749.   var $this_addr_i_i_i15 = __stackBase__ + 12;
  39750.   var $this_addr_i_i16 = __stackBase__ + 16;
  39751.   var $retval_i = __stackBase__ + 20;
  39752.   var $this_addr_i17 = __stackBase__ + 24;
  39753.   var $i_addr_i = __stackBase__ + 28;
  39754.   var $X_addr_i_i_i_i = __stackBase__ + 32;
  39755.   var $P_addr_i_i_i3 = __stackBase__ + 36;
  39756.   var $offset_addr_i_i_i4 = __stackBase__ + 40;
  39757.   var $this_addr_i_i_i_i5 = __stackBase__ + 44;
  39758.   var $this_addr_i_i_i6 = __stackBase__ + 48;
  39759.   var $retval_i_i = __stackBase__ + 52;
  39760.   var $this_addr_i_i7 = __stackBase__ + 56;
  39761.   var $base_addr_i_i = __stackBase__ + 60;
  39762.   var $offset_i_i = __stackBase__ + 64;
  39763.   var $base_addr_i = __stackBase__ + 68;
  39764.   var $offset_addr_i = __stackBase__ + 72;
  39765.   var $P_addr_i_i71_i = __stackBase__ + 76;
  39766.   var $offset_addr_i_i72_i = __stackBase__ + 80;
  39767.   var $this_addr_i_i_i_i73_i = __stackBase__ + 84;
  39768.   var $this_addr_i_i_i74_i = __stackBase__ + 88;
  39769.   var $this_addr_i_i75_i = __stackBase__ + 92;
  39770.   var $X_addr_i76_i = __stackBase__ + 96;
  39771.   var $P_addr_i_i47_i = __stackBase__ + 100;
  39772.   var $offset_addr_i_i48_i = __stackBase__ + 104;
  39773.   var $this_addr_i_i1_i_i_i = __stackBase__ + 108;
  39774.   var $this_addr_i2_i_i_i = __stackBase__ + 112;
  39775.   var $this_addr_i_i_i_i49_i = __stackBase__ + 116;
  39776.   var $this_addr_i_i_i50_i = __stackBase__ + 120;
  39777.   var $this_addr_i_i51_i = __stackBase__ + 124;
  39778.   var $X_addr_i52_i = __stackBase__ + 128;
  39779.   var $P_addr_i_i_i = __stackBase__ + 132;
  39780.   var $offset_addr_i_i_i = __stackBase__ + 136;
  39781.   var $this_addr_i_i_i_i_i = __stackBase__ + 140;
  39782.   var $this_addr_i_i_i_i = __stackBase__ + 144;
  39783.   var $this_addr_i_i43_i = __stackBase__ + 148;
  39784.   var $X_addr_i_i = __stackBase__ + 152;
  39785.   var $this_addr_i_i29_i = __stackBase__ + 156;
  39786.   var $this_addr_i30_i = __stackBase__ + 160;
  39787.   var $this_addr_i_i15_i = __stackBase__ + 164;
  39788.   var $this_addr_i16_i = __stackBase__ + 168;
  39789.   var $this_addr_i_i1_i = __stackBase__ + 172;
  39790.   var $this_addr_i2_i = __stackBase__ + 176;
  39791.   var $this_addr_i_i_i = __stackBase__ + 180;
  39792.   var $this_addr_i_i = __stackBase__ + 184;
  39793.   var $this_addr_i = __stackBase__ + 188;
  39794.   var $c_addr_i = __stackBase__ + 192;
  39795.   var $lookup_context_addr_i = __stackBase__ + 196;
  39796.   var $input_i = __stackBase__ + 200;
  39797.   var $lookahead_i = __stackBase__ + 204;
  39798.   var $lookup_i = __stackBase__ + 208;
  39799.   var $retval;
  39800.   var $c_addr;
  39801.   var $lookup_context_addr;
  39802.   var $num_rules;
  39803.   var $i;
  39804.   var $ref_tmp = __stackBase__ + 212;
  39805.   $c_addr = $c;
  39806.   $lookup_context_addr = $lookup_context;
  39807.   var $this1 = $this;
  39808.   HEAP[$this_addr_i34] = $this1 | 0;
  39809.   HEAP[$this_addr_i_i33] = HEAP[$this_addr_i34] | 0;
  39810.   var $this1_i_i36 = HEAP[$this_addr_i_i33];
  39811.   $num_rules = ((HEAP[$this1_i_i36 | 0] & 255) << 8) + (HEAP[$this1_i_i36 + 1 | 0] & 255) & 65535;
  39812.   $i = 0;
  39813.   L20 : do {
  39814.     if ($i >>> 0 < $num_rules >>> 0) {
  39815.       var $9 = $this1 | 0;
  39816.       while (1) {
  39817.         HEAP[$ref_tmp] = $this1;
  39818.         HEAP[$this_addr_i17] = $9;
  39819.         HEAP[$i_addr_i] = $i;
  39820.         var $this1_i18 = HEAP[$this_addr_i17];
  39821.         var $113 = HEAP[$i_addr_i];
  39822.         HEAP[$this_addr_i_i16] = $this1_i18 | 0;
  39823.         HEAP[$this_addr_i_i_i15] = HEAP[$this_addr_i_i16] | 0;
  39824.         var $this1_i_i_i21 = HEAP[$this_addr_i_i_i15];
  39825.         if ($113 >>> 0 >= (((HEAP[$this1_i_i_i21 | 0] & 255) << 8) + (HEAP[$this1_i_i_i21 + 1 | 0] & 255) & 65535) >>> 0) {
  39826.           HEAP[$X_addr_i_i_i] = 111704;
  39827.           HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  39828.         } else {
  39829.           HEAP[$retval_i] = (HEAP[$i_addr_i] << 1) + $this1_i18 + 2 | 0;
  39830.         }
  39831.         var $120 = HEAP[$retval_i];
  39832.         HEAP[$base_addr_i] = $ref_tmp;
  39833.         HEAP[$offset_addr_i] = $120;
  39834.         var $124 = HEAP[HEAP[$base_addr_i]];
  39835.         HEAP[$this_addr_i_i7] = HEAP[$offset_addr_i];
  39836.         HEAP[$base_addr_i_i] = $124;
  39837.         HEAP[$this_addr_i_i_i6] = HEAP[$this_addr_i_i7];
  39838.         HEAP[$this_addr_i_i_i_i5] = HEAP[$this_addr_i_i_i6] | 0;
  39839.         var $this1_i_i_i_i11 = HEAP[$this_addr_i_i_i_i5];
  39840.         var $conv_i_i = ((HEAP[$this1_i_i_i_i11 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i11 + 1 | 0] & 255) & 65535;
  39841.         HEAP[$offset_i_i] = $conv_i_i;
  39842.         if (($conv_i_i | 0) != 0) {
  39843.           var $131 = HEAP[$offset_i_i];
  39844.           HEAP[$P_addr_i_i_i3] = HEAP[$base_addr_i_i];
  39845.           HEAP[$offset_addr_i_i_i4] = $131;
  39846.           HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i3] + HEAP[$offset_addr_i_i_i4] | 0;
  39847.         } else {
  39848.           HEAP[$X_addr_i_i_i_i] = 111704;
  39849.           HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  39850.         }
  39851.         HEAP[$this_addr_i] = HEAP[$retval_i_i];
  39852.         HEAP[$c_addr_i] = $c_addr;
  39853.         HEAP[$lookup_context_addr_i] = $lookup_context_addr;
  39854.         var $this1_i = HEAP[$this_addr_i];
  39855.         HEAP[$X_addr_i76_i] = $this1_i | 0;
  39856.         var $139 = HEAP[$X_addr_i76_i];
  39857.         HEAP[$this_addr_i_i75_i] = HEAP[$X_addr_i76_i];
  39858.         HEAP[$this_addr_i_i_i74_i] = HEAP[$this_addr_i_i75_i] | 0;
  39859.         HEAP[$this_addr_i_i_i_i73_i] = HEAP[$this_addr_i_i_i74_i] | 0;
  39860.         var $this1_i_i_i_i81_i = HEAP[$this_addr_i_i_i_i73_i];
  39861.         var $add_i_i93_i = ((((HEAP[$this1_i_i_i_i81_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i81_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  39862.         HEAP[$P_addr_i_i71_i] = $139;
  39863.         HEAP[$offset_addr_i_i72_i] = $add_i_i93_i;
  39864.         HEAP[$input_i] = HEAP[$P_addr_i_i71_i] + HEAP[$offset_addr_i_i72_i] | 0;
  39865.         HEAP[$X_addr_i52_i] = HEAP[$input_i];
  39866.         var $149 = HEAP[$X_addr_i52_i];
  39867.         HEAP[$this_addr_i_i51_i] = HEAP[$X_addr_i52_i];
  39868.         var $this1_i_i53_i = HEAP[$this_addr_i_i51_i];
  39869.         HEAP[$this_addr_i_i_i50_i] = $this1_i_i53_i | 0;
  39870.         HEAP[$this_addr_i_i_i_i49_i] = HEAP[$this_addr_i_i_i50_i] | 0;
  39871.         var $this1_i_i_i_i57_i = HEAP[$this_addr_i_i_i_i49_i];
  39872.         if ((((HEAP[$this1_i_i_i_i57_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i57_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  39873.           HEAP[$this_addr_i2_i_i_i] = $this1_i_i53_i | 0;
  39874.           HEAP[$this_addr_i_i1_i_i_i] = HEAP[$this_addr_i2_i_i_i] | 0;
  39875.           var $this1_i_i5_i_i_i = HEAP[$this_addr_i_i1_i_i_i];
  39876.           var $cond_i_i_i = (((HEAP[$this1_i_i5_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i + 1 | 0] & 255) & 65535) - 1 | 0;
  39877.         } else {
  39878.           var $cond_i_i_i = 0;
  39879.         }
  39880.         var $cond_i_i_i;
  39881.         HEAP[$P_addr_i_i47_i] = $149;
  39882.         HEAP[$offset_addr_i_i48_i] = ($cond_i_i_i << 1) + 2 | 0;
  39883.         HEAP[$lookahead_i] = HEAP[$P_addr_i_i47_i] + HEAP[$offset_addr_i_i48_i] | 0;
  39884.         HEAP[$X_addr_i_i] = HEAP[$lookahead_i];
  39885.         var $160 = HEAP[$X_addr_i_i];
  39886.         HEAP[$this_addr_i_i43_i] = HEAP[$X_addr_i_i];
  39887.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i43_i] | 0;
  39888.         HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  39889.         var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  39890.         var $add_i_i46_i = ((((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  39891.         HEAP[$P_addr_i_i_i] = $160;
  39892.         HEAP[$offset_addr_i_i_i] = $add_i_i46_i;
  39893.         HEAP[$lookup_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  39894.         var $168 = HEAP[$c_addr_i];
  39895.         HEAP[$this_addr_i30_i] = $this1_i | 0;
  39896.         HEAP[$this_addr_i_i29_i] = HEAP[$this_addr_i30_i] | 0;
  39897.         var $this1_i_i33_i = HEAP[$this_addr_i_i29_i];
  39898.         var $conv_i = ((HEAP[$this1_i_i33_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i + 1 | 0] & 255) & 65535;
  39899.         HEAP[$this_addr_i16_i] = HEAP[$input_i] | 0;
  39900.         HEAP[$this_addr_i_i15_i] = HEAP[$this_addr_i16_i] | 0;
  39901.         var $this1_i_i19_i = HEAP[$this_addr_i_i15_i];
  39902.         var $conv11_i = ((HEAP[$this1_i_i19_i | 0] & 255) << 8) + (HEAP[$this1_i_i19_i + 1 | 0] & 255) & 65535;
  39903.         var $arraydecay13_i = HEAP[$input_i] + 2 | 0;
  39904.         HEAP[$this_addr_i2_i] = HEAP[$lookahead_i] | 0;
  39905.         HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  39906.         var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  39907.         var $conv16_i = ((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535;
  39908.         var $arraydecay18_i = HEAP[$lookahead_i] + 2 | 0;
  39909.         HEAP[$this_addr_i_i] = HEAP[$lookup_i] | 0;
  39910.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  39911.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  39912.         if (__ZN2OTL32chain_context_would_apply_lookupEPNS_24hb_would_apply_context_tEjPKNS_7IntTypeItLj2EEEjS5_jS5_jPKNS_12LookupRecordERNS_30ChainContextApplyLookupContextE($168, $conv_i, $this1_i + 2 | 0, $conv11_i, $arraydecay13_i, $conv16_i, $arraydecay18_i, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535, HEAP[$lookup_i] + 2 | 0, HEAP[$lookup_context_addr_i]) & 1) {
  39913.           break;
  39914.         }
  39915.         $i = $i + 1 | 0;
  39916.         if ($i >>> 0 >= $num_rules >>> 0) {
  39917.           break L20;
  39918.         }
  39919.       }
  39920.       $retval = 1;
  39921.       var $196 = $retval;
  39922.       STACKTOP = __stackBase__;
  39923.       return $196;
  39924.     }
  39925.   } while (0);
  39926.   $retval = 0;
  39927.   var $196 = $retval;
  39928.   STACKTOP = __stackBase__;
  39929.   return $196;
  39930. }
  39931. function __ZN2OTL26context_would_apply_lookupEPNS_24hb_would_apply_context_tEjPKNS_7IntTypeItLj2EEEjPKNS_12LookupRecordERNS_25ContextApplyLookupContextE($c, $inputCount, $input, $lookupCount, $lookupRecord, $lookup_context) {
  39932.   var __stackBase__ = STACKTOP;
  39933.   STACKTOP = STACKTOP + 25 | 0;
  39934.   var $retval_i = __stackBase__;
  39935.   var $c_addr_i = __stackBase__ + 1;
  39936.   var $count_addr_i = __stackBase__ + 5;
  39937.   var $input_addr_i = __stackBase__ + 9;
  39938.   var $match_func_addr_i = __stackBase__ + 13;
  39939.   var $match_data_addr_i = __stackBase__ + 17;
  39940.   var $i_i = __stackBase__ + 21;
  39941.   var $lookup_context_addr;
  39942.   $lookup_context_addr = $lookup_context;
  39943.   var $4 = HEAP[$lookup_context_addr | 0];
  39944.   var $6 = HEAP[$lookup_context_addr + 4 | 0];
  39945.   HEAP[$c_addr_i] = $c;
  39946.   HEAP[$count_addr_i] = $inputCount;
  39947.   HEAP[$input_addr_i] = $input;
  39948.   HEAP[$match_func_addr_i] = $4;
  39949.   HEAP[$match_data_addr_i] = $6;
  39950.   L41 : do {
  39951.     if ((HEAP[$count_addr_i] | 0) != (HEAP[HEAP[$c_addr_i] + 8 | 0] | 0)) {
  39952.       HEAP[$retval_i] = 0;
  39953.     } else {
  39954.       HEAP[$i_i] = 1;
  39955.       L44 : do {
  39956.         if (HEAP[$i_i] >>> 0 < HEAP[$count_addr_i] >>> 0) {
  39957.           while (1) {
  39958.             if (!FUNCTION_TABLE[HEAP[$match_func_addr_i]](HEAP[(HEAP[$i_i] << 2) + HEAP[HEAP[$c_addr_i] + 4 | 0] | 0], (HEAP[$i_i] - 1 << 1) + HEAP[$input_addr_i] | 0, HEAP[$match_data_addr_i])) {
  39959.               break;
  39960.             }
  39961.             HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  39962.             if (HEAP[$i_i] >>> 0 >= HEAP[$count_addr_i] >>> 0) {
  39963.               break L44;
  39964.             }
  39965.           }
  39966.           HEAP[$retval_i] = 0;
  39967.           break L41;
  39968.         }
  39969.       } while (0);
  39970.       HEAP[$retval_i] = 1;
  39971.     }
  39972.   } while (0);
  39973.   STACKTOP = __stackBase__;
  39974.   return HEAP[$retval_i];
  39975. }
  39976. function __ZZNK2OT13SortedArrayOfINS_6RecordINS_7LangSysEEEE6searchIjEEiRKT_ENS5_IjE3Cmp3cmpEPKjPKS3_($a, $b) {
  39977.   var __stackBase__ = STACKTOP;
  39978.   STACKTOP = STACKTOP + 24 | 0;
  39979.   var $this_addr_i_i_i = __stackBase__;
  39980.   var $this_addr_i_i = __stackBase__ + 4;
  39981.   var $a_addr_i_i = __stackBase__ + 8;
  39982.   var $b_i_i = __stackBase__ + 12;
  39983.   var $this_addr_i = __stackBase__ + 16;
  39984.   var $a_addr_i = __stackBase__ + 20;
  39985.   var $2 = HEAP[$a];
  39986.   HEAP[$this_addr_i] = $b;
  39987.   HEAP[$a_addr_i] = $2;
  39988.   var $6 = HEAP[$a_addr_i];
  39989.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  39990.   HEAP[$a_addr_i_i] = $6;
  39991.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  39992.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  39993.   HEAP[$b_i_i] = ((HEAP[$this1_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 3 | 0] & 255) | 0;
  39994.   if (HEAP[$a_addr_i_i] >>> 0 < HEAP[$b_i_i] >>> 0) {
  39995.     var $cond3_i_i = -1;
  39996.     var $cond3_i_i;
  39997.     var $20 = $this_addr_i_i;
  39998.     var $21 = $a_addr_i_i;
  39999.     var $22 = $b_i_i;
  40000.     var $23 = $this_addr_i;
  40001.     var $24 = $a_addr_i;
  40002.     STACKTOP = __stackBase__;
  40003.     return $cond3_i_i;
  40004.   }
  40005.   var $cond3_i_i = (HEAP[$a_addr_i_i] | 0) == (HEAP[$b_i_i] | 0) ? 0 : 1;
  40006.   var $cond3_i_i;
  40007.   var $20 = $this_addr_i_i;
  40008.   var $21 = $a_addr_i_i;
  40009.   var $22 = $b_i_i;
  40010.   var $23 = $this_addr_i;
  40011.   var $24 = $a_addr_i;
  40012.   STACKTOP = __stackBase__;
  40013.   return $cond3_i_i;
  40014. }
  40015. function __ZZNK2OT13SortedArrayOfINS_6RecordINS_6ScriptEEEE6searchIjEEiRKT_ENS5_IjE3Cmp3cmpE_2PKjPKS3_($a, $b) {
  40016.   var __stackBase__ = STACKTOP;
  40017.   STACKTOP = STACKTOP + 24 | 0;
  40018.   var $this_addr_i_i_i = __stackBase__;
  40019.   var $this_addr_i_i = __stackBase__ + 4;
  40020.   var $a_addr_i_i = __stackBase__ + 8;
  40021.   var $b_i_i = __stackBase__ + 12;
  40022.   var $this_addr_i = __stackBase__ + 16;
  40023.   var $a_addr_i = __stackBase__ + 20;
  40024.   var $2 = HEAP[$a];
  40025.   HEAP[$this_addr_i] = $b;
  40026.   HEAP[$a_addr_i] = $2;
  40027.   var $6 = HEAP[$a_addr_i];
  40028.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  40029.   HEAP[$a_addr_i_i] = $6;
  40030.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  40031.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  40032.   HEAP[$b_i_i] = ((HEAP[$this1_i_i_i + 1 | 0] & 255) << 16) + ((HEAP[$this1_i_i_i | 0] & 255) << 24) + ((HEAP[$this1_i_i_i + 2 | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 3 | 0] & 255) | 0;
  40033.   if (HEAP[$a_addr_i_i] >>> 0 < HEAP[$b_i_i] >>> 0) {
  40034.     var $cond3_i_i = -1;
  40035.     var $cond3_i_i;
  40036.     var $20 = $this_addr_i_i;
  40037.     var $21 = $a_addr_i_i;
  40038.     var $22 = $b_i_i;
  40039.     var $23 = $this_addr_i;
  40040.     var $24 = $a_addr_i;
  40041.     STACKTOP = __stackBase__;
  40042.     return $cond3_i_i;
  40043.   }
  40044.   var $cond3_i_i = (HEAP[$a_addr_i_i] | 0) == (HEAP[$b_i_i] | 0) ? 0 : 1;
  40045.   var $cond3_i_i;
  40046.   var $20 = $this_addr_i_i;
  40047.   var $21 = $a_addr_i_i;
  40048.   var $22 = $b_i_i;
  40049.   var $23 = $this_addr_i;
  40050.   var $24 = $a_addr_i;
  40051.   STACKTOP = __stackBase__;
  40052.   return $cond3_i_i;
  40053. }
  40054. function __ZNK2OT8GSUBGPOS10get_lookupEj($this, $i) {
  40055.   var __stackBase__ = STACKTOP;
  40056.   STACKTOP = STACKTOP + 120 | 0;
  40057.   var $X_addr_i_i_i = __stackBase__;
  40058.   var $X_addr_i_i_i_i_i = __stackBase__ + 4;
  40059.   var $P_addr_i_i_i_i = __stackBase__ + 8;
  40060.   var $offset_addr_i_i_i_i = __stackBase__ + 12;
  40061.   var $this_addr_i_i_i_i_i = __stackBase__ + 16;
  40062.   var $this_addr_i_i_i_i1 = __stackBase__ + 20;
  40063.   var $retval_i_i_i = __stackBase__ + 24;
  40064.   var $this_addr_i_i1_i = __stackBase__ + 28;
  40065.   var $base_addr_i_i_i = __stackBase__ + 32;
  40066.   var $offset_i_i_i = __stackBase__ + 36;
  40067.   var $base_addr_i_i2 = __stackBase__ + 40;
  40068.   var $offset_addr_i_i = __stackBase__ + 44;
  40069.   var $this_addr_i_i_i3 = __stackBase__ + 48;
  40070.   var $this_addr_i_i4 = __stackBase__ + 52;
  40071.   var $retval_i = __stackBase__ + 56;
  40072.   var $this_addr_i = __stackBase__ + 60;
  40073.   var $i_addr_i = __stackBase__ + 64;
  40074.   var $ref_tmp_i = __stackBase__ + 68;
  40075.   var $X_addr_i_i_i_i = __stackBase__ + 72;
  40076.   var $P_addr_i_i_i = __stackBase__ + 76;
  40077.   var $offset_addr_i_i_i = __stackBase__ + 80;
  40078.   var $this_addr_i_i_i_i = __stackBase__ + 84;
  40079.   var $this_addr_i_i_i = __stackBase__ + 88;
  40080.   var $retval_i_i = __stackBase__ + 92;
  40081.   var $this_addr_i_i = __stackBase__ + 96;
  40082.   var $base_addr_i_i = __stackBase__ + 100;
  40083.   var $offset_i_i = __stackBase__ + 104;
  40084.   var $base_addr_i = __stackBase__ + 108;
  40085.   var $offset_addr_i = __stackBase__ + 112;
  40086.   var $ref_tmp = __stackBase__ + 116;
  40087.   var $this1 = $this;
  40088.   HEAP[$ref_tmp] = $this1;
  40089.   HEAP[$base_addr_i] = $ref_tmp;
  40090.   HEAP[$offset_addr_i] = $this1 + 8 | 0;
  40091.   var $6 = HEAP[HEAP[$base_addr_i]];
  40092.   HEAP[$this_addr_i_i] = HEAP[$offset_addr_i];
  40093.   HEAP[$base_addr_i_i] = $6;
  40094.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  40095.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  40096.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  40097.   HEAP[$offset_i_i] = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  40098.   if ((HEAP[$offset_i_i] | 0) != 0) {
  40099.     var $24 = HEAP[$offset_i_i];
  40100.     HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  40101.     HEAP[$offset_addr_i_i_i] = $24;
  40102.     HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  40103.   } else {
  40104.     HEAP[$X_addr_i_i_i_i] = 111704;
  40105.     HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  40106.   }
  40107.   HEAP[$this_addr_i] = HEAP[$retval_i_i];
  40108.   HEAP[$i_addr_i] = $i;
  40109.   var $this1_i = HEAP[$this_addr_i];
  40110.   var $44 = HEAP[$i_addr_i];
  40111.   HEAP[$this_addr_i_i4] = $this1_i | 0;
  40112.   HEAP[$this_addr_i_i_i3] = HEAP[$this_addr_i_i4] | 0;
  40113.   var $this1_i_i_i6 = HEAP[$this_addr_i_i_i3];
  40114.   if ($44 >>> 0 >= (((HEAP[$this1_i_i_i6 | 0] & 255) << 8) + (HEAP[$this1_i_i_i6 + 1 | 0] & 255) & 65535) >>> 0) {
  40115.     HEAP[$X_addr_i_i_i] = 111704;
  40116.     HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  40117.     var $97 = HEAP[$retval_i];
  40118.     var $98 = $retval_i;
  40119.     var $99 = $this_addr_i;
  40120.     var $100 = $i_addr_i;
  40121.     var $101 = $ref_tmp_i;
  40122.     STACKTOP = __stackBase__;
  40123.     return $97;
  40124.   }
  40125.   HEAP[$ref_tmp_i] = $this1_i;
  40126.   var $58 = (HEAP[$i_addr_i] << 1) + $this1_i + 2 | 0;
  40127.   HEAP[$base_addr_i_i2] = $ref_tmp_i;
  40128.   HEAP[$offset_addr_i_i] = $58;
  40129.   var $64 = HEAP[HEAP[$base_addr_i_i2]];
  40130.   HEAP[$this_addr_i_i1_i] = HEAP[$offset_addr_i_i];
  40131.   HEAP[$base_addr_i_i_i] = $64;
  40132.   HEAP[$this_addr_i_i_i_i1] = HEAP[$this_addr_i_i1_i];
  40133.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i1] | 0;
  40134.   var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  40135.   HEAP[$offset_i_i_i] = ((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535;
  40136.   if ((HEAP[$offset_i_i_i] | 0) != 0) {
  40137.     var $82 = HEAP[$offset_i_i_i];
  40138.     HEAP[$P_addr_i_i_i_i] = HEAP[$base_addr_i_i_i];
  40139.     HEAP[$offset_addr_i_i_i_i] = $82;
  40140.     HEAP[$retval_i_i_i] = HEAP[$P_addr_i_i_i_i] + HEAP[$offset_addr_i_i_i_i] | 0;
  40141.   } else {
  40142.     HEAP[$X_addr_i_i_i_i_i] = 111704;
  40143.     HEAP[$retval_i_i_i] = HEAP[$X_addr_i_i_i_i_i];
  40144.   }
  40145.   HEAP[$retval_i] = HEAP[$retval_i_i_i];
  40146.   var $97 = HEAP[$retval_i];
  40147.   var $98 = $retval_i;
  40148.   var $99 = $this_addr_i;
  40149.   var $100 = $i_addr_i;
  40150.   var $101 = $ref_tmp_i;
  40151.   STACKTOP = __stackBase__;
  40152.   return $97;
  40153. }
  40154. function __ZNK2OT7RuleSet11would_applyEPNS_24hb_would_apply_context_tERNS_25ContextApplyLookupContextE($this, $c, $lookup_context) {
  40155.   var __stackBase__ = STACKTOP;
  40156.   STACKTOP = STACKTOP + 136 | 0;
  40157.   var $this_addr_i_i27 = __stackBase__;
  40158.   var $this_addr_i28 = __stackBase__ + 4;
  40159.   var $X_addr_i_i_i = __stackBase__ + 8;
  40160.   var $this_addr_i_i_i10 = __stackBase__ + 12;
  40161.   var $this_addr_i_i11 = __stackBase__ + 16;
  40162.   var $retval_i = __stackBase__ + 20;
  40163.   var $this_addr_i12 = __stackBase__ + 24;
  40164.   var $i_addr_i = __stackBase__ + 28;
  40165.   var $X_addr_i_i_i_i = __stackBase__ + 32;
  40166.   var $P_addr_i_i_i = __stackBase__ + 36;
  40167.   var $offset_addr_i_i_i = __stackBase__ + 40;
  40168.   var $this_addr_i_i_i_i = __stackBase__ + 44;
  40169.   var $this_addr_i_i_i4 = __stackBase__ + 48;
  40170.   var $retval_i_i = __stackBase__ + 52;
  40171.   var $this_addr_i_i5 = __stackBase__ + 56;
  40172.   var $base_addr_i_i = __stackBase__ + 60;
  40173.   var $offset_i_i = __stackBase__ + 64;
  40174.   var $base_addr_i = __stackBase__ + 68;
  40175.   var $offset_addr_i = __stackBase__ + 72;
  40176.   var $this_addr_i_i29_i = __stackBase__ + 76;
  40177.   var $this_addr_i30_i = __stackBase__ + 80;
  40178.   var $this_addr_i_i15_i = __stackBase__ + 84;
  40179.   var $this_addr_i16_i = __stackBase__ + 88;
  40180.   var $P_addr_i_i = __stackBase__ + 92;
  40181.   var $offset_addr_i_i = __stackBase__ + 96;
  40182.   var $this_addr_i_i1_i = __stackBase__ + 100;
  40183.   var $this_addr_i2_i = __stackBase__ + 104;
  40184.   var $this_addr_i_i_i = __stackBase__ + 108;
  40185.   var $this_addr_i_i = __stackBase__ + 112;
  40186.   var $this_addr_i = __stackBase__ + 116;
  40187.   var $c_addr_i = __stackBase__ + 120;
  40188.   var $lookup_context_addr_i = __stackBase__ + 124;
  40189.   var $lookupRecord_i = __stackBase__ + 128;
  40190.   var $retval;
  40191.   var $c_addr;
  40192.   var $lookup_context_addr;
  40193.   var $num_rules;
  40194.   var $i;
  40195.   var $ref_tmp = __stackBase__ + 132;
  40196.   $c_addr = $c;
  40197.   $lookup_context_addr = $lookup_context;
  40198.   var $this1 = $this;
  40199.   HEAP[$this_addr_i28] = $this1 | 0;
  40200.   HEAP[$this_addr_i_i27] = HEAP[$this_addr_i28] | 0;
  40201.   var $this1_i_i30 = HEAP[$this_addr_i_i27];
  40202.   $num_rules = ((HEAP[$this1_i_i30 | 0] & 255) << 8) + (HEAP[$this1_i_i30 + 1 | 0] & 255) & 65535;
  40203.   $i = 0;
  40204.   L76 : do {
  40205.     if ($i >>> 0 < $num_rules >>> 0) {
  40206.       var $9 = $this1 | 0;
  40207.       while (1) {
  40208.         HEAP[$ref_tmp] = $this1;
  40209.         HEAP[$this_addr_i12] = $9;
  40210.         HEAP[$i_addr_i] = $i;
  40211.         var $this1_i13 = HEAP[$this_addr_i12];
  40212.         var $73 = HEAP[$i_addr_i];
  40213.         HEAP[$this_addr_i_i11] = $this1_i13 | 0;
  40214.         HEAP[$this_addr_i_i_i10] = HEAP[$this_addr_i_i11] | 0;
  40215.         var $this1_i_i_i16 = HEAP[$this_addr_i_i_i10];
  40216.         if ($73 >>> 0 >= (((HEAP[$this1_i_i_i16 | 0] & 255) << 8) + (HEAP[$this1_i_i_i16 + 1 | 0] & 255) & 65535) >>> 0) {
  40217.           HEAP[$X_addr_i_i_i] = 111704;
  40218.           HEAP[$retval_i] = HEAP[$X_addr_i_i_i];
  40219.         } else {
  40220.           HEAP[$retval_i] = (HEAP[$i_addr_i] << 1) + $this1_i13 + 2 | 0;
  40221.         }
  40222.         var $80 = HEAP[$retval_i];
  40223.         HEAP[$base_addr_i] = $ref_tmp;
  40224.         HEAP[$offset_addr_i] = $80;
  40225.         var $84 = HEAP[HEAP[$base_addr_i]];
  40226.         HEAP[$this_addr_i_i5] = HEAP[$offset_addr_i];
  40227.         HEAP[$base_addr_i_i] = $84;
  40228.         HEAP[$this_addr_i_i_i4] = HEAP[$this_addr_i_i5];
  40229.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i4] | 0;
  40230.         var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  40231.         var $conv_i_i = ((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535;
  40232.         HEAP[$offset_i_i] = $conv_i_i;
  40233.         if (($conv_i_i | 0) != 0) {
  40234.           var $91 = HEAP[$offset_i_i];
  40235.           HEAP[$P_addr_i_i_i] = HEAP[$base_addr_i_i];
  40236.           HEAP[$offset_addr_i_i_i] = $91;
  40237.           HEAP[$retval_i_i] = HEAP[$P_addr_i_i_i] + HEAP[$offset_addr_i_i_i] | 0;
  40238.         } else {
  40239.           HEAP[$X_addr_i_i_i_i] = 111704;
  40240.           HEAP[$retval_i_i] = HEAP[$X_addr_i_i_i_i];
  40241.         }
  40242.         HEAP[$this_addr_i] = HEAP[$retval_i_i];
  40243.         HEAP[$c_addr_i] = $c_addr;
  40244.         HEAP[$lookup_context_addr_i] = $lookup_context_addr;
  40245.         var $this1_i = HEAP[$this_addr_i];
  40246.         HEAP[$this_addr_i30_i] = $this1_i | 0;
  40247.         HEAP[$this_addr_i_i29_i] = HEAP[$this_addr_i30_i] | 0;
  40248.         var $this1_i_i33_i = HEAP[$this_addr_i_i29_i];
  40249.         if ((((HEAP[$this1_i_i33_i | 0] & 255) << 8) + (HEAP[$this1_i_i33_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  40250.           HEAP[$this_addr_i16_i] = $this1_i | 0;
  40251.           HEAP[$this_addr_i_i15_i] = HEAP[$this_addr_i16_i] | 0;
  40252.           var $this1_i_i19_i = HEAP[$this_addr_i_i15_i];
  40253.           var $cond_i = (((HEAP[$this1_i_i19_i | 0] & 255) << 8) + (HEAP[$this1_i_i19_i + 1 | 0] & 255) & 65535) - 1 | 0;
  40254.         } else {
  40255.           var $cond_i = 0;
  40256.         }
  40257.         var $cond_i;
  40258.         HEAP[$P_addr_i_i] = $this1_i + 4 | 0;
  40259.         HEAP[$offset_addr_i_i] = $cond_i << 1;
  40260.         HEAP[$lookupRecord_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  40261.         var $106 = HEAP[$c_addr_i];
  40262.         HEAP[$this_addr_i2_i] = $this1_i | 0;
  40263.         HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  40264.         var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  40265.         var $conv9_i = ((HEAP[$this1_i_i5_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i + 1 | 0] & 255) & 65535;
  40266.         HEAP[$this_addr_i_i] = $this1_i + 2 | 0;
  40267.         HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  40268.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  40269.         if (__ZN2OTL26context_would_apply_lookupEPNS_24hb_would_apply_context_tEjPKNS_7IntTypeItLj2EEEjPKNS_12LookupRecordERNS_25ContextApplyLookupContextE($106, $conv9_i, $this1_i + 4 | 0, ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535, HEAP[$lookupRecord_i], HEAP[$lookup_context_addr_i]) & 1) {
  40270.           break;
  40271.         }
  40272.         $i = $i + 1 | 0;
  40273.         if ($i >>> 0 >= $num_rules >>> 0) {
  40274.           break L76;
  40275.         }
  40276.       }
  40277.       $retval = 1;
  40278.       var $119 = $retval;
  40279.       STACKTOP = __stackBase__;
  40280.       return $119;
  40281.     }
  40282.   } while (0);
  40283.   $retval = 0;
  40284.   var $119 = $retval;
  40285.   STACKTOP = __stackBase__;
  40286.   return $119;
  40287. }
  40288. function __ZN11hb_ot_map_t11add_lookupsEP9hb_face_tjjjb($this, $face, $table_index, $feature_index, $mask, $auto_zwj) {
  40289.   var label = 0;
  40290.   var __stackBase__ = STACKTOP;
  40291.   STACKTOP = STACKTOP + 416 | 0;
  40292.   var $this_addr_i_i6_i_i_i = __stackBase__;
  40293.   var $this_addr_i7_i_i_i = __stackBase__ + 4;
  40294.   var $this_addr_i_i1_i_i_i = __stackBase__ + 8;
  40295.   var $this_addr_i2_i_i_i = __stackBase__ + 12;
  40296.   var $a_addr_i_i_i_i_i = __stackBase__ + 16;
  40297.   var $b_addr_i_i_i_i_i = __stackBase__ + 20;
  40298.   var $this_addr_i_i_i_i_i1_i = __stackBase__ + 24;
  40299.   var $this_addr_i_i_i_i2_i = __stackBase__ + 28;
  40300.   var $this_addr_i_i_i3_i = __stackBase__ + 32;
  40301.   var $start_offset_addr_i_i_i_i = __stackBase__ + 36;
  40302.   var $pcount_addr_i_i_i_i = __stackBase__ + 40;
  40303.   var $count_i_i_i_i = __stackBase__ + 44;
  40304.   var $this_addr_i_i4_i = __stackBase__ + 48;
  40305.   var $start_offset_addr_i_i_i = __stackBase__ + 52;
  40306.   var $_count_addr_i_i_i = __stackBase__ + 56;
  40307.   var $_indexes_addr_i_i_i = __stackBase__ + 60;
  40308.   var $arr_i_i_i = __stackBase__ + 64;
  40309.   var $count_i_i_i = __stackBase__ + 68;
  40310.   var $i_i_i_i = __stackBase__ + 72;
  40311.   var $this_addr_i5_i = __stackBase__ + 76;
  40312.   var $start_index_addr_i_i = __stackBase__ + 80;
  40313.   var $lookup_count_addr_i_i = __stackBase__ + 84;
  40314.   var $lookup_tags_addr_i_i = __stackBase__ + 88;
  40315.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 92;
  40316.   var $P_addr_i_i_i_i_i_i = __stackBase__ + 96;
  40317.   var $offset_addr_i_i_i_i_i_i = __stackBase__ + 100;
  40318.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 104;
  40319.   var $this_addr_i_i_i1_i_i_i = __stackBase__ + 108;
  40320.   var $retval_i_i_i_i_i = __stackBase__ + 112;
  40321.   var $this_addr_i_i2_i_i_i = __stackBase__ + 116;
  40322.   var $base_addr_i_i_i_i_i = __stackBase__ + 120;
  40323.   var $offset_i_i_i_i_i = __stackBase__ + 124;
  40324.   var $base_addr_i_i1_i_i = __stackBase__ + 128;
  40325.   var $offset_addr_i_i_i_i = __stackBase__ + 132;
  40326.   var $X_addr_i_i_i_i2_i_i = __stackBase__ + 136;
  40327.   var $this_addr_i_i_i_i3_i_i = __stackBase__ + 140;
  40328.   var $this_addr_i_i_i4_i_i = __stackBase__ + 144;
  40329.   var $retval_i_i5_i_i = __stackBase__ + 148;
  40330.   var $this_addr_i_i6_i_i = __stackBase__ + 152;
  40331.   var $i_addr_i_i_i_i = __stackBase__ + 156;
  40332.   var $this_addr_i_i_i = __stackBase__ + 160;
  40333.   var $i_addr_i_i_i = __stackBase__ + 164;
  40334.   var $ref_tmp_i_i_i = __stackBase__ + 168;
  40335.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 172;
  40336.   var $P_addr_i_i_i_i_i = __stackBase__ + 176;
  40337.   var $offset_addr_i_i_i_i_i = __stackBase__ + 180;
  40338.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 184;
  40339.   var $this_addr_i_i_i_i_i = __stackBase__ + 188;
  40340.   var $retval_i_i_i_i = __stackBase__ + 192;
  40341.   var $this_addr_i_i_i_i = __stackBase__ + 196;
  40342.   var $base_addr_i_i_i_i = __stackBase__ + 200;
  40343.   var $offset_i_i_i_i = __stackBase__ + 204;
  40344.   var $base_addr_i_i_i = __stackBase__ + 208;
  40345.   var $offset_addr_i_i_i = __stackBase__ + 212;
  40346.   var $this_addr_i_i = __stackBase__ + 216;
  40347.   var $i_addr_i_i = __stackBase__ + 220;
  40348.   var $ref_tmp_i_i = __stackBase__ + 224;
  40349.   var $face_addr_i = __stackBase__ + 228;
  40350.   var $table_tag_addr_i = __stackBase__ + 232;
  40351.   var $feature_index_addr_i = __stackBase__ + 236;
  40352.   var $start_offset_addr_i = __stackBase__ + 240;
  40353.   var $lookup_count_addr_i = __stackBase__ + 244;
  40354.   var $lookup_indexes_addr_i = __stackBase__ + 248;
  40355.   var $g_i = __stackBase__ + 252;
  40356.   var $f_i = __stackBase__ + 256;
  40357.   var $count_addr_i_i = __stackBase__ + 260;
  40358.   var $size_addr_i_i = __stackBase__ + 264;
  40359.   var $retval_i = __stackBase__ + 268;
  40360.   var $this_addr_i = __stackBase__ + 272;
  40361.   var $new_allocated_i = __stackBase__ + 276;
  40362.   var $new_array_i = __stackBase__ + 280;
  40363.   var $face_addr;
  40364.   var $table_index_addr;
  40365.   var $feature_index_addr;
  40366.   var $mask_addr;
  40367.   var $auto_zwj_addr;
  40368.   var $lookup_indices = __stackBase__ + 284;
  40369.   var $offset;
  40370.   var $len = __stackBase__ + 412;
  40371.   var $i;
  40372.   var $lookup;
  40373.   $face_addr = $face;
  40374.   $table_index_addr = $table_index;
  40375.   $feature_index_addr = $feature_index;
  40376.   $mask_addr = $mask;
  40377.   $auto_zwj_addr = $auto_zwj & 1;
  40378.   $offset = 0;
  40379.   var $arraydecay = $lookup_indices | 0;
  40380.   var $lookups = $this + 316 | 0;
  40381.   L97 : while (1) {
  40382.     HEAP[$len] = 32;
  40383.     var $144 = HEAP[($table_index_addr << 2) + 148032 | 0];
  40384.     HEAP[$face_addr_i] = $face_addr;
  40385.     HEAP[$table_tag_addr_i] = $144;
  40386.     HEAP[$feature_index_addr_i] = $feature_index_addr;
  40387.     HEAP[$start_offset_addr_i] = $offset;
  40388.     HEAP[$lookup_count_addr_i] = $len;
  40389.     HEAP[$lookup_indexes_addr_i] = $arraydecay;
  40390.     var $call_i = __ZL18get_gsubgpos_tableP9hb_face_tj(HEAP[$face_addr_i], HEAP[$table_tag_addr_i]);
  40391.     HEAP[$g_i] = $call_i;
  40392.     var $150 = HEAP[$feature_index_addr_i];
  40393.     HEAP[$this_addr_i_i] = HEAP[$g_i];
  40394.     HEAP[$i_addr_i_i] = $150;
  40395.     var $this1_i_i = HEAP[$this_addr_i_i];
  40396.     HEAP[$ref_tmp_i_i] = $this1_i_i;
  40397.     HEAP[$base_addr_i_i_i] = $ref_tmp_i_i;
  40398.     HEAP[$offset_addr_i_i_i] = $this1_i_i + 6 | 0;
  40399.     var $155 = HEAP[HEAP[$base_addr_i_i_i]];
  40400.     HEAP[$this_addr_i_i_i_i] = HEAP[$offset_addr_i_i_i];
  40401.     HEAP[$base_addr_i_i_i_i] = $155;
  40402.     HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i];
  40403.     HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  40404.     var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  40405.     var $conv_i_i_i_i = ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  40406.     HEAP[$offset_i_i_i_i] = $conv_i_i_i_i;
  40407.     if (($conv_i_i_i_i | 0) != 0) {
  40408.       var $162 = HEAP[$offset_i_i_i_i];
  40409.       HEAP[$P_addr_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i];
  40410.       HEAP[$offset_addr_i_i_i_i_i] = $162;
  40411.       HEAP[$retval_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i] | 0;
  40412.     } else {
  40413.       HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  40414.       HEAP[$retval_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i];
  40415.     }
  40416.     var $167 = HEAP[$i_addr_i_i];
  40417.     HEAP[$this_addr_i_i_i] = HEAP[$retval_i_i_i_i];
  40418.     HEAP[$i_addr_i_i_i] = $167;
  40419.     var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  40420.     HEAP[$ref_tmp_i_i_i] = $this1_i_i_i;
  40421.     var $170 = HEAP[$i_addr_i_i_i];
  40422.     HEAP[$this_addr_i_i6_i_i] = $this1_i_i_i;
  40423.     HEAP[$i_addr_i_i_i_i] = $170;
  40424.     var $this1_i_i7_i_i = HEAP[$this_addr_i_i6_i_i];
  40425.     var $171 = HEAP[$i_addr_i_i_i_i];
  40426.     HEAP[$this_addr_i_i_i4_i_i] = $this1_i_i7_i_i | 0;
  40427.     HEAP[$this_addr_i_i_i_i3_i_i] = HEAP[$this_addr_i_i_i4_i_i] | 0;
  40428.     var $this1_i_i_i_i10_i_i = HEAP[$this_addr_i_i_i_i3_i_i];
  40429.     if ($171 >>> 0 >= (((HEAP[$this1_i_i_i_i10_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i10_i_i + 1 | 0] & 255) & 65535) >>> 0) {
  40430.       HEAP[$X_addr_i_i_i_i2_i_i] = 111704;
  40431.       HEAP[$retval_i_i5_i_i] = HEAP[$X_addr_i_i_i_i2_i_i];
  40432.     } else {
  40433.       HEAP[$retval_i_i5_i_i] = $this1_i_i7_i_i + (HEAP[$i_addr_i_i_i_i] * 6 & -1) + 2 | 0;
  40434.     }
  40435.     var $178 = HEAP[$retval_i_i5_i_i] + 4 | 0;
  40436.     HEAP[$base_addr_i_i1_i_i] = $ref_tmp_i_i_i;
  40437.     HEAP[$offset_addr_i_i_i_i] = $178;
  40438.     var $182 = HEAP[HEAP[$base_addr_i_i1_i_i]];
  40439.     HEAP[$this_addr_i_i2_i_i_i] = HEAP[$offset_addr_i_i_i_i];
  40440.     HEAP[$base_addr_i_i_i_i_i] = $182;
  40441.     HEAP[$this_addr_i_i_i1_i_i_i] = HEAP[$this_addr_i_i2_i_i_i];
  40442.     HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i1_i_i_i] | 0;
  40443.     var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  40444.     var $conv_i_i_i_i_i = ((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  40445.     HEAP[$offset_i_i_i_i_i] = $conv_i_i_i_i_i;
  40446.     if (($conv_i_i_i_i_i | 0) != 0) {
  40447.       var $189 = HEAP[$offset_i_i_i_i_i];
  40448.       HEAP[$P_addr_i_i_i_i_i_i] = HEAP[$base_addr_i_i_i_i_i];
  40449.       HEAP[$offset_addr_i_i_i_i_i_i] = $189;
  40450.       HEAP[$retval_i_i_i_i_i] = HEAP[$P_addr_i_i_i_i_i_i] + HEAP[$offset_addr_i_i_i_i_i_i] | 0;
  40451.     } else {
  40452.       HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  40453.       HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  40454.     }
  40455.     HEAP[$f_i] = HEAP[$retval_i_i_i_i_i];
  40456.     var $195 = HEAP[$start_offset_addr_i];
  40457.     var $196 = HEAP[$lookup_count_addr_i];
  40458.     var $197 = HEAP[$lookup_indexes_addr_i];
  40459.     HEAP[$this_addr_i5_i] = HEAP[$f_i];
  40460.     HEAP[$start_index_addr_i_i] = $195;
  40461.     HEAP[$lookup_count_addr_i_i] = $196;
  40462.     HEAP[$lookup_tags_addr_i_i] = $197;
  40463.     var $198 = HEAP[$start_index_addr_i_i];
  40464.     var $199 = HEAP[$lookup_tags_addr_i_i];
  40465.     HEAP[$this_addr_i_i4_i] = HEAP[$this_addr_i5_i] + 2 | 0;
  40466.     HEAP[$start_offset_addr_i_i_i] = $198;
  40467.     HEAP[$_count_addr_i_i_i] = $196;
  40468.     HEAP[$_indexes_addr_i_i_i] = $199;
  40469.     var $this1_i_i7_i = HEAP[$this_addr_i_i4_i];
  40470.     L111 : do {
  40471.       if (($196 | 0) != 0) {
  40472.         var $201 = HEAP[$start_offset_addr_i_i_i];
  40473.         var $202 = HEAP[$_count_addr_i_i_i];
  40474.         HEAP[$this_addr_i_i_i3_i] = $this1_i_i7_i;
  40475.         HEAP[$start_offset_addr_i_i_i_i] = $201;
  40476.         HEAP[$pcount_addr_i_i_i_i] = $202;
  40477.         var $this1_i_i_i8_i = HEAP[$this_addr_i_i_i3_i];
  40478.         HEAP[$this_addr_i_i_i_i2_i] = $this1_i_i_i8_i | 0;
  40479.         HEAP[$this_addr_i_i_i_i_i1_i] = HEAP[$this_addr_i_i_i_i2_i] | 0;
  40480.         var $this1_i_i_i_i_i12_i = HEAP[$this_addr_i_i_i_i_i1_i];
  40481.         HEAP[$count_i_i_i_i] = ((HEAP[$this1_i_i_i_i_i12_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i12_i + 1 | 0] & 255) & 65535;
  40482.         if (HEAP[$start_offset_addr_i_i_i_i] >>> 0 > HEAP[$count_i_i_i_i] >>> 0) {
  40483.           HEAP[$count_i_i_i_i] = 0;
  40484.         } else {
  40485.           HEAP[$count_i_i_i_i] = HEAP[$count_i_i_i_i] - HEAP[$start_offset_addr_i_i_i_i] | 0;
  40486.         }
  40487.         var $209 = HEAP[$pcount_addr_i_i_i_i];
  40488.         HEAP[$a_addr_i_i_i_i_i] = $count_i_i_i_i;
  40489.         HEAP[$b_addr_i_i_i_i_i] = $209;
  40490.         HEAP[$count_i_i_i_i] = HEAP[HEAP[$a_addr_i_i_i_i_i]] >>> 0 < HEAP[HEAP[$b_addr_i_i_i_i_i]] >>> 0 ? HEAP[HEAP[$a_addr_i_i_i_i_i]] : HEAP[HEAP[$b_addr_i_i_i_i_i]];
  40491.         HEAP[HEAP[$pcount_addr_i_i_i_i]] = HEAP[$count_i_i_i_i];
  40492.         HEAP[$arr_i_i_i] = (HEAP[$start_offset_addr_i_i_i_i] << 1) + $this1_i_i_i8_i + 2 | 0;
  40493.         HEAP[$count_i_i_i] = HEAP[HEAP[$_count_addr_i_i_i]];
  40494.         HEAP[$i_i_i_i] = 0;
  40495.         if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  40496.           break;
  40497.         }
  40498.         while (1) {
  40499.           HEAP[$this_addr_i7_i_i_i] = (HEAP[$i_i_i_i] << 1) + HEAP[$arr_i_i_i] | 0;
  40500.           HEAP[$this_addr_i_i6_i_i_i] = HEAP[$this_addr_i7_i_i_i] | 0;
  40501.           var $this1_i_i10_i_i_i = HEAP[$this_addr_i_i6_i_i_i];
  40502.           HEAP[(HEAP[$i_i_i_i] << 2) + HEAP[$_indexes_addr_i_i_i] | 0] = ((HEAP[$this1_i_i10_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i10_i_i_i + 1 | 0] & 255) & 65535;
  40503.           HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  40504.           if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  40505.             break L111;
  40506.           }
  40507.         }
  40508.       }
  40509.     } while (0);
  40510.     HEAP[$this_addr_i2_i_i_i] = $this1_i_i7_i | 0;
  40511.     HEAP[$this_addr_i_i1_i_i_i] = HEAP[$this_addr_i2_i_i_i] | 0;
  40512.     $i = 0;
  40513.     var $237 = HEAP[$len];
  40514.     L120 : do {
  40515.       if ($i >>> 0 < $237 >>> 0) {
  40516.         while (1) {
  40517.           HEAP[$this_addr_i] = $lookups + ($table_index_addr * 268 & -1) | 0;
  40518.           var $this1_i = HEAP[$this_addr_i];
  40519.           if ((HEAP[$this1_i + 8 | 0] | 0) == 0) {
  40520.             HEAP[$this1_i + 8 | 0] = $this1_i + 12 | 0;
  40521.             HEAP[$this1_i + 4 | 0] = 32;
  40522.           }
  40523.           L126 : do {
  40524.             if (HEAP[$this1_i | 0] >>> 0 < HEAP[$this1_i + 4 | 0] >>> 0) {
  40525.               var $len6_i = $this1_i | 0;
  40526.               var $242 = HEAP[$len6_i];
  40527.               HEAP[$len6_i] = $242 + 1 | 0;
  40528.               var $arrayidx_i = ($242 << 3) + HEAP[$this1_i + 8 | 0] | 0;
  40529.               HEAP[$retval_i] = $arrayidx_i;
  40530.               var $271 = $arrayidx_i;
  40531.             } else {
  40532.               HEAP[$new_allocated_i] = HEAP[$this1_i + 4 | 0] + (HEAP[$this1_i + 4 | 0] >>> 1) + 8 | 0;
  40533.               HEAP[$new_array_i] = 0;
  40534.               var $247 = HEAP[$new_allocated_i];
  40535.               do {
  40536.                 if ((HEAP[$this1_i + 8 | 0] | 0) == ($this1_i + 12 | 0)) {
  40537.                   var $248 = _calloc($247, 8);
  40538.                   HEAP[$new_array_i] = $248;
  40539.                   if ((HEAP[$new_array_i] | 0) == 0) {
  40540.                     break;
  40541.                   }
  40542.                   var $251 = HEAP[$new_array_i];
  40543.                   var $253 = HEAP[$this1_i + 8 | 0];
  40544.                   var $mul_i = HEAP[$this1_i | 0] << 3;
  40545.                   for (var $$src = $253, $$dest = $251, $$stop = $$src + $mul_i; $$src < $$stop; $$src++, $$dest++) {
  40546.                     HEAP[$$dest] = HEAP[$$src];
  40547.                   }
  40548.                   label = 109;
  40549.                   break;
  40550.                 } else {
  40551.                   do {
  40552.                     if ($247 >>> 0 < HEAP[$this1_i + 4 | 0] >>> 0) {
  40553.                       var $260 = 1;
  40554.                     } else {
  40555.                       HEAP[$count_addr_i_i] = HEAP[$new_allocated_i];
  40556.                       HEAP[$size_addr_i_i] = 8;
  40557.                       if (HEAP[$size_addr_i_i] >>> 0 <= 0) {
  40558.                         var $260 = 0;
  40559.                         break;
  40560.                       }
  40561.                       var $260 = HEAP[$count_addr_i_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i_i] >>> 0)) >>> 0;
  40562.                     }
  40563.                   } while (0);
  40564.                   var $260;
  40565.                   if ($260 & 1) {
  40566.                     label = 109;
  40567.                     break;
  40568.                   }
  40569.                   var $265 = _realloc(HEAP[$this1_i + 8 | 0], HEAP[$new_allocated_i] << 3);
  40570.                   HEAP[$new_array_i] = $265;
  40571.                   var $266 = $265;
  40572.                   label = 110;
  40573.                   break;
  40574.                 }
  40575.               } while (0);
  40576.               do {
  40577.                 if (label == 109) {
  40578.                   label = 0;
  40579.                   var $266 = HEAP[$new_array_i];
  40580.                   label = 110;
  40581.                   break;
  40582.                 }
  40583.               } while (0);
  40584.               do {
  40585.                 if (label == 110) {
  40586.                   label = 0;
  40587.                   var $266;
  40588.                   if (($266 | 0) == 0) {
  40589.                     break;
  40590.                   }
  40591.                   HEAP[$this1_i + 8 | 0] = HEAP[$new_array_i];
  40592.                   HEAP[$this1_i + 4 | 0] = HEAP[$new_allocated_i];
  40593.                   var $len38_i = $this1_i | 0;
  40594.                   var $269 = HEAP[$len38_i];
  40595.                   HEAP[$len38_i] = $269 + 1 | 0;
  40596.                   var $arrayidx41_i = ($269 << 3) + HEAP[$this1_i + 8 | 0] | 0;
  40597.                   HEAP[$retval_i] = $arrayidx41_i;
  40598.                   var $271 = $arrayidx41_i;
  40599.                   break L126;
  40600.                 }
  40601.               } while (0);
  40602.               HEAP[$retval_i] = 0;
  40603.               var $271 = 0;
  40604.             }
  40605.           } while (0);
  40606.           var $271;
  40607.           $lookup = $271;
  40608.           if (($271 | 0) == 0) {
  40609.             label = 117;
  40610.             break L97;
  40611.           }
  40612.           HEAP[$lookup + 4 | 0] = $mask_addr;
  40613.           HEAP[$lookup | 0] = HEAP[($i << 2) + $lookup_indices | 0] & 65535;
  40614.           var $280 = $lookup + 2 | 0;
  40615.           HEAP[$280] = HEAP[$280] & -2 | $auto_zwj_addr & 1 & 1;
  40616.           $i = $i + 1 | 0;
  40617.           var $287 = HEAP[$len];
  40618.           if ($i >>> 0 >= $287 >>> 0) {
  40619.             var $288 = $287;
  40620.             break L120;
  40621.           }
  40622.         }
  40623.       } else {
  40624.         var $288 = $237;
  40625.       }
  40626.     } while (0);
  40627.     var $288;
  40628.     $offset = $offset + $288 | 0;
  40629.     if (($288 | 0) != 32) {
  40630.       label = 118;
  40631.       break;
  40632.     }
  40633.   }
  40634.   if (label == 117) {
  40635.     STACKTOP = __stackBase__;
  40636.     return;
  40637.   } else if (label == 118) {
  40638.     STACKTOP = __stackBase__;
  40639.     return;
  40640.   }
  40641. }
  40642. function __ZN19hb_ot_map_builder_tC2EP9hb_face_tPK23hb_segment_properties_t($this, $face_, $props_) {
  40643.   var label = 0;
  40644.   var __stackBase__ = STACKTOP;
  40645.   STACKTOP = STACKTOP + 148 | 0;
  40646.   var $retval_i8 = __stackBase__;
  40647.   var $face_addr_i9 = __stackBase__ + 4;
  40648.   var $table_tag_addr_i10 = __stackBase__ + 8;
  40649.   var $script_tags_addr_i = __stackBase__ + 12;
  40650.   var $script_index_addr_i11 = __stackBase__ + 16;
  40651.   var $chosen_script_addr_i = __stackBase__ + 20;
  40652.   var $g_i = __stackBase__ + 24;
  40653.   var $c_addr_i6_i;
  40654.   var $lang_str_addr_i_i = __stackBase__ + 28;
  40655.   var $spec_addr_i_i = __stackBase__ + 32;
  40656.   var $len_i_i = __stackBase__ + 36;
  40657.   var $c_addr_i_i;
  40658.   var $language_addr_i_i = __stackBase__ + 40;
  40659.   var $retval_i2 = __stackBase__ + 44;
  40660.   var $language_addr_i = __stackBase__ + 48;
  40661.   var $lang_str_i = __stackBase__ + 52;
  40662.   var $s_i3 = __stackBase__ + 56;
  40663.   var $lang_tag_i = __stackBase__ + 60;
  40664.   var $tag_i = __stackBase__ + 64;
  40665.   var $i_i = __stackBase__ + 68;
  40666.   var $i42_i = __stackBase__ + 72;
  40667.   var $retval_i = __stackBase__ + 76;
  40668.   var $face_addr_i = __stackBase__ + 80;
  40669.   var $table_tag_addr_i = __stackBase__ + 84;
  40670.   var $script_index_addr_i = __stackBase__ + 88;
  40671.   var $language_tag_addr_i = __stackBase__ + 92;
  40672.   var $language_index_addr_i = __stackBase__ + 96;
  40673.   var $s_i = __stackBase__ + 100;
  40674.   var $retval_i1_i = __stackBase__ + 104;
  40675.   var $script_addr_i2_i = __stackBase__ + 108;
  40676.   var $retval_i_i = __stackBase__ + 112;
  40677.   var $script_addr_i_i = __stackBase__ + 116;
  40678.   var $script_addr_i = __stackBase__ + 120;
  40679.   var $script_tag_1_addr_i = __stackBase__ + 124;
  40680.   var $script_tag_2_addr_i = __stackBase__ + 128;
  40681.   var $new_tag_i = __stackBase__ + 132;
  40682.   var $face__addr;
  40683.   var $props__addr;
  40684.   var $script_tags = __stackBase__ + 136;
  40685.   var $language_tag;
  40686.   var $table_index;
  40687.   var $table_tag;
  40688.   $face__addr = $face_;
  40689.   $props__addr = $props_;
  40690.   var $this1 = $this;
  40691.   var $0 = $this1;
  40692.   for (var $$dest = $0, $$stop = $$dest + 560; $$dest < $$stop; $$dest++) {
  40693.     HEAP[$$dest] = 0;
  40694.   }
  40695.   HEAP[$this1 | 0] = $face__addr;
  40696.   var $3 = $this1 + 4 | 0;
  40697.   var $4 = $props__addr;
  40698.   for (var $$src = $4, $$dest = $3, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  40699.     HEAP[$$dest] = HEAP[$$src];
  40700.   }
  40701.   var $5 = $script_tags;
  40702.   for (var $$dest = $5, $$stop = $$dest + 12; $$dest < $$stop; $$dest++) {
  40703.     HEAP[$$dest] = 0;
  40704.   }
  40705.   HEAP[$script_addr_i] = HEAP[$this1 + 8 | 0];
  40706.   HEAP[$script_tag_1_addr_i] = $script_tags | 0;
  40707.   HEAP[$script_tag_2_addr_i] = $script_tags + 4 | 0;
  40708.   HEAP[HEAP[$script_tag_2_addr_i]] = 1145457748;
  40709.   HEAP[$script_addr_i_i] = HEAP[$script_addr_i];
  40710.   var $15 = HEAP[$script_addr_i_i];
  40711.   if (($15 | 0) == 0) {
  40712.     HEAP[$retval_i_i] = 1145457748;
  40713.   } else if (($15 | 0) == 1281453935) {
  40714.     HEAP[$retval_i_i] = 1818324768;
  40715.   } else if (($15 | 0) == 1214870113) {
  40716.     HEAP[$retval_i_i] = 1801547361;
  40717.   } else if (($15 | 0) == 1315663727) {
  40718.     HEAP[$retval_i_i] = 1852534560;
  40719.   } else if (($15 | 0) == 1500080489) {
  40720.     HEAP[$retval_i_i] = 2036932640;
  40721.   } else if (($15 | 0) == 1449224553) {
  40722.     HEAP[$retval_i_i] = 1986095392;
  40723.   } else {
  40724.     HEAP[$retval_i_i] = HEAP[$script_addr_i_i] | 536870912;
  40725.   }
  40726.   HEAP[HEAP[$script_tag_1_addr_i]] = HEAP[$retval_i_i];
  40727.   var $21 = HEAP[$script_addr_i];
  40728.   HEAP[$script_addr_i2_i] = $21;
  40729.   do {
  40730.     if (($21 | 0) == 1332902241) {
  40731.       HEAP[$retval_i1_i] = 1869773106;
  40732.       var $_ph_i = 1869773106;
  40733.       label = 139;
  40734.       break;
  40735.     } else if (($21 | 0) == 1415671148) {
  40736.       HEAP[$retval_i1_i] = 1953328178;
  40737.       var $_ph_i = 1953328178;
  40738.       label = 139;
  40739.       break;
  40740.     } else if (($21 | 0) == 1113943655) {
  40741.       HEAP[$retval_i1_i] = 1651402546;
  40742.       var $_ph_i = 1651402546;
  40743.       label = 139;
  40744.       break;
  40745.     } else if (($21 | 0) == 1415933045) {
  40746.       HEAP[$retval_i1_i] = 1952803890;
  40747.       var $_ph_i = 1952803890;
  40748.       label = 139;
  40749.       break;
  40750.     } else if (($21 | 0) == 1299803506) {
  40751.       HEAP[$retval_i1_i] = 1836674354;
  40752.       var $_ph_i = 1836674354;
  40753.       label = 139;
  40754.       break;
  40755.     } else if (($21 | 0) == 1265525857) {
  40756.       HEAP[$retval_i1_i] = 1802396722;
  40757.       var $_ph_i = 1802396722;
  40758.       label = 139;
  40759.       break;
  40760.     } else if (($21 | 0) == 1298954605) {
  40761.       HEAP[$retval_i1_i] = 1835822386;
  40762.       var $_ph_i = 1835822386;
  40763.       label = 139;
  40764.       break;
  40765.     } else if (($21 | 0) == 1147500129) {
  40766.       HEAP[$retval_i1_i] = 1684370994;
  40767.       var $_ph_i = 1684370994;
  40768.       label = 139;
  40769.       break;
  40770.     } else if (($21 | 0) == 1198877298) {
  40771.       HEAP[$retval_i1_i] = 1735029298;
  40772.       var $_ph_i = 1735029298;
  40773.       label = 139;
  40774.       break;
  40775.     } else if (($21 | 0) == 1198879349) {
  40776.       HEAP[$retval_i1_i] = 1735750194;
  40777.       var $_ph_i = 1735750194;
  40778.       label = 139;
  40779.       break;
  40780.     } else {
  40781.       HEAP[$retval_i1_i] = 1145457748;
  40782.       HEAP[$new_tag_i] = 1145457748;
  40783.       break;
  40784.     }
  40785.   } while (0);
  40786.   if (label == 139) {
  40787.     var $_ph_i;
  40788.     HEAP[$new_tag_i] = $_ph_i;
  40789.     HEAP[HEAP[$script_tag_2_addr_i]] = HEAP[HEAP[$script_tag_1_addr_i]];
  40790.     HEAP[HEAP[$script_tag_1_addr_i]] = HEAP[$new_tag_i];
  40791.   }
  40792.   var $37 = HEAP[$this1 + 12 | 0];
  40793.   HEAP[$language_addr_i] = $37;
  40794.   L175 : do {
  40795.     if (($37 | 0) == 0) {
  40796.       HEAP[$retval_i2] = 1684434036;
  40797.     } else {
  40798.       HEAP[$language_addr_i_i] = HEAP[$language_addr_i];
  40799.       HEAP[$lang_str_i] = HEAP[$language_addr_i_i] | 0;
  40800.       var $call1_i5 = _strstr(HEAP[$lang_str_i], 102232);
  40801.       HEAP[$s_i3] = $call1_i5;
  40802.       do {
  40803.         if ((HEAP[$s_i3] | 0) != 0) {
  40804.           HEAP[$s_i3] = HEAP[$s_i3] + 6 | 0;
  40805.           HEAP[$i_i] = 0;
  40806.           var $54 = HEAP[$i_i];
  40807.           while (1) {
  40808.             var $54;
  40809.             $c_addr_i_i = HEAP[HEAP[$s_i3] + $54 | 0];
  40810.             do {
  40811.               if (($c_addr_i_i & 255 | 0) >= 97) {
  40812.                 if (!(($c_addr_i_i & 255 | 0) <= 122)) {
  40813.                   label = 147;
  40814.                   break;
  40815.                 }
  40816.                 var $64 = HEAP[$i_i];
  40817.                 break;
  40818.               } else {
  40819.                 label = 147;
  40820.               }
  40821.             } while (0);
  40822.             if (label == 147) {
  40823.               label = 0;
  40824.               if (!(($c_addr_i_i & 255 | 0) >= 65)) {
  40825.                 label = 148;
  40826.                 break;
  40827.               }
  40828.               var $63 = HEAP[$i_i];
  40829.               if (($c_addr_i_i & 255 | 0) <= 90) {
  40830.                 var $64 = $63;
  40831.               } else {
  40832.                 var $74 = $63;
  40833.                 break;
  40834.               }
  40835.             }
  40836.             var $64;
  40837.             $c_addr_i6_i = HEAP[HEAP[$s_i3] + $64 | 0];
  40838.             do {
  40839.               if (($c_addr_i6_i & 255 | 0) >= 97) {
  40840.                 if (!(($c_addr_i6_i & 255 | 0) <= 122)) {
  40841.                   label = 153;
  40842.                   break;
  40843.                 }
  40844.                 var $cond_i_i = ($c_addr_i6_i & 255) - 32 | 0;
  40845.                 break;
  40846.               } else {
  40847.                 label = 153;
  40848.               }
  40849.             } while (0);
  40850.             if (label == 153) {
  40851.               label = 0;
  40852.               var $cond_i_i = $c_addr_i6_i & 255;
  40853.             }
  40854.             var $cond_i_i;
  40855.             HEAP[$tag_i + HEAP[$i_i] | 0] = $cond_i_i & 255;
  40856.             var $inc_i = HEAP[$i_i] + 1 | 0;
  40857.             HEAP[$i_i] = $inc_i;
  40858.             var $73 = HEAP[$i_i];
  40859.             if (($inc_i | 0) < 4) {
  40860.               var $54 = $73;
  40861.             } else {
  40862.               var $74 = $73;
  40863.               break;
  40864.             }
  40865.           }
  40866.           if (label == 148) {
  40867.             var $74 = HEAP[$i_i];
  40868.           }
  40869.           var $74;
  40870.           if (($74 | 0) == 0) {
  40871.             break;
  40872.           }
  40873.           L199 : do {
  40874.             if ((HEAP[$i_i] | 0) < 4) {
  40875.               while (1) {
  40876.                 HEAP[$tag_i + HEAP[$i_i] | 0] = 32;
  40877.                 var $inc15_i = HEAP[$i_i] + 1 | 0;
  40878.                 HEAP[$i_i] = $inc15_i;
  40879.                 if (($inc15_i | 0) >= 4) {
  40880.                   break L199;
  40881.                 }
  40882.               }
  40883.             }
  40884.           } while (0);
  40885.           HEAP[$retval_i2] = (HEAP[$tag_i + 1 | 0] & 255) << 16 | (HEAP[$tag_i | 0] & 255) << 24 | (HEAP[$tag_i + 2 | 0] & 255) << 8 | HEAP[$tag_i + 3 | 0] & 255;
  40886.           break L175;
  40887.         }
  40888.       } while (0);
  40889.       var $82 = _bsearch(HEAP[$lang_str_i], 134848, 352, 12, 64);
  40890.       HEAP[$lang_tag_i] = $82;
  40891.       if (($82 | 0) != 0) {
  40892.         HEAP[$retval_i2] = HEAP[HEAP[$lang_tag_i] + 8 | 0];
  40893.         break;
  40894.       }
  40895.       if (0 != (__ZL28lang_compare_first_componentPKcS0_(HEAP[$lang_str_i], 103280) | 0)) {
  40896.         var $call59_i = _strchr(HEAP[$lang_str_i], 45);
  40897.         HEAP[$s_i3] = $call59_i;
  40898.         if ((HEAP[$s_i3] | 0) == 0) {
  40899.           var $add_ptr63_i = HEAP[$lang_str_i] + _strlen(HEAP[$lang_str_i]) | 0;
  40900.           HEAP[$s_i3] = $add_ptr63_i;
  40901.         }
  40902.         if ((HEAP[$s_i3] - HEAP[$lang_str_i] | 0) == 3) {
  40903.           var $and_i = _hb_tag_from_string(HEAP[$lang_str_i], HEAP[$s_i3] - HEAP[$lang_str_i] | 0) & -538976257;
  40904.           HEAP[$retval_i2] = $and_i;
  40905.           break;
  40906.         } else {
  40907.           HEAP[$retval_i2] = 1684434036;
  40908.           break;
  40909.         }
  40910.       }
  40911.       HEAP[$i42_i] = 0;
  40912.       while (1) {
  40913.         HEAP[$lang_tag_i] = (HEAP[$i42_i] * 12 & -1) + 132008 | 0;
  40914.         var $94 = HEAP[$lang_str_i];
  40915.         HEAP[$lang_str_addr_i_i] = HEAP[$lang_tag_i] | 0;
  40916.         HEAP[$spec_addr_i_i] = $94;
  40917.         var $call_i_i = _strlen(HEAP[$spec_addr_i_i]);
  40918.         HEAP[$len_i_i] = $call_i_i;
  40919.         if ((_strncmp(HEAP[$lang_str_addr_i_i], HEAP[$spec_addr_i_i], HEAP[$len_i_i]) | 0) == 0) {
  40920.           if ((HEAP[HEAP[$lang_str_addr_i_i] + HEAP[$len_i_i] | 0] << 24 >> 24 | 0) == 0) {
  40921.             label = 166;
  40922.             break;
  40923.           }
  40924.           if ((HEAP[HEAP[$lang_str_addr_i_i] + HEAP[$len_i_i] | 0] << 24 >> 24 | 0) == 45) {
  40925.             label = 166;
  40926.             break;
  40927.           }
  40928.         }
  40929.         var $inc56_i = HEAP[$i42_i] + 1 | 0;
  40930.         HEAP[$i42_i] = $inc56_i;
  40931.         if ($inc56_i >>> 0 >= 5) {
  40932.           label = 168;
  40933.           break;
  40934.         }
  40935.       }
  40936.       if (label == 166) {
  40937.         HEAP[$retval_i2] = HEAP[HEAP[$lang_tag_i] + 8 | 0];
  40938.         break;
  40939.       } else if (label == 168) {
  40940.         HEAP[$retval_i2] = 1514689312;
  40941.         break;
  40942.       }
  40943.     }
  40944.   } while (0);
  40945.   $language_tag = HEAP[$retval_i2];
  40946.   $table_index = 0;
  40947.   var $face7 = $this1 | 0;
  40948.   var $arraydecay = $script_tags | 0;
  40949.   var $script_index = $this1 + 36 | 0;
  40950.   var $chosen_script = $this1 + 24 | 0;
  40951.   var $found_script = $this1 + 32 | 0;
  40952.   var $face12 = $this1 | 0;
  40953.   var $script_index13 = $this1 + 36 | 0;
  40954.   var $language_index = $this1 + 44 | 0;
  40955.   while (1) {
  40956.     $table_tag = HEAP[($table_index << 2) + 148032 | 0];
  40957.     HEAP[$face_addr_i9] = HEAP[$face7];
  40958.     HEAP[$table_tag_addr_i10] = $table_tag;
  40959.     HEAP[$script_tags_addr_i] = $arraydecay;
  40960.     HEAP[$script_index_addr_i11] = ($table_index << 2) + $script_index | 0;
  40961.     HEAP[$chosen_script_addr_i] = ($table_index << 2) + $chosen_script | 0;
  40962.     var $call_i12 = __ZL18get_gsubgpos_tableP9hb_face_tj(HEAP[$face_addr_i9], HEAP[$table_tag_addr_i10]);
  40963.     HEAP[$g_i] = $call_i12;
  40964.     var $164 = HEAP[$g_i];
  40965.     L228 : do {
  40966.       if ((HEAP[HEAP[$script_tags_addr_i]] | 0) != 0) {
  40967.         var $165 = $164;
  40968.         while (1) {
  40969.           var $165;
  40970.           if (__ZNK2OT8GSUBGPOS17find_script_indexEjPj($165, HEAP[HEAP[$script_tags_addr_i]], HEAP[$script_index_addr_i11])) {
  40971.             break;
  40972.           }
  40973.           HEAP[$script_tags_addr_i] = HEAP[$script_tags_addr_i] + 4 | 0;
  40974.           var $176 = HEAP[$g_i];
  40975.           if ((HEAP[HEAP[$script_tags_addr_i]] | 0) != 0) {
  40976.             var $165 = $176;
  40977.           } else {
  40978.             var $_lcssa_i = $176;
  40979.             label = 181;
  40980.             break L228;
  40981.           }
  40982.         }
  40983.         if ((HEAP[$chosen_script_addr_i] | 0) != 0) {
  40984.           HEAP[HEAP[$chosen_script_addr_i]] = HEAP[HEAP[$script_tags_addr_i]];
  40985.         }
  40986.         HEAP[$retval_i8] = 1;
  40987.         break;
  40988.       } else {
  40989.         var $_lcssa_i = $164;
  40990.         label = 181;
  40991.       }
  40992.     } while (0);
  40993.     do {
  40994.       if (label == 181) {
  40995.         label = 0;
  40996.         var $_lcssa_i;
  40997.         if (__ZNK2OT8GSUBGPOS17find_script_indexEjPj($_lcssa_i, 1145457748, HEAP[$script_index_addr_i11])) {
  40998.           if ((HEAP[$chosen_script_addr_i] | 0) != 0) {
  40999.             HEAP[HEAP[$chosen_script_addr_i]] = 1145457748;
  41000.           }
  41001.           HEAP[$retval_i8] = 0;
  41002.           break;
  41003.         }
  41004.         if (__ZNK2OT8GSUBGPOS17find_script_indexEjPj(HEAP[$g_i], 1684434036, HEAP[$script_index_addr_i11])) {
  41005.           if ((HEAP[$chosen_script_addr_i] | 0) != 0) {
  41006.             HEAP[HEAP[$chosen_script_addr_i]] = 1684434036;
  41007.           }
  41008.           HEAP[$retval_i8] = 0;
  41009.           break;
  41010.         }
  41011.         if (__ZNK2OT8GSUBGPOS17find_script_indexEjPj(HEAP[$g_i], 1818326126, HEAP[$script_index_addr_i11])) {
  41012.           if ((HEAP[$chosen_script_addr_i] | 0) != 0) {
  41013.             HEAP[HEAP[$chosen_script_addr_i]] = 1818326126;
  41014.           }
  41015.           HEAP[$retval_i8] = 0;
  41016.           break;
  41017.         }
  41018.         if ((HEAP[$script_index_addr_i11] | 0) != 0) {
  41019.           HEAP[HEAP[$script_index_addr_i11]] = 65535;
  41020.         }
  41021.         if ((HEAP[$chosen_script_addr_i] | 0) != 0) {
  41022.           HEAP[HEAP[$chosen_script_addr_i]] = 65535;
  41023.         }
  41024.         HEAP[$retval_i8] = 0;
  41025.       }
  41026.     } while (0);
  41027.     HEAP[$found_script + $table_index | 0] = (HEAP[$retval_i8] | 0) != 0 & 1;
  41028.     var $197 = HEAP[($table_index << 2) + $script_index13 | 0];
  41029.     HEAP[$face_addr_i] = HEAP[$face12];
  41030.     HEAP[$table_tag_addr_i] = $table_tag;
  41031.     HEAP[$script_index_addr_i] = $197;
  41032.     HEAP[$language_tag_addr_i] = $language_tag;
  41033.     HEAP[$language_index_addr_i] = ($table_index << 2) + $language_index | 0;
  41034.     var $call1_i = __ZNK2OT8GSUBGPOS10get_scriptEj(__ZL18get_gsubgpos_tableP9hb_face_tj(HEAP[$face_addr_i], HEAP[$table_tag_addr_i]), HEAP[$script_index_addr_i]);
  41035.     HEAP[$s_i] = $call1_i;
  41036.     do {
  41037.       if (__ZNK2OT6Script19find_lang_sys_indexEjPj(HEAP[$s_i], HEAP[$language_tag_addr_i], HEAP[$language_index_addr_i])) {
  41038.         HEAP[$retval_i] = 1;
  41039.       } else {
  41040.         if (__ZNK2OT6Script19find_lang_sys_indexEjPj(HEAP[$s_i], 1684434036, HEAP[$language_index_addr_i])) {
  41041.           HEAP[$retval_i] = 0;
  41042.           break;
  41043.         }
  41044.         if ((HEAP[$language_index_addr_i] | 0) != 0) {
  41045.           HEAP[HEAP[$language_index_addr_i]] = 65535;
  41046.         }
  41047.         HEAP[$retval_i] = 0;
  41048.       }
  41049.     } while (0);
  41050.     var $inc = $table_index + 1 | 0;
  41051.     $table_index = $inc;
  41052.     if ($inc >>> 0 >= 2) {
  41053.       break;
  41054.     }
  41055.   }
  41056.   STACKTOP = __stackBase__;
  41057.   return;
  41058. }
  41059. function __ZNK21hb_prealloced_array_tIN11hb_ot_map_t11pause_map_tELj1EEixEj($this, $i) {
  41060.   return ($i << 3) + HEAP[$this + 8 | 0] | 0;
  41061. }
  41062. function __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($this, $tag, $value, $flags) {
  41063.   var label = 0;
  41064.   var __stackBase__ = STACKTOP;
  41065.   STACKTOP = STACKTOP + 32 | 0;
  41066.   var $l_addr_i = __stackBase__;
  41067.   var $r_addr_i = __stackBase__ + 4;
  41068.   var $count_addr_i_i = __stackBase__ + 8;
  41069.   var $size_addr_i_i = __stackBase__ + 12;
  41070.   var $retval_i = __stackBase__ + 16;
  41071.   var $this_addr_i = __stackBase__ + 20;
  41072.   var $new_allocated_i = __stackBase__ + 24;
  41073.   var $new_array_i = __stackBase__ + 28;
  41074.   var $tag_addr;
  41075.   var $value_addr;
  41076.   var $flags_addr;
  41077.   var $info;
  41078.   $tag_addr = $tag;
  41079.   $value_addr = $value;
  41080.   $flags_addr = $flags;
  41081.   var $this1 = $this;
  41082.   HEAP[$this_addr_i] = $this1 + 60 | 0;
  41083.   var $this1_i = HEAP[$this_addr_i];
  41084.   if ((HEAP[$this1_i + 8 | 0] | 0) == 0) {
  41085.     HEAP[$this1_i + 8 | 0] = $this1_i + 12 | 0;
  41086.     HEAP[$this1_i + 4 | 0] = 16;
  41087.   }
  41088.   L279 : do {
  41089.     if (HEAP[$this1_i | 0] >>> 0 < HEAP[$this1_i + 4 | 0] >>> 0) {
  41090.       var $len6_i = $this1_i | 0;
  41091.       var $7 = HEAP[$len6_i];
  41092.       HEAP[$len6_i] = $7 + 1 | 0;
  41093.       var $arrayidx_i = HEAP[$this1_i + 8 | 0] + ($7 * 28 & -1) | 0;
  41094.       HEAP[$retval_i] = $arrayidx_i;
  41095.       var $41 = $arrayidx_i;
  41096.     } else {
  41097.       HEAP[$new_allocated_i] = HEAP[$this1_i + 4 | 0] + (HEAP[$this1_i + 4 | 0] >>> 1) + 8 | 0;
  41098.       HEAP[$new_array_i] = 0;
  41099.       var $12 = HEAP[$new_allocated_i];
  41100.       do {
  41101.         if ((HEAP[$this1_i + 8 | 0] | 0) == ($this1_i + 12 | 0)) {
  41102.           var $13 = _calloc($12, 28);
  41103.           HEAP[$new_array_i] = $13;
  41104.           if ((HEAP[$new_array_i] | 0) == 0) {
  41105.             break;
  41106.           }
  41107.           var $16 = HEAP[$new_array_i];
  41108.           var $18 = HEAP[$this1_i + 8 | 0];
  41109.           var $mul_i = HEAP[$this1_i | 0] * 28 & -1;
  41110.           for (var $$src = $18, $$dest = $16, $$stop = $$src + $mul_i; $$src < $$stop; $$src++, $$dest++) {
  41111.             HEAP[$$dest] = HEAP[$$src];
  41112.           }
  41113.           label = 221;
  41114.           break;
  41115.         } else {
  41116.           if ($12 >>> 0 < HEAP[$this1_i + 4 | 0] >>> 0) {
  41117.             var $30 = 1;
  41118.           } else {
  41119.             HEAP[$count_addr_i_i] = HEAP[$new_allocated_i];
  41120.             HEAP[$size_addr_i_i] = 28;
  41121.             if (HEAP[$size_addr_i_i] >>> 0 > 0) {
  41122.               var $27 = HEAP[$count_addr_i_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i_i] >>> 0)) >>> 0;
  41123.             } else {
  41124.               var $27 = 0;
  41125.             }
  41126.             var $27;
  41127.             var $30 = $27;
  41128.           }
  41129.           var $30;
  41130.           if ($30 & 1) {
  41131.             label = 221;
  41132.             break;
  41133.           }
  41134.           var $35 = _realloc(HEAP[$this1_i + 8 | 0], HEAP[$new_allocated_i] * 28 & -1);
  41135.           HEAP[$new_array_i] = $35;
  41136.           var $36 = $35;
  41137.           label = 222;
  41138.           break;
  41139.         }
  41140.       } while (0);
  41141.       do {
  41142.         if (label == 221) {
  41143.           var $36 = HEAP[$new_array_i];
  41144.           label = 222;
  41145.           break;
  41146.         }
  41147.       } while (0);
  41148.       do {
  41149.         if (label == 222) {
  41150.           var $36;
  41151.           if (($36 | 0) == 0) {
  41152.             break;
  41153.           }
  41154.           HEAP[$this1_i + 8 | 0] = HEAP[$new_array_i];
  41155.           HEAP[$this1_i + 4 | 0] = HEAP[$new_allocated_i];
  41156.           var $len38_i = $this1_i | 0;
  41157.           var $39 = HEAP[$len38_i];
  41158.           HEAP[$len38_i] = $39 + 1 | 0;
  41159.           var $arrayidx41_i = HEAP[$this1_i + 8 | 0] + ($39 * 28 & -1) | 0;
  41160.           HEAP[$retval_i] = $arrayidx41_i;
  41161.           var $41 = $arrayidx41_i;
  41162.           break L279;
  41163.         }
  41164.       } while (0);
  41165.       HEAP[$retval_i] = 0;
  41166.       var $41 = 0;
  41167.     }
  41168.   } while (0);
  41169.   var $41;
  41170.   $info = $41;
  41171.   if (($41 | 0) == 0) {
  41172.     STACKTOP = __stackBase__;
  41173.     return;
  41174.   }
  41175.   HEAP[$info | 0] = $tag_addr;
  41176.   HEAP[$info + 4 | 0] = HEAP[$this1 + 60 | 0];
  41177.   HEAP[$info + 8 | 0] = $value_addr;
  41178.   HEAP[$info + 12 | 0] = $flags_addr;
  41179.   HEAP[$l_addr_i] = $flags_addr;
  41180.   HEAP[$r_addr_i] = 1;
  41181.   HEAP[$info + 16 | 0] = (HEAP[$r_addr_i] & HEAP[$l_addr_i] | 0) != 0 ? $value_addr : 0;
  41182.   HEAP[$info + 20 | 0] = HEAP[$this1 + 52 | 0];
  41183.   HEAP[$info + 24 | 0] = HEAP[$this1 + 56 | 0];
  41184.   STACKTOP = __stackBase__;
  41185.   return;
  41186. }
  41187. function __ZNK11hb_ot_map_t10substituteEPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($this, $plan, $font, $buffer) {
  41188.   var __stackBase__ = STACKTOP;
  41189.   STACKTOP = STACKTOP + 72 | 0;
  41190.   var $this_addr_i28 = __stackBase__;
  41191.   var $i_addr_i29 = __stackBase__ + 4;
  41192.   var $this_addr_i_i_i_i = __stackBase__ + 8;
  41193.   var $this_addr_i_i_i = __stackBase__ + 12;
  41194.   var $obj_addr_i_i = __stackBase__ + 16;
  41195.   var $this_addr_i26 = __stackBase__ + 20;
  41196.   var $this_addr_i21 = __stackBase__ + 24;
  41197.   var $i_addr_i22 = __stackBase__ + 28;
  41198.   var $this_addr_i16 = __stackBase__ + 32;
  41199.   var $i_addr_i17 = __stackBase__ + 36;
  41200.   var $this_addr_i11 = __stackBase__ + 40;
  41201.   var $i_addr_i12 = __stackBase__ + 44;
  41202.   var $this_addr_i6 = __stackBase__ + 48;
  41203.   var $i_addr_i7 = __stackBase__ + 52;
  41204.   var $this_addr_i1 = __stackBase__ + 56;
  41205.   var $i_addr_i2 = __stackBase__ + 60;
  41206.   var $this_addr_i = __stackBase__ + 64;
  41207.   var $i_addr_i = __stackBase__ + 68;
  41208.   var $plan_addr;
  41209.   var $font_addr;
  41210.   var $buffer_addr;
  41211.   var $i;
  41212.   var $pause_index;
  41213.   var $pause;
  41214.   $plan_addr = $plan;
  41215.   $font_addr = $font;
  41216.   $buffer_addr = $buffer;
  41217.   var $this1 = $this;
  41218.   $i = 0;
  41219.   $pause_index = 0;
  41220.   var $len = $this1 + 852 | 0;
  41221.   L305 : do {
  41222.     if ($pause_index >>> 0 < HEAP[$len] >>> 0) {
  41223.       var $arrayidx3 = $this1 + 852 | 0;
  41224.       var $arrayidx7 = $this1 + 316 | 0;
  41225.       var $arrayidx10 = $this1 + 316 | 0;
  41226.       var $arrayidx13 = $this1 + 316 | 0;
  41227.       while (1) {
  41228.         HEAP[$this_addr_i] = $arrayidx3;
  41229.         HEAP[$i_addr_i] = $pause_index;
  41230.         $pause = (HEAP[$i_addr_i] << 3) + HEAP[HEAP[$this_addr_i] + 8 | 0] | 0;
  41231.         L309 : do {
  41232.           if ($i >>> 0 < HEAP[$pause | 0] >>> 0) {
  41233.             while (1) {
  41234.               HEAP[$this_addr_i1] = $arrayidx7;
  41235.               HEAP[$i_addr_i2] = $i;
  41236.               var $conv = HEAP[(HEAP[$i_addr_i2] << 3) + HEAP[HEAP[$this_addr_i1] + 8 | 0] | 0] & 65535;
  41237.               HEAP[$this_addr_i21] = $arrayidx10;
  41238.               HEAP[$i_addr_i22] = $i;
  41239.               var $55 = HEAP[(HEAP[$i_addr_i22] << 3) + HEAP[HEAP[$this_addr_i21] + 8 | 0] + 4 | 0];
  41240.               HEAP[$this_addr_i28] = $arrayidx13;
  41241.               HEAP[$i_addr_i29] = $i;
  41242.               __Z30hb_ot_layout_substitute_lookupP9hb_font_tP11hb_buffer_tjji($font_addr, $buffer_addr, $conv, $55, HEAP[(HEAP[$i_addr_i29] << 3) + HEAP[HEAP[$this_addr_i28] + 8 | 0] + 2 | 0] & 1);
  41243.               $i = $i + 1 | 0;
  41244.               if ($i >>> 0 >= HEAP[$pause | 0] >>> 0) {
  41245.                 break L309;
  41246.               }
  41247.             }
  41248.           }
  41249.         } while (0);
  41250.         HEAP[$this_addr_i26] = $buffer_addr;
  41251.         var $this1_i27 = HEAP[$this_addr_i26];
  41252.         HEAP[$obj_addr_i_i] = $this1_i27;
  41253.         HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  41254.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  41255.         if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  41256.           HEAP[$this1_i27 + 77 | 0] = 1;
  41257.           HEAP[$this1_i27 + 78 | 0] = 0;
  41258.           HEAP[$this1_i27 + 88 | 0] = 0;
  41259.           HEAP[$this1_i27 + 100 | 0] = HEAP[$this1_i27 + 96 | 0];
  41260.         }
  41261.         if ((HEAP[$pause + 4 | 0] | 0) != 0) {
  41262.           FUNCTION_TABLE[HEAP[$pause + 4 | 0]]($plan_addr, $font_addr, $buffer_addr);
  41263.         }
  41264.         $pause_index = $pause_index + 1 | 0;
  41265.         if ($pause_index >>> 0 >= HEAP[$len] >>> 0) {
  41266.           break L305;
  41267.         }
  41268.       }
  41269.     }
  41270.   } while (0);
  41271.   var $len24 = $this1 + 316 | 0;
  41272.   if ($i >>> 0 >= HEAP[$len24] >>> 0) {
  41273.     STACKTOP = __stackBase__;
  41274.     return;
  41275.   }
  41276.   var $arrayidx28 = $this1 + 316 | 0;
  41277.   var $arrayidx33 = $this1 + 316 | 0;
  41278.   var $arrayidx37 = $this1 + 316 | 0;
  41279.   while (1) {
  41280.     HEAP[$this_addr_i16] = $arrayidx28;
  41281.     HEAP[$i_addr_i17] = $i;
  41282.     var $conv31 = HEAP[(HEAP[$i_addr_i17] << 3) + HEAP[HEAP[$this_addr_i16] + 8 | 0] | 0] & 65535;
  41283.     HEAP[$this_addr_i11] = $arrayidx33;
  41284.     HEAP[$i_addr_i12] = $i;
  41285.     var $89 = HEAP[(HEAP[$i_addr_i12] << 3) + HEAP[HEAP[$this_addr_i11] + 8 | 0] + 4 | 0];
  41286.     HEAP[$this_addr_i6] = $arrayidx37;
  41287.     HEAP[$i_addr_i7] = $i;
  41288.     __Z30hb_ot_layout_substitute_lookupP9hb_font_tP11hb_buffer_tjji($font_addr, $buffer_addr, $conv31, $89, HEAP[(HEAP[$i_addr_i7] << 3) + HEAP[HEAP[$this_addr_i6] + 8 | 0] + 2 | 0] & 1);
  41289.     $i = $i + 1 | 0;
  41290.     if ($i >>> 0 >= HEAP[$len24] >>> 0) {
  41291.       break;
  41292.     }
  41293.   }
  41294.   STACKTOP = __stackBase__;
  41295.   return;
  41296. }
  41297. function __ZNK11hb_ot_map_t8positionEPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($this, $plan, $font, $buffer) {
  41298.   var __stackBase__ = STACKTOP;
  41299.   STACKTOP = STACKTOP + 56 | 0;
  41300.   var $this_addr_i26 = __stackBase__;
  41301.   var $i_addr_i27 = __stackBase__ + 4;
  41302.   var $this_addr_i21 = __stackBase__ + 8;
  41303.   var $i_addr_i22 = __stackBase__ + 12;
  41304.   var $this_addr_i16 = __stackBase__ + 16;
  41305.   var $i_addr_i17 = __stackBase__ + 20;
  41306.   var $this_addr_i11 = __stackBase__ + 24;
  41307.   var $i_addr_i12 = __stackBase__ + 28;
  41308.   var $this_addr_i6 = __stackBase__ + 32;
  41309.   var $i_addr_i7 = __stackBase__ + 36;
  41310.   var $this_addr_i1 = __stackBase__ + 40;
  41311.   var $i_addr_i2 = __stackBase__ + 44;
  41312.   var $this_addr_i = __stackBase__ + 48;
  41313.   var $i_addr_i = __stackBase__ + 52;
  41314.   var $plan_addr;
  41315.   var $font_addr;
  41316.   var $buffer_addr;
  41317.   var $i;
  41318.   var $pause_index;
  41319.   var $pause;
  41320.   $plan_addr = $plan;
  41321.   $font_addr = $font;
  41322.   $buffer_addr = $buffer;
  41323.   var $this1 = $this;
  41324.   $i = 0;
  41325.   $pause_index = 0;
  41326.   var $len = $this1 + 872 | 0;
  41327.   L327 : do {
  41328.     if ($pause_index >>> 0 < HEAP[$len] >>> 0) {
  41329.       var $arrayidx3 = $this1 + 872 | 0;
  41330.       var $arrayidx7 = $this1 + 584 | 0;
  41331.       var $arrayidx10 = $this1 + 584 | 0;
  41332.       var $arrayidx13 = $this1 + 584 | 0;
  41333.       while (1) {
  41334.         HEAP[$this_addr_i] = $arrayidx3;
  41335.         HEAP[$i_addr_i] = $pause_index;
  41336.         $pause = (HEAP[$i_addr_i] << 3) + HEAP[HEAP[$this_addr_i] + 8 | 0] | 0;
  41337.         L331 : do {
  41338.           if ($i >>> 0 < HEAP[$pause | 0] >>> 0) {
  41339.             while (1) {
  41340.               HEAP[$this_addr_i1] = $arrayidx7;
  41341.               HEAP[$i_addr_i2] = $i;
  41342.               var $conv = HEAP[(HEAP[$i_addr_i2] << 3) + HEAP[HEAP[$this_addr_i1] + 8 | 0] | 0] & 65535;
  41343.               HEAP[$this_addr_i21] = $arrayidx10;
  41344.               HEAP[$i_addr_i22] = $i;
  41345.               var $47 = HEAP[(HEAP[$i_addr_i22] << 3) + HEAP[HEAP[$this_addr_i21] + 8 | 0] + 4 | 0];
  41346.               HEAP[$this_addr_i26] = $arrayidx13;
  41347.               HEAP[$i_addr_i27] = $i;
  41348.               __Z28hb_ot_layout_position_lookupP9hb_font_tP11hb_buffer_tjji($font_addr, $buffer_addr, $conv, $47, HEAP[(HEAP[$i_addr_i27] << 3) + HEAP[HEAP[$this_addr_i26] + 8 | 0] + 2 | 0] & 1);
  41349.               $i = $i + 1 | 0;
  41350.               if ($i >>> 0 >= HEAP[$pause | 0] >>> 0) {
  41351.                 break L331;
  41352.               }
  41353.             }
  41354.           }
  41355.         } while (0);
  41356.         if ((HEAP[$pause + 4 | 0] | 0) != 0) {
  41357.           FUNCTION_TABLE[HEAP[$pause + 4 | 0]]($plan_addr, $font_addr, $buffer_addr);
  41358.         }
  41359.         $pause_index = $pause_index + 1 | 0;
  41360.         if ($pause_index >>> 0 >= HEAP[$len] >>> 0) {
  41361.           break L327;
  41362.         }
  41363.       }
  41364.     }
  41365.   } while (0);
  41366.   var $len24 = $this1 + 584 | 0;
  41367.   if ($i >>> 0 >= HEAP[$len24] >>> 0) {
  41368.     STACKTOP = __stackBase__;
  41369.     return;
  41370.   }
  41371.   var $arrayidx28 = $this1 + 584 | 0;
  41372.   var $arrayidx33 = $this1 + 584 | 0;
  41373.   var $arrayidx37 = $this1 + 584 | 0;
  41374.   while (1) {
  41375.     HEAP[$this_addr_i16] = $arrayidx28;
  41376.     HEAP[$i_addr_i17] = $i;
  41377.     var $conv31 = HEAP[(HEAP[$i_addr_i17] << 3) + HEAP[HEAP[$this_addr_i16] + 8 | 0] | 0] & 65535;
  41378.     HEAP[$this_addr_i11] = $arrayidx33;
  41379.     HEAP[$i_addr_i12] = $i;
  41380.     var $77 = HEAP[(HEAP[$i_addr_i12] << 3) + HEAP[HEAP[$this_addr_i11] + 8 | 0] + 4 | 0];
  41381.     HEAP[$this_addr_i6] = $arrayidx37;
  41382.     HEAP[$i_addr_i7] = $i;
  41383.     __Z28hb_ot_layout_position_lookupP9hb_font_tP11hb_buffer_tjji($font_addr, $buffer_addr, $conv31, $77, HEAP[(HEAP[$i_addr_i7] << 3) + HEAP[HEAP[$this_addr_i6] + 8 | 0] + 2 | 0] & 1);
  41384.     $i = $i + 1 | 0;
  41385.     if ($i >>> 0 >= HEAP[$len24] >>> 0) {
  41386.       break;
  41387.     }
  41388.   }
  41389.   STACKTOP = __stackBase__;
  41390.   return;
  41391. }
  41392. function __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($this, $table_index, $pause_func) {
  41393.   var label = 0;
  41394.   var __stackBase__ = STACKTOP;
  41395.   STACKTOP = STACKTOP + 24 | 0;
  41396.   var $count_addr_i_i = __stackBase__;
  41397.   var $size_addr_i_i = __stackBase__ + 4;
  41398.   var $retval_i = __stackBase__ + 8;
  41399.   var $this_addr_i = __stackBase__ + 12;
  41400.   var $new_allocated_i = __stackBase__ + 16;
  41401.   var $new_array_i = __stackBase__ + 20;
  41402.   var $table_index_addr;
  41403.   var $pause_func_addr;
  41404.   var $p;
  41405.   $table_index_addr = $table_index;
  41406.   $pause_func_addr = $pause_func;
  41407.   var $this1 = $this;
  41408.   HEAP[$this_addr_i] = $this1 + ($table_index_addr * 20 & -1) + 520 | 0;
  41409.   var $this1_i = HEAP[$this_addr_i];
  41410.   if ((HEAP[$this1_i + 8 | 0] | 0) == 0) {
  41411.     HEAP[$this1_i + 8 | 0] = $this1_i + 12 | 0;
  41412.     HEAP[$this1_i + 4 | 0] = 1;
  41413.   }
  41414.   L349 : do {
  41415.     if (HEAP[$this1_i | 0] >>> 0 < HEAP[$this1_i + 4 | 0] >>> 0) {
  41416.       var $len6_i = $this1_i | 0;
  41417.       var $8 = HEAP[$len6_i];
  41418.       HEAP[$len6_i] = $8 + 1 | 0;
  41419.       var $arrayidx_i = ($8 << 3) + HEAP[$this1_i + 8 | 0] | 0;
  41420.       HEAP[$retval_i] = $arrayidx_i;
  41421.       var $42 = $arrayidx_i;
  41422.     } else {
  41423.       HEAP[$new_allocated_i] = HEAP[$this1_i + 4 | 0] + (HEAP[$this1_i + 4 | 0] >>> 1) + 8 | 0;
  41424.       HEAP[$new_array_i] = 0;
  41425.       var $13 = HEAP[$new_allocated_i];
  41426.       do {
  41427.         if ((HEAP[$this1_i + 8 | 0] | 0) == ($this1_i + 12 | 0)) {
  41428.           var $14 = _calloc($13, 8);
  41429.           HEAP[$new_array_i] = $14;
  41430.           if ((HEAP[$new_array_i] | 0) == 0) {
  41431.             break;
  41432.           }
  41433.           var $17 = HEAP[$new_array_i];
  41434.           var $19 = HEAP[$this1_i + 8 | 0];
  41435.           var $mul_i = HEAP[$this1_i | 0] << 3;
  41436.           for (var $$src = $19, $$dest = $17, $$stop = $$src + $mul_i; $$src < $$stop; $$src++, $$dest++) {
  41437.             HEAP[$$dest] = HEAP[$$src];
  41438.           }
  41439.           label = 271;
  41440.           break;
  41441.         } else {
  41442.           if ($13 >>> 0 < HEAP[$this1_i + 4 | 0] >>> 0) {
  41443.             var $31 = 1;
  41444.           } else {
  41445.             HEAP[$count_addr_i_i] = HEAP[$new_allocated_i];
  41446.             HEAP[$size_addr_i_i] = 8;
  41447.             if (HEAP[$size_addr_i_i] >>> 0 > 0) {
  41448.               var $28 = HEAP[$count_addr_i_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i_i] >>> 0)) >>> 0;
  41449.             } else {
  41450.               var $28 = 0;
  41451.             }
  41452.             var $28;
  41453.             var $31 = $28;
  41454.           }
  41455.           var $31;
  41456.           if ($31 & 1) {
  41457.             label = 271;
  41458.             break;
  41459.           }
  41460.           var $36 = _realloc(HEAP[$this1_i + 8 | 0], HEAP[$new_allocated_i] << 3);
  41461.           HEAP[$new_array_i] = $36;
  41462.           var $37 = $36;
  41463.           label = 272;
  41464.           break;
  41465.         }
  41466.       } while (0);
  41467.       do {
  41468.         if (label == 271) {
  41469.           var $37 = HEAP[$new_array_i];
  41470.           label = 272;
  41471.           break;
  41472.         }
  41473.       } while (0);
  41474.       do {
  41475.         if (label == 272) {
  41476.           var $37;
  41477.           if (($37 | 0) == 0) {
  41478.             break;
  41479.           }
  41480.           HEAP[$this1_i + 8 | 0] = HEAP[$new_array_i];
  41481.           HEAP[$this1_i + 4 | 0] = HEAP[$new_allocated_i];
  41482.           var $len38_i = $this1_i | 0;
  41483.           var $40 = HEAP[$len38_i];
  41484.           HEAP[$len38_i] = $40 + 1 | 0;
  41485.           var $arrayidx41_i = ($40 << 3) + HEAP[$this1_i + 8 | 0] | 0;
  41486.           HEAP[$retval_i] = $arrayidx41_i;
  41487.           var $42 = $arrayidx41_i;
  41488.           break L349;
  41489.         }
  41490.       } while (0);
  41491.       HEAP[$retval_i] = 0;
  41492.       var $42 = 0;
  41493.     }
  41494.   } while (0);
  41495.   var $42;
  41496.   $p = $42;
  41497.   if (($42 | 0) == 0) {
  41498.     var $52 = $table_index_addr;
  41499.     var $current_stage3 = $this1 + 52 | 0;
  41500.     var $arrayidx4 = ($52 << 2) + $current_stage3 | 0;
  41501.     var $53 = HEAP[$arrayidx4];
  41502.     var $inc = $53 + 1 | 0;
  41503.     HEAP[$arrayidx4] = $inc;
  41504.     STACKTOP = __stackBase__;
  41505.     return;
  41506.   }
  41507.   HEAP[$p | 0] = HEAP[($table_index_addr << 2) + $this1 + 52 | 0];
  41508.   HEAP[$p + 4 | 0] = $pause_func_addr;
  41509.   var $52 = $table_index_addr;
  41510.   var $current_stage3 = $this1 + 52 | 0;
  41511.   var $arrayidx4 = ($52 << 2) + $current_stage3 | 0;
  41512.   var $53 = HEAP[$arrayidx4];
  41513.   var $inc = $53 + 1 | 0;
  41514.   HEAP[$arrayidx4] = $inc;
  41515.   STACKTOP = __stackBase__;
  41516.   return;
  41517. }
  41518. function __ZN19hb_ot_map_builder_t7compileER11hb_ot_map_t($this, $m) {
  41519.   var label = 0;
  41520.   var __stackBase__ = STACKTOP;
  41521.   STACKTOP = STACKTOP + 596 | 0;
  41522.   var $this_addr_i323 = __stackBase__;
  41523.   var $i_addr_i324 = __stackBase__ + 4;
  41524.   var $this_addr_i318 = __stackBase__ + 8;
  41525.   var $i_addr_i319 = __stackBase__ + 12;
  41526.   var $a_addr_i314 = __stackBase__ + 16;
  41527.   var $b_addr_i315 = __stackBase__ + 20;
  41528.   var $this_addr_i309 = __stackBase__ + 24;
  41529.   var $i_addr_i310 = __stackBase__ + 28;
  41530.   var $this_addr_i304 = __stackBase__ + 32;
  41531.   var $i_addr_i305 = __stackBase__ + 36;
  41532.   var $this_addr_i299 = __stackBase__ + 40;
  41533.   var $i_addr_i300 = __stackBase__ + 44;
  41534.   var $l_addr_i296 = __stackBase__ + 48;
  41535.   var $r_addr_i297 = __stackBase__ + 52;
  41536.   var $l_addr_i_i291 = __stackBase__ + 56;
  41537.   var $r_addr_i_i292 = __stackBase__ + 60;
  41538.   var $l_addr_i293 = __stackBase__ + 64;
  41539.   var $r_addr_i294 = __stackBase__ + 68;
  41540.   var $this_addr_i286 = __stackBase__ + 72;
  41541.   var $i_addr_i287 = __stackBase__ + 76;
  41542.   var $this_addr_i281 = __stackBase__ + 80;
  41543.   var $i_addr_i282 = __stackBase__ + 84;
  41544.   var $a_addr_i277 = __stackBase__ + 88;
  41545.   var $b_addr_i278 = __stackBase__ + 92;
  41546.   var $this_addr_i272 = __stackBase__ + 96;
  41547.   var $i_addr_i273 = __stackBase__ + 100;
  41548.   var $this_addr_i267 = __stackBase__ + 104;
  41549.   var $i_addr_i268 = __stackBase__ + 108;
  41550.   var $this_addr_i262 = __stackBase__ + 112;
  41551.   var $i_addr_i263 = __stackBase__ + 116;
  41552.   var $a_addr_i = __stackBase__ + 120;
  41553.   var $b_addr_i = __stackBase__ + 124;
  41554.   var $this_addr_i256 = __stackBase__ + 128;
  41555.   var $i_addr_i257 = __stackBase__ + 132;
  41556.   var $this_addr_i247 = __stackBase__ + 136;
  41557.   var $l_addr_i248 = __stackBase__ + 140;
  41558.   var $this_addr_i242 = __stackBase__ + 144;
  41559.   var $i_addr_i243 = __stackBase__ + 148;
  41560.   var $l_addr_i239 = __stackBase__ + 152;
  41561.   var $r_addr_i240 = __stackBase__ + 156;
  41562.   var $number_addr_i = __stackBase__ + 160;
  41563.   var $n_bits_i = __stackBase__ + 164;
  41564.   var $l_addr_i_i232 = __stackBase__ + 168;
  41565.   var $r_addr_i_i233 = __stackBase__ + 172;
  41566.   var $l_addr_i234 = __stackBase__ + 176;
  41567.   var $r_addr_i235 = __stackBase__ + 180;
  41568.   var $l_addr_i229 = __stackBase__ + 184;
  41569.   var $r_addr_i230 = __stackBase__ + 188;
  41570.   var $r_addr_i228 = __stackBase__ + 192;
  41571.   var $this_addr_i223 = __stackBase__ + 196;
  41572.   var $i_addr_i224 = __stackBase__ + 200;
  41573.   var $count_addr_i_i154 = __stackBase__ + 204;
  41574.   var $size_addr_i_i155 = __stackBase__ + 208;
  41575.   var $retval_i156 = __stackBase__ + 212;
  41576.   var $this_addr_i157 = __stackBase__ + 216;
  41577.   var $new_allocated_i158 = __stackBase__ + 220;
  41578.   var $new_array_i159 = __stackBase__ + 224;
  41579.   var $l_addr_i151 = __stackBase__ + 228;
  41580.   var $r_addr_i152 = __stackBase__ + 232;
  41581.   var $l_addr_i148 = __stackBase__ + 236;
  41582.   var $r_addr_i149 = __stackBase__ + 240;
  41583.   var $this_addr_i140 = __stackBase__ + 244;
  41584.   var $l_addr_i141 = __stackBase__ + 248;
  41585.   var $this_addr_i135 = __stackBase__ + 252;
  41586.   var $i_addr_i136 = __stackBase__ + 256;
  41587.   var $this_addr_i132 = __stackBase__ + 260;
  41588.   var $pause_func_addr_i133 = __stackBase__ + 264;
  41589.   var $this_addr_i127 = __stackBase__ + 268;
  41590.   var $i_addr_i128 = __stackBase__ + 272;
  41591.   var $this_addr_i125 = __stackBase__ + 276;
  41592.   var $pause_func_addr_i = __stackBase__ + 280;
  41593.   var $this_addr_i120 = __stackBase__ + 284;
  41594.   var $i_addr_i121 = __stackBase__ + 288;
  41595.   var $l_addr_i_i = __stackBase__ + 292;
  41596.   var $r_addr_i_i = __stackBase__ + 296;
  41597.   var $l_addr_i118 = __stackBase__ + 300;
  41598.   var $r_addr_i119 = __stackBase__ + 304;
  41599.   var $this_addr_i113 = __stackBase__ + 308;
  41600.   var $i_addr_i114 = __stackBase__ + 312;
  41601.   var $this_addr_i_i_i1_i = __stackBase__ + 316;
  41602.   var $this_addr_i_i2_i = __stackBase__ + 320;
  41603.   var $this_addr_i3_i = __stackBase__ + 324;
  41604.   var $this_addr_i_i1_i_i = __stackBase__ + 328;
  41605.   var $this_addr_i2_i_i = __stackBase__ + 332;
  41606.   var $this_addr_i_i_i_i = __stackBase__ + 336;
  41607.   var $this_addr_i_i_i = __stackBase__ + 340;
  41608.   var $retval_i_i = __stackBase__ + 344;
  41609.   var $this_addr_i_i = __stackBase__ + 348;
  41610.   var $face_addr_i = __stackBase__ + 352;
  41611.   var $table_tag_addr_i = __stackBase__ + 356;
  41612.   var $script_index_addr_i = __stackBase__ + 360;
  41613.   var $language_index_addr_i = __stackBase__ + 364;
  41614.   var $feature_index_addr_i = __stackBase__ + 368;
  41615.   var $l_i = __stackBase__ + 372;
  41616.   var $l_addr_i108 = __stackBase__ + 376;
  41617.   var $r_addr_i = __stackBase__ + 380;
  41618.   var $this_addr_i103 = __stackBase__ + 384;
  41619.   var $i_addr_i104 = __stackBase__ + 388;
  41620.   var $this_addr_i98 = __stackBase__ + 392;
  41621.   var $i_addr_i99 = __stackBase__ + 396;
  41622.   var $this_addr_i93 = __stackBase__ + 400;
  41623.   var $i_addr_i94 = __stackBase__ + 404;
  41624.   var $this_addr_i88 = __stackBase__ + 408;
  41625.   var $i_addr_i89 = __stackBase__ + 412;
  41626.   var $this_addr_i83 = __stackBase__ + 416;
  41627.   var $i_addr_i84 = __stackBase__ + 420;
  41628.   var $this_addr_i78 = __stackBase__ + 424;
  41629.   var $i_addr_i79 = __stackBase__ + 428;
  41630.   var $this_addr_i75 = __stackBase__ + 432;
  41631.   var $start_addr_i = __stackBase__ + 436;
  41632.   var $end_addr_i = __stackBase__ + 440;
  41633.   var $this_addr_i70 = __stackBase__ + 444;
  41634.   var $i_addr_i71 = __stackBase__ + 448;
  41635.   var $this_addr_i65 = __stackBase__ + 452;
  41636.   var $i_addr_i66 = __stackBase__ + 456;
  41637.   var $this_addr_i60 = __stackBase__ + 460;
  41638.   var $i_addr_i61 = __stackBase__ + 464;
  41639.   var $this_addr_i55 = __stackBase__ + 468;
  41640.   var $i_addr_i56 = __stackBase__ + 472;
  41641.   var $this_addr_i50 = __stackBase__ + 476;
  41642.   var $i_addr_i51 = __stackBase__ + 480;
  41643.   var $this_addr_i45 = __stackBase__ + 484;
  41644.   var $i_addr_i46 = __stackBase__ + 488;
  41645.   var $this_addr_i40 = __stackBase__ + 492;
  41646.   var $i_addr_i41 = __stackBase__ + 496;
  41647.   var $this_addr_i35 = __stackBase__ + 500;
  41648.   var $i_addr_i36 = __stackBase__ + 504;
  41649.   var $this_addr_i29 = __stackBase__ + 508;
  41650.   var $l_addr_i = __stackBase__ + 512;
  41651.   var $this_addr_i24 = __stackBase__ + 516;
  41652.   var $i_addr_i25 = __stackBase__ + 520;
  41653.   var $this_addr_i19 = __stackBase__ + 524;
  41654.   var $i_addr_i20 = __stackBase__ + 528;
  41655.   var $this_addr_i14 = __stackBase__ + 532;
  41656.   var $i_addr_i15 = __stackBase__ + 536;
  41657.   var $count_addr_i_i = __stackBase__ + 540;
  41658.   var $size_addr_i_i = __stackBase__ + 544;
  41659.   var $retval_i = __stackBase__ + 548;
  41660.   var $this_addr_i9 = __stackBase__ + 552;
  41661.   var $new_allocated_i = __stackBase__ + 556;
  41662.   var $new_array_i = __stackBase__ + 560;
  41663.   var $this_addr_i4 = __stackBase__ + 564;
  41664.   var $i_addr_i5 = __stackBase__ + 568;
  41665.   var $this_addr_i1 = __stackBase__ + 572;
  41666.   var $i_addr_i = __stackBase__ + 576;
  41667.   var $this_addr_i = __stackBase__ + 580;
  41668.   var $m_addr;
  41669.   var $table_index;
  41670.   var $j;
  41671.   var $i;
  41672.   var $next_bit;
  41673.   var $i99;
  41674.   var $info;
  41675.   var $bits_needed;
  41676.   var $found;
  41677.   var $feature_index = __stackBase__ + 584;
  41678.   var $table_index123;
  41679.   var $map;
  41680.   var $table_index202;
  41681.   var $required_feature_index = __stackBase__ + 592;
  41682.   var $pause_index;
  41683.   var $last_num_lookups;
  41684.   var $stage217;
  41685.   var $i222;
  41686.   var $j259;
  41687.   var $i260;
  41688.   var $pause_map;
  41689.   $m_addr = $m;
  41690.   var $this1 = $this;
  41691.   HEAP[$m_addr + 12 | 0] = 1;
  41692.   $table_index = 0;
  41693.   var $chosen_script = $this1 + 24 | 0;
  41694.   var $found_script = $this1 + 32 | 0;
  41695.   while (1) {
  41696.     HEAP[($table_index << 2) + $m_addr | 0] = HEAP[($table_index << 2) + $chosen_script | 0];
  41697.     HEAP[$table_index + ($m_addr + 8) | 0] = HEAP[$found_script + $table_index | 0] & 1;
  41698.     var $inc = $table_index + 1 | 0;
  41699.     $table_index = $inc;
  41700.     if ($inc >>> 0 >= 2) {
  41701.       break;
  41702.     }
  41703.   }
  41704.   if ((HEAP[$this1 + 60 | 0] | 0) == 0) {
  41705.     STACKTOP = __stackBase__;
  41706.     return;
  41707.   }
  41708.   HEAP[$this_addr_i] = $this1 + 60 | 0;
  41709.   var $this1_i = HEAP[$this_addr_i];
  41710.   _qsort(HEAP[$this1_i + 8 | 0], HEAP[$this1_i | 0], 28, 12);
  41711.   $j = 0;
  41712.   $i = 1;
  41713.   var $len11 = $this1 + 60 | 0;
  41714.   var $feature_infos14 = $this1 + 60 | 0;
  41715.   L381 : do {
  41716.     if ($i >>> 0 < HEAP[$len11] >>> 0) {
  41717.       var $feature_infos15 = $this1 + 60 | 0;
  41718.       var $feature_infos20 = $this1 + 60 | 0;
  41719.       var $feature_infos23 = $this1 + 60 | 0;
  41720.       var $feature_infos30 = $this1 + 60 | 0;
  41721.       var $feature_infos34 = $this1 + 60 | 0;
  41722.       var $feature_infos36 = $this1 + 60 | 0;
  41723.       var $feature_infos39 = $this1 + 60 | 0;
  41724.       var $feature_infos41 = $this1 + 60 | 0;
  41725.       var $feature_infos61 = $this1 + 60 | 0;
  41726.       var $feature_infos64 = $this1 + 60 | 0;
  41727.       var $feature_infos69 = $this1 + 60 | 0;
  41728.       var $feature_infos72 = $this1 + 60 | 0;
  41729.       var $feature_infos77 = $this1 + 60 | 0;
  41730.       var $feature_infos81 = $this1 + 60 | 0;
  41731.       var $feature_infos85 = $this1 + 60 | 0;
  41732.       var $feature_infos90 = $this1 + 60 | 0;
  41733.       var $feature_infos50 = $this1 + 60 | 0;
  41734.       var $feature_infos53 = $this1 + 60 | 0;
  41735.       var $feature_infos57 = $this1 + 60 | 0;
  41736.       while (1) {
  41737.         HEAP[$this_addr_i1] = $feature_infos14;
  41738.         HEAP[$i_addr_i] = $i;
  41739.         var $151 = HEAP[HEAP[HEAP[$this_addr_i1] + 8 | 0] + (HEAP[$i_addr_i] * 28 & -1) | 0];
  41740.         HEAP[$this_addr_i14] = $feature_infos15;
  41741.         HEAP[$i_addr_i15] = $j;
  41742.         if (($151 | 0) != (HEAP[HEAP[HEAP[$this_addr_i14] + 8 | 0] + (HEAP[$i_addr_i15] * 28 & -1) | 0] | 0)) {
  41743.           var $inc21 = $j + 1 | 0;
  41744.           $j = $inc21;
  41745.           HEAP[$this_addr_i19] = $feature_infos20;
  41746.           HEAP[$i_addr_i20] = $inc21;
  41747.           var $arrayidx_i23 = HEAP[HEAP[$this_addr_i19] + 8 | 0] + (HEAP[$i_addr_i20] * 28 & -1) | 0;
  41748.           HEAP[$this_addr_i78] = $feature_infos23;
  41749.           HEAP[$i_addr_i79] = $i;
  41750.           var $162 = $arrayidx_i23;
  41751.           var $163 = HEAP[HEAP[$this_addr_i78] + 8 | 0] + (HEAP[$i_addr_i79] * 28 & -1) | 0;
  41752.           for (var $$src = $163, $$dest = $162, $$stop = $$src + 28; $$src < $$stop; $$src++, $$dest++) {
  41753.             HEAP[$$dest] = HEAP[$$src];
  41754.           }
  41755.         } else {
  41756.           HEAP[$this_addr_i83] = $feature_infos20;
  41757.           HEAP[$i_addr_i84] = $i;
  41758.           HEAP[$l_addr_i108] = HEAP[HEAP[HEAP[$this_addr_i83] + 8 | 0] + (HEAP[$i_addr_i84] * 28 & -1) + 12 | 0];
  41759.           HEAP[$r_addr_i] = 1;
  41760.           var $tobool28 = (HEAP[$r_addr_i] & HEAP[$l_addr_i108] | 0) != 0;
  41761.           HEAP[$this_addr_i113] = $feature_infos30;
  41762.           HEAP[$i_addr_i114] = $j;
  41763.           var $flags32 = HEAP[HEAP[$this_addr_i113] + 8 | 0] + (HEAP[$i_addr_i114] * 28 & -1) + 12 | 0;
  41764.           if ($tobool28) {
  41765.             HEAP[$l_addr_i118] = $flags32;
  41766.             HEAP[$r_addr_i119] = 1;
  41767.             var $175 = HEAP[$r_addr_i119];
  41768.             HEAP[$l_addr_i_i] = HEAP[HEAP[$l_addr_i118]];
  41769.             HEAP[$r_addr_i_i] = $175;
  41770.             HEAP[HEAP[$l_addr_i118]] = HEAP[$r_addr_i_i] | HEAP[$l_addr_i_i];
  41771.             HEAP[$this_addr_i120] = $feature_infos34;
  41772.             HEAP[$i_addr_i121] = $i;
  41773.             var $182 = HEAP[HEAP[HEAP[$this_addr_i120] + 8 | 0] + (HEAP[$i_addr_i121] * 28 & -1) + 8 | 0];
  41774.             HEAP[$this_addr_i127] = $feature_infos36;
  41775.             HEAP[$i_addr_i128] = $j;
  41776.             HEAP[HEAP[HEAP[$this_addr_i127] + 8 | 0] + (HEAP[$i_addr_i128] * 28 & -1) + 8 | 0] = $182;
  41777.             HEAP[$this_addr_i135] = $feature_infos39;
  41778.             HEAP[$i_addr_i136] = $i;
  41779.             var $189 = HEAP[HEAP[HEAP[$this_addr_i135] + 8 | 0] + (HEAP[$i_addr_i136] * 28 & -1) + 16 | 0];
  41780.             HEAP[$this_addr_i223] = $feature_infos41;
  41781.             HEAP[$i_addr_i224] = $j;
  41782.             HEAP[HEAP[HEAP[$this_addr_i223] + 8 | 0] + (HEAP[$i_addr_i224] * 28 & -1) + 16 | 0] = $189;
  41783.           } else {
  41784.             HEAP[$r_addr_i228] = 1;
  41785.             var $neg_i = HEAP[$r_addr_i228] ^ -1;
  41786.             HEAP[$l_addr_i234] = $flags32;
  41787.             HEAP[$r_addr_i235] = $neg_i;
  41788.             var $196 = HEAP[$r_addr_i235];
  41789.             HEAP[$l_addr_i_i232] = HEAP[HEAP[$l_addr_i234]];
  41790.             HEAP[$r_addr_i_i233] = $196;
  41791.             HEAP[HEAP[$l_addr_i234]] = HEAP[$r_addr_i_i233] & HEAP[$l_addr_i_i232];
  41792.             HEAP[$this_addr_i323] = $feature_infos50;
  41793.             HEAP[$i_addr_i324] = $j;
  41794.             var $max_value52 = HEAP[HEAP[$this_addr_i323] + 8 | 0] + (HEAP[$i_addr_i324] * 28 & -1) + 8 | 0;
  41795.             HEAP[$this_addr_i318] = $feature_infos53;
  41796.             HEAP[$i_addr_i319] = $i;
  41797.             var $max_value55 = HEAP[HEAP[$this_addr_i318] + 8 | 0] + (HEAP[$i_addr_i319] * 28 & -1) + 8 | 0;
  41798.             HEAP[$a_addr_i314] = $max_value52;
  41799.             HEAP[$b_addr_i315] = $max_value55;
  41800.             var $cond_i317 = HEAP[HEAP[$a_addr_i314]] >>> 0 > HEAP[HEAP[$b_addr_i315]] >>> 0 ? HEAP[HEAP[$a_addr_i314]] : HEAP[HEAP[$b_addr_i315]];
  41801.             HEAP[$this_addr_i309] = $feature_infos57;
  41802.             HEAP[$i_addr_i310] = $j;
  41803.             HEAP[HEAP[HEAP[$this_addr_i309] + 8 | 0] + (HEAP[$i_addr_i310] * 28 & -1) + 8 | 0] = $cond_i317;
  41804.           }
  41805.           HEAP[$this_addr_i304] = $feature_infos61;
  41806.           HEAP[$i_addr_i305] = $j;
  41807.           var $flags63 = HEAP[HEAP[$this_addr_i304] + 8 | 0] + (HEAP[$i_addr_i305] * 28 & -1) + 12 | 0;
  41808.           HEAP[$this_addr_i299] = $feature_infos64;
  41809.           HEAP[$i_addr_i300] = $i;
  41810.           HEAP[$l_addr_i296] = HEAP[HEAP[HEAP[$this_addr_i299] + 8 | 0] + (HEAP[$i_addr_i300] * 28 & -1) + 12 | 0];
  41811.           HEAP[$r_addr_i297] = 2;
  41812.           var $and_i298 = HEAP[$r_addr_i297] & HEAP[$l_addr_i296];
  41813.           HEAP[$l_addr_i293] = $flags63;
  41814.           HEAP[$r_addr_i294] = $and_i298;
  41815.           var $228 = HEAP[$r_addr_i294];
  41816.           HEAP[$l_addr_i_i291] = HEAP[HEAP[$l_addr_i293]];
  41817.           HEAP[$r_addr_i_i292] = $228;
  41818.           HEAP[HEAP[$l_addr_i293]] = HEAP[$r_addr_i_i292] | HEAP[$l_addr_i_i291];
  41819.           HEAP[$this_addr_i286] = $feature_infos69;
  41820.           HEAP[$i_addr_i287] = $j;
  41821.           var $arrayidx71 = HEAP[HEAP[$this_addr_i286] + 8 | 0] + (HEAP[$i_addr_i287] * 28 & -1) + 20 | 0;
  41822.           HEAP[$this_addr_i281] = $feature_infos72;
  41823.           HEAP[$i_addr_i282] = $i;
  41824.           var $arrayidx75 = HEAP[HEAP[$this_addr_i281] + 8 | 0] + (HEAP[$i_addr_i282] * 28 & -1) + 20 | 0;
  41825.           HEAP[$a_addr_i277] = $arrayidx71;
  41826.           HEAP[$b_addr_i278] = $arrayidx75;
  41827.           var $cond_i280 = HEAP[HEAP[$a_addr_i277]] >>> 0 < HEAP[HEAP[$b_addr_i278]] >>> 0 ? HEAP[HEAP[$a_addr_i277]] : HEAP[HEAP[$b_addr_i278]];
  41828.           HEAP[$this_addr_i272] = $feature_infos77;
  41829.           HEAP[$i_addr_i273] = $j;
  41830.           HEAP[HEAP[HEAP[$this_addr_i272] + 8 | 0] + (HEAP[$i_addr_i273] * 28 & -1) + 20 | 0] = $cond_i280;
  41831.           HEAP[$this_addr_i267] = $feature_infos81;
  41832.           HEAP[$i_addr_i268] = $j;
  41833.           var $arrayidx84 = HEAP[HEAP[$this_addr_i267] + 8 | 0] + (HEAP[$i_addr_i268] * 28 & -1) + 24 | 0;
  41834.           HEAP[$this_addr_i262] = $feature_infos85;
  41835.           HEAP[$i_addr_i263] = $i;
  41836.           var $arrayidx88 = HEAP[HEAP[$this_addr_i262] + 8 | 0] + (HEAP[$i_addr_i263] * 28 & -1) + 24 | 0;
  41837.           HEAP[$a_addr_i] = $arrayidx84;
  41838.           HEAP[$b_addr_i] = $arrayidx88;
  41839.           var $cond_i = HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]];
  41840.           HEAP[$this_addr_i256] = $feature_infos90;
  41841.           HEAP[$i_addr_i257] = $j;
  41842.           HEAP[HEAP[HEAP[$this_addr_i256] + 8 | 0] + (HEAP[$i_addr_i257] * 28 & -1) + 24 | 0] = $cond_i;
  41843.         }
  41844.         $i = $i + 1 | 0;
  41845.         if ($i >>> 0 >= HEAP[$len11] >>> 0) {
  41846.           break L381;
  41847.         }
  41848.       }
  41849.     }
  41850.   } while (0);
  41851.   HEAP[$this_addr_i247] = $feature_infos14;
  41852.   HEAP[$l_addr_i248] = $j + 1 | 0;
  41853.   var $this1_i249 = HEAP[$this_addr_i247];
  41854.   if (HEAP[$l_addr_i248] >>> 0 < HEAP[$this1_i249 | 0] >>> 0) {
  41855.     HEAP[$this1_i249 | 0] = HEAP[$l_addr_i248];
  41856.   }
  41857.   $next_bit = 1;
  41858.   $i99 = 0;
  41859.   var $len102 = $this1 + 60 | 0;
  41860.   L397 : do {
  41861.     if ($i99 >>> 0 < HEAP[$len102] >>> 0) {
  41862.       var $feature_infos105 = $this1 + 60 | 0;
  41863.       var $face = $this1 | 0;
  41864.       var $script_index = $this1 + 36 | 0;
  41865.       var $language_index = $this1 + 44 | 0;
  41866.       var $arrayidx152 = $feature_index | 0;
  41867.       var $arrayidx154 = $feature_index + 4 | 0;
  41868.       while (1) {
  41869.         HEAP[$this_addr_i242] = $feature_infos105;
  41870.         HEAP[$i_addr_i243] = $i99;
  41871.         $info = HEAP[HEAP[$this_addr_i242] + 8 | 0] + (HEAP[$i_addr_i243] * 28 & -1) | 0;
  41872.         HEAP[$l_addr_i239] = HEAP[$info + 12 | 0];
  41873.         HEAP[$r_addr_i240] = 1;
  41874.         do {
  41875.           if ((HEAP[$r_addr_i240] & HEAP[$l_addr_i239] | 0) != 0) {
  41876.             if ((HEAP[$info + 8 | 0] | 0) != 1) {
  41877.               label = 299;
  41878.               break;
  41879.             }
  41880.             $bits_needed = 0;
  41881.             break;
  41882.           } else {
  41883.             label = 299;
  41884.           }
  41885.         } while (0);
  41886.         if (label == 299) {
  41887.           label = 0;
  41888.           var $325 = HEAP[$info + 8 | 0];
  41889.           HEAP[$number_addr_i] = $325;
  41890.           HEAP[$n_bits_i] = 0;
  41891.           var $326 = HEAP[$n_bits_i];
  41892.           L406 : do {
  41893.             if (($325 | 0) != 0) {
  41894.               var $327 = $326;
  41895.               while (1) {
  41896.                 var $327;
  41897.                 HEAP[$n_bits_i] = $327 + 1 | 0;
  41898.                 var $shr_i237 = HEAP[$number_addr_i] >>> 1;
  41899.                 HEAP[$number_addr_i] = $shr_i237;
  41900.                 var $329 = HEAP[$n_bits_i];
  41901.                 if (($shr_i237 | 0) != 0) {
  41902.                   var $327 = $329;
  41903.                 } else {
  41904.                   var $_lcssa_i = $329;
  41905.                   break L406;
  41906.                 }
  41907.               }
  41908.             } else {
  41909.               var $_lcssa_i = $326;
  41910.             }
  41911.           } while (0);
  41912.           var $_lcssa_i;
  41913.           $bits_needed = $_lcssa_i;
  41914.         }
  41915.         do {
  41916.           if ((HEAP[$info + 8 | 0] | 0) != 0) {
  41917.             if (($bits_needed + $next_bit | 0) >>> 0 > 32) {
  41918.               break;
  41919.             }
  41920.             $found = 0;
  41921.             $table_index123 = 0;
  41922.             while (1) {
  41923.               $found = ($found & 1 | _hb_ot_layout_language_find_feature(HEAP[$face], HEAP[($table_index123 << 2) + 148032 | 0], HEAP[($table_index123 << 2) + $script_index | 0], HEAP[($table_index123 << 2) + $language_index | 0], HEAP[$info | 0], ($table_index123 << 2) + $feature_index | 0) | 0) != 0 & 1;
  41924.               var $inc137 = $table_index123 + 1 | 0;
  41925.               $table_index123 = $inc137;
  41926.               if ($inc137 >>> 0 >= 2) {
  41927.                 break;
  41928.               }
  41929.             }
  41930.             if (!($found & 1)) {
  41931.               HEAP[$l_addr_i229] = HEAP[$info + 12 | 0];
  41932.               HEAP[$r_addr_i230] = 2;
  41933.               if ((HEAP[$r_addr_i230] & HEAP[$l_addr_i229] | 0) == 0) {
  41934.                 break;
  41935.               }
  41936.             }
  41937.             HEAP[$this_addr_i157] = $m_addr + 16 | 0;
  41938.             var $this1_i161 = HEAP[$this_addr_i157];
  41939.             if ((HEAP[$this1_i161 + 8 | 0] | 0) == 0) {
  41940.               HEAP[$this1_i161 + 8 | 0] = $this1_i161 + 12 | 0;
  41941.               HEAP[$this1_i161 + 4 | 0] = 8;
  41942.             }
  41943.             L423 : do {
  41944.               if (HEAP[$this1_i161 | 0] >>> 0 < HEAP[$this1_i161 + 4 | 0] >>> 0) {
  41945.                 var $len6_i173 = $this1_i161 | 0;
  41946.                 var $355 = HEAP[$len6_i173];
  41947.                 HEAP[$len6_i173] = $355 + 1 | 0;
  41948.                 var $arrayidx_i176 = HEAP[$this1_i161 + 8 | 0] + ($355 * 36 & -1) | 0;
  41949.                 HEAP[$retval_i156] = $arrayidx_i176;
  41950.                 var $384 = $arrayidx_i176;
  41951.               } else {
  41952.                 HEAP[$new_allocated_i158] = HEAP[$this1_i161 + 4 | 0] + (HEAP[$this1_i161 + 4 | 0] >>> 1) + 8 | 0;
  41953.                 HEAP[$new_array_i159] = 0;
  41954.                 var $360 = HEAP[$new_allocated_i158];
  41955.                 do {
  41956.                   if ((HEAP[$this1_i161 + 8 | 0] | 0) == ($this1_i161 + 12 | 0)) {
  41957.                     var $361 = _calloc($360, 36);
  41958.                     HEAP[$new_array_i159] = $361;
  41959.                     if ((HEAP[$new_array_i159] | 0) == 0) {
  41960.                       break;
  41961.                     }
  41962.                     var $364 = HEAP[$new_array_i159];
  41963.                     var $366 = HEAP[$this1_i161 + 8 | 0];
  41964.                     var $mul_i193 = HEAP[$this1_i161 | 0] * 36 & -1;
  41965.                     for (var $$src = $366, $$dest = $364, $$stop = $$src + $mul_i193; $$src < $$stop; $$src++, $$dest++) {
  41966.                       HEAP[$$dest] = HEAP[$$src];
  41967.                     }
  41968.                     label = 320;
  41969.                     break;
  41970.                   } else {
  41971.                     do {
  41972.                       if ($360 >>> 0 < HEAP[$this1_i161 + 4 | 0] >>> 0) {
  41973.                         var $373 = 1;
  41974.                       } else {
  41975.                         HEAP[$count_addr_i_i154] = HEAP[$new_allocated_i158];
  41976.                         HEAP[$size_addr_i_i155] = 36;
  41977.                         if (HEAP[$size_addr_i_i155] >>> 0 <= 0) {
  41978.                           var $373 = 0;
  41979.                           break;
  41980.                         }
  41981.                         var $373 = HEAP[$count_addr_i_i154] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i_i155] >>> 0)) >>> 0;
  41982.                       }
  41983.                     } while (0);
  41984.                     var $373;
  41985.                     if ($373 & 1) {
  41986.                       label = 320;
  41987.                       break;
  41988.                     }
  41989.                     var $378 = _realloc(HEAP[$this1_i161 + 8 | 0], HEAP[$new_allocated_i158] * 36 & -1);
  41990.                     HEAP[$new_array_i159] = $378;
  41991.                     var $379 = $378;
  41992.                     label = 321;
  41993.                     break;
  41994.                   }
  41995.                 } while (0);
  41996.                 do {
  41997.                   if (label == 320) {
  41998.                     label = 0;
  41999.                     var $379 = HEAP[$new_array_i159];
  42000.                     label = 321;
  42001.                     break;
  42002.                   }
  42003.                 } while (0);
  42004.                 do {
  42005.                   if (label == 321) {
  42006.                     label = 0;
  42007.                     var $379;
  42008.                     if (($379 | 0) == 0) {
  42009.                       break;
  42010.                     }
  42011.                     HEAP[$this1_i161 + 8 | 0] = HEAP[$new_array_i159];
  42012.                     HEAP[$this1_i161 + 4 | 0] = HEAP[$new_allocated_i158];
  42013.                     var $len38_i218 = $this1_i161 | 0;
  42014.                     var $382 = HEAP[$len38_i218];
  42015.                     HEAP[$len38_i218] = $382 + 1 | 0;
  42016.                     var $arrayidx41_i221 = HEAP[$this1_i161 + 8 | 0] + ($382 * 36 & -1) | 0;
  42017.                     HEAP[$retval_i156] = $arrayidx41_i221;
  42018.                     var $384 = $arrayidx41_i221;
  42019.                     break L423;
  42020.                   }
  42021.                 } while (0);
  42022.                 HEAP[$retval_i156] = 0;
  42023.                 var $384 = 0;
  42024.               }
  42025.             } while (0);
  42026.             var $384;
  42027.             $map = $384;
  42028.             if (($384 | 0) == 0) {
  42029.               break L397;
  42030.             }
  42031.             HEAP[$map | 0] = HEAP[$info | 0];
  42032.             HEAP[$map + 4 | 0] = HEAP[$arrayidx152];
  42033.             HEAP[$map + 8 | 0] = HEAP[$arrayidx154];
  42034.             HEAP[$map + 12 | 0] = HEAP[$info + 20 | 0];
  42035.             HEAP[$map + 16 | 0] = HEAP[$info + 24 | 0];
  42036.             HEAP[$l_addr_i151] = HEAP[$info + 12 | 0];
  42037.             HEAP[$r_addr_i152] = 4;
  42038.             var $404 = $map + 32 | 0;
  42039.             HEAP[$404] = HEAP[$404] & -3 | (((HEAP[$r_addr_i152] & HEAP[$l_addr_i151] | 0) != 0 ^ 1) & 1) << 1;
  42040.             HEAP[$l_addr_i148] = HEAP[$info + 12 | 0];
  42041.             HEAP[$r_addr_i149] = 1;
  42042.             do {
  42043.               if ((HEAP[$r_addr_i149] & HEAP[$l_addr_i148] | 0) != 0) {
  42044.                 if ((HEAP[$info + 8 | 0] | 0) != 1) {
  42045.                   label = 328;
  42046.                   break;
  42047.                 }
  42048.                 HEAP[$map + 20 | 0] = 0;
  42049.                 HEAP[$map + 24 | 0] = 1;
  42050.                 break;
  42051.               } else {
  42052.                 label = 328;
  42053.               }
  42054.             } while (0);
  42055.             if (label == 328) {
  42056.               label = 0;
  42057.               HEAP[$map + 20 | 0] = $next_bit;
  42058.               HEAP[$map + 24 | 0] = (1 << $bits_needed + $next_bit) - (1 << $next_bit) | 0;
  42059.               $next_bit = $next_bit + $bits_needed | 0;
  42060.               var $global_mask186 = $m_addr + 12 | 0;
  42061.               HEAP[$global_mask186] = HEAP[$global_mask186] | HEAP[$map + 24 | 0] & HEAP[$info + 16 | 0] << HEAP[$map + 20 | 0];
  42062.             }
  42063.             HEAP[$map + 28 | 0] = HEAP[$map + 24 | 0] & 1 << HEAP[$map + 20 | 0];
  42064.             var $442 = $map + 32 | 0;
  42065.             HEAP[$442] = HEAP[$442] & -2 | ($found & 1 ^ 1) & 1;
  42066.           }
  42067.         } while (0);
  42068.         $i99 = $i99 + 1 | 0;
  42069.         if ($i99 >>> 0 >= HEAP[$len102] >>> 0) {
  42070.           break L397;
  42071.         }
  42072.       }
  42073.     }
  42074.   } while (0);
  42075.   HEAP[$this_addr_i140] = $this1 + 60 | 0;
  42076.   HEAP[$l_addr_i141] = 0;
  42077.   var $this1_i142 = HEAP[$this_addr_i140];
  42078.   if (HEAP[$l_addr_i141] >>> 0 < HEAP[$this1_i142 | 0] >>> 0) {
  42079.     HEAP[$this1_i142 | 0] = HEAP[$l_addr_i141];
  42080.   }
  42081.   HEAP[$this_addr_i132] = $this1;
  42082.   HEAP[$pause_func_addr_i133] = 0;
  42083.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i132], 0, HEAP[$pause_func_addr_i133]);
  42084.   HEAP[$this_addr_i125] = $this1;
  42085.   HEAP[$pause_func_addr_i] = 0;
  42086.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i125], 1, HEAP[$pause_func_addr_i]);
  42087.   $table_index202 = 0;
  42088.   var $face207 = $this1 | 0;
  42089.   var $script_index208 = $this1 + 36 | 0;
  42090.   var $language_index210 = $this1 + 44 | 0;
  42091.   var $face215 = $this1 | 0;
  42092.   var $current_stage = $this1 + 52 | 0;
  42093.   var $pauses = $this1 + 520 | 0;
  42094.   var $pauses328 = $this1 + 520 | 0;
  42095.   var $pauses339 = $this1 + 520 | 0;
  42096.   var $face234 = $this1 | 0;
  42097.   while (1) {
  42098.     var $578 = HEAP[($table_index202 << 2) + 148032 | 0];
  42099.     var $580 = HEAP[($table_index202 << 2) + $script_index208 | 0];
  42100.     var $582 = HEAP[($table_index202 << 2) + $language_index210 | 0];
  42101.     HEAP[$face_addr_i] = HEAP[$face207];
  42102.     HEAP[$table_tag_addr_i] = $578;
  42103.     HEAP[$script_index_addr_i] = $580;
  42104.     HEAP[$language_index_addr_i] = $582;
  42105.     HEAP[$feature_index_addr_i] = $required_feature_index;
  42106.     var $call2_i = __ZNK2OT6Script12get_lang_sysEj(__ZNK2OT8GSUBGPOS10get_scriptEj(__ZL18get_gsubgpos_tableP9hb_face_tj(HEAP[$face_addr_i], HEAP[$table_tag_addr_i]), HEAP[$script_index_addr_i]), HEAP[$language_index_addr_i]);
  42107.     HEAP[$l_i] = $call2_i;
  42108.     if ((HEAP[$feature_index_addr_i] | 0) != 0) {
  42109.       HEAP[$this_addr_i_i] = HEAP[$l_i];
  42110.       var $this1_i_i = HEAP[$this_addr_i_i];
  42111.       HEAP[$this_addr_i_i_i] = $this1_i_i + 2 | 0;
  42112.       HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  42113.       var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  42114.       if ((((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 65535) {
  42115.         HEAP[$retval_i_i] = 65535;
  42116.       } else {
  42117.         HEAP[$this_addr_i2_i_i] = $this1_i_i + 2 | 0;
  42118.         HEAP[$this_addr_i_i1_i_i] = HEAP[$this_addr_i2_i_i] | 0;
  42119.         var $this1_i_i5_i_i = HEAP[$this_addr_i_i1_i_i];
  42120.         HEAP[$retval_i_i] = ((HEAP[$this1_i_i5_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i + 1 | 0] & 255) & 65535;
  42121.       }
  42122.       HEAP[HEAP[$feature_index_addr_i]] = HEAP[$retval_i_i];
  42123.     }
  42124.     HEAP[$this_addr_i3_i] = HEAP[$l_i];
  42125.     HEAP[$this_addr_i_i2_i] = HEAP[$this_addr_i3_i] + 2 | 0;
  42126.     HEAP[$this_addr_i_i_i1_i] = HEAP[$this_addr_i_i2_i] | 0;
  42127.     var $this1_i_i_i8_i = HEAP[$this_addr_i_i_i1_i];
  42128.     if (((((HEAP[$this1_i_i_i8_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i8_i + 1 | 0] & 255) & 65535 | 0) != 65535 & 1 | 0) != 0) {
  42129.       __ZN11hb_ot_map_t11add_lookupsEP9hb_face_tjjjb($m_addr, HEAP[$face215], $table_index202, HEAP[$required_feature_index], 1, 1);
  42130.     }
  42131.     $pause_index = 0;
  42132.     $last_num_lookups = 0;
  42133.     $stage217 = 0;
  42134.     L466 : do {
  42135.       if ($stage217 >>> 0 < HEAP[($table_index202 << 2) + $current_stage | 0] >>> 0) {
  42136.         while (1) {
  42137.           $i222 = 0;
  42138.           L469 : do {
  42139.             if ($i222 >>> 0 < HEAP[$m_addr + 16 | 0] >>> 0) {
  42140.               while (1) {
  42141.                 HEAP[$this_addr_i103] = $m_addr + 16 | 0;
  42142.                 HEAP[$i_addr_i104] = $i222;
  42143.                 if ((HEAP[($table_index202 << 2) + HEAP[HEAP[$this_addr_i103] + 8 | 0] + (HEAP[$i_addr_i104] * 36 & -1) + 12 | 0] | 0) == ($stage217 | 0)) {
  42144.                   var $616 = HEAP[$face234];
  42145.                   HEAP[$this_addr_i98] = $m_addr + 16 | 0;
  42146.                   HEAP[$i_addr_i99] = $i222;
  42147.                   var $623 = HEAP[($table_index202 << 2) + HEAP[HEAP[$this_addr_i98] + 8 | 0] + (HEAP[$i_addr_i99] * 36 & -1) + 4 | 0];
  42148.                   HEAP[$this_addr_i93] = $m_addr + 16 | 0;
  42149.                   HEAP[$i_addr_i94] = $i222;
  42150.                   var $628 = HEAP[HEAP[HEAP[$this_addr_i93] + 8 | 0] + (HEAP[$i_addr_i94] * 36 & -1) + 24 | 0];
  42151.                   HEAP[$this_addr_i88] = $m_addr + 16 | 0;
  42152.                   HEAP[$i_addr_i89] = $i222;
  42153.                   __ZN11hb_ot_map_t11add_lookupsEP9hb_face_tjjjb($m_addr, $616, $table_index202, $623, $628, (HEAP[HEAP[HEAP[$this_addr_i88] + 8 | 0] + (HEAP[$i_addr_i89] * 36 & -1) + 32 | 0] >>> 1 & 1 | 0) != 0);
  42154.                 }
  42155.                 $i222 = $i222 + 1 | 0;
  42156.                 if ($i222 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0) {
  42157.                   break L469;
  42158.                 }
  42159.               }
  42160.             }
  42161.           } while (0);
  42162.           do {
  42163.             if ($last_num_lookups >>> 0 < HEAP[$m_addr + ($table_index202 * 268 & -1) + 316 | 0] >>> 0) {
  42164.               var $650 = HEAP[$m_addr + ($table_index202 * 268 & -1) + 316 | 0];
  42165.               HEAP[$this_addr_i75] = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42166.               HEAP[$start_addr_i] = $last_num_lookups;
  42167.               HEAP[$end_addr_i] = $650;
  42168.               _qsort((HEAP[$start_addr_i] << 3) + HEAP[HEAP[$this_addr_i75] + 8 | 0] | 0, HEAP[$end_addr_i] - HEAP[$start_addr_i] | 0, 8, 40);
  42169.               $j259 = $last_num_lookups;
  42170.               $i260 = $j259 + 1 | 0;
  42171.               var $arrayidx269336 = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42172.               L478 : do {
  42173.                 if ($i260 >>> 0 < HEAP[$m_addr + ($table_index202 * 268 & -1) + 316 | 0] >>> 0) {
  42174.                   var $arrayidx269337 = $arrayidx269336;
  42175.                   while (1) {
  42176.                     var $arrayidx269337;
  42177.                     HEAP[$this_addr_i70] = $arrayidx269337;
  42178.                     HEAP[$i_addr_i71] = $i260;
  42179.                     var $conv272 = HEAP[(HEAP[$i_addr_i71] << 3) + HEAP[HEAP[$this_addr_i70] + 8 | 0] | 0] & 65535;
  42180.                     HEAP[$this_addr_i65] = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42181.                     HEAP[$i_addr_i66] = $j259;
  42182.                     var $arrayidx281 = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42183.                     if (($conv272 | 0) != (HEAP[(HEAP[$i_addr_i66] << 3) + HEAP[HEAP[$this_addr_i65] + 8 | 0] | 0] & 65535 | 0)) {
  42184.                       var $inc282 = $j259 + 1 | 0;
  42185.                       $j259 = $inc282;
  42186.                       HEAP[$this_addr_i60] = $arrayidx281;
  42187.                       HEAP[$i_addr_i61] = $inc282;
  42188.                       var $arrayidx_i64 = (HEAP[$i_addr_i61] << 3) + HEAP[HEAP[$this_addr_i60] + 8 | 0] | 0;
  42189.                       HEAP[$this_addr_i55] = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42190.                       HEAP[$i_addr_i56] = $i260;
  42191.                       var $684 = $arrayidx_i64;
  42192.                       var $685 = (HEAP[$i_addr_i56] << 3) + HEAP[HEAP[$this_addr_i55] + 8 | 0] | 0;
  42193.                       HEAP[$684] = HEAP[$685];
  42194.                       HEAP[$684 + 1] = HEAP[$685 + 1];
  42195.                       HEAP[$684 + 2] = HEAP[$685 + 2];
  42196.                       HEAP[$684 + 3] = HEAP[$685 + 3];
  42197.                       HEAP[$684 + 4] = HEAP[$685 + 4];
  42198.                       HEAP[$684 + 5] = HEAP[$685 + 5];
  42199.                       HEAP[$684 + 6] = HEAP[$685 + 6];
  42200.                       HEAP[$684 + 7] = HEAP[$685 + 7];
  42201.                     } else {
  42202.                       HEAP[$this_addr_i50] = $arrayidx281;
  42203.                       HEAP[$i_addr_i51] = $i260;
  42204.                       var $689 = HEAP[(HEAP[$i_addr_i51] << 3) + HEAP[HEAP[$this_addr_i50] + 8 | 0] + 4 | 0];
  42205.                       HEAP[$this_addr_i45] = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42206.                       HEAP[$i_addr_i46] = $j259;
  42207.                       var $mask295 = (HEAP[$i_addr_i46] << 3) + HEAP[HEAP[$this_addr_i45] + 8 | 0] + 4 | 0;
  42208.                       HEAP[$mask295] = HEAP[$mask295] | $689;
  42209.                       HEAP[$this_addr_i40] = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42210.                       HEAP[$i_addr_i41] = $i260;
  42211.                       var $conv302 = HEAP[(HEAP[$i_addr_i41] << 3) + HEAP[HEAP[$this_addr_i40] + 8 | 0] + 2 | 0] & 1;
  42212.                       HEAP[$this_addr_i35] = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42213.                       HEAP[$i_addr_i36] = $j259;
  42214.                       var $arrayidx_i39 = (HEAP[$i_addr_i36] << 3) + HEAP[HEAP[$this_addr_i35] + 8 | 0] | 0;
  42215.                       var $713 = $arrayidx_i39 + 2 | 0;
  42216.                       HEAP[$713] = HEAP[$arrayidx_i39 + 2 | 0] & 1 & $conv302 & 1 | HEAP[$713] & -2;
  42217.                     }
  42218.                     $i260 = $i260 + 1 | 0;
  42219.                     var $arrayidx269 = $m_addr + ($table_index202 * 268 & -1) + 316 | 0;
  42220.                     if ($i260 >>> 0 < HEAP[$m_addr + ($table_index202 * 268 & -1) + 316 | 0] >>> 0) {
  42221.                       var $arrayidx269337 = $arrayidx269;
  42222.                     } else {
  42223.                       var $arrayidx269_lcssa = $arrayidx269;
  42224.                       break L478;
  42225.                     }
  42226.                   }
  42227.                 } else {
  42228.                   var $arrayidx269_lcssa = $arrayidx269336;
  42229.                 }
  42230.               } while (0);
  42231.               var $arrayidx269_lcssa;
  42232.               HEAP[$this_addr_i29] = $arrayidx269_lcssa;
  42233.               HEAP[$l_addr_i] = $j259 + 1 | 0;
  42234.               var $this1_i30 = HEAP[$this_addr_i29];
  42235.               if (HEAP[$l_addr_i] >>> 0 >= HEAP[$this1_i30 | 0] >>> 0) {
  42236.                 break;
  42237.               }
  42238.               HEAP[$this1_i30 | 0] = HEAP[$l_addr_i];
  42239.             }
  42240.           } while (0);
  42241.           $last_num_lookups = HEAP[$m_addr + ($table_index202 * 268 & -1) + 316 | 0];
  42242.           do {
  42243.             if ($pause_index >>> 0 < HEAP[$pauses + ($table_index202 * 20 & -1) | 0] >>> 0) {
  42244.               HEAP[$this_addr_i24] = $pauses328 + ($table_index202 * 20 & -1) | 0;
  42245.               HEAP[$i_addr_i25] = $pause_index;
  42246.               if ((HEAP[(HEAP[$i_addr_i25] << 3) + HEAP[HEAP[$this_addr_i24] + 8 | 0] | 0] | 0) != ($stage217 | 0)) {
  42247.                 break;
  42248.               }
  42249.               HEAP[$this_addr_i9] = $m_addr + ($table_index202 * 20 & -1) + 852 | 0;
  42250.               var $this1_i10 = HEAP[$this_addr_i9];
  42251.               if ((HEAP[$this1_i10 + 8 | 0] | 0) == 0) {
  42252.                 HEAP[$this1_i10 + 8 | 0] = $this1_i10 + 12 | 0;
  42253.                 HEAP[$this1_i10 + 4 | 0] = 1;
  42254.               }
  42255.               L494 : do {
  42256.                 if (HEAP[$this1_i10 | 0] >>> 0 < HEAP[$this1_i10 + 4 | 0] >>> 0) {
  42257.                   var $len6_i = $this1_i10 | 0;
  42258.                   var $746 = HEAP[$len6_i];
  42259.                   HEAP[$len6_i] = $746 + 1 | 0;
  42260.                   var $arrayidx_i13 = ($746 << 3) + HEAP[$this1_i10 + 8 | 0] | 0;
  42261.                   HEAP[$retval_i] = $arrayidx_i13;
  42262.                   var $775 = $arrayidx_i13;
  42263.                 } else {
  42264.                   HEAP[$new_allocated_i] = HEAP[$this1_i10 + 4 | 0] + (HEAP[$this1_i10 + 4 | 0] >>> 1) + 8 | 0;
  42265.                   HEAP[$new_array_i] = 0;
  42266.                   var $751 = HEAP[$new_allocated_i];
  42267.                   do {
  42268.                     if ((HEAP[$this1_i10 + 8 | 0] | 0) == ($this1_i10 + 12 | 0)) {
  42269.                       var $752 = _calloc($751, 8);
  42270.                       HEAP[$new_array_i] = $752;
  42271.                       if ((HEAP[$new_array_i] | 0) == 0) {
  42272.                         break;
  42273.                       }
  42274.                       var $755 = HEAP[$new_array_i];
  42275.                       var $757 = HEAP[$this1_i10 + 8 | 0];
  42276.                       var $mul_i = HEAP[$this1_i10 | 0] << 3;
  42277.                       for (var $$src = $757, $$dest = $755, $$stop = $$src + $mul_i; $$src < $$stop; $$src++, $$dest++) {
  42278.                         HEAP[$$dest] = HEAP[$$src];
  42279.                       }
  42280.                       label = 368;
  42281.                       break;
  42282.                     } else {
  42283.                       do {
  42284.                         if ($751 >>> 0 < HEAP[$this1_i10 + 4 | 0] >>> 0) {
  42285.                           var $764 = 1;
  42286.                         } else {
  42287.                           HEAP[$count_addr_i_i] = HEAP[$new_allocated_i];
  42288.                           HEAP[$size_addr_i_i] = 8;
  42289.                           if (HEAP[$size_addr_i_i] >>> 0 <= 0) {
  42290.                             var $764 = 0;
  42291.                             break;
  42292.                           }
  42293.                           var $764 = HEAP[$count_addr_i_i] >>> 0 >= Math.floor(4294967295 / (HEAP[$size_addr_i_i] >>> 0)) >>> 0;
  42294.                         }
  42295.                       } while (0);
  42296.                       var $764;
  42297.                       if ($764 & 1) {
  42298.                         label = 368;
  42299.                         break;
  42300.                       }
  42301.                       var $769 = _realloc(HEAP[$this1_i10 + 8 | 0], HEAP[$new_allocated_i] << 3);
  42302.                       HEAP[$new_array_i] = $769;
  42303.                       var $770 = $769;
  42304.                       label = 369;
  42305.                       break;
  42306.                     }
  42307.                   } while (0);
  42308.                   do {
  42309.                     if (label == 368) {
  42310.                       label = 0;
  42311.                       var $770 = HEAP[$new_array_i];
  42312.                       label = 369;
  42313.                       break;
  42314.                     }
  42315.                   } while (0);
  42316.                   do {
  42317.                     if (label == 369) {
  42318.                       label = 0;
  42319.                       var $770;
  42320.                       if (($770 | 0) == 0) {
  42321.                         break;
  42322.                       }
  42323.                       HEAP[$this1_i10 + 8 | 0] = HEAP[$new_array_i];
  42324.                       HEAP[$this1_i10 + 4 | 0] = HEAP[$new_allocated_i];
  42325.                       var $len38_i = $this1_i10 | 0;
  42326.                       var $773 = HEAP[$len38_i];
  42327.                       HEAP[$len38_i] = $773 + 1 | 0;
  42328.                       var $arrayidx41_i = ($773 << 3) + HEAP[$this1_i10 + 8 | 0] | 0;
  42329.                       HEAP[$retval_i] = $arrayidx41_i;
  42330.                       var $775 = $arrayidx41_i;
  42331.                       break L494;
  42332.                     }
  42333.                   } while (0);
  42334.                   HEAP[$retval_i] = 0;
  42335.                   var $775 = 0;
  42336.                 }
  42337.               } while (0);
  42338.               var $775;
  42339.               $pause_map = $775;
  42340.               if (($775 | 0) != 0) {
  42341.                 HEAP[$pause_map | 0] = $last_num_lookups;
  42342.                 HEAP[$this_addr_i4] = $pauses339 + ($table_index202 * 20 & -1) | 0;
  42343.                 HEAP[$i_addr_i5] = $pause_index;
  42344.                 HEAP[$pause_map + 4 | 0] = HEAP[(HEAP[$i_addr_i5] << 3) + HEAP[HEAP[$this_addr_i4] + 8 | 0] + 4 | 0];
  42345.               }
  42346.               $pause_index = $pause_index + 1 | 0;
  42347.             }
  42348.           } while (0);
  42349.           $stage217 = $stage217 + 1 | 0;
  42350.           if ($stage217 >>> 0 >= HEAP[($table_index202 << 2) + $current_stage | 0] >>> 0) {
  42351.             break L466;
  42352.           }
  42353.         }
  42354.       }
  42355.     } while (0);
  42356.     var $inc350 = $table_index202 + 1 | 0;
  42357.     $table_index202 = $inc350;
  42358.     if ($inc350 >>> 0 >= 2) {
  42359.       break;
  42360.     }
  42361.   }
  42362.   STACKTOP = __stackBase__;
  42363.   return;
  42364. }
  42365. function __ZN11hb_ot_map_t12lookup_map_t3cmpEPKS0_S2_($a, $b) {
  42366.   var $a_addr;
  42367.   var $b_addr;
  42368.   $a_addr = $a;
  42369.   $b_addr = $b;
  42370.   if ((HEAP[$a_addr | 0] & 65535 | 0) < (HEAP[$b_addr | 0] & 65535 | 0)) {
  42371.     var $cond8 = -1;
  42372.     var $cond8;
  42373.     return $cond8;
  42374.   }
  42375.   var $cond8 = (HEAP[$a_addr | 0] & 65535 | 0) > (HEAP[$b_addr | 0] & 65535 | 0) ? 1 : 0;
  42376.   var $cond8;
  42377.   return $cond8;
  42378. }
  42379. function __ZN19hb_ot_map_builder_t14feature_info_t3cmpEPKS0_S2_($a, $b) {
  42380.   var $a_addr;
  42381.   var $b_addr;
  42382.   $a_addr = $a;
  42383.   $b_addr = $b;
  42384.   var $4 = $a_addr;
  42385.   if ((HEAP[$a_addr | 0] | 0) != (HEAP[$b_addr | 0] | 0)) {
  42386.     var $cmp4_sink = HEAP[$4 | 0] >>> 0 < HEAP[$b_addr | 0] >>> 0;
  42387.     var $cmp4_sink;
  42388.     var $cond = $cmp4_sink ? -1 : 1;
  42389.     return $cond;
  42390.   } else {
  42391.     var $cmp4_sink = HEAP[$4 + 4 | 0] >>> 0 < HEAP[$b_addr + 4 | 0] >>> 0;
  42392.     var $cmp4_sink;
  42393.     var $cond = $cmp4_sink ? -1 : 1;
  42394.     return $cond;
  42395.   }
  42396. }
  42397. function __ZN19hb_ot_map_builder_t14add_gsub_pauseEPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($this, $pause_func) {
  42398.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($this, 0, $pause_func);
  42399.   return;
  42400. }
  42401. function __hb_ot_shaper_shape_plan_data_create($shape_plan, $user_features, $num_user_features) {
  42402.   var label = 0;
  42403.   var __stackBase__ = STACKTOP;
  42404.   STACKTOP = STACKTOP + 732 | 0;
  42405.   var $this_addr_i12_i_i_i = __stackBase__;
  42406.   var $this_addr_i1_i_i_i = __stackBase__ + 4;
  42407.   var $this_addr_i_i_i_i = __stackBase__ + 8;
  42408.   var $this_addr_i_i_i = __stackBase__ + 12;
  42409.   var $this_addr_i_i17 = __stackBase__ + 16;
  42410.   var $this_addr_i18 = __stackBase__ + 20;
  42411.   var $this_addr_i12 = __stackBase__ + 24;
  42412.   var $plan_addr_i = __stackBase__ + 28;
  42413.   var $l_addr_i10_i = __stackBase__ + 32;
  42414.   var $r_addr_i11_i = __stackBase__ + 36;
  42415.   var $l_addr_i_i = __stackBase__ + 40;
  42416.   var $r_addr_i_i = __stackBase__ + 44;
  42417.   var $this_addr_i7_i = __stackBase__ + 48;
  42418.   var $tag_addr_i8_i = __stackBase__ + 52;
  42419.   var $this_addr_i4_i = __stackBase__ + 56;
  42420.   var $tag_addr_i5_i = __stackBase__ + 60;
  42421.   var $this_addr_i1_i = __stackBase__ + 64;
  42422.   var $tag_addr_i2_i = __stackBase__ + 68;
  42423.   var $this_addr_i_i1 = __stackBase__ + 72;
  42424.   var $tag_addr_i_i = __stackBase__ + 76;
  42425.   var $planner_addr_i2 = __stackBase__ + 80;
  42426.   var $props_addr_i = __stackBase__ + 84;
  42427.   var $user_features_addr_i = __stackBase__ + 88;
  42428.   var $num_user_features_addr_i = __stackBase__ + 92;
  42429.   var $map_i3 = __stackBase__ + 96;
  42430.   var $i_i = __stackBase__ + 100;
  42431.   var $i9_i = __stackBase__ + 104;
  42432.   var $i21_i = __stackBase__ + 108;
  42433.   var $i41_i = __stackBase__ + 112;
  42434.   var $feature_i = __stackBase__ + 116;
  42435.   var $retval_i = __stackBase__ + 120;
  42436.   var $planner_addr_i = __stackBase__ + 124;
  42437.   var $this_addr_i_i = __stackBase__ + 128;
  42438.   var $master_plan_addr_i_i = __stackBase__ + 132;
  42439.   var $this_addr_i = __stackBase__ + 136;
  42440.   var $master_plan_addr_i = __stackBase__ + 140;
  42441.   var $retval;
  42442.   var $shape_plan_addr;
  42443.   var $user_features_addr;
  42444.   var $num_user_features_addr;
  42445.   var $plan;
  42446.   var $planner = __stackBase__ + 144;
  42447.   var $cleanup_dest_slot;
  42448.   $shape_plan_addr = $shape_plan;
  42449.   $user_features_addr = $user_features;
  42450.   $num_user_features_addr = $num_user_features;
  42451.   $plan = _calloc(1, 920);
  42452.   if (($plan | 0) == 0) {
  42453.     $retval = 0;
  42454.     var $197 = $retval;
  42455.     STACKTOP = __stackBase__;
  42456.     return $197;
  42457.   }
  42458.   HEAP[$this_addr_i] = $planner;
  42459.   HEAP[$master_plan_addr_i] = $shape_plan_addr;
  42460.   var $5 = HEAP[$master_plan_addr_i];
  42461.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i];
  42462.   HEAP[$master_plan_addr_i_i] = $5;
  42463.   var $this1_i_i = HEAP[$this_addr_i_i];
  42464.   HEAP[$this1_i_i | 0] = HEAP[HEAP[$master_plan_addr_i_i] + 48 | 0];
  42465.   var $11 = $this1_i_i + 4 | 0;
  42466.   var $12 = HEAP[$master_plan_addr_i_i] + 52 | 0;
  42467.   for (var $$src = $12, $$dest = $11, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  42468.     HEAP[$$dest] = HEAP[$$src];
  42469.   }
  42470.   HEAP[$this1_i_i + 24 | 0] = 0;
  42471.   __ZN19hb_ot_map_builder_tC2EP9hb_face_tPK23hb_segment_properties_t($this1_i_i + 28 | 0, HEAP[$this1_i_i | 0], $this1_i_i + 4 | 0);
  42472.   HEAP[$planner_addr_i] = $planner;
  42473.   var $21 = HEAP[HEAP[$planner_addr_i] + 8 | 0];
  42474.   L536 : do {
  42475.     if (($21 | 0) == 1098015074 | ($21 | 0) == 1299148391 | ($21 | 0) == 1400468067 | ($21 | 0) == 1315663727 | ($21 | 0) == 1349017959 | ($21 | 0) == 1298230884) {
  42476.       do {
  42477.         if ((HEAP[HEAP[$planner_addr_i] + 52 | 0] | 0) == 1145457748) {
  42478.           if ((HEAP[HEAP[$planner_addr_i] + 8 | 0] | 0) == 1098015074) {
  42479.             break;
  42480.           }
  42481.           HEAP[$retval_i] = 104608;
  42482.           break L536;
  42483.         }
  42484.       } while (0);
  42485.       HEAP[$retval_i] = 104664;
  42486.     } else if (($21 | 0) == 1416126825 | ($21 | 0) == 1281453935) {
  42487.       HEAP[$retval_i] = 104384;
  42488.     } else if (($21 | 0) == 1415670901 | ($21 | 0) == 1130914157 | ($21 | 0) == 1281453665) {
  42489.       if ((HEAP[HEAP[$planner_addr_i] + 52 | 0] | 0) == 1145457748) {
  42490.         HEAP[$retval_i] = 104608;
  42491.         break;
  42492.       } else {
  42493.         HEAP[$retval_i] = 104440;
  42494.         break;
  42495.       }
  42496.     } else if (($21 | 0) == 1299803506) {
  42497.       if ((HEAP[HEAP[$planner_addr_i] + 52 | 0] | 0) == 1836674354) {
  42498.         HEAP[$retval_i] = 104496;
  42499.         break;
  42500.       } else {
  42501.         HEAP[$retval_i] = 104608;
  42502.         break;
  42503.       }
  42504.     } else if (($21 | 0) == 1113943655 | ($21 | 0) == 1147500129 | ($21 | 0) == 1198877298 | ($21 | 0) == 1198879349 | ($21 | 0) == 1265525857 | ($21 | 0) == 1298954605 | ($21 | 0) == 1332902241 | ($21 | 0) == 1415671148 | ($21 | 0) == 1415933045 | ($21 | 0) == 1399418472 | ($21 | 0) == 1114990441 | ($21 | 0) == 1113681001 | ($21 | 0) == 1281716323 | ($21 | 0) == 1382706791 | ($21 | 0) == 1400204900 | ($21 | 0) == 1247901281 | ($21 | 0) == 1265920105 | ($21 | 0) == 1299473769 | ($21 | 0) == 1130457965 | ($21 | 0) == 1399353956 | ($21 | 0) == 1415670642) {
  42505.       if ((HEAP[HEAP[$planner_addr_i] + 52 | 0] | 0) == 1145457748) {
  42506.         HEAP[$retval_i] = 104608;
  42507.         break;
  42508.       } else {
  42509.         HEAP[$retval_i] = 104552;
  42510.         break;
  42511.       }
  42512.     } else if (($21 | 0) == 1265134962) {
  42513.       do {
  42514.         if (HEAP[HEAP[$planner_addr_i] + 60 | 0] & 1) {
  42515.           if ((_hb_ot_layout_language_find_feature(HEAP[HEAP[$planner_addr_i] | 0], 1196643650, HEAP[HEAP[$planner_addr_i] + 64 | 0], HEAP[HEAP[$planner_addr_i] + 72 | 0], 1886545254, 0) | 0) == 0) {
  42516.             break;
  42517.           }
  42518.           HEAP[$retval_i] = 104552;
  42519.           break L536;
  42520.         }
  42521.       } while (0);
  42522.       HEAP[$retval_i] = 104608;
  42523.     } else {
  42524.       HEAP[$retval_i] = 104608;
  42525.     }
  42526.   } while (0);
  42527.   HEAP[$planner + 24 | 0] = HEAP[$retval_i];
  42528.   HEAP[$planner_addr_i2] = $planner;
  42529.   HEAP[$props_addr_i] = $shape_plan_addr + 52 | 0;
  42530.   HEAP[$user_features_addr_i] = $user_features_addr;
  42531.   HEAP[$num_user_features_addr_i] = $num_user_features_addr;
  42532.   HEAP[$map_i3] = HEAP[$planner_addr_i2] + 28 | 0;
  42533.   var $58 = HEAP[HEAP[$props_addr_i] | 0];
  42534.   if (($58 | 0) == 4) {
  42535.     HEAP[$this_addr_i_i1] = HEAP[$map_i3];
  42536.     HEAP[$tag_addr_i_i] = 1819570785;
  42537.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t(HEAP[$this_addr_i_i1], HEAP[$tag_addr_i_i], 1, 1);
  42538.     HEAP[$this_addr_i1_i] = HEAP[$map_i3];
  42539.     HEAP[$tag_addr_i2_i] = 1819570797;
  42540.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t(HEAP[$this_addr_i1_i], HEAP[$tag_addr_i2_i], 1, 1);
  42541.   } else if (($58 | 0) == 5) {
  42542.     HEAP[$this_addr_i4_i] = HEAP[$map_i3];
  42543.     HEAP[$tag_addr_i5_i] = 1920232545;
  42544.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t(HEAP[$this_addr_i4_i], HEAP[$tag_addr_i5_i], 1, 1);
  42545.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t(HEAP[$map_i3], 1920232557, 1, 0);
  42546.   }
  42547.   if ((HEAP[HEAP[HEAP[$planner_addr_i2] + 24 | 0] + 8 | 0] | 0) != 0) {
  42548.     FUNCTION_TABLE[HEAP[HEAP[HEAP[$planner_addr_i2] + 24 | 0] + 8 | 0]](HEAP[$planner_addr_i2]);
  42549.   }
  42550.   HEAP[$i_i] = 0;
  42551.   while (1) {
  42552.     var $91 = HEAP[(HEAP[$i_i] << 2) + 132088 | 0];
  42553.     HEAP[$this_addr_i7_i] = HEAP[$map_i3];
  42554.     HEAP[$tag_addr_i8_i] = $91;
  42555.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t(HEAP[$this_addr_i7_i], HEAP[$tag_addr_i8_i], 1, 1);
  42556.     var $inc_i = HEAP[$i_i] + 1 | 0;
  42557.     HEAP[$i_i] = $inc_i;
  42558.     if ($inc_i >>> 0 >= 6) {
  42559.       break;
  42560.     }
  42561.   }
  42562.   L572 : do {
  42563.     if ((HEAP[HEAP[$props_addr_i] | 0] & -2 | 0) == 4) {
  42564.       HEAP[$i9_i] = 0;
  42565.       while (1) {
  42566.         var $100 = HEAP[$map_i3];
  42567.         var $102 = HEAP[(HEAP[$i9_i] << 2) + 131576 | 0];
  42568.         var $cond_i = (HEAP[(HEAP[$i9_i] << 2) + 131576 | 0] | 0) == 1801810542 ? 2 : 0;
  42569.         HEAP[$l_addr_i_i] = 1;
  42570.         HEAP[$r_addr_i_i] = $cond_i;
  42571.         __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($100, $102, 1, HEAP[$r_addr_i_i] | HEAP[$l_addr_i_i]);
  42572.         var $inc19_i = HEAP[$i9_i] + 1 | 0;
  42573.         HEAP[$i9_i] = $inc19_i;
  42574.         if ($inc19_i >>> 0 >= 5) {
  42575.           break L572;
  42576.         }
  42577.       }
  42578.     } else {
  42579.       HEAP[$i21_i] = 0;
  42580.       while (1) {
  42581.         var $112 = HEAP[$map_i3];
  42582.         var $114 = HEAP[(HEAP[$i21_i] << 2) + 131960 | 0];
  42583.         var $cond29_i = (HEAP[(HEAP[$i21_i] << 2) + 131960 | 0] | 0) == 1986753134 ? 2 : 0;
  42584.         HEAP[$l_addr_i10_i] = 1;
  42585.         HEAP[$r_addr_i11_i] = $cond29_i;
  42586.         __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($112, $114, 1, HEAP[$r_addr_i11_i] | HEAP[$l_addr_i10_i]);
  42587.         var $inc32_i = HEAP[$i21_i] + 1 | 0;
  42588.         HEAP[$i21_i] = $inc32_i;
  42589.         if ($inc32_i >>> 0 >= 5) {
  42590.           break L572;
  42591.         }
  42592.       }
  42593.     }
  42594.   } while (0);
  42595.   if ((HEAP[HEAP[HEAP[$planner_addr_i2] + 24 | 0] + 12 | 0] | 0) != 0) {
  42596.     FUNCTION_TABLE[HEAP[HEAP[HEAP[$planner_addr_i2] + 24 | 0] + 12 | 0]](HEAP[$planner_addr_i2]);
  42597.   }
  42598.   HEAP[$i41_i] = 0;
  42599.   L583 : do {
  42600.     if (HEAP[$i41_i] >>> 0 < HEAP[$num_user_features_addr_i] >>> 0) {
  42601.       while (1) {
  42602.         HEAP[$feature_i] = (HEAP[$i41_i] << 4) + HEAP[$user_features_addr_i] | 0;
  42603.         if ((HEAP[HEAP[$feature_i] + 8 | 0] | 0) == 0) {
  42604.           var $140 = (HEAP[HEAP[$feature_i] + 12 | 0] | 0) == -1;
  42605.         } else {
  42606.           var $140 = 0;
  42607.         }
  42608.         var $140;
  42609.         __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t(HEAP[$map_i3], HEAP[HEAP[$feature_i] | 0], HEAP[HEAP[$feature_i] + 4 | 0], $140 ? 1 : 0);
  42610.         HEAP[$i41_i] = HEAP[$i41_i] + 1 | 0;
  42611.         if (HEAP[$i41_i] >>> 0 >= HEAP[$num_user_features_addr_i] >>> 0) {
  42612.           break L583;
  42613.         }
  42614.       }
  42615.     }
  42616.   } while (0);
  42617.   HEAP[$this_addr_i12] = $planner;
  42618.   HEAP[$plan_addr_i] = $plan;
  42619.   var $this1_i13 = HEAP[$this_addr_i12];
  42620.   var $158 = HEAP[$plan_addr_i] | 0;
  42621.   var $159 = $this1_i13 + 4 | 0;
  42622.   for (var $$src = $159, $$dest = $158, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  42623.     HEAP[$$dest] = HEAP[$$src];
  42624.   }
  42625.   HEAP[HEAP[$plan_addr_i] + 20 | 0] = HEAP[$this1_i13 + 24 | 0];
  42626.   __ZN19hb_ot_map_builder_t7compileER11hb_ot_map_t($this1_i13 + 28 | 0, HEAP[$plan_addr_i] + 24 | 0);
  42627.   do {
  42628.     if ((HEAP[HEAP[$plan + 20 | 0] + 16 | 0] | 0) != 0) {
  42629.       var $call7 = FUNCTION_TABLE[HEAP[HEAP[$plan + 20 | 0] + 16 | 0]]($plan);
  42630.       HEAP[$plan + 916 | 0] = $call7;
  42631.       if ((HEAP[$plan + 916 | 0] | 0) != 0) {
  42632.         label = 435;
  42633.         break;
  42634.       }
  42635.       $retval = 0;
  42636.       $cleanup_dest_slot = 1;
  42637.       break;
  42638.     } else {
  42639.       label = 435;
  42640.     }
  42641.   } while (0);
  42642.   if (label == 435) {
  42643.     $retval = $plan;
  42644.     $cleanup_dest_slot = 1;
  42645.   }
  42646.   HEAP[$this_addr_i18] = $planner;
  42647.   HEAP[$this_addr_i_i17] = HEAP[$this_addr_i18];
  42648.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i17] + 28 | 0;
  42649.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  42650.   HEAP[$this_addr_i_i_i_i] = $this1_i_i_i + 60 | 0;
  42651.   var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  42652.   if ((HEAP[$this1_i_i_i_i + 8 | 0] | 0) != ($this1_i_i_i_i + 12 | 0)) {
  42653.     _free(HEAP[$this1_i_i_i_i + 8 | 0]);
  42654.   }
  42655.   HEAP[$this1_i_i_i_i + 8 | 0] = 0;
  42656.   HEAP[$this1_i_i_i_i | 0] = 0;
  42657.   HEAP[$this1_i_i_i_i + 4 | 0] = 0;
  42658.   HEAP[$this_addr_i1_i_i_i] = $this1_i_i_i + 520 | 0;
  42659.   var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  42660.   if ((HEAP[$this1_i2_i_i_i + 8 | 0] | 0) != ($this1_i2_i_i_i + 12 | 0)) {
  42661.     _free(HEAP[$this1_i2_i_i_i + 8 | 0]);
  42662.   }
  42663.   HEAP[$this1_i2_i_i_i + 8 | 0] = 0;
  42664.   HEAP[$this1_i2_i_i_i | 0] = 0;
  42665.   HEAP[$this1_i2_i_i_i + 4 | 0] = 0;
  42666.   HEAP[$this_addr_i12_i_i_i] = $this1_i_i_i + 540 | 0;
  42667.   var $this1_i13_i_i_i = HEAP[$this_addr_i12_i_i_i];
  42668.   if ((HEAP[$this1_i13_i_i_i + 8 | 0] | 0) != ($this1_i13_i_i_i + 12 | 0)) {
  42669.     _free(HEAP[$this1_i13_i_i_i + 8 | 0]);
  42670.   }
  42671.   HEAP[$this1_i13_i_i_i + 8 | 0] = 0;
  42672.   HEAP[$this1_i13_i_i_i | 0] = 0;
  42673.   HEAP[$this1_i13_i_i_i + 4 | 0] = 0;
  42674.   var $197 = $retval;
  42675.   STACKTOP = __stackBase__;
  42676.   return $197;
  42677. }
  42678. function __hb_ot_shape($shape_plan, $font, $buffer, $features, $num_features) {
  42679.   var label = 0;
  42680.   var __stackBase__ = STACKTOP;
  42681.   STACKTOP = STACKTOP + 964 | 0;
  42682.   var $info_addr_i1_i_i = __stackBase__;
  42683.   var $this_addr_i_i192_i = __stackBase__ + 4;
  42684.   var $unicode_addr_i_i193_i = __stackBase__ + 8;
  42685.   var $variation_selector_addr_i_i194_i = __stackBase__ + 12;
  42686.   var $glyph_addr_i_i195_i = __stackBase__ + 16;
  42687.   var $info_addr_i_i196_i = __stackBase__ + 20;
  42688.   var $c_addr_i197_i = __stackBase__ + 24;
  42689.   var $space_i_i = __stackBase__ + 28;
  42690.   var $count_i198_i = __stackBase__ + 32;
  42691.   var $i_i199_i = __stackBase__ + 36;
  42692.   var $this_addr_i_i64_i_i = __stackBase__ + 40;
  42693.   var $buffer_addr_i_i74_i = __stackBase__ + 44;
  42694.   var $pos_addr_i_i_i_i_i_i = __stackBase__ + 48;
  42695.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 52;
  42696.   var $direction_addr_i_i_i_i_i_i = __stackBase__ + 56;
  42697.   var $j_i_i_i_i_i_i = __stackBase__ + 60;
  42698.   var $k_i_i_i_i_i_i = __stackBase__ + 64;
  42699.   var $k23_i_i_i_i_i_i = __stackBase__ + 68;
  42700.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 72;
  42701.   var $this_addr_i_i_i_i_i_i_i1_i_i = __stackBase__ + 76;
  42702.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 80;
  42703.   var $this_addr_i_i_i_i_i_i75_i = __stackBase__ + 84;
  42704.   var $buffer_addr_i_i_i_i_i_i = __stackBase__ + 88;
  42705.   var $length_addr_i_i_i_i_i_i = __stackBase__ + 92;
  42706.   var $font_addr_i_i_i2_i_i = __stackBase__ + 96;
  42707.   var $buffer_addr_i_i_i3_i_i = __stackBase__ + 100;
  42708.   var $len_i_i_i4_i_i = __stackBase__ + 104;
  42709.   var $pos_i_i_i5_i_i = __stackBase__ + 108;
  42710.   var $direction_i_i_i_i_i = __stackBase__ + 112;
  42711.   var $i_i_i_i6_i_i = __stackBase__ + 116;
  42712.   var $i2_i_i_i_i_i = __stackBase__ + 120;
  42713.   var $font_addr_i16_i_i_i = __stackBase__ + 124;
  42714.   var $buffer_addr_i17_i_i_i = __stackBase__ + 128;
  42715.   var $info_addr_i_i_i_i = __stackBase__ + 132;
  42716.   var $this_addr_i7_i_i_i = __stackBase__ + 136;
  42717.   var $glyph_addr_i8_i_i_i = __stackBase__ + 140;
  42718.   var $direction_addr_i9_i_i_i = __stackBase__ + 144;
  42719.   var $x_addr_i10_i_i_i = __stackBase__ + 148;
  42720.   var $y_addr_i11_i_i_i = __stackBase__ + 152;
  42721.   var $origin_x_i12_i_i_i = __stackBase__ + 156;
  42722.   var $origin_y_i13_i_i_i = __stackBase__ + 160;
  42723.   var $this_addr_i5_i_i_i = __stackBase__ + 164;
  42724.   var $font_addr_i_i7_i_i = __stackBase__ + 168;
  42725.   var $buffer_addr_i_i8_i_i = __stackBase__ + 172;
  42726.   var $this_addr_i_i9_i_i = __stackBase__ + 176;
  42727.   var $glyph_addr_i_i10_i_i = __stackBase__ + 180;
  42728.   var $direction_addr_i_i11_i_i = __stackBase__ + 184;
  42729.   var $x_addr_i_i12_i_i = __stackBase__ + 188;
  42730.   var $y_addr_i_i13_i_i = __stackBase__ + 192;
  42731.   var $origin_x_i_i14_i_i = __stackBase__ + 196;
  42732.   var $origin_y_i_i15_i_i = __stackBase__ + 200;
  42733.   var $data_addr_i_i_i_i76_i = __stackBase__ + 204;
  42734.   var $face_addr_i_i1_i_i_i = __stackBase__ + 208;
  42735.   var $face_addr_i2_i_i_i = __stackBase__ + 212;
  42736.   var $data_i_i_i77_i = __stackBase__ + 216;
  42737.   var $X_addr_i_i_i_i_i78_i = __stackBase__ + 220;
  42738.   var $X_addr_i_i_i_i_i_i79_i = __stackBase__ + 224;
  42739.   var $retval_i_i_i_i80_i = __stackBase__ + 228;
  42740.   var $face_addr_i_i_i_i81_i = __stackBase__ + 232;
  42741.   var $face_addr_i_i_i82_i = __stackBase__ + 236;
  42742.   var $c_addr_i16_i_i = __stackBase__ + 240;
  42743.   var $ret_i_i_i;
  42744.   var $count_i17_i_i = __stackBase__ + 244;
  42745.   var $i_i18_i_i = __stackBase__ + 248;
  42746.   var $i9_i_i_i = __stackBase__ + 252;
  42747.   var $i30_i_i_i = __stackBase__ + 256;
  42748.   var $this_addr_i1_i_i_i83_i = __stackBase__ + 260;
  42749.   var $glyph_addr_i2_i_i_i_i = __stackBase__ + 264;
  42750.   var $this_addr_i_i_i_i84_i = __stackBase__ + 268;
  42751.   var $glyph_addr_i_i_i_i_i = __stackBase__ + 272;
  42752.   var $this_addr_i1_i_i_i = __stackBase__ + 276;
  42753.   var $glyph_addr_i2_i_i_i = __stackBase__ + 280;
  42754.   var $direction_addr_i3_i_i_i = __stackBase__ + 284;
  42755.   var $x_addr_i4_i_i_i = __stackBase__ + 288;
  42756.   var $y_addr_i5_i_i_i = __stackBase__ + 292;
  42757.   var $this_addr_i_i_i85_i = __stackBase__ + 296;
  42758.   var $glyph_addr_i_i_i_i = __stackBase__ + 300;
  42759.   var $direction_addr_i_i_i_i = __stackBase__ + 304;
  42760.   var $x_addr_i_i_i_i = __stackBase__ + 308;
  42761.   var $y_addr_i_i_i_i = __stackBase__ + 312;
  42762.   var $origin_x_i_i_i_i = __stackBase__ + 316;
  42763.   var $origin_y_i_i_i_i = __stackBase__ + 320;
  42764.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 324;
  42765.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 328;
  42766.   var $obj_addr_i_i_i_i_i_i_i = __stackBase__ + 332;
  42767.   var $this_addr_i_i_i_i_i86_i = __stackBase__ + 336;
  42768.   var $font_addr_i_i_i_i87_i = __stackBase__ + 340;
  42769.   var $buffer_addr_i_i_i_i88_i = __stackBase__ + 344;
  42770.   var $count_i_i_i_i89_i = __stackBase__ + 348;
  42771.   var $i_i_i_i_i90_i = __stackBase__ + 352;
  42772.   var $font_addr_i_i_i91_i = __stackBase__ + 356;
  42773.   var $buffer_addr_i_i_i92_i = __stackBase__ + 360;
  42774.   var $c_addr_i_i93_i = __stackBase__ + 364;
  42775.   var $count_i_i_i = __stackBase__ + 368;
  42776.   var $i_i_i_i = __stackBase__ + 372;
  42777.   var $i24_i_i_i = __stackBase__ + 376;
  42778.   var $c_addr_i94_i = __stackBase__ + 380;
  42779.   var $fallback_i_i = __stackBase__ + 384;
  42780.   var $this_addr_i_i_i44_i = __stackBase__ + 388;
  42781.   var $font_addr_i10_i_i_i = __stackBase__ + 392;
  42782.   var $buffer_addr_i11_i_i_i = __stackBase__ + 396;
  42783.   var $info_addr_i_i_i_i_i = __stackBase__ + 400;
  42784.   var $c_addr_i_i1_i_i = __stackBase__ + 404;
  42785.   var $count_i_i2_i_i = __stackBase__ + 408;
  42786.   var $i_i_i3_i_i = __stackBase__ + 412;
  42787.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 416;
  42788.   var $this_addr_i_i_i_i4_i_i = __stackBase__ + 420;
  42789.   var $this_addr_i_i_i5_i_i = __stackBase__ + 424;
  42790.   var $X_addr_i_i_i_i_i6_i_i = __stackBase__ + 428;
  42791.   var $data_addr_i_i_i_i_i_i_i = __stackBase__ + 432;
  42792.   var $face_addr_i_i_i_i_i_i_i = __stackBase__ + 436;
  42793.   var $face_addr_i_i_i_i_i_i = __stackBase__ + 440;
  42794.   var $data_i_i_i_i_i_i = __stackBase__ + 444;
  42795.   var $retval_i_i_i7_i_i = __stackBase__ + 448;
  42796.   var $face_addr_i_i_i8_i_i = __stackBase__ + 452;
  42797.   var $face_addr_i_i9_i_i = __stackBase__ + 456;
  42798.   var $font_addr_i_i_i_i_i = __stackBase__ + 460;
  42799.   var $buffer_addr_i_i_i_i_i = __stackBase__ + 464;
  42800.   var $gdef_i_i_i_i_i = __stackBase__ + 468;
  42801.   var $count_i_i_i10_i_i = __stackBase__ + 472;
  42802.   var $i_i_i_i11_i_i = __stackBase__ + 476;
  42803.   var $font_addr_i_i_i_i = __stackBase__ + 480;
  42804.   var $buffer_addr_i_i12_i_i = __stackBase__ + 484;
  42805.   var $c_addr_i13_i_i = __stackBase__ + 488;
  42806.   var $buffer_addr_i_i_i_i = __stackBase__ + 492;
  42807.   var $count_i46_i_i_i = __stackBase__ + 496;
  42808.   var $i_i47_i_i_i = __stackBase__ + 500;
  42809.   var $data_addr_i_i_i_i_i = __stackBase__ + 504;
  42810.   var $face_addr_i_i35_i_i_i = __stackBase__ + 508;
  42811.   var $face_addr_i36_i_i_i = __stackBase__ + 512;
  42812.   var $data_i_i_i_i = __stackBase__ + 516;
  42813.   var $X_addr_i_i_i_i_i_i = __stackBase__ + 520;
  42814.   var $X_addr_i_i_i_i_i_i_i = __stackBase__ + 524;
  42815.   var $retval_i_i_i_i_i = __stackBase__ + 528;
  42816.   var $face_addr_i_i_i_i_i = __stackBase__ + 532;
  42817.   var $face_addr_i_i_i_i = __stackBase__ + 536;
  42818.   var $this_addr_i7_i_i_i_i = __stackBase__ + 540;
  42819.   var $mask_addr_i8_i_i_i_i = __stackBase__ + 544;
  42820.   var $j_i_i_i_i_i = __stackBase__ + 548;
  42821.   var $this_addr_i_i_i1_i_i_i = __stackBase__ + 552;
  42822.   var $key_addr_i_i_i2_i_i_i = __stackBase__ + 556;
  42823.   var $this_addr_i3_i_i_i_i = __stackBase__ + 560;
  42824.   var $feature_tag_addr_i_i3_i_i_i = __stackBase__ + 564;
  42825.   var $shift_addr_i_i_i_i_i = __stackBase__ + 568;
  42826.   var $map_i_i4_i_i_i = __stackBase__ + 572;
  42827.   var $this_addr_i1_i5_i_i_i = __stackBase__ + 576;
  42828.   var $value_addr_i_i_i_i_i = __stackBase__ + 580;
  42829.   var $mask_addr_i_i_i_i_i = __stackBase__ + 584;
  42830.   var $cluster_start_addr_i_i_i_i_i = __stackBase__ + 588;
  42831.   var $cluster_end_addr_i_i_i_i_i = __stackBase__ + 592;
  42832.   var $not_mask_i_i_i_i_i = __stackBase__ + 596;
  42833.   var $count_i_i_i_i_i = __stackBase__ + 600;
  42834.   var $i_i_i_i_i_i = __stackBase__ + 604;
  42835.   var $count11_i_i_i_i_i = __stackBase__ + 608;
  42836.   var $i13_i_i_i_i_i = __stackBase__ + 612;
  42837.   var $this_addr_i_i6_i_i_i = __stackBase__ + 616;
  42838.   var $c_addr_i7_i_i_i = __stackBase__ + 620;
  42839.   var $map_i8_i_i_i = __stackBase__ + 624;
  42840.   var $global_mask_i_i_i_i = __stackBase__ + 628;
  42841.   var $i_i9_i_i_i = __stackBase__ + 632;
  42842.   var $feature_i_i_i_i = __stackBase__ + 636;
  42843.   var $shift_i_i_i_i = __stackBase__ + 640;
  42844.   var $mask_i10_i_i_i = __stackBase__ + 644;
  42845.   var $this_addr_i1_i_i_i_i = __stackBase__ + 648;
  42846.   var $unicode_addr_i_i_i_i_i = __stackBase__ + 652;
  42847.   var $this_addr_i_i_i_i_i45_i = __stackBase__ + 656;
  42848.   var $key_addr_i_i_i_i_i_i = __stackBase__ + 660;
  42849.   var $this_addr_i_i_i_i46_i = __stackBase__ + 664;
  42850.   var $feature_tag_addr_i_i_i_i_i = __stackBase__ + 668;
  42851.   var $map_i_i_i_i_i = __stackBase__ + 672;
  42852.   var $c_addr_i_i_i_i = __stackBase__ + 676;
  42853.   var $unicode_i_i_i_i = __stackBase__ + 680;
  42854.   var $rtlm_mask_i_i_i_i = __stackBase__ + 684;
  42855.   var $count_i_i_i47_i = __stackBase__ + 688;
  42856.   var $i_i_i_i48_i = __stackBase__ + 692;
  42857.   var $codepoint_i_i_i_i = __stackBase__ + 696;
  42858.   var $c_addr_i_i_i = __stackBase__ + 700;
  42859.   var $c_addr_i_i = __stackBase__ + 704;
  42860.   var $this_addr_i_i_i_i34_i = __stackBase__ + 708;
  42861.   var $this_addr_i_i_i35_i = __stackBase__ + 712;
  42862.   var $i_i_i_i_i = __stackBase__ + 716;
  42863.   var $start_i_i_i_i = __stackBase__ + 720;
  42864.   var $count_i_i_i_i = __stackBase__ + 724;
  42865.   var $last_cluster_i_i_i_i = __stackBase__ + 728;
  42866.   var $buffer_addr_i_i_i = __stackBase__ + 732;
  42867.   var $retval_i_i_i = __stackBase__ + 736;
  42868.   var $script_addr_i_i_i = __stackBase__ + 740;
  42869.   var $buffer_addr_i36_i = __stackBase__ + 744;
  42870.   var $direction_i_i = __stackBase__ + 748;
  42871.   var $info_addr_i_i16_i = __stackBase__ + 752;
  42872.   var $buffer_addr_i17_i = __stackBase__ + 756;
  42873.   var $count_i18_i = __stackBase__ + 760;
  42874.   var $i_i19_i = __stackBase__ + 764;
  42875.   var $this_addr_i37_i_i = __stackBase__ + 768;
  42876.   var $i_addr_i38_i_i = __stackBase__ + 772;
  42877.   var $this_addr_i29_i_i = __stackBase__ + 776;
  42878.   var $glyph_info_addr_i_i_i = __stackBase__ + 780;
  42879.   var $this_addr_i24_i_i = __stackBase__ + 784;
  42880.   var $i_addr_i_i_i = __stackBase__ + 788;
  42881.   var $this_addr_i10_i_i = __stackBase__ + 792;
  42882.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 796;
  42883.   var $this_addr_i_i_i_i7_i = __stackBase__ + 800;
  42884.   var $obj_addr_i_i_i_i = __stackBase__ + 804;
  42885.   var $this_addr_i3_i_i = __stackBase__ + 808;
  42886.   var $this_addr_i1_i_i = __stackBase__ + 812;
  42887.   var $unicode_addr_i_i_i = __stackBase__ + 816;
  42888.   var $variation_selector_addr_i_i_i = __stackBase__ + 820;
  42889.   var $glyph_addr_i_i_i = __stackBase__ + 824;
  42890.   var $this_addr_i_i_i = __stackBase__ + 828;
  42891.   var $tmp_string_i_i_i = __stackBase__ + 832;
  42892.   var $tmp_i_i_i = __stackBase__ + 836;
  42893.   var $info_addr_i_i_i = __stackBase__ + 840;
  42894.   var $buffer_addr_i8_i = __stackBase__ + 844;
  42895.   var $font_addr_i_i = __stackBase__ + 848;
  42896.   var $dottedcircle_glyph_i_i = __stackBase__ + 852;
  42897.   var $dottedcircle_i_i = __stackBase__ + 856;
  42898.   var $info5_i_i = __stackBase__ + 876;
  42899.   var $buffer_addr_i_i = __stackBase__ + 896;
  42900.   var $count_i_i = __stackBase__ + 900;
  42901.   var $i_i_i = __stackBase__ + 904;
  42902.   var $this_addr_i_i_i_i_i = __stackBase__ + 908;
  42903.   var $this_addr_i_i_i_i = __stackBase__ + 912;
  42904.   var $obj_addr_i_i_i = __stackBase__ + 916;
  42905.   var $this_addr_i4_i = __stackBase__ + 920;
  42906.   var $this_addr_i1_i = __stackBase__ + 924;
  42907.   var $this_addr_i_i = __stackBase__ + 928;
  42908.   var $c_addr_i = __stackBase__ + 932;
  42909.   var $font_addr;
  42910.   var $c = __stackBase__ + 936;
  42911.   $font_addr = $font;
  42912.   HEAP[$c | 0] = HEAP[$shape_plan + 80 | 0];
  42913.   HEAP[$c + 4 | 0] = $font_addr;
  42914.   HEAP[$c + 8 | 0] = HEAP[$font_addr + 52 | 0];
  42915.   HEAP[$c + 12 | 0] = $buffer;
  42916.   HEAP[$c + 16 | 0] = $features;
  42917.   HEAP[$c + 20 | 0] = $num_features;
  42918.   HEAP[$c + 24 | 0] = 0;
  42919.   HEAP[$c_addr_i] = $c;
  42920.   HEAP[$this_addr_i_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  42921.   var $13 = HEAP[$this_addr_i_i] + 112 | 0;
  42922.   for (var $$dest = $13, $$stop = $$dest + 40; $$dest < $$stop; $$dest++) {
  42923.     HEAP[$$dest] = 0;
  42924.   }
  42925.   HEAP[HEAP[$c_addr_i] + 24 | 0] = HEAP[HEAP[HEAP[$c_addr_i] + 12 | 0] + 48 | 0];
  42926.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[HEAP[$c_addr_i] + 12 | 0], 4, 1, 103864);
  42927.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[HEAP[$c_addr_i] + 12 | 0], 5, 1, 103104);
  42928.   HEAP[$this_addr_i4_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  42929.   var $this1_i5_i = HEAP[$this_addr_i4_i];
  42930.   HEAP[$obj_addr_i_i_i] = $this1_i5_i;
  42931.   HEAP[$this_addr_i_i_i_i] = HEAP[$obj_addr_i_i_i] | 0;
  42932.   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  42933.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) != -1) {
  42934.     HEAP[$this1_i5_i + 77 | 0] = 1;
  42935.     HEAP[$this1_i5_i + 78 | 0] = 0;
  42936.     HEAP[$this1_i5_i + 88 | 0] = 0;
  42937.     HEAP[$this1_i5_i + 100 | 0] = HEAP[$this1_i5_i + 96 | 0];
  42938.   }
  42939.   HEAP[$buffer_addr_i_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  42940.   HEAP[$count_i_i] = HEAP[HEAP[$buffer_addr_i_i] + 84 | 0];
  42941.   HEAP[$i_i_i] = 0;
  42942.   L610 : do {
  42943.     if (HEAP[$i_i_i] >>> 0 < HEAP[$count_i_i] >>> 0) {
  42944.       while (1) {
  42945.         __Z32_hb_glyph_info_set_unicode_propsP15hb_glyph_info_tP18hb_unicode_funcs_t(HEAP[HEAP[$buffer_addr_i_i] + 96 | 0] + (HEAP[$i_i_i] * 20 & -1) | 0, HEAP[HEAP[$buffer_addr_i_i] + 44 | 0]);
  42946.         HEAP[$i_i_i] = HEAP[$i_i_i] + 1 | 0;
  42947.         if (HEAP[$i_i_i] >>> 0 >= HEAP[$count_i_i] >>> 0) {
  42948.           break L610;
  42949.         }
  42950.       }
  42951.     }
  42952.   } while (0);
  42953.   var $59 = HEAP[HEAP[$c_addr_i] + 4 | 0];
  42954.   HEAP[$buffer_addr_i8_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  42955.   HEAP[$font_addr_i_i] = $59;
  42956.   do {
  42957.     if ((HEAP[HEAP[$buffer_addr_i8_i] + 68 | 0] & 1 | 0) != 0) {
  42958.       HEAP[$info_addr_i_i_i] = HEAP[HEAP[$buffer_addr_i8_i] + 96 | 0];
  42959.       if ((HEAP[HEAP[$info_addr_i_i_i] + 16 | 0] & 31 | 0) != 12) {
  42960.         break;
  42961.       }
  42962.       HEAP[$this_addr_i1_i_i] = HEAP[$font_addr_i_i];
  42963.       HEAP[$unicode_addr_i_i_i] = 9676;
  42964.       HEAP[$variation_selector_addr_i_i_i] = 0;
  42965.       HEAP[$glyph_addr_i_i_i] = $dottedcircle_glyph_i_i;
  42966.       var $this1_i2_i_i = HEAP[$this_addr_i1_i_i];
  42967.       HEAP[HEAP[$glyph_addr_i_i_i]] = 0;
  42968.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i2_i_i + 72 | 0] + 48 | 0]]($this1_i2_i_i, HEAP[$this1_i2_i_i + 76 | 0], HEAP[$unicode_addr_i_i_i], HEAP[$variation_selector_addr_i_i_i], HEAP[$glyph_addr_i_i_i], HEAP[HEAP[$this1_i2_i_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  42969.         break;
  42970.       }
  42971.       HEAP[$dottedcircle_i_i | 0] = 9676;
  42972.       __Z32_hb_glyph_info_set_unicode_propsP15hb_glyph_info_tP18hb_unicode_funcs_t($dottedcircle_i_i, HEAP[HEAP[$buffer_addr_i8_i] + 44 | 0]);
  42973.       HEAP[$this_addr_i3_i_i] = HEAP[$buffer_addr_i8_i];
  42974.       var $this1_i4_i_i = HEAP[$this_addr_i3_i_i];
  42975.       HEAP[$obj_addr_i_i_i_i] = $this1_i4_i_i;
  42976.       HEAP[$this_addr_i_i_i_i7_i] = HEAP[$obj_addr_i_i_i_i] | 0;
  42977.       HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i7_i] | 0;
  42978.       if ((HEAP[HEAP[$this_addr_i_i_i_i_i_i] | 0] | 0) != -1) {
  42979.         HEAP[$this1_i4_i_i + 77 | 0] = 1;
  42980.         HEAP[$this1_i4_i_i + 78 | 0] = 0;
  42981.         HEAP[$this1_i4_i_i + 88 | 0] = 0;
  42982.         HEAP[$this1_i4_i_i + 100 | 0] = HEAP[$this1_i4_i_i + 96 | 0];
  42983.       }
  42984.       HEAP[HEAP[$buffer_addr_i8_i] + 80 | 0] = 0;
  42985.       var $106 = $info5_i_i;
  42986.       var $107 = $dottedcircle_i_i;
  42987.       for (var $$src = $107, $$dest = $106, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  42988.         HEAP[$$dest] = HEAP[$$src];
  42989.       }
  42990.       HEAP[$this_addr_i24_i_i] = HEAP[$buffer_addr_i8_i];
  42991.       HEAP[$i_addr_i_i_i] = 0;
  42992.       var $this1_i25_i_i = HEAP[$this_addr_i24_i_i];
  42993.       HEAP[$info5_i_i + 8 | 0] = HEAP[HEAP[$this1_i25_i_i + 96 | 0] + ((HEAP[$i_addr_i_i_i] + HEAP[$this1_i25_i_i + 80 | 0]) * 20 & -1) + 8 | 0];
  42994.       HEAP[$this_addr_i37_i_i] = HEAP[$buffer_addr_i8_i];
  42995.       HEAP[$i_addr_i38_i_i] = 0;
  42996.       var $this1_i39_i_i = HEAP[$this_addr_i37_i_i];
  42997.       HEAP[$info5_i_i + 4 | 0] = HEAP[HEAP[$this1_i39_i_i + 96 | 0] + ((HEAP[$i_addr_i38_i_i] + HEAP[$this1_i39_i_i + 80 | 0]) * 20 & -1) + 4 | 0];
  42998.       HEAP[$this_addr_i29_i_i] = HEAP[$buffer_addr_i8_i];
  42999.       HEAP[$glyph_info_addr_i_i_i] = $info5_i_i;
  43000.       var $this1_i30_i_i = HEAP[$this_addr_i29_i_i];
  43001.       if (__ZN11hb_buffer_t13make_room_forEjj($this1_i30_i_i, 0, 1)) {
  43002.         var $132 = HEAP[$this1_i30_i_i + 100 | 0] + (HEAP[$this1_i30_i_i + 88 | 0] * 20 & -1) | 0;
  43003.         var $133 = HEAP[$glyph_info_addr_i_i_i];
  43004.         for (var $$src = $133, $$dest = $132, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  43005.           HEAP[$$dest] = HEAP[$$src];
  43006.         }
  43007.         var $out_len2_i_i_i = $this1_i30_i_i + 88 | 0;
  43008.         HEAP[$out_len2_i_i_i] = HEAP[$out_len2_i_i_i] + 1 | 0;
  43009.       }
  43010.       var $141 = HEAP[$buffer_addr_i8_i];
  43011.       L624 : do {
  43012.         if (HEAP[HEAP[$buffer_addr_i8_i] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i8_i] + 84 | 0] >>> 0) {
  43013.           var $144 = $141;
  43014.           while (1) {
  43015.             var $144;
  43016.             HEAP[$this_addr_i10_i_i] = $144;
  43017.             var $this1_i11_i_i = HEAP[$this_addr_i10_i_i];
  43018.             do {
  43019.               if (HEAP[$this1_i11_i_i + 77 | 0] & 1) {
  43020.                 do {
  43021.                   if ((HEAP[$this1_i11_i_i + 100 | 0] | 0) != (HEAP[$this1_i11_i_i + 96 | 0] | 0)) {
  43022.                     label = 462;
  43023.                   } else {
  43024.                     if ((HEAP[$this1_i11_i_i + 88 | 0] | 0) != (HEAP[$this1_i11_i_i + 80 | 0] | 0)) {
  43025.                       label = 462;
  43026.                       break;
  43027.                     } else {
  43028.                       break;
  43029.                     }
  43030.                   }
  43031.                 } while (0);
  43032.                 if (label == 462) {
  43033.                   label = 0;
  43034.                   if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i11_i_i, 1, 1)) {
  43035.                     break;
  43036.                   }
  43037.                   var $154 = HEAP[$this1_i11_i_i + 100 | 0] + (HEAP[$this1_i11_i_i + 88 | 0] * 20 & -1) | 0;
  43038.                   var $155 = HEAP[$this1_i11_i_i + 96 | 0] + (HEAP[$this1_i11_i_i + 80 | 0] * 20 & -1) | 0;
  43039.                   for (var $$src = $155, $$dest = $154, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  43040.                     HEAP[$$dest] = HEAP[$$src];
  43041.                   }
  43042.                 }
  43043.                 var $out_len11_i_i_i = $this1_i11_i_i + 88 | 0;
  43044.                 HEAP[$out_len11_i_i_i] = HEAP[$out_len11_i_i_i] + 1 | 0;
  43045.                 label = 465;
  43046.                 break;
  43047.               } else {
  43048.                 label = 465;
  43049.               }
  43050.             } while (0);
  43051.             if (label == 465) {
  43052.               label = 0;
  43053.               var $idx13_i_i_i = $this1_i11_i_i + 80 | 0;
  43054.               HEAP[$idx13_i_i_i] = HEAP[$idx13_i_i_i] + 1 | 0;
  43055.             }
  43056.             var $162 = HEAP[$buffer_addr_i8_i];
  43057.             if (HEAP[HEAP[$buffer_addr_i8_i] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i8_i] + 84 | 0] >>> 0) {
  43058.               var $144 = $162;
  43059.             } else {
  43060.               var $_lcssa_i_i = $162;
  43061.               break L624;
  43062.             }
  43063.           }
  43064.         } else {
  43065.           var $_lcssa_i_i = $141;
  43066.         }
  43067.       } while (0);
  43068.       var $_lcssa_i_i;
  43069.       HEAP[$this_addr_i_i_i] = $_lcssa_i_i;
  43070.       var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  43071.       if (!(HEAP[$this1_i_i_i + 76 | 0] & 1)) {
  43072.         if (!(HEAP[$this1_i_i_i + 77 | 0] & 1)) {
  43073.           ___assert_func(102952, 274, 108904, 103776);
  43074.         }
  43075.         HEAP[$this1_i_i_i + 77 | 0] = 0;
  43076.         if ((HEAP[$this1_i_i_i + 100 | 0] | 0) != (HEAP[$this1_i_i_i + 96 | 0] | 0)) {
  43077.           HEAP[$tmp_string_i_i_i] = HEAP[$this1_i_i_i + 96 | 0];
  43078.           HEAP[$this1_i_i_i + 96 | 0] = HEAP[$this1_i_i_i + 100 | 0];
  43079.           HEAP[$this1_i_i_i + 100 | 0] = HEAP[$tmp_string_i_i_i];
  43080.           HEAP[$this1_i_i_i + 104 | 0] = HEAP[$this1_i_i_i + 100 | 0];
  43081.         }
  43082.         HEAP[$tmp_i_i_i] = HEAP[$this1_i_i_i + 84 | 0];
  43083.         HEAP[$this1_i_i_i + 84 | 0] = HEAP[$this1_i_i_i + 88 | 0];
  43084.         HEAP[$this1_i_i_i + 88 | 0] = HEAP[$tmp_i_i_i];
  43085.         HEAP[$this1_i_i_i + 80 | 0] = 0;
  43086.       }
  43087.     }
  43088.   } while (0);
  43089.   HEAP[$buffer_addr_i17_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  43090.   HEAP[$count_i18_i] = HEAP[HEAP[$buffer_addr_i17_i] + 84 | 0];
  43091.   HEAP[$i_i19_i] = 1;
  43092.   L650 : do {
  43093.     if (HEAP[$i_i19_i] >>> 0 < HEAP[$count_i18_i] >>> 0) {
  43094.       while (1) {
  43095.         HEAP[$info_addr_i_i16_i] = HEAP[HEAP[$buffer_addr_i17_i] + 96 | 0] + (HEAP[$i_i19_i] * 20 & -1) | 0;
  43096.         if ((1 << (HEAP[HEAP[$info_addr_i_i16_i] + 16 | 0] & 31) & 7168 | 0) != 0) {
  43097.           __ZN11hb_buffer_t14merge_clustersEjj(HEAP[$buffer_addr_i17_i], HEAP[$i_i19_i] - 1 | 0, HEAP[$i_i19_i] + 1 | 0);
  43098.         }
  43099.         HEAP[$i_i19_i] = HEAP[$i_i19_i] + 1 | 0;
  43100.         if (HEAP[$i_i19_i] >>> 0 >= HEAP[$count_i18_i] >>> 0) {
  43101.           break L650;
  43102.         }
  43103.       }
  43104.     }
  43105.   } while (0);
  43106.   HEAP[$buffer_addr_i36_i] = HEAP[HEAP[$c_addr_i] + 12 | 0];
  43107.   HEAP[$direction_i_i] = HEAP[HEAP[$buffer_addr_i36_i] + 48 | 0];
  43108.   do {
  43109.     if ((HEAP[$direction_i_i] & -2 | 0) == 4) {
  43110.       var $218 = HEAP[$direction_i_i];
  43111.       HEAP[$script_addr_i_i_i] = HEAP[HEAP[$buffer_addr_i36_i] + 52 | 0];
  43112.       var $223 = HEAP[$script_addr_i_i_i];
  43113.       if (($223 | 0) == 1098015074 | ($223 | 0) == 1214603890 | ($223 | 0) == 1400468067 | ($223 | 0) == 1416126817 | ($223 | 0) == 1131442804 | ($223 | 0) == 1265131890 | ($223 | 0) == 1349021304 | ($223 | 0) == 1315663727 | ($223 | 0) == 1283023977 | ($223 | 0) == 1098281844 | ($223 | 0) == 1098018153 | ($223 | 0) == 1349020777 | ($223 | 0) == 1349678185 | ($223 | 0) == 1398895202 | ($223 | 0) == 1332898664 | ($223 | 0) == 1398893938 | ($223 | 0) == 1298230884 | ($223 | 0) == 1298494051 | ($223 | 0) == 1298494063) {
  43114.         HEAP[$retval_i_i_i] = 5;
  43115.       } else {
  43116.         HEAP[$retval_i_i_i] = 4;
  43117.       }
  43118.       if (($218 | 0) != (HEAP[$retval_i_i_i] | 0)) {
  43119.         label = 485;
  43120.         break;
  43121.       } else {
  43122.         label = 484;
  43123.         break;
  43124.       }
  43125.     } else {
  43126.       label = 484;
  43127.     }
  43128.   } while (0);
  43129.   do {
  43130.     if (label == 484) {
  43131.       if ((HEAP[$direction_i_i] & -2 | 0) == 6 & (HEAP[$direction_i_i] | 0) != 6) {
  43132.         label = 485;
  43133.         break;
  43134.       } else {
  43135.         break;
  43136.       }
  43137.     }
  43138.   } while (0);
  43139.   if (label == 485) {
  43140.     HEAP[$buffer_addr_i_i_i] = HEAP[$buffer_addr_i36_i];
  43141.     HEAP[$this_addr_i_i_i35_i] = HEAP[$buffer_addr_i_i_i];
  43142.     var $this1_i_i_i40_i = HEAP[$this_addr_i_i_i35_i];
  43143.     if ((HEAP[$this1_i_i_i40_i + 84 | 0] | 0) != 0) {
  43144.       HEAP[$this_addr_i_i_i_i34_i] = $this1_i_i_i40_i;
  43145.       var $this1_i_i_i_i42_i = HEAP[$this_addr_i_i_i_i34_i];
  43146.       if ((HEAP[$this1_i_i_i_i42_i + 84 | 0] | 0) != 0) {
  43147.         __ZN11hb_buffer_t13reverse_rangeEjj($this1_i_i_i_i42_i, 0, HEAP[$this1_i_i_i_i42_i + 84 | 0]);
  43148.       }
  43149.       HEAP[$count_i_i_i_i] = HEAP[$this1_i_i_i40_i + 84 | 0];
  43150.       HEAP[$start_i_i_i_i] = 0;
  43151.       HEAP[$last_cluster_i_i_i_i] = HEAP[HEAP[$this1_i_i_i40_i + 96 | 0] + 8 | 0];
  43152.       HEAP[$i_i_i_i_i] = 1;
  43153.       L673 : do {
  43154.         if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$count_i_i_i_i] >>> 0) {
  43155.           var $info3_i_i_i_i = $this1_i_i_i40_i + 96 | 0;
  43156.           var $info8_i_i_i_i = $this1_i_i_i40_i + 96 | 0;
  43157.           while (1) {
  43158.             if ((HEAP[$last_cluster_i_i_i_i] | 0) != (HEAP[HEAP[$info3_i_i_i_i] + (HEAP[$i_i_i_i_i] * 20 & -1) + 8 | 0] | 0)) {
  43159.               __ZN11hb_buffer_t13reverse_rangeEjj($this1_i_i_i40_i, HEAP[$start_i_i_i_i], HEAP[$i_i_i_i_i]);
  43160.               HEAP[$start_i_i_i_i] = HEAP[$i_i_i_i_i];
  43161.               HEAP[$last_cluster_i_i_i_i] = HEAP[HEAP[$info8_i_i_i_i] + (HEAP[$i_i_i_i_i] * 20 & -1) + 8 | 0];
  43162.             }
  43163.             HEAP[$i_i_i_i_i] = HEAP[$i_i_i_i_i] + 1 | 0;
  43164.             if (HEAP[$i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i] >>> 0) {
  43165.               break L673;
  43166.             }
  43167.           }
  43168.         }
  43169.       } while (0);
  43170.       __ZN11hb_buffer_t13reverse_rangeEjj($this1_i_i_i40_i, HEAP[$start_i_i_i_i], HEAP[$i_i_i_i_i]);
  43171.     }
  43172.     HEAP[HEAP[$buffer_addr_i36_i] + 48 | 0] = HEAP[HEAP[$buffer_addr_i36_i] + 48 | 0] ^ 1;
  43173.   }
  43174.   HEAP[$c_addr_i_i] = HEAP[$c_addr_i];
  43175.   HEAP[$c_addr_i_i_i] = HEAP[$c_addr_i_i];
  43176.   if ((HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i] | 0] + 20 | 0] + 24 | 0] | 0) != 0) {
  43177.     FUNCTION_TABLE[HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i] | 0] + 20 | 0] + 24 | 0]](HEAP[HEAP[$c_addr_i_i_i] | 0], HEAP[HEAP[$c_addr_i_i_i] + 12 | 0], HEAP[HEAP[$c_addr_i_i_i] + 4 | 0]);
  43178.   }
  43179.   HEAP[$c_addr_i_i_i_i] = HEAP[$c_addr_i_i_i];
  43180.   L686 : do {
  43181.     if ((HEAP[HEAP[$c_addr_i_i_i_i] + 24 | 0] & -3 | 0) != 4) {
  43182.       HEAP[$unicode_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 44 | 0];
  43183.       HEAP[$this_addr_i_i_i_i46_i] = HEAP[HEAP[$c_addr_i_i_i_i] | 0] + 24 | 0;
  43184.       HEAP[$feature_tag_addr_i_i_i_i_i] = 1920232557;
  43185.       HEAP[$this_addr_i_i_i_i_i45_i] = HEAP[$this_addr_i_i_i_i46_i] + 16 | 0;
  43186.       HEAP[$key_addr_i_i_i_i_i_i] = $feature_tag_addr_i_i_i_i_i;
  43187.       var $this1_i_i_i_i_i54_i = HEAP[$this_addr_i_i_i_i_i45_i];
  43188.       var $315 = _bsearch(HEAP[$key_addr_i_i_i_i_i_i], HEAP[$this1_i_i_i_i_i54_i + 8 | 0], HEAP[$this1_i_i_i_i_i54_i | 0], 36, 6);
  43189.       HEAP[$map_i_i_i_i_i] = $315;
  43190.       if ((HEAP[$map_i_i_i_i_i] | 0) != 0) {
  43191.         var $cond_i_i_i_i_i = HEAP[HEAP[$map_i_i_i_i_i] + 28 | 0];
  43192.       } else {
  43193.         var $cond_i_i_i_i_i = 0;
  43194.       }
  43195.       var $cond_i_i_i_i_i;
  43196.       HEAP[$rtlm_mask_i_i_i_i] = $cond_i_i_i_i_i;
  43197.       HEAP[$count_i_i_i47_i] = HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 84 | 0];
  43198.       HEAP[$i_i_i_i48_i] = 0;
  43199.       if (HEAP[$i_i_i_i48_i] >>> 0 >= HEAP[$count_i_i_i47_i] >>> 0) {
  43200.         break;
  43201.       }
  43202.       while (1) {
  43203.         var $338 = HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i48_i] * 20 & -1) | 0];
  43204.         HEAP[$this_addr_i1_i_i_i_i] = HEAP[$unicode_i_i_i_i];
  43205.         HEAP[$unicode_addr_i_i_i_i_i] = $338;
  43206.         var $this1_i2_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i];
  43207.         var $call_i_i_i_i_i = FUNCTION_TABLE[HEAP[$this1_i2_i_i_i_i + 64 | 0]]($this1_i2_i_i_i_i, HEAP[$unicode_addr_i_i_i_i_i], HEAP[$this1_i2_i_i_i_i + 96 | 0]);
  43208.         HEAP[$codepoint_i_i_i_i] = $call_i_i_i_i_i;
  43209.         if ((HEAP[$codepoint_i_i_i_i] | 0) == (HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i48_i] * 20 & -1) | 0] | 0)) {
  43210.           var $mask_i_i_i_i = HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i48_i] * 20 & -1) + 4 | 0;
  43211.           HEAP[$mask_i_i_i_i] = HEAP[$mask_i_i_i_i] | HEAP[$rtlm_mask_i_i_i_i];
  43212.         } else {
  43213.           HEAP[HEAP[HEAP[HEAP[$c_addr_i_i_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i48_i] * 20 & -1) | 0] = HEAP[$codepoint_i_i_i_i];
  43214.         }
  43215.         HEAP[$i_i_i_i48_i] = HEAP[$i_i_i_i48_i] + 1 | 0;
  43216.         if (HEAP[$i_i_i_i48_i] >>> 0 >= HEAP[$count_i_i_i47_i] >>> 0) {
  43217.           break L686;
  43218.         }
  43219.       }
  43220.     }
  43221.   } while (0);
  43222.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[HEAP[$c_addr_i_i_i] + 12 | 0], 0, 4, 102760);
  43223.   __Z22_hb_ot_shape_normalizePK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t(HEAP[HEAP[$c_addr_i_i_i] | 0], HEAP[HEAP[$c_addr_i_i_i] + 12 | 0], HEAP[HEAP[$c_addr_i_i_i] + 4 | 0]);
  43224.   HEAP[$c_addr_i7_i_i_i] = HEAP[$c_addr_i_i_i];
  43225.   HEAP[$map_i8_i_i_i] = HEAP[HEAP[$c_addr_i7_i_i_i] | 0] + 24 | 0;
  43226.   HEAP[$this_addr_i_i6_i_i_i] = HEAP[$map_i8_i_i_i];
  43227.   HEAP[$global_mask_i_i_i_i] = HEAP[HEAP[$this_addr_i_i6_i_i_i] + 12 | 0];
  43228.   var $392 = HEAP[$global_mask_i_i_i_i];
  43229.   HEAP[$this_addr_i7_i_i_i_i] = HEAP[HEAP[$c_addr_i7_i_i_i] + 12 | 0];
  43230.   HEAP[$mask_addr_i8_i_i_i_i] = $392;
  43231.   var $this1_i9_i_i_i_i = HEAP[$this_addr_i7_i_i_i_i];
  43232.   HEAP[$j_i_i_i_i_i] = 0;
  43233.   var $len_i10_i_i_i_i = $this1_i9_i_i_i_i + 84 | 0;
  43234.   L699 : do {
  43235.     if (HEAP[$j_i_i_i_i_i] >>> 0 < HEAP[$len_i10_i_i_i_i] >>> 0) {
  43236.       var $info_i11_i_i_i_i = $this1_i9_i_i_i_i + 96 | 0;
  43237.       while (1) {
  43238.         HEAP[HEAP[$info_i11_i_i_i_i] + (HEAP[$j_i_i_i_i_i] * 20 & -1) + 4 | 0] = HEAP[$mask_addr_i8_i_i_i_i];
  43239.         HEAP[$j_i_i_i_i_i] = HEAP[$j_i_i_i_i_i] + 1 | 0;
  43240.         if (HEAP[$j_i_i_i_i_i] >>> 0 >= HEAP[$len_i10_i_i_i_i] >>> 0) {
  43241.           break L699;
  43242.         }
  43243.       }
  43244.     }
  43245.   } while (0);
  43246.   if ((HEAP[HEAP[HEAP[HEAP[$c_addr_i7_i_i_i] | 0] + 20 | 0] + 40 | 0] | 0) != 0) {
  43247.     FUNCTION_TABLE[HEAP[HEAP[HEAP[HEAP[$c_addr_i7_i_i_i] | 0] + 20 | 0] + 40 | 0]](HEAP[HEAP[$c_addr_i7_i_i_i] | 0], HEAP[HEAP[$c_addr_i7_i_i_i] + 12 | 0], HEAP[HEAP[$c_addr_i7_i_i_i] + 4 | 0]);
  43248.   }
  43249.   HEAP[$i_i9_i_i_i] = 0;
  43250.   L707 : do {
  43251.     if (HEAP[$i_i9_i_i_i] >>> 0 < HEAP[HEAP[$c_addr_i7_i_i_i] + 20 | 0] >>> 0) {
  43252.       while (1) {
  43253.         HEAP[$feature_i_i_i_i] = (HEAP[$i_i9_i_i_i] << 4) + HEAP[HEAP[$c_addr_i7_i_i_i] + 16 | 0] | 0;
  43254.         do {
  43255.           if ((HEAP[HEAP[$feature_i_i_i_i] + 8 | 0] | 0) == 0) {
  43256.             if ((HEAP[HEAP[$feature_i_i_i_i] + 12 | 0] | 0) == -1) {
  43257.               break;
  43258.             } else {
  43259.               label = 515;
  43260.               break;
  43261.             }
  43262.           } else {
  43263.             label = 515;
  43264.           }
  43265.         } while (0);
  43266.         L713 : do {
  43267.           if (label == 515) {
  43268.             label = 0;
  43269.             var $455 = HEAP[HEAP[$feature_i_i_i_i] | 0];
  43270.             HEAP[$this_addr_i3_i_i_i_i] = HEAP[$map_i8_i_i_i];
  43271.             HEAP[$feature_tag_addr_i_i3_i_i_i] = $455;
  43272.             HEAP[$shift_addr_i_i_i_i_i] = $shift_i_i_i_i;
  43273.             HEAP[$this_addr_i_i_i1_i_i_i] = HEAP[$this_addr_i3_i_i_i_i] + 16 | 0;
  43274.             HEAP[$key_addr_i_i_i2_i_i_i] = $feature_tag_addr_i_i3_i_i_i;
  43275.             var $this1_i_i_i20_i_i_i = HEAP[$this_addr_i_i_i1_i_i_i];
  43276.             var $461 = _bsearch(HEAP[$key_addr_i_i_i2_i_i_i], HEAP[$this1_i_i_i20_i_i_i + 8 | 0], HEAP[$this1_i_i_i20_i_i_i | 0], 36, 6);
  43277.             HEAP[$map_i_i4_i_i_i] = $461;
  43278.             if ((HEAP[$shift_addr_i_i_i_i_i] | 0) != 0) {
  43279.               if ((HEAP[$map_i_i4_i_i_i] | 0) != 0) {
  43280.                 var $cond_i_i25_i_i_i = HEAP[HEAP[$map_i_i4_i_i_i] + 20 | 0];
  43281.               } else {
  43282.                 var $cond_i_i25_i_i_i = 0;
  43283.               }
  43284.               var $cond_i_i25_i_i_i;
  43285.               HEAP[HEAP[$shift_addr_i_i_i_i_i]] = $cond_i_i25_i_i_i;
  43286.               var $467 = HEAP[$map_i_i4_i_i_i];
  43287.             } else {
  43288.               var $467 = $461;
  43289.             }
  43290.             var $467;
  43291.             if (($467 | 0) != 0) {
  43292.               var $cond8_i_i_i_i_i = HEAP[HEAP[$map_i_i4_i_i_i] + 24 | 0];
  43293.             } else {
  43294.               var $cond8_i_i_i_i_i = 0;
  43295.             }
  43296.             var $cond8_i_i_i_i_i;
  43297.             HEAP[$mask_i10_i_i_i] = $cond8_i_i_i_i_i;
  43298.             var $shl_i_i_i_i = HEAP[HEAP[$feature_i_i_i_i] + 4 | 0] << HEAP[$shift_i_i_i_i];
  43299.             var $475 = HEAP[$mask_i10_i_i_i];
  43300.             var $477 = HEAP[HEAP[$feature_i_i_i_i] + 8 | 0];
  43301.             var $479 = HEAP[HEAP[$feature_i_i_i_i] + 12 | 0];
  43302.             HEAP[$this_addr_i1_i5_i_i_i] = HEAP[HEAP[$c_addr_i7_i_i_i] + 12 | 0];
  43303.             HEAP[$value_addr_i_i_i_i_i] = $shl_i_i_i_i;
  43304.             HEAP[$mask_addr_i_i_i_i_i] = $475;
  43305.             HEAP[$cluster_start_addr_i_i_i_i_i] = $477;
  43306.             HEAP[$cluster_end_addr_i_i_i_i_i] = $479;
  43307.             var $this1_i2_i26_i_i_i = HEAP[$this_addr_i1_i5_i_i_i];
  43308.             HEAP[$not_mask_i_i_i_i_i] = $475 ^ -1;
  43309.             HEAP[$value_addr_i_i_i_i_i] = HEAP[$value_addr_i_i_i_i_i] & $475;
  43310.             if (($475 | 0) == 0) {
  43311.               break;
  43312.             }
  43313.             do {
  43314.               if ((HEAP[$cluster_start_addr_i_i_i_i_i] | 0) == 0) {
  43315.                 if ((HEAP[$cluster_end_addr_i_i_i_i_i] | 0) != -1) {
  43316.                   break;
  43317.                 }
  43318.                 HEAP[$count_i_i_i_i_i] = HEAP[$this1_i2_i26_i_i_i + 84 | 0];
  43319.                 HEAP[$i_i_i_i_i_i] = 0;
  43320.                 if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i] >>> 0) {
  43321.                   break L713;
  43322.                 }
  43323.                 var $info_i_i_i_i_i = $this1_i2_i26_i_i_i + 96 | 0;
  43324.                 var $info7_i_i_i_i_i = $this1_i2_i26_i_i_i + 96 | 0;
  43325.                 while (1) {
  43326.                   HEAP[HEAP[$info7_i_i_i_i_i] + (HEAP[$i_i_i_i_i_i] * 20 & -1) + 4 | 0] = HEAP[$not_mask_i_i_i_i_i] & HEAP[HEAP[$info_i_i_i_i_i] + (HEAP[$i_i_i_i_i_i] * 20 & -1) + 4 | 0] | HEAP[$value_addr_i_i_i_i_i];
  43327.                   HEAP[$i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i] + 1 | 0;
  43328.                   if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[$count_i_i_i_i_i] >>> 0) {
  43329.                     break L713;
  43330.                   }
  43331.                 }
  43332.               }
  43333.             } while (0);
  43334.             HEAP[$count11_i_i_i_i_i] = HEAP[$this1_i2_i26_i_i_i + 84 | 0];
  43335.             HEAP[$i13_i_i_i_i_i] = 0;
  43336.             if (HEAP[$i13_i_i_i_i_i] >>> 0 >= HEAP[$count11_i_i_i_i_i] >>> 0) {
  43337.               break;
  43338.             }
  43339.             var $info17_i_i_i_i_i = $this1_i2_i26_i_i_i + 96 | 0;
  43340.             var $info21_i_i_i_i_i = $this1_i2_i26_i_i_i + 96 | 0;
  43341.             var $info26_i_i_i_i_i = $this1_i2_i26_i_i_i + 96 | 0;
  43342.             var $info31_i_i_i_i_i = $this1_i2_i26_i_i_i + 96 | 0;
  43343.             while (1) {
  43344.               do {
  43345.                 if (HEAP[$cluster_start_addr_i_i_i_i_i] >>> 0 <= HEAP[HEAP[$info17_i_i_i_i_i] + (HEAP[$i13_i_i_i_i_i] * 20 & -1) + 8 | 0] >>> 0) {
  43346.                   if (HEAP[HEAP[$info21_i_i_i_i_i] + (HEAP[$i13_i_i_i_i_i] * 20 & -1) + 8 | 0] >>> 0 >= HEAP[$cluster_end_addr_i_i_i_i_i] >>> 0) {
  43347.                     break;
  43348.                   }
  43349.                   HEAP[HEAP[$info31_i_i_i_i_i] + (HEAP[$i13_i_i_i_i_i] * 20 & -1) + 4 | 0] = HEAP[$not_mask_i_i_i_i_i] & HEAP[HEAP[$info26_i_i_i_i_i] + (HEAP[$i13_i_i_i_i_i] * 20 & -1) + 4 | 0] | HEAP[$value_addr_i_i_i_i_i];
  43350.                 }
  43351.               } while (0);
  43352.               HEAP[$i13_i_i_i_i_i] = HEAP[$i13_i_i_i_i_i] + 1 | 0;
  43353.               if (HEAP[$i13_i_i_i_i_i] >>> 0 >= HEAP[$count11_i_i_i_i_i] >>> 0) {
  43354.                 break L713;
  43355.               }
  43356.             }
  43357.           }
  43358.         } while (0);
  43359.         HEAP[$i_i9_i_i_i] = HEAP[$i_i9_i_i_i] + 1 | 0;
  43360.         if (HEAP[$i_i9_i_i_i] >>> 0 >= HEAP[HEAP[$c_addr_i7_i_i_i] + 20 | 0] >>> 0) {
  43361.           break L707;
  43362.         }
  43363.       }
  43364.     }
  43365.   } while (0);
  43366.   HEAP[$face_addr_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 8 | 0];
  43367.   HEAP[$face_addr_i_i_i_i_i] = HEAP[$face_addr_i_i_i_i];
  43368.   HEAP[$face_addr_i36_i_i_i] = HEAP[$face_addr_i_i_i_i_i];
  43369.   var $541 = HEAP[HEAP[$face_addr_i36_i_i_i] + 72 | 0];
  43370.   HEAP[$data_i_i_i_i] = $541;
  43371.   L741 : do {
  43372.     if (($541 | 0) != 0) {
  43373.       label = 546;
  43374.     } else {
  43375.       while (1) {
  43376.         HEAP[$face_addr_i_i35_i_i_i] = HEAP[$face_addr_i36_i_i_i];
  43377.         var $call_i_i37_i_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i35_i_i_i]);
  43378.         HEAP[$data_i_i_i_i] = $call_i_i37_i_i_i;
  43379.         if (($call_i_i37_i_i_i | 0) == 0) {
  43380.           HEAP[$data_i_i_i_i] = -1;
  43381.         }
  43382.         var $552 = HEAP[$data_i_i_i_i];
  43383.         if ((HEAP[HEAP[$face_addr_i36_i_i_i] + 72 | 0] | 0) == 0) {
  43384.           break;
  43385.         }
  43386.         do {
  43387.           if (($552 | 0) != 0) {
  43388.             if ((HEAP[$data_i_i_i_i] | 0) == -1) {
  43389.               break;
  43390.             }
  43391.             if ((HEAP[$data_i_i_i_i] | 0) == 1) {
  43392.               break;
  43393.             }
  43394.             HEAP[$data_addr_i_i_i_i_i] = HEAP[$data_i_i_i_i];
  43395.             __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i_i_i_i]);
  43396.           }
  43397.         } while (0);
  43398.         var $563 = HEAP[HEAP[$face_addr_i36_i_i_i] + 72 | 0];
  43399.         HEAP[$data_i_i_i_i] = $563;
  43400.         if (($563 | 0) != 0) {
  43401.           label = 546;
  43402.           break L741;
  43403.         }
  43404.       }
  43405.       HEAP[HEAP[$face_addr_i36_i_i_i] + 72 | 0] = $552;
  43406.       if ((HEAP[$data_i_i_i_i] | 0) != 0) {
  43407.         label = 546;
  43408.         break;
  43409.       }
  43410.       label = 547;
  43411.       break;
  43412.     }
  43413.   } while (0);
  43414.   do {
  43415.     if (label == 546) {
  43416.       if (!((HEAP[$data_i_i_i_i] | 0) == -1 ^ 1)) {
  43417.         label = 547;
  43418.         break;
  43419.       }
  43420.       HEAP[$retval_i_i_i_i_i] = HEAP[HEAP[HEAP[$face_addr_i_i_i_i_i] + 72 | 0] + 20 | 0];
  43421.       break;
  43422.     }
  43423.   } while (0);
  43424.   if (label == 547) {
  43425.     HEAP[$X_addr_i_i_i_i_i_i_i] = 111704;
  43426.     HEAP[$retval_i_i_i_i_i] = HEAP[$X_addr_i_i_i_i_i_i_i];
  43427.   }
  43428.   var $582 = HEAP[$retval_i_i_i_i_i];
  43429.   HEAP[$X_addr_i_i_i_i_i_i] = 111704;
  43430.   if (($582 | 0) == (HEAP[$X_addr_i_i_i_i_i_i] | 0)) {
  43431.     __Z49_hb_ot_shape_fallback_position_recategorize_marksPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t(HEAP[HEAP[$c_addr_i_i_i] | 0], HEAP[HEAP[$c_addr_i_i_i] + 4 | 0], HEAP[HEAP[$c_addr_i_i_i] + 12 | 0]);
  43432.   }
  43433.   HEAP[$buffer_addr_i_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 12 | 0];
  43434.   HEAP[$count_i46_i_i_i] = HEAP[HEAP[$buffer_addr_i_i_i_i] + 84 | 0];
  43435.   HEAP[$i_i47_i_i_i] = 0;
  43436.   L765 : do {
  43437.     if (HEAP[$i_i47_i_i_i] >>> 0 < HEAP[$count_i46_i_i_i] >>> 0) {
  43438.       while (1) {
  43439.         HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i] + 96 | 0] + (HEAP[$i_i47_i_i_i] * 20 & -1) | 0] = HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i] + 96 | 0] + (HEAP[$i_i47_i_i_i] * 20 & -1) + 12 | 0];
  43440.         HEAP[$i_i47_i_i_i] = HEAP[$i_i47_i_i_i] + 1 | 0;
  43441.         if (HEAP[$i_i47_i_i_i] >>> 0 >= HEAP[$count_i46_i_i_i] >>> 0) {
  43442.           break L765;
  43443.         }
  43444.       }
  43445.     }
  43446.   } while (0);
  43447.   __ZN11hb_buffer_t14deallocate_varEjjPKc(HEAP[HEAP[$c_addr_i_i_i] + 12 | 0], 0, 4, 102760);
  43448.   HEAP[$c_addr_i13_i_i] = HEAP[$c_addr_i_i];
  43449.   var $626 = HEAP[HEAP[$c_addr_i13_i_i] + 12 | 0];
  43450.   HEAP[$font_addr_i_i_i_i] = HEAP[HEAP[$c_addr_i13_i_i] + 4 | 0];
  43451.   HEAP[$buffer_addr_i_i12_i_i] = $626;
  43452.   var $630 = HEAP[$buffer_addr_i_i12_i_i];
  43453.   HEAP[$font_addr_i_i_i_i_i] = HEAP[$font_addr_i_i_i_i];
  43454.   HEAP[$buffer_addr_i_i_i_i_i] = $630;
  43455.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[$buffer_addr_i_i_i_i_i], 0, 2, 103288);
  43456.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[$buffer_addr_i_i_i_i_i], 3, 1, 103304);
  43457.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[$buffer_addr_i_i_i_i_i], 2, 1, 103320);
  43458.   HEAP[$gdef_i_i_i_i_i] = HEAP[HEAP[HEAP[HEAP[$font_addr_i_i_i_i_i] + 52 | 0] + 72 | 0] + 12 | 0];
  43459.   HEAP[$count_i_i_i10_i_i] = HEAP[HEAP[$buffer_addr_i_i_i_i_i] + 84 | 0];
  43460.   HEAP[$i_i_i_i11_i_i] = 0;
  43461.   L769 : do {
  43462.     if (HEAP[$i_i_i_i11_i_i] >>> 0 < HEAP[$count_i_i_i10_i_i] >>> 0) {
  43463.       while (1) {
  43464.         HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i_i] + 96 | 0] + (HEAP[$i_i_i_i11_i_i] * 20 & -1) + 14 | 0] = 0;
  43465.         HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i_i] + 96 | 0] + (HEAP[$i_i_i_i11_i_i] * 20 & -1) + 15 | 0] = 0;
  43466.         var $conv_i_i_i_i_i = __ZNK2OT4GDEF15get_glyph_propsEj(HEAP[$gdef_i_i_i_i_i], HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i_i] + 96 | 0] + (HEAP[$i_i_i_i11_i_i] * 20 & -1) | 0]) & 65535;
  43467.         HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i_i] + 96 | 0] + (HEAP[$i_i_i_i11_i_i] * 20 & -1) + 12 | 0] = $conv_i_i_i_i_i;
  43468.         HEAP[$i_i_i_i11_i_i] = HEAP[$i_i_i_i11_i_i] + 1 | 0;
  43469.         if (HEAP[$i_i_i_i11_i_i] >>> 0 >= HEAP[$count_i_i_i10_i_i] >>> 0) {
  43470.           break L769;
  43471.         }
  43472.       }
  43473.     }
  43474.   } while (0);
  43475.   HEAP[$face_addr_i_i9_i_i] = HEAP[HEAP[$c_addr_i13_i_i] + 8 | 0];
  43476.   HEAP[$face_addr_i_i_i8_i_i] = HEAP[$face_addr_i_i9_i_i];
  43477.   HEAP[$face_addr_i_i_i_i_i_i] = HEAP[$face_addr_i_i_i8_i_i];
  43478.   var $685 = HEAP[HEAP[$face_addr_i_i_i_i_i_i] + 72 | 0];
  43479.   HEAP[$data_i_i_i_i_i_i] = $685;
  43480.   L773 : do {
  43481.     if (($685 | 0) != 0) {
  43482.       label = 567;
  43483.     } else {
  43484.       while (1) {
  43485.         HEAP[$face_addr_i_i_i_i_i_i_i] = HEAP[$face_addr_i_i_i_i_i_i];
  43486.         var $call_i_i_i_i_i_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i_i_i_i_i_i]);
  43487.         HEAP[$data_i_i_i_i_i_i] = $call_i_i_i_i_i_i_i;
  43488.         if (($call_i_i_i_i_i_i_i | 0) == 0) {
  43489.           HEAP[$data_i_i_i_i_i_i] = -1;
  43490.         }
  43491.         var $696 = HEAP[$data_i_i_i_i_i_i];
  43492.         if ((HEAP[HEAP[$face_addr_i_i_i_i_i_i] + 72 | 0] | 0) == 0) {
  43493.           break;
  43494.         }
  43495.         do {
  43496.           if (($696 | 0) != 0) {
  43497.             if ((HEAP[$data_i_i_i_i_i_i] | 0) == -1) {
  43498.               break;
  43499.             }
  43500.             if ((HEAP[$data_i_i_i_i_i_i] | 0) == 1) {
  43501.               break;
  43502.             }
  43503.             HEAP[$data_addr_i_i_i_i_i_i_i] = HEAP[$data_i_i_i_i_i_i];
  43504.             __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i_i_i_i_i_i]);
  43505.           }
  43506.         } while (0);
  43507.         var $707 = HEAP[HEAP[$face_addr_i_i_i_i_i_i] + 72 | 0];
  43508.         HEAP[$data_i_i_i_i_i_i] = $707;
  43509.         if (($707 | 0) != 0) {
  43510.           label = 567;
  43511.           break L773;
  43512.         }
  43513.       }
  43514.       HEAP[HEAP[$face_addr_i_i_i_i_i_i] + 72 | 0] = $696;
  43515.       if ((HEAP[$data_i_i_i_i_i_i] | 0) != 0) {
  43516.         label = 567;
  43517.         break;
  43518.       }
  43519.       label = 568;
  43520.       break;
  43521.     }
  43522.   } while (0);
  43523.   do {
  43524.     if (label == 567) {
  43525.       if (!((HEAP[$data_i_i_i_i_i_i] | 0) == -1 ^ 1)) {
  43526.         label = 568;
  43527.         break;
  43528.       }
  43529.       HEAP[$retval_i_i_i7_i_i] = HEAP[HEAP[HEAP[$face_addr_i_i_i8_i_i] + 72 | 0] + 12 | 0];
  43530.       break;
  43531.     }
  43532.   } while (0);
  43533.   if (label == 568) {
  43534.     HEAP[$X_addr_i_i_i_i_i6_i_i] = 111704;
  43535.     HEAP[$retval_i_i_i7_i_i] = HEAP[$X_addr_i_i_i_i_i6_i_i];
  43536.   }
  43537.   HEAP[$this_addr_i_i_i5_i_i] = HEAP[$retval_i_i_i7_i_i];
  43538.   HEAP[$this_addr_i_i_i_i4_i_i] = HEAP[$this_addr_i_i_i5_i_i] + 4 | 0;
  43539.   HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i4_i_i] | 0;
  43540.   var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  43541.   if ((((HEAP[$this1_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535 | 0) == 0) {
  43542.     HEAP[$c_addr_i_i1_i_i] = HEAP[$c_addr_i13_i_i];
  43543.     HEAP[$count_i_i2_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i1_i_i] + 12 | 0] + 84 | 0];
  43544.     HEAP[$i_i_i3_i_i] = 0;
  43545.     L796 : do {
  43546.       if (HEAP[$i_i_i3_i_i] >>> 0 < HEAP[$count_i_i2_i_i] >>> 0) {
  43547.         while (1) {
  43548.           HEAP[$info_addr_i_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i1_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i3_i_i] * 20 & -1) | 0;
  43549.           HEAP[HEAP[HEAP[HEAP[$c_addr_i_i1_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i3_i_i] * 20 & -1) + 12 | 0] = ((HEAP[HEAP[$info_addr_i_i_i_i_i] + 16 | 0] & 31 | 0) == 12 ? 8 : 2) & 65535;
  43550.           HEAP[$i_i_i3_i_i] = HEAP[$i_i_i3_i_i] + 1 | 0;
  43551.           if (HEAP[$i_i_i3_i_i] >>> 0 >= HEAP[$count_i_i2_i_i] >>> 0) {
  43552.             break L796;
  43553.           }
  43554.         }
  43555.       }
  43556.     } while (0);
  43557.   }
  43558.   var $769 = HEAP[HEAP[$c_addr_i13_i_i] + 4 | 0];
  43559.   var $771 = HEAP[HEAP[$c_addr_i13_i_i] + 12 | 0];
  43560.   HEAP[$this_addr_i_i_i44_i] = HEAP[HEAP[$c_addr_i13_i_i] | 0];
  43561.   HEAP[$font_addr_i10_i_i_i] = $769;
  43562.   HEAP[$buffer_addr_i11_i_i_i] = $771;
  43563.   var $this1_i_i_i73_i = HEAP[$this_addr_i_i_i44_i];
  43564.   __ZNK11hb_ot_map_t10substituteEPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($this1_i_i_i73_i + 24 | 0, $this1_i_i_i73_i, HEAP[$font_addr_i10_i_i_i], HEAP[$buffer_addr_i11_i_i_i]);
  43565.   HEAP[$c_addr_i94_i] = HEAP[$c_addr_i];
  43566.   HEAP[$c_addr_i_i93_i] = HEAP[$c_addr_i94_i];
  43567.   var $793 = HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0];
  43568.   HEAP[$font_addr_i_i_i91_i] = HEAP[HEAP[$c_addr_i_i93_i] + 4 | 0];
  43569.   HEAP[$buffer_addr_i_i_i92_i] = $793;
  43570.   var $797 = HEAP[$buffer_addr_i_i_i92_i];
  43571.   HEAP[$font_addr_i_i_i_i87_i] = HEAP[$font_addr_i_i_i91_i];
  43572.   HEAP[$buffer_addr_i_i_i_i88_i] = $797;
  43573.   HEAP[$this_addr_i_i_i_i_i86_i] = HEAP[$buffer_addr_i_i_i_i88_i];
  43574.   var $this1_i_i_i_i_i97_i = HEAP[$this_addr_i_i_i_i_i86_i];
  43575.   HEAP[$obj_addr_i_i_i_i_i_i_i] = $this1_i_i_i_i_i97_i;
  43576.   HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$obj_addr_i_i_i_i_i_i_i] | 0;
  43577.   HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i_i_i] | 0;
  43578.   if ((HEAP[HEAP[$this_addr_i_i_i_i_i_i_i_i_i] | 0] | 0) != -1) {
  43579.     HEAP[$this1_i_i_i_i_i97_i + 77 | 0] = 0;
  43580.     HEAP[$this1_i_i_i_i_i97_i + 78 | 0] = 1;
  43581.     HEAP[$this1_i_i_i_i_i97_i + 88 | 0] = 0;
  43582.     HEAP[$this1_i_i_i_i_i97_i + 100 | 0] = HEAP[$this1_i_i_i_i_i97_i + 96 | 0];
  43583.     var $814 = HEAP[$this1_i_i_i_i_i97_i + 104 | 0];
  43584.     var $mul_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i97_i + 84 | 0] * 20 & -1;
  43585.     for (var $$dest = $814, $$stop = $$dest + $mul_i_i_i_i_i_i; $$dest < $$stop; $$dest++) {
  43586.       HEAP[$$dest] = 0;
  43587.     }
  43588.   }
  43589.   HEAP[$count_i_i_i_i89_i] = HEAP[HEAP[$buffer_addr_i_i_i_i88_i] + 84 | 0];
  43590.   HEAP[$i_i_i_i_i90_i] = 0;
  43591.   L805 : do {
  43592.     if (HEAP[$i_i_i_i_i90_i] >>> 0 < HEAP[$count_i_i_i_i89_i] >>> 0) {
  43593.       while (1) {
  43594.         HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i88_i] + 104 | 0] + (HEAP[$i_i_i_i_i90_i] * 20 & -1) + 18 | 0] = 0;
  43595.         HEAP[HEAP[HEAP[$buffer_addr_i_i_i_i88_i] + 104 | 0] + (HEAP[$i_i_i_i_i90_i] * 20 & -1) + 16 | 0] = 0;
  43596.         HEAP[$i_i_i_i_i90_i] = HEAP[$i_i_i_i_i90_i] + 1 | 0;
  43597.         if (HEAP[$i_i_i_i_i90_i] >>> 0 >= HEAP[$count_i_i_i_i89_i] >>> 0) {
  43598.           break L805;
  43599.         }
  43600.       }
  43601.     }
  43602.   } while (0);
  43603.   HEAP[$count_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 84 | 0];
  43604.   HEAP[$i_i_i_i] = 0;
  43605.   var $841 = HEAP[$c_addr_i_i93_i];
  43606.   L809 : do {
  43607.     if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  43608.       var $874 = $841;
  43609.       while (1) {
  43610.         var $874;
  43611.         var $880 = HEAP[HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i] * 20 & -1) | 0];
  43612.         var $883 = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 48 | 0];
  43613.         var $x_advance_i_i_i = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i_i_i] * 20 & -1) | 0;
  43614.         var $y_advance_i_i_i = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i_i_i] * 20 & -1) + 4 | 0;
  43615.         HEAP[$this_addr_i1_i_i_i] = HEAP[$874 + 4 | 0];
  43616.         HEAP[$glyph_addr_i2_i_i_i] = $880;
  43617.         HEAP[$direction_addr_i3_i_i_i] = $883;
  43618.         HEAP[$x_addr_i4_i_i_i] = $x_advance_i_i_i;
  43619.         HEAP[$y_addr_i5_i_i_i] = $y_advance_i_i_i;
  43620.         var $this1_i6_i_i_i = HEAP[$this_addr_i1_i_i_i];
  43621.         if ((HEAP[$direction_addr_i3_i_i_i] & -2 | 0) == 4) {
  43622.           var $893 = HEAP[$glyph_addr_i2_i_i_i];
  43623.           HEAP[$this_addr_i_i_i_i84_i] = $this1_i6_i_i_i;
  43624.           HEAP[$glyph_addr_i_i_i_i_i] = $893;
  43625.           var $this1_i_i_i_i116_i = HEAP[$this_addr_i_i_i_i84_i];
  43626.           var $call_i_i_i_i118_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i_i_i_i116_i + 72 | 0] + 52 | 0]]($this1_i_i_i_i116_i, HEAP[$this1_i_i_i_i116_i + 76 | 0], HEAP[$glyph_addr_i_i_i_i_i], HEAP[HEAP[$this1_i_i_i_i116_i + 72 | 0] + 96 | 0]);
  43627.           HEAP[HEAP[$x_addr_i4_i_i_i]] = $call_i_i_i_i118_i;
  43628.           HEAP[HEAP[$y_addr_i5_i_i_i]] = 0;
  43629.         } else {
  43630.           HEAP[HEAP[$x_addr_i4_i_i_i]] = 0;
  43631.           var $903 = HEAP[$glyph_addr_i2_i_i_i];
  43632.           HEAP[$this_addr_i1_i_i_i83_i] = $this1_i6_i_i_i;
  43633.           HEAP[$glyph_addr_i2_i_i_i_i] = $903;
  43634.           var $this1_i3_i_i_i_i = HEAP[$this_addr_i1_i_i_i83_i];
  43635.           var $call_i9_i_i_i_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i3_i_i_i_i + 72 | 0] + 56 | 0]]($this1_i3_i_i_i_i, HEAP[$this1_i3_i_i_i_i + 76 | 0], HEAP[$glyph_addr_i2_i_i_i_i], HEAP[HEAP[$this1_i3_i_i_i_i + 72 | 0] + 100 | 0]);
  43636.           HEAP[HEAP[$y_addr_i5_i_i_i]] = $call_i9_i_i_i_i;
  43637.         }
  43638.         var $917 = HEAP[HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i_i_i] * 20 & -1) | 0];
  43639.         var $920 = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 48 | 0];
  43640.         var $x_offset_i_i_i = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i_i_i] * 20 & -1) + 8 | 0;
  43641.         var $y_offset_i_i_i = HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i_i_i] * 20 & -1) + 12 | 0;
  43642.         HEAP[$this_addr_i_i_i85_i] = HEAP[HEAP[$c_addr_i_i93_i] + 4 | 0];
  43643.         HEAP[$glyph_addr_i_i_i_i] = $917;
  43644.         HEAP[$direction_addr_i_i_i_i] = $920;
  43645.         HEAP[$x_addr_i_i_i_i] = $x_offset_i_i_i;
  43646.         HEAP[$y_addr_i_i_i_i] = $y_offset_i_i_i;
  43647.         __ZN9hb_font_t30get_glyph_origin_for_directionEj14hb_direction_tPiS1_(HEAP[$this_addr_i_i_i85_i], HEAP[$glyph_addr_i_i_i_i], HEAP[$direction_addr_i_i_i_i], $origin_x_i_i_i_i, $origin_y_i_i_i_i);
  43648.         var $932 = HEAP[$x_addr_i_i_i_i];
  43649.         HEAP[$932] = HEAP[$932] - HEAP[$origin_x_i_i_i_i] | 0;
  43650.         var $935 = HEAP[$y_addr_i_i_i_i];
  43651.         HEAP[$935] = HEAP[$935] - HEAP[$origin_y_i_i_i_i] | 0;
  43652.         HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  43653.         var $940 = HEAP[$c_addr_i_i93_i];
  43654.         if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  43655.           var $874 = $940;
  43656.         } else {
  43657.           var $_lcssa_i_i_i = $940;
  43658.           break L809;
  43659.         }
  43660.       }
  43661.     } else {
  43662.       var $_lcssa_i_i_i = $841;
  43663.     }
  43664.   } while (0);
  43665.   var $_lcssa_i_i_i;
  43666.   L818 : do {
  43667.     if ((HEAP[HEAP[HEAP[$_lcssa_i_i_i | 0] + 20 | 0] + 44 | 0] | 0) == 2) {
  43668.       HEAP[$i24_i_i_i] = 0;
  43669.       if (HEAP[$i24_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  43670.         break;
  43671.       }
  43672.       while (1) {
  43673.         if ((HEAP[HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 96 | 0] + (HEAP[$i24_i_i_i] * 20 & -1) + 12 | 0] & 8 | 0) != 0) {
  43674.           HEAP[HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 104 | 0] + (HEAP[$i24_i_i_i] * 20 & -1) | 0] = 0;
  43675.           HEAP[HEAP[HEAP[HEAP[$c_addr_i_i93_i] + 12 | 0] + 104 | 0] + (HEAP[$i24_i_i_i] * 20 & -1) + 4 | 0] = 0;
  43676.         }
  43677.         HEAP[$i24_i_i_i] = HEAP[$i24_i_i_i] + 1 | 0;
  43678.         if (HEAP[$i24_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  43679.           break L818;
  43680.         }
  43681.       }
  43682.     }
  43683.   } while (0);
  43684.   HEAP[$c_addr_i16_i_i] = HEAP[$c_addr_i94_i];
  43685.   $ret_i_i_i = 0;
  43686.   HEAP[$count_i17_i_i] = HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 84 | 0];
  43687.   HEAP[$face_addr_i_i_i82_i] = HEAP[HEAP[$c_addr_i16_i_i] + 8 | 0];
  43688.   HEAP[$face_addr_i_i_i_i81_i] = HEAP[$face_addr_i_i_i82_i];
  43689.   HEAP[$face_addr_i2_i_i_i] = HEAP[$face_addr_i_i_i_i81_i];
  43690.   var $988 = HEAP[HEAP[$face_addr_i2_i_i_i] + 72 | 0];
  43691.   HEAP[$data_i_i_i77_i] = $988;
  43692.   L826 : do {
  43693.     if (($988 | 0) != 0) {
  43694.       label = 602;
  43695.     } else {
  43696.       while (1) {
  43697.         HEAP[$face_addr_i_i1_i_i_i] = HEAP[$face_addr_i2_i_i_i];
  43698.         var $call_i_i3_i_i_i = __Z20_hb_ot_layout_createP9hb_face_t(HEAP[$face_addr_i_i1_i_i_i]);
  43699.         HEAP[$data_i_i_i77_i] = $call_i_i3_i_i_i;
  43700.         if (($call_i_i3_i_i_i | 0) == 0) {
  43701.           HEAP[$data_i_i_i77_i] = -1;
  43702.         }
  43703.         var $999 = HEAP[$data_i_i_i77_i];
  43704.         if ((HEAP[HEAP[$face_addr_i2_i_i_i] + 72 | 0] | 0) == 0) {
  43705.           break;
  43706.         }
  43707.         do {
  43708.           if (($999 | 0) != 0) {
  43709.             if ((HEAP[$data_i_i_i77_i] | 0) == -1) {
  43710.               break;
  43711.             }
  43712.             if ((HEAP[$data_i_i_i77_i] | 0) == 1) {
  43713.               break;
  43714.             }
  43715.             HEAP[$data_addr_i_i_i_i76_i] = HEAP[$data_i_i_i77_i];
  43716.             __Z21_hb_ot_layout_destroyP14hb_ot_layout_t(HEAP[$data_addr_i_i_i_i76_i]);
  43717.           }
  43718.         } while (0);
  43719.         var $1010 = HEAP[HEAP[$face_addr_i2_i_i_i] + 72 | 0];
  43720.         HEAP[$data_i_i_i77_i] = $1010;
  43721.         if (($1010 | 0) != 0) {
  43722.           label = 602;
  43723.           break L826;
  43724.         }
  43725.       }
  43726.       HEAP[HEAP[$face_addr_i2_i_i_i] + 72 | 0] = $999;
  43727.       if ((HEAP[$data_i_i_i77_i] | 0) != 0) {
  43728.         label = 602;
  43729.         break;
  43730.       }
  43731.       label = 603;
  43732.       break;
  43733.     }
  43734.   } while (0);
  43735.   do {
  43736.     if (label == 602) {
  43737.       if (!((HEAP[$data_i_i_i77_i] | 0) == -1 ^ 1)) {
  43738.         label = 603;
  43739.         break;
  43740.       }
  43741.       HEAP[$retval_i_i_i_i80_i] = HEAP[HEAP[HEAP[$face_addr_i_i_i_i81_i] + 72 | 0] + 20 | 0];
  43742.       break;
  43743.     }
  43744.   } while (0);
  43745.   if (label == 603) {
  43746.     HEAP[$X_addr_i_i_i_i_i_i79_i] = 111704;
  43747.     HEAP[$retval_i_i_i_i80_i] = HEAP[$X_addr_i_i_i_i_i_i79_i];
  43748.   }
  43749.   var $1029 = HEAP[$retval_i_i_i_i80_i];
  43750.   HEAP[$X_addr_i_i_i_i_i78_i] = 111704;
  43751.   if (($1029 | 0) != (HEAP[$X_addr_i_i_i_i_i78_i] | 0)) {
  43752.     HEAP[$i_i18_i_i] = 0;
  43753.     var $1039 = HEAP[$c_addr_i16_i_i];
  43754.     L849 : do {
  43755.       if (HEAP[$i_i18_i_i] >>> 0 < HEAP[$count_i17_i_i] >>> 0) {
  43756.         var $1054 = $1039;
  43757.         while (1) {
  43758.           var $1054;
  43759.           var $1060 = HEAP[HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i18_i_i] * 20 & -1) | 0];
  43760.           var $x_offset_i31_i_i = HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i18_i_i] * 20 & -1) + 8 | 0;
  43761.           var $y_offset_i34_i_i = HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i18_i_i] * 20 & -1) + 12 | 0;
  43762.           HEAP[$this_addr_i_i9_i_i] = HEAP[$1054 + 4 | 0];
  43763.           HEAP[$glyph_addr_i_i10_i_i] = $1060;
  43764.           HEAP[$direction_addr_i_i11_i_i] = 4;
  43765.           HEAP[$x_addr_i_i12_i_i] = $x_offset_i31_i_i;
  43766.           HEAP[$y_addr_i_i13_i_i] = $y_offset_i34_i_i;
  43767.           __ZN9hb_font_t30get_glyph_origin_for_directionEj14hb_direction_tPiS1_(HEAP[$this_addr_i_i9_i_i], HEAP[$glyph_addr_i_i10_i_i], HEAP[$direction_addr_i_i11_i_i], $origin_x_i_i14_i_i, $origin_y_i_i15_i_i);
  43768.           var $1072 = HEAP[$x_addr_i_i12_i_i];
  43769.           HEAP[$1072] = HEAP[$1072] + HEAP[$origin_x_i_i14_i_i] | 0;
  43770.           var $1075 = HEAP[$y_addr_i_i13_i_i];
  43771.           HEAP[$1075] = HEAP[$1075] + HEAP[$origin_y_i_i15_i_i] | 0;
  43772.           HEAP[$i_i18_i_i] = HEAP[$i_i18_i_i] + 1 | 0;
  43773.           var $1080 = HEAP[$c_addr_i16_i_i];
  43774.           if (HEAP[$i_i18_i_i] >>> 0 < HEAP[$count_i17_i_i] >>> 0) {
  43775.             var $1054 = $1080;
  43776.           } else {
  43777.             var $_lcssa_i39_i_i = $1080;
  43778.             break L849;
  43779.           }
  43780.         }
  43781.       } else {
  43782.         var $_lcssa_i39_i_i = $1039;
  43783.       }
  43784.     } while (0);
  43785.     var $_lcssa_i39_i_i;
  43786.     var $1083 = HEAP[HEAP[$c_addr_i16_i_i] + 4 | 0];
  43787.     var $1085 = HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0];
  43788.     HEAP[$this_addr_i5_i_i_i] = HEAP[$_lcssa_i39_i_i | 0];
  43789.     HEAP[$font_addr_i_i7_i_i] = $1083;
  43790.     HEAP[$buffer_addr_i_i8_i_i] = $1085;
  43791.     var $this1_i6_i41_i_i = HEAP[$this_addr_i5_i_i_i];
  43792.     __ZNK11hb_ot_map_t8positionEPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($this1_i6_i41_i_i + 24 | 0, $this1_i6_i41_i_i, HEAP[$font_addr_i_i7_i_i], HEAP[$buffer_addr_i_i8_i_i]);
  43793.     HEAP[$i9_i_i_i] = 0;
  43794.     L854 : do {
  43795.       if (HEAP[$i9_i_i_i] >>> 0 < HEAP[$count_i17_i_i] >>> 0) {
  43796.         while (1) {
  43797.           var $1116 = HEAP[HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i9_i_i_i] * 20 & -1) | 0];
  43798.           var $x_offset21_i_i_i = HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 104 | 0] + (HEAP[$i9_i_i_i] * 20 & -1) + 8 | 0;
  43799.           var $y_offset25_i_i_i = HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 104 | 0] + (HEAP[$i9_i_i_i] * 20 & -1) + 12 | 0;
  43800.           HEAP[$this_addr_i7_i_i_i] = HEAP[HEAP[$c_addr_i16_i_i] + 4 | 0];
  43801.           HEAP[$glyph_addr_i8_i_i_i] = $1116;
  43802.           HEAP[$direction_addr_i9_i_i_i] = 4;
  43803.           HEAP[$x_addr_i10_i_i_i] = $x_offset21_i_i_i;
  43804.           HEAP[$y_addr_i11_i_i_i] = $y_offset25_i_i_i;
  43805.           __ZN9hb_font_t30get_glyph_origin_for_directionEj14hb_direction_tPiS1_(HEAP[$this_addr_i7_i_i_i], HEAP[$glyph_addr_i8_i_i_i], HEAP[$direction_addr_i9_i_i_i], $origin_x_i12_i_i_i, $origin_y_i13_i_i_i);
  43806.           var $1128 = HEAP[$x_addr_i10_i_i_i];
  43807.           HEAP[$1128] = HEAP[$1128] - HEAP[$origin_x_i12_i_i_i] | 0;
  43808.           var $1131 = HEAP[$y_addr_i11_i_i_i];
  43809.           HEAP[$1131] = HEAP[$1131] - HEAP[$origin_y_i13_i_i_i] | 0;
  43810.           HEAP[$i9_i_i_i] = HEAP[$i9_i_i_i] + 1 | 0;
  43811.           if (HEAP[$i9_i_i_i] >>> 0 >= HEAP[$count_i17_i_i] >>> 0) {
  43812.             break L854;
  43813.           }
  43814.         }
  43815.       }
  43816.     } while (0);
  43817.     $ret_i_i_i = 1;
  43818.   }
  43819.   L860 : do {
  43820.     if ((HEAP[HEAP[HEAP[HEAP[$c_addr_i16_i_i] | 0] + 20 | 0] + 44 | 0] | 0) == 1) {
  43821.       HEAP[$i30_i_i_i] = 0;
  43822.       if (HEAP[$i30_i_i_i] >>> 0 >= HEAP[$count_i17_i_i] >>> 0) {
  43823.         break;
  43824.       }
  43825.       while (1) {
  43826.         HEAP[$info_addr_i_i_i_i] = HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 96 | 0] + (HEAP[$i30_i_i_i] * 20 & -1) | 0;
  43827.         if ((HEAP[HEAP[$info_addr_i_i_i_i] + 16 | 0] & 31 | 0) == 12) {
  43828.           HEAP[HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 104 | 0] + (HEAP[$i30_i_i_i] * 20 & -1) | 0] = 0;
  43829.           HEAP[HEAP[HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0] + 104 | 0] + (HEAP[$i30_i_i_i] * 20 & -1) + 4 | 0] = 0;
  43830.         }
  43831.         HEAP[$i30_i_i_i] = HEAP[$i30_i_i_i] + 1 | 0;
  43832.         if (HEAP[$i30_i_i_i] >>> 0 >= HEAP[$count_i17_i_i] >>> 0) {
  43833.           break L860;
  43834.         }
  43835.       }
  43836.     }
  43837.   } while (0);
  43838.   var $1164 = HEAP[HEAP[$c_addr_i16_i_i] + 12 | 0];
  43839.   HEAP[$font_addr_i16_i_i_i] = HEAP[HEAP[$c_addr_i16_i_i] + 4 | 0];
  43840.   HEAP[$buffer_addr_i17_i_i_i] = $1164;
  43841.   var $1168 = HEAP[$buffer_addr_i17_i_i_i];
  43842.   HEAP[$font_addr_i_i_i2_i_i] = HEAP[$font_addr_i16_i_i_i];
  43843.   HEAP[$buffer_addr_i_i_i3_i_i] = $1168;
  43844.   HEAP[$buffer_addr_i_i_i_i_i_i] = HEAP[$buffer_addr_i_i_i3_i_i];
  43845.   HEAP[$length_addr_i_i_i_i_i_i] = $len_i_i_i4_i_i;
  43846.   do {
  43847.     if (HEAP[HEAP[$buffer_addr_i_i_i_i_i_i] + 78 | 0] & 1) {
  43848.       label = 623;
  43849.     } else {
  43850.       HEAP[$this_addr_i_i_i_i_i_i75_i] = HEAP[$buffer_addr_i_i_i_i_i_i];
  43851.       var $this1_i_i_i_i_i_i176_i = HEAP[$this_addr_i_i_i_i_i_i75_i];
  43852.       HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i176_i;
  43853.       HEAP[$this_addr_i_i_i_i_i_i_i1_i_i] = HEAP[$obj_addr_i_i_i_i_i_i_i_i] | 0;
  43854.       HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i_i1_i_i] | 0;
  43855.       if ((HEAP[HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] | 0] | 0) != -1) {
  43856.         HEAP[$this1_i_i_i_i_i_i176_i + 77 | 0] = 0;
  43857.         HEAP[$this1_i_i_i_i_i_i176_i + 78 | 0] = 1;
  43858.         HEAP[$this1_i_i_i_i_i_i176_i + 88 | 0] = 0;
  43859.         HEAP[$this1_i_i_i_i_i_i176_i + 100 | 0] = HEAP[$this1_i_i_i_i_i_i176_i + 96 | 0];
  43860.         var $1193 = HEAP[$this1_i_i_i_i_i_i176_i + 104 | 0];
  43861.         var $mul_i_i_i_i_i_i_i = HEAP[$this1_i_i_i_i_i_i176_i + 84 | 0] * 20 & -1;
  43862.         for (var $$dest = $1193, $$stop = $$dest + $mul_i_i_i_i_i_i_i; $$dest < $$stop; $$dest++) {
  43863.           HEAP[$$dest] = 0;
  43864.         }
  43865.       }
  43866.       if ((HEAP[$length_addr_i_i_i_i_i_i] | 0) != 0) {
  43867.         label = 623;
  43868.         break;
  43869.       } else {
  43870.         break;
  43871.       }
  43872.     }
  43873.   } while (0);
  43874.   if (label == 623) {
  43875.     HEAP[HEAP[$length_addr_i_i_i_i_i_i]] = HEAP[HEAP[$buffer_addr_i_i_i_i_i_i] + 84 | 0];
  43876.   }
  43877.   HEAP[$pos_i_i_i5_i_i] = HEAP[HEAP[$buffer_addr_i_i_i_i_i_i] + 104 | 0];
  43878.   HEAP[$direction_i_i_i_i_i] = HEAP[HEAP[$buffer_addr_i_i_i3_i_i] + 48 | 0];
  43879.   HEAP[$i_i_i_i6_i_i] = 0;
  43880.   L877 : do {
  43881.     if (HEAP[$i_i_i_i6_i_i] >>> 0 < HEAP[$len_i_i_i4_i_i] >>> 0) {
  43882.       while (1) {
  43883.         __ZN2OTL24fix_cursive_minor_offsetEP19hb_glyph_position_tj14hb_direction_t(HEAP[$pos_i_i_i5_i_i], HEAP[$i_i_i_i6_i_i], HEAP[$direction_i_i_i_i_i]);
  43884.         HEAP[$i_i_i_i6_i_i] = HEAP[$i_i_i_i6_i_i] + 1 | 0;
  43885.         if (HEAP[$i_i_i_i6_i_i] >>> 0 >= HEAP[$len_i_i_i4_i_i] >>> 0) {
  43886.           break L877;
  43887.         }
  43888.       }
  43889.     }
  43890.   } while (0);
  43891.   HEAP[$i2_i_i_i_i_i] = 0;
  43892.   L881 : do {
  43893.     if (HEAP[$i2_i_i_i_i_i] >>> 0 < HEAP[$len_i_i_i4_i_i] >>> 0) {
  43894.       while (1) {
  43895.         var $1228 = HEAP[$i2_i_i_i_i_i];
  43896.         var $1229 = HEAP[$direction_i_i_i_i_i];
  43897.         HEAP[$pos_addr_i_i_i_i_i_i] = HEAP[$pos_i_i_i5_i_i];
  43898.         HEAP[$i_addr_i_i_i_i_i_i] = $1228;
  43899.         HEAP[$direction_addr_i_i_i_i_i_i] = $1229;
  43900.         L885 : do {
  43901.           if (HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 16 | 0] << 16 >> 16 != 0) {
  43902.             HEAP[$j_i_i_i_i_i_i] = HEAP[$i_addr_i_i_i_i_i_i] - (HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 16 | 0] & 65535) | 0;
  43903.             var $x_offset8_i_i_i_i_i_i = HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 8 | 0;
  43904.             HEAP[$x_offset8_i_i_i_i_i_i] = HEAP[$x_offset8_i_i_i_i_i_i] + HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$j_i_i_i_i_i_i] * 20 & -1) + 8 | 0] | 0;
  43905.             var $y_offset11_i_i_i_i_i_i = HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 12 | 0;
  43906.             HEAP[$y_offset11_i_i_i_i_i_i] = HEAP[$y_offset11_i_i_i_i_i_i] + HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$j_i_i_i_i_i_i] * 20 & -1) + 12 | 0] | 0;
  43907.             var $1250 = HEAP[$j_i_i_i_i_i_i];
  43908.             if ((HEAP[$direction_addr_i_i_i_i_i_i] & -3 | 0) == 4) {
  43909.               HEAP[$k_i_i_i_i_i_i] = $1250;
  43910.               if (HEAP[$k_i_i_i_i_i_i] >>> 0 >= HEAP[$i_addr_i_i_i_i_i_i] >>> 0) {
  43911.                 break;
  43912.               }
  43913.               while (1) {
  43914.                 var $x_offset17_i_i_i_i_i_i = HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 8 | 0;
  43915.                 HEAP[$x_offset17_i_i_i_i_i_i] = HEAP[$x_offset17_i_i_i_i_i_i] - HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$k_i_i_i_i_i_i] * 20 & -1) | 0] | 0;
  43916.                 var $y_offset21_i_i_i_i_i_i = HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 12 | 0;
  43917.                 HEAP[$y_offset21_i_i_i_i_i_i] = HEAP[$y_offset21_i_i_i_i_i_i] - HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$k_i_i_i_i_i_i] * 20 & -1) + 4 | 0] | 0;
  43918.                 HEAP[$k_i_i_i_i_i_i] = HEAP[$k_i_i_i_i_i_i] + 1 | 0;
  43919.                 if (HEAP[$k_i_i_i_i_i_i] >>> 0 >= HEAP[$i_addr_i_i_i_i_i_i] >>> 0) {
  43920.                   break L885;
  43921.                 }
  43922.               }
  43923.             } else {
  43924.               HEAP[$k23_i_i_i_i_i_i] = $1250 + 1 | 0;
  43925.               if (HEAP[$k23_i_i_i_i_i_i] >>> 0 >= (HEAP[$i_addr_i_i_i_i_i_i] + 1 | 0) >>> 0) {
  43926.                 break;
  43927.               }
  43928.               while (1) {
  43929.                 var $x_offset32_i_i_i_i_i_i = HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 8 | 0;
  43930.                 HEAP[$x_offset32_i_i_i_i_i_i] = HEAP[$x_offset32_i_i_i_i_i_i] + HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$k23_i_i_i_i_i_i] * 20 & -1) | 0] | 0;
  43931.                 var $y_offset37_i_i_i_i_i_i = HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$i_addr_i_i_i_i_i_i] * 20 & -1) + 12 | 0;
  43932.                 HEAP[$y_offset37_i_i_i_i_i_i] = HEAP[$y_offset37_i_i_i_i_i_i] + HEAP[HEAP[$pos_addr_i_i_i_i_i_i] + (HEAP[$k23_i_i_i_i_i_i] * 20 & -1) + 4 | 0] | 0;
  43933.                 HEAP[$k23_i_i_i_i_i_i] = HEAP[$k23_i_i_i_i_i_i] + 1 | 0;
  43934.                 if (HEAP[$k23_i_i_i_i_i_i] >>> 0 >= (HEAP[$i_addr_i_i_i_i_i_i] + 1 | 0) >>> 0) {
  43935.                   break L885;
  43936.                 }
  43937.               }
  43938.             }
  43939.           }
  43940.         } while (0);
  43941.         HEAP[$i2_i_i_i_i_i] = HEAP[$i2_i_i_i_i_i] + 1 | 0;
  43942.         if (HEAP[$i2_i_i_i_i_i] >>> 0 >= HEAP[$len_i_i_i4_i_i] >>> 0) {
  43943.           break L881;
  43944.         }
  43945.       }
  43946.     }
  43947.   } while (0);
  43948.   __ZN11hb_buffer_t14deallocate_varEjjPKc(HEAP[$buffer_addr_i_i_i3_i_i], 2, 1, 103320);
  43949.   __ZN11hb_buffer_t14deallocate_varEjjPKc(HEAP[$buffer_addr_i_i_i3_i_i], 3, 1, 103304);
  43950.   __ZN11hb_buffer_t14deallocate_varEjjPKc(HEAP[$buffer_addr_i_i_i3_i_i], 0, 2, 103288);
  43951.   var $lnot_i_i = $ret_i_i_i & 1 ^ 1;
  43952.   HEAP[$fallback_i_i] = $lnot_i_i & 1;
  43953.   do {
  43954.     if ($lnot_i_i) {
  43955.       if (!(HEAP[HEAP[HEAP[HEAP[$c_addr_i94_i] | 0] + 20 | 0] + 48 | 0] & 1)) {
  43956.         break;
  43957.       }
  43958.       __Z30_hb_ot_shape_fallback_positionPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t(HEAP[HEAP[$c_addr_i94_i] | 0], HEAP[HEAP[$c_addr_i94_i] + 4 | 0], HEAP[HEAP[$c_addr_i94_i] + 12 | 0]);
  43959.     }
  43960.   } while (0);
  43961.   if ((HEAP[HEAP[HEAP[$c_addr_i94_i] + 12 | 0] + 48 | 0] & -3 | 0) == 5) {
  43962.     HEAP[$buffer_addr_i_i74_i] = HEAP[HEAP[$c_addr_i94_i] + 12 | 0];
  43963.     HEAP[$this_addr_i_i64_i_i] = HEAP[$buffer_addr_i_i74_i];
  43964.     var $this1_i_i65_i_i = HEAP[$this_addr_i_i64_i_i];
  43965.     if ((HEAP[$this1_i_i65_i_i + 84 | 0] | 0) != 0) {
  43966.       __ZN11hb_buffer_t13reverse_rangeEjj($this1_i_i65_i_i, 0, HEAP[$this1_i_i65_i_i + 84 | 0]);
  43967.     }
  43968.   }
  43969.   if ((HEAP[$fallback_i_i] | 0) != 0) {
  43970.     __Z26_hb_ot_shape_fallback_kernPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t(HEAP[HEAP[$c_addr_i94_i] | 0], HEAP[HEAP[$c_addr_i94_i] + 4 | 0], HEAP[HEAP[$c_addr_i94_i] + 12 | 0]);
  43971.   }
  43972.   HEAP[$c_addr_i197_i] = HEAP[$c_addr_i];
  43973.   if ((HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 68 | 0] & 4 | 0) != 0) {
  43974.     var $1403 = $c_addr_i197_i;
  43975.     var $1404 = $space_i_i;
  43976.     var $1405 = $count_i198_i;
  43977.     var $1406 = $i_i199_i;
  43978.     var $1407 = HEAP[$c_addr_i];
  43979.     var $buffer9_i = $1407 + 12 | 0;
  43980.     var $1408 = HEAP[$buffer9_i];
  43981.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1408, 5, 1, 103104);
  43982.     var $1409 = HEAP[$c_addr_i];
  43983.     var $buffer10_i = $1409 + 12 | 0;
  43984.     var $1410 = HEAP[$buffer10_i];
  43985.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1410, 4, 1, 103864);
  43986.     var $1411 = HEAP[$c_addr_i];
  43987.     var $target_direction11_i = $1411 + 24 | 0;
  43988.     var $1412 = HEAP[$target_direction11_i];
  43989.     var $1413 = HEAP[$c_addr_i];
  43990.     var $buffer12_i = $1413 + 12 | 0;
  43991.     var $1414 = HEAP[$buffer12_i];
  43992.     var $props13_i = $1414 + 48 | 0;
  43993.     var $direction14_i = $props13_i | 0;
  43994.     HEAP[$direction14_i] = $1412;
  43995.     var $1415 = HEAP[$c_addr_i];
  43996.     var $buffer15_i = $1415 + 12 | 0;
  43997.     var $1416 = HEAP[$buffer15_i];
  43998.     var $1417 = $this_addr_i1_i;
  43999.     HEAP[$this_addr_i1_i] = $1416;
  44000.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  44001.     var $allocated_var_bytes_i3_i = $this1_i2_i + 112 | 0;
  44002.     var $1418 = $allocated_var_bytes_i3_i;
  44003.     for (var $$dest = $1418, $$stop = $$dest + 40; $$dest < $$stop; $$dest++) {
  44004.       HEAP[$$dest] = 0;
  44005.     }
  44006.     var $1419 = $this_addr_i1_i;
  44007.     var $1420 = $c_addr_i;
  44008.     STACKTOP = __stackBase__;
  44009.     return 1;
  44010.   }
  44011.   HEAP[$space_i_i] = 0;
  44012.   HEAP[$count_i198_i] = HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 84 | 0];
  44013.   HEAP[$i_i199_i] = 0;
  44014.   if (HEAP[$i_i199_i] >>> 0 >= HEAP[$count_i198_i] >>> 0) {
  44015.     var $1403 = $c_addr_i197_i;
  44016.     var $1404 = $space_i_i;
  44017.     var $1405 = $count_i198_i;
  44018.     var $1406 = $i_i199_i;
  44019.     var $1407 = HEAP[$c_addr_i];
  44020.     var $buffer9_i = $1407 + 12 | 0;
  44021.     var $1408 = HEAP[$buffer9_i];
  44022.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1408, 5, 1, 103104);
  44023.     var $1409 = HEAP[$c_addr_i];
  44024.     var $buffer10_i = $1409 + 12 | 0;
  44025.     var $1410 = HEAP[$buffer10_i];
  44026.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1410, 4, 1, 103864);
  44027.     var $1411 = HEAP[$c_addr_i];
  44028.     var $target_direction11_i = $1411 + 24 | 0;
  44029.     var $1412 = HEAP[$target_direction11_i];
  44030.     var $1413 = HEAP[$c_addr_i];
  44031.     var $buffer12_i = $1413 + 12 | 0;
  44032.     var $1414 = HEAP[$buffer12_i];
  44033.     var $props13_i = $1414 + 48 | 0;
  44034.     var $direction14_i = $props13_i | 0;
  44035.     HEAP[$direction14_i] = $1412;
  44036.     var $1415 = HEAP[$c_addr_i];
  44037.     var $buffer15_i = $1415 + 12 | 0;
  44038.     var $1416 = HEAP[$buffer15_i];
  44039.     var $1417 = $this_addr_i1_i;
  44040.     HEAP[$this_addr_i1_i] = $1416;
  44041.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  44042.     var $allocated_var_bytes_i3_i = $this1_i2_i + 112 | 0;
  44043.     var $1418 = $allocated_var_bytes_i3_i;
  44044.     for (var $$dest = $1418, $$stop = $$dest + 40; $$dest < $$stop; $$dest++) {
  44045.       HEAP[$$dest] = 0;
  44046.     }
  44047.     var $1419 = $this_addr_i1_i;
  44048.     var $1420 = $c_addr_i;
  44049.     STACKTOP = __stackBase__;
  44050.     return 1;
  44051.   }
  44052.   L915 : while (1) {
  44053.     HEAP[$info_addr_i_i196_i] = HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i199_i] * 20 & -1) | 0;
  44054.     do {
  44055.       if ((HEAP[HEAP[$info_addr_i_i196_i] + 15 | 0] & 16 | 0) == 0) {
  44056.         HEAP[$info_addr_i1_i_i] = HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i199_i] * 20 & -1) | 0;
  44057.         if ((HEAP[HEAP[$info_addr_i1_i_i] + 16 | 0] & 128 | 0) == 0) {
  44058.           break;
  44059.         }
  44060.         if ((HEAP[$space_i_i] | 0) == 0) {
  44061.           HEAP[$this_addr_i_i192_i] = HEAP[HEAP[$c_addr_i197_i] + 4 | 0];
  44062.           HEAP[$unicode_addr_i_i193_i] = 32;
  44063.           HEAP[$variation_selector_addr_i_i194_i] = 0;
  44064.           HEAP[$glyph_addr_i_i195_i] = $space_i_i;
  44065.           var $this1_i_i221_i = HEAP[$this_addr_i_i192_i];
  44066.           HEAP[HEAP[$glyph_addr_i_i195_i]] = 0;
  44067.           if (!((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i221_i + 72 | 0] + 48 | 0]]($this1_i_i221_i, HEAP[$this1_i_i221_i + 76 | 0], HEAP[$unicode_addr_i_i193_i], HEAP[$variation_selector_addr_i_i194_i], HEAP[$glyph_addr_i_i195_i], HEAP[HEAP[$this1_i_i221_i + 72 | 0] + 92 | 0]) | 0) != 0 & (HEAP[$space_i_i] | 0) != 0)) {
  44068.             label = 656;
  44069.             break L915;
  44070.           }
  44071.         }
  44072.         HEAP[HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 96 | 0] + (HEAP[$i_i199_i] * 20 & -1) | 0] = HEAP[$space_i_i];
  44073.         HEAP[HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i199_i] * 20 & -1) | 0] = 0;
  44074.         HEAP[HEAP[HEAP[HEAP[$c_addr_i197_i] + 12 | 0] + 104 | 0] + (HEAP[$i_i199_i] * 20 & -1) + 4 | 0] = 0;
  44075.       }
  44076.     } while (0);
  44077.     HEAP[$i_i199_i] = HEAP[$i_i199_i] + 1 | 0;
  44078.     if (HEAP[$i_i199_i] >>> 0 >= HEAP[$count_i198_i] >>> 0) {
  44079.       label = 657;
  44080.       break;
  44081.     }
  44082.   }
  44083.   if (label == 656) {
  44084.     var $1403 = $c_addr_i197_i;
  44085.     var $1404 = $space_i_i;
  44086.     var $1405 = $count_i198_i;
  44087.     var $1406 = $i_i199_i;
  44088.     var $1407 = HEAP[$c_addr_i];
  44089.     var $buffer9_i = $1407 + 12 | 0;
  44090.     var $1408 = HEAP[$buffer9_i];
  44091.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1408, 5, 1, 103104);
  44092.     var $1409 = HEAP[$c_addr_i];
  44093.     var $buffer10_i = $1409 + 12 | 0;
  44094.     var $1410 = HEAP[$buffer10_i];
  44095.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1410, 4, 1, 103864);
  44096.     var $1411 = HEAP[$c_addr_i];
  44097.     var $target_direction11_i = $1411 + 24 | 0;
  44098.     var $1412 = HEAP[$target_direction11_i];
  44099.     var $1413 = HEAP[$c_addr_i];
  44100.     var $buffer12_i = $1413 + 12 | 0;
  44101.     var $1414 = HEAP[$buffer12_i];
  44102.     var $props13_i = $1414 + 48 | 0;
  44103.     var $direction14_i = $props13_i | 0;
  44104.     HEAP[$direction14_i] = $1412;
  44105.     var $1415 = HEAP[$c_addr_i];
  44106.     var $buffer15_i = $1415 + 12 | 0;
  44107.     var $1416 = HEAP[$buffer15_i];
  44108.     var $1417 = $this_addr_i1_i;
  44109.     HEAP[$this_addr_i1_i] = $1416;
  44110.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  44111.     var $allocated_var_bytes_i3_i = $this1_i2_i + 112 | 0;
  44112.     var $1418 = $allocated_var_bytes_i3_i;
  44113.     for (var $$dest = $1418, $$stop = $$dest + 40; $$dest < $$stop; $$dest++) {
  44114.       HEAP[$$dest] = 0;
  44115.     }
  44116.     var $1419 = $this_addr_i1_i;
  44117.     var $1420 = $c_addr_i;
  44118.     STACKTOP = __stackBase__;
  44119.     return 1;
  44120.   } else if (label == 657) {
  44121.     var $1403 = $c_addr_i197_i;
  44122.     var $1404 = $space_i_i;
  44123.     var $1405 = $count_i198_i;
  44124.     var $1406 = $i_i199_i;
  44125.     var $1407 = HEAP[$c_addr_i];
  44126.     var $buffer9_i = $1407 + 12 | 0;
  44127.     var $1408 = HEAP[$buffer9_i];
  44128.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1408, 5, 1, 103104);
  44129.     var $1409 = HEAP[$c_addr_i];
  44130.     var $buffer10_i = $1409 + 12 | 0;
  44131.     var $1410 = HEAP[$buffer10_i];
  44132.     __ZN11hb_buffer_t14deallocate_varEjjPKc($1410, 4, 1, 103864);
  44133.     var $1411 = HEAP[$c_addr_i];
  44134.     var $target_direction11_i = $1411 + 24 | 0;
  44135.     var $1412 = HEAP[$target_direction11_i];
  44136.     var $1413 = HEAP[$c_addr_i];
  44137.     var $buffer12_i = $1413 + 12 | 0;
  44138.     var $1414 = HEAP[$buffer12_i];
  44139.     var $props13_i = $1414 + 48 | 0;
  44140.     var $direction14_i = $props13_i | 0;
  44141.     HEAP[$direction14_i] = $1412;
  44142.     var $1415 = HEAP[$c_addr_i];
  44143.     var $buffer15_i = $1415 + 12 | 0;
  44144.     var $1416 = HEAP[$buffer15_i];
  44145.     var $1417 = $this_addr_i1_i;
  44146.     HEAP[$this_addr_i1_i] = $1416;
  44147.     var $this1_i2_i = HEAP[$this_addr_i1_i];
  44148.     var $allocated_var_bytes_i3_i = $this1_i2_i + 112 | 0;
  44149.     var $1418 = $allocated_var_bytes_i3_i;
  44150.     for (var $$dest = $1418, $$stop = $$dest + 40; $$dest < $$stop; $$dest++) {
  44151.       HEAP[$$dest] = 0;
  44152.     }
  44153.     var $1419 = $this_addr_i1_i;
  44154.     var $1420 = $c_addr_i;
  44155.     STACKTOP = __stackBase__;
  44156.     return 1;
  44157.   }
  44158. }
  44159. function __ZN11hb_ot_map_t13feature_map_t3cmpEPKS0_S2_($a, $b) {
  44160.   var $a_addr;
  44161.   var $b_addr;
  44162.   $a_addr = $a;
  44163.   $b_addr = $b;
  44164.   if (HEAP[$a_addr | 0] >>> 0 < HEAP[$b_addr | 0] >>> 0) {
  44165.     var $cond5 = -1;
  44166.     var $cond5;
  44167.     return $cond5;
  44168.   }
  44169.   var $cond5 = HEAP[$a_addr | 0] >>> 0 > HEAP[$b_addr | 0] >>> 0 ? 1 : 0;
  44170.   var $cond5;
  44171.   return $cond5;
  44172. }
  44173. function __ZNK11hb_ot_map_t10get_1_maskEj($this, $feature_tag) {
  44174.   var __stackBase__ = STACKTOP;
  44175.   STACKTOP = STACKTOP + 12 | 0;
  44176.   var $this_addr_i = __stackBase__;
  44177.   var $key_addr_i = __stackBase__ + 4;
  44178.   var $feature_tag_addr = __stackBase__ + 8;
  44179.   var $map;
  44180.   HEAP[$feature_tag_addr] = $feature_tag;
  44181.   HEAP[$this_addr_i] = $this + 16 | 0;
  44182.   HEAP[$key_addr_i] = $feature_tag_addr;
  44183.   var $this1_i = HEAP[$this_addr_i];
  44184.   $map = _bsearch(HEAP[$key_addr_i], HEAP[$this1_i + 8 | 0], HEAP[$this1_i | 0], 36, 6);
  44185.   if (($map | 0) == 0) {
  44186.     var $cond = 0;
  44187.     var $cond;
  44188.     STACKTOP = __stackBase__;
  44189.     return $cond;
  44190.   }
  44191.   var $cond = HEAP[$map + 28 | 0];
  44192.   var $cond;
  44193.   STACKTOP = __stackBase__;
  44194.   return $cond;
  44195. }
  44196. function __Z32_hb_glyph_info_set_unicode_propsP15hb_glyph_info_tP18hb_unicode_funcs_t($info, $unicode) {
  44197.   var __stackBase__ = STACKTOP;
  44198.   STACKTOP = STACKTOP + 24 | 0;
  44199.   var $this_addr_i_i = __stackBase__;
  44200.   var $unicode_addr_i_i = __stackBase__ + 4;
  44201.   var $this_addr_i1 = __stackBase__ + 8;
  44202.   var $unicode_addr_i2 = __stackBase__ + 12;
  44203.   var $this_addr_i = __stackBase__ + 16;
  44204.   var $unicode_addr_i = __stackBase__ + 20;
  44205.   var $info_addr;
  44206.   var $unicode_addr;
  44207.   $info_addr = $info;
  44208.   $unicode_addr = $unicode;
  44209.   var $2 = HEAP[$info_addr | 0];
  44210.   HEAP[$this_addr_i] = $unicode_addr;
  44211.   HEAP[$unicode_addr_i] = $2;
  44212.   var $this1_i = HEAP[$this_addr_i];
  44213.   var $or = FUNCTION_TABLE[HEAP[$this1_i + 60 | 0]]($this1_i, HEAP[$unicode_addr_i], HEAP[$this1_i + 92 | 0]) | ((__ZN18hb_unicode_funcs_t20is_default_ignorableEj($unicode_addr, HEAP[$info_addr | 0]) | 0) != 0 ? 128 : 0);
  44214.   HEAP[$info_addr + 16 | 0] = ($or | ((HEAP[$info_addr | 0] | 0) == 8204 ? 64 : 0) | ((HEAP[$info_addr | 0] | 0) == 8205 ? 32 : 0)) & 255;
  44215.   var $20 = HEAP[$info_addr | 0];
  44216.   HEAP[$this_addr_i1] = $unicode_addr;
  44217.   HEAP[$unicode_addr_i2] = $20;
  44218.   var $this1_i3 = HEAP[$this_addr_i1];
  44219.   if ((HEAP[$unicode_addr_i2] | 0) == 4151) {
  44220.     HEAP[$unicode_addr_i2] = 4154;
  44221.   }
  44222.   var $24 = HEAP[$unicode_addr_i2];
  44223.   HEAP[$this_addr_i_i] = $this1_i3;
  44224.   HEAP[$unicode_addr_i_i] = $24;
  44225.   var $this1_i_i = HEAP[$this_addr_i_i];
  44226.   var $arrayidx_i = FUNCTION_TABLE[HEAP[$this1_i_i + 52 | 0]]($this1_i_i, HEAP[$unicode_addr_i_i], HEAP[$this1_i_i + 84 | 0]) + 104728 | 0;
  44227.   HEAP[$info_addr + 17 | 0] = HEAP[$arrayidx_i] & 255;
  44228.   STACKTOP = __stackBase__;
  44229.   return;
  44230. }
  44231. function __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($this, $tag) {
  44232.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($this, $tag, 1, 1);
  44233.   return;
  44234. }
  44235. function __ZL23collect_features_arabicP21hb_ot_shape_planner_t($plan) {
  44236.   var __stackBase__ = STACKTOP;
  44237.   STACKTOP = STACKTOP + 40 | 0;
  44238.   var $this_addr_i7 = __stackBase__;
  44239.   var $pause_func_addr_i8 = __stackBase__ + 4;
  44240.   var $this_addr_i4 = __stackBase__ + 8;
  44241.   var $pause_func_addr_i5 = __stackBase__ + 12;
  44242.   var $l_addr_i = __stackBase__ + 16;
  44243.   var $r_addr_i = __stackBase__ + 20;
  44244.   var $this_addr_i1 = __stackBase__ + 24;
  44245.   var $pause_func_addr_i2 = __stackBase__ + 28;
  44246.   var $this_addr_i = __stackBase__ + 32;
  44247.   var $pause_func_addr_i = __stackBase__ + 36;
  44248.   var $map;
  44249.   var $i;
  44250.   $map = $plan + 28 | 0;
  44251.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1667460464);
  44252.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1819239276);
  44253.   HEAP[$this_addr_i] = $map;
  44254.   HEAP[$pause_func_addr_i] = 0;
  44255.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i], 0, HEAP[$pause_func_addr_i]);
  44256.   $i = 0;
  44257.   var $10 = $map;
  44258.   while (1) {
  44259.     var $10;
  44260.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($10, HEAP[($i << 2) + 132112 | 0], 1, $i >>> 0 < 4 ? 2 : 0);
  44261.     var $inc = $i + 1 | 0;
  44262.     $i = $inc;
  44263.     var $15 = $map;
  44264.     if ($inc >>> 0 < 7) {
  44265.       var $10 = $15;
  44266.     } else {
  44267.       break;
  44268.     }
  44269.   }
  44270.   HEAP[$this_addr_i1] = $15;
  44271.   HEAP[$pause_func_addr_i2] = 0;
  44272.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i1], 0, HEAP[$pause_func_addr_i2]);
  44273.   HEAP[$l_addr_i] = 1;
  44274.   HEAP[$r_addr_i] = 2;
  44275.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($map, 1919707495, 1, HEAP[$r_addr_i] | HEAP[$l_addr_i]);
  44276.   HEAP[$this_addr_i4] = $map;
  44277.   HEAP[$pause_func_addr_i5] = 26;
  44278.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i4], 0, HEAP[$pause_func_addr_i5]);
  44279.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1667329140);
  44280.   HEAP[$this_addr_i7] = $map;
  44281.   HEAP[$pause_func_addr_i8] = 0;
  44282.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i7], 0, HEAP[$pause_func_addr_i8]);
  44283.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1668511592);
  44284.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1684826471);
  44285.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1836279156);
  44286.   STACKTOP = __stackBase__;
  44287.   return;
  44288. }
  44289. function __ZL18data_create_arabicPK18hb_ot_shape_plan_t($plan) {
  44290.   var __stackBase__ = STACKTOP;
  44291.   STACKTOP = STACKTOP + 20 | 0;
  44292.   var $this_addr_i_i = __stackBase__;
  44293.   var $key_addr_i_i = __stackBase__ + 4;
  44294.   var $this_addr_i = __stackBase__ + 8;
  44295.   var $feature_tag_addr_i = __stackBase__ + 12;
  44296.   var $map_i = __stackBase__ + 16;
  44297.   var $retval;
  44298.   var $plan_addr;
  44299.   var $arabic_plan;
  44300.   var $i;
  44301.   $plan_addr = $plan;
  44302.   $arabic_plan = _calloc(1, 40);
  44303.   if (($arabic_plan | 0) == 0) {
  44304.     $retval = 0;
  44305.     var $42 = $retval;
  44306.     STACKTOP = __stackBase__;
  44307.     return $42;
  44308.   }
  44309.   HEAP[$arabic_plan + 32 | 0] = (HEAP[$plan_addr + 4 | 0] | 0) == 1098015074 & 1;
  44310.   $i = 0;
  44311.   while (1) {
  44312.     var $call2 = __ZNK11hb_ot_map_t10get_1_maskEj($plan_addr + 24 | 0, HEAP[($i << 2) + 132112 | 0]);
  44313.     HEAP[($i << 2) + $arabic_plan | 0] = $call2;
  44314.     if ($i >>> 0 < 4) {
  44315.       if (HEAP[$arabic_plan + 32 | 0] & 1) {
  44316.         var $25 = HEAP[($i << 2) + 132112 | 0];
  44317.         HEAP[$this_addr_i] = $plan_addr + 24 | 0;
  44318.         HEAP[$feature_tag_addr_i] = $25;
  44319.         HEAP[$this_addr_i_i] = HEAP[$this_addr_i] + 16 | 0;
  44320.         HEAP[$key_addr_i_i] = $feature_tag_addr_i;
  44321.         var $this1_i_i = HEAP[$this_addr_i_i];
  44322.         var $31 = _bsearch(HEAP[$key_addr_i_i], HEAP[$this1_i_i + 8 | 0], HEAP[$this1_i_i | 0], 36, 6);
  44323.         HEAP[$map_i] = $31;
  44324.         if ((HEAP[$map_i] | 0) != 0) {
  44325.           var $cond_i = HEAP[HEAP[$map_i] + 32 | 0] & 1;
  44326.         } else {
  44327.           var $cond_i = 0;
  44328.         }
  44329.         var $cond_i;
  44330.         var $37 = ($cond_i | 0) != 0;
  44331.       } else {
  44332.         var $37 = 0;
  44333.       }
  44334.       var $37;
  44335.       HEAP[$arabic_plan + 32 | 0] = $37 & 1;
  44336.     }
  44337.     var $inc = $i + 1 | 0;
  44338.     $i = $inc;
  44339.     if ($inc >>> 0 >= 7) {
  44340.       break;
  44341.     }
  44342.   }
  44343.   $retval = $arabic_plan;
  44344.   var $42 = $retval;
  44345.   STACKTOP = __stackBase__;
  44346.   return $42;
  44347. }
  44348. function __ZL19data_destroy_arabicPv($data) {
  44349.   var __stackBase__ = STACKTOP;
  44350.   STACKTOP = STACKTOP + 8 | 0;
  44351.   var $fallback_plan_addr_i = __stackBase__;
  44352.   var $i_i = __stackBase__ + 4;
  44353.   var $data_addr;
  44354.   $data_addr = $data;
  44355.   HEAP[$fallback_plan_addr_i] = HEAP[$data_addr + 36 | 0];
  44356.   if ((HEAP[$fallback_plan_addr_i] | 0) == 0 | (HEAP[$fallback_plan_addr_i] | 0) == 130984) {
  44357.     var $18 = $fallback_plan_addr_i;
  44358.     var $19 = $i_i;
  44359.     var $20 = $data_addr;
  44360.     _free($20);
  44361.     STACKTOP = __stackBase__;
  44362.     return;
  44363.   }
  44364.   HEAP[$i_i] = 0;
  44365.   while (1) {
  44366.     if ((HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_addr_i] + 20 | 0] | 0) != 0) {
  44367.       _free(HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_addr_i] + 20 | 0]);
  44368.     }
  44369.     var $inc_i = HEAP[$i_i] + 1 | 0;
  44370.     HEAP[$i_i] = $inc_i;
  44371.     if ($inc_i >>> 0 >= 5) {
  44372.       break;
  44373.     }
  44374.   }
  44375.   _free(HEAP[$fallback_plan_addr_i]);
  44376.   var $18 = $fallback_plan_addr_i;
  44377.   var $19 = $i_i;
  44378.   var $20 = $data_addr;
  44379.   _free($20);
  44380.   STACKTOP = __stackBase__;
  44381.   return;
  44382. }
  44383. function __ZL18setup_masks_arabicPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t($plan, $buffer, $font) {
  44384.   var __stackBase__ = STACKTOP;
  44385.   STACKTOP = STACKTOP + 72 | 0;
  44386.   var $this_addr_i1_i = __stackBase__;
  44387.   var $unicode_addr_i2_i = __stackBase__ + 4;
  44388.   var $info_addr_i_i = __stackBase__ + 8;
  44389.   var $this_addr_i_i = __stackBase__ + 12;
  44390.   var $unicode_addr_i_i = __stackBase__ + 16;
  44391.   var $buffer_addr_i = __stackBase__ + 20;
  44392.   var $count_i = __stackBase__ + 24;
  44393.   var $prev_i = __stackBase__ + 28;
  44394.   var $state_i = __stackBase__ + 32;
  44395.   var $i_i = __stackBase__ + 36;
  44396.   var $this_type_i = __stackBase__ + 40;
  44397.   var $entry9_i = __stackBase__ + 44;
  44398.   var $i13_i = __stackBase__ + 48;
  44399.   var $this_type17_i = __stackBase__ + 52;
  44400.   var $entry29_i = __stackBase__ + 56;
  44401.   var $i57_i = __stackBase__ + 60;
  44402.   var $this_type63_i = __stackBase__ + 64;
  44403.   var $entry76_i = __stackBase__ + 68;
  44404.   var $buffer_addr;
  44405.   var $arabic_plan;
  44406.   var $count;
  44407.   var $i;
  44408.   $buffer_addr = $buffer;
  44409.   $arabic_plan = HEAP[$plan + 916 | 0];
  44410.   HEAP[$buffer_addr_i] = $buffer_addr;
  44411.   HEAP[$count_i] = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  44412.   HEAP[$prev_i] = -1;
  44413.   HEAP[$state_i] = 0;
  44414.   __ZN11hb_buffer_t12allocate_varEjjPKc(HEAP[$buffer_addr_i], 6, 1, 103256);
  44415.   L976 : do {
  44416.     if ((HEAP[HEAP[$buffer_addr_i] + 68 | 0] & 1 | 0) == 0) {
  44417.       HEAP[$i_i] = 0;
  44418.       if (HEAP[$i_i] >>> 0 >= HEAP[HEAP[$buffer_addr_i] + 192 | 0] >>> 0) {
  44419.         break;
  44420.       }
  44421.       while (1) {
  44422.         var $31 = HEAP[(HEAP[$i_i] << 2) + HEAP[$buffer_addr_i] + 152 | 0];
  44423.         var $36 = HEAP[(HEAP[$i_i] << 2) + HEAP[$buffer_addr_i] + 152 | 0];
  44424.         HEAP[$this_addr_i_i] = HEAP[HEAP[$buffer_addr_i] + 44 | 0];
  44425.         HEAP[$unicode_addr_i_i] = $36;
  44426.         var $this1_i_i = HEAP[$this_addr_i_i];
  44427.         var $call6_i = __ZL16get_joining_typej29hb_unicode_general_category_t($31, FUNCTION_TABLE[HEAP[$this1_i_i + 60 | 0]]($this1_i_i, HEAP[$unicode_addr_i_i], HEAP[$this1_i_i + 92 | 0]));
  44428.         HEAP[$this_type_i] = $call6_i;
  44429.         if (($call6_i | 0) != 7) {
  44430.           break;
  44431.         }
  44432.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  44433.         if (HEAP[$i_i] >>> 0 >= HEAP[HEAP[$buffer_addr_i] + 192 | 0] >>> 0) {
  44434.           break L976;
  44435.         }
  44436.       }
  44437.       HEAP[$entry9_i] = (HEAP[$this_type_i] << 2) + (HEAP[$state_i] * 24 & -1) + 131608 | 0;
  44438.       HEAP[$state_i] = HEAP[HEAP[$entry9_i] + 2 | 0] & 65535;
  44439.     }
  44440.   } while (0);
  44441.   HEAP[$i13_i] = 0;
  44442.   L984 : do {
  44443.     if (HEAP[$i13_i] >>> 0 < HEAP[$count_i] >>> 0) {
  44444.       while (1) {
  44445.         var $55 = HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i13_i] * 20 & -1) | 0];
  44446.         HEAP[$info_addr_i_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i13_i] * 20 & -1) | 0;
  44447.         var $call22_i = __ZL16get_joining_typej29hb_unicode_general_category_t($55, HEAP[HEAP[$info_addr_i_i] + 16 | 0] & 31);
  44448.         HEAP[$this_type17_i] = $call22_i;
  44449.         if (($call22_i | 0) == 7) {
  44450.           HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i13_i] * 20 & -1) + 18 | 0] = 7;
  44451.         } else {
  44452.           HEAP[$entry29_i] = (HEAP[$this_type17_i] << 2) + (HEAP[$state_i] * 24 & -1) + 131608 | 0;
  44453.           do {
  44454.             if ((HEAP[HEAP[$entry29_i] | 0] & 255 | 0) != 7) {
  44455.               if ((HEAP[$prev_i] | 0) == -1) {
  44456.                 break;
  44457.               }
  44458.               HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$prev_i] * 20 & -1) + 18 | 0] = HEAP[HEAP[$entry29_i] | 0];
  44459.             }
  44460.           } while (0);
  44461.           HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i13_i] * 20 & -1) + 18 | 0] = HEAP[HEAP[$entry29_i] + 1 | 0];
  44462.           HEAP[$prev_i] = HEAP[$i13_i];
  44463.           HEAP[$state_i] = HEAP[HEAP[$entry29_i] + 2 | 0] & 65535;
  44464.         }
  44465.         HEAP[$i13_i] = HEAP[$i13_i] + 1 | 0;
  44466.         if (HEAP[$i13_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  44467.           break L984;
  44468.         }
  44469.       }
  44470.     }
  44471.   } while (0);
  44472.   L997 : do {
  44473.     if ((HEAP[HEAP[$buffer_addr_i] + 68 | 0] & 2 | 0) == 0) {
  44474.       HEAP[$i57_i] = 0;
  44475.       if (HEAP[$i57_i] >>> 0 >= HEAP[HEAP[$buffer_addr_i] + 196 | 0] >>> 0) {
  44476.         break;
  44477.       }
  44478.       while (1) {
  44479.         var $96 = HEAP[(HEAP[$i57_i] << 2) + HEAP[$buffer_addr_i] + 172 | 0];
  44480.         var $101 = HEAP[(HEAP[$i57_i] << 2) + HEAP[$buffer_addr_i] + 172 | 0];
  44481.         HEAP[$this_addr_i1_i] = HEAP[HEAP[$buffer_addr_i] + 44 | 0];
  44482.         HEAP[$unicode_addr_i2_i] = $101;
  44483.         var $this1_i3_i = HEAP[$this_addr_i1_i];
  44484.         var $call72_i = __ZL16get_joining_typej29hb_unicode_general_category_t($96, FUNCTION_TABLE[HEAP[$this1_i3_i + 60 | 0]]($this1_i3_i, HEAP[$unicode_addr_i2_i], HEAP[$this1_i3_i + 92 | 0]));
  44485.         HEAP[$this_type63_i] = $call72_i;
  44486.         if (($call72_i | 0) != 7) {
  44487.           break;
  44488.         }
  44489.         HEAP[$i57_i] = HEAP[$i57_i] + 1 | 0;
  44490.         if (HEAP[$i57_i] >>> 0 >= HEAP[HEAP[$buffer_addr_i] + 196 | 0] >>> 0) {
  44491.           break L997;
  44492.         }
  44493.       }
  44494.       HEAP[$entry76_i] = (HEAP[$this_type63_i] << 2) + (HEAP[$state_i] * 24 & -1) + 131608 | 0;
  44495.       if ((HEAP[HEAP[$entry76_i] | 0] & 255 | 0) == 7) {
  44496.         break;
  44497.       }
  44498.       if ((HEAP[$prev_i] | 0) == -1) {
  44499.         break;
  44500.       }
  44501.       HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$prev_i] * 20 & -1) + 18 | 0] = HEAP[HEAP[$entry76_i] | 0];
  44502.     }
  44503.   } while (0);
  44504.   __ZN11hb_buffer_t14deallocate_varEjjPKc(HEAP[$buffer_addr_i], 6, 1, 103256);
  44505.   $count = HEAP[$buffer_addr + 84 | 0];
  44506.   $i = 0;
  44507.   if ($i >>> 0 >= $count >>> 0) {
  44508.     STACKTOP = __stackBase__;
  44509.     return;
  44510.   }
  44511.   while (1) {
  44512.     var $mask = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) + 4 | 0;
  44513.     HEAP[$mask] = HEAP[$mask] | HEAP[((HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) + 18 | 0] & 255) << 2) + $arabic_plan | 0];
  44514.     $i = $i + 1 | 0;
  44515.     if ($i >>> 0 >= $count >>> 0) {
  44516.       break;
  44517.     }
  44518.   }
  44519.   STACKTOP = __stackBase__;
  44520.   return;
  44521. }
  44522. function __ZL16get_joining_typej29hb_unicode_general_category_t($u, $gen_cat) {
  44523.   var label = 0;
  44524.   var __stackBase__ = STACKTOP;
  44525.   STACKTOP = STACKTOP + 65 | 0;
  44526.   var $retval_i88 = __stackBase__;
  44527.   var $u_addr_i89 = __stackBase__ + 1;
  44528.   var $lo_addr_i90 = __stackBase__ + 5;
  44529.   var $hi_addr_i91 = __stackBase__ + 9;
  44530.   var $retval_i59 = __stackBase__ + 13;
  44531.   var $u_addr_i60 = __stackBase__ + 14;
  44532.   var $lo_addr_i61 = __stackBase__ + 18;
  44533.   var $hi_addr_i62 = __stackBase__ + 22;
  44534.   var $retval_i30 = __stackBase__ + 26;
  44535.   var $u_addr_i31 = __stackBase__ + 27;
  44536.   var $lo_addr_i32 = __stackBase__ + 31;
  44537.   var $hi_addr_i33 = __stackBase__ + 35;
  44538.   var $retval_i1 = __stackBase__ + 39;
  44539.   var $u_addr_i2 = __stackBase__ + 40;
  44540.   var $lo_addr_i3 = __stackBase__ + 44;
  44541.   var $hi_addr_i4 = __stackBase__ + 48;
  44542.   var $retval_i = __stackBase__ + 52;
  44543.   var $u_addr_i = __stackBase__ + 53;
  44544.   var $lo_addr_i = __stackBase__ + 57;
  44545.   var $hi_addr_i = __stackBase__ + 61;
  44546.   var $retval;
  44547.   var $u_addr;
  44548.   var $gen_cat_addr;
  44549.   var $j_type;
  44550.   $u_addr = $u;
  44551.   $gen_cat_addr = $gen_cat;
  44552.   HEAP[$u_addr_i] = $u_addr;
  44553.   HEAP[$lo_addr_i] = 1536;
  44554.   HEAP[$hi_addr_i] = 2220;
  44555.   do {
  44556.     if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$lo_addr_i] | 0) == 0) {
  44557.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$hi_addr_i] | 0) != (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i] | 0)) {
  44558.         label = 730;
  44559.         break;
  44560.       }
  44561.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) + 1 & (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) | 0) != 0) {
  44562.         label = 730;
  44563.         break;
  44564.       }
  44565.       var $cmp12_i = ((HEAP[$lo_addr_i] ^ -1 ^ HEAP[$hi_addr_i]) & HEAP[$u_addr_i] | 0) == (HEAP[$lo_addr_i] | 0);
  44566.       HEAP[$retval_i] = $cmp12_i;
  44567.       var $26 = $cmp12_i;
  44568.       break;
  44569.     } else {
  44570.       label = 730;
  44571.     }
  44572.   } while (0);
  44573.   if (label == 730) {
  44574.     if (HEAP[$lo_addr_i] >>> 0 <= HEAP[$u_addr_i] >>> 0) {
  44575.       var $25 = HEAP[$u_addr_i] >>> 0 <= HEAP[$hi_addr_i] >>> 0;
  44576.     } else {
  44577.       var $25 = 0;
  44578.     }
  44579.     var $25;
  44580.     HEAP[$retval_i] = $25;
  44581.     var $26 = $25;
  44582.   }
  44583.   var $26;
  44584.   do {
  44585.     if ($26) {
  44586.       $j_type = HEAP[$u_addr - 1536 + 133872 | 0] & 255;
  44587.       if (($j_type | 0) == 8) {
  44588.         break;
  44589.       }
  44590.       $retval = $j_type;
  44591.       var $164 = $retval;
  44592.       STACKTOP = __stackBase__;
  44593.       return $164;
  44594.     }
  44595.   } while (0);
  44596.   HEAP[$u_addr_i89] = $u_addr;
  44597.   HEAP[$lo_addr_i90] = 6144;
  44598.   HEAP[$hi_addr_i91] = 6319;
  44599.   do {
  44600.     if (((HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) & HEAP[$lo_addr_i90] | 0) == 0) {
  44601.       if (((HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) & HEAP[$hi_addr_i91] | 0) != (HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90] | 0)) {
  44602.         label = 740;
  44603.         break;
  44604.       }
  44605.       if (((HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) + 1 & (HEAP[$hi_addr_i91] ^ HEAP[$lo_addr_i90]) | 0) != 0) {
  44606.         label = 740;
  44607.         break;
  44608.       }
  44609.       var $cmp12_i109 = ((HEAP[$lo_addr_i90] ^ -1 ^ HEAP[$hi_addr_i91]) & HEAP[$u_addr_i89] | 0) == (HEAP[$lo_addr_i90] | 0);
  44610.       HEAP[$retval_i88] = $cmp12_i109;
  44611.       var $61 = $cmp12_i109;
  44612.       break;
  44613.     } else {
  44614.       label = 740;
  44615.     }
  44616.   } while (0);
  44617.   if (label == 740) {
  44618.     if (HEAP[$lo_addr_i90] >>> 0 <= HEAP[$u_addr_i89] >>> 0) {
  44619.       var $60 = HEAP[$u_addr_i89] >>> 0 <= HEAP[$hi_addr_i91] >>> 0;
  44620.     } else {
  44621.       var $60 = 0;
  44622.     }
  44623.     var $60;
  44624.     HEAP[$retval_i88] = $60;
  44625.     var $61 = $60;
  44626.   }
  44627.   var $61;
  44628.   do {
  44629.     if ($61) {
  44630.       HEAP[$u_addr_i60] = $u_addr;
  44631.       HEAP[$lo_addr_i61] = 6272;
  44632.       HEAP[$hi_addr_i62] = 6278;
  44633.       do {
  44634.         if (((HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) & HEAP[$lo_addr_i61] | 0) == 0) {
  44635.           if (((HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) & HEAP[$hi_addr_i62] | 0) != (HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61] | 0)) {
  44636.             label = 748;
  44637.             break;
  44638.           }
  44639.           if (((HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) + 1 & (HEAP[$hi_addr_i62] ^ HEAP[$lo_addr_i61]) | 0) != 0) {
  44640.             label = 748;
  44641.             break;
  44642.           }
  44643.           var $cmp12_i80 = ((HEAP[$lo_addr_i61] ^ -1 ^ HEAP[$hi_addr_i62]) & HEAP[$u_addr_i60] | 0) == (HEAP[$lo_addr_i61] | 0);
  44644.           HEAP[$retval_i59] = $cmp12_i80;
  44645.           var $92 = $cmp12_i80;
  44646.           break;
  44647.         } else {
  44648.           label = 748;
  44649.         }
  44650.       } while (0);
  44651.       if (label == 748) {
  44652.         if (HEAP[$lo_addr_i61] >>> 0 <= HEAP[$u_addr_i60] >>> 0) {
  44653.           var $91 = HEAP[$u_addr_i60] >>> 0 <= HEAP[$hi_addr_i62] >>> 0;
  44654.         } else {
  44655.           var $91 = 0;
  44656.         }
  44657.         var $91;
  44658.         HEAP[$retval_i59] = $91;
  44659.         var $92 = $91;
  44660.       }
  44661.       var $92;
  44662.       if ($92) {
  44663.         $retval = 0;
  44664.         var $164 = $retval;
  44665.         STACKTOP = __stackBase__;
  44666.         return $164;
  44667.       }
  44668.       if ((1 << $gen_cat_addr & 192 | 0) == 0) {
  44669.         if (!(($u_addr | 0) == 6151 | ($u_addr | 0) == 6154)) {
  44670.           break;
  44671.         }
  44672.       }
  44673.       $retval = 3;
  44674.       var $164 = $retval;
  44675.       STACKTOP = __stackBase__;
  44676.       return $164;
  44677.     }
  44678.   } while (0);
  44679.   HEAP[$u_addr_i31] = $u_addr;
  44680.   HEAP[$lo_addr_i32] = 43072;
  44681.   HEAP[$hi_addr_i33] = 43122;
  44682.   do {
  44683.     if (((HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) & HEAP[$lo_addr_i32] | 0) == 0) {
  44684.       if (((HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) & HEAP[$hi_addr_i33] | 0) != (HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32] | 0)) {
  44685.         label = 760;
  44686.         break;
  44687.       }
  44688.       if (((HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) + 1 & (HEAP[$hi_addr_i33] ^ HEAP[$lo_addr_i32]) | 0) != 0) {
  44689.         label = 760;
  44690.         break;
  44691.       }
  44692.       var $cmp12_i51 = ((HEAP[$lo_addr_i32] ^ -1 ^ HEAP[$hi_addr_i33]) & HEAP[$u_addr_i31] | 0) == (HEAP[$lo_addr_i32] | 0);
  44693.       HEAP[$retval_i30] = $cmp12_i51;
  44694.       var $126 = $cmp12_i51;
  44695.       break;
  44696.     } else {
  44697.       label = 760;
  44698.     }
  44699.   } while (0);
  44700.   if (label == 760) {
  44701.     if (HEAP[$lo_addr_i32] >>> 0 <= HEAP[$u_addr_i31] >>> 0) {
  44702.       var $125 = HEAP[$u_addr_i31] >>> 0 <= HEAP[$hi_addr_i33] >>> 0;
  44703.     } else {
  44704.       var $125 = 0;
  44705.     }
  44706.     var $125;
  44707.     HEAP[$retval_i30] = $125;
  44708.     var $126 = $125;
  44709.   }
  44710.   var $126;
  44711.   var $131 = $u_addr;
  44712.   if ($126) {
  44713.     if (($131 | 0) == 43122) {
  44714.       $retval = 1;
  44715.       var $164 = $retval;
  44716.       STACKTOP = __stackBase__;
  44717.       return $164;
  44718.     } else {
  44719.       $retval = 3;
  44720.       var $164 = $retval;
  44721.       STACKTOP = __stackBase__;
  44722.       return $164;
  44723.     }
  44724.   }
  44725.   HEAP[$u_addr_i2] = $131;
  44726.   HEAP[$lo_addr_i3] = 8204;
  44727.   HEAP[$hi_addr_i4] = 8205;
  44728.   do {
  44729.     if (((HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) & HEAP[$lo_addr_i3] | 0) == 0) {
  44730.       if (((HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) & HEAP[$hi_addr_i4] | 0) != (HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3] | 0)) {
  44731.         label = 771;
  44732.         break;
  44733.       }
  44734.       if (((HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) + 1 & (HEAP[$hi_addr_i4] ^ HEAP[$lo_addr_i3]) | 0) != 0) {
  44735.         label = 771;
  44736.         break;
  44737.       }
  44738.       var $cmp12_i22 = ((HEAP[$lo_addr_i3] ^ -1 ^ HEAP[$hi_addr_i4]) & HEAP[$u_addr_i2] | 0) == (HEAP[$lo_addr_i3] | 0);
  44739.       HEAP[$retval_i1] = $cmp12_i22;
  44740.       var $157 = $cmp12_i22;
  44741.       break;
  44742.     } else {
  44743.       label = 771;
  44744.     }
  44745.   } while (0);
  44746.   if (label == 771) {
  44747.     if (HEAP[$lo_addr_i3] >>> 0 <= HEAP[$u_addr_i2] >>> 0) {
  44748.       var $156 = HEAP[$u_addr_i2] >>> 0 <= HEAP[$hi_addr_i4] >>> 0;
  44749.     } else {
  44750.       var $156 = 0;
  44751.     }
  44752.     var $156;
  44753.     HEAP[$retval_i1] = $156;
  44754.     var $157 = $156;
  44755.   }
  44756.   var $157;
  44757.   if ($157) {
  44758.     $retval = ($u_addr | 0) == 8204 ? 0 : 3;
  44759.     var $164 = $retval;
  44760.     STACKTOP = __stackBase__;
  44761.     return $164;
  44762.   } else {
  44763.     $retval = (1 << $gen_cat_addr & 6146 | 0) != 0 ? 7 : 0;
  44764.     var $164 = $retval;
  44765.     STACKTOP = __stackBase__;
  44766.     return $164;
  44767.   }
  44768. }
  44769. function __ZL21arabic_fallback_shapePK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  44770.   var __stackBase__ = STACKTOP;
  44771.   STACKTOP = STACKTOP + 96 | 0;
  44772.   var $fallback_plan_addr_i11 = __stackBase__;
  44773.   var $font_addr_i12 = __stackBase__ + 4;
  44774.   var $buffer_addr_i = __stackBase__ + 8;
  44775.   var $i_i13 = __stackBase__ + 12;
  44776.   var $c_i = __stackBase__ + 16;
  44777.   var $fallback_plan_addr_i = __stackBase__ + 68;
  44778.   var $i_i1 = __stackBase__ + 72;
  44779.   var $retval_i = __stackBase__ + 76;
  44780.   var $plan_addr_i = __stackBase__ + 80;
  44781.   var $font_addr_i = __stackBase__ + 84;
  44782.   var $fallback_plan_i = __stackBase__ + 88;
  44783.   var $i_i = __stackBase__ + 92;
  44784.   var $plan_addr;
  44785.   var $font_addr;
  44786.   var $buffer_addr;
  44787.   var $arabic_plan;
  44788.   var $fallback_plan;
  44789.   $plan_addr = $plan;
  44790.   $font_addr = $font;
  44791.   $buffer_addr = $buffer;
  44792.   $arabic_plan = HEAP[$plan_addr + 916 | 0];
  44793.   if (!(HEAP[$arabic_plan + 32 | 0] & 1)) {
  44794.     STACKTOP = __stackBase__;
  44795.     return;
  44796.   }
  44797.   var $8 = HEAP[$arabic_plan + 36 | 0];
  44798.   $fallback_plan = $8;
  44799.   L1096 : do {
  44800.     if (($8 | 0) == 0) {
  44801.       while (1) {
  44802.         HEAP[$plan_addr_i] = $plan_addr;
  44803.         HEAP[$font_addr_i] = $font_addr;
  44804.         var $25 = _calloc(1, 100);
  44805.         HEAP[$fallback_plan_i] = $25;
  44806.         if (($25 | 0) != 0) {
  44807.           HEAP[$i_i] = 0;
  44808.           while (1) {
  44809.             var $call1_i = __ZNK11hb_ot_map_t10get_1_maskEj(HEAP[$plan_addr_i] + 24 | 0, HEAP[(HEAP[$i_i] << 2) + 131088 | 0]);
  44810.             HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_i] | 0] = $call1_i;
  44811.             do {
  44812.               if ((HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_i] | 0] | 0) != 0) {
  44813.                 var $call7_i = __ZL33arabic_fallback_synthesize_lookupPK18hb_ot_shape_plan_tP9hb_font_tj(HEAP[$plan_addr_i], HEAP[$font_addr_i], HEAP[$i_i]);
  44814.                 HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_i] + 20 | 0] = $call7_i;
  44815.                 if ((HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_i] + 20 | 0] | 0) == 0) {
  44816.                   break;
  44817.                 }
  44818.                 __ZNK2OT11SubstLookup12add_coverageI15hb_set_digest_tEEvPT_(HEAP[(HEAP[$i_i] << 2) + HEAP[$fallback_plan_i] + 20 | 0], HEAP[$fallback_plan_i] + (HEAP[$i_i] * 12 & -1) + 40 | 0);
  44819.               }
  44820.             } while (0);
  44821.             var $inc_i = HEAP[$i_i] + 1 | 0;
  44822.             HEAP[$i_i] = $inc_i;
  44823.             if ($inc_i >>> 0 >= 5) {
  44824.               break;
  44825.             }
  44826.           }
  44827.           HEAP[$retval_i] = HEAP[$fallback_plan_i];
  44828.         } else {
  44829.           HEAP[$retval_i] = 130984;
  44830.         }
  44831.         $fallback_plan = HEAP[$retval_i];
  44832.         var $53 = $fallback_plan;
  44833.         if ((HEAP[$arabic_plan + 36 | 0] | 0) == 0) {
  44834.           break;
  44835.         }
  44836.         HEAP[$fallback_plan_addr_i] = $53;
  44837.         if (!((HEAP[$fallback_plan_addr_i] | 0) == 0 | (HEAP[$fallback_plan_addr_i] | 0) == 130984)) {
  44838.           HEAP[$i_i1] = 0;
  44839.           while (1) {
  44840.             if ((HEAP[(HEAP[$i_i1] << 2) + HEAP[$fallback_plan_addr_i] + 20 | 0] | 0) != 0) {
  44841.               _free(HEAP[(HEAP[$i_i1] << 2) + HEAP[$fallback_plan_addr_i] + 20 | 0]);
  44842.             }
  44843.             var $inc_i8 = HEAP[$i_i1] + 1 | 0;
  44844.             HEAP[$i_i1] = $inc_i8;
  44845.             if ($inc_i8 >>> 0 >= 5) {
  44846.               break;
  44847.             }
  44848.           }
  44849.           _free(HEAP[$fallback_plan_addr_i]);
  44850.         }
  44851.         var $72 = HEAP[$arabic_plan + 36 | 0];
  44852.         $fallback_plan = $72;
  44853.         if (($72 | 0) != 0) {
  44854.           break L1096;
  44855.         }
  44856.       }
  44857.       HEAP[$arabic_plan + 36 | 0] = $53;
  44858.     }
  44859.   } while (0);
  44860.   HEAP[$fallback_plan_addr_i11] = $fallback_plan;
  44861.   HEAP[$font_addr_i12] = $font_addr;
  44862.   HEAP[$buffer_addr_i] = $buffer_addr;
  44863.   HEAP[$i_i13] = 0;
  44864.   while (1) {
  44865.     if ((HEAP[(HEAP[$i_i13] << 2) + HEAP[$fallback_plan_addr_i11] + 20 | 0] | 0) != 0) {
  44866.       __ZN2OT18hb_apply_context_tC1EjP9hb_font_tP11hb_buffer_tjb($c_i, 0, HEAP[$font_addr_i12], HEAP[$buffer_addr_i], HEAP[(HEAP[$i_i13] << 2) + HEAP[$fallback_plan_addr_i11] | 0], 1);
  44867.       __ZNK2OT11SubstLookup12apply_stringEPNS_18hb_apply_context_tEPK15hb_set_digest_t(HEAP[(HEAP[$i_i13] << 2) + HEAP[$fallback_plan_addr_i11] + 20 | 0], $c_i, HEAP[$fallback_plan_addr_i11] + (HEAP[$i_i13] * 12 & -1) + 40 | 0);
  44868.     }
  44869.     var $inc_i23 = HEAP[$i_i13] + 1 | 0;
  44870.     HEAP[$i_i13] = $inc_i23;
  44871.     if ($inc_i23 >>> 0 >= 5) {
  44872.       break;
  44873.     }
  44874.   }
  44875.   STACKTOP = __stackBase__;
  44876.   return;
  44877. }
  44878. function __ZL33arabic_fallback_synthesize_lookupPK18hb_ot_shape_plan_tP9hb_font_tj($plan, $font, $feature_index) {
  44879.   var label = 0;
  44880.   var __stackBase__ = STACKTOP;
  44881.   STACKTOP = STACKTOP + 4036 | 0;
  44882.   var $this_addr_i_i131_i = __stackBase__;
  44883.   var $ret_i_i_i1 = __stackBase__ + 4;
  44884.   var $this_addr_i132_i = __stackBase__ + 8;
  44885.   var $this_addr_i_i126_i = __stackBase__ + 12;
  44886.   var $start_addr_i_i_i2 = __stackBase__ + 16;
  44887.   var $size_addr_i_i_i3 = __stackBase__ + 20;
  44888.   var $this_addr_i127_i = __stackBase__ + 24;
  44889.   var $start_addr_i_i4 = __stackBase__ + 28;
  44890.   var $size_addr_i_i5 = __stackBase__ + 32;
  44891.   var $this_addr_i_i116_i = __stackBase__ + 36;
  44892.   var $array_addr_i_i117_i = __stackBase__ + 40;
  44893.   var $len__addr_i_i118_i = __stackBase__ + 44;
  44894.   var $this_addr_i119_i = __stackBase__ + 48;
  44895.   var $array_addr_i120_i = __stackBase__ + 52;
  44896.   var $len__addr_i121_i = __stackBase__ + 56;
  44897.   var $this_addr_i_i106_i = __stackBase__ + 60;
  44898.   var $array_addr_i_i107_i = __stackBase__ + 64;
  44899.   var $len__addr_i_i108_i = __stackBase__ + 68;
  44900.   var $this_addr_i109_i = __stackBase__ + 72;
  44901.   var $array_addr_i110_i = __stackBase__ + 76;
  44902.   var $len__addr_i111_i = __stackBase__ + 80;
  44903.   var $this_addr_i_i96_i = __stackBase__ + 84;
  44904.   var $array_addr_i_i97_i = __stackBase__ + 88;
  44905.   var $len__addr_i_i98_i = __stackBase__ + 92;
  44906.   var $this_addr_i99_i = __stackBase__ + 96;
  44907.   var $array_addr_i100_i = __stackBase__ + 100;
  44908.   var $len__addr_i101_i = __stackBase__ + 104;
  44909.   var $this_addr_i_i86_i = __stackBase__ + 108;
  44910.   var $array_addr_i_i87_i = __stackBase__ + 112;
  44911.   var $len__addr_i_i88_i = __stackBase__ + 116;
  44912.   var $this_addr_i89_i = __stackBase__ + 120;
  44913.   var $array_addr_i90_i = __stackBase__ + 124;
  44914.   var $len__addr_i91_i = __stackBase__ + 128;
  44915.   var $this_addr_i_i81_i = __stackBase__ + 132;
  44916.   var $array_addr_i_i_i6 = __stackBase__ + 136;
  44917.   var $len__addr_i_i_i7 = __stackBase__ + 140;
  44918.   var $this_addr_i82_i = __stackBase__ + 144;
  44919.   var $array_addr_i83_i = __stackBase__ + 148;
  44920.   var $len__addr_i_i8 = __stackBase__ + 152;
  44921.   var $this_addr_i_i66_i = __stackBase__ + 156;
  44922.   var $i_addr_i_i67_i = __stackBase__ + 160;
  44923.   var $this_addr_i68_i = __stackBase__ + 162;
  44924.   var $i_addr_i69_i = __stackBase__ + 166;
  44925.   var $this_addr_i_i51_i = __stackBase__ + 168;
  44926.   var $i_addr_i_i52_i = __stackBase__ + 172;
  44927.   var $this_addr_i53_i = __stackBase__ + 174;
  44928.   var $i_addr_i54_i = __stackBase__ + 178;
  44929.   var $this_addr_i_i34_i = __stackBase__ + 180;
  44930.   var $unicode_addr_i_i35_i = __stackBase__ + 184;
  44931.   var $variation_selector_addr_i_i36_i = __stackBase__ + 188;
  44932.   var $glyph_addr_i_i37_i = __stackBase__ + 192;
  44933.   var $font_addr_i38_i = __stackBase__ + 196;
  44934.   var $unicode_addr_i39_i = __stackBase__ + 200;
  44935.   var $variation_selector_addr_i40_i = __stackBase__ + 204;
  44936.   var $glyph_addr_i41_i = __stackBase__ + 208;
  44937.   var $this_addr_i_i17_i = __stackBase__ + 212;
  44938.   var $unicode_addr_i_i18_i = __stackBase__ + 216;
  44939.   var $variation_selector_addr_i_i19_i = __stackBase__ + 220;
  44940.   var $glyph_addr_i_i20_i = __stackBase__ + 224;
  44941.   var $font_addr_i21_i = __stackBase__ + 228;
  44942.   var $unicode_addr_i22_i = __stackBase__ + 232;
  44943.   var $variation_selector_addr_i23_i = __stackBase__ + 236;
  44944.   var $glyph_addr_i24_i = __stackBase__ + 240;
  44945.   var $this_addr_i1_i_i_i9 = __stackBase__ + 244;
  44946.   var $i_addr_i_i4_i_i10 = __stackBase__ + 248;
  44947.   var $this_addr_i_i_i_i5_i_i11 = __stackBase__ + 252;
  44948.   var $i_addr_i_i_i_i6_i_i12 = __stackBase__ + 256;
  44949.   var $this_addr_i1_i_i_i_i13 = __stackBase__ + 258;
  44950.   var $i_addr_i_i_i7_i_i14 = __stackBase__ + 262;
  44951.   var $this_addr_i_i_i8_i_i15 = __stackBase__ + 264;
  44952.   var $ret_i_i_i_i_i16 = __stackBase__ + 268;
  44953.   var $this_addr_i_i9_i_i17 = __stackBase__ + 272;
  44954.   var $c_addr_i_i10_i_i18 = __stackBase__ + 276;
  44955.   var $base_addr_i_i_i_i19 = __stackBase__ + 280;
  44956.   var $t_i_i_i_i20 = __stackBase__ + 284;
  44957.   var $X_addr_i_i_i_i21 = __stackBase__ + 288;
  44958.   var $this_addr_i11_i_i22 = __stackBase__ + 292;
  44959.   var $c_addr_i12_i_i23 = __stackBase__ + 296;
  44960.   var $i_addr_i_i7_i = __stackBase__ + 300;
  44961.   var $this_addr_i_i13_i_i_i = __stackBase__ + 304;
  44962.   var $this_addr_i14_i_i_i = __stackBase__ + 308;
  44963.   var $this_addr_i_i6_i_i_i = __stackBase__ + 312;
  44964.   var $i_addr_i_i7_i_i_i = __stackBase__ + 316;
  44965.   var $this_addr_i8_i_i_i = __stackBase__ + 318;
  44966.   var $i_addr_i_i_i_i25 = __stackBase__ + 322;
  44967.   var $retval_i163_i_i_i_i = __stackBase__ + 324;
  44968.   var $this_addr_i164_i_i_i_i = __stackBase__ + 328;
  44969.   var $i_addr_i165_i_i_i_i = __stackBase__ + 332;
  44970.   var $this_addr_i_i_i135_i_i_i_i = __stackBase__ + 336;
  44971.   var $i_addr_i_i_i136_i_i_i_i = __stackBase__ + 340;
  44972.   var $this_addr_i1_i137_i_i_i_i = __stackBase__ + 342;
  44973.   var $i_addr_i_i138_i_i_i_i = __stackBase__ + 346;
  44974.   var $this_addr_i_i139_i_i_i_i = __stackBase__ + 348;
  44975.   var $ret_i_i140_i_i_i_i = __stackBase__ + 352;
  44976.   var $this_addr_i141_i_i_i_i = __stackBase__ + 356;
  44977.   var $c_addr_i142_i_i_i_i = __stackBase__ + 360;
  44978.   var $base_addr_i143_i_i_i_i = __stackBase__ + 364;
  44979.   var $t_i144_i_i_i_i = __stackBase__ + 368;
  44980.   var $this_addr_i133_i_i_i_i = __stackBase__ + 372;
  44981.   var $i_addr_i_i_i_i_i27 = __stackBase__ + 376;
  44982.   var $this_addr_i_i52_i_i_i_i_i = __stackBase__ + 380;
  44983.   var $i_addr_i_i_i53_i_i_i_i = __stackBase__ + 384;
  44984.   var $this_addr_i53_i_i_i_i_i = __stackBase__ + 386;
  44985.   var $i_addr_i_i54_i_i_i_i = __stackBase__ + 390;
  44986.   var $retval_i_i4_i_i_i_i_i = __stackBase__ + 392;
  44987.   var $this_addr_i_i5_i_i_i_i_i = __stackBase__ + 396;
  44988.   var $size_addr_i_i6_i_i_i_i_i = __stackBase__ + 400;
  44989.   var $ret_i_i7_i_i_i_i_i = __stackBase__ + 404;
  44990.   var $retval_i8_i_i_i_i_i = __stackBase__ + 408;
  44991.   var $this_addr_i9_i_i_i_i_i28 = __stackBase__ + 412;
  44992.   var $obj_addr_i10_i_i_i_i_i = __stackBase__ + 416;
  44993.   var $size_i11_i_i_i_i_i = __stackBase__ + 420;
  44994.   var $retval_i_i_i55_i_i_i_i = __stackBase__ + 424;
  44995.   var $this_addr_i1_i_i56_i_i_i_i = __stackBase__ + 428;
  44996.   var $size_addr_i_i_i57_i_i_i_i = __stackBase__ + 432;
  44997.   var $ret_i_i_i58_i_i_i_i = __stackBase__ + 436;
  44998.   var $this_addr_i_i_i_i_i59_i_i_i_i = __stackBase__ + 440;
  44999.   var $this_addr_i_i_i_i60_i_i_i_i = __stackBase__ + 444;
  45000.   var $this_addr_i_i_i61_i_i_i_i = __stackBase__ + 448;
  45001.   var $retval_i_i62_i_i_i_i = __stackBase__ + 452;
  45002.   var $this_addr_i_i63_i_i_i_i = __stackBase__ + 456;
  45003.   var $obj_addr_i_i64_i_i_i_i = __stackBase__ + 460;
  45004.   var $size_i_i65_i_i_i_i = __stackBase__ + 464;
  45005.   var $retval_i67_i_i_i_i = __stackBase__ + 468;
  45006.   var $this_addr_i68_i_i_i_i = __stackBase__ + 469;
  45007.   var $c_addr_i69_i_i_i_i = __stackBase__ + 473;
  45008.   var $items_len_addr_i_i_i_i_i29 = __stackBase__ + 477;
  45009.   var $this_addr_i153_i_i_i_i_i = __stackBase__ + 481;
  45010.   var $i_addr_i154_i_i_i_i_i = __stackBase__ + 485;
  45011.   var $retval_i143_i_i_i_i_i = __stackBase__ + 489;
  45012.   var $this_addr_i144_i_i_i_i_i = __stackBase__ + 493;
  45013.   var $i_addr_i145_i_i_i_i_i = __stackBase__ + 497;
  45014.   var $this_addr_i_i_i119_i_i_i_i_i = __stackBase__ + 501;
  45015.   var $i_addr_i_i_i120_i_i_i_i_i = __stackBase__ + 505;
  45016.   var $this_addr_i1_i_i_i_i_i_i = __stackBase__ + 507;
  45017.   var $i_addr_i_i121_i_i_i_i_i = __stackBase__ + 511;
  45018.   var $this_addr_i_i122_i_i_i_i_i = __stackBase__ + 513;
  45019.   var $ret_i_i123_i_i_i_i_i = __stackBase__ + 517;
  45020.   var $this_addr_i124_i_i_i_i_i = __stackBase__ + 521;
  45021.   var $c_addr_i125_i_i_i_i_i = __stackBase__ + 525;
  45022.   var $base_addr_i_i_i_i_i_i = __stackBase__ + 529;
  45023.   var $t_i_i_i_i_i_i = __stackBase__ + 533;
  45024.   var $this_addr_i117_i_i_i_i_i = __stackBase__ + 537;
  45025.   var $i_addr_i_i24_i_i_i_i = __stackBase__ + 541;
  45026.   var $this_addr_i_i52_i_i_i_i_i_i30 = __stackBase__ + 545;
  45027.   var $i_addr_i_i_i44_i_i_i_i_i = __stackBase__ + 549;
  45028.   var $this_addr_i53_i_i_i_i_i_i31 = __stackBase__ + 551;
  45029.   var $i_addr_i_i_i25_i_i_i_i = __stackBase__ + 555;
  45030.   var $retval_i_i4_i45_i_i_i_i_i = __stackBase__ + 557;
  45031.   var $this_addr_i_i5_i46_i_i_i_i_i = __stackBase__ + 561;
  45032.   var $size_addr_i_i6_i_i_i_i_i_i33 = __stackBase__ + 565;
  45033.   var $ret_i_i7_i_i_i_i_i_i34 = __stackBase__ + 569;
  45034.   var $retval_i8_i_i_i_i_i_i35 = __stackBase__ + 573;
  45035.   var $this_addr_i9_i_i_i_i_i_i36 = __stackBase__ + 577;
  45036.   var $obj_addr_i10_i_i_i_i_i_i37 = __stackBase__ + 581;
  45037.   var $size_i11_i_i_i_i_i_i38 = __stackBase__ + 585;
  45038.   var $retval_i_i_i47_i_i_i_i_i = __stackBase__ + 589;
  45039.   var $this_addr_i1_i_i48_i_i_i_i_i = __stackBase__ + 593;
  45040.   var $size_addr_i_i_i49_i_i_i_i_i = __stackBase__ + 597;
  45041.   var $ret_i_i_i50_i_i_i_i_i = __stackBase__ + 601;
  45042.   var $this_addr_i_i_i_i_i51_i_i_i_i_i = __stackBase__ + 605;
  45043.   var $this_addr_i_i_i_i52_i_i_i_i_i = __stackBase__ + 609;
  45044.   var $this_addr_i_i_i53_i_i_i_i_i = __stackBase__ + 613;
  45045.   var $retval_i_i54_i_i_i_i_i = __stackBase__ + 617;
  45046.   var $this_addr_i_i55_i_i_i_i_i = __stackBase__ + 621;
  45047.   var $obj_addr_i_i56_i_i_i_i_i = __stackBase__ + 625;
  45048.   var $size_i_i57_i_i_i_i_i = __stackBase__ + 629;
  45049.   var $retval_i60_i_i_i_i_i = __stackBase__ + 633;
  45050.   var $this_addr_i61_i_i_i_i_i = __stackBase__ + 634;
  45051.   var $c_addr_i62_i_i_i_i_i = __stackBase__ + 638;
  45052.   var $items_len_addr_i_i_i_i_i_i39 = __stackBase__ + 642;
  45053.   var $retval_i_i20_i_i_i_i_i = __stackBase__ + 646;
  45054.   var $this_addr_i_i21_i_i_i_i_i = __stackBase__ + 650;
  45055.   var $size_addr_i_i_i_i_i_i_i = __stackBase__ + 654;
  45056.   var $ret_i_i_i_i_i_i_i = __stackBase__ + 658;
  45057.   var $retval_i22_i_i_i_i_i = __stackBase__ + 662;
  45058.   var $this_addr_i23_i_i_i_i_i = __stackBase__ + 666;
  45059.   var $obj_addr_i_i_i_i_i_i = __stackBase__ + 670;
  45060.   var $size_i_i_i_i_i_i = __stackBase__ + 674;
  45061.   var $retval_i_i4_i_i_i_i_i_i40 = __stackBase__ + 678;
  45062.   var $this_addr_i_i5_i_i_i_i_i_i41 = __stackBase__ + 682;
  45063.   var $size_addr_i_i_i_i_i_i_i_i42 = __stackBase__ + 686;
  45064.   var $ret_i_i_i_i_i_i_i_i43 = __stackBase__ + 690;
  45065.   var $retval_i6_i_i_i_i_i_i = __stackBase__ + 694;
  45066.   var $this_addr_i7_i_i_i_i_i_i = __stackBase__ + 698;
  45067.   var $obj_addr_i_i_i_i_i_i_i44 = __stackBase__ + 702;
  45068.   var $size_i_i_i_i_i_i_i45 = __stackBase__ + 706;
  45069.   var $this_addr_i_i67_i_i_i_i_i_i_i = __stackBase__ + 710;
  45070.   var $i_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 714;
  45071.   var $this_addr_i68_i_i_i_i_i_i_i = __stackBase__ + 716;
  45072.   var $i_addr_i69_i_i_i_i_i_i_i = __stackBase__ + 720;
  45073.   var $retval_i_i17_i_i_i_i_i_i_i = __stackBase__ + 722;
  45074.   var $this_addr_i_i18_i_i_i_i_i_i_i = __stackBase__ + 726;
  45075.   var $size_addr_i_i19_i_i_i_i_i_i_i = __stackBase__ + 730;
  45076.   var $ret_i_i20_i_i_i_i_i_i_i = __stackBase__ + 734;
  45077.   var $retval_i21_i_i_i_i_i_i_i = __stackBase__ + 738;
  45078.   var $this_addr_i22_i_i_i_i_i_i_i = __stackBase__ + 742;
  45079.   var $obj_addr_i23_i_i_i_i_i_i_i = __stackBase__ + 746;
  45080.   var $size_i24_i_i_i_i_i_i_i = __stackBase__ + 750;
  45081.   var $retval_i_i_i_i_i_i_i_i_i = __stackBase__ + 754;
  45082.   var $this_addr_i1_i_i_i_i_i_i_i_i = __stackBase__ + 758;
  45083.   var $size_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 762;
  45084.   var $ret_i_i_i_i_i_i_i_i_i = __stackBase__ + 766;
  45085.   var $this_addr_i_i1_i_i_i_i_i_i_i_i_i = __stackBase__ + 770;
  45086.   var $this_addr_i2_i_i_i_i_i_i_i_i_i = __stackBase__ + 774;
  45087.   var $this_addr_i_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 778;
  45088.   var $this_addr_i_i_i_i_i_i_i_i_i_i46 = __stackBase__ + 782;
  45089.   var $this_addr_i_i_i_i_i_i_i_i_i47 = __stackBase__ + 786;
  45090.   var $retval_i_i_i_i_i_i_i_i48 = __stackBase__ + 790;
  45091.   var $this_addr_i9_i_i_i_i_i_i_i = __stackBase__ + 794;
  45092.   var $obj_addr_i_i_i_i_i_i_i_i = __stackBase__ + 798;
  45093.   var $size_i_i_i_i_i_i_i_i = __stackBase__ + 802;
  45094.   var $this_addr_i1_i_i_i_i_i_i_i49 = __stackBase__ + 806;
  45095.   var $i_addr_i_i_i_i_i_i_i_i50 = __stackBase__ + 810;
  45096.   var $this_addr_i_i_i_i_i_i_i_i51 = __stackBase__ + 814;
  45097.   var $count_addr_i_i_i_i_i_i_i_i = __stackBase__ + 818;
  45098.   var $retval_i_i_i_i_i_i_i52 = __stackBase__ + 822;
  45099.   var $this_addr_i_i_i26_i_i_i_i = __stackBase__ + 823;
  45100.   var $c_addr_i_i_i_i_i_i_i = __stackBase__ + 827;
  45101.   var $items_addr_i_i_i_i_i_i_i = __stackBase__ + 831;
  45102.   var $items_len_addr_i_i_i_i_i_i_i = __stackBase__ + 835;
  45103.   var $i_i_i_i_i_i_i_i = __stackBase__ + 839;
  45104.   var $ref_tmp_i_i_i_i_i_i_i = __stackBase__ + 843;
  45105.   var $retval_i_i27_i_i_i_i = __stackBase__ + 845;
  45106.   var $this_addr_i16_i_i_i_i_i = __stackBase__ + 846;
  45107.   var $c_addr_i_i_i_i_i_i55 = __stackBase__ + 850;
  45108.   var $components_addr_i_i_i_i_i_i = __stackBase__ + 854;
  45109.   var $num_components_addr_i_i_i_i_i_i = __stackBase__ + 858;
  45110.   var $agg_tmp14_i_i_i_i_i = __stackBase__ + 862;
  45111.   var $this_addr_i1_i28_i_i_i_i = __stackBase__ + 864;
  45112.   var $count_addr_i2_i_i_i_i_i = __stackBase__ + 868;
  45113.   var $this_addr_i_i29_i_i_i_i = __stackBase__ + 872;
  45114.   var $count_addr_i_i_i_i_i_i56 = __stackBase__ + 876;
  45115.   var $retval_i30_i_i_i_i = __stackBase__ + 880;
  45116.   var $this_addr_i31_i_i_i_i = __stackBase__ + 881;
  45117.   var $c_addr_i32_i_i_i_i = __stackBase__ + 885;
  45118.   var $ligatures_addr_i_i_i_i_i = __stackBase__ + 889;
  45119.   var $component_count_list_addr_i_i_i_i_i = __stackBase__ + 893;
  45120.   var $num_ligatures_addr_i_i_i_i_i = __stackBase__ + 897;
  45121.   var $component_list_addr_i_i_i_i_i = __stackBase__ + 901;
  45122.   var $i_i_i_i_i_i58 = __stackBase__ + 905;
  45123.   var $agg_tmp_i_i_i_i_i = __stackBase__ + 909;
  45124.   var $this_addr_i15_i_i_i_i = __stackBase__ + 911;
  45125.   var $count_addr_i_i_i_i_i = __stackBase__ + 915;
  45126.   var $this_addr_i_i_i_i_i_i_i59 = __stackBase__ + 919;
  45127.   var $i_addr_i_i_i_i_i_i_i60 = __stackBase__ + 923;
  45128.   var $this_addr_i1_i_i_i_i_i61 = __stackBase__ + 925;
  45129.   var $i_addr_i_i_i_i_i_i62 = __stackBase__ + 929;
  45130.   var $this_addr_i_i6_i_i_i_i63 = __stackBase__ + 931;
  45131.   var $ret_i_i7_i_i_i_i64 = __stackBase__ + 935;
  45132.   var $this_addr_i8_i_i_i_i65 = __stackBase__ + 939;
  45133.   var $c_addr_i_i_i_i_i66 = __stackBase__ + 943;
  45134.   var $base_addr_i_i_i_i_i67 = __stackBase__ + 947;
  45135.   var $t_i_i_i_i_i68 = __stackBase__ + 951;
  45136.   var $retval_i_i_i_i_i_i70 = __stackBase__ + 955;
  45137.   var $this_addr_i_i_i_i_i_i71 = __stackBase__ + 959;
  45138.   var $size_addr_i_i_i_i_i_i72 = __stackBase__ + 963;
  45139.   var $ret_i_i_i_i_i_i73 = __stackBase__ + 967;
  45140.   var $retval_i_i_i_i_i74 = __stackBase__ + 971;
  45141.   var $this_addr_i_i_i_i_i75 = __stackBase__ + 975;
  45142.   var $obj_addr_i_i_i_i_i76 = __stackBase__ + 979;
  45143.   var $size_i_i_i_i_i77 = __stackBase__ + 983;
  45144.   var $retval_i_i_i_i80 = __stackBase__ + 987;
  45145.   var $this_addr_i_i_i_i81 = __stackBase__ + 988;
  45146.   var $c_addr_i_i_i_i82 = __stackBase__ + 992;
  45147.   var $first_glyphs_addr_i_i_i_i = __stackBase__ + 996;
  45148.   var $ligature_per_first_glyph_count_list_addr_i_i_i_i = __stackBase__ + 1e3;
  45149.   var $num_first_glyphs_addr_i_i_i_i = __stackBase__ + 1004;
  45150.   var $ligatures_list_addr_i_i_i_i = __stackBase__ + 1008;
  45151.   var $component_count_list_addr_i_i_i_i = __stackBase__ + 1012;
  45152.   var $component_list_addr_i_i_i_i = __stackBase__ + 1016;
  45153.   var $i_i_i_i_i = __stackBase__ + 1020;
  45154.   var $retval_i_i_i85 = __stackBase__ + 1024;
  45155.   var $this_addr_i_i8_i = __stackBase__ + 1025;
  45156.   var $c_addr_i_i_i86 = __stackBase__ + 1029;
  45157.   var $first_glyphs_addr_i_i_i = __stackBase__ + 1033;
  45158.   var $ligature_per_first_glyph_count_list_addr_i_i_i = __stackBase__ + 1037;
  45159.   var $num_first_glyphs_addr_i_i_i = __stackBase__ + 1041;
  45160.   var $ligatures_list_addr_i_i_i = __stackBase__ + 1045;
  45161.   var $component_count_list_addr_i_i_i = __stackBase__ + 1049;
  45162.   var $component_list_addr_i_i_i = __stackBase__ + 1053;
  45163.   var $format3_i_i_i87 = __stackBase__ + 1057;
  45164.   var $retval_i_i89 = __stackBase__ + 1061;
  45165.   var $this_addr_i9_i = __stackBase__ + 1062;
  45166.   var $c_addr_i_i90 = __stackBase__ + 1066;
  45167.   var $lookup_props_addr_i_i91 = __stackBase__ + 1070;
  45168.   var $first_glyphs_addr_i_i = __stackBase__ + 1074;
  45169.   var $ligature_per_first_glyph_count_list_addr_i_i = __stackBase__ + 1078;
  45170.   var $num_first_glyphs_addr_i_i = __stackBase__ + 1082;
  45171.   var $ligatures_list_addr_i_i = __stackBase__ + 1086;
  45172.   var $component_count_list_addr_i_i = __stackBase__ + 1090;
  45173.   var $component_list_addr_i_i = __stackBase__ + 1094;
  45174.   var $array_addr_i_i92 = __stackBase__ + 1098;
  45175.   var $len_addr_i_i93 = __stackBase__ + 1102;
  45176.   var $compar_addr_i_i94 = __stackBase__ + 1106;
  45177.   var $array2_addr_i_i95 = __stackBase__ + 1110;
  45178.   var $k_i_i96 = __stackBase__ + 1114;
  45179.   var $new_k_i_i97 = __stackBase__ + 1118;
  45180.   var $j_i_i98 = __stackBase__ + 1122;
  45181.   var $t_i_i99 = __stackBase__ + 1126;
  45182.   var $t12_i_i100 = __stackBase__ + 1128;
  45183.   var $this_addr_i_i1_i = __stackBase__ + 1132;
  45184.   var $i_addr_i_i_i101 = __stackBase__ + 1136;
  45185.   var $this_addr_i2_i = __stackBase__ + 1138;
  45186.   var $i_addr_i_i102 = __stackBase__ + 1142;
  45187.   var $this_addr_i_i_i103 = __stackBase__ + 1144;
  45188.   var $unicode_addr_i_i_i104 = __stackBase__ + 1148;
  45189.   var $variation_selector_addr_i_i_i105 = __stackBase__ + 1152;
  45190.   var $glyph_addr_i_i_i106 = __stackBase__ + 1156;
  45191.   var $font_addr_i_i107 = __stackBase__ + 1160;
  45192.   var $unicode_addr_i_i108 = __stackBase__ + 1164;
  45193.   var $variation_selector_addr_i_i109 = __stackBase__ + 1168;
  45194.   var $glyph_addr_i_i110 = __stackBase__ + 1172;
  45195.   var $this_addr_i_i111 = __stackBase__ + 1176;
  45196.   var $len_i_i112 = __stackBase__ + 1180;
  45197.   var $p_i_i113 = __stackBase__ + 1184;
  45198.   var $plan_addr_i114 = __stackBase__ + 1188;
  45199.   var $font_addr_i115 = __stackBase__ + 1192;
  45200.   var $first_glyphs_i = __stackBase__ + 1196;
  45201.   var $first_glyphs_indirection_i = __stackBase__ + 1200;
  45202.   var $ligature_per_first_glyph_count_list_i = __stackBase__ + 1208;
  45203.   var $num_first_glyphs_i = __stackBase__ + 1216;
  45204.   var $ligature_list_i = __stackBase__ + 1220;
  45205.   var $component_count_list_i = __stackBase__ + 1236;
  45206.   var $component_list_i = __stackBase__ + 1268;
  45207.   var $num_ligatures_i = __stackBase__ + 1284;
  45208.   var $first_glyph_idx_i = __stackBase__ + 1288;
  45209.   var $first_u_i = __stackBase__ + 1292;
  45210.   var $first_glyph_i = __stackBase__ + 1296;
  45211.   var $i_i = __stackBase__ + 1300;
  45212.   var $first_glyph_idx12_i = __stackBase__ + 1304;
  45213.   var $second_glyph_idx_i = __stackBase__ + 1308;
  45214.   var $second_u_i = __stackBase__ + 1312;
  45215.   var $ligature_u_i = __stackBase__ + 1316;
  45216.   var $second_glyph_i = __stackBase__ + 1320;
  45217.   var $ligature_glyph_i = __stackBase__ + 1324;
  45218.   var $first_glyphs_supplier_i = __stackBase__ + 1328;
  45219.   var $ligature_per_first_glyph_count_supplier_i = __stackBase__ + 1336;
  45220.   var $ligatures_supplier_i = __stackBase__ + 1344;
  45221.   var $component_count_supplier_i = __stackBase__ + 1352;
  45222.   var $component_supplier_i = __stackBase__ + 1360;
  45223.   var $buf_i116 = __stackBase__ + 1368;
  45224.   var $c_i117 = __stackBase__ + 1624;
  45225.   var $lookup_i118 = __stackBase__ + 1644;
  45226.   var $this_addr_i_i70_i = __stackBase__ + 1648;
  45227.   var $ret_i_i_i = __stackBase__ + 1652;
  45228.   var $this_addr_i71_i = __stackBase__ + 1656;
  45229.   var $this_addr_i_i65_i = __stackBase__ + 1660;
  45230.   var $start_addr_i_i_i = __stackBase__ + 1664;
  45231.   var $size_addr_i_i_i = __stackBase__ + 1668;
  45232.   var $this_addr_i66_i = __stackBase__ + 1672;
  45233.   var $start_addr_i_i = __stackBase__ + 1676;
  45234.   var $size_addr_i_i = __stackBase__ + 1680;
  45235.   var $this_addr_i_i55_i = __stackBase__ + 1684;
  45236.   var $array_addr_i_i56_i = __stackBase__ + 1688;
  45237.   var $len__addr_i_i57_i = __stackBase__ + 1692;
  45238.   var $this_addr_i58_i = __stackBase__ + 1696;
  45239.   var $array_addr_i59_i = __stackBase__ + 1700;
  45240.   var $len__addr_i60_i = __stackBase__ + 1704;
  45241.   var $this_addr_i1_i_i_i = __stackBase__ + 1708;
  45242.   var $i_addr_i_i4_i_i = __stackBase__ + 1712;
  45243.   var $this_addr_i_i_i_i5_i_i = __stackBase__ + 1716;
  45244.   var $i_addr_i_i_i_i6_i_i = __stackBase__ + 1720;
  45245.   var $this_addr_i1_i_i_i_i = __stackBase__ + 1722;
  45246.   var $i_addr_i_i_i7_i_i = __stackBase__ + 1726;
  45247.   var $this_addr_i_i_i8_i_i = __stackBase__ + 1728;
  45248.   var $ret_i_i_i_i_i = __stackBase__ + 1732;
  45249.   var $this_addr_i_i9_i_i = __stackBase__ + 1736;
  45250.   var $c_addr_i_i10_i_i = __stackBase__ + 1740;
  45251.   var $base_addr_i_i_i_i = __stackBase__ + 1744;
  45252.   var $t_i_i_i_i = __stackBase__ + 1748;
  45253.   var $X_addr_i_i_i_i = __stackBase__ + 1752;
  45254.   var $this_addr_i11_i_i = __stackBase__ + 1756;
  45255.   var $c_addr_i12_i_i = __stackBase__ + 1760;
  45256.   var $i_addr_i_i45_i = __stackBase__ + 1764;
  45257.   var $this_addr_i_i181_i_i_i = __stackBase__ + 1768;
  45258.   var $this_addr_i182_i_i_i = __stackBase__ + 1772;
  45259.   var $this_addr_i171_i_i_i = __stackBase__ + 1776;
  45260.   var $i_addr_i172_i_i_i = __stackBase__ + 1780;
  45261.   var $this_addr_i_i157_i_i_i = __stackBase__ + 1784;
  45262.   var $this_addr_i158_i_i_i = __stackBase__ + 1788;
  45263.   var $this_addr_i_i147_i_i_i = __stackBase__ + 1792;
  45264.   var $i_addr_i_i148_i_i_i = __stackBase__ + 1796;
  45265.   var $this_addr_i149_i_i_i = __stackBase__ + 1798;
  45266.   var $i_addr_i150_i_i_i = __stackBase__ + 1802;
  45267.   var $this_addr_i_i133_i_i_i = __stackBase__ + 1804;
  45268.   var $this_addr_i134_i_i_i = __stackBase__ + 1808;
  45269.   var $this_addr_i123_i_i_i = __stackBase__ + 1812;
  45270.   var $i_addr_i124_i_i_i = __stackBase__ + 1816;
  45271.   var $this_addr_i_i109_i_i_i = __stackBase__ + 1820;
  45272.   var $this_addr_i110_i_i_i = __stackBase__ + 1824;
  45273.   var $this_addr_i_i_i_i29_i_i_i = __stackBase__ + 1828;
  45274.   var $i_addr_i_i_i_i30_i_i_i = __stackBase__ + 1832;
  45275.   var $this_addr_i1_i_i31_i_i_i = __stackBase__ + 1834;
  45276.   var $i_addr_i_i10_i_i_i_i = __stackBase__ + 1838;
  45277.   var $this_addr_i_i11_i_i_i_i = __stackBase__ + 1840;
  45278.   var $ret_i_i12_i_i_i_i = __stackBase__ + 1844;
  45279.   var $this_addr_i13_i_i_i_i = __stackBase__ + 1848;
  45280.   var $c_addr_i_i32_i_i_i = __stackBase__ + 1852;
  45281.   var $base_addr_i_i33_i_i_i = __stackBase__ + 1856;
  45282.   var $t_i_i34_i_i_i = __stackBase__ + 1860;
  45283.   var $retval_i_i_i35_i_i_i = __stackBase__ + 1864;
  45284.   var $this_addr_i_i3_i_i_i_i = __stackBase__ + 1868;
  45285.   var $size_addr_i_i_i36_i_i_i = __stackBase__ + 1872;
  45286.   var $ret_i_i_i37_i_i_i = __stackBase__ + 1876;
  45287.   var $retval_i_i38_i_i_i = __stackBase__ + 1880;
  45288.   var $this_addr_i4_i_i_i_i = __stackBase__ + 1884;
  45289.   var $obj_addr_i_i39_i_i_i = __stackBase__ + 1888;
  45290.   var $size_i_i40_i_i_i = __stackBase__ + 1892;
  45291.   var $this_addr_i_i_i42_i_i_i = __stackBase__ + 1896;
  45292.   var $i_addr_i_i_i43_i_i_i = __stackBase__ + 1900;
  45293.   var $this_addr_i_i44_i_i_i = __stackBase__ + 1902;
  45294.   var $i_addr_i_i_i_i_i = __stackBase__ + 1906;
  45295.   var $retval_i46_i_i_i = __stackBase__ + 1908;
  45296.   var $this_addr_i47_i_i_i = __stackBase__ + 1909;
  45297.   var $c_addr_i48_i_i_i = __stackBase__ + 1913;
  45298.   var $glyphs_addr_i49_i_i_i = __stackBase__ + 1917;
  45299.   var $num_glyphs_addr_i50_i_i_i = __stackBase__ + 1921;
  45300.   var $delta_addr_i_i_i_i = __stackBase__ + 1925;
  45301.   var $this_addr_i16_i_i_i = __stackBase__ + 1929;
  45302.   var $i_addr_i17_i_i_i = __stackBase__ + 1933;
  45303.   var $this_addr_i_i10_i_i_i = __stackBase__ + 1937;
  45304.   var $this_addr_i11_i_i_i = __stackBase__ + 1941;
  45305.   var $this_addr_i6_i_i_i = __stackBase__ + 1945;
  45306.   var $i_addr_i_i_i_i = __stackBase__ + 1949;
  45307.   var $this_addr_i_i52_i_i_i_i_i_i = __stackBase__ + 1953;
  45308.   var $i_addr_i_i_i_i_i_i_i_i = __stackBase__ + 1957;
  45309.   var $this_addr_i53_i_i_i_i_i_i = __stackBase__ + 1959;
  45310.   var $i_addr_i_i_i17_i_i_i_i = __stackBase__ + 1963;
  45311.   var $retval_i_i4_i_i_i_i_i_i = __stackBase__ + 1965;
  45312.   var $this_addr_i_i5_i_i_i_i_i_i = __stackBase__ + 1969;
  45313.   var $size_addr_i_i6_i_i_i_i_i_i = __stackBase__ + 1973;
  45314.   var $ret_i_i7_i_i_i_i_i_i = __stackBase__ + 1977;
  45315.   var $retval_i8_i_i_i_i_i_i = __stackBase__ + 1981;
  45316.   var $this_addr_i9_i_i_i_i_i_i = __stackBase__ + 1985;
  45317.   var $obj_addr_i10_i_i_i_i_i_i = __stackBase__ + 1989;
  45318.   var $size_i11_i_i_i_i_i_i = __stackBase__ + 1993;
  45319.   var $retval_i_i_i_i_i_i_i_i = __stackBase__ + 1997;
  45320.   var $this_addr_i1_i_i_i_i_i_i_i = __stackBase__ + 2001;
  45321.   var $size_addr_i_i_i_i_i_i_i_i = __stackBase__ + 2005;
  45322.   var $ret_i_i_i_i_i_i_i_i = __stackBase__ + 2009;
  45323.   var $this_addr_i_i_i_i_i_i_i_i_i_i = __stackBase__ + 2013;
  45324.   var $this_addr_i_i_i_i_i_i_i_i_i = __stackBase__ + 2017;
  45325.   var $this_addr_i_i_i_i_i_i_i_i = __stackBase__ + 2021;
  45326.   var $retval_i_i_i_i_i_i_i = __stackBase__ + 2025;
  45327.   var $this_addr_i_i_i18_i_i_i_i = __stackBase__ + 2029;
  45328.   var $obj_addr_i_i_i_i_i_i_i = __stackBase__ + 2033;
  45329.   var $size_i_i_i_i_i_i_i = __stackBase__ + 2037;
  45330.   var $retval_i_i19_i_i_i_i = __stackBase__ + 2041;
  45331.   var $this_addr_i9_i_i_i_i_i = __stackBase__ + 2042;
  45332.   var $c_addr_i_i_i_i_i_i = __stackBase__ + 2046;
  45333.   var $items_len_addr_i_i_i_i_i_i = __stackBase__ + 2050;
  45334.   var $this_addr_i1_i20_i_i_i_i = __stackBase__ + 2054;
  45335.   var $i_addr_i_i21_i_i_i_i = __stackBase__ + 2058;
  45336.   var $this_addr_i_i22_i_i_i_i = __stackBase__ + 2062;
  45337.   var $count_addr_i_i_i_i_i_i = __stackBase__ + 2066;
  45338.   var $retval_i23_i_i_i_i = __stackBase__ + 2070;
  45339.   var $this_addr_i24_i_i_i_i = __stackBase__ + 2071;
  45340.   var $c_addr_i25_i_i_i_i = __stackBase__ + 2075;
  45341.   var $items_addr_i_i_i_i_i = __stackBase__ + 2079;
  45342.   var $items_len_addr_i_i_i_i_i = __stackBase__ + 2083;
  45343.   var $i_i_i_i_i_i = __stackBase__ + 2087;
  45344.   var $ref_tmp_i_i_i_i_i = __stackBase__ + 2091;
  45345.   var $this_addr_i_i_i_i_i_i_i = __stackBase__ + 2093;
  45346.   var $i_addr_i_i_i_i_i_i_i = __stackBase__ + 2097;
  45347.   var $this_addr_i1_i_i_i_i_i = __stackBase__ + 2099;
  45348.   var $i_addr_i_i_i_i_i_i = __stackBase__ + 2103;
  45349.   var $this_addr_i_i6_i_i_i_i = __stackBase__ + 2105;
  45350.   var $ret_i_i7_i_i_i_i = __stackBase__ + 2109;
  45351.   var $this_addr_i8_i_i_i_i = __stackBase__ + 2113;
  45352.   var $c_addr_i_i_i_i_i = __stackBase__ + 2117;
  45353.   var $base_addr_i_i_i_i_i = __stackBase__ + 2121;
  45354.   var $t_i_i_i_i_i = __stackBase__ + 2125;
  45355.   var $retval_i_i_i_i_i_i = __stackBase__ + 2129;
  45356.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 2133;
  45357.   var $size_addr_i_i_i_i_i_i = __stackBase__ + 2137;
  45358.   var $ret_i_i_i_i_i_i = __stackBase__ + 2141;
  45359.   var $retval_i_i_i_i_i = __stackBase__ + 2145;
  45360.   var $this_addr_i_i_i_i_i = __stackBase__ + 2149;
  45361.   var $obj_addr_i_i_i_i_i = __stackBase__ + 2153;
  45362.   var $size_i_i_i_i_i = __stackBase__ + 2157;
  45363.   var $retval_i_i_i_i = __stackBase__ + 2161;
  45364.   var $this_addr_i_i_i_i = __stackBase__ + 2162;
  45365.   var $c_addr_i_i_i_i = __stackBase__ + 2166;
  45366.   var $glyphs_addr_i_i_i_i = __stackBase__ + 2170;
  45367.   var $substitutes_addr_i_i_i_i = __stackBase__ + 2174;
  45368.   var $num_glyphs_addr_i_i_i_i = __stackBase__ + 2178;
  45369.   var $retval_i_i_i = __stackBase__ + 2182;
  45370.   var $this_addr_i_i46_i = __stackBase__ + 2183;
  45371.   var $c_addr_i_i_i = __stackBase__ + 2187;
  45372.   var $glyphs_addr_i_i_i = __stackBase__ + 2191;
  45373.   var $substitutes_addr_i_i_i = __stackBase__ + 2195;
  45374.   var $num_glyphs_addr_i_i_i = __stackBase__ + 2199;
  45375.   var $format3_i_i_i = __stackBase__ + 2203;
  45376.   var $delta_i_i_i = __stackBase__ + 2207;
  45377.   var $tmp_i_i_i = __stackBase__ + 2211;
  45378.   var $tmp7_i_i_i = __stackBase__ + 2213;
  45379.   var $i_i_i_i = __stackBase__ + 2215;
  45380.   var $tmp11_i_i_i = __stackBase__ + 2219;
  45381.   var $tmp14_i_i_i = __stackBase__ + 2221;
  45382.   var $retval_i_i = __stackBase__ + 2223;
  45383.   var $this_addr_i47_i = __stackBase__ + 2224;
  45384.   var $c_addr_i_i = __stackBase__ + 2228;
  45385.   var $lookup_props_addr_i_i = __stackBase__ + 2232;
  45386.   var $glyphs_addr_i_i = __stackBase__ + 2236;
  45387.   var $substitutes_addr_i_i = __stackBase__ + 2240;
  45388.   var $num_glyphs_addr_i_i = __stackBase__ + 2244;
  45389.   var $this_addr_i_i40_i = __stackBase__ + 2248;
  45390.   var $array_addr_i_i_i = __stackBase__ + 2252;
  45391.   var $len__addr_i_i_i = __stackBase__ + 2256;
  45392.   var $this_addr_i41_i = __stackBase__ + 2260;
  45393.   var $array_addr_i42_i = __stackBase__ + 2264;
  45394.   var $len__addr_i_i = __stackBase__ + 2268;
  45395.   var $array_addr_i_i = __stackBase__ + 2272;
  45396.   var $len_addr_i_i = __stackBase__ + 2276;
  45397.   var $compar_addr_i_i = __stackBase__ + 2280;
  45398.   var $array2_addr_i_i = __stackBase__ + 2284;
  45399.   var $k_i_i = __stackBase__ + 2288;
  45400.   var $new_k_i_i = __stackBase__ + 2292;
  45401.   var $j_i_i = __stackBase__ + 2296;
  45402.   var $t_i_i = __stackBase__ + 2300;
  45403.   var $t12_i_i = __stackBase__ + 2302;
  45404.   var $this_addr_i_i23_i = __stackBase__ + 2304;
  45405.   var $i_addr_i_i24_i = __stackBase__ + 2308;
  45406.   var $this_addr_i25_i = __stackBase__ + 2310;
  45407.   var $i_addr_i26_i = __stackBase__ + 2314;
  45408.   var $this_addr_i21_i = __stackBase__ + 2316;
  45409.   var $len_i_i = __stackBase__ + 2320;
  45410.   var $p_i_i = __stackBase__ + 2324;
  45411.   var $this_addr_i_i19_i = __stackBase__ + 2328;
  45412.   var $i_addr_i_i_i = __stackBase__ + 2332;
  45413.   var $this_addr_i_i = __stackBase__ + 2334;
  45414.   var $i_addr_i_i = __stackBase__ + 2338;
  45415.   var $this_addr_i_i2_i = __stackBase__ + 2340;
  45416.   var $unicode_addr_i_i3_i = __stackBase__ + 2344;
  45417.   var $variation_selector_addr_i_i4_i = __stackBase__ + 2348;
  45418.   var $glyph_addr_i_i5_i = __stackBase__ + 2352;
  45419.   var $font_addr_i6_i = __stackBase__ + 2356;
  45420.   var $unicode_addr_i7_i = __stackBase__ + 2360;
  45421.   var $variation_selector_addr_i8_i = __stackBase__ + 2364;
  45422.   var $glyph_addr_i9_i = __stackBase__ + 2368;
  45423.   var $this_addr_i_i_i = __stackBase__ + 2372;
  45424.   var $unicode_addr_i_i_i = __stackBase__ + 2376;
  45425.   var $variation_selector_addr_i_i_i = __stackBase__ + 2380;
  45426.   var $glyph_addr_i_i_i = __stackBase__ + 2384;
  45427.   var $font_addr_i_i = __stackBase__ + 2388;
  45428.   var $unicode_addr_i_i = __stackBase__ + 2392;
  45429.   var $variation_selector_addr_i_i = __stackBase__ + 2396;
  45430.   var $glyph_addr_i_i = __stackBase__ + 2400;
  45431.   var $font_addr_i = __stackBase__ + 2408;
  45432.   var $feature_index_addr_i = __stackBase__ + 2412;
  45433.   var $glyphs_i = __stackBase__ + 2416;
  45434.   var $substitutes_i = __stackBase__ + 2774;
  45435.   var $num_glyphs_i = __stackBase__ + 3132;
  45436.   var $u_i = __stackBase__ + 3136;
  45437.   var $s_i = __stackBase__ + 3140;
  45438.   var $u_glyph_i = __stackBase__ + 3144;
  45439.   var $s_glyph_i = __stackBase__ + 3148;
  45440.   var $glyphs_supplier_i = __stackBase__ + 3152;
  45441.   var $substitutes_supplier_i = __stackBase__ + 3160;
  45442.   var $buf_i = __stackBase__ + 3168;
  45443.   var $c_i = __stackBase__ + 4012;
  45444.   var $lookup_i = __stackBase__ + 4032;
  45445.   var $retval;
  45446.   var $feature_index_addr;
  45447.   $feature_index_addr = $feature_index;
  45448.   var $1 = $plan;
  45449.   var $2 = $font;
  45450.   if ($feature_index_addr >>> 0 < 4) {
  45451.     HEAP[__stackBase__ + 2404] = $1;
  45452.     HEAP[$font_addr_i] = $2;
  45453.     HEAP[$feature_index_addr_i] = $feature_index_addr;
  45454.     HEAP[$num_glyphs_i] = 0;
  45455.     HEAP[$u_i] = 1569;
  45456.     while (1) {
  45457.       var $conv_i = HEAP[(HEAP[$u_i] - 1569 << 3) + (HEAP[$feature_index_addr_i] << 1) + 132440 | 0] & 65535;
  45458.       HEAP[$s_i] = $conv_i;
  45459.       do {
  45460.         if (($conv_i | 0) != 0) {
  45461.           var $71 = HEAP[$u_i];
  45462.           HEAP[$font_addr_i_i] = HEAP[$font_addr_i];
  45463.           HEAP[$unicode_addr_i_i] = $71;
  45464.           HEAP[$variation_selector_addr_i_i] = 0;
  45465.           HEAP[$glyph_addr_i_i] = $u_glyph_i;
  45466.           var $73 = HEAP[$unicode_addr_i_i];
  45467.           var $74 = HEAP[$variation_selector_addr_i_i];
  45468.           var $75 = HEAP[$glyph_addr_i_i];
  45469.           HEAP[$this_addr_i_i_i] = HEAP[$font_addr_i_i];
  45470.           HEAP[$unicode_addr_i_i_i] = $73;
  45471.           HEAP[$variation_selector_addr_i_i_i] = $74;
  45472.           HEAP[$glyph_addr_i_i_i] = $75;
  45473.           var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  45474.           HEAP[HEAP[$glyph_addr_i_i_i]] = 0;
  45475.           if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i_i + 72 | 0] + 48 | 0]]($this1_i_i_i, HEAP[$this1_i_i_i + 76 | 0], HEAP[$unicode_addr_i_i_i], HEAP[$variation_selector_addr_i_i_i], HEAP[$glyph_addr_i_i_i], HEAP[HEAP[$this1_i_i_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  45476.             break;
  45477.           }
  45478.           var $86 = HEAP[$s_i];
  45479.           HEAP[$font_addr_i6_i] = HEAP[$font_addr_i];
  45480.           HEAP[$unicode_addr_i7_i] = $86;
  45481.           HEAP[$variation_selector_addr_i8_i] = 0;
  45482.           HEAP[$glyph_addr_i9_i] = $s_glyph_i;
  45483.           var $88 = HEAP[$unicode_addr_i7_i];
  45484.           var $89 = HEAP[$variation_selector_addr_i8_i];
  45485.           var $90 = HEAP[$glyph_addr_i9_i];
  45486.           HEAP[$this_addr_i_i2_i] = HEAP[$font_addr_i6_i];
  45487.           HEAP[$unicode_addr_i_i3_i] = $88;
  45488.           HEAP[$variation_selector_addr_i_i4_i] = $89;
  45489.           HEAP[$glyph_addr_i_i5_i] = $90;
  45490.           var $this1_i_i10_i = HEAP[$this_addr_i_i2_i];
  45491.           HEAP[HEAP[$glyph_addr_i_i5_i]] = 0;
  45492.           if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i10_i + 72 | 0] + 48 | 0]]($this1_i_i10_i, HEAP[$this1_i_i10_i + 76 | 0], HEAP[$unicode_addr_i_i3_i], HEAP[$variation_selector_addr_i_i4_i], HEAP[$glyph_addr_i_i5_i], HEAP[HEAP[$this1_i_i10_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  45493.             break;
  45494.           }
  45495.           if ((HEAP[$u_glyph_i] | 0) == (HEAP[$s_glyph_i] | 0) | HEAP[$u_glyph_i] >>> 0 > 65535 | HEAP[$s_glyph_i] >>> 0 > 65535) {
  45496.             break;
  45497.           }
  45498.           var $conv13_i = HEAP[$u_glyph_i] & 65535;
  45499.           HEAP[$this_addr_i_i] = (HEAP[$num_glyphs_i] << 1) + $glyphs_i | 0;
  45500.           HEAP[$i_addr_i_i] = $conv13_i;
  45501.           var $106 = HEAP[$i_addr_i_i];
  45502.           HEAP[$this_addr_i_i19_i] = HEAP[$this_addr_i_i] | 0;
  45503.           HEAP[$i_addr_i_i_i] = $106;
  45504.           var $this1_i_i20_i = HEAP[$this_addr_i_i19_i];
  45505.           HEAP[$this1_i_i20_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  45506.           HEAP[$this1_i_i20_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  45507.           var $conv15_i = HEAP[$s_glyph_i] & 65535;
  45508.           HEAP[$this_addr_i25_i] = (HEAP[$num_glyphs_i] << 1) + $substitutes_i | 0;
  45509.           HEAP[$i_addr_i26_i] = $conv15_i;
  45510.           var $111 = HEAP[$i_addr_i26_i];
  45511.           HEAP[$this_addr_i_i23_i] = HEAP[$this_addr_i25_i] | 0;
  45512.           HEAP[$i_addr_i_i24_i] = $111;
  45513.           var $this1_i_i29_i = HEAP[$this_addr_i_i23_i];
  45514.           HEAP[$this1_i_i29_i | 0] = (HEAP[$i_addr_i_i24_i] & 65535) >> 8 & 255;
  45515.           HEAP[$this1_i_i29_i + 1 | 0] = HEAP[$i_addr_i_i24_i] & 255;
  45516.           HEAP[$num_glyphs_i] = HEAP[$num_glyphs_i] + 1 | 0;
  45517.         }
  45518.       } while (0);
  45519.       var $inc16_i = HEAP[$u_i] + 1 | 0;
  45520.       HEAP[$u_i] = $inc16_i;
  45521.       if ($inc16_i >>> 0 >= 1748) {
  45522.         break;
  45523.       }
  45524.     }
  45525.     var $116 = HEAP[$num_glyphs_i];
  45526.     HEAP[$array_addr_i_i] = $glyphs_i | 0;
  45527.     HEAP[$len_addr_i_i] = $116;
  45528.     HEAP[$compar_addr_i_i] = 110;
  45529.     HEAP[$array2_addr_i_i] = $substitutes_i | 0;
  45530.     L1142 : do {
  45531.       if ((HEAP[$len_addr_i_i] | 0) != 0) {
  45532.         HEAP[$k_i_i] = HEAP[$len_addr_i_i] - 1 | 0;
  45533.         var $128 = $t_i_i;
  45534.         var $129 = $t_i_i;
  45535.         var $130 = $t12_i_i;
  45536.         var $131 = $t12_i_i;
  45537.         while (1) {
  45538.           HEAP[$new_k_i_i] = 0;
  45539.           HEAP[$j_i_i] = 0;
  45540.           if (HEAP[$j_i_i] >>> 0 >= HEAP[$k_i_i] >>> 0) {
  45541.             break;
  45542.           }
  45543.           while (1) {
  45544.             if ((FUNCTION_TABLE[HEAP[$compar_addr_i_i]]((HEAP[$j_i_i] << 1) + HEAP[$array_addr_i_i] | 0, (HEAP[$j_i_i] + 1 << 1) + HEAP[$array_addr_i_i] | 0) | 0) > 0) {
  45545.               var $141 = (HEAP[$j_i_i] << 1) + HEAP[$array_addr_i_i] | 0;
  45546.               HEAP[$128] = HEAP[$141];
  45547.               HEAP[$128 + 1] = HEAP[$141 + 1];
  45548.               var $146 = (HEAP[$j_i_i] << 1) + HEAP[$array_addr_i_i] | 0;
  45549.               var $147 = (HEAP[$j_i_i] + 1 << 1) + HEAP[$array_addr_i_i] | 0;
  45550.               HEAP[$146] = HEAP[$147];
  45551.               HEAP[$146 + 1] = HEAP[$147 + 1];
  45552.               var $150 = (HEAP[$j_i_i] + 1 << 1) + HEAP[$array_addr_i_i] | 0;
  45553.               HEAP[$150] = HEAP[$129];
  45554.               HEAP[$150 + 1] = HEAP[$129 + 1];
  45555.               if ((HEAP[$array2_addr_i_i] | 0) != 0) {
  45556.                 var $154 = (HEAP[$j_i_i] << 1) + HEAP[$array2_addr_i_i] | 0;
  45557.                 HEAP[$130] = HEAP[$154];
  45558.                 HEAP[$130 + 1] = HEAP[$154 + 1];
  45559.                 var $159 = (HEAP[$j_i_i] << 1) + HEAP[$array2_addr_i_i] | 0;
  45560.                 var $160 = (HEAP[$j_i_i] + 1 << 1) + HEAP[$array2_addr_i_i] | 0;
  45561.                 HEAP[$159] = HEAP[$160];
  45562.                 HEAP[$159 + 1] = HEAP[$160 + 1];
  45563.                 var $163 = (HEAP[$j_i_i] + 1 << 1) + HEAP[$array2_addr_i_i] | 0;
  45564.                 HEAP[$163] = HEAP[$131];
  45565.                 HEAP[$163 + 1] = HEAP[$131 + 1];
  45566.               }
  45567.               HEAP[$new_k_i_i] = HEAP[$j_i_i];
  45568.             }
  45569.             HEAP[$j_i_i] = HEAP[$j_i_i] + 1 | 0;
  45570.             if (HEAP[$j_i_i] >>> 0 >= HEAP[$k_i_i] >>> 0) {
  45571.               break;
  45572.             }
  45573.           }
  45574.           var $_pr_i_i = HEAP[$new_k_i_i];
  45575.           HEAP[$k_i_i] = $_pr_i_i;
  45576.           if (($_pr_i_i | 0) == 0) {
  45577.             break L1142;
  45578.           }
  45579.         }
  45580.         HEAP[$k_i_i] = 0;
  45581.       }
  45582.     } while (0);
  45583.     var $177 = HEAP[$num_glyphs_i];
  45584.     HEAP[$this_addr_i41_i] = $glyphs_supplier_i;
  45585.     HEAP[$array_addr_i42_i] = $glyphs_i | 0;
  45586.     HEAP[$len__addr_i_i] = $177;
  45587.     var $181 = HEAP[$array_addr_i42_i];
  45588.     var $182 = HEAP[$len__addr_i_i];
  45589.     HEAP[$this_addr_i_i40_i] = HEAP[$this_addr_i41_i];
  45590.     HEAP[$array_addr_i_i_i] = $181;
  45591.     HEAP[$len__addr_i_i_i] = $182;
  45592.     var $this1_i_i44_i = HEAP[$this_addr_i_i40_i];
  45593.     HEAP[$this1_i_i44_i + 4 | 0] = HEAP[$array_addr_i_i_i];
  45594.     HEAP[$this1_i_i44_i | 0] = HEAP[$len__addr_i_i_i];
  45595.     var $194 = HEAP[$num_glyphs_i];
  45596.     HEAP[$this_addr_i58_i] = $substitutes_supplier_i;
  45597.     HEAP[$array_addr_i59_i] = $substitutes_i | 0;
  45598.     HEAP[$len__addr_i60_i] = $194;
  45599.     var $198 = HEAP[$array_addr_i59_i];
  45600.     var $199 = HEAP[$len__addr_i60_i];
  45601.     HEAP[$this_addr_i_i55_i] = HEAP[$this_addr_i58_i];
  45602.     HEAP[$array_addr_i_i56_i] = $198;
  45603.     HEAP[$len__addr_i_i57_i] = $199;
  45604.     var $this1_i_i62_i = HEAP[$this_addr_i_i55_i];
  45605.     HEAP[$this1_i_i62_i + 4 | 0] = HEAP[$array_addr_i_i56_i];
  45606.     HEAP[$this1_i_i62_i | 0] = HEAP[$len__addr_i_i57_i];
  45607.     HEAP[$this_addr_i66_i] = $c_i;
  45608.     HEAP[$start_addr_i_i] = $buf_i | 0;
  45609.     HEAP[$size_addr_i_i] = 844;
  45610.     var $214 = HEAP[$start_addr_i_i];
  45611.     var $215 = HEAP[$size_addr_i_i];
  45612.     HEAP[$this_addr_i_i65_i] = HEAP[$this_addr_i66_i];
  45613.     HEAP[$start_addr_i_i_i] = $214;
  45614.     HEAP[$size_addr_i_i_i] = $215;
  45615.     var $this1_i_i68_i = HEAP[$this_addr_i_i65_i];
  45616.     HEAP[$this1_i_i68_i + 4 | 0] = HEAP[$start_addr_i_i_i];
  45617.     HEAP[$this1_i_i68_i + 8 | 0] = HEAP[$this1_i_i68_i + 4 | 0] + HEAP[$size_addr_i_i_i] | 0;
  45618.     HEAP[$this1_i_i68_i + 16 | 0] = 0;
  45619.     HEAP[$this1_i_i68_i + 12 | 0] = HEAP[$this1_i_i68_i + 4 | 0];
  45620.     HEAP[$this1_i_i68_i | 0] = 0;
  45621.     HEAP[$this_addr_i71_i] = $c_i;
  45622.     HEAP[$this_addr_i_i70_i] = HEAP[$this_addr_i71_i];
  45623.     HEAP[$ret_i_i_i] = HEAP[HEAP[$this_addr_i_i70_i] + 12 | 0];
  45624.     HEAP[$lookup_i] = HEAP[$ret_i_i_i];
  45625.     var $239 = HEAP[$num_glyphs_i];
  45626.     HEAP[$this_addr_i47_i] = HEAP[$lookup_i];
  45627.     HEAP[$c_addr_i_i] = $c_i;
  45628.     HEAP[$lookup_props_addr_i_i] = 8;
  45629.     HEAP[$glyphs_addr_i_i] = $glyphs_supplier_i;
  45630.     HEAP[$substitutes_addr_i_i] = $substitutes_supplier_i;
  45631.     HEAP[$num_glyphs_addr_i_i] = $239;
  45632.     var $this1_i48_i = HEAP[$this_addr_i47_i];
  45633.     if (__ZN2OT6Lookup9serializeEPNS_22hb_serialize_context_tEjjj($this1_i48_i, HEAP[$c_addr_i_i], 1, HEAP[$lookup_props_addr_i_i])) {
  45634.       var $251 = HEAP[$c_addr_i_i];
  45635.       HEAP[$this_addr_i11_i_i] = $this1_i48_i;
  45636.       HEAP[$c_addr_i12_i_i] = $251;
  45637.       HEAP[$i_addr_i_i45_i] = 0;
  45638.       var $this1_i13_i_i = HEAP[$this_addr_i11_i_i];
  45639.       HEAP[$X_addr_i_i_i_i] = $this1_i13_i_i + 4 | 0;
  45640.       var $261 = HEAP[$i_addr_i_i45_i];
  45641.       HEAP[$this_addr_i1_i_i_i] = HEAP[$X_addr_i_i_i_i];
  45642.       HEAP[$i_addr_i_i4_i_i] = $261;
  45643.       var $268 = HEAP[$c_addr_i12_i_i];
  45644.       HEAP[$this_addr_i_i9_i_i] = (HEAP[$i_addr_i_i4_i_i] << 1) + HEAP[$this_addr_i1_i_i_i] + 2 | 0;
  45645.       HEAP[$c_addr_i_i10_i_i] = $268;
  45646.       HEAP[$base_addr_i_i_i_i] = $this1_i13_i_i;
  45647.       var $this1_i_i15_i_i = HEAP[$this_addr_i_i9_i_i];
  45648.       HEAP[$this_addr_i_i_i8_i_i] = HEAP[$c_addr_i_i10_i_i];
  45649.       HEAP[$ret_i_i_i_i_i] = HEAP[HEAP[$this_addr_i_i_i8_i_i] + 12 | 0];
  45650.       HEAP[$t_i_i_i_i] = HEAP[$ret_i_i_i_i_i];
  45651.       var $conv_i_i18_i_i = HEAP[$t_i_i_i_i] - HEAP[$base_addr_i_i_i_i] & 65535;
  45652.       HEAP[$this_addr_i1_i_i_i_i] = $this1_i_i15_i_i;
  45653.       HEAP[$i_addr_i_i_i7_i_i] = $conv_i_i18_i_i;
  45654.       var $288 = HEAP[$i_addr_i_i_i7_i_i];
  45655.       HEAP[$this_addr_i_i_i_i5_i_i] = HEAP[$this_addr_i1_i_i_i_i] | 0;
  45656.       HEAP[$i_addr_i_i_i_i6_i_i] = $288;
  45657.       var $this1_i_i_i_i20_i_i = HEAP[$this_addr_i_i_i_i5_i_i];
  45658.       HEAP[$this1_i_i_i_i20_i_i | 0] = (HEAP[$i_addr_i_i_i_i6_i_i] & 65535) >> 8 & 255;
  45659.       HEAP[$this1_i_i_i_i20_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i6_i_i] & 255;
  45660.       var $305 = HEAP[$c_addr_i_i];
  45661.       var $306 = HEAP[$glyphs_addr_i_i];
  45662.       var $307 = HEAP[$substitutes_addr_i_i];
  45663.       var $308 = HEAP[$num_glyphs_addr_i_i];
  45664.       HEAP[$this_addr_i_i46_i] = HEAP[$t_i_i_i_i] | 0;
  45665.       HEAP[$c_addr_i_i_i] = $305;
  45666.       HEAP[$glyphs_addr_i_i_i] = $306;
  45667.       HEAP[$substitutes_addr_i_i_i] = $307;
  45668.       HEAP[$num_glyphs_addr_i_i_i] = $308;
  45669.       var $this1_i_i51_i = HEAP[$this_addr_i_i46_i];
  45670.       do {
  45671.         if ((__ZN2OT22hb_serialize_context_t10extend_minINS_7IntTypeItLj2EEEEEPT_RS4_(HEAP[$c_addr_i_i_i], $this1_i_i51_i | 0) | 0) != 0) {
  45672.           HEAP[$format3_i_i_i] = 2;
  45673.           L1162 : do {
  45674.             if ((HEAP[$num_glyphs_addr_i_i_i] | 0) != 0) {
  45675.               HEAP[$format3_i_i_i] = 1;
  45676.               HEAP[$this_addr_i6_i_i_i] = HEAP[$substitutes_addr_i_i_i];
  45677.               HEAP[$i_addr_i_i_i_i] = 0;
  45678.               var $this1_i7_i_i_i = HEAP[$this_addr_i6_i_i_i];
  45679.               if (HEAP[$i_addr_i_i_i_i] >>> 0 >= HEAP[$this1_i7_i_i_i | 0] >>> 0) {
  45680.                 var $330 = $tmp_i_i_i;
  45681.                 HEAP[$330] = 0;
  45682.                 HEAP[$330 + 1] = 0;
  45683.               } else {
  45684.                 var $333 = $tmp_i_i_i;
  45685.                 var $334 = (HEAP[$i_addr_i_i_i_i] << 1) + HEAP[$this1_i7_i_i_i + 4 | 0] | 0;
  45686.                 HEAP[$333] = HEAP[$334];
  45687.                 HEAP[$333 + 1] = HEAP[$334 + 1];
  45688.               }
  45689.               HEAP[$this_addr_i11_i_i_i] = $tmp_i_i_i;
  45690.               HEAP[$this_addr_i_i10_i_i_i] = HEAP[$this_addr_i11_i_i_i] | 0;
  45691.               var $this1_i_i13_i_i_i = HEAP[$this_addr_i_i10_i_i_i];
  45692.               var $conv_i_i54_i = ((HEAP[$this1_i_i13_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i13_i_i_i + 1 | 0] & 255) & 65535;
  45693.               HEAP[$this_addr_i16_i_i_i] = HEAP[$glyphs_addr_i_i_i];
  45694.               HEAP[$i_addr_i17_i_i_i] = 0;
  45695.               var $this1_i18_i_i_i = HEAP[$this_addr_i16_i_i_i];
  45696.               if (HEAP[$i_addr_i17_i_i_i] >>> 0 >= HEAP[$this1_i18_i_i_i | 0] >>> 0) {
  45697.                 var $348 = $tmp7_i_i_i;
  45698.                 HEAP[$348] = 0;
  45699.                 HEAP[$348 + 1] = 0;
  45700.               } else {
  45701.                 var $351 = $tmp7_i_i_i;
  45702.                 var $352 = (HEAP[$i_addr_i17_i_i_i] << 1) + HEAP[$this1_i18_i_i_i + 4 | 0] | 0;
  45703.                 HEAP[$351] = HEAP[$352];
  45704.                 HEAP[$351 + 1] = HEAP[$352 + 1];
  45705.               }
  45706.               HEAP[$this_addr_i110_i_i_i] = $tmp7_i_i_i;
  45707.               HEAP[$this_addr_i_i109_i_i_i] = HEAP[$this_addr_i110_i_i_i] | 0;
  45708.               var $this1_i_i113_i_i_i = HEAP[$this_addr_i_i109_i_i_i];
  45709.               HEAP[$delta_i_i_i] = $conv_i_i54_i - (((HEAP[$this1_i_i113_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i113_i_i_i + 1 | 0] & 255) & 65535) | 0;
  45710.               HEAP[$i_i_i_i] = 1;
  45711.               if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$num_glyphs_addr_i_i_i] >>> 0) {
  45712.                 break;
  45713.               }
  45714.               var $365 = $tmp11_i_i_i;
  45715.               var $374 = $tmp14_i_i_i;
  45716.               var $381 = $tmp14_i_i_i;
  45717.               var $382 = $tmp11_i_i_i;
  45718.               while (1) {
  45719.                 var $383 = HEAP[$delta_i_i_i];
  45720.                 var $385 = HEAP[$i_i_i_i];
  45721.                 HEAP[$this_addr_i123_i_i_i] = HEAP[$substitutes_addr_i_i_i];
  45722.                 HEAP[$i_addr_i124_i_i_i] = $385;
  45723.                 var $this1_i125_i_i_i = HEAP[$this_addr_i123_i_i_i];
  45724.                 if (HEAP[$i_addr_i124_i_i_i] >>> 0 >= HEAP[$this1_i125_i_i_i | 0] >>> 0) {
  45725.                   HEAP[$365] = 0;
  45726.                   HEAP[$365 + 1] = 0;
  45727.                 } else {
  45728.                   var $390 = (HEAP[$i_addr_i124_i_i_i] << 1) + HEAP[$this1_i125_i_i_i + 4 | 0] | 0;
  45729.                   HEAP[$382] = HEAP[$390];
  45730.                   HEAP[$382 + 1] = HEAP[$390 + 1];
  45731.                 }
  45732.                 HEAP[$this_addr_i182_i_i_i] = $tmp11_i_i_i;
  45733.                 HEAP[$this_addr_i_i181_i_i_i] = HEAP[$this_addr_i182_i_i_i] | 0;
  45734.                 var $this1_i_i185_i_i_i = HEAP[$this_addr_i_i181_i_i_i];
  45735.                 var $conv13_i_i_i = ((HEAP[$this1_i_i185_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i185_i_i_i + 1 | 0] & 255) & 65535;
  45736.                 var $394 = HEAP[$i_i_i_i];
  45737.                 HEAP[$this_addr_i171_i_i_i] = HEAP[$glyphs_addr_i_i_i];
  45738.                 HEAP[$i_addr_i172_i_i_i] = $394;
  45739.                 var $this1_i173_i_i_i = HEAP[$this_addr_i171_i_i_i];
  45740.                 if (HEAP[$i_addr_i172_i_i_i] >>> 0 >= HEAP[$this1_i173_i_i_i | 0] >>> 0) {
  45741.                   HEAP[$374] = 0;
  45742.                   HEAP[$374 + 1] = 0;
  45743.                 } else {
  45744.                   var $399 = (HEAP[$i_addr_i172_i_i_i] << 1) + HEAP[$this1_i173_i_i_i + 4 | 0] | 0;
  45745.                   HEAP[$381] = HEAP[$399];
  45746.                   HEAP[$381 + 1] = HEAP[$399 + 1];
  45747.                 }
  45748.                 HEAP[$this_addr_i158_i_i_i] = $tmp14_i_i_i;
  45749.                 HEAP[$this_addr_i_i157_i_i_i] = HEAP[$this_addr_i158_i_i_i] | 0;
  45750.                 var $this1_i_i161_i_i_i = HEAP[$this_addr_i_i157_i_i_i];
  45751.                 if (($383 | 0) != ($conv13_i_i_i - (((HEAP[$this1_i_i161_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i161_i_i_i + 1 | 0] & 255) & 65535) | 0)) {
  45752.                   break;
  45753.                 }
  45754.                 HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  45755.                 if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$num_glyphs_addr_i_i_i] >>> 0) {
  45756.                   break L1162;
  45757.                 }
  45758.               }
  45759.               HEAP[$format3_i_i_i] = 2;
  45760.             }
  45761.           } while (0);
  45762.           var $conv24_i_i_i = HEAP[$format3_i_i_i] & 65535;
  45763.           HEAP[$this_addr_i149_i_i_i] = $this1_i_i51_i | 0;
  45764.           HEAP[$i_addr_i150_i_i_i] = $conv24_i_i_i;
  45765.           var $408 = HEAP[$i_addr_i150_i_i_i];
  45766.           HEAP[$this_addr_i_i147_i_i_i] = HEAP[$this_addr_i149_i_i_i] | 0;
  45767.           HEAP[$i_addr_i_i148_i_i_i] = $408;
  45768.           var $this1_i_i153_i_i_i = HEAP[$this_addr_i_i147_i_i_i];
  45769.           HEAP[$this1_i_i153_i_i_i | 0] = (HEAP[$i_addr_i_i148_i_i_i] & 65535) >> 8 & 255;
  45770.           HEAP[$this1_i_i153_i_i_i + 1 | 0] = HEAP[$i_addr_i_i148_i_i_i] & 255;
  45771.           HEAP[$this_addr_i134_i_i_i] = $this1_i_i51_i | 0;
  45772.           HEAP[$this_addr_i_i133_i_i_i] = HEAP[$this_addr_i134_i_i_i] | 0;
  45773.           var $this1_i_i137_i_i_i = HEAP[$this_addr_i_i133_i_i_i];
  45774.           var $conv28_i_i_i = ((HEAP[$this1_i_i137_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i137_i_i_i + 1 | 0] & 255) & 65535;
  45775.           if (($conv28_i_i_i | 0) == 2) {
  45776.             var $539 = HEAP[$c_addr_i_i_i];
  45777.             var $540 = HEAP[$glyphs_addr_i_i_i];
  45778.             var $541 = HEAP[$substitutes_addr_i_i_i];
  45779.             var $542 = HEAP[$num_glyphs_addr_i_i_i];
  45780.             HEAP[$this_addr_i_i_i_i] = $this1_i_i51_i | 0;
  45781.             HEAP[$c_addr_i_i_i_i] = $539;
  45782.             HEAP[$glyphs_addr_i_i_i_i] = $540;
  45783.             HEAP[$substitutes_addr_i_i_i_i] = $541;
  45784.             HEAP[$num_glyphs_addr_i_i_i_i] = $542;
  45785.             var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  45786.             HEAP[$this_addr_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i];
  45787.             HEAP[$obj_addr_i_i_i_i_i] = $this1_i_i_i_i;
  45788.             var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  45789.             HEAP[$size_i_i_i_i_i] = 6;
  45790.             if (!(HEAP[$this1_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i_i_i_i_i] >>> 0)) {
  45791.               ___assert_func(102352, 451, 107440, 103368);
  45792.             }
  45793.             if (!(HEAP[$obj_addr_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i_i_i + 12 | 0] >>> 0)) {
  45794.               ___assert_func(102352, 451, 107440, 103368);
  45795.             }
  45796.             if (!((HEAP[$obj_addr_i_i_i_i_i] + HEAP[$size_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i_i_i_i_i + 12 | 0] >>> 0)) {
  45797.               ___assert_func(102352, 451, 107440, 103368);
  45798.             }
  45799.             var $sub_ptr_sub_i_i_i_i_i = HEAP[$obj_addr_i_i_i_i_i] + HEAP[$size_i_i_i_i_i] - HEAP[$this1_i_i_i_i_i + 12 | 0] | 0;
  45800.             HEAP[$this_addr_i_i_i_i_i_i] = $this1_i_i_i_i_i;
  45801.             HEAP[$size_addr_i_i_i_i_i_i] = $sub_ptr_sub_i_i_i_i_i;
  45802.             var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  45803.             do {
  45804.               if (HEAP[$this1_i_i_i_i_i_i + 16 | 0] & 1) {
  45805.                 label = 877;
  45806.               } else {
  45807.                 if ((HEAP[$this1_i_i_i_i_i_i + 8 | 0] - HEAP[$this1_i_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i_i_i_i] | 0)) {
  45808.                   label = 877;
  45809.                   break;
  45810.                 }
  45811.                 var $576 = HEAP[$this1_i_i_i_i_i_i + 12 | 0];
  45812.                 var $577 = HEAP[$size_addr_i_i_i_i_i_i];
  45813.                 for (var $$dest = $576, $$stop = $$dest + $577; $$dest < $$stop; $$dest++) {
  45814.                   HEAP[$$dest] = 0;
  45815.                 }
  45816.                 HEAP[$ret_i_i_i_i_i_i] = HEAP[$this1_i_i_i_i_i_i + 12 | 0];
  45817.                 var $head5_i_i_i_i_i_i = $this1_i_i_i_i_i_i + 12 | 0;
  45818.                 HEAP[$head5_i_i_i_i_i_i] = HEAP[$head5_i_i_i_i_i_i] + HEAP[$size_addr_i_i_i_i_i_i] | 0;
  45819.                 var $582 = HEAP[$ret_i_i_i_i_i_i];
  45820.                 HEAP[$retval_i_i_i_i_i_i] = $582;
  45821.                 var $583 = $582;
  45822.                 break;
  45823.               }
  45824.             } while (0);
  45825.             if (label == 877) {
  45826.               HEAP[$this1_i_i_i_i_i_i + 16 | 0] = 1;
  45827.               HEAP[$retval_i_i_i_i_i_i] = 0;
  45828.               var $583 = 0;
  45829.             }
  45830.             var $583;
  45831.             if (($583 | 0) != 0) {
  45832.               var $588 = HEAP[$obj_addr_i_i_i_i_i];
  45833.               HEAP[$retval_i_i_i_i_i] = $588;
  45834.               var $589 = $588;
  45835.             } else {
  45836.               HEAP[$retval_i_i_i_i_i] = 0;
  45837.               var $589 = 0;
  45838.             }
  45839.             var $589;
  45840.             do {
  45841.               if (($589 | 0) != 0) {
  45842.                 var $596 = HEAP[$c_addr_i_i_i_i];
  45843.                 var $597 = HEAP[$substitutes_addr_i_i_i_i];
  45844.                 var $598 = HEAP[$num_glyphs_addr_i_i_i_i];
  45845.                 HEAP[$this_addr_i24_i_i_i_i] = $this1_i_i_i_i + 4 | 0;
  45846.                 HEAP[$c_addr_i25_i_i_i_i] = $596;
  45847.                 HEAP[$items_addr_i_i_i_i_i] = $597;
  45848.                 HEAP[$items_len_addr_i_i_i_i_i] = $598;
  45849.                 var $this1_i26_i_i_i_i = HEAP[$this_addr_i24_i_i_i_i];
  45850.                 var $606 = HEAP[$c_addr_i25_i_i_i_i];
  45851.                 var $607 = HEAP[$items_len_addr_i_i_i_i_i];
  45852.                 HEAP[$this_addr_i9_i_i_i_i_i] = $this1_i26_i_i_i_i;
  45853.                 HEAP[$c_addr_i_i_i_i_i_i] = $606;
  45854.                 HEAP[$items_len_addr_i_i_i_i_i_i] = $607;
  45855.                 var $this1_i10_i_i_i_i_i = HEAP[$this_addr_i9_i_i_i_i_i];
  45856.                 HEAP[$this_addr_i9_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i];
  45857.                 HEAP[$obj_addr_i10_i_i_i_i_i_i] = $this1_i10_i_i_i_i_i;
  45858.                 var $this1_i12_i_i_i_i_i_i = HEAP[$this_addr_i9_i_i_i_i_i_i];
  45859.                 HEAP[$size_i11_i_i_i_i_i_i] = 2;
  45860.                 if (!(HEAP[$this1_i12_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i10_i_i_i_i_i_i] >>> 0)) {
  45861.                   ___assert_func(102352, 451, 107912, 103368);
  45862.                 }
  45863.                 if (!(HEAP[$obj_addr_i10_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i12_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  45864.                   ___assert_func(102352, 451, 107912, 103368);
  45865.                 }
  45866.                 if (!((HEAP[$obj_addr_i10_i_i_i_i_i_i] + HEAP[$size_i11_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i12_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  45867.                   ___assert_func(102352, 451, 107912, 103368);
  45868.                 }
  45869.                 var $sub_ptr_sub_i27_i_i_i_i_i_i = HEAP[$obj_addr_i10_i_i_i_i_i_i] + HEAP[$size_i11_i_i_i_i_i_i] - HEAP[$this1_i12_i_i_i_i_i_i + 12 | 0] | 0;
  45870.                 HEAP[$this_addr_i_i5_i_i_i_i_i_i] = $this1_i12_i_i_i_i_i_i;
  45871.                 HEAP[$size_addr_i_i6_i_i_i_i_i_i] = $sub_ptr_sub_i27_i_i_i_i_i_i;
  45872.                 var $this1_i_i28_i_i_i_i_i_i = HEAP[$this_addr_i_i5_i_i_i_i_i_i];
  45873.                 do {
  45874.                   if (HEAP[$this1_i_i28_i_i_i_i_i_i + 16 | 0] & 1) {
  45875.                     label = 890;
  45876.                   } else {
  45877.                     if ((HEAP[$this1_i_i28_i_i_i_i_i_i + 8 | 0] - HEAP[$this1_i_i28_i_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i6_i_i_i_i_i_i] | 0)) {
  45878.                       label = 890;
  45879.                       break;
  45880.                     }
  45881.                     var $639 = HEAP[$this1_i_i28_i_i_i_i_i_i + 12 | 0];
  45882.                     var $640 = HEAP[$size_addr_i_i6_i_i_i_i_i_i];
  45883.                     for (var $$dest = $639, $$stop = $$dest + $640; $$dest < $$stop; $$dest++) {
  45884.                       HEAP[$$dest] = 0;
  45885.                     }
  45886.                     HEAP[$ret_i_i7_i_i_i_i_i_i] = HEAP[$this1_i_i28_i_i_i_i_i_i + 12 | 0];
  45887.                     var $head5_i_i43_i_i_i_i_i_i = $this1_i_i28_i_i_i_i_i_i + 12 | 0;
  45888.                     HEAP[$head5_i_i43_i_i_i_i_i_i] = HEAP[$head5_i_i43_i_i_i_i_i_i] + HEAP[$size_addr_i_i6_i_i_i_i_i_i] | 0;
  45889.                     var $645 = HEAP[$ret_i_i7_i_i_i_i_i_i];
  45890.                     HEAP[$retval_i_i4_i_i_i_i_i_i] = $645;
  45891.                     var $646 = $645;
  45892.                     break;
  45893.                   }
  45894.                 } while (0);
  45895.                 if (label == 890) {
  45896.                   HEAP[$this1_i_i28_i_i_i_i_i_i + 16 | 0] = 1;
  45897.                   HEAP[$retval_i_i4_i_i_i_i_i_i] = 0;
  45898.                   var $646 = 0;
  45899.                 }
  45900.                 var $646;
  45901.                 if (($646 | 0) != 0) {
  45902.                   var $651 = HEAP[$obj_addr_i10_i_i_i_i_i_i];
  45903.                   HEAP[$retval_i8_i_i_i_i_i_i] = $651;
  45904.                   var $652 = $651;
  45905.                 } else {
  45906.                   HEAP[$retval_i8_i_i_i_i_i_i] = 0;
  45907.                   var $652 = 0;
  45908.                 }
  45909.                 var $652;
  45910.                 do {
  45911.                   if (($652 | 0) != 0) {
  45912.                     var $conv_i_i_i_i_i_i = HEAP[$items_len_addr_i_i_i_i_i_i] & 65535;
  45913.                     HEAP[$this_addr_i53_i_i_i_i_i_i] = $this1_i10_i_i_i_i_i | 0;
  45914.                     HEAP[$i_addr_i_i_i17_i_i_i_i] = $conv_i_i_i_i_i_i;
  45915.                     var $661 = HEAP[$i_addr_i_i_i17_i_i_i_i];
  45916.                     HEAP[$this_addr_i_i52_i_i_i_i_i_i] = HEAP[$this_addr_i53_i_i_i_i_i_i] | 0;
  45917.                     HEAP[$i_addr_i_i_i_i_i_i_i_i] = $661;
  45918.                     var $this1_i_i55_i_i_i_i_i_i = HEAP[$this_addr_i_i52_i_i_i_i_i_i];
  45919.                     HEAP[$this1_i_i55_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  45920.                     HEAP[$this1_i_i55_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i] & 255;
  45921.                     HEAP[$this_addr_i_i_i18_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i];
  45922.                     HEAP[$obj_addr_i_i_i_i_i_i_i] = $this1_i10_i_i_i_i_i;
  45923.                     var $this1_i_i_i28_i_i_i_i = HEAP[$this_addr_i_i_i18_i_i_i_i];
  45924.                     HEAP[$this_addr_i_i_i_i_i_i_i_i] = HEAP[$obj_addr_i_i_i_i_i_i_i];
  45925.                     HEAP[$this_addr_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i_i_i] | 0;
  45926.                     HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i_i_i_i] | 0;
  45927.                     var $this1_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i];
  45928.                     HEAP[$size_i_i_i_i_i_i_i] = ((((HEAP[$this1_i_i_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  45929.                     if (HEAP[$this1_i_i_i28_i_i_i_i + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i_i_i_i_i_i] >>> 0) {
  45930.                       ___assert_func(102352, 460, 106176, 103656);
  45931.                     }
  45932.                     if (!(HEAP[$obj_addr_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i_i28_i_i_i_i + 12 | 0] >>> 0)) {
  45933.                       ___assert_func(102352, 460, 106176, 103656);
  45934.                     }
  45935.                     if (!((HEAP[$obj_addr_i_i_i_i_i_i_i] + HEAP[$size_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i_i_i28_i_i_i_i + 12 | 0] >>> 0)) {
  45936.                       ___assert_func(102352, 460, 106176, 103656);
  45937.                     }
  45938.                     var $sub_ptr_sub_i_i_i_i_i_i_i = HEAP[$obj_addr_i_i_i_i_i_i_i] + HEAP[$size_i_i_i_i_i_i_i] - HEAP[$this1_i_i_i28_i_i_i_i + 12 | 0] | 0;
  45939.                     HEAP[$this_addr_i1_i_i_i_i_i_i_i] = $this1_i_i_i28_i_i_i_i;
  45940.                     HEAP[$size_addr_i_i_i_i_i_i_i_i] = $sub_ptr_sub_i_i_i_i_i_i_i;
  45941.                     var $this1_i2_i_i_i_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i_i_i_i];
  45942.                     do {
  45943.                       if (HEAP[$this1_i2_i_i_i_i_i_i_i + 16 | 0] & 1) {
  45944.                         label = 903;
  45945.                       } else {
  45946.                         if ((HEAP[$this1_i2_i_i_i_i_i_i_i + 8 | 0] - HEAP[$this1_i2_i_i_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i_i_i_i_i_i] | 0)) {
  45947.                           label = 903;
  45948.                           break;
  45949.                         }
  45950.                         var $706 = HEAP[$this1_i2_i_i_i_i_i_i_i + 12 | 0];
  45951.                         var $707 = HEAP[$size_addr_i_i_i_i_i_i_i_i];
  45952.                         for (var $$dest = $706, $$stop = $$dest + $707; $$dest < $$stop; $$dest++) {
  45953.                           HEAP[$$dest] = 0;
  45954.                         }
  45955.                         HEAP[$ret_i_i_i_i_i_i_i_i] = HEAP[$this1_i2_i_i_i_i_i_i_i + 12 | 0];
  45956.                         var $head5_i_i_i_i_i_i_i_i = $this1_i2_i_i_i_i_i_i_i + 12 | 0;
  45957.                         HEAP[$head5_i_i_i_i_i_i_i_i] = HEAP[$head5_i_i_i_i_i_i_i_i] + HEAP[$size_addr_i_i_i_i_i_i_i_i] | 0;
  45958.                         var $712 = HEAP[$ret_i_i_i_i_i_i_i_i];
  45959.                         HEAP[$retval_i_i_i_i_i_i_i_i] = $712;
  45960.                         var $713 = $712;
  45961.                         break;
  45962.                       }
  45963.                     } while (0);
  45964.                     if (label == 903) {
  45965.                       HEAP[$this1_i2_i_i_i_i_i_i_i + 16 | 0] = 1;
  45966.                       HEAP[$retval_i_i_i_i_i_i_i_i] = 0;
  45967.                       var $713 = 0;
  45968.                     }
  45969.                     var $713;
  45970.                     if (($713 | 0) != 0) {
  45971.                       var $718 = HEAP[$obj_addr_i_i_i_i_i_i_i];
  45972.                       HEAP[$retval_i_i_i_i_i_i_i] = $718;
  45973.                       var $719 = $718;
  45974.                     } else {
  45975.                       HEAP[$retval_i_i_i_i_i_i_i] = 0;
  45976.                       var $719 = 0;
  45977.                     }
  45978.                     var $719;
  45979.                     if (($719 | 0) != 0) {
  45980.                       var $tobool_i_i_i_i_i_i_i = 1;
  45981.                       HEAP[$retval_i_i19_i_i_i_i] = $tobool_i_i_i_i_i_i_i;
  45982.                       var $726 = $tobool_i_i_i_i_i_i_i;
  45983.                       break;
  45984.                     } else {
  45985.                       var $tobool_i2_i_i_i_i_i_i = 0;
  45986.                       HEAP[$retval_i_i19_i_i_i_i] = $tobool_i2_i_i_i_i_i_i;
  45987.                       var $726 = $tobool_i2_i_i_i_i_i_i;
  45988.                       break;
  45989.                     }
  45990.                   } else {
  45991.                     var $tobool_i51_i_i_i_i_i_i = 0;
  45992.                     HEAP[$retval_i_i19_i_i_i_i] = $tobool_i51_i_i_i_i_i_i;
  45993.                     var $726 = $tobool_i51_i_i_i_i_i_i;
  45994.                   }
  45995.                 } while (0);
  45996.                 var $726;
  45997.                 if ($726) {
  45998.                   HEAP[$i_i_i_i_i_i] = 0;
  45999.                   L1258 : do {
  46000.                     if (HEAP[$i_i_i_i_i_i] >>> 0 < HEAP[$items_len_addr_i_i_i_i_i] >>> 0) {
  46001.                       var $array_i_i_i_i_i = $this1_i26_i_i_i_i + 2 | 0;
  46002.                       var $736 = $ref_tmp_i_i_i_i_i;
  46003.                       var $739 = $ref_tmp_i_i_i_i_i;
  46004.                       var $740 = $ref_tmp_i_i_i_i_i;
  46005.                       while (1) {
  46006.                         var $arrayidx_i_i_i_i_i = (HEAP[$i_i_i_i_i_i] << 1) + $array_i_i_i_i_i | 0;
  46007.                         var $743 = HEAP[$i_i_i_i_i_i];
  46008.                         HEAP[$this_addr_i1_i20_i_i_i_i] = HEAP[$items_addr_i_i_i_i_i];
  46009.                         HEAP[$i_addr_i_i21_i_i_i_i] = $743;
  46010.                         var $this1_i2_i31_i_i_i_i = HEAP[$this_addr_i1_i20_i_i_i_i];
  46011.                         if (HEAP[$i_addr_i_i21_i_i_i_i] >>> 0 >= HEAP[$this1_i2_i31_i_i_i_i | 0] >>> 0) {
  46012.                           HEAP[$736] = 0;
  46013.                           HEAP[$736 + 1] = 0;
  46014.                         } else {
  46015.                           var $748 = (HEAP[$i_addr_i_i21_i_i_i_i] << 1) + HEAP[$this1_i2_i31_i_i_i_i + 4 | 0] | 0;
  46016.                           HEAP[$740] = HEAP[$748];
  46017.                           HEAP[$740 + 1] = HEAP[$748 + 1];
  46018.                         }
  46019.                         var $749 = $arrayidx_i_i_i_i_i;
  46020.                         HEAP[$749] = HEAP[$739];
  46021.                         HEAP[$749 + 1] = HEAP[$739 + 1];
  46022.                         HEAP[$i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i] + 1 | 0;
  46023.                         if (HEAP[$i_i_i_i_i_i] >>> 0 >= HEAP[$items_len_addr_i_i_i_i_i] >>> 0) {
  46024.                           break L1258;
  46025.                         }
  46026.                       }
  46027.                     }
  46028.                   } while (0);
  46029.                   var $754 = HEAP[$items_len_addr_i_i_i_i_i];
  46030.                   HEAP[$this_addr_i_i22_i_i_i_i] = HEAP[$items_addr_i_i_i_i_i];
  46031.                   HEAP[$count_addr_i_i_i_i_i_i] = $754;
  46032.                   var $this1_i_i34_i_i_i_i = HEAP[$this_addr_i_i22_i_i_i_i];
  46033.                   if (HEAP[$count_addr_i_i_i_i_i_i] >>> 0 > HEAP[$this1_i_i34_i_i_i_i | 0] >>> 0) {
  46034.                     HEAP[$count_addr_i_i_i_i_i_i] = HEAP[$this1_i_i34_i_i_i_i | 0];
  46035.                   }
  46036.                   var $len3_i_i_i_i_i_i = $this1_i_i34_i_i_i_i | 0;
  46037.                   HEAP[$len3_i_i_i_i_i_i] = HEAP[$len3_i_i_i_i_i_i] - HEAP[$count_addr_i_i_i_i_i_i] | 0;
  46038.                   var $head_i_i37_i_i_i_i = $this1_i_i34_i_i_i_i + 4 | 0;
  46039.                   HEAP[$head_i_i37_i_i_i_i] = (HEAP[$count_addr_i_i_i_i_i_i] << 1) + HEAP[$head_i_i37_i_i_i_i] | 0;
  46040.                   var $tobool_i_i39_i_i_i_i = 1;
  46041.                   HEAP[$retval_i23_i_i_i_i] = $tobool_i_i39_i_i_i_i;
  46042.                   var $767 = $tobool_i_i39_i_i_i_i;
  46043.                 } else {
  46044.                   var $tobool_i8_i_i_i_i_i = 0;
  46045.                   HEAP[$retval_i23_i_i_i_i] = $tobool_i8_i_i_i_i_i;
  46046.                   var $767 = $tobool_i8_i_i_i_i_i;
  46047.                 }
  46048.                 var $767;
  46049.                 if (!$767) {
  46050.                   HEAP[$retval_i_i_i_i] = 0;
  46051.                   break;
  46052.                 }
  46053.                 var $777 = HEAP[$c_addr_i_i_i_i];
  46054.                 HEAP[$this_addr_i8_i_i_i_i] = $this1_i_i_i_i + 2 | 0;
  46055.                 HEAP[$c_addr_i_i_i_i_i] = $777;
  46056.                 HEAP[$base_addr_i_i_i_i_i] = $this1_i_i_i_i;
  46057.                 var $this1_i9_i_i_i_i = HEAP[$this_addr_i8_i_i_i_i];
  46058.                 HEAP[$this_addr_i_i6_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i];
  46059.                 HEAP[$ret_i_i7_i_i_i_i] = HEAP[HEAP[$this_addr_i_i6_i_i_i_i] + 12 | 0];
  46060.                 HEAP[$t_i_i_i_i_i] = HEAP[$ret_i_i7_i_i_i_i];
  46061.                 var $conv_i_i_i_i_i = HEAP[$t_i_i_i_i_i] - HEAP[$base_addr_i_i_i_i_i] & 65535;
  46062.                 HEAP[$this_addr_i1_i_i_i_i_i] = $this1_i9_i_i_i_i;
  46063.                 HEAP[$i_addr_i_i_i_i_i_i] = $conv_i_i_i_i_i;
  46064.                 var $797 = HEAP[$i_addr_i_i_i_i_i_i];
  46065.                 HEAP[$this_addr_i_i_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i] | 0;
  46066.                 HEAP[$i_addr_i_i_i_i_i_i_i] = $797;
  46067.                 var $this1_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i];
  46068.                 HEAP[$this1_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  46069.                 HEAP[$this1_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i] & 255;
  46070.                 if (__ZN2OT8Coverage9serializeEPNS_22hb_serialize_context_tERNS_8SupplierINS_7IntTypeItLj2EEEEEj(HEAP[$t_i_i_i_i_i], HEAP[$c_addr_i_i_i_i], HEAP[$glyphs_addr_i_i_i_i], HEAP[$num_glyphs_addr_i_i_i_i])) {
  46071.                   HEAP[$retval_i_i_i_i] = 1;
  46072.                   break;
  46073.                 } else {
  46074.                   HEAP[$retval_i_i_i_i] = 0;
  46075.                   break;
  46076.                 }
  46077.               } else {
  46078.                 HEAP[$retval_i_i_i_i] = 0;
  46079.               }
  46080.             } while (0);
  46081.             HEAP[$retval_i_i_i] = HEAP[$retval_i_i_i_i] & 1;
  46082.             break;
  46083.           } else if (($conv28_i_i_i | 0) == 1) {
  46084.             var $423 = HEAP[$c_addr_i_i_i];
  46085.             var $424 = HEAP[$glyphs_addr_i_i_i];
  46086.             var $425 = HEAP[$num_glyphs_addr_i_i_i];
  46087.             var $426 = HEAP[$delta_i_i_i];
  46088.             HEAP[$this_addr_i47_i_i_i] = $this1_i_i51_i | 0;
  46089.             HEAP[$c_addr_i48_i_i_i] = $423;
  46090.             HEAP[$glyphs_addr_i49_i_i_i] = $424;
  46091.             HEAP[$num_glyphs_addr_i50_i_i_i] = $425;
  46092.             HEAP[$delta_addr_i_i_i_i] = $426;
  46093.             var $this1_i51_i_i_i = HEAP[$this_addr_i47_i_i_i];
  46094.             HEAP[$this_addr_i4_i_i_i_i] = HEAP[$c_addr_i48_i_i_i];
  46095.             HEAP[$obj_addr_i_i39_i_i_i] = $this1_i51_i_i_i;
  46096.             var $this1_i5_i_i_i_i = HEAP[$this_addr_i4_i_i_i_i];
  46097.             HEAP[$size_i_i40_i_i_i] = 6;
  46098.             if (!(HEAP[$this1_i5_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i_i39_i_i_i] >>> 0)) {
  46099.               ___assert_func(102352, 451, 107528, 103368);
  46100.             }
  46101.             if (!(HEAP[$obj_addr_i_i39_i_i_i] >>> 0 <= HEAP[$this1_i5_i_i_i_i + 12 | 0] >>> 0)) {
  46102.               ___assert_func(102352, 451, 107528, 103368);
  46103.             }
  46104.             if (!((HEAP[$obj_addr_i_i39_i_i_i] + HEAP[$size_i_i40_i_i_i] | 0) >>> 0 >= HEAP[$this1_i5_i_i_i_i + 12 | 0] >>> 0)) {
  46105.               ___assert_func(102352, 451, 107528, 103368);
  46106.             }
  46107.             var $sub_ptr_sub_i_i66_i_i_i = HEAP[$obj_addr_i_i39_i_i_i] + HEAP[$size_i_i40_i_i_i] - HEAP[$this1_i5_i_i_i_i + 12 | 0] | 0;
  46108.             HEAP[$this_addr_i_i3_i_i_i_i] = $this1_i5_i_i_i_i;
  46109.             HEAP[$size_addr_i_i_i36_i_i_i] = $sub_ptr_sub_i_i66_i_i_i;
  46110.             var $this1_i_i6_i_i_i_i = HEAP[$this_addr_i_i3_i_i_i_i];
  46111.             do {
  46112.               if (HEAP[$this1_i_i6_i_i_i_i + 16 | 0] & 1) {
  46113.                 label = 860;
  46114.               } else {
  46115.                 if ((HEAP[$this1_i_i6_i_i_i_i + 8 | 0] - HEAP[$this1_i_i6_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i36_i_i_i] | 0)) {
  46116.                   label = 860;
  46117.                   break;
  46118.                 }
  46119.                 var $460 = HEAP[$this1_i_i6_i_i_i_i + 12 | 0];
  46120.                 var $461 = HEAP[$size_addr_i_i_i36_i_i_i];
  46121.                 for (var $$dest = $460, $$stop = $$dest + $461; $$dest < $$stop; $$dest++) {
  46122.                   HEAP[$$dest] = 0;
  46123.                 }
  46124.                 HEAP[$ret_i_i_i37_i_i_i] = HEAP[$this1_i_i6_i_i_i_i + 12 | 0];
  46125.                 var $head5_i_i_i81_i_i_i = $this1_i_i6_i_i_i_i + 12 | 0;
  46126.                 HEAP[$head5_i_i_i81_i_i_i] = HEAP[$head5_i_i_i81_i_i_i] + HEAP[$size_addr_i_i_i36_i_i_i] | 0;
  46127.                 var $466 = HEAP[$ret_i_i_i37_i_i_i];
  46128.                 HEAP[$retval_i_i_i35_i_i_i] = $466;
  46129.                 var $467 = $466;
  46130.                 break;
  46131.               }
  46132.             } while (0);
  46133.             if (label == 860) {
  46134.               HEAP[$this1_i_i6_i_i_i_i + 16 | 0] = 1;
  46135.               HEAP[$retval_i_i_i35_i_i_i] = 0;
  46136.               var $467 = 0;
  46137.             }
  46138.             var $467;
  46139.             if (($467 | 0) != 0) {
  46140.               var $472 = HEAP[$obj_addr_i_i39_i_i_i];
  46141.               HEAP[$retval_i_i38_i_i_i] = $472;
  46142.               var $473 = $472;
  46143.             } else {
  46144.               HEAP[$retval_i_i38_i_i_i] = 0;
  46145.               var $473 = 0;
  46146.             }
  46147.             var $473;
  46148.             do {
  46149.               if (($473 | 0) != 0) {
  46150.                 var $480 = HEAP[$c_addr_i48_i_i_i];
  46151.                 HEAP[$this_addr_i13_i_i_i_i] = $this1_i51_i_i_i + 2 | 0;
  46152.                 HEAP[$c_addr_i_i32_i_i_i] = $480;
  46153.                 HEAP[$base_addr_i_i33_i_i_i] = $this1_i51_i_i_i;
  46154.                 var $this1_i14_i_i_i_i = HEAP[$this_addr_i13_i_i_i_i];
  46155.                 HEAP[$this_addr_i_i11_i_i_i_i] = HEAP[$c_addr_i_i32_i_i_i];
  46156.                 HEAP[$ret_i_i12_i_i_i_i] = HEAP[HEAP[$this_addr_i_i11_i_i_i_i] + 12 | 0];
  46157.                 HEAP[$t_i_i34_i_i_i] = HEAP[$ret_i_i12_i_i_i_i];
  46158.                 var $conv_i_i89_i_i_i = HEAP[$t_i_i34_i_i_i] - HEAP[$base_addr_i_i33_i_i_i] & 65535;
  46159.                 HEAP[$this_addr_i1_i_i31_i_i_i] = $this1_i14_i_i_i_i;
  46160.                 HEAP[$i_addr_i_i10_i_i_i_i] = $conv_i_i89_i_i_i;
  46161.                 var $500 = HEAP[$i_addr_i_i10_i_i_i_i];
  46162.                 HEAP[$this_addr_i_i_i_i29_i_i_i] = HEAP[$this_addr_i1_i_i31_i_i_i] | 0;
  46163.                 HEAP[$i_addr_i_i_i_i30_i_i_i] = $500;
  46164.                 var $this1_i_i_i_i91_i_i_i = HEAP[$this_addr_i_i_i_i29_i_i_i];
  46165.                 HEAP[$this1_i_i_i_i91_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i30_i_i_i] & 65535) >> 8 & 255;
  46166.                 HEAP[$this1_i_i_i_i91_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i30_i_i_i] & 255;
  46167.                 if (__ZN2OT8Coverage9serializeEPNS_22hb_serialize_context_tERNS_8SupplierINS_7IntTypeItLj2EEEEEj(HEAP[$t_i_i34_i_i_i], HEAP[$c_addr_i48_i_i_i], HEAP[$glyphs_addr_i49_i_i_i], HEAP[$num_glyphs_addr_i50_i_i_i])) {
  46168.                   var $conv_i_i_i_i = HEAP[$delta_addr_i_i_i_i] & 65535;
  46169.                   HEAP[$this_addr_i_i44_i_i_i] = $this1_i51_i_i_i + 4 | 0;
  46170.                   HEAP[$i_addr_i_i_i_i_i] = $conv_i_i_i_i;
  46171.                   var $521 = HEAP[$i_addr_i_i_i_i_i];
  46172.                   HEAP[$this_addr_i_i_i42_i_i_i] = HEAP[$this_addr_i_i44_i_i_i] | 0;
  46173.                   HEAP[$i_addr_i_i_i43_i_i_i] = $521;
  46174.                   var $this1_i_i_i104_i_i_i = HEAP[$this_addr_i_i_i42_i_i_i];
  46175.                   HEAP[$this1_i_i_i104_i_i_i | 0] = HEAP[$i_addr_i_i_i43_i_i_i] << 16 >> 24 & 255;
  46176.                   HEAP[$this1_i_i_i104_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i43_i_i_i] & 255;
  46177.                   HEAP[$retval_i46_i_i_i] = 1;
  46178.                   break;
  46179.                 } else {
  46180.                   HEAP[$retval_i46_i_i_i] = 0;
  46181.                   break;
  46182.                 }
  46183.               } else {
  46184.                 HEAP[$retval_i46_i_i_i] = 0;
  46185.               }
  46186.             } while (0);
  46187.             HEAP[$retval_i_i_i] = HEAP[$retval_i46_i_i_i] & 1;
  46188.             break;
  46189.           } else {
  46190.             HEAP[$retval_i_i_i] = 0;
  46191.             break;
  46192.           }
  46193.         } else {
  46194.           HEAP[$retval_i_i_i] = 0;
  46195.         }
  46196.       } while (0);
  46197.       HEAP[$retval_i_i] = HEAP[$retval_i_i_i] & 1;
  46198.     } else {
  46199.       HEAP[$retval_i_i] = 0;
  46200.     }
  46201.     if (HEAP[$retval_i_i] & 1) {
  46202.       HEAP[$this_addr_i21_i] = $c_i;
  46203.       var $this1_i22_i = HEAP[$this_addr_i21_i];
  46204.       if (HEAP[$this1_i22_i + 16 | 0] & 1) {
  46205.         ___assert_func(102352, 403, 106944, 102312);
  46206.       }
  46207.       HEAP[$len_i_i] = HEAP[$this1_i22_i + 12 | 0] - HEAP[$this1_i22_i + 4 | 0] | 0;
  46208.       var $call_i_i = _malloc(HEAP[$len_i_i]);
  46209.       HEAP[$p_i_i] = $call_i_i;
  46210.       if ((HEAP[$p_i_i] | 0) != 0) {
  46211.         var $857 = HEAP[$p_i_i];
  46212.         var $858 = HEAP[$this1_i22_i + 4 | 0];
  46213.         var $859 = HEAP[$len_i_i];
  46214.         for (var $$src = $858, $$dest = $857, $$stop = $$src + $859; $$src < $$stop; $$src++, $$dest++) {
  46215.           HEAP[$$dest] = HEAP[$$src];
  46216.         }
  46217.       }
  46218.       var $cond_i = HEAP[$p_i_i];
  46219.     } else {
  46220.       var $cond_i = 0;
  46221.     }
  46222.     var $cond_i;
  46223.     $retval = $cond_i;
  46224.     var $2266 = $retval;
  46225.     STACKTOP = __stackBase__;
  46226.     return $2266;
  46227.   }
  46228.   HEAP[$plan_addr_i114] = $1;
  46229.   HEAP[$font_addr_i115] = $2;
  46230.   HEAP[$num_first_glyphs_i] = 0;
  46231.   HEAP[$num_ligatures_i] = 0;
  46232.   HEAP[$first_glyph_idx_i] = 0;
  46233.   while (1) {
  46234.     HEAP[$first_u_i] = HEAP[(HEAP[$first_glyph_idx_i] * 18 & -1) + 132200 | 0] & 65535;
  46235.     var $935 = HEAP[$first_u_i];
  46236.     HEAP[$font_addr_i_i107] = HEAP[$font_addr_i115];
  46237.     HEAP[$unicode_addr_i_i108] = $935;
  46238.     HEAP[$variation_selector_addr_i_i109] = 0;
  46239.     HEAP[$glyph_addr_i_i110] = $first_glyph_i;
  46240.     var $937 = HEAP[$unicode_addr_i_i108];
  46241.     var $938 = HEAP[$variation_selector_addr_i_i109];
  46242.     var $939 = HEAP[$glyph_addr_i_i110];
  46243.     HEAP[$this_addr_i_i_i103] = HEAP[$font_addr_i_i107];
  46244.     HEAP[$unicode_addr_i_i_i104] = $937;
  46245.     HEAP[$variation_selector_addr_i_i_i105] = $938;
  46246.     HEAP[$glyph_addr_i_i_i106] = $939;
  46247.     var $this1_i_i_i122 = HEAP[$this_addr_i_i_i103];
  46248.     HEAP[HEAP[$glyph_addr_i_i_i106]] = 0;
  46249.     if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i_i122 + 72 | 0] + 48 | 0]]($this1_i_i_i122, HEAP[$this1_i_i_i122 + 76 | 0], HEAP[$unicode_addr_i_i_i104], HEAP[$variation_selector_addr_i_i_i105], HEAP[$glyph_addr_i_i_i106], HEAP[HEAP[$this1_i_i_i122 + 72 | 0] + 92 | 0]) | 0) != 0) {
  46250.       var $conv3_i = HEAP[$first_glyph_i] & 65535;
  46251.       HEAP[$this_addr_i2_i] = (HEAP[$num_first_glyphs_i] << 1) + $first_glyphs_i | 0;
  46252.       HEAP[$i_addr_i_i102] = $conv3_i;
  46253.       var $951 = HEAP[$i_addr_i_i102];
  46254.       HEAP[$this_addr_i_i1_i] = HEAP[$this_addr_i2_i] | 0;
  46255.       HEAP[$i_addr_i_i_i101] = $951;
  46256.       var $this1_i_i4_i = HEAP[$this_addr_i_i1_i];
  46257.       HEAP[$this1_i_i4_i | 0] = (HEAP[$i_addr_i_i_i101] & 65535) >> 8 & 255;
  46258.       HEAP[$this1_i_i4_i + 1 | 0] = HEAP[$i_addr_i_i_i101] & 255;
  46259.       HEAP[(HEAP[$num_first_glyphs_i] << 2) + $ligature_per_first_glyph_count_list_i | 0] = 0;
  46260.       HEAP[(HEAP[$num_first_glyphs_i] << 2) + $first_glyphs_indirection_i | 0] = HEAP[$first_glyph_idx_i];
  46261.       HEAP[$num_first_glyphs_i] = HEAP[$num_first_glyphs_i] + 1 | 0;
  46262.     }
  46263.     var $inc6_i = HEAP[$first_glyph_idx_i] + 1 | 0;
  46264.     HEAP[$first_glyph_idx_i] = $inc6_i;
  46265.     if ($inc6_i >>> 0 >= 2) {
  46266.       break;
  46267.     }
  46268.   }
  46269.   var $959 = HEAP[$num_first_glyphs_i];
  46270.   HEAP[$array_addr_i_i92] = $first_glyphs_i | 0;
  46271.   HEAP[$len_addr_i_i93] = $959;
  46272.   HEAP[$compar_addr_i_i94] = 110;
  46273.   HEAP[$array2_addr_i_i95] = $first_glyphs_indirection_i | 0;
  46274.   L1326 : do {
  46275.     if ((HEAP[$len_addr_i_i93] | 0) != 0) {
  46276.       HEAP[$k_i_i96] = HEAP[$len_addr_i_i93] - 1 | 0;
  46277.       var $971 = $t_i_i99;
  46278.       var $972 = $t_i_i99;
  46279.       while (1) {
  46280.         HEAP[$new_k_i_i97] = 0;
  46281.         HEAP[$j_i_i98] = 0;
  46282.         if (HEAP[$j_i_i98] >>> 0 >= HEAP[$k_i_i96] >>> 0) {
  46283.           break;
  46284.         }
  46285.         while (1) {
  46286.           if ((FUNCTION_TABLE[HEAP[$compar_addr_i_i94]]((HEAP[$j_i_i98] << 1) + HEAP[$array_addr_i_i92] | 0, (HEAP[$j_i_i98] + 1 << 1) + HEAP[$array_addr_i_i92] | 0) | 0) > 0) {
  46287.             var $982 = (HEAP[$j_i_i98] << 1) + HEAP[$array_addr_i_i92] | 0;
  46288.             HEAP[$971] = HEAP[$982];
  46289.             HEAP[$971 + 1] = HEAP[$982 + 1];
  46290.             var $987 = (HEAP[$j_i_i98] << 1) + HEAP[$array_addr_i_i92] | 0;
  46291.             var $988 = (HEAP[$j_i_i98] + 1 << 1) + HEAP[$array_addr_i_i92] | 0;
  46292.             HEAP[$987] = HEAP[$988];
  46293.             HEAP[$987 + 1] = HEAP[$988 + 1];
  46294.             var $991 = (HEAP[$j_i_i98] + 1 << 1) + HEAP[$array_addr_i_i92] | 0;
  46295.             HEAP[$991] = HEAP[$972];
  46296.             HEAP[$991 + 1] = HEAP[$972 + 1];
  46297.             if ((HEAP[$array2_addr_i_i95] | 0) != 0) {
  46298.               HEAP[$t12_i_i100] = HEAP[(HEAP[$j_i_i98] << 2) + HEAP[$array2_addr_i_i95] | 0];
  46299.               HEAP[(HEAP[$j_i_i98] << 2) + HEAP[$array2_addr_i_i95] | 0] = HEAP[(HEAP[$j_i_i98] + 1 << 2) + HEAP[$array2_addr_i_i95] | 0];
  46300.               HEAP[(HEAP[$j_i_i98] + 1 << 2) + HEAP[$array2_addr_i_i95] | 0] = HEAP[$t12_i_i100];
  46301.             }
  46302.             HEAP[$new_k_i_i97] = HEAP[$j_i_i98];
  46303.           }
  46304.           HEAP[$j_i_i98] = HEAP[$j_i_i98] + 1 | 0;
  46305.           if (HEAP[$j_i_i98] >>> 0 >= HEAP[$k_i_i96] >>> 0) {
  46306.             break;
  46307.           }
  46308.         }
  46309.         var $_pr_i_i174 = HEAP[$new_k_i_i97];
  46310.         HEAP[$k_i_i96] = $_pr_i_i174;
  46311.         if (($_pr_i_i174 | 0) == 0) {
  46312.           break L1326;
  46313.         }
  46314.       }
  46315.       HEAP[$k_i_i96] = 0;
  46316.     }
  46317.   } while (0);
  46318.   HEAP[$i_i] = 0;
  46319.   L1341 : do {
  46320.     if (HEAP[$i_i] >>> 0 < HEAP[$num_first_glyphs_i] >>> 0) {
  46321.       while (1) {
  46322.         HEAP[$first_glyph_idx12_i] = HEAP[(HEAP[$i_i] << 2) + $first_glyphs_indirection_i | 0];
  46323.         HEAP[$second_glyph_idx_i] = 0;
  46324.         while (1) {
  46325.           HEAP[$second_u_i] = HEAP[(HEAP[$second_glyph_idx_i] << 2) + (HEAP[$first_glyph_idx12_i] * 18 & -1) + 132202 | 0] & 65535;
  46326.           HEAP[$ligature_u_i] = HEAP[(HEAP[$second_glyph_idx_i] << 2) + (HEAP[$first_glyph_idx12_i] * 18 & -1) + 132204 | 0] & 65535;
  46327.           do {
  46328.             if ((HEAP[$second_u_i] | 0) != 0) {
  46329.               var $1077 = HEAP[$second_u_i];
  46330.               HEAP[$font_addr_i21_i] = HEAP[$font_addr_i115];
  46331.               HEAP[$unicode_addr_i22_i] = $1077;
  46332.               HEAP[$variation_selector_addr_i23_i] = 0;
  46333.               HEAP[$glyph_addr_i24_i] = $second_glyph_i;
  46334.               var $1079 = HEAP[$unicode_addr_i22_i];
  46335.               var $1080 = HEAP[$variation_selector_addr_i23_i];
  46336.               var $1081 = HEAP[$glyph_addr_i24_i];
  46337.               HEAP[$this_addr_i_i17_i] = HEAP[$font_addr_i21_i];
  46338.               HEAP[$unicode_addr_i_i18_i] = $1079;
  46339.               HEAP[$variation_selector_addr_i_i19_i] = $1080;
  46340.               HEAP[$glyph_addr_i_i20_i] = $1081;
  46341.               var $this1_i_i25_i = HEAP[$this_addr_i_i17_i];
  46342.               HEAP[HEAP[$glyph_addr_i_i20_i]] = 0;
  46343.               if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i25_i + 72 | 0] + 48 | 0]]($this1_i_i25_i, HEAP[$this1_i_i25_i + 76 | 0], HEAP[$unicode_addr_i_i18_i], HEAP[$variation_selector_addr_i_i19_i], HEAP[$glyph_addr_i_i20_i], HEAP[HEAP[$this1_i_i25_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  46344.                 break;
  46345.               }
  46346.               var $1092 = HEAP[$ligature_u_i];
  46347.               HEAP[$font_addr_i38_i] = HEAP[$font_addr_i115];
  46348.               HEAP[$unicode_addr_i39_i] = $1092;
  46349.               HEAP[$variation_selector_addr_i40_i] = 0;
  46350.               HEAP[$glyph_addr_i41_i] = $ligature_glyph_i;
  46351.               var $1094 = HEAP[$unicode_addr_i39_i];
  46352.               var $1095 = HEAP[$variation_selector_addr_i40_i];
  46353.               var $1096 = HEAP[$glyph_addr_i41_i];
  46354.               HEAP[$this_addr_i_i34_i] = HEAP[$font_addr_i38_i];
  46355.               HEAP[$unicode_addr_i_i35_i] = $1094;
  46356.               HEAP[$variation_selector_addr_i_i36_i] = $1095;
  46357.               HEAP[$glyph_addr_i_i37_i] = $1096;
  46358.               var $this1_i_i42_i = HEAP[$this_addr_i_i34_i];
  46359.               HEAP[HEAP[$glyph_addr_i_i37_i]] = 0;
  46360.               if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i42_i + 72 | 0] + 48 | 0]]($this1_i_i42_i, HEAP[$this1_i_i42_i + 76 | 0], HEAP[$unicode_addr_i_i35_i], HEAP[$variation_selector_addr_i_i36_i], HEAP[$glyph_addr_i_i37_i], HEAP[HEAP[$this1_i_i42_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  46361.                 break;
  46362.               }
  46363.               var $arrayidx33_i = (HEAP[$i_i] << 2) + $ligature_per_first_glyph_count_list_i | 0;
  46364.               HEAP[$arrayidx33_i] = HEAP[$arrayidx33_i] + 1 | 0;
  46365.               var $conv36_i = HEAP[$ligature_glyph_i] & 65535;
  46366.               HEAP[$this_addr_i53_i] = (HEAP[$num_ligatures_i] << 1) + $ligature_list_i | 0;
  46367.               HEAP[$i_addr_i54_i] = $conv36_i;
  46368.               var $1110 = HEAP[$i_addr_i54_i];
  46369.               HEAP[$this_addr_i_i51_i] = HEAP[$this_addr_i53_i] | 0;
  46370.               HEAP[$i_addr_i_i52_i] = $1110;
  46371.               var $this1_i_i57_i = HEAP[$this_addr_i_i51_i];
  46372.               HEAP[$this1_i_i57_i | 0] = (HEAP[$i_addr_i_i52_i] & 65535) >> 8 & 255;
  46373.               HEAP[$this1_i_i57_i + 1 | 0] = HEAP[$i_addr_i_i52_i] & 255;
  46374.               HEAP[(HEAP[$num_ligatures_i] << 2) + $component_count_list_i | 0] = 2;
  46375.               var $conv39_i = HEAP[$second_glyph_i] & 65535;
  46376.               HEAP[$this_addr_i68_i] = (HEAP[$num_ligatures_i] << 1) + $component_list_i | 0;
  46377.               HEAP[$i_addr_i69_i] = $conv39_i;
  46378.               var $1116 = HEAP[$i_addr_i69_i];
  46379.               HEAP[$this_addr_i_i66_i] = HEAP[$this_addr_i68_i] | 0;
  46380.               HEAP[$i_addr_i_i67_i] = $1116;
  46381.               var $this1_i_i72_i = HEAP[$this_addr_i_i66_i];
  46382.               HEAP[$this1_i_i72_i | 0] = (HEAP[$i_addr_i_i67_i] & 65535) >> 8 & 255;
  46383.               HEAP[$this1_i_i72_i + 1 | 0] = HEAP[$i_addr_i_i67_i] & 255;
  46384.               HEAP[$num_ligatures_i] = HEAP[$num_ligatures_i] + 1 | 0;
  46385.             }
  46386.           } while (0);
  46387.           var $inc42_i = HEAP[$second_glyph_idx_i] + 1 | 0;
  46388.           HEAP[$second_glyph_idx_i] = $inc42_i;
  46389.           if ($inc42_i >>> 0 >= 4) {
  46390.             break;
  46391.           }
  46392.         }
  46393.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  46394.         if (HEAP[$i_i] >>> 0 >= HEAP[$num_first_glyphs_i] >>> 0) {
  46395.           break L1341;
  46396.         }
  46397.       }
  46398.     }
  46399.   } while (0);
  46400.   var $1124 = HEAP[$num_first_glyphs_i];
  46401.   HEAP[$this_addr_i82_i] = $first_glyphs_supplier_i;
  46402.   HEAP[$array_addr_i83_i] = $first_glyphs_i | 0;
  46403.   HEAP[$len__addr_i_i8] = $1124;
  46404.   var $1128 = HEAP[$array_addr_i83_i];
  46405.   var $1129 = HEAP[$len__addr_i_i8];
  46406.   HEAP[$this_addr_i_i81_i] = HEAP[$this_addr_i82_i];
  46407.   HEAP[$array_addr_i_i_i6] = $1128;
  46408.   HEAP[$len__addr_i_i_i7] = $1129;
  46409.   var $this1_i_i85_i = HEAP[$this_addr_i_i81_i];
  46410.   HEAP[$this1_i_i85_i + 4 | 0] = HEAP[$array_addr_i_i_i6];
  46411.   HEAP[$this1_i_i85_i | 0] = HEAP[$len__addr_i_i_i7];
  46412.   var $1141 = HEAP[$num_first_glyphs_i];
  46413.   HEAP[$this_addr_i89_i] = $ligature_per_first_glyph_count_supplier_i;
  46414.   HEAP[$array_addr_i90_i] = $ligature_per_first_glyph_count_list_i | 0;
  46415.   HEAP[$len__addr_i91_i] = $1141;
  46416.   var $1145 = HEAP[$array_addr_i90_i];
  46417.   var $1146 = HEAP[$len__addr_i91_i];
  46418.   HEAP[$this_addr_i_i86_i] = HEAP[$this_addr_i89_i];
  46419.   HEAP[$array_addr_i_i87_i] = $1145;
  46420.   HEAP[$len__addr_i_i88_i] = $1146;
  46421.   var $this1_i_i93_i = HEAP[$this_addr_i_i86_i];
  46422.   HEAP[$this1_i_i93_i + 4 | 0] = HEAP[$array_addr_i_i87_i];
  46423.   HEAP[$this1_i_i93_i | 0] = HEAP[$len__addr_i_i88_i];
  46424.   var $1158 = HEAP[$num_ligatures_i];
  46425.   HEAP[$this_addr_i99_i] = $ligatures_supplier_i;
  46426.   HEAP[$array_addr_i100_i] = $ligature_list_i | 0;
  46427.   HEAP[$len__addr_i101_i] = $1158;
  46428.   var $1162 = HEAP[$array_addr_i100_i];
  46429.   var $1163 = HEAP[$len__addr_i101_i];
  46430.   HEAP[$this_addr_i_i96_i] = HEAP[$this_addr_i99_i];
  46431.   HEAP[$array_addr_i_i97_i] = $1162;
  46432.   HEAP[$len__addr_i_i98_i] = $1163;
  46433.   var $this1_i_i103_i = HEAP[$this_addr_i_i96_i];
  46434.   HEAP[$this1_i_i103_i + 4 | 0] = HEAP[$array_addr_i_i97_i];
  46435.   HEAP[$this1_i_i103_i | 0] = HEAP[$len__addr_i_i98_i];
  46436.   var $1175 = HEAP[$num_ligatures_i];
  46437.   HEAP[$this_addr_i109_i] = $component_count_supplier_i;
  46438.   HEAP[$array_addr_i110_i] = $component_count_list_i | 0;
  46439.   HEAP[$len__addr_i111_i] = $1175;
  46440.   var $1179 = HEAP[$array_addr_i110_i];
  46441.   var $1180 = HEAP[$len__addr_i111_i];
  46442.   HEAP[$this_addr_i_i106_i] = HEAP[$this_addr_i109_i];
  46443.   HEAP[$array_addr_i_i107_i] = $1179;
  46444.   HEAP[$len__addr_i_i108_i] = $1180;
  46445.   var $this1_i_i113_i = HEAP[$this_addr_i_i106_i];
  46446.   HEAP[$this1_i_i113_i + 4 | 0] = HEAP[$array_addr_i_i107_i];
  46447.   HEAP[$this1_i_i113_i | 0] = HEAP[$len__addr_i_i108_i];
  46448.   var $1192 = HEAP[$num_ligatures_i];
  46449.   HEAP[$this_addr_i119_i] = $component_supplier_i;
  46450.   HEAP[$array_addr_i120_i] = $component_list_i | 0;
  46451.   HEAP[$len__addr_i121_i] = $1192;
  46452.   var $1196 = HEAP[$array_addr_i120_i];
  46453.   var $1197 = HEAP[$len__addr_i121_i];
  46454.   HEAP[$this_addr_i_i116_i] = HEAP[$this_addr_i119_i];
  46455.   HEAP[$array_addr_i_i117_i] = $1196;
  46456.   HEAP[$len__addr_i_i118_i] = $1197;
  46457.   var $this1_i_i123_i = HEAP[$this_addr_i_i116_i];
  46458.   HEAP[$this1_i_i123_i + 4 | 0] = HEAP[$array_addr_i_i117_i];
  46459.   HEAP[$this1_i_i123_i | 0] = HEAP[$len__addr_i_i118_i];
  46460.   HEAP[$this_addr_i127_i] = $c_i117;
  46461.   HEAP[$start_addr_i_i4] = $buf_i116 | 0;
  46462.   HEAP[$size_addr_i_i5] = 256;
  46463.   var $1212 = HEAP[$start_addr_i_i4];
  46464.   var $1213 = HEAP[$size_addr_i_i5];
  46465.   HEAP[$this_addr_i_i126_i] = HEAP[$this_addr_i127_i];
  46466.   HEAP[$start_addr_i_i_i2] = $1212;
  46467.   HEAP[$size_addr_i_i_i3] = $1213;
  46468.   var $this1_i_i129_i = HEAP[$this_addr_i_i126_i];
  46469.   HEAP[$this1_i_i129_i + 4 | 0] = HEAP[$start_addr_i_i_i2];
  46470.   HEAP[$this1_i_i129_i + 8 | 0] = HEAP[$this1_i_i129_i + 4 | 0] + HEAP[$size_addr_i_i_i3] | 0;
  46471.   HEAP[$this1_i_i129_i + 16 | 0] = 0;
  46472.   HEAP[$this1_i_i129_i + 12 | 0] = HEAP[$this1_i_i129_i + 4 | 0];
  46473.   HEAP[$this1_i_i129_i | 0] = 0;
  46474.   HEAP[$this_addr_i132_i] = $c_i117;
  46475.   HEAP[$this_addr_i_i131_i] = HEAP[$this_addr_i132_i];
  46476.   HEAP[$ret_i_i_i1] = HEAP[HEAP[$this_addr_i_i131_i] + 12 | 0];
  46477.   HEAP[$lookup_i118] = HEAP[$ret_i_i_i1];
  46478.   var $1237 = HEAP[$num_first_glyphs_i];
  46479.   HEAP[$this_addr_i9_i] = HEAP[$lookup_i118];
  46480.   HEAP[$c_addr_i_i90] = $c_i117;
  46481.   HEAP[$lookup_props_addr_i_i91] = 8;
  46482.   HEAP[$first_glyphs_addr_i_i] = $first_glyphs_supplier_i;
  46483.   HEAP[$ligature_per_first_glyph_count_list_addr_i_i] = $ligature_per_first_glyph_count_supplier_i;
  46484.   HEAP[$num_first_glyphs_addr_i_i] = $1237;
  46485.   HEAP[$ligatures_list_addr_i_i] = $ligatures_supplier_i;
  46486.   HEAP[$component_count_list_addr_i_i] = $component_count_supplier_i;
  46487.   HEAP[$component_list_addr_i_i] = $component_supplier_i;
  46488.   var $this1_i10_i = HEAP[$this_addr_i9_i];
  46489.   if (__ZN2OT6Lookup9serializeEPNS_22hb_serialize_context_tEjjj($this1_i10_i, HEAP[$c_addr_i_i90], 4, HEAP[$lookup_props_addr_i_i91])) {
  46490.     var $1252 = HEAP[$c_addr_i_i90];
  46491.     HEAP[$this_addr_i11_i_i22] = $this1_i10_i;
  46492.     HEAP[$c_addr_i12_i_i23] = $1252;
  46493.     HEAP[$i_addr_i_i7_i] = 0;
  46494.     var $this1_i13_i_i190 = HEAP[$this_addr_i11_i_i22];
  46495.     HEAP[$X_addr_i_i_i_i21] = $this1_i13_i_i190 + 4 | 0;
  46496.     var $1262 = HEAP[$i_addr_i_i7_i];
  46497.     HEAP[$this_addr_i1_i_i_i9] = HEAP[$X_addr_i_i_i_i21];
  46498.     HEAP[$i_addr_i_i4_i_i10] = $1262;
  46499.     var $1269 = HEAP[$c_addr_i12_i_i23];
  46500.     HEAP[$this_addr_i_i9_i_i17] = (HEAP[$i_addr_i_i4_i_i10] << 1) + HEAP[$this_addr_i1_i_i_i9] + 2 | 0;
  46501.     HEAP[$c_addr_i_i10_i_i18] = $1269;
  46502.     HEAP[$base_addr_i_i_i_i19] = $this1_i13_i_i190;
  46503.     var $this1_i_i14_i_i = HEAP[$this_addr_i_i9_i_i17];
  46504.     HEAP[$this_addr_i_i_i8_i_i15] = HEAP[$c_addr_i_i10_i_i18];
  46505.     HEAP[$ret_i_i_i_i_i16] = HEAP[HEAP[$this_addr_i_i_i8_i_i15] + 12 | 0];
  46506.     HEAP[$t_i_i_i_i20] = HEAP[$ret_i_i_i_i_i16];
  46507.     var $conv_i_i_i_i198 = HEAP[$t_i_i_i_i20] - HEAP[$base_addr_i_i_i_i19] & 65535;
  46508.     HEAP[$this_addr_i1_i_i_i_i13] = $this1_i_i14_i_i;
  46509.     HEAP[$i_addr_i_i_i7_i_i14] = $conv_i_i_i_i198;
  46510.     var $1289 = HEAP[$i_addr_i_i_i7_i_i14];
  46511.     HEAP[$this_addr_i_i_i_i5_i_i11] = HEAP[$this_addr_i1_i_i_i_i13] | 0;
  46512.     HEAP[$i_addr_i_i_i_i6_i_i12] = $1289;
  46513.     var $this1_i_i_i_i18_i_i = HEAP[$this_addr_i_i_i_i5_i_i11];
  46514.     HEAP[$this1_i_i_i_i18_i_i | 0] = (HEAP[$i_addr_i_i_i_i6_i_i12] & 65535) >> 8 & 255;
  46515.     HEAP[$this1_i_i_i_i18_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i6_i_i12] & 255;
  46516.     var $1306 = HEAP[$c_addr_i_i90];
  46517.     var $1307 = HEAP[$first_glyphs_addr_i_i];
  46518.     var $1308 = HEAP[$ligature_per_first_glyph_count_list_addr_i_i];
  46519.     var $1309 = HEAP[$num_first_glyphs_addr_i_i];
  46520.     var $1310 = HEAP[$ligatures_list_addr_i_i];
  46521.     var $1311 = HEAP[$component_count_list_addr_i_i];
  46522.     var $1312 = HEAP[$component_list_addr_i_i];
  46523.     HEAP[$this_addr_i_i8_i] = HEAP[$t_i_i_i_i20] | 0;
  46524.     HEAP[$c_addr_i_i_i86] = $1306;
  46525.     HEAP[$first_glyphs_addr_i_i_i] = $1307;
  46526.     HEAP[$ligature_per_first_glyph_count_list_addr_i_i_i] = $1308;
  46527.     HEAP[$num_first_glyphs_addr_i_i_i] = $1309;
  46528.     HEAP[$ligatures_list_addr_i_i_i] = $1310;
  46529.     HEAP[$component_count_list_addr_i_i_i] = $1311;
  46530.     HEAP[$component_list_addr_i_i_i] = $1312;
  46531.     var $this1_i_i13_i = HEAP[$this_addr_i_i8_i];
  46532.     do {
  46533.       if ((__ZN2OT22hb_serialize_context_t10extend_minINS_7IntTypeItLj2EEEEEPT_RS4_(HEAP[$c_addr_i_i_i86], $this1_i_i13_i | 0) | 0) != 0) {
  46534.         HEAP[$format3_i_i_i87] = 1;
  46535.         var $conv_i_i16_i = HEAP[$format3_i_i_i87] & 65535;
  46536.         HEAP[$this_addr_i8_i_i_i] = $this1_i_i13_i | 0;
  46537.         HEAP[$i_addr_i_i_i_i25] = $conv_i_i16_i;
  46538.         var $1328 = HEAP[$i_addr_i_i_i_i25];
  46539.         HEAP[$this_addr_i_i6_i_i_i] = HEAP[$this_addr_i8_i_i_i] | 0;
  46540.         HEAP[$i_addr_i_i7_i_i_i] = $1328;
  46541.         var $this1_i_i10_i_i_i = HEAP[$this_addr_i_i6_i_i_i];
  46542.         HEAP[$this1_i_i10_i_i_i | 0] = (HEAP[$i_addr_i_i7_i_i_i] & 65535) >> 8 & 255;
  46543.         HEAP[$this1_i_i10_i_i_i + 1 | 0] = HEAP[$i_addr_i_i7_i_i_i] & 255;
  46544.         HEAP[$this_addr_i14_i_i_i] = $this1_i_i13_i | 0;
  46545.         HEAP[$this_addr_i_i13_i_i_i] = HEAP[$this_addr_i14_i_i_i] | 0;
  46546.         var $this1_i_i17_i_i_i = HEAP[$this_addr_i_i13_i_i_i];
  46547.         if ((((HEAP[$this1_i_i17_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i17_i_i_i + 1 | 0] & 255) & 65535 | 0) != 1) {
  46548.           HEAP[$retval_i_i_i85] = 0;
  46549.           break;
  46550.         }
  46551.         var $1343 = HEAP[$c_addr_i_i_i86];
  46552.         var $1344 = HEAP[$first_glyphs_addr_i_i_i];
  46553.         var $1345 = HEAP[$ligature_per_first_glyph_count_list_addr_i_i_i];
  46554.         var $1346 = HEAP[$num_first_glyphs_addr_i_i_i];
  46555.         var $1347 = HEAP[$ligatures_list_addr_i_i_i];
  46556.         var $1348 = HEAP[$component_count_list_addr_i_i_i];
  46557.         var $1349 = HEAP[$component_list_addr_i_i_i];
  46558.         HEAP[$this_addr_i_i_i_i81] = $this1_i_i13_i | 0;
  46559.         HEAP[$c_addr_i_i_i_i82] = $1343;
  46560.         HEAP[$first_glyphs_addr_i_i_i_i] = $1344;
  46561.         HEAP[$ligature_per_first_glyph_count_list_addr_i_i_i_i] = $1345;
  46562.         HEAP[$num_first_glyphs_addr_i_i_i_i] = $1346;
  46563.         HEAP[$ligatures_list_addr_i_i_i_i] = $1347;
  46564.         HEAP[$component_count_list_addr_i_i_i_i] = $1348;
  46565.         HEAP[$component_list_addr_i_i_i_i] = $1349;
  46566.         var $this1_i_i_i_i227 = HEAP[$this_addr_i_i_i_i81];
  46567.         HEAP[$this_addr_i_i_i_i_i75] = HEAP[$c_addr_i_i_i_i82];
  46568.         HEAP[$obj_addr_i_i_i_i_i76] = $this1_i_i_i_i227;
  46569.         var $this1_i_i_i_i_i228 = HEAP[$this_addr_i_i_i_i_i75];
  46570.         HEAP[$size_i_i_i_i_i77] = 6;
  46571.         if (!(HEAP[$this1_i_i_i_i_i228 + 4 | 0] >>> 0 <= HEAP[$obj_addr_i_i_i_i_i76] >>> 0)) {
  46572.           ___assert_func(102352, 451, 107352, 103368);
  46573.         }
  46574.         if (!(HEAP[$obj_addr_i_i_i_i_i76] >>> 0 <= HEAP[$this1_i_i_i_i_i228 + 12 | 0] >>> 0)) {
  46575.           ___assert_func(102352, 451, 107352, 103368);
  46576.         }
  46577.         if (!((HEAP[$obj_addr_i_i_i_i_i76] + HEAP[$size_i_i_i_i_i77] | 0) >>> 0 >= HEAP[$this1_i_i_i_i_i228 + 12 | 0] >>> 0)) {
  46578.           ___assert_func(102352, 451, 107352, 103368);
  46579.         }
  46580.         var $sub_ptr_sub_i_i_i_i_i244 = HEAP[$obj_addr_i_i_i_i_i76] + HEAP[$size_i_i_i_i_i77] - HEAP[$this1_i_i_i_i_i228 + 12 | 0] | 0;
  46581.         HEAP[$this_addr_i_i_i_i_i_i71] = $this1_i_i_i_i_i228;
  46582.         HEAP[$size_addr_i_i_i_i_i_i72] = $sub_ptr_sub_i_i_i_i_i244;
  46583.         var $this1_i_i_i_i_i_i245 = HEAP[$this_addr_i_i_i_i_i_i71];
  46584.         do {
  46585.           if (HEAP[$this1_i_i_i_i_i_i245 + 16 | 0] & 1) {
  46586.             label = 971;
  46587.           } else {
  46588.             if ((HEAP[$this1_i_i_i_i_i_i245 + 8 | 0] - HEAP[$this1_i_i_i_i_i_i245 + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i_i_i_i72] | 0)) {
  46589.               label = 971;
  46590.               break;
  46591.             }
  46592.             var $1387 = HEAP[$this1_i_i_i_i_i_i245 + 12 | 0];
  46593.             var $1388 = HEAP[$size_addr_i_i_i_i_i_i72];
  46594.             for (var $$dest = $1387, $$stop = $$dest + $1388; $$dest < $$stop; $$dest++) {
  46595.               HEAP[$$dest] = 0;
  46596.             }
  46597.             HEAP[$ret_i_i_i_i_i_i73] = HEAP[$this1_i_i_i_i_i_i245 + 12 | 0];
  46598.             var $head5_i_i_i_i_i_i260 = $this1_i_i_i_i_i_i245 + 12 | 0;
  46599.             HEAP[$head5_i_i_i_i_i_i260] = HEAP[$head5_i_i_i_i_i_i260] + HEAP[$size_addr_i_i_i_i_i_i72] | 0;
  46600.             var $1393 = HEAP[$ret_i_i_i_i_i_i73];
  46601.             HEAP[$retval_i_i_i_i_i_i70] = $1393;
  46602.             var $1394 = $1393;
  46603.             break;
  46604.           }
  46605.         } while (0);
  46606.         if (label == 971) {
  46607.           HEAP[$this1_i_i_i_i_i_i245 + 16 | 0] = 1;
  46608.           HEAP[$retval_i_i_i_i_i_i70] = 0;
  46609.           var $1394 = 0;
  46610.         }
  46611.         var $1394;
  46612.         if (($1394 | 0) != 0) {
  46613.           var $1399 = HEAP[$obj_addr_i_i_i_i_i76];
  46614.           HEAP[$retval_i_i_i_i_i74] = $1399;
  46615.           var $1400 = $1399;
  46616.         } else {
  46617.           HEAP[$retval_i_i_i_i_i74] = 0;
  46618.           var $1400 = 0;
  46619.         }
  46620.         var $1400;
  46621.         L1382 : do {
  46622.           if (($1400 | 0) != 0) {
  46623.             var $1407 = HEAP[$c_addr_i_i_i_i82];
  46624.             var $1408 = HEAP[$num_first_glyphs_addr_i_i_i_i];
  46625.             HEAP[$this_addr_i68_i_i_i_i] = $this1_i_i_i_i227 + 4 | 0;
  46626.             HEAP[$c_addr_i69_i_i_i_i] = $1407;
  46627.             HEAP[$items_len_addr_i_i_i_i_i29] = $1408;
  46628.             var $this1_i70_i_i_i_i = HEAP[$this_addr_i68_i_i_i_i];
  46629.             HEAP[$this_addr_i9_i_i_i_i_i28] = HEAP[$c_addr_i69_i_i_i_i];
  46630.             HEAP[$obj_addr_i10_i_i_i_i_i] = $this1_i70_i_i_i_i;
  46631.             var $this1_i12_i_i_i_i_i = HEAP[$this_addr_i9_i_i_i_i_i28];
  46632.             HEAP[$size_i11_i_i_i_i_i] = 2;
  46633.             if (!(HEAP[$this1_i12_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i10_i_i_i_i_i] >>> 0)) {
  46634.               ___assert_func(102352, 451, 108208, 103368);
  46635.             }
  46636.             if (!(HEAP[$obj_addr_i10_i_i_i_i_i] >>> 0 <= HEAP[$this1_i12_i_i_i_i_i + 12 | 0] >>> 0)) {
  46637.               ___assert_func(102352, 451, 108208, 103368);
  46638.             }
  46639.             if (!((HEAP[$obj_addr_i10_i_i_i_i_i] + HEAP[$size_i11_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i12_i_i_i_i_i + 12 | 0] >>> 0)) {
  46640.               ___assert_func(102352, 451, 108208, 103368);
  46641.             }
  46642.             var $sub_ptr_sub_i27_i_i_i_i_i = HEAP[$obj_addr_i10_i_i_i_i_i] + HEAP[$size_i11_i_i_i_i_i] - HEAP[$this1_i12_i_i_i_i_i + 12 | 0] | 0;
  46643.             HEAP[$this_addr_i_i5_i_i_i_i_i] = $this1_i12_i_i_i_i_i;
  46644.             HEAP[$size_addr_i_i6_i_i_i_i_i] = $sub_ptr_sub_i27_i_i_i_i_i;
  46645.             var $this1_i_i28_i71_i_i_i_i = HEAP[$this_addr_i_i5_i_i_i_i_i];
  46646.             do {
  46647.               if (HEAP[$this1_i_i28_i71_i_i_i_i + 16 | 0] & 1) {
  46648.                 label = 984;
  46649.               } else {
  46650.                 if ((HEAP[$this1_i_i28_i71_i_i_i_i + 8 | 0] - HEAP[$this1_i_i28_i71_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i6_i_i_i_i_i] | 0)) {
  46651.                   label = 984;
  46652.                   break;
  46653.                 }
  46654.                 var $1440 = HEAP[$this1_i_i28_i71_i_i_i_i + 12 | 0];
  46655.                 var $1441 = HEAP[$size_addr_i_i6_i_i_i_i_i];
  46656.                 for (var $$dest = $1440, $$stop = $$dest + $1441; $$dest < $$stop; $$dest++) {
  46657.                   HEAP[$$dest] = 0;
  46658.                 }
  46659.                 HEAP[$ret_i_i7_i_i_i_i_i] = HEAP[$this1_i_i28_i71_i_i_i_i + 12 | 0];
  46660.                 var $head5_i_i43_i_i_i_i_i = $this1_i_i28_i71_i_i_i_i + 12 | 0;
  46661.                 HEAP[$head5_i_i43_i_i_i_i_i] = HEAP[$head5_i_i43_i_i_i_i_i] + HEAP[$size_addr_i_i6_i_i_i_i_i] | 0;
  46662.                 var $1446 = HEAP[$ret_i_i7_i_i_i_i_i];
  46663.                 HEAP[$retval_i_i4_i_i_i_i_i] = $1446;
  46664.                 var $1447 = $1446;
  46665.                 break;
  46666.               }
  46667.             } while (0);
  46668.             if (label == 984) {
  46669.               HEAP[$this1_i_i28_i71_i_i_i_i + 16 | 0] = 1;
  46670.               HEAP[$retval_i_i4_i_i_i_i_i] = 0;
  46671.               var $1447 = 0;
  46672.             }
  46673.             var $1447;
  46674.             if (($1447 | 0) != 0) {
  46675.               var $1452 = HEAP[$obj_addr_i10_i_i_i_i_i];
  46676.               HEAP[$retval_i8_i_i_i_i_i] = $1452;
  46677.               var $1453 = $1452;
  46678.             } else {
  46679.               HEAP[$retval_i8_i_i_i_i_i] = 0;
  46680.               var $1453 = 0;
  46681.             }
  46682.             var $1453;
  46683.             do {
  46684.               if (($1453 | 0) != 0) {
  46685.                 var $conv_i75_i_i_i_i = HEAP[$items_len_addr_i_i_i_i_i29] & 65535;
  46686.                 HEAP[$this_addr_i53_i_i_i_i_i] = $this1_i70_i_i_i_i | 0;
  46687.                 HEAP[$i_addr_i_i54_i_i_i_i] = $conv_i75_i_i_i_i;
  46688.                 var $1462 = HEAP[$i_addr_i_i54_i_i_i_i];
  46689.                 HEAP[$this_addr_i_i52_i_i_i_i_i] = HEAP[$this_addr_i53_i_i_i_i_i] | 0;
  46690.                 HEAP[$i_addr_i_i_i53_i_i_i_i] = $1462;
  46691.                 var $this1_i_i55_i_i_i_i_i = HEAP[$this_addr_i_i52_i_i_i_i_i];
  46692.                 HEAP[$this1_i_i55_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i53_i_i_i_i] & 65535) >> 8 & 255;
  46693.                 HEAP[$this1_i_i55_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i53_i_i_i_i] & 255;
  46694.                 HEAP[$this_addr_i_i63_i_i_i_i] = HEAP[$c_addr_i69_i_i_i_i];
  46695.                 HEAP[$obj_addr_i_i64_i_i_i_i] = $this1_i70_i_i_i_i;
  46696.                 var $this1_i_i84_i_i_i_i = HEAP[$this_addr_i_i63_i_i_i_i];
  46697.                 HEAP[$this_addr_i_i_i61_i_i_i_i] = HEAP[$obj_addr_i_i64_i_i_i_i];
  46698.                 HEAP[$this_addr_i_i_i_i60_i_i_i_i] = HEAP[$this_addr_i_i_i61_i_i_i_i] | 0;
  46699.                 HEAP[$this_addr_i_i_i_i_i59_i_i_i_i] = HEAP[$this_addr_i_i_i_i60_i_i_i_i] | 0;
  46700.                 var $this1_i_i_i_i_i88_i_i_i_i = HEAP[$this_addr_i_i_i_i_i59_i_i_i_i];
  46701.                 HEAP[$size_i_i65_i_i_i_i] = ((((HEAP[$this1_i_i_i_i_i88_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i88_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  46702.                 if (HEAP[$this1_i_i84_i_i_i_i + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i64_i_i_i_i] >>> 0) {
  46703.                   ___assert_func(102352, 460, 106464, 103656);
  46704.                 }
  46705.                 if (!(HEAP[$obj_addr_i_i64_i_i_i_i] >>> 0 <= HEAP[$this1_i_i84_i_i_i_i + 12 | 0] >>> 0)) {
  46706.                   ___assert_func(102352, 460, 106464, 103656);
  46707.                 }
  46708.                 if (!((HEAP[$obj_addr_i_i64_i_i_i_i] + HEAP[$size_i_i65_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i_i84_i_i_i_i + 12 | 0] >>> 0)) {
  46709.                   ___assert_func(102352, 460, 106464, 103656);
  46710.                 }
  46711.                 var $sub_ptr_sub_i_i109_i_i_i_i = HEAP[$obj_addr_i_i64_i_i_i_i] + HEAP[$size_i_i65_i_i_i_i] - HEAP[$this1_i_i84_i_i_i_i + 12 | 0] | 0;
  46712.                 HEAP[$this_addr_i1_i_i56_i_i_i_i] = $this1_i_i84_i_i_i_i;
  46713.                 HEAP[$size_addr_i_i_i57_i_i_i_i] = $sub_ptr_sub_i_i109_i_i_i_i;
  46714.                 var $this1_i2_i_i110_i_i_i_i = HEAP[$this_addr_i1_i_i56_i_i_i_i];
  46715.                 do {
  46716.                   if (HEAP[$this1_i2_i_i110_i_i_i_i + 16 | 0] & 1) {
  46717.                     label = 997;
  46718.                   } else {
  46719.                     if ((HEAP[$this1_i2_i_i110_i_i_i_i + 8 | 0] - HEAP[$this1_i2_i_i110_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i57_i_i_i_i] | 0)) {
  46720.                       label = 997;
  46721.                       break;
  46722.                     }
  46723.                     var $1507 = HEAP[$this1_i2_i_i110_i_i_i_i + 12 | 0];
  46724.                     var $1508 = HEAP[$size_addr_i_i_i57_i_i_i_i];
  46725.                     for (var $$dest = $1507, $$stop = $$dest + $1508; $$dest < $$stop; $$dest++) {
  46726.                       HEAP[$$dest] = 0;
  46727.                     }
  46728.                     HEAP[$ret_i_i_i58_i_i_i_i] = HEAP[$this1_i2_i_i110_i_i_i_i + 12 | 0];
  46729.                     var $head5_i_i_i125_i_i_i_i = $this1_i2_i_i110_i_i_i_i + 12 | 0;
  46730.                     HEAP[$head5_i_i_i125_i_i_i_i] = HEAP[$head5_i_i_i125_i_i_i_i] + HEAP[$size_addr_i_i_i57_i_i_i_i] | 0;
  46731.                     var $1513 = HEAP[$ret_i_i_i58_i_i_i_i];
  46732.                     HEAP[$retval_i_i_i55_i_i_i_i] = $1513;
  46733.                     var $1514 = $1513;
  46734.                     break;
  46735.                   }
  46736.                 } while (0);
  46737.                 if (label == 997) {
  46738.                   HEAP[$this1_i2_i_i110_i_i_i_i + 16 | 0] = 1;
  46739.                   HEAP[$retval_i_i_i55_i_i_i_i] = 0;
  46740.                   var $1514 = 0;
  46741.                 }
  46742.                 var $1514;
  46743.                 if (($1514 | 0) != 0) {
  46744.                   var $1519 = HEAP[$obj_addr_i_i64_i_i_i_i];
  46745.                   HEAP[$retval_i_i62_i_i_i_i] = $1519;
  46746.                   var $1520 = $1519;
  46747.                 } else {
  46748.                   HEAP[$retval_i_i62_i_i_i_i] = 0;
  46749.                   var $1520 = 0;
  46750.                 }
  46751.                 var $1520;
  46752.                 if (($1520 | 0) != 0) {
  46753.                   var $tobool_i_i130_i_i_i_i = 1;
  46754.                   HEAP[$retval_i67_i_i_i_i] = $tobool_i_i130_i_i_i_i;
  46755.                   var $1527 = $tobool_i_i130_i_i_i_i;
  46756.                   break;
  46757.                 } else {
  46758.                   var $tobool_i2_i_i_i_i_i = 0;
  46759.                   HEAP[$retval_i67_i_i_i_i] = $tobool_i2_i_i_i_i_i;
  46760.                   var $1527 = $tobool_i2_i_i_i_i_i;
  46761.                   break;
  46762.                 }
  46763.               } else {
  46764.                 var $tobool_i51_i_i_i_i_i = 0;
  46765.                 HEAP[$retval_i67_i_i_i_i] = $tobool_i51_i_i_i_i_i;
  46766.                 var $1527 = $tobool_i51_i_i_i_i_i;
  46767.               }
  46768.             } while (0);
  46769.             var $1527;
  46770.             if (!$1527) {
  46771.               HEAP[$retval_i_i_i_i80] = 0;
  46772.               break;
  46773.             }
  46774.             HEAP[$i_i_i_i_i] = 0;
  46775.             L1433 : do {
  46776.               if (HEAP[$i_i_i_i_i] >>> 0 < HEAP[$num_first_glyphs_addr_i_i_i_i] >>> 0) {
  46777.                 var $1535 = $this1_i_i_i_i227 + 4 | 0;
  46778.                 var $1540 = $this1_i_i_i_i227;
  46779.                 var $1673 = $agg_tmp_i_i_i_i_i;
  46780.                 var $tmp_i_i_i_i_i = $agg_tmp14_i_i_i_i_i;
  46781.                 var $tmp15_i_i_i_i_i = $agg_tmp_i_i_i_i_i;
  46782.                 var $1703 = $agg_tmp14_i_i_i_i_i;
  46783.                 var $1763 = $ref_tmp_i_i_i_i_i_i_i;
  46784.                 var $1766 = $ref_tmp_i_i_i_i_i_i_i;
  46785.                 var $1767 = $ref_tmp_i_i_i_i_i_i_i;
  46786.                 var $1784 = $agg_tmp_i_i_i_i_i;
  46787.                 L1435 : while (1) {
  46788.                   var $1803 = HEAP[$i_i_i_i_i];
  46789.                   HEAP[$this_addr_i133_i_i_i_i] = $1535;
  46790.                   HEAP[$i_addr_i_i_i_i_i27] = $1803;
  46791.                   var $1806 = HEAP[$c_addr_i_i_i_i82];
  46792.                   HEAP[$this_addr_i141_i_i_i_i] = (HEAP[$i_addr_i_i_i_i_i27] << 1) + HEAP[$this_addr_i133_i_i_i_i] + 2 | 0;
  46793.                   HEAP[$c_addr_i142_i_i_i_i] = $1806;
  46794.                   HEAP[$base_addr_i143_i_i_i_i] = $1540;
  46795.                   var $this1_i145_i_i_i_i = HEAP[$this_addr_i141_i_i_i_i];
  46796.                   HEAP[$this_addr_i_i139_i_i_i_i] = HEAP[$c_addr_i142_i_i_i_i];
  46797.                   HEAP[$ret_i_i140_i_i_i_i] = HEAP[HEAP[$this_addr_i_i139_i_i_i_i] + 12 | 0];
  46798.                   HEAP[$t_i144_i_i_i_i] = HEAP[$ret_i_i140_i_i_i_i];
  46799.                   var $conv_i151_i_i_i_i = HEAP[$t_i144_i_i_i_i] - HEAP[$base_addr_i143_i_i_i_i] & 65535;
  46800.                   HEAP[$this_addr_i1_i137_i_i_i_i] = $this1_i145_i_i_i_i;
  46801.                   HEAP[$i_addr_i_i138_i_i_i_i] = $conv_i151_i_i_i_i;
  46802.                   var $1815 = HEAP[$i_addr_i_i138_i_i_i_i];
  46803.                   HEAP[$this_addr_i_i_i135_i_i_i_i] = HEAP[$this_addr_i1_i137_i_i_i_i] | 0;
  46804.                   HEAP[$i_addr_i_i_i136_i_i_i_i] = $1815;
  46805.                   var $this1_i_i_i154_i_i_i_i = HEAP[$this_addr_i_i_i135_i_i_i_i];
  46806.                   HEAP[$this1_i_i_i154_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i136_i_i_i_i] & 65535) >> 8 & 255;
  46807.                   HEAP[$this1_i_i_i154_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i136_i_i_i_i] & 255;
  46808.                   var $1818 = HEAP[$t_i144_i_i_i_i];
  46809.                   var $1819 = HEAP[$c_addr_i_i_i_i82];
  46810.                   var $1820 = HEAP[$ligatures_list_addr_i_i_i_i];
  46811.                   var $1821 = HEAP[$component_count_list_addr_i_i_i_i];
  46812.                   var $1823 = HEAP[$i_i_i_i_i];
  46813.                   HEAP[$this_addr_i164_i_i_i_i] = HEAP[$ligature_per_first_glyph_count_list_addr_i_i_i_i];
  46814.                   HEAP[$i_addr_i165_i_i_i_i] = $1823;
  46815.                   var $this1_i166_i_i_i_i = HEAP[$this_addr_i164_i_i_i_i];
  46816.                   if (HEAP[$i_addr_i165_i_i_i_i] >>> 0 >= HEAP[$this1_i166_i_i_i_i | 0] >>> 0) {
  46817.                     HEAP[$retval_i163_i_i_i_i] = 0;
  46818.                   } else {
  46819.                     HEAP[$retval_i163_i_i_i_i] = HEAP[(HEAP[$i_addr_i165_i_i_i_i] << 2) + HEAP[$this1_i166_i_i_i_i + 4 | 0] | 0];
  46820.                   }
  46821.                   var $1829 = HEAP[$retval_i163_i_i_i_i];
  46822.                   var $1830 = HEAP[$component_list_addr_i_i_i_i];
  46823.                   HEAP[$this_addr_i31_i_i_i_i] = $1818;
  46824.                   HEAP[$c_addr_i32_i_i_i_i] = $1819;
  46825.                   HEAP[$ligatures_addr_i_i_i_i_i] = $1820;
  46826.                   HEAP[$component_count_list_addr_i_i_i_i_i] = $1821;
  46827.                   HEAP[$num_ligatures_addr_i_i_i_i_i] = $1829;
  46828.                   HEAP[$component_list_addr_i_i_i_i_i] = $1830;
  46829.                   var $this1_i33_i_i_i_i = HEAP[$this_addr_i31_i_i_i_i];
  46830.                   HEAP[$this_addr_i23_i_i_i_i_i] = HEAP[$c_addr_i32_i_i_i_i];
  46831.                   HEAP[$obj_addr_i_i_i_i_i_i] = $this1_i33_i_i_i_i;
  46832.                   var $this1_i24_i_i_i_i_i = HEAP[$this_addr_i23_i_i_i_i_i];
  46833.                   HEAP[$size_i_i_i_i_i_i] = 2;
  46834.                   if (!(HEAP[$this1_i24_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i_i_i_i_i_i] >>> 0)) {
  46835.                     label = 1165;
  46836.                     break;
  46837.                   }
  46838.                   if (!(HEAP[$obj_addr_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i24_i_i_i_i_i + 12 | 0] >>> 0)) {
  46839.                     label = 1166;
  46840.                     break;
  46841.                   }
  46842.                   if (!((HEAP[$obj_addr_i_i_i_i_i_i] + HEAP[$size_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i24_i_i_i_i_i + 12 | 0] >>> 0)) {
  46843.                     label = 1167;
  46844.                     break;
  46845.                   }
  46846.                   var $sub_ptr_sub_i_i37_i_i_i_i = HEAP[$obj_addr_i_i_i_i_i_i] + HEAP[$size_i_i_i_i_i_i] - HEAP[$this1_i24_i_i_i_i_i + 12 | 0] | 0;
  46847.                   HEAP[$this_addr_i_i21_i_i_i_i_i] = $this1_i24_i_i_i_i_i;
  46848.                   HEAP[$size_addr_i_i_i_i_i_i_i] = $sub_ptr_sub_i_i37_i_i_i_i;
  46849.                   var $this1_i_i28_i_i_i_i_i = HEAP[$this_addr_i_i21_i_i_i_i_i];
  46850.                   do {
  46851.                     if (HEAP[$this1_i_i28_i_i_i_i_i + 16 | 0] & 1) {
  46852.                       label = 1018;
  46853.                     } else {
  46854.                       if ((HEAP[$this1_i_i28_i_i_i_i_i + 8 | 0] - HEAP[$this1_i_i28_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i_i_i_i_i] | 0)) {
  46855.                         label = 1018;
  46856.                         break;
  46857.                       }
  46858.                       var $1850 = HEAP[$this1_i_i28_i_i_i_i_i + 12 | 0];
  46859.                       var $1851 = HEAP[$size_addr_i_i_i_i_i_i_i];
  46860.                       for (var $$dest = $1850, $$stop = $$dest + $1851; $$dest < $$stop; $$dest++) {
  46861.                         HEAP[$$dest] = 0;
  46862.                       }
  46863.                       HEAP[$ret_i_i_i_i_i_i_i] = HEAP[$this1_i_i28_i_i_i_i_i + 12 | 0];
  46864.                       var $head5_i_i_i_i_i_i_i = $this1_i_i28_i_i_i_i_i + 12 | 0;
  46865.                       HEAP[$head5_i_i_i_i_i_i_i] = HEAP[$head5_i_i_i_i_i_i_i] + HEAP[$size_addr_i_i_i_i_i_i_i] | 0;
  46866.                       var $1856 = HEAP[$ret_i_i_i_i_i_i_i];
  46867.                       HEAP[$retval_i_i20_i_i_i_i_i] = $1856;
  46868.                       var $1857 = $1856;
  46869.                       break;
  46870.                     }
  46871.                   } while (0);
  46872.                   if (label == 1018) {
  46873.                     label = 0;
  46874.                     HEAP[$this1_i_i28_i_i_i_i_i + 16 | 0] = 1;
  46875.                     HEAP[$retval_i_i20_i_i_i_i_i] = 0;
  46876.                     var $1857 = 0;
  46877.                   }
  46878.                   var $1857;
  46879.                   if (($1857 | 0) != 0) {
  46880.                     var $1858 = HEAP[$obj_addr_i_i_i_i_i_i];
  46881.                     HEAP[$retval_i22_i_i_i_i_i] = $1858;
  46882.                     var $1859 = $1858;
  46883.                   } else {
  46884.                     HEAP[$retval_i22_i_i_i_i_i] = 0;
  46885.                     var $1859 = 0;
  46886.                   }
  46887.                   var $1859;
  46888.                   L1454 : do {
  46889.                     if (($1859 | 0) != 0) {
  46890.                       var $1862 = HEAP[$c_addr_i32_i_i_i_i];
  46891.                       var $1863 = HEAP[$num_ligatures_addr_i_i_i_i_i];
  46892.                       HEAP[$this_addr_i61_i_i_i_i_i] = $this1_i33_i_i_i_i | 0;
  46893.                       HEAP[$c_addr_i62_i_i_i_i_i] = $1862;
  46894.                       HEAP[$items_len_addr_i_i_i_i_i_i39] = $1863;
  46895.                       var $this1_i63_i_i_i_i_i = HEAP[$this_addr_i61_i_i_i_i_i];
  46896.                       HEAP[$this_addr_i9_i_i_i_i_i_i36] = HEAP[$c_addr_i62_i_i_i_i_i];
  46897.                       HEAP[$obj_addr_i10_i_i_i_i_i_i37] = $this1_i63_i_i_i_i_i;
  46898.                       var $this1_i12_i_i_i_i_i_i274 = HEAP[$this_addr_i9_i_i_i_i_i_i36];
  46899.                       HEAP[$size_i11_i_i_i_i_i_i38] = 2;
  46900.                       if (!(HEAP[$this1_i12_i_i_i_i_i_i274 + 4 | 0] >>> 0 <= HEAP[$obj_addr_i10_i_i_i_i_i_i37] >>> 0)) {
  46901.                         label = 1168;
  46902.                         break L1435;
  46903.                       }
  46904.                       if (!(HEAP[$obj_addr_i10_i_i_i_i_i_i37] >>> 0 <= HEAP[$this1_i12_i_i_i_i_i_i274 + 12 | 0] >>> 0)) {
  46905.                         label = 1169;
  46906.                         break L1435;
  46907.                       }
  46908.                       if (!((HEAP[$obj_addr_i10_i_i_i_i_i_i37] + HEAP[$size_i11_i_i_i_i_i_i38] | 0) >>> 0 >= HEAP[$this1_i12_i_i_i_i_i_i274 + 12 | 0] >>> 0)) {
  46909.                         label = 1170;
  46910.                         break L1435;
  46911.                       }
  46912.                       var $sub_ptr_sub_i27_i_i_i_i_i_i289 = HEAP[$obj_addr_i10_i_i_i_i_i_i37] + HEAP[$size_i11_i_i_i_i_i_i38] - HEAP[$this1_i12_i_i_i_i_i_i274 + 12 | 0] | 0;
  46913.                       HEAP[$this_addr_i_i5_i46_i_i_i_i_i] = $this1_i12_i_i_i_i_i_i274;
  46914.                       HEAP[$size_addr_i_i6_i_i_i_i_i_i33] = $sub_ptr_sub_i27_i_i_i_i_i_i289;
  46915.                       var $this1_i_i28_i_i_i_i_i_i290 = HEAP[$this_addr_i_i5_i46_i_i_i_i_i];
  46916.                       do {
  46917.                         if (HEAP[$this1_i_i28_i_i_i_i_i_i290 + 16 | 0] & 1) {
  46918.                           label = 1031;
  46919.                         } else {
  46920.                           if ((HEAP[$this1_i_i28_i_i_i_i_i_i290 + 8 | 0] - HEAP[$this1_i_i28_i_i_i_i_i_i290 + 12 | 0] | 0) < (HEAP[$size_addr_i_i6_i_i_i_i_i_i33] | 0)) {
  46921.                             label = 1031;
  46922.                             break;
  46923.                           }
  46924.                           var $1883 = HEAP[$this1_i_i28_i_i_i_i_i_i290 + 12 | 0];
  46925.                           var $1884 = HEAP[$size_addr_i_i6_i_i_i_i_i_i33];
  46926.                           for (var $$dest = $1883, $$stop = $$dest + $1884; $$dest < $$stop; $$dest++) {
  46927.                             HEAP[$$dest] = 0;
  46928.                           }
  46929.                           HEAP[$ret_i_i7_i_i_i_i_i_i34] = HEAP[$this1_i_i28_i_i_i_i_i_i290 + 12 | 0];
  46930.                           var $head5_i_i43_i_i_i_i_i_i305 = $this1_i_i28_i_i_i_i_i_i290 + 12 | 0;
  46931.                           HEAP[$head5_i_i43_i_i_i_i_i_i305] = HEAP[$head5_i_i43_i_i_i_i_i_i305] + HEAP[$size_addr_i_i6_i_i_i_i_i_i33] | 0;
  46932.                           var $1889 = HEAP[$ret_i_i7_i_i_i_i_i_i34];
  46933.                           HEAP[$retval_i_i4_i45_i_i_i_i_i] = $1889;
  46934.                           var $1890 = $1889;
  46935.                           break;
  46936.                         }
  46937.                       } while (0);
  46938.                       if (label == 1031) {
  46939.                         label = 0;
  46940.                         HEAP[$this1_i_i28_i_i_i_i_i_i290 + 16 | 0] = 1;
  46941.                         HEAP[$retval_i_i4_i45_i_i_i_i_i] = 0;
  46942.                         var $1890 = 0;
  46943.                       }
  46944.                       var $1890;
  46945.                       if (($1890 | 0) != 0) {
  46946.                         var $1891 = HEAP[$obj_addr_i10_i_i_i_i_i_i37];
  46947.                         HEAP[$retval_i8_i_i_i_i_i_i35] = $1891;
  46948.                         var $1892 = $1891;
  46949.                       } else {
  46950.                         HEAP[$retval_i8_i_i_i_i_i_i35] = 0;
  46951.                         var $1892 = 0;
  46952.                       }
  46953.                       var $1892;
  46954.                       do {
  46955.                         if (($1892 | 0) != 0) {
  46956.                           var $conv_i_i_i_i_i_i312 = HEAP[$items_len_addr_i_i_i_i_i_i39] & 65535;
  46957.                           HEAP[$this_addr_i53_i_i_i_i_i_i31] = $this1_i63_i_i_i_i_i | 0;
  46958.                           HEAP[$i_addr_i_i_i25_i_i_i_i] = $conv_i_i_i_i_i_i312;
  46959.                           var $1895 = HEAP[$i_addr_i_i_i25_i_i_i_i];
  46960.                           HEAP[$this_addr_i_i52_i_i_i_i_i_i30] = HEAP[$this_addr_i53_i_i_i_i_i_i31] | 0;
  46961.                           HEAP[$i_addr_i_i_i44_i_i_i_i_i] = $1895;
  46962.                           var $this1_i_i55_i_i_i_i_i_i314 = HEAP[$this_addr_i_i52_i_i_i_i_i_i30];
  46963.                           HEAP[$this1_i_i55_i_i_i_i_i_i314 | 0] = (HEAP[$i_addr_i_i_i44_i_i_i_i_i] & 65535) >> 8 & 255;
  46964.                           HEAP[$this1_i_i55_i_i_i_i_i_i314 + 1 | 0] = HEAP[$i_addr_i_i_i44_i_i_i_i_i] & 255;
  46965.                           HEAP[$this_addr_i_i55_i_i_i_i_i] = HEAP[$c_addr_i62_i_i_i_i_i];
  46966.                           HEAP[$obj_addr_i_i56_i_i_i_i_i] = $this1_i63_i_i_i_i_i;
  46967.                           var $this1_i_i69_i_i_i_i_i = HEAP[$this_addr_i_i55_i_i_i_i_i];
  46968.                           HEAP[$this_addr_i_i_i53_i_i_i_i_i] = HEAP[$obj_addr_i_i56_i_i_i_i_i];
  46969.                           HEAP[$this_addr_i_i_i_i52_i_i_i_i_i] = HEAP[$this_addr_i_i_i53_i_i_i_i_i] | 0;
  46970.                           HEAP[$this_addr_i_i_i_i_i51_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i52_i_i_i_i_i] | 0;
  46971.                           var $this1_i_i_i_i_i74_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i51_i_i_i_i_i];
  46972.                           HEAP[$size_i_i57_i_i_i_i_i] = ((((HEAP[$this1_i_i_i_i_i74_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i74_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  46973.                           if (HEAP[$this1_i_i69_i_i_i_i_i + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i56_i_i_i_i_i] >>> 0) {
  46974.                             label = 1171;
  46975.                             break L1435;
  46976.                           }
  46977.                           if (!(HEAP[$obj_addr_i_i56_i_i_i_i_i] >>> 0 <= HEAP[$this1_i_i69_i_i_i_i_i + 12 | 0] >>> 0)) {
  46978.                             label = 1172;
  46979.                             break L1435;
  46980.                           }
  46981.                           if (!((HEAP[$obj_addr_i_i56_i_i_i_i_i] + HEAP[$size_i_i57_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i_i69_i_i_i_i_i + 12 | 0] >>> 0)) {
  46982.                             label = 1173;
  46983.                             break L1435;
  46984.                           }
  46985.                           var $sub_ptr_sub_i_i91_i_i_i_i_i = HEAP[$obj_addr_i_i56_i_i_i_i_i] + HEAP[$size_i_i57_i_i_i_i_i] - HEAP[$this1_i_i69_i_i_i_i_i + 12 | 0] | 0;
  46986.                           HEAP[$this_addr_i1_i_i48_i_i_i_i_i] = $this1_i_i69_i_i_i_i_i;
  46987.                           HEAP[$size_addr_i_i_i49_i_i_i_i_i] = $sub_ptr_sub_i_i91_i_i_i_i_i;
  46988.                           var $this1_i2_i_i92_i_i_i_i_i = HEAP[$this_addr_i1_i_i48_i_i_i_i_i];
  46989.                           do {
  46990.                             if (HEAP[$this1_i2_i_i92_i_i_i_i_i + 16 | 0] & 1) {
  46991.                               label = 1044;
  46992.                             } else {
  46993.                               if ((HEAP[$this1_i2_i_i92_i_i_i_i_i + 8 | 0] - HEAP[$this1_i2_i_i92_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i49_i_i_i_i_i] | 0)) {
  46994.                                 label = 1044;
  46995.                                 break;
  46996.                               }
  46997.                               var $1920 = HEAP[$this1_i2_i_i92_i_i_i_i_i + 12 | 0];
  46998.                               var $1921 = HEAP[$size_addr_i_i_i49_i_i_i_i_i];
  46999.                               for (var $$dest = $1920, $$stop = $$dest + $1921; $$dest < $$stop; $$dest++) {
  47000.                                 HEAP[$$dest] = 0;
  47001.                               }
  47002.                               HEAP[$ret_i_i_i50_i_i_i_i_i] = HEAP[$this1_i2_i_i92_i_i_i_i_i + 12 | 0];
  47003.                               var $head5_i_i_i107_i_i_i_i_i = $this1_i2_i_i92_i_i_i_i_i + 12 | 0;
  47004.                               HEAP[$head5_i_i_i107_i_i_i_i_i] = HEAP[$head5_i_i_i107_i_i_i_i_i] + HEAP[$size_addr_i_i_i49_i_i_i_i_i] | 0;
  47005.                               var $1926 = HEAP[$ret_i_i_i50_i_i_i_i_i];
  47006.                               HEAP[$retval_i_i_i47_i_i_i_i_i] = $1926;
  47007.                               var $1927 = $1926;
  47008.                               break;
  47009.                             }
  47010.                           } while (0);
  47011.                           if (label == 1044) {
  47012.                             label = 0;
  47013.                             HEAP[$this1_i2_i_i92_i_i_i_i_i + 16 | 0] = 1;
  47014.                             HEAP[$retval_i_i_i47_i_i_i_i_i] = 0;
  47015.                             var $1927 = 0;
  47016.                           }
  47017.                           var $1927;
  47018.                           if (($1927 | 0) != 0) {
  47019.                             var $1928 = HEAP[$obj_addr_i_i56_i_i_i_i_i];
  47020.                             HEAP[$retval_i_i54_i_i_i_i_i] = $1928;
  47021.                             var $1929 = $1928;
  47022.                           } else {
  47023.                             HEAP[$retval_i_i54_i_i_i_i_i] = 0;
  47024.                             var $1929 = 0;
  47025.                           }
  47026.                           var $1929;
  47027.                           if (($1929 | 0) != 0) {
  47028.                             var $tobool_i_i114_i_i_i_i_i = 1;
  47029.                             HEAP[$retval_i60_i_i_i_i_i] = $tobool_i_i114_i_i_i_i_i;
  47030.                             var $1932 = $tobool_i_i114_i_i_i_i_i;
  47031.                             break;
  47032.                           } else {
  47033.                             var $tobool_i2_i113_i_i_i_i_i = 0;
  47034.                             HEAP[$retval_i60_i_i_i_i_i] = $tobool_i2_i113_i_i_i_i_i;
  47035.                             var $1932 = $tobool_i2_i113_i_i_i_i_i;
  47036.                             break;
  47037.                           }
  47038.                         } else {
  47039.                           var $tobool_i51_i_i_i_i_i_i311 = 0;
  47040.                           HEAP[$retval_i60_i_i_i_i_i] = $tobool_i51_i_i_i_i_i_i311;
  47041.                           var $1932 = $tobool_i51_i_i_i_i_i_i311;
  47042.                         }
  47043.                       } while (0);
  47044.                       var $1932;
  47045.                       if (!$1932) {
  47046.                         var $tobool_i116_i_i_i_i_i = 0;
  47047.                         HEAP[$retval_i30_i_i_i_i] = $tobool_i116_i_i_i_i_i;
  47048.                         var $2127 = $tobool_i116_i_i_i_i_i;
  47049.                         break;
  47050.                       }
  47051.                       HEAP[$i_i_i_i_i_i58] = 0;
  47052.                       L1493 : do {
  47053.                         if (HEAP[$i_i_i_i_i_i58] >>> 0 < HEAP[$num_ligatures_addr_i_i_i_i_i] >>> 0) {
  47054.                           var $1936 = $this1_i33_i_i_i_i | 0;
  47055.                           var $1937 = $this1_i33_i_i_i_i;
  47056.                           while (1) {
  47057.                             var $1938 = HEAP[$i_i_i_i_i_i58];
  47058.                             HEAP[$this_addr_i117_i_i_i_i_i] = $1936;
  47059.                             HEAP[$i_addr_i_i24_i_i_i_i] = $1938;
  47060.                             var $1941 = HEAP[$c_addr_i32_i_i_i_i];
  47061.                             HEAP[$this_addr_i124_i_i_i_i_i] = (HEAP[$i_addr_i_i24_i_i_i_i] << 1) + HEAP[$this_addr_i117_i_i_i_i_i] + 2 | 0;
  47062.                             HEAP[$c_addr_i125_i_i_i_i_i] = $1941;
  47063.                             HEAP[$base_addr_i_i_i_i_i_i] = $1937;
  47064.                             var $this1_i126_i_i_i_i_i = HEAP[$this_addr_i124_i_i_i_i_i];
  47065.                             HEAP[$this_addr_i_i122_i_i_i_i_i] = HEAP[$c_addr_i125_i_i_i_i_i];
  47066.                             HEAP[$ret_i_i123_i_i_i_i_i] = HEAP[HEAP[$this_addr_i_i122_i_i_i_i_i] + 12 | 0];
  47067.                             HEAP[$t_i_i_i_i_i_i] = HEAP[$ret_i_i123_i_i_i_i_i];
  47068.                             var $conv_i132_i_i_i_i_i = HEAP[$t_i_i_i_i_i_i] - HEAP[$base_addr_i_i_i_i_i_i] & 65535;
  47069.                             HEAP[$this_addr_i1_i_i_i_i_i_i] = $this1_i126_i_i_i_i_i;
  47070.                             HEAP[$i_addr_i_i121_i_i_i_i_i] = $conv_i132_i_i_i_i_i;
  47071.                             var $1950 = HEAP[$i_addr_i_i121_i_i_i_i_i];
  47072.                             HEAP[$this_addr_i_i_i119_i_i_i_i_i] = HEAP[$this_addr_i1_i_i_i_i_i_i] | 0;
  47073.                             HEAP[$i_addr_i_i_i120_i_i_i_i_i] = $1950;
  47074.                             var $this1_i_i_i134_i_i_i_i_i = HEAP[$this_addr_i_i_i119_i_i_i_i_i];
  47075.                             HEAP[$this1_i_i_i134_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i120_i_i_i_i_i] & 65535) >> 8 & 255;
  47076.                             HEAP[$this1_i_i_i134_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i120_i_i_i_i_i] & 255;
  47077.                             var $1953 = HEAP[$t_i_i_i_i_i_i];
  47078.                             var $1954 = HEAP[$c_addr_i32_i_i_i_i];
  47079.                             var $1956 = HEAP[$i_i_i_i_i_i58];
  47080.                             HEAP[$this_addr_i153_i_i_i_i_i] = HEAP[$ligatures_addr_i_i_i_i_i];
  47081.                             HEAP[$i_addr_i154_i_i_i_i_i] = $1956;
  47082.                             var $this1_i155_i_i_i_i_i = HEAP[$this_addr_i153_i_i_i_i_i];
  47083.                             if (HEAP[$i_addr_i154_i_i_i_i_i] >>> 0 >= HEAP[$this1_i155_i_i_i_i_i | 0] >>> 0) {
  47084.                               HEAP[$1673] = 0;
  47085.                               HEAP[$1673 + 1] = 0;
  47086.                             } else {
  47087.                               var $1961 = (HEAP[$i_addr_i154_i_i_i_i_i] << 1) + HEAP[$this1_i155_i_i_i_i_i + 4 | 0] | 0;
  47088.                               HEAP[$1784] = HEAP[$1961];
  47089.                               HEAP[$1784 + 1] = HEAP[$1961 + 1];
  47090.                             }
  47091.                             var $1962 = HEAP[$component_list_addr_i_i_i_i_i];
  47092.                             var $1964 = HEAP[$i_i_i_i_i_i58];
  47093.                             HEAP[$this_addr_i144_i_i_i_i_i] = HEAP[$component_count_list_addr_i_i_i_i_i];
  47094.                             HEAP[$i_addr_i145_i_i_i_i_i] = $1964;
  47095.                             var $this1_i146_i_i_i_i_i = HEAP[$this_addr_i144_i_i_i_i_i];
  47096.                             if (HEAP[$i_addr_i145_i_i_i_i_i] >>> 0 >= HEAP[$this1_i146_i_i_i_i_i | 0] >>> 0) {
  47097.                               HEAP[$retval_i143_i_i_i_i_i] = 0;
  47098.                             } else {
  47099.                               HEAP[$retval_i143_i_i_i_i_i] = HEAP[(HEAP[$i_addr_i145_i_i_i_i_i] << 2) + HEAP[$this1_i146_i_i_i_i_i + 4 | 0] | 0];
  47100.                             }
  47101.                             var $1970 = HEAP[$retval_i143_i_i_i_i_i];
  47102.                             HEAP[$tmp_i_i_i_i_i] = HEAP[$tmp15_i_i_i_i_i];
  47103.                             HEAP[$tmp_i_i_i_i_i + 1] = HEAP[$tmp15_i_i_i_i_i + 1];
  47104.                             HEAP[$this_addr_i16_i_i_i_i_i] = $1953;
  47105.                             HEAP[$c_addr_i_i_i_i_i_i55] = $1954;
  47106.                             HEAP[$components_addr_i_i_i_i_i_i] = $1962;
  47107.                             HEAP[$num_components_addr_i_i_i_i_i_i] = $1970;
  47108.                             var $this1_i17_i_i_i_i_i = HEAP[$this_addr_i16_i_i_i_i_i];
  47109.                             HEAP[$this_addr_i7_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i55];
  47110.                             HEAP[$obj_addr_i_i_i_i_i_i_i44] = $this1_i17_i_i_i_i_i;
  47111.                             var $this1_i8_i_i_i_i_i_i = HEAP[$this_addr_i7_i_i_i_i_i_i];
  47112.                             HEAP[$size_i_i_i_i_i_i_i45] = 4;
  47113.                             if (!(HEAP[$this1_i8_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i_i_i_i_i_i_i44] >>> 0)) {
  47114.                               label = 1174;
  47115.                               break L1435;
  47116.                             }
  47117.                             if (!(HEAP[$obj_addr_i_i_i_i_i_i_i44] >>> 0 <= HEAP[$this1_i8_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  47118.                               label = 1175;
  47119.                               break L1435;
  47120.                             }
  47121.                             if (!((HEAP[$obj_addr_i_i_i_i_i_i_i44] + HEAP[$size_i_i_i_i_i_i_i45] | 0) >>> 0 >= HEAP[$this1_i8_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  47122.                               label = 1176;
  47123.                               break L1435;
  47124.                             }
  47125.                             var $sub_ptr_sub_i_i_i_i_i_i_i352 = HEAP[$obj_addr_i_i_i_i_i_i_i44] + HEAP[$size_i_i_i_i_i_i_i45] - HEAP[$this1_i8_i_i_i_i_i_i + 12 | 0] | 0;
  47126.                             HEAP[$this_addr_i_i5_i_i_i_i_i_i41] = $this1_i8_i_i_i_i_i_i;
  47127.                             HEAP[$size_addr_i_i_i_i_i_i_i_i42] = $sub_ptr_sub_i_i_i_i_i_i_i352;
  47128.                             var $this1_i_i10_i_i_i_i_i_i = HEAP[$this_addr_i_i5_i_i_i_i_i_i41];
  47129.                             do {
  47130.                               if (HEAP[$this1_i_i10_i_i_i_i_i_i + 16 | 0] & 1) {
  47131.                                 label = 1068;
  47132.                               } else {
  47133.                                 if ((HEAP[$this1_i_i10_i_i_i_i_i_i + 8 | 0] - HEAP[$this1_i_i10_i_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i_i_i_i_i_i42] | 0)) {
  47134.                                   label = 1068;
  47135.                                   break;
  47136.                                 }
  47137.                                 var $1990 = HEAP[$this1_i_i10_i_i_i_i_i_i + 12 | 0];
  47138.                                 var $1991 = HEAP[$size_addr_i_i_i_i_i_i_i_i42];
  47139.                                 for (var $$dest = $1990, $$stop = $$dest + $1991; $$dest < $$stop; $$dest++) {
  47140.                                   HEAP[$$dest] = 0;
  47141.                                 }
  47142.                                 HEAP[$ret_i_i_i_i_i_i_i_i43] = HEAP[$this1_i_i10_i_i_i_i_i_i + 12 | 0];
  47143.                                 var $head5_i_i_i_i_i_i_i_i359 = $this1_i_i10_i_i_i_i_i_i + 12 | 0;
  47144.                                 HEAP[$head5_i_i_i_i_i_i_i_i359] = HEAP[$head5_i_i_i_i_i_i_i_i359] + HEAP[$size_addr_i_i_i_i_i_i_i_i42] | 0;
  47145.                                 var $1996 = HEAP[$ret_i_i_i_i_i_i_i_i43];
  47146.                                 HEAP[$retval_i_i4_i_i_i_i_i_i40] = $1996;
  47147.                                 var $1997 = $1996;
  47148.                                 break;
  47149.                               }
  47150.                             } while (0);
  47151.                             if (label == 1068) {
  47152.                               label = 0;
  47153.                               HEAP[$this1_i_i10_i_i_i_i_i_i + 16 | 0] = 1;
  47154.                               HEAP[$retval_i_i4_i_i_i_i_i_i40] = 0;
  47155.                               var $1997 = 0;
  47156.                             }
  47157.                             var $1997;
  47158.                             if (($1997 | 0) != 0) {
  47159.                               var $1998 = HEAP[$obj_addr_i_i_i_i_i_i_i44];
  47160.                               HEAP[$retval_i6_i_i_i_i_i_i] = $1998;
  47161.                               var $1999 = $1998;
  47162.                             } else {
  47163.                               HEAP[$retval_i6_i_i_i_i_i_i] = 0;
  47164.                               var $1999 = 0;
  47165.                             }
  47166.                             var $1999;
  47167.                             do {
  47168.                               if (($1999 | 0) != 0) {
  47169.                                 var $2001 = $this1_i17_i_i_i_i_i | 0;
  47170.                                 HEAP[$2001] = HEAP[$1703];
  47171.                                 HEAP[$2001 + 1] = HEAP[$1703 + 1];
  47172.                                 var $2002 = HEAP[$c_addr_i_i_i_i_i_i55];
  47173.                                 var $2003 = HEAP[$components_addr_i_i_i_i_i_i];
  47174.                                 var $2004 = HEAP[$num_components_addr_i_i_i_i_i_i];
  47175.                                 HEAP[$this_addr_i_i_i26_i_i_i_i] = $this1_i17_i_i_i_i_i + 2 | 0;
  47176.                                 HEAP[$c_addr_i_i_i_i_i_i_i] = $2002;
  47177.                                 HEAP[$items_addr_i_i_i_i_i_i_i] = $2003;
  47178.                                 HEAP[$items_len_addr_i_i_i_i_i_i_i] = $2004;
  47179.                                 var $this1_i_i_i42_i_i_i_i = HEAP[$this_addr_i_i_i26_i_i_i_i];
  47180.                                 HEAP[$this_addr_i22_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  47181.                                 HEAP[$obj_addr_i23_i_i_i_i_i_i_i] = $this1_i_i_i42_i_i_i_i;
  47182.                                 var $this1_i25_i_i_i_i_i_i_i = HEAP[$this_addr_i22_i_i_i_i_i_i_i];
  47183.                                 HEAP[$size_i24_i_i_i_i_i_i_i] = 2;
  47184.                                 if (!(HEAP[$this1_i25_i_i_i_i_i_i_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i23_i_i_i_i_i_i_i] >>> 0)) {
  47185.                                   label = 1177;
  47186.                                   break L1435;
  47187.                                 }
  47188.                                 if (!(HEAP[$obj_addr_i23_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i25_i_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  47189.                                   label = 1178;
  47190.                                   break L1435;
  47191.                                 }
  47192.                                 if (!((HEAP[$obj_addr_i23_i_i_i_i_i_i_i] + HEAP[$size_i24_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i25_i_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  47193.                                   label = 1179;
  47194.                                   break L1435;
  47195.                                 }
  47196.                                 var $sub_ptr_sub_i40_i_i_i_i_i_i_i = HEAP[$obj_addr_i23_i_i_i_i_i_i_i] + HEAP[$size_i24_i_i_i_i_i_i_i] - HEAP[$this1_i25_i_i_i_i_i_i_i + 12 | 0] | 0;
  47197.                                 HEAP[$this_addr_i_i18_i_i_i_i_i_i_i] = $this1_i25_i_i_i_i_i_i_i;
  47198.                                 HEAP[$size_addr_i_i19_i_i_i_i_i_i_i] = $sub_ptr_sub_i40_i_i_i_i_i_i_i;
  47199.                                 var $this1_i_i41_i_i_i_i_i_i_i = HEAP[$this_addr_i_i18_i_i_i_i_i_i_i];
  47200.                                 do {
  47201.                                   if (HEAP[$this1_i_i41_i_i_i_i_i_i_i + 16 | 0] & 1) {
  47202.                                     label = 1081;
  47203.                                   } else {
  47204.                                     if ((HEAP[$this1_i_i41_i_i_i_i_i_i_i + 8 | 0] - HEAP[$this1_i_i41_i_i_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i19_i_i_i_i_i_i_i] | 0)) {
  47205.                                       label = 1081;
  47206.                                       break;
  47207.                                     }
  47208.                                     var $2024 = HEAP[$this1_i_i41_i_i_i_i_i_i_i + 12 | 0];
  47209.                                     var $2025 = HEAP[$size_addr_i_i19_i_i_i_i_i_i_i];
  47210.                                     for (var $$dest = $2024, $$stop = $$dest + $2025; $$dest < $$stop; $$dest++) {
  47211.                                       HEAP[$$dest] = 0;
  47212.                                     }
  47213.                                     HEAP[$ret_i_i20_i_i_i_i_i_i_i] = HEAP[$this1_i_i41_i_i_i_i_i_i_i + 12 | 0];
  47214.                                     var $head5_i_i56_i_i_i_i_i_i_i = $this1_i_i41_i_i_i_i_i_i_i + 12 | 0;
  47215.                                     HEAP[$head5_i_i56_i_i_i_i_i_i_i] = HEAP[$head5_i_i56_i_i_i_i_i_i_i] + HEAP[$size_addr_i_i19_i_i_i_i_i_i_i] | 0;
  47216.                                     var $2030 = HEAP[$ret_i_i20_i_i_i_i_i_i_i];
  47217.                                     HEAP[$retval_i_i17_i_i_i_i_i_i_i] = $2030;
  47218.                                     var $2031 = $2030;
  47219.                                     break;
  47220.                                   }
  47221.                                 } while (0);
  47222.                                 if (label == 1081) {
  47223.                                   label = 0;
  47224.                                   HEAP[$this1_i_i41_i_i_i_i_i_i_i + 16 | 0] = 1;
  47225.                                   HEAP[$retval_i_i17_i_i_i_i_i_i_i] = 0;
  47226.                                   var $2031 = 0;
  47227.                                 }
  47228.                                 var $2031;
  47229.                                 if (($2031 | 0) != 0) {
  47230.                                   var $2032 = HEAP[$obj_addr_i23_i_i_i_i_i_i_i];
  47231.                                   HEAP[$retval_i21_i_i_i_i_i_i_i] = $2032;
  47232.                                   var $2033 = $2032;
  47233.                                 } else {
  47234.                                   HEAP[$retval_i21_i_i_i_i_i_i_i] = 0;
  47235.                                   var $2033 = 0;
  47236.                                 }
  47237.                                 var $2033;
  47238.                                 do {
  47239.                                   if (($2033 | 0) != 0) {
  47240.                                     var $conv_i_i_i44_i_i_i_i = HEAP[$items_len_addr_i_i_i_i_i_i_i] & 65535;
  47241.                                     HEAP[$this_addr_i68_i_i_i_i_i_i_i] = $this1_i_i_i42_i_i_i_i | 0;
  47242.                                     HEAP[$i_addr_i69_i_i_i_i_i_i_i] = $conv_i_i_i44_i_i_i_i;
  47243.                                     var $2036 = HEAP[$i_addr_i69_i_i_i_i_i_i_i];
  47244.                                     HEAP[$this_addr_i_i67_i_i_i_i_i_i_i] = HEAP[$this_addr_i68_i_i_i_i_i_i_i] | 0;
  47245.                                     HEAP[$i_addr_i_i_i_i_i_i_i_i_i] = $2036;
  47246.                                     var $this1_i_i71_i_i_i_i_i_i_i = HEAP[$this_addr_i_i67_i_i_i_i_i_i_i];
  47247.                                     HEAP[$this1_i_i71_i_i_i_i_i_i_i | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i_i_i] & 65535) >> 8 & 255;
  47248.                                     HEAP[$this1_i_i71_i_i_i_i_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i_i_i] & 255;
  47249.                                     if ((HEAP[$items_len_addr_i_i_i_i_i_i_i] | 0) == 0) {
  47250.                                       var $tobool_i66_i_i_i_i_i_i_i = 1;
  47251.                                       HEAP[$retval_i_i_i_i_i_i_i52] = $tobool_i66_i_i_i_i_i_i_i;
  47252.                                       var $2100 = $tobool_i66_i_i_i_i_i_i_i;
  47253.                                       break;
  47254.                                     }
  47255.                                     HEAP[$this_addr_i9_i_i_i_i_i_i_i] = HEAP[$c_addr_i_i_i_i_i_i_i];
  47256.                                     HEAP[$obj_addr_i_i_i_i_i_i_i_i] = $this1_i_i_i42_i_i_i_i;
  47257.                                     var $this1_i10_i_i_i_i_i_i_i = HEAP[$this_addr_i9_i_i_i_i_i_i_i];
  47258.                                     HEAP[$this_addr_i_i_i_i_i_i_i_i_i47] = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  47259.                                     var $this1_i_i_i_i_i_i_i_i_i365 = HEAP[$this_addr_i_i_i_i_i_i_i_i_i47];
  47260.                                     HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i46] = $this1_i_i_i_i_i_i_i_i_i365 | 0;
  47261.                                     HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i46] | 0;
  47262.                                     var $this1_i_i_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i_i_i_i_i_i];
  47263.                                     if ((((HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) << 16 >> 16 != 0) {
  47264.                                       HEAP[$this_addr_i2_i_i_i_i_i_i_i_i_i] = $this1_i_i_i_i_i_i_i_i_i365 | 0;
  47265.                                       HEAP[$this_addr_i_i1_i_i_i_i_i_i_i_i_i] = HEAP[$this_addr_i2_i_i_i_i_i_i_i_i_i] | 0;
  47266.                                       var $this1_i_i5_i_i_i_i_i_i_i_i_i = HEAP[$this_addr_i_i1_i_i_i_i_i_i_i_i_i];
  47267.                                       var $cond_i_i_i_i_i_i_i_i_i = (((HEAP[$this1_i_i5_i_i_i_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i5_i_i_i_i_i_i_i_i_i + 1 | 0] & 255) & 65535) - 1 | 0;
  47268.                                     } else {
  47269.                                       var $cond_i_i_i_i_i_i_i_i_i = 0;
  47270.                                     }
  47271.                                     var $cond_i_i_i_i_i_i_i_i_i;
  47272.                                     HEAP[$size_i_i_i_i_i_i_i_i] = ($cond_i_i_i_i_i_i_i_i_i << 1) + 2 | 0;
  47273.                                     if (HEAP[$this1_i10_i_i_i_i_i_i_i + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i_i_i_i_i_i_i] >>> 0) {
  47274.                                       label = 1180;
  47275.                                       break L1435;
  47276.                                     }
  47277.                                     if (!(HEAP[$obj_addr_i_i_i_i_i_i_i_i] >>> 0 <= HEAP[$this1_i10_i_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  47278.                                       label = 1181;
  47279.                                       break L1435;
  47280.                                     }
  47281.                                     if (!((HEAP[$obj_addr_i_i_i_i_i_i_i_i] + HEAP[$size_i_i_i_i_i_i_i_i] | 0) >>> 0 >= HEAP[$this1_i10_i_i_i_i_i_i_i + 12 | 0] >>> 0)) {
  47282.                                       label = 1182;
  47283.                                       break L1435;
  47284.                                     }
  47285.                                     var $sub_ptr_sub_i_i_i_i_i_i_i_i371 = HEAP[$obj_addr_i_i_i_i_i_i_i_i] + HEAP[$size_i_i_i_i_i_i_i_i] - HEAP[$this1_i10_i_i_i_i_i_i_i + 12 | 0] | 0;
  47286.                                     HEAP[$this_addr_i1_i_i_i_i_i_i_i_i] = $this1_i10_i_i_i_i_i_i_i;
  47287.                                     HEAP[$size_addr_i_i_i_i_i_i_i_i_i] = $sub_ptr_sub_i_i_i_i_i_i_i_i371;
  47288.                                     var $this1_i2_i_i_i_i_i_i_i_i = HEAP[$this_addr_i1_i_i_i_i_i_i_i_i];
  47289.                                     do {
  47290.                                       if (HEAP[$this1_i2_i_i_i_i_i_i_i_i + 16 | 0] & 1) {
  47291.                                         label = 1098;
  47292.                                       } else {
  47293.                                         if ((HEAP[$this1_i2_i_i_i_i_i_i_i_i + 8 | 0] - HEAP[$this1_i2_i_i_i_i_i_i_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i_i_i_i_i_i_i] | 0)) {
  47294.                                           label = 1098;
  47295.                                           break;
  47296.                                         }
  47297.                                         var $2065 = HEAP[$this1_i2_i_i_i_i_i_i_i_i + 12 | 0];
  47298.                                         var $2066 = HEAP[$size_addr_i_i_i_i_i_i_i_i_i];
  47299.                                         for (var $$dest = $2065, $$stop = $$dest + $2066; $$dest < $$stop; $$dest++) {
  47300.                                           HEAP[$$dest] = 0;
  47301.                                         }
  47302.                                         HEAP[$ret_i_i_i_i_i_i_i_i_i] = HEAP[$this1_i2_i_i_i_i_i_i_i_i + 12 | 0];
  47303.                                         var $head5_i_i_i_i_i_i_i_i_i = $this1_i2_i_i_i_i_i_i_i_i + 12 | 0;
  47304.                                         HEAP[$head5_i_i_i_i_i_i_i_i_i] = HEAP[$head5_i_i_i_i_i_i_i_i_i] + HEAP[$size_addr_i_i_i_i_i_i_i_i_i] | 0;
  47305.                                         var $2071 = HEAP[$ret_i_i_i_i_i_i_i_i_i];
  47306.                                         HEAP[$retval_i_i_i_i_i_i_i_i_i] = $2071;
  47307.                                         var $2072 = $2071;
  47308.                                         break;
  47309.                                       }
  47310.                                     } while (0);
  47311.                                     if (label == 1098) {
  47312.                                       label = 0;
  47313.                                       HEAP[$this1_i2_i_i_i_i_i_i_i_i + 16 | 0] = 1;
  47314.                                       HEAP[$retval_i_i_i_i_i_i_i_i_i] = 0;
  47315.                                       var $2072 = 0;
  47316.                                     }
  47317.                                     var $2072;
  47318.                                     if (($2072 | 0) != 0) {
  47319.                                       var $2073 = HEAP[$obj_addr_i_i_i_i_i_i_i_i];
  47320.                                       HEAP[$retval_i_i_i_i_i_i_i_i48] = $2073;
  47321.                                       var $2074 = $2073;
  47322.                                     } else {
  47323.                                       HEAP[$retval_i_i_i_i_i_i_i_i48] = 0;
  47324.                                       var $2074 = 0;
  47325.                                     }
  47326.                                     var $2074;
  47327.                                     if (($2074 | 0) == 0) {
  47328.                                       var $tobool_i8_i_i_i_i_i_i_i = 0;
  47329.                                       HEAP[$retval_i_i_i_i_i_i_i52] = $tobool_i8_i_i_i_i_i_i_i;
  47330.                                       var $2100 = $tobool_i8_i_i_i_i_i_i_i;
  47331.                                       break;
  47332.                                     }
  47333.                                     HEAP[$i_i_i_i_i_i_i_i] = 0;
  47334.                                     L1559 : do {
  47335.                                       if (HEAP[$i_i_i_i_i_i_i_i] >>> 0 < (HEAP[$items_len_addr_i_i_i_i_i_i_i] - 1 | 0) >>> 0) {
  47336.                                         var $array_i_i_i_i_i_i_i = $this1_i_i_i42_i_i_i_i + 2 | 0;
  47337.                                         while (1) {
  47338.                                           var $arrayidx_i_i_i45_i_i_i_i = (HEAP[$i_i_i_i_i_i_i_i] << 1) + $array_i_i_i_i_i_i_i | 0;
  47339.                                           var $2080 = HEAP[$i_i_i_i_i_i_i_i];
  47340.                                           HEAP[$this_addr_i1_i_i_i_i_i_i_i49] = HEAP[$items_addr_i_i_i_i_i_i_i];
  47341.                                           HEAP[$i_addr_i_i_i_i_i_i_i_i50] = $2080;
  47342.                                           var $this1_i2_i_i_i_i_i_i_i372 = HEAP[$this_addr_i1_i_i_i_i_i_i_i49];
  47343.                                           if (HEAP[$i_addr_i_i_i_i_i_i_i_i50] >>> 0 >= HEAP[$this1_i2_i_i_i_i_i_i_i372 | 0] >>> 0) {
  47344.                                             HEAP[$1763] = 0;
  47345.                                             HEAP[$1763 + 1] = 0;
  47346.                                           } else {
  47347.                                             var $2085 = (HEAP[$i_addr_i_i_i_i_i_i_i_i50] << 1) + HEAP[$this1_i2_i_i_i_i_i_i_i372 + 4 | 0] | 0;
  47348.                                             HEAP[$1767] = HEAP[$2085];
  47349.                                             HEAP[$1767 + 1] = HEAP[$2085 + 1];
  47350.                                           }
  47351.                                           var $2086 = $arrayidx_i_i_i45_i_i_i_i;
  47352.                                           HEAP[$2086] = HEAP[$1766];
  47353.                                           HEAP[$2086 + 1] = HEAP[$1766 + 1];
  47354.                                           HEAP[$i_i_i_i_i_i_i_i] = HEAP[$i_i_i_i_i_i_i_i] + 1 | 0;
  47355.                                           if (HEAP[$i_i_i_i_i_i_i_i] >>> 0 >= (HEAP[$items_len_addr_i_i_i_i_i_i_i] - 1 | 0) >>> 0) {
  47356.                                             break L1559;
  47357.                                           }
  47358.                                         }
  47359.                                       }
  47360.                                     } while (0);
  47361.                                     var $sub12_i_i_i_i_i_i_i = HEAP[$items_len_addr_i_i_i_i_i_i_i] - 1 | 0;
  47362.                                     HEAP[$this_addr_i_i_i_i_i_i_i_i51] = HEAP[$items_addr_i_i_i_i_i_i_i];
  47363.                                     HEAP[$count_addr_i_i_i_i_i_i_i_i] = $sub12_i_i_i_i_i_i_i;
  47364.                                     var $this1_i_i_i_i_i_i_i_i376 = HEAP[$this_addr_i_i_i_i_i_i_i_i51];
  47365.                                     if (HEAP[$count_addr_i_i_i_i_i_i_i_i] >>> 0 > HEAP[$this1_i_i_i_i_i_i_i_i376 | 0] >>> 0) {
  47366.                                       HEAP[$count_addr_i_i_i_i_i_i_i_i] = HEAP[$this1_i_i_i_i_i_i_i_i376 | 0];
  47367.                                     }
  47368.                                     var $len3_i_i_i_i_i_i_i_i = $this1_i_i_i_i_i_i_i_i376 | 0;
  47369.                                     HEAP[$len3_i_i_i_i_i_i_i_i] = HEAP[$len3_i_i_i_i_i_i_i_i] - HEAP[$count_addr_i_i_i_i_i_i_i_i] | 0;
  47370.                                     var $head_i_i_i_i_i_i_i_i380 = $this1_i_i_i_i_i_i_i_i376 + 4 | 0;
  47371.                                     HEAP[$head_i_i_i_i_i_i_i_i380] = (HEAP[$count_addr_i_i_i_i_i_i_i_i] << 1) + HEAP[$head_i_i_i_i_i_i_i_i380] | 0;
  47372.                                     var $tobool_i_i_i_i_i_i_i_i382 = 1;
  47373.                                     HEAP[$retval_i_i_i_i_i_i_i52] = $tobool_i_i_i_i_i_i_i_i382;
  47374.                                     var $2100 = $tobool_i_i_i_i_i_i_i_i382;
  47375.                                   } else {
  47376.                                     var $tobool_i64_i_i_i_i_i_i_i = 0;
  47377.                                     HEAP[$retval_i_i_i_i_i_i_i52] = $tobool_i64_i_i_i_i_i_i_i;
  47378.                                     var $2100 = $tobool_i64_i_i_i_i_i_i_i;
  47379.                                   }
  47380.                                 } while (0);
  47381.                                 var $2100;
  47382.                                 if ($2100) {
  47383.                                   var $tobool_i_i_i_i_i_i_i384 = 1;
  47384.                                   HEAP[$retval_i_i27_i_i_i_i] = $tobool_i_i_i_i_i_i_i384;
  47385.                                   var $2103 = $tobool_i_i_i_i_i_i_i384;
  47386.                                   break;
  47387.                                 } else {
  47388.                                   var $tobool_i2_i_i_i_i_i_i383 = 0;
  47389.                                   HEAP[$retval_i_i27_i_i_i_i] = $tobool_i2_i_i_i_i_i_i383;
  47390.                                   var $2103 = $tobool_i2_i_i_i_i_i_i383;
  47391.                                   break;
  47392.                                 }
  47393.                               } else {
  47394.                                 var $tobool_i25_i_i_i_i_i_i = 0;
  47395.                                 HEAP[$retval_i_i27_i_i_i_i] = $tobool_i25_i_i_i_i_i_i;
  47396.                                 var $2103 = $tobool_i25_i_i_i_i_i_i;
  47397.                               }
  47398.                             } while (0);
  47399.                             var $2103;
  47400.                             if (!$2103) {
  47401.                               break;
  47402.                             }
  47403.                             HEAP[$i_i_i_i_i_i58] = HEAP[$i_i_i_i_i_i58] + 1 | 0;
  47404.                             if (HEAP[$i_i_i_i_i_i58] >>> 0 >= HEAP[$num_ligatures_addr_i_i_i_i_i] >>> 0) {
  47405.                               break L1493;
  47406.                             }
  47407.                           }
  47408.                           var $tobool_i13_i_i_i_i_i = 0;
  47409.                           HEAP[$retval_i30_i_i_i_i] = $tobool_i13_i_i_i_i_i;
  47410.                           var $2127 = $tobool_i13_i_i_i_i_i;
  47411.                           break L1454;
  47412.                         }
  47413.                       } while (0);
  47414.                       var $2109 = HEAP[$num_ligatures_addr_i_i_i_i_i];
  47415.                       HEAP[$this_addr_i1_i28_i_i_i_i] = HEAP[$ligatures_addr_i_i_i_i_i];
  47416.                       HEAP[$count_addr_i2_i_i_i_i_i] = $2109;
  47417.                       var $this1_i3_i_i_i_i_i = HEAP[$this_addr_i1_i28_i_i_i_i];
  47418.                       if (HEAP[$count_addr_i2_i_i_i_i_i] >>> 0 > HEAP[$this1_i3_i_i_i_i_i | 0] >>> 0) {
  47419.                         HEAP[$count_addr_i2_i_i_i_i_i] = HEAP[$this1_i3_i_i_i_i_i | 0];
  47420.                       }
  47421.                       var $len3_i8_i_i_i_i_i = $this1_i3_i_i_i_i_i | 0;
  47422.                       HEAP[$len3_i8_i_i_i_i_i] = HEAP[$len3_i8_i_i_i_i_i] - HEAP[$count_addr_i2_i_i_i_i_i] | 0;
  47423.                       var $head_i10_i_i_i_i_i = $this1_i3_i_i_i_i_i + 4 | 0;
  47424.                       HEAP[$head_i10_i_i_i_i_i] = (HEAP[$count_addr_i2_i_i_i_i_i] << 1) + HEAP[$head_i10_i_i_i_i_i] | 0;
  47425.                       var $2118 = HEAP[$num_ligatures_addr_i_i_i_i_i];
  47426.                       HEAP[$this_addr_i_i29_i_i_i_i] = HEAP[$component_count_list_addr_i_i_i_i_i];
  47427.                       HEAP[$count_addr_i_i_i_i_i_i56] = $2118;
  47428.                       var $this1_i_i47_i_i_i_i = HEAP[$this_addr_i_i29_i_i_i_i];
  47429.                       if (HEAP[$count_addr_i_i_i_i_i_i56] >>> 0 > HEAP[$this1_i_i47_i_i_i_i | 0] >>> 0) {
  47430.                         HEAP[$count_addr_i_i_i_i_i_i56] = HEAP[$this1_i_i47_i_i_i_i | 0];
  47431.                       }
  47432.                       var $len3_i_i_i_i_i_i390 = $this1_i_i47_i_i_i_i | 0;
  47433.                       HEAP[$len3_i_i_i_i_i_i390] = HEAP[$len3_i_i_i_i_i_i390] - HEAP[$count_addr_i_i_i_i_i_i56] | 0;
  47434.                       var $head_i_i50_i_i_i_i = $this1_i_i47_i_i_i_i + 4 | 0;
  47435.                       HEAP[$head_i_i50_i_i_i_i] = (HEAP[$count_addr_i_i_i_i_i_i56] << 2) + HEAP[$head_i_i50_i_i_i_i] | 0;
  47436.                       var $tobool_i_i52_i_i_i_i = 1;
  47437.                       HEAP[$retval_i30_i_i_i_i] = $tobool_i_i52_i_i_i_i;
  47438.                       var $2127 = $tobool_i_i52_i_i_i_i;
  47439.                     } else {
  47440.                       var $tobool_i43_i_i_i_i_i = 0;
  47441.                       HEAP[$retval_i30_i_i_i_i] = $tobool_i43_i_i_i_i_i;
  47442.                       var $2127 = $tobool_i43_i_i_i_i_i;
  47443.                     }
  47444.                   } while (0);
  47445.                   var $2127;
  47446.                   if (!$2127) {
  47447.                     label = 1126;
  47448.                     break;
  47449.                   }
  47450.                   HEAP[$i_i_i_i_i] = HEAP[$i_i_i_i_i] + 1 | 0;
  47451.                   if (HEAP[$i_i_i_i_i] >>> 0 >= HEAP[$num_first_glyphs_addr_i_i_i_i] >>> 0) {
  47452.                     break L1433;
  47453.                   }
  47454.                 }
  47455.                 if (label == 1126) {
  47456.                   HEAP[$retval_i_i_i_i80] = 0;
  47457.                   break L1382;
  47458.                 } else if (label == 1165) {
  47459.                   ___assert_func(102352, 451, 108488, 103368);
  47460.                 } else if (label == 1166) {
  47461.                   ___assert_func(102352, 451, 108488, 103368);
  47462.                 } else if (label == 1167) {
  47463.                   ___assert_func(102352, 451, 108488, 103368);
  47464.                 } else if (label == 1168) {
  47465.                   ___assert_func(102352, 451, 108064, 103368);
  47466.                 } else if (label == 1169) {
  47467.                   ___assert_func(102352, 451, 108064, 103368);
  47468.                 } else if (label == 1170) {
  47469.                   ___assert_func(102352, 451, 108064, 103368);
  47470.                 } else if (label == 1171) {
  47471.                   ___assert_func(102352, 460, 106320, 103656);
  47472.                 } else if (label == 1172) {
  47473.                   ___assert_func(102352, 460, 106320, 103656);
  47474.                 } else if (label == 1173) {
  47475.                   ___assert_func(102352, 460, 106320, 103656);
  47476.                 } else if (label == 1174) {
  47477.                   ___assert_func(102352, 451, 107016, 103368);
  47478.                 } else if (label == 1175) {
  47479.                   ___assert_func(102352, 451, 107016, 103368);
  47480.                 } else if (label == 1176) {
  47481.                   ___assert_func(102352, 451, 107016, 103368);
  47482.                 } else if (label == 1177) {
  47483.                   ___assert_func(102352, 451, 107616, 103368);
  47484.                 } else if (label == 1178) {
  47485.                   ___assert_func(102352, 451, 107616, 103368);
  47486.                 } else if (label == 1179) {
  47487.                   ___assert_func(102352, 451, 107616, 103368);
  47488.                 } else if (label == 1180) {
  47489.                   ___assert_func(102352, 460, 106064, 103656);
  47490.                 } else if (label == 1181) {
  47491.                   ___assert_func(102352, 460, 106064, 103656);
  47492.                 } else if (label == 1182) {
  47493.                   ___assert_func(102352, 460, 106064, 103656);
  47494.                 }
  47495.               }
  47496.             } while (0);
  47497.             var $2133 = HEAP[$num_first_glyphs_addr_i_i_i_i];
  47498.             HEAP[$this_addr_i15_i_i_i_i] = HEAP[$ligature_per_first_glyph_count_list_addr_i_i_i_i];
  47499.             HEAP[$count_addr_i_i_i_i_i] = $2133;
  47500.             var $this1_i16_i_i_i_i = HEAP[$this_addr_i15_i_i_i_i];
  47501.             if (HEAP[$count_addr_i_i_i_i_i] >>> 0 > HEAP[$this1_i16_i_i_i_i | 0] >>> 0) {
  47502.               HEAP[$count_addr_i_i_i_i_i] = HEAP[$this1_i16_i_i_i_i | 0];
  47503.             }
  47504.             var $len3_i_i_i_i_i = $this1_i16_i_i_i_i | 0;
  47505.             HEAP[$len3_i_i_i_i_i] = HEAP[$len3_i_i_i_i_i] - HEAP[$count_addr_i_i_i_i_i] | 0;
  47506.             var $head_i19_i_i_i_i = $this1_i16_i_i_i_i + 4 | 0;
  47507.             HEAP[$head_i19_i_i_i_i] = (HEAP[$count_addr_i_i_i_i_i] << 2) + HEAP[$head_i19_i_i_i_i] | 0;
  47508.             var $2146 = HEAP[$c_addr_i_i_i_i82];
  47509.             HEAP[$this_addr_i8_i_i_i_i65] = $this1_i_i_i_i227 + 2 | 0;
  47510.             HEAP[$c_addr_i_i_i_i_i66] = $2146;
  47511.             HEAP[$base_addr_i_i_i_i_i67] = $this1_i_i_i_i227;
  47512.             var $this1_i9_i_i_i_i394 = HEAP[$this_addr_i8_i_i_i_i65];
  47513.             HEAP[$this_addr_i_i6_i_i_i_i63] = HEAP[$c_addr_i_i_i_i_i66];
  47514.             HEAP[$ret_i_i7_i_i_i_i64] = HEAP[HEAP[$this_addr_i_i6_i_i_i_i63] + 12 | 0];
  47515.             HEAP[$t_i_i_i_i_i68] = HEAP[$ret_i_i7_i_i_i_i64];
  47516.             var $conv_i_i_i_i_i400 = HEAP[$t_i_i_i_i_i68] - HEAP[$base_addr_i_i_i_i_i67] & 65535;
  47517.             HEAP[$this_addr_i1_i_i_i_i_i61] = $this1_i9_i_i_i_i394;
  47518.             HEAP[$i_addr_i_i_i_i_i_i62] = $conv_i_i_i_i_i400;
  47519.             var $2166 = HEAP[$i_addr_i_i_i_i_i_i62];
  47520.             HEAP[$this_addr_i_i_i_i_i_i_i59] = HEAP[$this_addr_i1_i_i_i_i_i61] | 0;
  47521.             HEAP[$i_addr_i_i_i_i_i_i_i60] = $2166;
  47522.             var $this1_i_i_i_i_i_i_i403 = HEAP[$this_addr_i_i_i_i_i_i_i59];
  47523.             HEAP[$this1_i_i_i_i_i_i_i403 | 0] = (HEAP[$i_addr_i_i_i_i_i_i_i60] & 65535) >> 8 & 255;
  47524.             HEAP[$this1_i_i_i_i_i_i_i403 + 1 | 0] = HEAP[$i_addr_i_i_i_i_i_i_i60] & 255;
  47525.             if (__ZN2OT8Coverage9serializeEPNS_22hb_serialize_context_tERNS_8SupplierINS_7IntTypeItLj2EEEEEj(HEAP[$t_i_i_i_i_i68], HEAP[$c_addr_i_i_i_i82], HEAP[$first_glyphs_addr_i_i_i_i], HEAP[$num_first_glyphs_addr_i_i_i_i])) {
  47526.               HEAP[$retval_i_i_i_i80] = 1;
  47527.               break;
  47528.             } else {
  47529.               HEAP[$retval_i_i_i_i80] = 0;
  47530.               break;
  47531.             }
  47532.           } else {
  47533.             HEAP[$retval_i_i_i_i80] = 0;
  47534.           }
  47535.         } while (0);
  47536.         HEAP[$retval_i_i_i85] = HEAP[$retval_i_i_i_i80] & 1;
  47537.       } else {
  47538.         HEAP[$retval_i_i_i85] = 0;
  47539.       }
  47540.     } while (0);
  47541.     HEAP[$retval_i_i89] = HEAP[$retval_i_i_i85] & 1;
  47542.   } else {
  47543.     HEAP[$retval_i_i89] = 0;
  47544.   }
  47545.   if (HEAP[$retval_i_i89] & 1) {
  47546.     HEAP[$this_addr_i_i111] = $c_i117;
  47547.     var $this1_i_i421 = HEAP[$this_addr_i_i111];
  47548.     if (HEAP[$this1_i_i421 + 16 | 0] & 1) {
  47549.       ___assert_func(102352, 403, 106944, 102312);
  47550.     }
  47551.     HEAP[$len_i_i112] = HEAP[$this1_i_i421 + 12 | 0] - HEAP[$this1_i_i421 + 4 | 0] | 0;
  47552.     var $call_i_i431 = _malloc(HEAP[$len_i_i112]);
  47553.     HEAP[$p_i_i113] = $call_i_i431;
  47554.     if ((HEAP[$p_i_i113] | 0) != 0) {
  47555.       var $2230 = HEAP[$p_i_i113];
  47556.       var $2231 = HEAP[$this1_i_i421 + 4 | 0];
  47557.       var $2232 = HEAP[$len_i_i112];
  47558.       for (var $$src = $2231, $$dest = $2230, $$stop = $$src + $2232; $$src < $$stop; $$src++, $$dest++) {
  47559.         HEAP[$$dest] = HEAP[$$src];
  47560.       }
  47561.     }
  47562.     var $cond_i437 = HEAP[$p_i_i113];
  47563.   } else {
  47564.     var $cond_i437 = 0;
  47565.   }
  47566.   var $cond_i437;
  47567.   $retval = $cond_i437;
  47568.   var $2266 = $retval;
  47569.   STACKTOP = __stackBase__;
  47570.   return $2266;
  47571. }
  47572. function __ZN2OT7IntTypeItLj2EE3cmpEPKS1_S3_($a, $b) {
  47573.   var __stackBase__ = STACKTOP;
  47574.   STACKTOP = STACKTOP + 24 | 0;
  47575.   var $this_addr_i1_i = __stackBase__;
  47576.   var $this_addr_i_i_i = __stackBase__ + 4;
  47577.   var $this_addr_i_i = __stackBase__ + 8;
  47578.   var $this_addr_i = __stackBase__ + 12;
  47579.   var $a_i = __stackBase__ + 16;
  47580.   var $b_i = __stackBase__ + 18;
  47581.   var $agg_tmp1 = __stackBase__ + 20;
  47582.   var $2 = __stackBase__ + 22;
  47583.   var $3 = $a;
  47584.   HEAP[$2] = HEAP[$3];
  47585.   HEAP[$2 + 1] = HEAP[$3 + 1];
  47586.   _memmove($agg_tmp1, $3, 2, 1, 0);
  47587.   HEAP[$this_addr_i] = $b;
  47588.   var $this1_i = HEAP[$this_addr_i];
  47589.   HEAP[$this_addr_i_i] = $agg_tmp1;
  47590.   HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i] | 0;
  47591.   var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  47592.   HEAP[$a_i] = ((HEAP[$this1_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i + 1 | 0] & 255) & 65535;
  47593.   HEAP[$this_addr_i1_i] = $this1_i | 0;
  47594.   var $this1_i2_i = HEAP[$this_addr_i1_i];
  47595.   HEAP[$b_i] = ((HEAP[$this1_i2_i | 0] & 255) << 8) + (HEAP[$this1_i2_i + 1 | 0] & 255) & 65535;
  47596.   if ((HEAP[$a_i] & 65535 | 0) < (HEAP[$b_i] & 65535 | 0)) {
  47597.     var $cond7_i = -1;
  47598.     var $cond7_i;
  47599.     var $21 = $this_addr_i;
  47600.     var $22 = $a_i;
  47601.     var $23 = $b_i;
  47602.     STACKTOP = __stackBase__;
  47603.     return $cond7_i;
  47604.   }
  47605.   var $cond7_i = (HEAP[$a_i] & 65535 | 0) == (HEAP[$b_i] & 65535 | 0) ? 0 : 1;
  47606.   var $cond7_i;
  47607.   var $21 = $this_addr_i;
  47608.   var $22 = $a_i;
  47609.   var $23 = $b_i;
  47610.   STACKTOP = __stackBase__;
  47611.   return $cond7_i;
  47612. }
  47613. function __ZN2OT6Lookup9serializeEPNS_22hb_serialize_context_tEjjj($this, $c, $lookup_type, $lookup_props) {
  47614.   var label = 0;
  47615.   var __stackBase__ = STACKTOP;
  47616.   STACKTOP = STACKTOP + 201 | 0;
  47617.   var $this_addr_i_i65 = __stackBase__;
  47618.   var $i_addr_i_i66 = __stackBase__ + 4;
  47619.   var $this_addr_i67 = __stackBase__ + 6;
  47620.   var $i_addr_i68 = __stackBase__ + 10;
  47621.   var $this_addr_i_i50 = __stackBase__ + 12;
  47622.   var $i_addr_i_i51 = __stackBase__ + 16;
  47623.   var $this_addr_i52 = __stackBase__ + 18;
  47624.   var $i_addr_i53 = __stackBase__ + 22;
  47625.   var $retval_i_i29 = __stackBase__ + 24;
  47626.   var $this_addr_i_i30 = __stackBase__ + 28;
  47627.   var $size_addr_i_i = __stackBase__ + 32;
  47628.   var $ret_i_i = __stackBase__ + 36;
  47629.   var $retval_i31 = __stackBase__ + 40;
  47630.   var $this_addr_i32 = __stackBase__ + 44;
  47631.   var $obj_addr_i = __stackBase__ + 48;
  47632.   var $size_i = __stackBase__ + 52;
  47633.   var $this_addr_i_i52_i = __stackBase__ + 56;
  47634.   var $i_addr_i_i_i = __stackBase__ + 60;
  47635.   var $this_addr_i53_i = __stackBase__ + 62;
  47636.   var $i_addr_i_i15 = __stackBase__ + 66;
  47637.   var $retval_i_i4_i = __stackBase__ + 68;
  47638.   var $this_addr_i_i5_i = __stackBase__ + 72;
  47639.   var $size_addr_i_i6_i = __stackBase__ + 76;
  47640.   var $ret_i_i7_i = __stackBase__ + 80;
  47641.   var $retval_i8_i = __stackBase__ + 84;
  47642.   var $this_addr_i9_i = __stackBase__ + 88;
  47643.   var $obj_addr_i10_i = __stackBase__ + 92;
  47644.   var $size_i11_i = __stackBase__ + 96;
  47645.   var $retval_i_i_i = __stackBase__ + 100;
  47646.   var $this_addr_i1_i_i = __stackBase__ + 104;
  47647.   var $size_addr_i_i_i = __stackBase__ + 108;
  47648.   var $ret_i_i_i = __stackBase__ + 112;
  47649.   var $this_addr_i_i_i_i_i = __stackBase__ + 116;
  47650.   var $this_addr_i_i_i_i16 = __stackBase__ + 120;
  47651.   var $this_addr_i_i_i17 = __stackBase__ + 124;
  47652.   var $retval_i_i = __stackBase__ + 128;
  47653.   var $this_addr_i_i18 = __stackBase__ + 132;
  47654.   var $obj_addr_i_i = __stackBase__ + 136;
  47655.   var $size_i_i = __stackBase__ + 140;
  47656.   var $retval_i = __stackBase__ + 144;
  47657.   var $this_addr_i19 = __stackBase__ + 145;
  47658.   var $c_addr_i = __stackBase__ + 149;
  47659.   var $items_len_addr_i = __stackBase__ + 153;
  47660.   var $this_addr_i_i4 = __stackBase__ + 157;
  47661.   var $this_addr_i5 = __stackBase__ + 161;
  47662.   var $P_addr_i_i = __stackBase__ + 165;
  47663.   var $offset_addr_i_i = __stackBase__ + 169;
  47664.   var $this_addr_i_i_i_i = __stackBase__ + 173;
  47665.   var $this_addr_i_i_i = __stackBase__ + 177;
  47666.   var $this_addr_i_i1 = __stackBase__ + 181;
  47667.   var $X_addr_i = __stackBase__ + 185;
  47668.   var $this_addr_i_i = __stackBase__ + 189;
  47669.   var $i_addr_i_i = __stackBase__ + 193;
  47670.   var $this_addr_i = __stackBase__ + 195;
  47671.   var $i_addr_i = __stackBase__ + 199;
  47672.   var $retval;
  47673.   var $c_addr;
  47674.   var $lookup_type_addr;
  47675.   var $lookup_props_addr;
  47676.   var $num_subtables_addr;
  47677.   $c_addr = $c;
  47678.   $lookup_type_addr = $lookup_type;
  47679.   $lookup_props_addr = $lookup_props;
  47680.   $num_subtables_addr = 1;
  47681.   var $this1 = $this;
  47682.   HEAP[$this_addr_i32] = $c_addr;
  47683.   HEAP[$obj_addr_i] = $this1;
  47684.   var $this1_i33 = HEAP[$this_addr_i32];
  47685.   HEAP[$size_i] = 6;
  47686.   if (!(HEAP[$this1_i33 + 4 | 0] >>> 0 <= HEAP[$obj_addr_i] >>> 0)) {
  47687.     ___assert_func(102352, 451, 107272, 103368);
  47688.   }
  47689.   if (!(HEAP[$obj_addr_i] >>> 0 <= HEAP[$this1_i33 + 12 | 0] >>> 0)) {
  47690.     ___assert_func(102352, 451, 107272, 103368);
  47691.   }
  47692.   if (!((HEAP[$obj_addr_i] + HEAP[$size_i] | 0) >>> 0 >= HEAP[$this1_i33 + 12 | 0] >>> 0)) {
  47693.     ___assert_func(102352, 451, 107272, 103368);
  47694.   }
  47695.   var $sub_ptr_sub_i = HEAP[$obj_addr_i] + HEAP[$size_i] - HEAP[$this1_i33 + 12 | 0] | 0;
  47696.   HEAP[$this_addr_i_i30] = $this1_i33;
  47697.   HEAP[$size_addr_i_i] = $sub_ptr_sub_i;
  47698.   var $this1_i_i34 = HEAP[$this_addr_i_i30];
  47699.   do {
  47700.     if (HEAP[$this1_i_i34 + 16 | 0] & 1) {
  47701.       label = 1196;
  47702.     } else {
  47703.       if ((HEAP[$this1_i_i34 + 8 | 0] - HEAP[$this1_i_i34 + 12 | 0] | 0) < (HEAP[$size_addr_i_i] | 0)) {
  47704.         label = 1196;
  47705.         break;
  47706.       }
  47707.       var $27 = HEAP[$this1_i_i34 + 12 | 0];
  47708.       var $28 = HEAP[$size_addr_i_i];
  47709.       for (var $$dest = $27, $$stop = $$dest + $28; $$dest < $$stop; $$dest++) {
  47710.         HEAP[$$dest] = 0;
  47711.       }
  47712.       HEAP[$ret_i_i] = HEAP[$this1_i_i34 + 12 | 0];
  47713.       var $head5_i_i = $this1_i_i34 + 12 | 0;
  47714.       HEAP[$head5_i_i] = HEAP[$head5_i_i] + HEAP[$size_addr_i_i] | 0;
  47715.       var $33 = HEAP[$ret_i_i];
  47716.       HEAP[$retval_i_i29] = $33;
  47717.       var $34 = $33;
  47718.       break;
  47719.     }
  47720.   } while (0);
  47721.   if (label == 1196) {
  47722.     HEAP[$this1_i_i34 + 16 | 0] = 1;
  47723.     HEAP[$retval_i_i29] = 0;
  47724.     var $34 = 0;
  47725.   }
  47726.   var $34;
  47727.   if (($34 | 0) != 0) {
  47728.     var $39 = HEAP[$obj_addr_i];
  47729.     HEAP[$retval_i31] = $39;
  47730.     var $40 = $39;
  47731.   } else {
  47732.     HEAP[$retval_i31] = 0;
  47733.     var $40 = 0;
  47734.   }
  47735.   var $40;
  47736.   if (($40 | 0) == 0) {
  47737.     $retval = 0;
  47738.     var $238 = $retval;
  47739.     STACKTOP = __stackBase__;
  47740.     return $238;
  47741.   }
  47742.   HEAP[$this_addr_i52] = $this1 | 0;
  47743.   HEAP[$i_addr_i53] = $lookup_type_addr & 65535;
  47744.   var $49 = HEAP[$i_addr_i53];
  47745.   HEAP[$this_addr_i_i50] = HEAP[$this_addr_i52] | 0;
  47746.   HEAP[$i_addr_i_i51] = $49;
  47747.   var $this1_i_i56 = HEAP[$this_addr_i_i50];
  47748.   HEAP[$this1_i_i56 | 0] = (HEAP[$i_addr_i_i51] & 65535) >> 8 & 255;
  47749.   HEAP[$this1_i_i56 + 1 | 0] = HEAP[$i_addr_i_i51] & 255;
  47750.   HEAP[$this_addr_i67] = $this1 + 2 | 0;
  47751.   HEAP[$i_addr_i68] = $lookup_props_addr & 65535;
  47752.   var $61 = HEAP[$i_addr_i68];
  47753.   HEAP[$this_addr_i_i65] = HEAP[$this_addr_i67] | 0;
  47754.   HEAP[$i_addr_i_i66] = $61;
  47755.   var $this1_i_i71 = HEAP[$this_addr_i_i65];
  47756.   HEAP[$this1_i_i71 | 0] = (HEAP[$i_addr_i_i66] & 65535) >> 8 & 255;
  47757.   HEAP[$this1_i_i71 + 1 | 0] = HEAP[$i_addr_i_i66] & 255;
  47758.   HEAP[$this_addr_i19] = $this1 + 4 | 0;
  47759.   HEAP[$c_addr_i] = $c_addr;
  47760.   HEAP[$items_len_addr_i] = $num_subtables_addr;
  47761.   var $this1_i20 = HEAP[$this_addr_i19];
  47762.   HEAP[$this_addr_i9_i] = HEAP[$c_addr_i];
  47763.   HEAP[$obj_addr_i10_i] = $this1_i20;
  47764.   var $this1_i12_i = HEAP[$this_addr_i9_i];
  47765.   HEAP[$size_i11_i] = 2;
  47766.   if (!(HEAP[$this1_i12_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i10_i] >>> 0)) {
  47767.     ___assert_func(102352, 451, 108360, 103368);
  47768.   }
  47769.   if (!(HEAP[$obj_addr_i10_i] >>> 0 <= HEAP[$this1_i12_i + 12 | 0] >>> 0)) {
  47770.     ___assert_func(102352, 451, 108360, 103368);
  47771.   }
  47772.   if (!((HEAP[$obj_addr_i10_i] + HEAP[$size_i11_i] | 0) >>> 0 >= HEAP[$this1_i12_i + 12 | 0] >>> 0)) {
  47773.     ___assert_func(102352, 451, 108360, 103368);
  47774.   }
  47775.   var $sub_ptr_sub_i27_i = HEAP[$obj_addr_i10_i] + HEAP[$size_i11_i] - HEAP[$this1_i12_i + 12 | 0] | 0;
  47776.   HEAP[$this_addr_i_i5_i] = $this1_i12_i;
  47777.   HEAP[$size_addr_i_i6_i] = $sub_ptr_sub_i27_i;
  47778.   var $this1_i_i28_i = HEAP[$this_addr_i_i5_i];
  47779.   do {
  47780.     if (HEAP[$this1_i_i28_i + 16 | 0] & 1) {
  47781.       label = 1209;
  47782.     } else {
  47783.       if ((HEAP[$this1_i_i28_i + 8 | 0] - HEAP[$this1_i_i28_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i6_i] | 0)) {
  47784.         label = 1209;
  47785.         break;
  47786.       }
  47787.       var $104 = HEAP[$this1_i_i28_i + 12 | 0];
  47788.       var $105 = HEAP[$size_addr_i_i6_i];
  47789.       for (var $$dest = $104, $$stop = $$dest + $105; $$dest < $$stop; $$dest++) {
  47790.         HEAP[$$dest] = 0;
  47791.       }
  47792.       HEAP[$ret_i_i7_i] = HEAP[$this1_i_i28_i + 12 | 0];
  47793.       var $head5_i_i43_i = $this1_i_i28_i + 12 | 0;
  47794.       HEAP[$head5_i_i43_i] = HEAP[$head5_i_i43_i] + HEAP[$size_addr_i_i6_i] | 0;
  47795.       var $110 = HEAP[$ret_i_i7_i];
  47796.       HEAP[$retval_i_i4_i] = $110;
  47797.       var $111 = $110;
  47798.       break;
  47799.     }
  47800.   } while (0);
  47801.   if (label == 1209) {
  47802.     HEAP[$this1_i_i28_i + 16 | 0] = 1;
  47803.     HEAP[$retval_i_i4_i] = 0;
  47804.     var $111 = 0;
  47805.   }
  47806.   var $111;
  47807.   if (($111 | 0) != 0) {
  47808.     var $116 = HEAP[$obj_addr_i10_i];
  47809.     HEAP[$retval_i8_i] = $116;
  47810.     var $117 = $116;
  47811.   } else {
  47812.     HEAP[$retval_i8_i] = 0;
  47813.     var $117 = 0;
  47814.   }
  47815.   var $117;
  47816.   do {
  47817.     if (($117 | 0) != 0) {
  47818.       var $conv_i = HEAP[$items_len_addr_i] & 65535;
  47819.       HEAP[$this_addr_i53_i] = $this1_i20 | 0;
  47820.       HEAP[$i_addr_i_i15] = $conv_i;
  47821.       var $126 = HEAP[$i_addr_i_i15];
  47822.       HEAP[$this_addr_i_i52_i] = HEAP[$this_addr_i53_i] | 0;
  47823.       HEAP[$i_addr_i_i_i] = $126;
  47824.       var $this1_i_i55_i = HEAP[$this_addr_i_i52_i];
  47825.       HEAP[$this1_i_i55_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  47826.       HEAP[$this1_i_i55_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  47827.       HEAP[$this_addr_i_i18] = HEAP[$c_addr_i];
  47828.       HEAP[$obj_addr_i_i] = $this1_i20;
  47829.       var $this1_i_i24 = HEAP[$this_addr_i_i18];
  47830.       HEAP[$this_addr_i_i_i17] = HEAP[$obj_addr_i_i];
  47831.       HEAP[$this_addr_i_i_i_i16] = HEAP[$this_addr_i_i_i17] | 0;
  47832.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i16] | 0;
  47833.       var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  47834.       HEAP[$size_i_i] = ((((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  47835.       if (HEAP[$this1_i_i24 + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i] >>> 0) {
  47836.         ___assert_func(102352, 460, 106608, 103656);
  47837.       }
  47838.       if (!(HEAP[$obj_addr_i_i] >>> 0 <= HEAP[$this1_i_i24 + 12 | 0] >>> 0)) {
  47839.         ___assert_func(102352, 460, 106608, 103656);
  47840.       }
  47841.       if (!((HEAP[$obj_addr_i_i] + HEAP[$size_i_i] | 0) >>> 0 >= HEAP[$this1_i_i24 + 12 | 0] >>> 0)) {
  47842.         ___assert_func(102352, 460, 106608, 103656);
  47843.       }
  47844.       var $sub_ptr_sub_i_i = HEAP[$obj_addr_i_i] + HEAP[$size_i_i] - HEAP[$this1_i_i24 + 12 | 0] | 0;
  47845.       HEAP[$this_addr_i1_i_i] = $this1_i_i24;
  47846.       HEAP[$size_addr_i_i_i] = $sub_ptr_sub_i_i;
  47847.       var $this1_i2_i_i = HEAP[$this_addr_i1_i_i];
  47848.       do {
  47849.         if (HEAP[$this1_i2_i_i + 16 | 0] & 1) {
  47850.           label = 1222;
  47851.         } else {
  47852.           if ((HEAP[$this1_i2_i_i + 8 | 0] - HEAP[$this1_i2_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i] | 0)) {
  47853.             label = 1222;
  47854.             break;
  47855.           }
  47856.           var $171 = HEAP[$this1_i2_i_i + 12 | 0];
  47857.           var $172 = HEAP[$size_addr_i_i_i];
  47858.           for (var $$dest = $171, $$stop = $$dest + $172; $$dest < $$stop; $$dest++) {
  47859.             HEAP[$$dest] = 0;
  47860.           }
  47861.           HEAP[$ret_i_i_i] = HEAP[$this1_i2_i_i + 12 | 0];
  47862.           var $head5_i_i_i = $this1_i2_i_i + 12 | 0;
  47863.           HEAP[$head5_i_i_i] = HEAP[$head5_i_i_i] + HEAP[$size_addr_i_i_i] | 0;
  47864.           var $177 = HEAP[$ret_i_i_i];
  47865.           HEAP[$retval_i_i_i] = $177;
  47866.           var $178 = $177;
  47867.           break;
  47868.         }
  47869.       } while (0);
  47870.       if (label == 1222) {
  47871.         HEAP[$this1_i2_i_i + 16 | 0] = 1;
  47872.         HEAP[$retval_i_i_i] = 0;
  47873.         var $178 = 0;
  47874.       }
  47875.       var $178;
  47876.       if (($178 | 0) != 0) {
  47877.         var $183 = HEAP[$obj_addr_i_i];
  47878.         HEAP[$retval_i_i] = $183;
  47879.         var $184 = $183;
  47880.       } else {
  47881.         HEAP[$retval_i_i] = 0;
  47882.         var $184 = 0;
  47883.       }
  47884.       var $184;
  47885.       if (($184 | 0) != 0) {
  47886.         var $tobool_i_i = 1;
  47887.         HEAP[$retval_i] = $tobool_i_i;
  47888.         var $191 = $tobool_i_i;
  47889.         break;
  47890.       } else {
  47891.         var $tobool_i2_i = 0;
  47892.         HEAP[$retval_i] = $tobool_i2_i;
  47893.         var $191 = $tobool_i2_i;
  47894.         break;
  47895.       }
  47896.     } else {
  47897.       var $tobool_i51_i = 0;
  47898.       HEAP[$retval_i] = $tobool_i51_i;
  47899.       var $191 = $tobool_i51_i;
  47900.     }
  47901.   } while (0);
  47902.   var $191;
  47903.   if (!$191) {
  47904.     $retval = 0;
  47905.     var $238 = $retval;
  47906.     STACKTOP = __stackBase__;
  47907.     return $238;
  47908.   }
  47909.   HEAP[$this_addr_i5] = $this1 + 2 | 0;
  47910.   HEAP[$this_addr_i_i4] = HEAP[$this_addr_i5] | 0;
  47911.   var $this1_i_i8 = HEAP[$this_addr_i_i4];
  47912.   if ((((HEAP[$this1_i_i8 | 0] & 255) << 8) + (HEAP[$this1_i_i8 + 1 | 0] & 255) & 65535 & 16 | 0) != 0) {
  47913.     HEAP[$X_addr_i] = $this1 + 4 | 0;
  47914.     var $205 = HEAP[$X_addr_i];
  47915.     HEAP[$this_addr_i_i1] = HEAP[$X_addr_i];
  47916.     HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i1] | 0;
  47917.     HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  47918.     var $this1_i_i_i_i = HEAP[$this_addr_i_i_i_i];
  47919.     var $add_i_i = ((((HEAP[$this1_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  47920.     HEAP[$P_addr_i_i] = $205;
  47921.     HEAP[$offset_addr_i_i] = $add_i_i;
  47922.     HEAP[$this_addr_i] = HEAP[$P_addr_i_i] + HEAP[$offset_addr_i_i] | 0;
  47923.     HEAP[$i_addr_i] = $lookup_props_addr >>> 16 & 65535;
  47924.     var $228 = HEAP[$i_addr_i];
  47925.     HEAP[$this_addr_i_i] = HEAP[$this_addr_i] | 0;
  47926.     HEAP[$i_addr_i_i] = $228;
  47927.     var $this1_i_i = HEAP[$this_addr_i_i];
  47928.     HEAP[$this1_i_i | 0] = (HEAP[$i_addr_i_i] & 65535) >> 8 & 255;
  47929.     HEAP[$this1_i_i + 1 | 0] = HEAP[$i_addr_i_i] & 255;
  47930.   }
  47931.   $retval = 1;
  47932.   var $238 = $retval;
  47933.   STACKTOP = __stackBase__;
  47934.   return $238;
  47935. }
  47936. function __ZN2OT22hb_serialize_context_t10extend_minINS_7IntTypeItLj2EEEEEPT_RS4_($this, $obj) {
  47937.   var label = 0;
  47938.   var __stackBase__ = STACKTOP;
  47939.   STACKTOP = STACKTOP + 16 | 0;
  47940.   var $retval_i = __stackBase__;
  47941.   var $this_addr_i = __stackBase__ + 4;
  47942.   var $size_addr_i = __stackBase__ + 8;
  47943.   var $ret_i = __stackBase__ + 12;
  47944.   var $retval;
  47945.   var $obj_addr;
  47946.   var $size;
  47947.   $obj_addr = $obj;
  47948.   var $this1 = $this;
  47949.   $size = 2;
  47950.   if (!(HEAP[$this1 + 4 | 0] >>> 0 <= $obj_addr >>> 0)) {
  47951.     ___assert_func(102352, 451, 107176, 103368);
  47952.   }
  47953.   if (!($obj_addr >>> 0 <= HEAP[$this1 + 12 | 0] >>> 0)) {
  47954.     ___assert_func(102352, 451, 107176, 103368);
  47955.   }
  47956.   if (!(($obj_addr + $size | 0) >>> 0 >= HEAP[$this1 + 12 | 0] >>> 0)) {
  47957.     ___assert_func(102352, 451, 107176, 103368);
  47958.   }
  47959.   var $sub_ptr_sub = $obj_addr + $size - HEAP[$this1 + 12 | 0] | 0;
  47960.   HEAP[$this_addr_i] = $this1;
  47961.   HEAP[$size_addr_i] = $sub_ptr_sub;
  47962.   var $this1_i = HEAP[$this_addr_i];
  47963.   do {
  47964.     if (HEAP[$this1_i + 16 | 0] & 1) {
  47965.       label = 7;
  47966.     } else {
  47967.       if ((HEAP[$this1_i + 8 | 0] - HEAP[$this1_i + 12 | 0] | 0) < (HEAP[$size_addr_i] | 0)) {
  47968.         label = 7;
  47969.         break;
  47970.       }
  47971.       var $22 = HEAP[$this1_i + 12 | 0];
  47972.       var $23 = HEAP[$size_addr_i];
  47973.       for (var $$dest = $22, $$stop = $$dest + $23; $$dest < $$stop; $$dest++) {
  47974.         HEAP[$$dest] = 0;
  47975.       }
  47976.       HEAP[$ret_i] = HEAP[$this1_i + 12 | 0];
  47977.       var $head5_i = $this1_i + 12 | 0;
  47978.       HEAP[$head5_i] = HEAP[$head5_i] + HEAP[$size_addr_i] | 0;
  47979.       var $28 = HEAP[$ret_i];
  47980.       HEAP[$retval_i] = $28;
  47981.       var $29 = $28;
  47982.       break;
  47983.     }
  47984.   } while (0);
  47985.   if (label == 7) {
  47986.     HEAP[$this1_i + 16 | 0] = 1;
  47987.     HEAP[$retval_i] = 0;
  47988.     var $29 = 0;
  47989.   }
  47990.   var $29;
  47991.   if (($29 | 0) != 0) {
  47992.     $retval = $obj_addr;
  47993.     var $35 = $retval;
  47994.     STACKTOP = __stackBase__;
  47995.     return $35;
  47996.   } else {
  47997.     $retval = 0;
  47998.     var $35 = $retval;
  47999.     STACKTOP = __stackBase__;
  48000.     return $35;
  48001.   }
  48002. }
  48003. function __ZN2OT8Coverage9serializeEPNS_22hb_serialize_context_tERNS_8SupplierINS_7IntTypeItLj2EEEEEj($this, $c, $glyphs, $num_glyphs) {
  48004.   var label = 0;
  48005.   var __stackBase__ = STACKTOP;
  48006.   STACKTOP = STACKTOP + 536 | 0;
  48007.   var $this_addr_i_i193 = __stackBase__;
  48008.   var $this_addr_i194 = __stackBase__ + 4;
  48009.   var $this_addr_i_i183 = __stackBase__ + 8;
  48010.   var $i_addr_i_i184 = __stackBase__ + 12;
  48011.   var $this_addr_i185 = __stackBase__ + 14;
  48012.   var $i_addr_i186 = __stackBase__ + 18;
  48013.   var $this_addr_i_i169 = __stackBase__ + 20;
  48014.   var $this_addr_i170 = __stackBase__ + 24;
  48015.   var $this_addr_i159 = __stackBase__ + 28;
  48016.   var $i_addr_i160 = __stackBase__ + 32;
  48017.   var $this_addr_i_i153 = __stackBase__ + 36;
  48018.   var $this_addr_i154 = __stackBase__ + 40;
  48019.   var $this_addr_i_i68_i = __stackBase__ + 44;
  48020.   var $i_addr_i_i_i37 = __stackBase__ + 48;
  48021.   var $this_addr_i69_i = __stackBase__ + 50;
  48022.   var $i_addr_i70_i = __stackBase__ + 54;
  48023.   var $retval_i_i21_i = __stackBase__ + 56;
  48024.   var $this_addr_i_i22_i = __stackBase__ + 60;
  48025.   var $size_addr_i_i23_i = __stackBase__ + 64;
  48026.   var $ret_i_i24_i = __stackBase__ + 68;
  48027.   var $retval_i25_i = __stackBase__ + 72;
  48028.   var $this_addr_i26_i38 = __stackBase__ + 76;
  48029.   var $obj_addr_i27_i = __stackBase__ + 80;
  48030.   var $size_i28_i = __stackBase__ + 84;
  48031.   var $retval_i_i_i39 = __stackBase__ + 88;
  48032.   var $this_addr_i1_i_i40 = __stackBase__ + 92;
  48033.   var $size_addr_i_i_i41 = __stackBase__ + 96;
  48034.   var $ret_i_i_i42 = __stackBase__ + 100;
  48035.   var $this_addr_i_i_i_i_i43 = __stackBase__ + 104;
  48036.   var $this_addr_i_i_i_i44 = __stackBase__ + 108;
  48037.   var $this_addr_i_i_i45 = __stackBase__ + 112;
  48038.   var $retval_i_i46 = __stackBase__ + 116;
  48039.   var $this_addr_i13_i = __stackBase__ + 120;
  48040.   var $obj_addr_i_i47 = __stackBase__ + 124;
  48041.   var $size_i_i48 = __stackBase__ + 128;
  48042.   var $this_addr_i7_i49 = __stackBase__ + 132;
  48043.   var $i_addr_i8_i50 = __stackBase__ + 136;
  48044.   var $this_addr_i1_i51 = __stackBase__ + 140;
  48045.   var $i_addr_i_i52 = __stackBase__ + 144;
  48046.   var $this_addr_i_i53 = __stackBase__ + 148;
  48047.   var $count_addr_i_i54 = __stackBase__ + 152;
  48048.   var $retval_i56 = __stackBase__ + 156;
  48049.   var $this_addr_i57 = __stackBase__ + 157;
  48050.   var $c_addr_i58 = __stackBase__ + 161;
  48051.   var $glyphs_addr_i59 = __stackBase__ + 165;
  48052.   var $num_glyphs_addr_i60 = __stackBase__ + 169;
  48053.   var $i_i61 = __stackBase__ + 173;
  48054.   var $ref_tmp_i62 = __stackBase__ + 177;
  48055.   var $this_addr_i27 = __stackBase__ + 179;
  48056.   var $i_addr_i = __stackBase__ + 183;
  48057.   var $retval_i_i4 = __stackBase__ + 187;
  48058.   var $this_addr_i_i5 = __stackBase__ + 191;
  48059.   var $size_addr_i_i = __stackBase__ + 195;
  48060.   var $ret_i_i = __stackBase__ + 199;
  48061.   var $retval_i6 = __stackBase__ + 203;
  48062.   var $this_addr_i7 = __stackBase__ + 207;
  48063.   var $obj_addr_i = __stackBase__ + 211;
  48064.   var $size_i = __stackBase__ + 215;
  48065.   var $this_addr_i240_i = __stackBase__ + 219;
  48066.   var $i_addr_i241_i = __stackBase__ + 223;
  48067.   var $this_addr_i_i226_i = __stackBase__ + 227;
  48068.   var $this_addr_i227_i = __stackBase__ + 231;
  48069.   var $this_addr_i216_i = __stackBase__ + 235;
  48070.   var $i_addr_i217_i = __stackBase__ + 239;
  48071.   var $this_addr_i_i202_i = __stackBase__ + 243;
  48072.   var $this_addr_i203_i = __stackBase__ + 247;
  48073.   var $this_addr_i_i187_i = __stackBase__ + 251;
  48074.   var $i_addr_i_i188_i = __stackBase__ + 255;
  48075.   var $this_addr_i189_i = __stackBase__ + 257;
  48076.   var $i_addr_i190_i = __stackBase__ + 261;
  48077.   var $retval_i_i140_i = __stackBase__ + 263;
  48078.   var $this_addr_i_i141_i = __stackBase__ + 267;
  48079.   var $size_addr_i_i142_i = __stackBase__ + 271;
  48080.   var $ret_i_i143_i = __stackBase__ + 275;
  48081.   var $retval_i144_i = __stackBase__ + 279;
  48082.   var $this_addr_i145_i = __stackBase__ + 283;
  48083.   var $obj_addr_i146_i = __stackBase__ + 287;
  48084.   var $size_i147_i = __stackBase__ + 291;
  48085.   var $retval_i_i_i = __stackBase__ + 295;
  48086.   var $this_addr_i1_i_i = __stackBase__ + 299;
  48087.   var $size_addr_i_i_i = __stackBase__ + 303;
  48088.   var $ret_i_i_i = __stackBase__ + 307;
  48089.   var $this_addr_i_i_i_i_i = __stackBase__ + 311;
  48090.   var $this_addr_i_i_i_i = __stackBase__ + 315;
  48091.   var $this_addr_i_i128_i = __stackBase__ + 319;
  48092.   var $retval_i_i = __stackBase__ + 323;
  48093.   var $this_addr_i129_i = __stackBase__ + 327;
  48094.   var $obj_addr_i_i = __stackBase__ + 331;
  48095.   var $size_i_i = __stackBase__ + 335;
  48096.   var $this_addr_i121_i = __stackBase__ + 339;
  48097.   var $i_addr_i122_i = __stackBase__ + 343;
  48098.   var $this_addr_i111_i = __stackBase__ + 347;
  48099.   var $i_addr_i112_i = __stackBase__ + 351;
  48100.   var $this_addr_i106_i = __stackBase__ + 355;
  48101.   var $i_addr_i107_i = __stackBase__ + 359;
  48102.   var $this_addr_i_i91_i = __stackBase__ + 363;
  48103.   var $i_addr_i_i92_i = __stackBase__ + 367;
  48104.   var $this_addr_i93_i = __stackBase__ + 369;
  48105.   var $i_addr_i94_i = __stackBase__ + 373;
  48106.   var $this_addr_i81_i = __stackBase__ + 375;
  48107.   var $i_addr_i82_i = __stackBase__ + 379;
  48108.   var $this_addr_i_i67_i = __stackBase__ + 383;
  48109.   var $this_addr_i68_i = __stackBase__ + 387;
  48110.   var $this_addr_i57_i = __stackBase__ + 391;
  48111.   var $i_addr_i58_i = __stackBase__ + 395;
  48112.   var $this_addr_i_i49_i = __stackBase__ + 399;
  48113.   var $this_addr_i50_i = __stackBase__ + 403;
  48114.   var $this_addr_i44_i = __stackBase__ + 407;
  48115.   var $i_addr_i45_i = __stackBase__ + 411;
  48116.   var $this_addr_i34_i = __stackBase__ + 415;
  48117.   var $i_addr_i35_i = __stackBase__ + 419;
  48118.   var $this_addr_i29_i = __stackBase__ + 423;
  48119.   var $i_addr_i30_i = __stackBase__ + 427;
  48120.   var $this_addr_i_i_i = __stackBase__ + 431;
  48121.   var $i_addr_i_i_i = __stackBase__ + 435;
  48122.   var $this_addr_i26_i = __stackBase__ + 437;
  48123.   var $i_addr_i27_i = __stackBase__ + 441;
  48124.   var $this_addr_i21_i = __stackBase__ + 443;
  48125.   var $i_addr_i22_i = __stackBase__ + 447;
  48126.   var $this_addr_i11_i = __stackBase__ + 451;
  48127.   var $i_addr_i12_i = __stackBase__ + 455;
  48128.   var $this_addr_i7_i = __stackBase__ + 459;
  48129.   var $i_addr_i8_i = __stackBase__ + 463;
  48130.   var $this_addr_i1_i = __stackBase__ + 467;
  48131.   var $i_addr_i_i = __stackBase__ + 471;
  48132.   var $this_addr_i_i = __stackBase__ + 475;
  48133.   var $count_addr_i_i = __stackBase__ + 479;
  48134.   var $retval_i = __stackBase__ + 483;
  48135.   var $this_addr_i = __stackBase__ + 484;
  48136.   var $c_addr_i = __stackBase__ + 488;
  48137.   var $glyphs_addr_i = __stackBase__ + 492;
  48138.   var $num_glyphs_addr_i = __stackBase__ + 496;
  48139.   var $num_ranges_i = __stackBase__ + 500;
  48140.   var $i_i = __stackBase__ + 504;
  48141.   var $tmp_i = __stackBase__ + 508;
  48142.   var $tmp8_i = __stackBase__ + 510;
  48143.   var $range_i = __stackBase__ + 512;
  48144.   var $ref_tmp_i = __stackBase__ + 516;
  48145.   var $i28_i = __stackBase__ + 518;
  48146.   var $tmp33_i = __stackBase__ + 522;
  48147.   var $tmp37_i = __stackBase__ + 524;
  48148.   var $ref_tmp46_i = __stackBase__ + 526;
  48149.   var $ref_tmp53_i = __stackBase__ + 528;
  48150.   var $ref_tmp57_i = __stackBase__ + 530;
  48151.   var $retval;
  48152.   var $c_addr;
  48153.   var $glyphs_addr;
  48154.   var $num_glyphs_addr;
  48155.   var $num_ranges;
  48156.   var $i;
  48157.   var $tmp = __stackBase__ + 532;
  48158.   var $tmp4 = __stackBase__ + 534;
  48159.   $c_addr = $c;
  48160.   $glyphs_addr = $glyphs;
  48161.   $num_glyphs_addr = $num_glyphs;
  48162.   var $this1 = $this;
  48163.   HEAP[$this_addr_i7] = $c_addr;
  48164.   HEAP[$obj_addr_i] = $this1;
  48165.   var $this1_i8 = HEAP[$this_addr_i7];
  48166.   HEAP[$size_i] = 2;
  48167.   if (!(HEAP[$this1_i8 + 4 | 0] >>> 0 <= HEAP[$obj_addr_i] >>> 0)) {
  48168.     ___assert_func(102352, 451, 107096, 103368);
  48169.   }
  48170.   if (!(HEAP[$obj_addr_i] >>> 0 <= HEAP[$this1_i8 + 12 | 0] >>> 0)) {
  48171.     ___assert_func(102352, 451, 107096, 103368);
  48172.   }
  48173.   if (!((HEAP[$obj_addr_i] + HEAP[$size_i] | 0) >>> 0 >= HEAP[$this1_i8 + 12 | 0] >>> 0)) {
  48174.     ___assert_func(102352, 451, 107096, 103368);
  48175.   }
  48176.   var $sub_ptr_sub_i = HEAP[$obj_addr_i] + HEAP[$size_i] - HEAP[$this1_i8 + 12 | 0] | 0;
  48177.   HEAP[$this_addr_i_i5] = $this1_i8;
  48178.   HEAP[$size_addr_i_i] = $sub_ptr_sub_i;
  48179.   var $this1_i_i11 = HEAP[$this_addr_i_i5];
  48180.   do {
  48181.     if (HEAP[$this1_i_i11 + 16 | 0] & 1) {
  48182.       label = 24;
  48183.     } else {
  48184.       if ((HEAP[$this1_i_i11 + 8 | 0] - HEAP[$this1_i_i11 + 12 | 0] | 0) < (HEAP[$size_addr_i_i] | 0)) {
  48185.         label = 24;
  48186.         break;
  48187.       }
  48188.       var $27 = HEAP[$this1_i_i11 + 12 | 0];
  48189.       var $28 = HEAP[$size_addr_i_i];
  48190.       for (var $$dest = $27, $$stop = $$dest + $28; $$dest < $$stop; $$dest++) {
  48191.         HEAP[$$dest] = 0;
  48192.       }
  48193.       HEAP[$ret_i_i] = HEAP[$this1_i_i11 + 12 | 0];
  48194.       var $head5_i_i = $this1_i_i11 + 12 | 0;
  48195.       HEAP[$head5_i_i] = HEAP[$head5_i_i] + HEAP[$size_addr_i_i] | 0;
  48196.       var $33 = HEAP[$ret_i_i];
  48197.       HEAP[$retval_i_i4] = $33;
  48198.       var $34 = $33;
  48199.       break;
  48200.     }
  48201.   } while (0);
  48202.   if (label == 24) {
  48203.     HEAP[$this1_i_i11 + 16 | 0] = 1;
  48204.     HEAP[$retval_i_i4] = 0;
  48205.     var $34 = 0;
  48206.   }
  48207.   var $34;
  48208.   if (($34 | 0) != 0) {
  48209.     var $39 = HEAP[$obj_addr_i];
  48210.     HEAP[$retval_i6] = $39;
  48211.     var $40 = $39;
  48212.   } else {
  48213.     HEAP[$retval_i6] = 0;
  48214.     var $40 = 0;
  48215.   }
  48216.   var $40;
  48217.   if (($40 | 0) == 0) {
  48218.     $retval = 0;
  48219.     var $667 = $retval;
  48220.     STACKTOP = __stackBase__;
  48221.     return $667;
  48222.   }
  48223.   $num_ranges = 1;
  48224.   $i = 1;
  48225.   L45 : do {
  48226.     if ($i >>> 0 < $num_glyphs_addr >>> 0) {
  48227.       var $50 = $tmp;
  48228.       var $59 = $tmp4;
  48229.       var $66 = $tmp4;
  48230.       var $67 = $tmp;
  48231.       while (1) {
  48232.         HEAP[$this_addr_i27] = $glyphs_addr;
  48233.         HEAP[$i_addr_i] = $i - 1 | 0;
  48234.         var $this1_i28 = HEAP[$this_addr_i27];
  48235.         if (HEAP[$i_addr_i] >>> 0 >= HEAP[$this1_i28 | 0] >>> 0) {
  48236.           HEAP[$50] = 0;
  48237.           HEAP[$50 + 1] = 0;
  48238.         } else {
  48239.           var $74 = (HEAP[$i_addr_i] << 1) + HEAP[$this1_i28 + 4 | 0] | 0;
  48240.           HEAP[$67] = HEAP[$74];
  48241.           HEAP[$67 + 1] = HEAP[$74 + 1];
  48242.         }
  48243.         HEAP[$this_addr_i154] = $tmp;
  48244.         HEAP[$this_addr_i_i153] = HEAP[$this_addr_i154] | 0;
  48245.         var $this1_i_i156 = HEAP[$this_addr_i_i153];
  48246.         var $add = (((HEAP[$this1_i_i156 | 0] & 255) << 8) + (HEAP[$this1_i_i156 + 1 | 0] & 255) & 65535) + 1 | 0;
  48247.         HEAP[$this_addr_i159] = $glyphs_addr;
  48248.         HEAP[$i_addr_i160] = $i;
  48249.         var $this1_i161 = HEAP[$this_addr_i159];
  48250.         if (HEAP[$i_addr_i160] >>> 0 >= HEAP[$this1_i161 | 0] >>> 0) {
  48251.           HEAP[$59] = 0;
  48252.           HEAP[$59 + 1] = 0;
  48253.         } else {
  48254.           var $83 = (HEAP[$i_addr_i160] << 1) + HEAP[$this1_i161 + 4 | 0] | 0;
  48255.           HEAP[$66] = HEAP[$83];
  48256.           HEAP[$66 + 1] = HEAP[$83 + 1];
  48257.         }
  48258.         HEAP[$this_addr_i194] = $tmp4;
  48259.         HEAP[$this_addr_i_i193] = HEAP[$this_addr_i194] | 0;
  48260.         var $this1_i_i197 = HEAP[$this_addr_i_i193];
  48261.         if (($add | 0) != (((HEAP[$this1_i_i197 | 0] & 255) << 8) + (HEAP[$this1_i_i197 + 1 | 0] & 255) & 65535 | 0)) {
  48262.           $num_ranges = $num_ranges + 1 | 0;
  48263.         }
  48264.         $i = $i + 1 | 0;
  48265.         if ($i >>> 0 >= $num_glyphs_addr >>> 0) {
  48266.           break L45;
  48267.         }
  48268.       }
  48269.     }
  48270.   } while (0);
  48271.   HEAP[$this_addr_i185] = $this1 | 0;
  48272.   HEAP[$i_addr_i186] = ($num_glyphs_addr << 1 >>> 0 < ($num_ranges * 3 & -1) >>> 0 ? 1 : 2) & 65535;
  48273.   var $94 = HEAP[$i_addr_i186];
  48274.   HEAP[$this_addr_i_i183] = HEAP[$this_addr_i185] | 0;
  48275.   HEAP[$i_addr_i_i184] = $94;
  48276.   var $this1_i_i189 = HEAP[$this_addr_i_i183];
  48277.   HEAP[$this1_i_i189 | 0] = (HEAP[$i_addr_i_i184] & 65535) >> 8 & 255;
  48278.   HEAP[$this1_i_i189 + 1 | 0] = HEAP[$i_addr_i_i184] & 255;
  48279.   HEAP[$this_addr_i170] = $this1 | 0;
  48280.   HEAP[$this_addr_i_i169] = HEAP[$this_addr_i170] | 0;
  48281.   var $this1_i_i173 = HEAP[$this_addr_i_i169];
  48282.   var $conv17 = ((HEAP[$this1_i_i173 | 0] & 255) << 8) + (HEAP[$this1_i_i173 + 1 | 0] & 255) & 65535;
  48283.   if (($conv17 | 0) == 1) {
  48284.     HEAP[$this_addr_i57] = $this1 | 0;
  48285.     HEAP[$c_addr_i58] = $c_addr;
  48286.     HEAP[$glyphs_addr_i59] = $glyphs_addr;
  48287.     HEAP[$num_glyphs_addr_i60] = $num_glyphs_addr;
  48288.     var $this1_i63 = HEAP[$this_addr_i57];
  48289.     HEAP[$this_addr_i26_i38] = HEAP[$c_addr_i58];
  48290.     HEAP[$obj_addr_i27_i] = $this1_i63;
  48291.     var $this1_i29_i = HEAP[$this_addr_i26_i38];
  48292.     HEAP[$size_i28_i] = 4;
  48293.     if (!(HEAP[$this1_i29_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i27_i] >>> 0)) {
  48294.       ___assert_func(102352, 451, 107824, 103368);
  48295.     }
  48296.     if (!(HEAP[$obj_addr_i27_i] >>> 0 <= HEAP[$this1_i29_i + 12 | 0] >>> 0)) {
  48297.       ___assert_func(102352, 451, 107824, 103368);
  48298.     }
  48299.     if (!((HEAP[$obj_addr_i27_i] + HEAP[$size_i28_i] | 0) >>> 0 >= HEAP[$this1_i29_i + 12 | 0] >>> 0)) {
  48300.       ___assert_func(102352, 451, 107824, 103368);
  48301.     }
  48302.     var $sub_ptr_sub_i44_i = HEAP[$obj_addr_i27_i] + HEAP[$size_i28_i] - HEAP[$this1_i29_i + 12 | 0] | 0;
  48303.     HEAP[$this_addr_i_i22_i] = $this1_i29_i;
  48304.     HEAP[$size_addr_i_i23_i] = $sub_ptr_sub_i44_i;
  48305.     var $this1_i_i45_i = HEAP[$this_addr_i_i22_i];
  48306.     do {
  48307.       if (HEAP[$this1_i_i45_i + 16 | 0] & 1) {
  48308.         label = 49;
  48309.       } else {
  48310.         if ((HEAP[$this1_i_i45_i + 8 | 0] - HEAP[$this1_i_i45_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i23_i] | 0)) {
  48311.           label = 49;
  48312.           break;
  48313.         }
  48314.         var $146 = HEAP[$this1_i_i45_i + 12 | 0];
  48315.         var $147 = HEAP[$size_addr_i_i23_i];
  48316.         for (var $$dest = $146, $$stop = $$dest + $147; $$dest < $$stop; $$dest++) {
  48317.           HEAP[$$dest] = 0;
  48318.         }
  48319.         HEAP[$ret_i_i24_i] = HEAP[$this1_i_i45_i + 12 | 0];
  48320.         var $head5_i_i60_i = $this1_i_i45_i + 12 | 0;
  48321.         HEAP[$head5_i_i60_i] = HEAP[$head5_i_i60_i] + HEAP[$size_addr_i_i23_i] | 0;
  48322.         var $152 = HEAP[$ret_i_i24_i];
  48323.         HEAP[$retval_i_i21_i] = $152;
  48324.         var $153 = $152;
  48325.         break;
  48326.       }
  48327.     } while (0);
  48328.     if (label == 49) {
  48329.       HEAP[$this1_i_i45_i + 16 | 0] = 1;
  48330.       HEAP[$retval_i_i21_i] = 0;
  48331.       var $153 = 0;
  48332.     }
  48333.     var $153;
  48334.     if (($153 | 0) != 0) {
  48335.       var $158 = HEAP[$obj_addr_i27_i];
  48336.       HEAP[$retval_i25_i] = $158;
  48337.       var $159 = $158;
  48338.     } else {
  48339.       HEAP[$retval_i25_i] = 0;
  48340.       var $159 = 0;
  48341.     }
  48342.     var $159;
  48343.     do {
  48344.       if (($159 | 0) != 0) {
  48345.         var $conv_i68 = HEAP[$num_glyphs_addr_i60] & 65535;
  48346.         HEAP[$this_addr_i69_i] = $this1_i63 + 2 | 0;
  48347.         HEAP[$i_addr_i70_i] = $conv_i68;
  48348.         var $169 = HEAP[$i_addr_i70_i];
  48349.         HEAP[$this_addr_i_i68_i] = HEAP[$this_addr_i69_i] | 0;
  48350.         HEAP[$i_addr_i_i_i37] = $169;
  48351.         var $this1_i_i72_i = HEAP[$this_addr_i_i68_i];
  48352.         HEAP[$this1_i_i72_i | 0] = (HEAP[$i_addr_i_i_i37] & 65535) >> 8 & 255;
  48353.         HEAP[$this1_i_i72_i + 1 | 0] = HEAP[$i_addr_i_i_i37] & 255;
  48354.         HEAP[$this_addr_i13_i] = HEAP[$c_addr_i58];
  48355.         HEAP[$obj_addr_i_i47] = $this1_i63 + 2 | 0;
  48356.         var $this1_i14_i = HEAP[$this_addr_i13_i];
  48357.         HEAP[$this_addr_i_i_i45] = HEAP[$obj_addr_i_i47];
  48358.         HEAP[$this_addr_i_i_i_i44] = HEAP[$this_addr_i_i_i45] | 0;
  48359.         HEAP[$this_addr_i_i_i_i_i43] = HEAP[$this_addr_i_i_i_i44] | 0;
  48360.         var $this1_i_i_i_i_i81 = HEAP[$this_addr_i_i_i_i_i43];
  48361.         HEAP[$size_i_i48] = ((((HEAP[$this1_i_i_i_i_i81 | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i81 + 1 | 0] & 255) & 65535) << 1) + 2 | 0;
  48362.         if (HEAP[$this1_i14_i + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i47] >>> 0) {
  48363.           ___assert_func(102352, 460, 106736, 103656);
  48364.         }
  48365.         if (!(HEAP[$obj_addr_i_i47] >>> 0 <= HEAP[$this1_i14_i + 12 | 0] >>> 0)) {
  48366.           ___assert_func(102352, 460, 106736, 103656);
  48367.         }
  48368.         if (!((HEAP[$obj_addr_i_i47] + HEAP[$size_i_i48] | 0) >>> 0 >= HEAP[$this1_i14_i + 12 | 0] >>> 0)) {
  48369.           ___assert_func(102352, 460, 106736, 103656);
  48370.         }
  48371.         var $sub_ptr_sub_i_i107 = HEAP[$obj_addr_i_i47] + HEAP[$size_i_i48] - HEAP[$this1_i14_i + 12 | 0] | 0;
  48372.         HEAP[$this_addr_i1_i_i40] = $this1_i14_i;
  48373.         HEAP[$size_addr_i_i_i41] = $sub_ptr_sub_i_i107;
  48374.         var $this1_i2_i_i108 = HEAP[$this_addr_i1_i_i40];
  48375.         do {
  48376.           if (HEAP[$this1_i2_i_i108 + 16 | 0] & 1) {
  48377.             label = 62;
  48378.           } else {
  48379.             if ((HEAP[$this1_i2_i_i108 + 8 | 0] - HEAP[$this1_i2_i_i108 + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i41] | 0)) {
  48380.               label = 62;
  48381.               break;
  48382.             }
  48383.             var $215 = HEAP[$this1_i2_i_i108 + 12 | 0];
  48384.             var $216 = HEAP[$size_addr_i_i_i41];
  48385.             for (var $$dest = $215, $$stop = $$dest + $216; $$dest < $$stop; $$dest++) {
  48386.               HEAP[$$dest] = 0;
  48387.             }
  48388.             HEAP[$ret_i_i_i42] = HEAP[$this1_i2_i_i108 + 12 | 0];
  48389.             var $head5_i_i_i123 = $this1_i2_i_i108 + 12 | 0;
  48390.             HEAP[$head5_i_i_i123] = HEAP[$head5_i_i_i123] + HEAP[$size_addr_i_i_i41] | 0;
  48391.             var $221 = HEAP[$ret_i_i_i42];
  48392.             HEAP[$retval_i_i_i39] = $221;
  48393.             var $222 = $221;
  48394.             break;
  48395.           }
  48396.         } while (0);
  48397.         if (label == 62) {
  48398.           HEAP[$this1_i2_i_i108 + 16 | 0] = 1;
  48399.           HEAP[$retval_i_i_i39] = 0;
  48400.           var $222 = 0;
  48401.         }
  48402.         var $222;
  48403.         if (($222 | 0) != 0) {
  48404.           var $227 = HEAP[$obj_addr_i_i47];
  48405.           HEAP[$retval_i_i46] = $227;
  48406.           var $228 = $227;
  48407.         } else {
  48408.           HEAP[$retval_i_i46] = 0;
  48409.           var $228 = 0;
  48410.         }
  48411.         var $228;
  48412.         if (($228 | 0) == 0) {
  48413.           HEAP[$retval_i56] = 0;
  48414.           break;
  48415.         }
  48416.         HEAP[$i_i61] = 0;
  48417.         L107 : do {
  48418.           if (HEAP[$i_i61] >>> 0 < HEAP[$num_glyphs_addr_i60] >>> 0) {
  48419.             var $236 = $this1_i63 + 2 | 0;
  48420.             var $243 = $ref_tmp_i62;
  48421.             var $246 = $ref_tmp_i62;
  48422.             var $247 = $ref_tmp_i62;
  48423.             while (1) {
  48424.               var $248 = HEAP[$i_i61];
  48425.               HEAP[$this_addr_i7_i49] = $236;
  48426.               HEAP[$i_addr_i8_i50] = $248;
  48427.               var $arrayidx_i10_i129 = (HEAP[$i_addr_i8_i50] << 1) + HEAP[$this_addr_i7_i49] + 2 | 0;
  48428.               var $251 = HEAP[$i_i61];
  48429.               HEAP[$this_addr_i1_i51] = HEAP[$glyphs_addr_i59];
  48430.               HEAP[$i_addr_i_i52] = $251;
  48431.               var $this1_i2_i130 = HEAP[$this_addr_i1_i51];
  48432.               if (HEAP[$i_addr_i_i52] >>> 0 >= HEAP[$this1_i2_i130 | 0] >>> 0) {
  48433.                 HEAP[$243] = 0;
  48434.                 HEAP[$243 + 1] = 0;
  48435.               } else {
  48436.                 var $256 = (HEAP[$i_addr_i_i52] << 1) + HEAP[$this1_i2_i130 + 4 | 0] | 0;
  48437.                 HEAP[$247] = HEAP[$256];
  48438.                 HEAP[$247 + 1] = HEAP[$256 + 1];
  48439.               }
  48440.               var $257 = $arrayidx_i10_i129;
  48441.               HEAP[$257] = HEAP[$246];
  48442.               HEAP[$257 + 1] = HEAP[$246 + 1];
  48443.               HEAP[$i_i61] = HEAP[$i_i61] + 1 | 0;
  48444.               if (HEAP[$i_i61] >>> 0 >= HEAP[$num_glyphs_addr_i60] >>> 0) {
  48445.                 break L107;
  48446.               }
  48447.             }
  48448.           }
  48449.         } while (0);
  48450.         var $262 = HEAP[$num_glyphs_addr_i60];
  48451.         HEAP[$this_addr_i_i53] = HEAP[$glyphs_addr_i59];
  48452.         HEAP[$count_addr_i_i54] = $262;
  48453.         var $this1_i_i141 = HEAP[$this_addr_i_i53];
  48454.         if (HEAP[$count_addr_i_i54] >>> 0 > HEAP[$this1_i_i141 | 0] >>> 0) {
  48455.           HEAP[$count_addr_i_i54] = HEAP[$this1_i_i141 | 0];
  48456.         }
  48457.         var $len3_i_i147 = $this1_i_i141 | 0;
  48458.         HEAP[$len3_i_i147] = HEAP[$len3_i_i147] - HEAP[$count_addr_i_i54] | 0;
  48459.         var $head_i_i149 = $this1_i_i141 + 4 | 0;
  48460.         HEAP[$head_i_i149] = (HEAP[$count_addr_i_i54] << 1) + HEAP[$head_i_i149] | 0;
  48461.         HEAP[$retval_i56] = 1;
  48462.       } else {
  48463.         HEAP[$retval_i56] = 0;
  48464.       }
  48465.     } while (0);
  48466.     $retval = HEAP[$retval_i56] & 1;
  48467.     var $667 = $retval;
  48468.     STACKTOP = __stackBase__;
  48469.     return $667;
  48470.   } else if (($conv17 | 0) == 2) {
  48471.     HEAP[$this_addr_i] = $this1 | 0;
  48472.     HEAP[$c_addr_i] = $c_addr;
  48473.     HEAP[$glyphs_addr_i] = $glyphs_addr;
  48474.     HEAP[$num_glyphs_addr_i] = $num_glyphs_addr;
  48475.     var $this1_i = HEAP[$this_addr_i];
  48476.     HEAP[$this_addr_i145_i] = HEAP[$c_addr_i];
  48477.     HEAP[$obj_addr_i146_i] = $this1_i;
  48478.     var $this1_i148_i = HEAP[$this_addr_i145_i];
  48479.     HEAP[$size_i147_i] = 4;
  48480.     if (!(HEAP[$this1_i148_i + 4 | 0] >>> 0 <= HEAP[$obj_addr_i146_i] >>> 0)) {
  48481.       ___assert_func(102352, 451, 107736, 103368);
  48482.     }
  48483.     if (!(HEAP[$obj_addr_i146_i] >>> 0 <= HEAP[$this1_i148_i + 12 | 0] >>> 0)) {
  48484.       ___assert_func(102352, 451, 107736, 103368);
  48485.     }
  48486.     if (!((HEAP[$obj_addr_i146_i] + HEAP[$size_i147_i] | 0) >>> 0 >= HEAP[$this1_i148_i + 12 | 0] >>> 0)) {
  48487.       ___assert_func(102352, 451, 107736, 103368);
  48488.     }
  48489.     var $sub_ptr_sub_i163_i = HEAP[$obj_addr_i146_i] + HEAP[$size_i147_i] - HEAP[$this1_i148_i + 12 | 0] | 0;
  48490.     HEAP[$this_addr_i_i141_i] = $this1_i148_i;
  48491.     HEAP[$size_addr_i_i142_i] = $sub_ptr_sub_i163_i;
  48492.     var $this1_i_i164_i = HEAP[$this_addr_i_i141_i];
  48493.     do {
  48494.       if (HEAP[$this1_i_i164_i + 16 | 0] & 1) {
  48495.         label = 85;
  48496.       } else {
  48497.         if ((HEAP[$this1_i_i164_i + 8 | 0] - HEAP[$this1_i_i164_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i142_i] | 0)) {
  48498.           label = 85;
  48499.           break;
  48500.         }
  48501.         var $331 = HEAP[$this1_i_i164_i + 12 | 0];
  48502.         var $332 = HEAP[$size_addr_i_i142_i];
  48503.         for (var $$dest = $331, $$stop = $$dest + $332; $$dest < $$stop; $$dest++) {
  48504.           HEAP[$$dest] = 0;
  48505.         }
  48506.         HEAP[$ret_i_i143_i] = HEAP[$this1_i_i164_i + 12 | 0];
  48507.         var $head5_i_i179_i = $this1_i_i164_i + 12 | 0;
  48508.         HEAP[$head5_i_i179_i] = HEAP[$head5_i_i179_i] + HEAP[$size_addr_i_i142_i] | 0;
  48509.         var $337 = HEAP[$ret_i_i143_i];
  48510.         HEAP[$retval_i_i140_i] = $337;
  48511.         var $338 = $337;
  48512.         break;
  48513.       }
  48514.     } while (0);
  48515.     if (label == 85) {
  48516.       HEAP[$this1_i_i164_i + 16 | 0] = 1;
  48517.       HEAP[$retval_i_i140_i] = 0;
  48518.       var $338 = 0;
  48519.     }
  48520.     var $338;
  48521.     if (($338 | 0) != 0) {
  48522.       var $343 = HEAP[$obj_addr_i146_i];
  48523.       HEAP[$retval_i144_i] = $343;
  48524.       var $344 = $343;
  48525.     } else {
  48526.       HEAP[$retval_i144_i] = 0;
  48527.       var $344 = 0;
  48528.     }
  48529.     var $344;
  48530.     do {
  48531.       if (($344 | 0) != 0) {
  48532.         if ((HEAP[$num_glyphs_addr_i] | 0) == 0) {
  48533.           HEAP[$retval_i] = 1;
  48534.           break;
  48535.         }
  48536.         HEAP[$num_ranges_i] = 1;
  48537.         HEAP[$i_i] = 1;
  48538.         L147 : do {
  48539.           if (HEAP[$i_i] >>> 0 < HEAP[$num_glyphs_addr_i] >>> 0) {
  48540.             var $356 = $tmp_i;
  48541.             var $365 = $tmp8_i;
  48542.             var $372 = $tmp8_i;
  48543.             var $373 = $tmp_i;
  48544.             while (1) {
  48545.               var $sub_i = HEAP[$i_i] - 1 | 0;
  48546.               HEAP[$this_addr_i240_i] = HEAP[$glyphs_addr_i];
  48547.               HEAP[$i_addr_i241_i] = $sub_i;
  48548.               var $this1_i242_i = HEAP[$this_addr_i240_i];
  48549.               if (HEAP[$i_addr_i241_i] >>> 0 >= HEAP[$this1_i242_i | 0] >>> 0) {
  48550.                 HEAP[$356] = 0;
  48551.                 HEAP[$356 + 1] = 0;
  48552.               } else {
  48553.                 var $380 = (HEAP[$i_addr_i241_i] << 1) + HEAP[$this1_i242_i + 4 | 0] | 0;
  48554.                 HEAP[$373] = HEAP[$380];
  48555.                 HEAP[$373 + 1] = HEAP[$380 + 1];
  48556.               }
  48557.               HEAP[$this_addr_i227_i] = $tmp_i;
  48558.               HEAP[$this_addr_i_i226_i] = HEAP[$this_addr_i227_i] | 0;
  48559.               var $this1_i_i230_i = HEAP[$this_addr_i_i226_i];
  48560.               var $add_i = (((HEAP[$this1_i_i230_i | 0] & 255) << 8) + (HEAP[$this1_i_i230_i + 1 | 0] & 255) & 65535) + 1 | 0;
  48561.               var $384 = HEAP[$i_i];
  48562.               HEAP[$this_addr_i216_i] = HEAP[$glyphs_addr_i];
  48563.               HEAP[$i_addr_i217_i] = $384;
  48564.               var $this1_i218_i = HEAP[$this_addr_i216_i];
  48565.               if (HEAP[$i_addr_i217_i] >>> 0 >= HEAP[$this1_i218_i | 0] >>> 0) {
  48566.                 HEAP[$365] = 0;
  48567.                 HEAP[$365 + 1] = 0;
  48568.               } else {
  48569.                 var $389 = (HEAP[$i_addr_i217_i] << 1) + HEAP[$this1_i218_i + 4 | 0] | 0;
  48570.                 HEAP[$372] = HEAP[$389];
  48571.                 HEAP[$372 + 1] = HEAP[$389 + 1];
  48572.               }
  48573.               HEAP[$this_addr_i203_i] = $tmp8_i;
  48574.               HEAP[$this_addr_i_i202_i] = HEAP[$this_addr_i203_i] | 0;
  48575.               var $this1_i_i206_i = HEAP[$this_addr_i_i202_i];
  48576.               if (($add_i | 0) != (((HEAP[$this1_i_i206_i | 0] & 255) << 8) + (HEAP[$this1_i_i206_i + 1 | 0] & 255) & 65535 | 0)) {
  48577.                 HEAP[$num_ranges_i] = HEAP[$num_ranges_i] + 1 | 0;
  48578.               }
  48579.               HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  48580.               if (HEAP[$i_i] >>> 0 >= HEAP[$num_glyphs_addr_i] >>> 0) {
  48581.                 break L147;
  48582.               }
  48583.             }
  48584.           }
  48585.         } while (0);
  48586.         var $conv15_i = HEAP[$num_ranges_i] & 65535;
  48587.         HEAP[$this_addr_i189_i] = $this1_i + 2 | 0;
  48588.         HEAP[$i_addr_i190_i] = $conv15_i;
  48589.         var $400 = HEAP[$i_addr_i190_i];
  48590.         HEAP[$this_addr_i_i187_i] = HEAP[$this_addr_i189_i] | 0;
  48591.         HEAP[$i_addr_i_i188_i] = $400;
  48592.         var $this1_i_i193_i = HEAP[$this_addr_i_i187_i];
  48593.         HEAP[$this1_i_i193_i | 0] = (HEAP[$i_addr_i_i188_i] & 65535) >> 8 & 255;
  48594.         HEAP[$this1_i_i193_i + 1 | 0] = HEAP[$i_addr_i_i188_i] & 255;
  48595.         HEAP[$this_addr_i129_i] = HEAP[$c_addr_i];
  48596.         HEAP[$obj_addr_i_i] = $this1_i + 2 | 0;
  48597.         var $this1_i130_i = HEAP[$this_addr_i129_i];
  48598.         HEAP[$this_addr_i_i128_i] = HEAP[$obj_addr_i_i];
  48599.         HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i128_i] | 0;
  48600.         HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  48601.         var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  48602.         HEAP[$size_i_i] = ((((HEAP[$this1_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i + 1 | 0] & 255) & 65535) * 6 & -1) + 2 | 0;
  48603.         if (HEAP[$this1_i130_i + 4 | 0] >>> 0 >= HEAP[$obj_addr_i_i] >>> 0) {
  48604.           ___assert_func(102352, 460, 106848, 103656);
  48605.         }
  48606.         if (!(HEAP[$obj_addr_i_i] >>> 0 <= HEAP[$this1_i130_i + 12 | 0] >>> 0)) {
  48607.           ___assert_func(102352, 460, 106848, 103656);
  48608.         }
  48609.         if (!((HEAP[$obj_addr_i_i] + HEAP[$size_i_i] | 0) >>> 0 >= HEAP[$this1_i130_i + 12 | 0] >>> 0)) {
  48610.           ___assert_func(102352, 460, 106848, 103656);
  48611.         }
  48612.         var $sub_ptr_sub_i_i = HEAP[$obj_addr_i_i] + HEAP[$size_i_i] - HEAP[$this1_i130_i + 12 | 0] | 0;
  48613.         HEAP[$this_addr_i1_i_i] = $this1_i130_i;
  48614.         HEAP[$size_addr_i_i_i] = $sub_ptr_sub_i_i;
  48615.         var $this1_i2_i_i = HEAP[$this_addr_i1_i_i];
  48616.         do {
  48617.           if (HEAP[$this1_i2_i_i + 16 | 0] & 1) {
  48618.             label = 111;
  48619.           } else {
  48620.             if ((HEAP[$this1_i2_i_i + 8 | 0] - HEAP[$this1_i2_i_i + 12 | 0] | 0) < (HEAP[$size_addr_i_i_i] | 0)) {
  48621.               label = 111;
  48622.               break;
  48623.             }
  48624.             var $446 = HEAP[$this1_i2_i_i + 12 | 0];
  48625.             var $447 = HEAP[$size_addr_i_i_i];
  48626.             for (var $$dest = $446, $$stop = $$dest + $447; $$dest < $$stop; $$dest++) {
  48627.               HEAP[$$dest] = 0;
  48628.             }
  48629.             HEAP[$ret_i_i_i] = HEAP[$this1_i2_i_i + 12 | 0];
  48630.             var $head5_i_i_i = $this1_i2_i_i + 12 | 0;
  48631.             HEAP[$head5_i_i_i] = HEAP[$head5_i_i_i] + HEAP[$size_addr_i_i_i] | 0;
  48632.             var $452 = HEAP[$ret_i_i_i];
  48633.             HEAP[$retval_i_i_i] = $452;
  48634.             var $453 = $452;
  48635.             break;
  48636.           }
  48637.         } while (0);
  48638.         if (label == 111) {
  48639.           HEAP[$this1_i2_i_i + 16 | 0] = 1;
  48640.           HEAP[$retval_i_i_i] = 0;
  48641.           var $453 = 0;
  48642.         }
  48643.         var $453;
  48644.         if (($453 | 0) != 0) {
  48645.           var $458 = HEAP[$obj_addr_i_i];
  48646.           HEAP[$retval_i_i] = $458;
  48647.           var $459 = $458;
  48648.         } else {
  48649.           HEAP[$retval_i_i] = 0;
  48650.           var $459 = 0;
  48651.         }
  48652.         var $459;
  48653.         if (($459 | 0) == 0) {
  48654.           HEAP[$retval_i] = 0;
  48655.           break;
  48656.         }
  48657.         HEAP[$range_i] = 0;
  48658.         var $466 = HEAP[$range_i];
  48659.         HEAP[$this_addr_i121_i] = $this1_i + 2 | 0;
  48660.         HEAP[$i_addr_i122_i] = $466;
  48661.         var $start_i = HEAP[$this_addr_i121_i] + (HEAP[$i_addr_i122_i] * 6 & -1) + 2 | 0;
  48662.         HEAP[$this_addr_i111_i] = HEAP[$glyphs_addr_i];
  48663.         HEAP[$i_addr_i112_i] = 0;
  48664.         var $this1_i113_i = HEAP[$this_addr_i111_i];
  48665.         if (HEAP[$i_addr_i112_i] >>> 0 >= HEAP[$this1_i113_i | 0] >>> 0) {
  48666.           var $477 = $ref_tmp_i;
  48667.           HEAP[$477] = 0;
  48668.           HEAP[$477 + 1] = 0;
  48669.         } else {
  48670.           var $480 = $ref_tmp_i;
  48671.           var $481 = (HEAP[$i_addr_i112_i] << 1) + HEAP[$this1_i113_i + 4 | 0] | 0;
  48672.           HEAP[$480] = HEAP[$481];
  48673.           HEAP[$480 + 1] = HEAP[$481 + 1];
  48674.         }
  48675.         var $484 = $start_i;
  48676.         var $485 = $ref_tmp_i;
  48677.         HEAP[$484] = HEAP[$485];
  48678.         HEAP[$484 + 1] = HEAP[$485 + 1];
  48679.         var $487 = HEAP[$range_i];
  48680.         HEAP[$this_addr_i106_i] = $this1_i + 2 | 0;
  48681.         HEAP[$i_addr_i107_i] = $487;
  48682.         HEAP[$this_addr_i93_i] = HEAP[$this_addr_i106_i] + (HEAP[$i_addr_i107_i] * 6 & -1) + 6 | 0;
  48683.         HEAP[$i_addr_i94_i] = 0;
  48684.         var $495 = HEAP[$i_addr_i94_i];
  48685.         HEAP[$this_addr_i_i91_i] = HEAP[$this_addr_i93_i] | 0;
  48686.         HEAP[$i_addr_i_i92_i] = $495;
  48687.         var $this1_i_i97_i = HEAP[$this_addr_i_i91_i];
  48688.         HEAP[$this1_i_i97_i | 0] = (HEAP[$i_addr_i_i92_i] & 65535) >> 8 & 255;
  48689.         HEAP[$this1_i_i97_i + 1 | 0] = HEAP[$i_addr_i_i92_i] & 255;
  48690.         HEAP[$i28_i] = 1;
  48691.         var $506 = HEAP[$glyphs_addr_i];
  48692.         L189 : do {
  48693.           if (HEAP[$i28_i] >>> 0 < HEAP[$num_glyphs_addr_i] >>> 0) {
  48694.             var $509 = $tmp33_i;
  48695.             var $518 = $tmp37_i;
  48696.             var $525 = $this1_i + 2 | 0;
  48697.             var $532 = $ref_tmp46_i;
  48698.             var $535 = $ref_tmp46_i;
  48699.             var $536 = $this1_i + 2 | 0;
  48700.             var $549 = $this1_i + 2 | 0;
  48701.             var $556 = $ref_tmp53_i;
  48702.             var $559 = $ref_tmp53_i;
  48703.             var $560 = $ref_tmp53_i;
  48704.             var $561 = $ref_tmp46_i;
  48705.             var $562 = $this1_i + 2 | 0;
  48706.             var $569 = $ref_tmp57_i;
  48707.             var $572 = $ref_tmp57_i;
  48708.             var $573 = $ref_tmp57_i;
  48709.             var $574 = $tmp37_i;
  48710.             var $575 = $tmp33_i;
  48711.             var $576 = $506;
  48712.             while (1) {
  48713.               var $576;
  48714.               var $sub32_i = HEAP[$i28_i] - 1 | 0;
  48715.               HEAP[$this_addr_i81_i] = $576;
  48716.               HEAP[$i_addr_i82_i] = $sub32_i;
  48717.               var $this1_i83_i = HEAP[$this_addr_i81_i];
  48718.               if (HEAP[$i_addr_i82_i] >>> 0 >= HEAP[$this1_i83_i | 0] >>> 0) {
  48719.                 HEAP[$509] = 0;
  48720.                 HEAP[$509 + 1] = 0;
  48721.               } else {
  48722.                 var $582 = (HEAP[$i_addr_i82_i] << 1) + HEAP[$this1_i83_i + 4 | 0] | 0;
  48723.                 HEAP[$575] = HEAP[$582];
  48724.                 HEAP[$575 + 1] = HEAP[$582 + 1];
  48725.               }
  48726.               HEAP[$this_addr_i68_i] = $tmp33_i;
  48727.               HEAP[$this_addr_i_i67_i] = HEAP[$this_addr_i68_i] | 0;
  48728.               var $this1_i_i71_i = HEAP[$this_addr_i_i67_i];
  48729.               var $add36_i = (((HEAP[$this1_i_i71_i | 0] & 255) << 8) + (HEAP[$this1_i_i71_i + 1 | 0] & 255) & 65535) + 1 | 0;
  48730.               var $586 = HEAP[$i28_i];
  48731.               HEAP[$this_addr_i57_i] = HEAP[$glyphs_addr_i];
  48732.               HEAP[$i_addr_i58_i] = $586;
  48733.               var $this1_i59_i = HEAP[$this_addr_i57_i];
  48734.               if (HEAP[$i_addr_i58_i] >>> 0 >= HEAP[$this1_i59_i | 0] >>> 0) {
  48735.                 HEAP[$518] = 0;
  48736.                 HEAP[$518 + 1] = 0;
  48737.               } else {
  48738.                 var $591 = (HEAP[$i_addr_i58_i] << 1) + HEAP[$this1_i59_i + 4 | 0] | 0;
  48739.                 HEAP[$574] = HEAP[$591];
  48740.                 HEAP[$574 + 1] = HEAP[$591 + 1];
  48741.               }
  48742.               HEAP[$this_addr_i50_i] = $tmp37_i;
  48743.               HEAP[$this_addr_i_i49_i] = HEAP[$this_addr_i50_i] | 0;
  48744.               var $this1_i_i53_i = HEAP[$this_addr_i_i49_i];
  48745.               var $594 = HEAP[$range_i];
  48746.               if (($add36_i | 0) != (((HEAP[$this1_i_i53_i | 0] & 255) << 8) + (HEAP[$this1_i_i53_i + 1 | 0] & 255) & 65535 | 0)) {
  48747.                 HEAP[$range_i] = $594 + 1 | 0;
  48748.                 var $595 = HEAP[$range_i];
  48749.                 HEAP[$this_addr_i44_i] = $525;
  48750.                 HEAP[$i_addr_i45_i] = $595;
  48751.                 var $start45_i = HEAP[$this_addr_i44_i] + (HEAP[$i_addr_i45_i] * 6 & -1) + 2 | 0;
  48752.                 var $598 = HEAP[$i28_i];
  48753.                 HEAP[$this_addr_i34_i] = HEAP[$glyphs_addr_i];
  48754.                 HEAP[$i_addr_i35_i] = $598;
  48755.                 var $this1_i36_i = HEAP[$this_addr_i34_i];
  48756.                 if (HEAP[$i_addr_i35_i] >>> 0 >= HEAP[$this1_i36_i | 0] >>> 0) {
  48757.                   HEAP[$532] = 0;
  48758.                   HEAP[$532 + 1] = 0;
  48759.                 } else {
  48760.                   var $603 = (HEAP[$i_addr_i35_i] << 1) + HEAP[$this1_i36_i + 4 | 0] | 0;
  48761.                   HEAP[$561] = HEAP[$603];
  48762.                   HEAP[$561 + 1] = HEAP[$603 + 1];
  48763.                 }
  48764.                 var $604 = $start45_i;
  48765.                 HEAP[$604] = HEAP[$535];
  48766.                 HEAP[$604 + 1] = HEAP[$535 + 1];
  48767.                 var $605 = HEAP[$range_i];
  48768.                 HEAP[$this_addr_i29_i] = $536;
  48769.                 HEAP[$i_addr_i30_i] = $605;
  48770.                 var $conv50_i = HEAP[$i28_i] & 65535;
  48771.                 HEAP[$this_addr_i26_i] = HEAP[$this_addr_i29_i] + (HEAP[$i_addr_i30_i] * 6 & -1) + 6 | 0;
  48772.                 HEAP[$i_addr_i27_i] = $conv50_i;
  48773.                 var $608 = HEAP[$i_addr_i27_i];
  48774.                 HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i26_i] | 0;
  48775.                 HEAP[$i_addr_i_i_i] = $608;
  48776.                 var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  48777.                 HEAP[$this1_i_i_i | 0] = (HEAP[$i_addr_i_i_i] & 65535) >> 8 & 255;
  48778.                 HEAP[$this1_i_i_i + 1 | 0] = HEAP[$i_addr_i_i_i] & 255;
  48779.                 var $611 = HEAP[$range_i];
  48780.                 HEAP[$this_addr_i21_i] = $549;
  48781.                 HEAP[$i_addr_i22_i] = $611;
  48782.                 var $end_i = HEAP[$this_addr_i21_i] + (HEAP[$i_addr_i22_i] * 6 & -1) + 4 | 0;
  48783.                 var $614 = HEAP[$i28_i];
  48784.                 HEAP[$this_addr_i11_i] = HEAP[$glyphs_addr_i];
  48785.                 HEAP[$i_addr_i12_i] = $614;
  48786.                 var $this1_i13_i = HEAP[$this_addr_i11_i];
  48787.                 if (HEAP[$i_addr_i12_i] >>> 0 >= HEAP[$this1_i13_i | 0] >>> 0) {
  48788.                   HEAP[$556] = 0;
  48789.                   HEAP[$556 + 1] = 0;
  48790.                 } else {
  48791.                   var $619 = (HEAP[$i_addr_i12_i] << 1) + HEAP[$this1_i13_i + 4 | 0] | 0;
  48792.                   HEAP[$560] = HEAP[$619];
  48793.                   HEAP[$560 + 1] = HEAP[$619 + 1];
  48794.                 }
  48795.                 var $620 = $end_i;
  48796.                 HEAP[$620] = HEAP[$559];
  48797.                 HEAP[$620 + 1] = HEAP[$559 + 1];
  48798.               } else {
  48799.                 HEAP[$this_addr_i7_i] = $562;
  48800.                 HEAP[$i_addr_i8_i] = $594;
  48801.                 var $end56_i = HEAP[$this_addr_i7_i] + (HEAP[$i_addr_i8_i] * 6 & -1) + 4 | 0;
  48802.                 var $623 = HEAP[$i28_i];
  48803.                 HEAP[$this_addr_i1_i] = HEAP[$glyphs_addr_i];
  48804.                 HEAP[$i_addr_i_i] = $623;
  48805.                 var $this1_i2_i = HEAP[$this_addr_i1_i];
  48806.                 if (HEAP[$i_addr_i_i] >>> 0 >= HEAP[$this1_i2_i | 0] >>> 0) {
  48807.                   HEAP[$569] = 0;
  48808.                   HEAP[$569 + 1] = 0;
  48809.                 } else {
  48810.                   var $628 = (HEAP[$i_addr_i_i] << 1) + HEAP[$this1_i2_i + 4 | 0] | 0;
  48811.                   HEAP[$573] = HEAP[$628];
  48812.                   HEAP[$573 + 1] = HEAP[$628 + 1];
  48813.                 }
  48814.                 var $629 = $end56_i;
  48815.                 HEAP[$629] = HEAP[$572];
  48816.                 HEAP[$629 + 1] = HEAP[$572 + 1];
  48817.               }
  48818.               HEAP[$i28_i] = HEAP[$i28_i] + 1 | 0;
  48819.               var $633 = HEAP[$glyphs_addr_i];
  48820.               if (HEAP[$i28_i] >>> 0 < HEAP[$num_glyphs_addr_i] >>> 0) {
  48821.                 var $576 = $633;
  48822.               } else {
  48823.                 var $_lcssa_i = $633;
  48824.                 break L189;
  48825.               }
  48826.             }
  48827.           } else {
  48828.             var $_lcssa_i = $506;
  48829.           }
  48830.         } while (0);
  48831.         var $_lcssa_i;
  48832.         var $634 = HEAP[$num_glyphs_addr_i];
  48833.         HEAP[$this_addr_i_i] = $_lcssa_i;
  48834.         HEAP[$count_addr_i_i] = $634;
  48835.         var $this1_i_i = HEAP[$this_addr_i_i];
  48836.         if (HEAP[$count_addr_i_i] >>> 0 > HEAP[$this1_i_i | 0] >>> 0) {
  48837.           HEAP[$count_addr_i_i] = HEAP[$this1_i_i | 0];
  48838.         }
  48839.         var $len3_i_i = $this1_i_i | 0;
  48840.         HEAP[$len3_i_i] = HEAP[$len3_i_i] - HEAP[$count_addr_i_i] | 0;
  48841.         var $head_i_i = $this1_i_i + 4 | 0;
  48842.         HEAP[$head_i_i] = (HEAP[$count_addr_i_i] << 1) + HEAP[$head_i_i] | 0;
  48843.         HEAP[$retval_i] = 1;
  48844.       } else {
  48845.         HEAP[$retval_i] = 0;
  48846.       }
  48847.     } while (0);
  48848.     $retval = HEAP[$retval_i] & 1;
  48849.     var $667 = $retval;
  48850.     STACKTOP = __stackBase__;
  48851.     return $667;
  48852.   } else {
  48853.     $retval = 0;
  48854.     var $667 = $retval;
  48855.     STACKTOP = __stackBase__;
  48856.     return $667;
  48857.   }
  48858. }
  48859. function __ZL32normalization_preference_defaultPK23hb_segment_properties_t($props) {
  48860.   return 1;
  48861. }
  48862. function __ZL30normalization_preference_indicPK23hb_segment_properties_t($props) {
  48863.   return 2;
  48864. }
  48865. function __ZL24collect_features_defaultP21hb_ot_shape_planner_t($plan) {
  48866.   var label = 0;
  48867.   var $plan_addr;
  48868.   var $script_features;
  48869.   $plan_addr = $plan;
  48870.   $script_features = 0;
  48871.   var $1 = HEAP[$plan_addr + 8 | 0];
  48872.   do {
  48873.     if (($1 | 0) == 1214344807) {
  48874.       $script_features = 132072;
  48875.       break;
  48876.     } else if (($1 | 0) == 1416192628) {
  48877.       $script_features = 131984;
  48878.       break;
  48879.     } else {
  48880.       return;
  48881.     }
  48882.   } while (0);
  48883.   while (1) {
  48884.     if ((HEAP[$script_features] | 0) == 0) {
  48885.       label = 177;
  48886.       break;
  48887.     }
  48888.     __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($plan_addr + 28 | 0, HEAP[$script_features]);
  48889.     var $incdec_ptr = $script_features + 4 | 0;
  48890.     $script_features = $incdec_ptr;
  48891.     if (($incdec_ptr | 0) == 0) {
  48892.       label = 175;
  48893.       break;
  48894.     }
  48895.   }
  48896.   if (label == 175) {
  48897.     return;
  48898.   } else if (label == 177) {
  48899.     return;
  48900.   }
  48901. }
  48902. function __ZL15compose_defaultPK31hb_ot_shape_normalize_context_tjjPj($c, $a, $b, $ab) {
  48903.   var label = 0;
  48904.   var __stackBase__ = STACKTOP;
  48905.   STACKTOP = STACKTOP + 20 | 0;
  48906.   var $retval_i = __stackBase__;
  48907.   var $this_addr_i = __stackBase__ + 4;
  48908.   var $a_addr_i = __stackBase__ + 8;
  48909.   var $b_addr_i = __stackBase__ + 12;
  48910.   var $ab_addr_i = __stackBase__ + 16;
  48911.   var $a_addr;
  48912.   var $b_addr;
  48913.   var $ab_addr;
  48914.   var $found;
  48915.   $a_addr = $a;
  48916.   $b_addr = $b;
  48917.   $ab_addr = $ab;
  48918.   HEAP[$this_addr_i] = HEAP[$c + 12 | 0];
  48919.   HEAP[$a_addr_i] = $a_addr;
  48920.   HEAP[$b_addr_i] = $b_addr;
  48921.   HEAP[$ab_addr_i] = $ab_addr;
  48922.   var $this1_i = HEAP[$this_addr_i];
  48923.   HEAP[HEAP[$ab_addr_i]] = 0;
  48924.   do {
  48925.     if ((HEAP[$a_addr_i] | 0) != 0) {
  48926.       if ((HEAP[$b_addr_i] | 0) == 0) {
  48927.         label = 180;
  48928.         break;
  48929.       }
  48930.       var $call_i = FUNCTION_TABLE[HEAP[$this1_i + 72 | 0]]($this1_i, HEAP[$a_addr_i], HEAP[$b_addr_i], HEAP[$ab_addr_i], HEAP[$this1_i + 104 | 0]);
  48931.       HEAP[$retval_i] = $call_i;
  48932.       break;
  48933.     } else {
  48934.       label = 180;
  48935.     }
  48936.   } while (0);
  48937.   if (label == 180) {
  48938.     HEAP[$retval_i] = 0;
  48939.   }
  48940.   $found = (HEAP[$retval_i] | 0) != 0 & 1;
  48941.   do {
  48942.     if (!($found & 1)) {
  48943.       if (($b_addr & -128 | 0) != 1408) {
  48944.         break;
  48945.       }
  48946.       var $26 = $b_addr;
  48947.       if (($26 | 0) == 1465) {
  48948.         if (($a_addr | 0) != 1493) {
  48949.           break;
  48950.         }
  48951.         HEAP[$ab_addr] = 64331;
  48952.         $found = 1;
  48953.         break;
  48954.       } else if (($26 | 0) == 1468) {
  48955.         var $39 = $a_addr;
  48956.         if ($a_addr >>> 0 >= 1488 & $a_addr >>> 0 <= 1514) {
  48957.           HEAP[$ab_addr] = HEAP[($39 - 1488 << 2) + 110736 | 0];
  48958.           $found = (HEAP[$ab_addr] | 0) != 0 & 1;
  48959.           break;
  48960.         }
  48961.         if (($39 | 0) == 64298) {
  48962.           HEAP[$ab_addr] = 64300;
  48963.           $found = 1;
  48964.           break;
  48965.         }
  48966.         if (($a_addr | 0) != 64299) {
  48967.           break;
  48968.         }
  48969.         HEAP[$ab_addr] = 64301;
  48970.         $found = 1;
  48971.         break;
  48972.       } else if (($26 | 0) == 1460) {
  48973.         if (($a_addr | 0) != 1497) {
  48974.           break;
  48975.         }
  48976.         HEAP[$ab_addr] = 64285;
  48977.         $found = 1;
  48978.         break;
  48979.       } else if (($26 | 0) == 1463) {
  48980.         if (($a_addr | 0) == 1522) {
  48981.           HEAP[$ab_addr] = 64287;
  48982.           $found = 1;
  48983.           break;
  48984.         }
  48985.         if (($a_addr | 0) != 1488) {
  48986.           break;
  48987.         }
  48988.         HEAP[$ab_addr] = 64302;
  48989.         $found = 1;
  48990.         break;
  48991.       } else if (($26 | 0) == 1474) {
  48992.         if (($a_addr | 0) == 1513) {
  48993.           HEAP[$ab_addr] = 64299;
  48994.           $found = 1;
  48995.           break;
  48996.         }
  48997.         if (($a_addr | 0) != 64329) {
  48998.           break;
  48999.         }
  49000.         HEAP[$ab_addr] = 64301;
  49001.         $found = 1;
  49002.         break;
  49003.       } else if (($26 | 0) == 1464) {
  49004.         if (($a_addr | 0) != 1488) {
  49005.           break;
  49006.         }
  49007.         HEAP[$ab_addr] = 64303;
  49008.         $found = 1;
  49009.         break;
  49010.       } else if (($26 | 0) == 1471) {
  49011.         var $47 = $a_addr;
  49012.         if (($47 | 0) == 1489) {
  49013.           HEAP[$ab_addr] = 64332;
  49014.           $found = 1;
  49015.           break;
  49016.         } else if (($47 | 0) == 1499) {
  49017.           HEAP[$ab_addr] = 64333;
  49018.           $found = 1;
  49019.           break;
  49020.         } else if (($47 | 0) == 1508) {
  49021.           HEAP[$ab_addr] = 64334;
  49022.           $found = 1;
  49023.           break;
  49024.         } else {
  49025.           break;
  49026.         }
  49027.       } else if (($26 | 0) == 1473) {
  49028.         if (($a_addr | 0) == 1513) {
  49029.           HEAP[$ab_addr] = 64298;
  49030.           $found = 1;
  49031.           break;
  49032.         }
  49033.         if (($a_addr | 0) != 64329) {
  49034.           break;
  49035.         }
  49036.         HEAP[$ab_addr] = 64300;
  49037.         $found = 1;
  49038.         break;
  49039.       } else {
  49040.         break;
  49041.       }
  49042.     }
  49043.   } while (0);
  49044.   STACKTOP = __stackBase__;
  49045.   return $found & 1;
  49046. }
  49047. function __ZL22collect_features_indicP21hb_ot_shape_planner_t($plan) {
  49048.   var __stackBase__ = STACKTOP;
  49049.   STACKTOP = STACKTOP + 16 | 0;
  49050.   var $l_addr_i1 = __stackBase__;
  49051.   var $r_addr_i2 = __stackBase__ + 4;
  49052.   var $l_addr_i = __stackBase__ + 8;
  49053.   var $r_addr_i = __stackBase__ + 12;
  49054.   var $map;
  49055.   var $i;
  49056.   $map = $plan + 28 | 0;
  49057.   __ZN19hb_ot_map_builder_t14add_gsub_pauseEPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($map, 96);
  49058.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1819239276);
  49059.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1667460464);
  49060.   $i = 0;
  49061.   __ZN19hb_ot_map_builder_t14add_gsub_pauseEPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($map, 174);
  49062.   var $5 = $map;
  49063.   L285 : do {
  49064.     if ($i >>> 0 < 12) {
  49065.       var $10 = $5;
  49066.       while (1) {
  49067.         var $10;
  49068.         var $12 = HEAP[($i << 3) + 132240 | 0];
  49069.         HEAP[$l_addr_i] = HEAP[($i << 3) + 132244 | 0];
  49070.         HEAP[$r_addr_i] = 4;
  49071.         __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($10, $12, 1, HEAP[$r_addr_i] | HEAP[$l_addr_i]);
  49072.         __ZN19hb_ot_map_builder_t14add_gsub_pauseEPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($map, 0);
  49073.         var $inc = $i + 1 | 0;
  49074.         $i = $inc;
  49075.         var $19 = $map;
  49076.         if ($inc >>> 0 < 12) {
  49077.           var $10 = $19;
  49078.         } else {
  49079.           var $_lcssa = $19;
  49080.           break L285;
  49081.         }
  49082.       }
  49083.     } else {
  49084.       var $_lcssa = $5;
  49085.     }
  49086.   } while (0);
  49087.   var $_lcssa;
  49088.   __ZN19hb_ot_map_builder_t14add_gsub_pauseEPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE($_lcssa, 120);
  49089.   if ($i >>> 0 >= 21) {
  49090.     STACKTOP = __stackBase__;
  49091.     return;
  49092.   }
  49093.   while (1) {
  49094.     var $26 = HEAP[($i << 3) + 132240 | 0];
  49095.     HEAP[$l_addr_i1] = HEAP[($i << 3) + 132244 | 0];
  49096.     HEAP[$r_addr_i2] = 4;
  49097.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($map, $26, 1, HEAP[$r_addr_i2] | HEAP[$l_addr_i1]);
  49098.     var $inc12 = $i + 1 | 0;
  49099.     $i = $inc12;
  49100.     if ($inc12 >>> 0 >= 21) {
  49101.       break;
  49102.     }
  49103.   }
  49104.   STACKTOP = __stackBase__;
  49105.   return;
  49106. }
  49107. function __ZL23override_features_indicP21hb_ot_shape_planner_t($plan) {
  49108.   var __stackBase__ = STACKTOP;
  49109.   STACKTOP = STACKTOP + 12 | 0;
  49110.   var $u_i_i = __stackBase__;
  49111.   var $c_i_i = __stackBase__ + 4;
  49112.   var $plan_addr;
  49113.   var $tmp = __stackBase__ + 8;
  49114.   $plan_addr = $plan;
  49115.   if ((HEAP[104720] | 0) == 0) {
  49116.     HEAP[$u_i_i] = 0;
  49117.     var $3 = $u_i_i;
  49118.     HEAP[$3] = HEAP[$3] & -2 | 1;
  49119.     var $call_i_i = _getenv(102488);
  49120.     HEAP[$c_i_i] = $call_i_i;
  49121.     if ((HEAP[$c_i_i] | 0) != 0) {
  49122.       var $9 = (_strstr(HEAP[$c_i_i], 103336) | 0) != 0;
  49123.     } else {
  49124.       var $9 = 0;
  49125.     }
  49126.     var $9;
  49127.     var $10 = $u_i_i;
  49128.     HEAP[$10] = ($9 & 1) << 1 | HEAP[$10] & -3;
  49129.     var $16 = $u_i_i;
  49130.     HEAP[104720] = HEAP[$16];
  49131.     HEAP[104721] = HEAP[$16 + 1];
  49132.     HEAP[104722] = HEAP[$16 + 2];
  49133.     HEAP[104723] = HEAP[$16 + 3];
  49134.   }
  49135.   var $19 = $tmp;
  49136.   HEAP[$19] = HEAP[104720];
  49137.   HEAP[$19 + 1] = HEAP[104721];
  49138.   HEAP[$19 + 2] = HEAP[104722];
  49139.   HEAP[$19 + 3] = HEAP[104723];
  49140.   if (((HEAP[$tmp] >>> 1 & 1) << 31 >> 31 | 0) == 0) {
  49141.     var $25 = $plan_addr;
  49142.     var $map1 = $25 + 28 | 0;
  49143.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($map1, 1818847073, 0, 1);
  49144.     STACKTOP = __stackBase__;
  49145.     return;
  49146.   }
  49147.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($plan_addr + 28 | 0, 1801810542, 0, 1);
  49148.   var $25 = $plan_addr;
  49149.   var $map1 = $25 + 28 | 0;
  49150.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($map1, 1818847073, 0, 1);
  49151.   STACKTOP = __stackBase__;
  49152.   return;
  49153. }
  49154. function __ZL17data_create_indicPK18hb_ot_shape_plan_t($plan) {
  49155.   var label = 0;
  49156.   var __stackBase__ = STACKTOP;
  49157.   STACKTOP = STACKTOP + 8 | 0;
  49158.   var $l_addr_i = __stackBase__;
  49159.   var $r_addr_i = __stackBase__ + 4;
  49160.   var $retval;
  49161.   var $plan_addr;
  49162.   var $indic_plan;
  49163.   var $i;
  49164.   var $i16;
  49165.   $plan_addr = $plan;
  49166.   $indic_plan = _calloc(1, 128);
  49167.   if (($indic_plan | 0) == 0) {
  49168.     $retval = 0;
  49169.     var $41 = $retval;
  49170.     STACKTOP = __stackBase__;
  49171.     return $41;
  49172.   }
  49173.   HEAP[$indic_plan | 0] = 134560;
  49174.   $i = 1;
  49175.   while (1) {
  49176.     var $7 = $i;
  49177.     if ((HEAP[$plan_addr + 4 | 0] | 0) == (HEAP[($i * 24 & -1) + 134560 | 0] | 0)) {
  49178.       label = 236;
  49179.       break;
  49180.     }
  49181.     var $inc = $7 + 1 | 0;
  49182.     $i = $inc;
  49183.     if ($inc >>> 0 >= 12) {
  49184.       break;
  49185.     }
  49186.   }
  49187.   if (label == 236) {
  49188.     HEAP[$indic_plan | 0] = ($7 * 24 & -1) + 134560 | 0;
  49189.   }
  49190.   if (HEAP[HEAP[$indic_plan | 0] + 4 | 0] & 1) {
  49191.     var $14 = (HEAP[$plan_addr + 24 | 0] & 255 | 0) != 50;
  49192.   } else {
  49193.     var $14 = 0;
  49194.   }
  49195.   var $14;
  49196.   HEAP[$indic_plan + 4 | 0] = $14 & 1;
  49197.   HEAP[$indic_plan + 8 | 0] = -1;
  49198.   __ZN26would_substitute_feature_t4initEPK11hb_ot_map_tj($indic_plan + 12 | 0, $plan_addr + 24 | 0, 1919969382);
  49199.   __ZN26would_substitute_feature_t4initEPK11hb_ot_map_tj($indic_plan + 20 | 0, $plan_addr + 24 | 0, 1886545254);
  49200.   __ZN26would_substitute_feature_t4initEPK11hb_ot_map_tj($indic_plan + 28 | 0, $plan_addr + 24 | 0, 1651275622);
  49201.   __ZN26would_substitute_feature_t4initEPK11hb_ot_map_tj($indic_plan + 36 | 0, $plan_addr + 24 | 0, 1886614630);
  49202.   $i16 = 0;
  49203.   while (1) {
  49204.     HEAP[$l_addr_i] = HEAP[($i16 << 3) + 132244 | 0];
  49205.     HEAP[$r_addr_i] = 1;
  49206.     if ((HEAP[$r_addr_i] & HEAP[$l_addr_i] | 0) != 0) {
  49207.       var $cond = 0;
  49208.     } else {
  49209.       var $cond = __ZNK11hb_ot_map_t10get_1_maskEj($plan_addr + 24 | 0, HEAP[($i16 << 3) + 132240 | 0]);
  49210.     }
  49211.     var $cond;
  49212.     HEAP[($i16 << 2) + $indic_plan + 44 | 0] = $cond;
  49213.     var $inc30 = $i16 + 1 | 0;
  49214.     $i16 = $inc30;
  49215.     if ($inc30 >>> 0 >= 21) {
  49216.       break;
  49217.     }
  49218.   }
  49219.   $retval = $indic_plan;
  49220.   var $41 = $retval;
  49221.   STACKTOP = __stackBase__;
  49222.   return $41;
  49223. }
  49224. function __ZL18data_destroy_indicPv($data) {
  49225.   _free($data);
  49226.   return;
  49227. }
  49228. function __ZL15decompose_indicPK31hb_ot_shape_normalize_context_tjPjS2_($c, $ab, $a, $b) {
  49229.   var label = 0;
  49230.   var __stackBase__ = STACKTOP;
  49231.   STACKTOP = STACKTOP + 61 | 0;
  49232.   var $this_addr_i2 = __stackBase__;
  49233.   var $unicode_addr_i = __stackBase__ + 4;
  49234.   var $variation_selector_addr_i = __stackBase__ + 8;
  49235.   var $glyph_addr_i = __stackBase__ + 12;
  49236.   var $u_i_i = __stackBase__ + 16;
  49237.   var $c_i_i = __stackBase__ + 20;
  49238.   var $this_addr_i = __stackBase__ + 24;
  49239.   var $ab_addr_i = __stackBase__ + 28;
  49240.   var $a_addr_i = __stackBase__ + 32;
  49241.   var $b_addr_i = __stackBase__ + 36;
  49242.   var $retval_i = __stackBase__ + 40;
  49243.   var $u_addr_i = __stackBase__ + 41;
  49244.   var $lo_addr_i = __stackBase__ + 45;
  49245.   var $hi_addr_i = __stackBase__ + 49;
  49246.   var $retval;
  49247.   var $c_addr;
  49248.   var $ab_addr;
  49249.   var $a_addr;
  49250.   var $b_addr;
  49251.   var $indic_plan;
  49252.   var $glyph = __stackBase__ + 53;
  49253.   var $tmp = __stackBase__ + 57;
  49254.   $c_addr = $c;
  49255.   $ab_addr = $ab;
  49256.   $a_addr = $a;
  49257.   $b_addr = $b;
  49258.   var $0 = $ab_addr;
  49259.   if (($0 | 0) == 6080) {
  49260.     HEAP[$a_addr] = 6081;
  49261.     HEAP[$b_addr] = 6080;
  49262.     $retval = 1;
  49263.     var $133 = $retval;
  49264.     STACKTOP = __stackBase__;
  49265.     return $133;
  49266.   } else if (($0 | 0) == 6438) {
  49267.     HEAP[$a_addr] = 6432;
  49268.     HEAP[$b_addr] = 6436;
  49269.     $retval = 1;
  49270.     var $133 = $retval;
  49271.     STACKTOP = __stackBase__;
  49272.     return $133;
  49273.   } else if (($0 | 0) == 6972) {
  49274.     HEAP[$a_addr] = 6978;
  49275.     HEAP[$b_addr] = 6972;
  49276.     $retval = 1;
  49277.     var $133 = $retval;
  49278.     STACKTOP = __stackBase__;
  49279.     return $133;
  49280.   } else if (($0 | 0) == 3961) {
  49281.     HEAP[$a_addr] = 4019;
  49282.     HEAP[$b_addr] = 3969;
  49283.     $retval = 1;
  49284.     var $133 = $retval;
  49285.     STACKTOP = __stackBase__;
  49286.     return $133;
  49287.   } else if (($0 | 0) == 69934) {
  49288.     HEAP[$a_addr] = 69927;
  49289.     HEAP[$b_addr] = 69937;
  49290.     $retval = 1;
  49291.     var $133 = $retval;
  49292.     STACKTOP = __stackBase__;
  49293.     return $133;
  49294.   } else if (($0 | 0) == 69935) {
  49295.     HEAP[$a_addr] = 69927;
  49296.     HEAP[$b_addr] = 69938;
  49297.     $retval = 1;
  49298.     var $133 = $retval;
  49299.     STACKTOP = __stackBase__;
  49300.     return $133;
  49301.   } else if (($0 | 0) == 2964) {
  49302.     $retval = 0;
  49303.     var $133 = $retval;
  49304.     STACKTOP = __stackBase__;
  49305.     return $133;
  49306.   } else if (($0 | 0) == 3959) {
  49307.     HEAP[$a_addr] = 4018;
  49308.     HEAP[$b_addr] = 3969;
  49309.     $retval = 1;
  49310.     var $133 = $retval;
  49311.     STACKTOP = __stackBase__;
  49312.     return $133;
  49313.   } else if (($0 | 0) == 6084) {
  49314.     HEAP[$a_addr] = 6081;
  49315.     HEAP[$b_addr] = 6084;
  49316.     $retval = 1;
  49317.     var $133 = $retval;
  49318.     STACKTOP = __stackBase__;
  49319.     return $133;
  49320.   } else if (($0 | 0) == 6085) {
  49321.     HEAP[$a_addr] = 6081;
  49322.     HEAP[$b_addr] = 6085;
  49323.     $retval = 1;
  49324.     var $133 = $retval;
  49325.     STACKTOP = __stackBase__;
  49326.     return $133;
  49327.   } else if (($0 | 0) == 6079) {
  49328.     HEAP[$a_addr] = 6081;
  49329.     HEAP[$b_addr] = 6079;
  49330.     $retval = 1;
  49331.     var $133 = $retval;
  49332.     STACKTOP = __stackBase__;
  49333.     return $133;
  49334.   } else if (($0 | 0) == 2353) {
  49335.     $retval = 0;
  49336.     var $133 = $retval;
  49337.     STACKTOP = __stackBase__;
  49338.     return $133;
  49339.   } else if (($0 | 0) == 6437) {
  49340.     HEAP[$a_addr] = 6432;
  49341.     HEAP[$b_addr] = 6435;
  49342.     $retval = 1;
  49343.     var $133 = $retval;
  49344.     STACKTOP = __stackBase__;
  49345.     return $133;
  49346.   } else if (($0 | 0) == 6078) {
  49347.     HEAP[$a_addr] = 6081;
  49348.     HEAP[$b_addr] = 6078;
  49349.     $retval = 1;
  49350.     var $133 = $retval;
  49351.     STACKTOP = __stackBase__;
  49352.     return $133;
  49353.   } else {
  49354.     do {
  49355.       if (($ab_addr | 0) == 3546) {
  49356.         label = 273;
  49357.       } else {
  49358.         HEAP[$u_addr_i] = $ab_addr;
  49359.         HEAP[$lo_addr_i] = 3548;
  49360.         HEAP[$hi_addr_i] = 3550;
  49361.         do {
  49362.           if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$lo_addr_i] | 0) == 0) {
  49363.             if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$hi_addr_i] | 0) != (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i] | 0)) {
  49364.               label = 269;
  49365.               break;
  49366.             }
  49367.             if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) + 1 & (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) | 0) != 0) {
  49368.               label = 269;
  49369.               break;
  49370.             }
  49371.             var $cmp12_i = ((HEAP[$lo_addr_i] ^ -1 ^ HEAP[$hi_addr_i]) & HEAP[$u_addr_i] | 0) == (HEAP[$lo_addr_i] | 0);
  49372.             HEAP[$retval_i] = $cmp12_i;
  49373.             var $52 = $cmp12_i;
  49374.             break;
  49375.           } else {
  49376.             label = 269;
  49377.           }
  49378.         } while (0);
  49379.         if (label == 269) {
  49380.           if (HEAP[$lo_addr_i] >>> 0 <= HEAP[$u_addr_i] >>> 0) {
  49381.             var $51 = HEAP[$u_addr_i] >>> 0 <= HEAP[$hi_addr_i] >>> 0;
  49382.           } else {
  49383.             var $51 = 0;
  49384.           }
  49385.           var $51;
  49386.           HEAP[$retval_i] = $51;
  49387.           var $52 = $51;
  49388.         }
  49389.         var $52;
  49390.         if ($52) {
  49391.           label = 273;
  49392.           break;
  49393.         } else {
  49394.           break;
  49395.         }
  49396.       }
  49397.     } while (0);
  49398.     do {
  49399.       if (label == 273) {
  49400.         $indic_plan = HEAP[HEAP[$c_addr | 0] + 916 | 0];
  49401.         if ((HEAP[104720] | 0) == 0) {
  49402.           HEAP[$u_i_i] = 0;
  49403.           var $64 = $u_i_i;
  49404.           HEAP[$64] = HEAP[$64] & -2 | 1;
  49405.           var $call_i_i = _getenv(102488);
  49406.           HEAP[$c_i_i] = $call_i_i;
  49407.           if ((HEAP[$c_i_i] | 0) != 0) {
  49408.             var $70 = (_strstr(HEAP[$c_i_i], 103336) | 0) != 0;
  49409.           } else {
  49410.             var $70 = 0;
  49411.           }
  49412.           var $70;
  49413.           var $71 = $u_i_i;
  49414.           HEAP[$71] = ($70 & 1) << 1 | HEAP[$71] & -3;
  49415.           var $77 = $u_i_i;
  49416.           HEAP[104720] = HEAP[$77];
  49417.           HEAP[104721] = HEAP[$77 + 1];
  49418.           HEAP[104722] = HEAP[$77 + 2];
  49419.           HEAP[104723] = HEAP[$77 + 3];
  49420.         }
  49421.         var $80 = $tmp;
  49422.         HEAP[$80] = HEAP[104720];
  49423.         HEAP[$80 + 1] = HEAP[104721];
  49424.         HEAP[$80 + 2] = HEAP[104722];
  49425.         HEAP[$80 + 3] = HEAP[104723];
  49426.         if (((HEAP[$tmp] >>> 1 & 1) << 31 >> 31 | 0) == 0) {
  49427.           HEAP[$this_addr_i2] = HEAP[$c_addr + 8 | 0];
  49428.           HEAP[$unicode_addr_i] = $ab_addr;
  49429.           HEAP[$variation_selector_addr_i] = 0;
  49430.           HEAP[$glyph_addr_i] = $glyph;
  49431.           var $this1_i3 = HEAP[$this_addr_i2];
  49432.           HEAP[HEAP[$glyph_addr_i]] = 0;
  49433.           if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i3 + 72 | 0] + 48 | 0]]($this1_i3, HEAP[$this1_i3 + 76 | 0], HEAP[$unicode_addr_i], HEAP[$variation_selector_addr_i], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i3 + 72 | 0] + 92 | 0]) | 0) == 0) {
  49434.             break;
  49435.           }
  49436.           if (!__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t($indic_plan + 36 | 0, $glyph, 1, 1, HEAP[HEAP[$c_addr + 8 | 0] + 52 | 0])) {
  49437.             break;
  49438.           }
  49439.         }
  49440.         HEAP[$a_addr] = 3545;
  49441.         HEAP[$b_addr] = $ab_addr;
  49442.         $retval = 1;
  49443.         var $133 = $retval;
  49444.         STACKTOP = __stackBase__;
  49445.         return $133;
  49446.       }
  49447.     } while (0);
  49448.     HEAP[$this_addr_i] = HEAP[$c_addr + 12 | 0];
  49449.     HEAP[$ab_addr_i] = $ab_addr;
  49450.     HEAP[$a_addr_i] = $a_addr;
  49451.     HEAP[$b_addr_i] = $b_addr;
  49452.     var $this1_i = HEAP[$this_addr_i];
  49453.     HEAP[HEAP[$a_addr_i]] = HEAP[$ab_addr_i];
  49454.     HEAP[HEAP[$b_addr_i]] = 0;
  49455.     $retval = (FUNCTION_TABLE[HEAP[$this1_i + 76 | 0]]($this1_i, HEAP[$ab_addr_i], HEAP[$a_addr_i], HEAP[$b_addr_i], HEAP[$this1_i + 108 | 0]) | 0) != 0;
  49456.     var $133 = $retval;
  49457.     STACKTOP = __stackBase__;
  49458.     return $133;
  49459.   }
  49460. }
  49461. function __ZL13compose_indicPK31hb_ot_shape_normalize_context_tjjPj($c, $a, $b, $ab) {
  49462.   var label = 0;
  49463.   var __stackBase__ = STACKTOP;
  49464.   STACKTOP = STACKTOP + 28 | 0;
  49465.   var $retval_i = __stackBase__;
  49466.   var $this_addr_i1 = __stackBase__ + 4;
  49467.   var $a_addr_i = __stackBase__ + 8;
  49468.   var $b_addr_i = __stackBase__ + 12;
  49469.   var $ab_addr_i = __stackBase__ + 16;
  49470.   var $this_addr_i = __stackBase__ + 20;
  49471.   var $unicode_addr_i = __stackBase__ + 24;
  49472.   var $retval;
  49473.   var $c_addr;
  49474.   var $a_addr;
  49475.   var $b_addr;
  49476.   var $ab_addr;
  49477.   $c_addr = $c;
  49478.   $a_addr = $a;
  49479.   $b_addr = $b;
  49480.   $ab_addr = $ab;
  49481.   HEAP[$this_addr_i] = HEAP[$c_addr + 12 | 0];
  49482.   HEAP[$unicode_addr_i] = $a_addr;
  49483.   var $this1_i = HEAP[$this_addr_i];
  49484.   if ((1 << FUNCTION_TABLE[HEAP[$this1_i + 60 | 0]]($this1_i, HEAP[$unicode_addr_i], HEAP[$this1_i + 92 | 0]) & 7168 | 0) != 0) {
  49485.     $retval = 0;
  49486.     var $37 = $retval;
  49487.     STACKTOP = __stackBase__;
  49488.     return $37;
  49489.   }
  49490.   do {
  49491.     if (($a_addr | 0) == 2479) {
  49492.       if (($b_addr | 0) != 2492) {
  49493.         break;
  49494.       }
  49495.       HEAP[$ab_addr] = 2527;
  49496.       $retval = 1;
  49497.       var $37 = $retval;
  49498.       STACKTOP = __stackBase__;
  49499.       return $37;
  49500.     }
  49501.   } while (0);
  49502.   HEAP[$this_addr_i1] = HEAP[$c_addr + 12 | 0];
  49503.   HEAP[$a_addr_i] = $a_addr;
  49504.   HEAP[$b_addr_i] = $b_addr;
  49505.   HEAP[$ab_addr_i] = $ab_addr;
  49506.   var $this1_i2 = HEAP[$this_addr_i1];
  49507.   HEAP[HEAP[$ab_addr_i]] = 0;
  49508.   do {
  49509.     if ((HEAP[$a_addr_i] | 0) != 0) {
  49510.       if ((HEAP[$b_addr_i] | 0) == 0) {
  49511.         label = 306;
  49512.         break;
  49513.       }
  49514.       var $call_i5 = FUNCTION_TABLE[HEAP[$this1_i2 + 72 | 0]]($this1_i2, HEAP[$a_addr_i], HEAP[$b_addr_i], HEAP[$ab_addr_i], HEAP[$this1_i2 + 104 | 0]);
  49515.       HEAP[$retval_i] = $call_i5;
  49516.       break;
  49517.     } else {
  49518.       label = 306;
  49519.     }
  49520.   } while (0);
  49521.   if (label == 306) {
  49522.     HEAP[$retval_i] = 0;
  49523.   }
  49524.   $retval = (HEAP[$retval_i] | 0) != 0;
  49525.   var $37 = $retval;
  49526.   STACKTOP = __stackBase__;
  49527.   return $37;
  49528. }
  49529. function __ZL17setup_masks_indicPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t($plan, $buffer, $font) {
  49530.   var $buffer_addr;
  49531.   var $count;
  49532.   var $i;
  49533.   $buffer_addr = $buffer;
  49534.   __ZN11hb_buffer_t12allocate_varEjjPKc($buffer_addr, 6, 1, 102776);
  49535.   __ZN11hb_buffer_t12allocate_varEjjPKc($buffer_addr, 7, 1, 103760);
  49536.   $count = HEAP[$buffer_addr + 84 | 0];
  49537.   $i = 0;
  49538.   if ($i >>> 0 >= $count >>> 0) {
  49539.     return;
  49540.   }
  49541.   while (1) {
  49542.     __ZL20set_indic_propertiesR15hb_glyph_info_t(HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0);
  49543.     $i = $i + 1 | 0;
  49544.     if ($i >>> 0 >= $count >>> 0) {
  49545.       break;
  49546.     }
  49547.   }
  49548.   return;
  49549. }
  49550. function __ZL20set_indic_propertiesR15hb_glyph_info_t($info) {
  49551.   var label = 0;
  49552.   var __stackBase__ = STACKTOP;
  49553.   STACKTOP = STACKTOP + 59 | 0;
  49554.   var $retval_i17 = __stackBase__;
  49555.   var $u_addr_i18 = __stackBase__ + 1;
  49556.   var $lo_addr_i19 = __stackBase__ + 5;
  49557.   var $hi_addr_i20 = __stackBase__ + 9;
  49558.   var $info_addr_i = __stackBase__ + 13;
  49559.   var $retval_i10 = __stackBase__ + 17;
  49560.   var $u_addr_i11 = __stackBase__ + 21;
  49561.   var $retval_i6 = __stackBase__ + 25;
  49562.   var $u_addr_i7 = __stackBase__ + 26;
  49563.   var $i_i = __stackBase__ + 30;
  49564.   var $retval_i1 = __stackBase__ + 34;
  49565.   var $u_addr_i2 = __stackBase__ + 38;
  49566.   var $side_addr_i = __stackBase__ + 42;
  49567.   var $retval_i = __stackBase__ + 46;
  49568.   var $u_addr_i = __stackBase__ + 47;
  49569.   var $lo_addr_i = __stackBase__ + 51;
  49570.   var $hi_addr_i = __stackBase__ + 55;
  49571.   var $info_addr;
  49572.   var $u;
  49573.   var $type;
  49574.   var $cat;
  49575.   var $pos;
  49576.   $info_addr = $info;
  49577.   $u = HEAP[$info_addr | 0];
  49578.   $type = __Z23hb_indic_get_categoriesj($u) & 65535;
  49579.   $cat = $type & 127;
  49580.   $pos = $type >>> 8;
  49581.   HEAP[$u_addr_i] = $u;
  49582.   HEAP[$lo_addr_i] = 2385;
  49583.   HEAP[$hi_addr_i] = 2388;
  49584.   do {
  49585.     if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$lo_addr_i] | 0) == 0) {
  49586.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$hi_addr_i] | 0) != (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i] | 0)) {
  49587.         label = 322;
  49588.         break;
  49589.       }
  49590.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) + 1 & (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) | 0) != 0) {
  49591.         label = 322;
  49592.         break;
  49593.       }
  49594.       var $cmp12_i = ((HEAP[$lo_addr_i] ^ -1 ^ HEAP[$hi_addr_i]) & HEAP[$u_addr_i] | 0) == (HEAP[$lo_addr_i] | 0);
  49595.       HEAP[$retval_i] = $cmp12_i;
  49596.       var $31 = $cmp12_i;
  49597.       break;
  49598.     } else {
  49599.       label = 322;
  49600.     }
  49601.   } while (0);
  49602.   if (label == 322) {
  49603.     if (HEAP[$lo_addr_i] >>> 0 <= HEAP[$u_addr_i] >>> 0) {
  49604.       var $30 = HEAP[$u_addr_i] >>> 0 <= HEAP[$hi_addr_i] >>> 0;
  49605.     } else {
  49606.       var $30 = 0;
  49607.     }
  49608.     var $30;
  49609.     HEAP[$retval_i] = $30;
  49610.     var $31 = $30;
  49611.   }
  49612.   var $31;
  49613.   if ($31) {
  49614.     $cat = 9;
  49615.   }
  49616.   do {
  49617.     if (($u | 0) == 6097) {
  49618.       $cat = 0;
  49619.       label = 330;
  49620.       break;
  49621.     } else {
  49622.       if (($cat | 0) == 0) {
  49623.         label = 330;
  49624.         break;
  49625.       } else {
  49626.         break;
  49627.       }
  49628.     }
  49629.   } while (0);
  49630.   do {
  49631.     if (label == 330) {
  49632.       HEAP[$u_addr_i18] = $u;
  49633.       HEAP[$lo_addr_i19] = 6091;
  49634.       HEAP[$hi_addr_i20] = 6099;
  49635.       do {
  49636.         if (((HEAP[$hi_addr_i20] ^ HEAP[$lo_addr_i19]) & HEAP[$lo_addr_i19] | 0) == 0) {
  49637.           if (((HEAP[$hi_addr_i20] ^ HEAP[$lo_addr_i19]) & HEAP[$hi_addr_i20] | 0) != (HEAP[$hi_addr_i20] ^ HEAP[$lo_addr_i19] | 0)) {
  49638.             label = 334;
  49639.             break;
  49640.           }
  49641.           if (((HEAP[$hi_addr_i20] ^ HEAP[$lo_addr_i19]) + 1 & (HEAP[$hi_addr_i20] ^ HEAP[$lo_addr_i19]) | 0) != 0) {
  49642.             label = 334;
  49643.             break;
  49644.           }
  49645.           var $cmp12_i38 = ((HEAP[$lo_addr_i19] ^ -1 ^ HEAP[$hi_addr_i20]) & HEAP[$u_addr_i18] | 0) == (HEAP[$lo_addr_i19] | 0);
  49646.           HEAP[$retval_i17] = $cmp12_i38;
  49647.           var $63 = $cmp12_i38;
  49648.           break;
  49649.         } else {
  49650.           label = 334;
  49651.         }
  49652.       } while (0);
  49653.       if (label == 334) {
  49654.         if (HEAP[$lo_addr_i19] >>> 0 <= HEAP[$u_addr_i18] >>> 0) {
  49655.           var $62 = HEAP[$u_addr_i18] >>> 0 <= HEAP[$hi_addr_i20] >>> 0;
  49656.         } else {
  49657.           var $62 = 0;
  49658.         }
  49659.         var $62;
  49660.         HEAP[$retval_i17] = $62;
  49661.         var $63 = $62;
  49662.       }
  49663.       var $63;
  49664.       if (!$63) {
  49665.         break;
  49666.       }
  49667.       $cat = 7;
  49668.       $pos = 6;
  49669.     }
  49670.   } while (0);
  49671.   var $68 = $u;
  49672.   if (($68 | 0) == 6086) {
  49673.     $cat = 3;
  49674.     var $69 = $u;
  49675.   } else {
  49676.     var $69 = $68;
  49677.   }
  49678.   var $69;
  49679.   do {
  49680.     if (($69 | 0) == 6098) {
  49681.       $cat = 14;
  49682.     } else {
  49683.       if (($u | 0) == 8204) {
  49684.         $cat = 5;
  49685.         break;
  49686.       }
  49687.       if (($u | 0) == 8205) {
  49688.         $cat = 6;
  49689.         break;
  49690.       }
  49691.       if (($u | 0) == 9676) {
  49692.         $cat = 12;
  49693.         break;
  49694.       }
  49695.       if (($u | 0) == 2673) {
  49696.         $cat = 8;
  49697.         break;
  49698.       }
  49699.       if (($cat | 0) != 15) {
  49700.         break;
  49701.       }
  49702.       HEAP[$info_addr_i] = $info_addr;
  49703.       if ((HEAP[HEAP[$info_addr_i] + 16 | 0] & 31 | 0) != 12) {
  49704.         break;
  49705.       }
  49706.       $cat = 3;
  49707.     }
  49708.   } while (0);
  49709.   do {
  49710.     if ((1 << $cat & 202758 | 0) != 0) {
  49711.       HEAP[$u_addr_i11] = $u;
  49712.       if ((HEAP[$u_addr_i11] & -128 | 0) == 6016) {
  49713.         HEAP[$retval_i10] = 8;
  49714.       } else {
  49715.         HEAP[$retval_i10] = 4;
  49716.       }
  49717.       $pos = HEAP[$retval_i10];
  49718.       HEAP[$u_addr_i7] = $u;
  49719.       HEAP[$i_i] = 0;
  49720.       while (1) {
  49721.         if ((HEAP[$u_addr_i7] | 0) == (HEAP[(HEAP[$i_i] << 2) + 112128 | 0] | 0)) {
  49722.           label = 362;
  49723.           break;
  49724.         }
  49725.         var $inc_i = HEAP[$i_i] + 1 | 0;
  49726.         HEAP[$i_i] = $inc_i;
  49727.         if ($inc_i >>> 0 >= 12) {
  49728.           label = 361;
  49729.           break;
  49730.         }
  49731.       }
  49732.       if (label == 361) {
  49733.         HEAP[$retval_i6] = 0;
  49734.         break;
  49735.       } else if (label == 362) {
  49736.         HEAP[$retval_i6] = 1;
  49737.         $cat = 16;
  49738.         break;
  49739.       }
  49740.     } else {
  49741.       if (($cat | 0) != 7) {
  49742.         if (!(($cat | 0) == 8 | ($cat | 0) == 9)) {
  49743.           break;
  49744.         }
  49745.         $pos = 14;
  49746.         break;
  49747.       }
  49748.       HEAP[$u_addr_i2] = $u;
  49749.       HEAP[$side_addr_i] = $pos;
  49750.       var $107 = HEAP[$side_addr_i];
  49751.       if (($107 | 0) == 3) {
  49752.         HEAP[$retval_i1] = 2;
  49753.       } else if (($107 | 0) == 11) {
  49754.         do {
  49755.           if ((HEAP[$u_addr_i2] & -128 | 0) == 2304) {
  49756.             var $cond63_i = 9;
  49757.           } else {
  49758.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2432) {
  49759.               var $cond63_i = 12;
  49760.               break;
  49761.             }
  49762.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2560) {
  49763.               var $cond63_i = 12;
  49764.               break;
  49765.             }
  49766.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2688) {
  49767.               var $cond63_i = 12;
  49768.               break;
  49769.             }
  49770.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2816) {
  49771.               var $cond63_i = 12;
  49772.               break;
  49773.             }
  49774.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2944) {
  49775.               var $cond63_i = 12;
  49776.               break;
  49777.             }
  49778.             var $115 = HEAP[$u_addr_i2];
  49779.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3072) {
  49780.               var $cond63_i = $115 >>> 0 <= 3138 ? 7 : 9;
  49781.               break;
  49782.             }
  49783.             var $116 = HEAP[$u_addr_i2];
  49784.             if (($115 & -128 | 0) == 3200) {
  49785.               if ($116 >>> 0 < 3267) {
  49786.                 var $118 = 1;
  49787.               } else {
  49788.                 var $118 = HEAP[$u_addr_i2] >>> 0 > 3286;
  49789.               }
  49790.               var $118;
  49791.               var $cond63_i = $118 ? 7 : 9;
  49792.               break;
  49793.             } else {
  49794.               if (($116 & -128 | 0) == 3328) {
  49795.                 var $cond63_i = 12;
  49796.                 break;
  49797.               }
  49798.               if ((HEAP[$u_addr_i2] & -128 | 0) == 3456) {
  49799.                 var $cond63_i = 9;
  49800.                 break;
  49801.               }
  49802.               var $cond63_i = (HEAP[$u_addr_i2] & -128 | 0) == 6016 ? 12 : 9;
  49803.               break;
  49804.             }
  49805.           }
  49806.         } while (0);
  49807.         var $cond63_i;
  49808.         HEAP[$retval_i1] = $cond63_i;
  49809.       } else if (($107 | 0) == 8) {
  49810.         do {
  49811.           if ((HEAP[$u_addr_i2] & -128 | 0) == 2304) {
  49812.             var $cond179_i = 9;
  49813.           } else {
  49814.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2432) {
  49815.               var $cond179_i = 9;
  49816.               break;
  49817.             }
  49818.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2560) {
  49819.               var $cond179_i = 12;
  49820.               break;
  49821.             }
  49822.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2688) {
  49823.               var $cond179_i = 12;
  49824.               break;
  49825.             }
  49826.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2816) {
  49827.               var $cond179_i = 9;
  49828.               break;
  49829.             }
  49830.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2944) {
  49831.               var $cond179_i = 12;
  49832.               break;
  49833.             }
  49834.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3072) {
  49835.               var $cond179_i = 7;
  49836.               break;
  49837.             }
  49838.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3200) {
  49839.               var $cond179_i = 7;
  49840.               break;
  49841.             }
  49842.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3328) {
  49843.               var $cond179_i = 12;
  49844.               break;
  49845.             }
  49846.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3456) {
  49847.               var $cond179_i = 9;
  49848.               break;
  49849.             }
  49850.             var $cond179_i = (HEAP[$u_addr_i2] & -128 | 0) == 6016 ? 12 : 9;
  49851.           }
  49852.         } while (0);
  49853.         var $cond179_i;
  49854.         HEAP[$retval_i1] = $cond179_i;
  49855.       } else if (($107 | 0) == 6) {
  49856.         do {
  49857.           if ((HEAP[$u_addr_i2] & -128 | 0) == 2304) {
  49858.             var $cond115_i = 9;
  49859.           } else {
  49860.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2560) {
  49861.               var $cond115_i = 12;
  49862.               break;
  49863.             }
  49864.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2688) {
  49865.               var $cond115_i = 9;
  49866.               break;
  49867.             }
  49868.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2816) {
  49869.               var $cond115_i = 5;
  49870.               break;
  49871.             }
  49872.             if ((HEAP[$u_addr_i2] & -128 | 0) == 2944) {
  49873.               var $cond115_i = 9;
  49874.               break;
  49875.             }
  49876.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3072) {
  49877.               var $cond115_i = 7;
  49878.               break;
  49879.             }
  49880.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3200) {
  49881.               var $cond115_i = 7;
  49882.               break;
  49883.             }
  49884.             if ((HEAP[$u_addr_i2] & -128 | 0) == 3456) {
  49885.               var $cond115_i = 9;
  49886.               break;
  49887.             }
  49888.             var $cond115_i = (HEAP[$u_addr_i2] & -128 | 0) == 6016 ? 12 : 9;
  49889.           }
  49890.         } while (0);
  49891.         var $cond115_i;
  49892.         HEAP[$retval_i1] = $cond115_i;
  49893.       } else {
  49894.         HEAP[$retval_i1] = HEAP[$side_addr_i];
  49895.       }
  49896.       $pos = HEAP[$retval_i1];
  49897.     }
  49898.   } while (0);
  49899.   if (($u | 0) != 2817) {
  49900.     var $149 = $cat;
  49901.     var $conv56 = $149 & 255;
  49902.     var $150 = $info_addr;
  49903.     var $var2 = $150 + 16 | 0;
  49904.     var $u8 = $var2;
  49905.     var $arrayidx = $u8 + 2 | 0;
  49906.     HEAP[$arrayidx] = $conv56;
  49907.     var $151 = $pos;
  49908.     var $conv57 = $151 & 255;
  49909.     var $152 = $info_addr;
  49910.     var $var258 = $152 + 16 | 0;
  49911.     var $u859 = $var258;
  49912.     var $arrayidx60 = $u859 + 3 | 0;
  49913.     HEAP[$arrayidx60] = $conv57;
  49914.     STACKTOP = __stackBase__;
  49915.     return;
  49916.   }
  49917.   $pos = 7;
  49918.   var $149 = $cat;
  49919.   var $conv56 = $149 & 255;
  49920.   var $150 = $info_addr;
  49921.   var $var2 = $150 + 16 | 0;
  49922.   var $u8 = $var2;
  49923.   var $arrayidx = $u8 + 2 | 0;
  49924.   HEAP[$arrayidx] = $conv56;
  49925.   var $151 = $pos;
  49926.   var $conv57 = $151 & 255;
  49927.   var $152 = $info_addr;
  49928.   var $var258 = $152 + 16 | 0;
  49929.   var $u859 = $var258;
  49930.   var $arrayidx60 = $u859 + 3 | 0;
  49931.   HEAP[$arrayidx60] = $conv57;
  49932.   STACKTOP = __stackBase__;
  49933.   return;
  49934. }
  49935. function __ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t($this, $glyphs, $glyphs_count, $zero_context, $face) {
  49936.   var label = 0;
  49937.   var __stackBase__ = STACKTOP;
  49938.   STACKTOP = STACKTOP + 178 | 0;
  49939.   var $X_addr_i_i_i = __stackBase__;
  49940.   var $this_addr_i8_i = __stackBase__ + 4;
  49941.   var $i_addr_i_i = __stackBase__ + 8;
  49942.   var $g_addr_i_i_i_i_i = __stackBase__ + 12;
  49943.   var $this_addr_i1_i_i_i = __stackBase__ + 16;
  49944.   var $g_addr_i2_i_i_i = __stackBase__ + 20;
  49945.   var $this_addr_i_i7_i_i = __stackBase__ + 24;
  49946.   var $g_addr_i_i_i_i = __stackBase__ + 28;
  49947.   var $this_addr_i8_i_i = __stackBase__ + 32;
  49948.   var $g_addr_i_i_i = __stackBase__ + 36;
  49949.   var $this_addr_i_i_i5_i_i_i = __stackBase__ + 40;
  49950.   var $this_addr_i_i6_i_i_i = __stackBase__ + 44;
  49951.   var $this_addr_i7_i_i_i = __stackBase__ + 48;
  49952.   var $this_addr_i_i_i_i_i_i = __stackBase__ + 52;
  49953.   var $this_addr_i_i_i_i_i = __stackBase__ + 56;
  49954.   var $this_addr_i_i_i_i = __stackBase__ + 60;
  49955.   var $retval_i_i_i = __stackBase__ + 64;
  49956.   var $this_addr_i_i1_i = __stackBase__ + 65;
  49957.   var $c_addr_i_i_i = __stackBase__ + 69;
  49958.   var $lookup_type_i_i_i = __stackBase__ + 73;
  49959.   var $count_i_i_i = __stackBase__ + 77;
  49960.   var $i_i_i_i = __stackBase__ + 81;
  49961.   var $r_i_i_i;
  49962.   var $retval_i_i = __stackBase__ + 85;
  49963.   var $this_addr_i2_i = __stackBase__ + 86;
  49964.   var $c_addr_i_i = __stackBase__ + 90;
  49965.   var $digest_addr_i_i = __stackBase__ + 94;
  49966.   var $this_addr_i_i_i = __stackBase__ + 98;
  49967.   var $face__addr_i_i_i = __stackBase__ + 102;
  49968.   var $glyphs__addr_i_i_i = __stackBase__ + 106;
  49969.   var $len__addr_i_i_i = __stackBase__ + 110;
  49970.   var $this_addr_i_i = __stackBase__ + 114;
  49971.   var $face__addr_i_i = __stackBase__ + 118;
  49972.   var $glyphs__addr_i_i = __stackBase__ + 122;
  49973.   var $len__addr_i_i = __stackBase__ + 126;
  49974.   var $retval_i = __stackBase__ + 130;
  49975.   var $face_addr_i = __stackBase__ + 134;
  49976.   var $lookup_index_addr_i = __stackBase__ + 138;
  49977.   var $glyphs_addr_i = __stackBase__ + 142;
  49978.   var $glyphs_length_addr_i = __stackBase__ + 146;
  49979.   var $zero_context_addr_i = __stackBase__ + 150;
  49980.   var $c_i = __stackBase__ + 154;
  49981.   var $l_i = __stackBase__ + 174;
  49982.   var $retval;
  49983.   var $glyphs_addr;
  49984.   var $glyphs_count_addr;
  49985.   var $zero_context_addr;
  49986.   var $face_addr;
  49987.   var $i;
  49988.   $glyphs_addr = $glyphs;
  49989.   $glyphs_count_addr = $glyphs_count;
  49990.   $zero_context_addr = $zero_context & 1;
  49991.   $face_addr = $face;
  49992.   var $this1 = $this;
  49993.   $i = 0;
  49994.   var $count = $this1 + 4 | 0;
  49995.   L533 : do {
  49996.     if ($i >>> 0 < HEAP[$count] >>> 0) {
  49997.       var $lookups = $this1 | 0;
  49998.       while (1) {
  49999.         var $conv = HEAP[($i << 3) + HEAP[$lookups] | 0] & 65535;
  50000.         HEAP[$face_addr_i] = $face_addr;
  50001.         HEAP[$lookup_index_addr_i] = $conv;
  50002.         HEAP[$glyphs_addr_i] = $glyphs_addr;
  50003.         HEAP[$glyphs_length_addr_i] = $glyphs_count_addr;
  50004.         HEAP[$zero_context_addr_i] = $zero_context_addr & 1;
  50005.         if (HEAP[$lookup_index_addr_i] >>> 0 >= HEAP[HEAP[HEAP[$face_addr_i] + 72 | 0] + 24 | 0] >>> 0) {
  50006.           HEAP[$retval_i] = 0;
  50007.           var $167 = 0;
  50008.         } else {
  50009.           var $100 = HEAP[$face_addr_i];
  50010.           var $101 = HEAP[$glyphs_addr_i];
  50011.           var $102 = HEAP[$glyphs_length_addr_i];
  50012.           var $tobool_i = (HEAP[$zero_context_addr_i] | 0) != 0;
  50013.           HEAP[$this_addr_i_i] = $c_i;
  50014.           HEAP[$face__addr_i_i] = $100;
  50015.           HEAP[$glyphs__addr_i_i] = $101;
  50016.           HEAP[$len__addr_i_i] = $102;
  50017.           var $104 = HEAP[$face__addr_i_i];
  50018.           var $105 = HEAP[$glyphs__addr_i_i];
  50019.           var $106 = HEAP[$len__addr_i_i];
  50020.           HEAP[$this_addr_i_i_i] = HEAP[$this_addr_i_i];
  50021.           HEAP[$face__addr_i_i_i] = $104;
  50022.           HEAP[$glyphs__addr_i_i_i] = $105;
  50023.           HEAP[$len__addr_i_i_i] = $106;
  50024.           var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  50025.           HEAP[$this1_i_i_i | 0] = HEAP[$face__addr_i_i_i];
  50026.           HEAP[$this1_i_i_i + 4 | 0] = HEAP[$glyphs__addr_i_i_i];
  50027.           HEAP[$this1_i_i_i + 8 | 0] = HEAP[$len__addr_i_i_i];
  50028.           HEAP[$this1_i_i_i + 12 | 0] = $tobool_i & 1 & 1 & 1;
  50029.           HEAP[$this1_i_i_i + 16 | 0] = 0;
  50030.           var $116 = HEAP[$lookup_index_addr_i];
  50031.           HEAP[$this_addr_i8_i] = HEAP[HEAP[HEAP[$face_addr_i] + 72 | 0] + 16 | 0];
  50032.           HEAP[$i_addr_i_i] = $116;
  50033.           var $call_i_i = __ZNK2OT8GSUBGPOS10get_lookupEj(HEAP[$this_addr_i8_i], HEAP[$i_addr_i_i]);
  50034.           HEAP[$X_addr_i_i_i] = $call_i_i;
  50035.           HEAP[$l_i] = HEAP[$X_addr_i_i_i];
  50036.           var $arrayidx_i = HEAP[HEAP[HEAP[$face_addr_i] + 72 | 0] + 32 | 0] + (HEAP[$lookup_index_addr_i] * 12 & -1) | 0;
  50037.           HEAP[$this_addr_i2_i] = HEAP[$l_i];
  50038.           HEAP[$c_addr_i_i] = $c_i;
  50039.           HEAP[$digest_addr_i_i] = $arrayidx_i;
  50040.           var $this1_i3_i = HEAP[$this_addr_i2_i];
  50041.           L540 : do {
  50042.             if ((HEAP[HEAP[$c_addr_i_i] + 8 | 0] | 0) != 0) {
  50043.               var $133 = HEAP[HEAP[HEAP[$c_addr_i_i] + 4 | 0]];
  50044.               HEAP[$this_addr_i8_i_i] = HEAP[$digest_addr_i_i];
  50045.               HEAP[$g_addr_i_i_i] = $133;
  50046.               var $this1_i9_i_i = HEAP[$this_addr_i8_i_i];
  50047.               var $134 = HEAP[$g_addr_i_i_i];
  50048.               HEAP[$this_addr_i_i7_i_i] = $this1_i9_i_i | 0;
  50049.               HEAP[$g_addr_i_i_i_i] = $134;
  50050.               var $this1_i_i10_i_i = HEAP[$this_addr_i_i7_i_i];
  50051.               do {
  50052.                 if ((HEAP[$this1_i_i10_i_i | 0] & HEAP[$g_addr_i_i_i_i] | 0) == (HEAP[$this1_i_i10_i_i + 4 | 0] | 0)) {
  50053.                   var $138 = HEAP[$g_addr_i_i_i];
  50054.                   HEAP[$this_addr_i1_i_i_i] = $this1_i9_i_i + 8 | 0;
  50055.                   HEAP[$g_addr_i2_i_i_i] = $138;
  50056.                   var $139 = HEAP[HEAP[$this_addr_i1_i_i_i] | 0];
  50057.                   HEAP[$g_addr_i_i_i_i_i] = HEAP[$g_addr_i2_i_i_i];
  50058.                   if ((1 << (HEAP[$g_addr_i_i_i_i_i] & 31) & $139 | 0) == 0) {
  50059.                     break;
  50060.                   }
  50061.                   var $143 = HEAP[$c_addr_i_i];
  50062.                   HEAP[$this_addr_i_i1_i] = $this1_i3_i;
  50063.                   HEAP[$c_addr_i_i_i] = $143;
  50064.                   var $this1_i_i5_i = HEAP[$this_addr_i_i1_i];
  50065.                   HEAP[$this_addr_i_i_i_i] = $this1_i_i5_i;
  50066.                   HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  50067.                   HEAP[$this_addr_i_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i_i] | 0;
  50068.                   var $this1_i_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i_i];
  50069.                   HEAP[$lookup_type_i_i_i] = ((HEAP[$this1_i_i_i_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i_i_i_i + 1 | 0] & 255) & 65535;
  50070.                   HEAP[$this_addr_i7_i_i_i] = $this1_i_i5_i;
  50071.                   HEAP[$this_addr_i_i6_i_i_i] = HEAP[$this_addr_i7_i_i_i] + 4 | 0;
  50072.                   HEAP[$this_addr_i_i_i5_i_i_i] = HEAP[$this_addr_i_i6_i_i_i] | 0;
  50073.                   var $this1_i_i_i11_i_i_i = HEAP[$this_addr_i_i_i5_i_i_i];
  50074.                   HEAP[$count_i_i_i] = ((HEAP[$this1_i_i_i11_i_i_i | 0] & 255) << 8) + (HEAP[$this1_i_i_i11_i_i_i + 1 | 0] & 255) & 65535;
  50075.                   HEAP[$i_i_i_i] = 0;
  50076.                   L546 : do {
  50077.                     if (HEAP[$i_i_i_i] >>> 0 < HEAP[$count_i_i_i] >>> 0) {
  50078.                       while (1) {
  50079.                         $r_i_i_i = __ZNK2OT19SubstLookupSubTable8dispatchINS_24hb_would_apply_context_tEEENT_8return_tEPS3_j(__ZNK2OT11SubstLookup12get_subtableEj($this1_i_i5_i, HEAP[$i_i_i_i]), HEAP[$c_addr_i_i_i], HEAP[$lookup_type_i_i_i]) & 1;
  50080.                         if ($r_i_i_i & 1 & 1) {
  50081.                           break;
  50082.                         }
  50083.                         HEAP[$i_i_i_i] = HEAP[$i_i_i_i] + 1 | 0;
  50084.                         if (HEAP[$i_i_i_i] >>> 0 >= HEAP[$count_i_i_i] >>> 0) {
  50085.                           label = 426;
  50086.                           break L546;
  50087.                         }
  50088.                       }
  50089.                       HEAP[$retval_i_i_i] = $r_i_i_i & 1 & 1;
  50090.                       break;
  50091.                     } else {
  50092.                       label = 426;
  50093.                     }
  50094.                   } while (0);
  50095.                   if (label == 426) {
  50096.                     label = 0;
  50097.                     HEAP[$retval_i_i_i] = 0;
  50098.                   }
  50099.                   HEAP[$retval_i_i] = HEAP[$retval_i_i_i] & 1;
  50100.                   break L540;
  50101.                 }
  50102.               } while (0);
  50103.               HEAP[$retval_i_i] = 0;
  50104.             } else {
  50105.               HEAP[$retval_i_i] = 0;
  50106.             }
  50107.           } while (0);
  50108.           var $conv_i = HEAP[$retval_i_i] & 1;
  50109.           HEAP[$retval_i] = $conv_i;
  50110.           var $167 = $conv_i;
  50111.         }
  50112.         var $167;
  50113.         if (($167 | 0) != 0) {
  50114.           break;
  50115.         }
  50116.         $i = $i + 1 | 0;
  50117.         if ($i >>> 0 >= HEAP[$count] >>> 0) {
  50118.           break L533;
  50119.         }
  50120.       }
  50121.       $retval = 1;
  50122.       var $171 = $retval;
  50123.       STACKTOP = __stackBase__;
  50124.       return $171;
  50125.     }
  50126.   } while (0);
  50127.   $retval = 0;
  50128.   var $171 = $retval;
  50129.   STACKTOP = __stackBase__;
  50130.   return $171;
  50131. }
  50132. function __ZN26would_substitute_feature_t4initEPK11hb_ot_map_tj($this, $map, $feature_tag) {
  50133.   var __stackBase__ = STACKTOP;
  50134.   STACKTOP = STACKTOP + 60 | 0;
  50135.   var $this_addr_i_i1 = __stackBase__;
  50136.   var $i_addr_i_i = __stackBase__ + 4;
  50137.   var $this_addr_i2 = __stackBase__ + 8;
  50138.   var $table_index_addr_i3 = __stackBase__ + 12;
  50139.   var $stage_addr_i = __stackBase__ + 16;
  50140.   var $plookups_addr_i = __stackBase__ + 20;
  50141.   var $lookup_count_addr_i = __stackBase__ + 24;
  50142.   var $start_i = __stackBase__ + 28;
  50143.   var $end_i = __stackBase__ + 32;
  50144.   var $this_addr_i_i = __stackBase__ + 36;
  50145.   var $key_addr_i_i = __stackBase__ + 40;
  50146.   var $this_addr_i = __stackBase__ + 44;
  50147.   var $table_index_addr_i = __stackBase__ + 48;
  50148.   var $feature_tag_addr_i = __stackBase__ + 52;
  50149.   var $map_i = __stackBase__ + 56;
  50150.   var $map_addr;
  50151.   $map_addr = $map;
  50152.   var $this1 = $this;
  50153.   HEAP[$this_addr_i] = $map_addr;
  50154.   HEAP[$table_index_addr_i] = 0;
  50155.   HEAP[$feature_tag_addr_i] = $feature_tag;
  50156.   HEAP[$this_addr_i_i] = HEAP[$this_addr_i] + 16 | 0;
  50157.   HEAP[$key_addr_i_i] = $feature_tag_addr_i;
  50158.   var $this1_i_i = HEAP[$this_addr_i_i];
  50159.   var $14 = _bsearch(HEAP[$key_addr_i_i], HEAP[$this1_i_i + 8 | 0], HEAP[$this1_i_i | 0], 36, 6);
  50160.   HEAP[$map_i] = $14;
  50161.   if ((HEAP[$map_i] | 0) != 0) {
  50162.     var $cond_i = HEAP[(HEAP[$table_index_addr_i] << 2) + HEAP[$map_i] + 12 | 0];
  50163.   } else {
  50164.     var $cond_i = -1;
  50165.   }
  50166.   var $cond_i;
  50167.   HEAP[$this_addr_i2] = $map_addr;
  50168.   HEAP[$table_index_addr_i3] = 0;
  50169.   HEAP[$stage_addr_i] = $cond_i;
  50170.   HEAP[$plookups_addr_i] = $this1 | 0;
  50171.   HEAP[$lookup_count_addr_i] = $this1 + 4 | 0;
  50172.   var $this1_i4 = HEAP[$this_addr_i2];
  50173.   if (($cond_i | 0) == -1) {
  50174.     HEAP[HEAP[$plookups_addr_i]] = 0;
  50175.     HEAP[HEAP[$lookup_count_addr_i]] = 0;
  50176.     var $60 = $this_addr_i2;
  50177.     var $61 = $table_index_addr_i3;
  50178.     var $62 = $stage_addr_i;
  50179.     var $63 = $plookups_addr_i;
  50180.     var $64 = $lookup_count_addr_i;
  50181.     var $65 = $start_i;
  50182.     var $66 = $end_i;
  50183.     STACKTOP = __stackBase__;
  50184.     return;
  50185.   }
  50186.   if (!(HEAP[$stage_addr_i] >>> 0 <= HEAP[$this1_i4 + (HEAP[$table_index_addr_i3] * 20 & -1) + 852 | 0] >>> 0)) {
  50187.     ___assert_func(102968, 113, 105944, 102656);
  50188.   }
  50189.   if ((HEAP[$stage_addr_i] | 0) != 0) {
  50190.     var $num_lookups_i = __ZNK21hb_prealloced_array_tIN11hb_ot_map_t11pause_map_tELj1EEixEj($this1_i4 + (HEAP[$table_index_addr_i3] * 20 & -1) + 852 | 0, HEAP[$stage_addr_i] - 1 | 0) | 0;
  50191.     var $cond_i7 = HEAP[$num_lookups_i];
  50192.   } else {
  50193.     var $cond_i7 = 0;
  50194.   }
  50195.   var $cond_i7;
  50196.   HEAP[$start_i] = $cond_i7;
  50197.   var $44 = HEAP[$table_index_addr_i3];
  50198.   if (HEAP[$stage_addr_i] >>> 0 < HEAP[$this1_i4 + (HEAP[$table_index_addr_i3] * 20 & -1) + 852 | 0] >>> 0) {
  50199.     var $num_lookups16_i = __ZNK21hb_prealloced_array_tIN11hb_ot_map_t11pause_map_tELj1EEixEj($this1_i4 + ($44 * 20 & -1) + 852 | 0, HEAP[$stage_addr_i]) | 0;
  50200.     var $cond21_i = HEAP[$num_lookups16_i];
  50201.   } else {
  50202.     var $cond21_i = HEAP[$this1_i4 + ($44 * 268 & -1) + 316 | 0];
  50203.   }
  50204.   var $cond21_i;
  50205.   HEAP[$end_i] = $cond21_i;
  50206.   var $49 = HEAP[$start_i];
  50207.   HEAP[$this_addr_i_i1] = $this1_i4 + (HEAP[$table_index_addr_i3] * 268 & -1) + 316 | 0;
  50208.   HEAP[$i_addr_i_i] = $49;
  50209.   HEAP[HEAP[$plookups_addr_i]] = (HEAP[$i_addr_i_i] << 3) + HEAP[HEAP[$this_addr_i_i1] + 8 | 0] | 0;
  50210.   HEAP[HEAP[$lookup_count_addr_i]] = HEAP[$end_i] - HEAP[$start_i] | 0;
  50211.   var $60 = $this_addr_i2;
  50212.   var $61 = $table_index_addr_i3;
  50213.   var $62 = $stage_addr_i;
  50214.   var $63 = $plookups_addr_i;
  50215.   var $64 = $lookup_count_addr_i;
  50216.   var $65 = $start_i;
  50217.   var $66 = $end_i;
  50218.   STACKTOP = __stackBase__;
  50219.   return;
  50220. }
  50221. function __ZL15setup_syllablesPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  50222.   var label = 0;
  50223.   var __stackBase__ = STACKTOP;
  50224.   STACKTOP = STACKTOP + 128 | 0;
  50225.   var $buffer_addr_i = __stackBase__;
  50226.   var $p_i = __stackBase__ + 4;
  50227.   var $pe_i = __stackBase__ + 8;
  50228.   var $eof_i = __stackBase__ + 12;
  50229.   var $ts_i = __stackBase__ + 16;
  50230.   var $te_i = __stackBase__ + 20;
  50231.   var $act_i = __stackBase__ + 24;
  50232.   var $cs_i = __stackBase__ + 28;
  50233.   var $info_i = __stackBase__ + 32;
  50234.   var $last_i = __stackBase__ + 36;
  50235.   var $syllable_serial_i = __stackBase__ + 40;
  50236.   var $_slen_i = __stackBase__ + 44;
  50237.   var $_trans_i = __stackBase__ + 48;
  50238.   var $_keys_i = __stackBase__ + 52;
  50239.   var $_inds_i = __stackBase__ + 56;
  50240.   var $i_i = __stackBase__ + 60;
  50241.   var $i59_i = __stackBase__ + 64;
  50242.   var $i82_i = __stackBase__ + 68;
  50243.   var $i106_i = __stackBase__ + 72;
  50244.   var $i130_i = __stackBase__ + 76;
  50245.   var $i153_i = __stackBase__ + 80;
  50246.   var $i176_i = __stackBase__ + 84;
  50247.   var $i200_i = __stackBase__ + 88;
  50248.   var $i224_i = __stackBase__ + 92;
  50249.   var $i248_i = __stackBase__ + 96;
  50250.   var $i272_i = __stackBase__ + 100;
  50251.   var $i295_i = __stackBase__ + 104;
  50252.   var $i319_i = __stackBase__ + 108;
  50253.   var $i343_i = __stackBase__ + 112;
  50254.   var $i368_i = __stackBase__ + 116;
  50255.   var $i391_i = __stackBase__ + 120;
  50256.   var $i415_i = __stackBase__ + 124;
  50257.   HEAP[$buffer_addr_i] = $buffer;
  50258.   HEAP[$info_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0];
  50259.   HEAP[$cs_i] = 170;
  50260.   HEAP[$ts_i] = 0;
  50261.   HEAP[$te_i] = 0;
  50262.   HEAP[$act_i] = 0;
  50263.   HEAP[$p_i] = 0;
  50264.   var $36 = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  50265.   HEAP[$eof_i] = $36;
  50266.   HEAP[$pe_i] = $36;
  50267.   HEAP[$last_i] = 0;
  50268.   HEAP[$syllable_serial_i] = 1;
  50269.   if ((HEAP[$p_i] | 0) == (HEAP[$pe_i] | 0)) {
  50270.     label = 538;
  50271.   } else {
  50272.     label = 452;
  50273.   }
  50274.   while (1) {
  50275.     if (label == 538) {
  50276.       label = 0;
  50277.       if ((HEAP[$p_i] | 0) != (HEAP[$eof_i] | 0)) {
  50278.         label = 542;
  50279.         break;
  50280.       }
  50281.       if ((HEAP[(HEAP[$cs_i] << 1) + 118976 | 0] << 16 >> 16 | 0) <= 0) {
  50282.         label = 543;
  50283.         break;
  50284.       }
  50285.       HEAP[$_trans_i] = (HEAP[(HEAP[$cs_i] << 1) + 118976 | 0] << 16 >> 16) - 1 | 0;
  50286.     } else if (label == 452) {
  50287.       label = 0;
  50288.       if ((HEAP[HEAP[$cs_i] + 112280 | 0] << 24 >> 24 | 0) == 10) {
  50289.         HEAP[$ts_i] = HEAP[$p_i];
  50290.       }
  50291.       HEAP[$_keys_i] = (HEAP[$cs_i] << 1) + 117456 | 0;
  50292.       HEAP[$_inds_i] = (HEAP[(HEAP[$cs_i] << 1) + 114024 | 0] << 16 >> 16 << 1) + 119992 | 0;
  50293.       var $conv6_i = HEAP[HEAP[$cs_i] + 118472 | 0] << 24 >> 24;
  50294.       HEAP[$_slen_i] = $conv6_i;
  50295.       do {
  50296.         if (($conv6_i | 0) > 0) {
  50297.           if (!((HEAP[HEAP[$_keys_i]] & 255 | 0) <= (HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255 | 0))) {
  50298.             label = 458;
  50299.             break;
  50300.           }
  50301.           if (!((HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255 | 0) <= (HEAP[HEAP[$_keys_i] + 1 | 0] & 255 | 0))) {
  50302.             label = 458;
  50303.             break;
  50304.           }
  50305.           var $cond_i = (HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255) - (HEAP[HEAP[$_keys_i]] & 255) | 0;
  50306.           break;
  50307.         } else {
  50308.           label = 458;
  50309.         }
  50310.       } while (0);
  50311.       if (label == 458) {
  50312.         label = 0;
  50313.         var $cond_i = HEAP[$_slen_i];
  50314.       }
  50315.       var $cond_i;
  50316.       HEAP[$_trans_i] = HEAP[($cond_i << 1) + HEAP[$_inds_i] | 0] << 16 >> 16;
  50317.     }
  50318.     HEAP[$cs_i] = HEAP[(HEAP[$_trans_i] << 1) + 115280 | 0] << 16 >> 16;
  50319.     do {
  50320.       if ((HEAP[HEAP[$_trans_i] + 113504 | 0] << 24 >> 24 | 0) != 0) {
  50321.         var $conv40_i = HEAP[HEAP[$_trans_i] + 113504 | 0] << 24 >> 24;
  50322.         if (($conv40_i | 0) == 2) {
  50323.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50324.           break;
  50325.         } else if (($conv40_i | 0) == 14) {
  50326.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50327.           HEAP[$i_i] = HEAP[$last_i];
  50328.           L604 : do {
  50329.             if (HEAP[$i_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50330.               while (1) {
  50331.                 HEAP[HEAP[$info_i] + (HEAP[$i_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  50332.                 HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  50333.                 if (HEAP[$i_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50334.                   break L604;
  50335.                 }
  50336.               }
  50337.             }
  50338.           } while (0);
  50339.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50340.           var $inc52_i = HEAP[$syllable_serial_i] + 1 | 0;
  50341.           HEAP[$syllable_serial_i] = $inc52_i;
  50342.           if (($inc52_i | 0) != 16) {
  50343.             break;
  50344.           }
  50345.           HEAP[$syllable_serial_i] = 1;
  50346.           break;
  50347.         } else if (($conv40_i | 0) == 16) {
  50348.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50349.           HEAP[$i59_i] = HEAP[$last_i];
  50350.           L610 : do {
  50351.             if (HEAP[$i59_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50352.               while (1) {
  50353.                 HEAP[HEAP[$info_i] + (HEAP[$i59_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  50354.                 HEAP[$i59_i] = HEAP[$i59_i] + 1 | 0;
  50355.                 if (HEAP[$i59_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50356.                   break L610;
  50357.                 }
  50358.               }
  50359.             }
  50360.           } while (0);
  50361.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50362.           var $inc74_i = HEAP[$syllable_serial_i] + 1 | 0;
  50363.           HEAP[$syllable_serial_i] = $inc74_i;
  50364.           if (($inc74_i | 0) != 16) {
  50365.             break;
  50366.           }
  50367.           HEAP[$syllable_serial_i] = 1;
  50368.           break;
  50369.         } else if (($conv40_i | 0) == 21) {
  50370.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50371.           HEAP[$i82_i] = HEAP[$last_i];
  50372.           L616 : do {
  50373.             if (HEAP[$i82_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50374.               while (1) {
  50375.                 HEAP[HEAP[$info_i] + (HEAP[$i82_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  50376.                 HEAP[$i82_i] = HEAP[$i82_i] + 1 | 0;
  50377.                 if (HEAP[$i82_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50378.                   break L616;
  50379.                 }
  50380.               }
  50381.             }
  50382.           } while (0);
  50383.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50384.           var $inc98_i = HEAP[$syllable_serial_i] + 1 | 0;
  50385.           HEAP[$syllable_serial_i] = $inc98_i;
  50386.           if (($inc98_i | 0) != 16) {
  50387.             break;
  50388.           }
  50389.           HEAP[$syllable_serial_i] = 1;
  50390.           break;
  50391.         } else if (($conv40_i | 0) == 18) {
  50392.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50393.           HEAP[$i106_i] = HEAP[$last_i];
  50394.           L622 : do {
  50395.             if (HEAP[$i106_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50396.               while (1) {
  50397.                 HEAP[HEAP[$info_i] + (HEAP[$i106_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 3) & 255;
  50398.                 HEAP[$i106_i] = HEAP[$i106_i] + 1 | 0;
  50399.                 if (HEAP[$i106_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50400.                   break L622;
  50401.                 }
  50402.               }
  50403.             }
  50404.           } while (0);
  50405.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50406.           var $inc122_i = HEAP[$syllable_serial_i] + 1 | 0;
  50407.           HEAP[$syllable_serial_i] = $inc122_i;
  50408.           if (($inc122_i | 0) != 16) {
  50409.             break;
  50410.           }
  50411.           HEAP[$syllable_serial_i] = 1;
  50412.           break;
  50413.         } else if (($conv40_i | 0) == 11) {
  50414.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50415.           HEAP[$i130_i] = HEAP[$last_i];
  50416.           L628 : do {
  50417.             if (HEAP[$i130_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50418.               while (1) {
  50419.                 HEAP[HEAP[$info_i] + (HEAP[$i130_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 4) & 255;
  50420.                 HEAP[$i130_i] = HEAP[$i130_i] + 1 | 0;
  50421.                 if (HEAP[$i130_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50422.                   break L628;
  50423.                 }
  50424.               }
  50425.             }
  50426.           } while (0);
  50427.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50428.           var $inc146_i = HEAP[$syllable_serial_i] + 1 | 0;
  50429.           HEAP[$syllable_serial_i] = $inc146_i;
  50430.           if (($inc146_i | 0) != 16) {
  50431.             break;
  50432.           }
  50433.           HEAP[$syllable_serial_i] = 1;
  50434.           break;
  50435.         } else if (($conv40_i | 0) == 13) {
  50436.           HEAP[$te_i] = HEAP[$p_i];
  50437.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  50438.           HEAP[$i153_i] = HEAP[$last_i];
  50439.           L634 : do {
  50440.             if (HEAP[$i153_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50441.               while (1) {
  50442.                 HEAP[HEAP[$info_i] + (HEAP[$i153_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  50443.                 HEAP[$i153_i] = HEAP[$i153_i] + 1 | 0;
  50444.                 if (HEAP[$i153_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50445.                   break L634;
  50446.                 }
  50447.               }
  50448.             }
  50449.           } while (0);
  50450.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50451.           var $inc168_i = HEAP[$syllable_serial_i] + 1 | 0;
  50452.           HEAP[$syllable_serial_i] = $inc168_i;
  50453.           if (($inc168_i | 0) != 16) {
  50454.             break;
  50455.           }
  50456.           HEAP[$syllable_serial_i] = 1;
  50457.           break;
  50458.         } else if (($conv40_i | 0) == 15) {
  50459.           HEAP[$te_i] = HEAP[$p_i];
  50460.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  50461.           HEAP[$i176_i] = HEAP[$last_i];
  50462.           L640 : do {
  50463.             if (HEAP[$i176_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50464.               while (1) {
  50465.                 HEAP[HEAP[$info_i] + (HEAP[$i176_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  50466.                 HEAP[$i176_i] = HEAP[$i176_i] + 1 | 0;
  50467.                 if (HEAP[$i176_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50468.                   break L640;
  50469.                 }
  50470.               }
  50471.             }
  50472.           } while (0);
  50473.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50474.           var $inc192_i = HEAP[$syllable_serial_i] + 1 | 0;
  50475.           HEAP[$syllable_serial_i] = $inc192_i;
  50476.           if (($inc192_i | 0) != 16) {
  50477.             break;
  50478.           }
  50479.           HEAP[$syllable_serial_i] = 1;
  50480.           break;
  50481.         } else if (($conv40_i | 0) == 20) {
  50482.           HEAP[$te_i] = HEAP[$p_i];
  50483.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  50484.           HEAP[$i200_i] = HEAP[$last_i];
  50485.           L646 : do {
  50486.             if (HEAP[$i200_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50487.               while (1) {
  50488.                 HEAP[HEAP[$info_i] + (HEAP[$i200_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  50489.                 HEAP[$i200_i] = HEAP[$i200_i] + 1 | 0;
  50490.                 if (HEAP[$i200_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50491.                   break L646;
  50492.                 }
  50493.               }
  50494.             }
  50495.           } while (0);
  50496.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50497.           var $inc216_i = HEAP[$syllable_serial_i] + 1 | 0;
  50498.           HEAP[$syllable_serial_i] = $inc216_i;
  50499.           if (($inc216_i | 0) != 16) {
  50500.             break;
  50501.           }
  50502.           HEAP[$syllable_serial_i] = 1;
  50503.           break;
  50504.         } else if (($conv40_i | 0) == 17) {
  50505.           HEAP[$te_i] = HEAP[$p_i];
  50506.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  50507.           HEAP[$i224_i] = HEAP[$last_i];
  50508.           L652 : do {
  50509.             if (HEAP[$i224_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50510.               while (1) {
  50511.                 HEAP[HEAP[$info_i] + (HEAP[$i224_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 3) & 255;
  50512.                 HEAP[$i224_i] = HEAP[$i224_i] + 1 | 0;
  50513.                 if (HEAP[$i224_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50514.                   break L652;
  50515.                 }
  50516.               }
  50517.             }
  50518.           } while (0);
  50519.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50520.           var $inc240_i = HEAP[$syllable_serial_i] + 1 | 0;
  50521.           HEAP[$syllable_serial_i] = $inc240_i;
  50522.           if (($inc240_i | 0) != 16) {
  50523.             break;
  50524.           }
  50525.           HEAP[$syllable_serial_i] = 1;
  50526.           break;
  50527.         } else if (($conv40_i | 0) == 19) {
  50528.           HEAP[$te_i] = HEAP[$p_i];
  50529.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  50530.           HEAP[$i248_i] = HEAP[$last_i];
  50531.           L658 : do {
  50532.             if (HEAP[$i248_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50533.               while (1) {
  50534.                 HEAP[HEAP[$info_i] + (HEAP[$i248_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 4) & 255;
  50535.                 HEAP[$i248_i] = HEAP[$i248_i] + 1 | 0;
  50536.                 if (HEAP[$i248_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50537.                   break L658;
  50538.                 }
  50539.               }
  50540.             }
  50541.           } while (0);
  50542.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50543.           var $inc264_i = HEAP[$syllable_serial_i] + 1 | 0;
  50544.           HEAP[$syllable_serial_i] = $inc264_i;
  50545.           if (($inc264_i | 0) != 16) {
  50546.             break;
  50547.           }
  50548.           HEAP[$syllable_serial_i] = 1;
  50549.           break;
  50550.         } else if (($conv40_i | 0) == 1) {
  50551.           HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50552.           HEAP[$i272_i] = HEAP[$last_i];
  50553.           L664 : do {
  50554.             if (HEAP[$i272_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50555.               while (1) {
  50556.                 HEAP[HEAP[$info_i] + (HEAP[$i272_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  50557.                 HEAP[$i272_i] = HEAP[$i272_i] + 1 | 0;
  50558.                 if (HEAP[$i272_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50559.                   break L664;
  50560.                 }
  50561.               }
  50562.             }
  50563.           } while (0);
  50564.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50565.           var $inc287_i = HEAP[$syllable_serial_i] + 1 | 0;
  50566.           HEAP[$syllable_serial_i] = $inc287_i;
  50567.           if (($inc287_i | 0) != 16) {
  50568.             break;
  50569.           }
  50570.           HEAP[$syllable_serial_i] = 1;
  50571.           break;
  50572.         } else if (($conv40_i | 0) == 3) {
  50573.           HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50574.           HEAP[$i295_i] = HEAP[$last_i];
  50575.           L670 : do {
  50576.             if (HEAP[$i295_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50577.               while (1) {
  50578.                 HEAP[HEAP[$info_i] + (HEAP[$i295_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  50579.                 HEAP[$i295_i] = HEAP[$i295_i] + 1 | 0;
  50580.                 if (HEAP[$i295_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50581.                   break L670;
  50582.                 }
  50583.               }
  50584.             }
  50585.           } while (0);
  50586.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50587.           var $inc311_i = HEAP[$syllable_serial_i] + 1 | 0;
  50588.           HEAP[$syllable_serial_i] = $inc311_i;
  50589.           if (($inc311_i | 0) != 16) {
  50590.             break;
  50591.           }
  50592.           HEAP[$syllable_serial_i] = 1;
  50593.           break;
  50594.         } else if (($conv40_i | 0) == 7) {
  50595.           HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50596.           HEAP[$i319_i] = HEAP[$last_i];
  50597.           L676 : do {
  50598.             if (HEAP[$i319_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50599.               while (1) {
  50600.                 HEAP[HEAP[$info_i] + (HEAP[$i319_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  50601.                 HEAP[$i319_i] = HEAP[$i319_i] + 1 | 0;
  50602.                 if (HEAP[$i319_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50603.                   break L676;
  50604.                 }
  50605.               }
  50606.             }
  50607.           } while (0);
  50608.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50609.           var $inc335_i = HEAP[$syllable_serial_i] + 1 | 0;
  50610.           HEAP[$syllable_serial_i] = $inc335_i;
  50611.           if (($inc335_i | 0) != 16) {
  50612.             break;
  50613.           }
  50614.           HEAP[$syllable_serial_i] = 1;
  50615.           break;
  50616.         } else if (($conv40_i | 0) == 4) {
  50617.           HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50618.           HEAP[$i343_i] = HEAP[$last_i];
  50619.           L682 : do {
  50620.             if (HEAP[$i343_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50621.               while (1) {
  50622.                 HEAP[HEAP[$info_i] + (HEAP[$i343_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 3) & 255;
  50623.                 HEAP[$i343_i] = HEAP[$i343_i] + 1 | 0;
  50624.                 if (HEAP[$i343_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50625.                   break L682;
  50626.                 }
  50627.               }
  50628.             }
  50629.           } while (0);
  50630.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50631.           var $inc359_i = HEAP[$syllable_serial_i] + 1 | 0;
  50632.           HEAP[$syllable_serial_i] = $inc359_i;
  50633.           if (($inc359_i | 0) != 16) {
  50634.             break;
  50635.           }
  50636.           HEAP[$syllable_serial_i] = 1;
  50637.           break;
  50638.         } else if (($conv40_i | 0) == 5) {
  50639.           var $245 = HEAP[$act_i];
  50640.           if (($245 | 0) == 1) {
  50641.             HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50642.             HEAP[$i368_i] = HEAP[$last_i];
  50643.             L690 : do {
  50644.               if (HEAP[$i368_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50645.                 while (1) {
  50646.                   HEAP[HEAP[$info_i] + (HEAP[$i368_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  50647.                   HEAP[$i368_i] = HEAP[$i368_i] + 1 | 0;
  50648.                   if (HEAP[$i368_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50649.                     break L690;
  50650.                   }
  50651.                 }
  50652.               }
  50653.             } while (0);
  50654.             HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50655.             var $inc383_i = HEAP[$syllable_serial_i] + 1 | 0;
  50656.             HEAP[$syllable_serial_i] = $inc383_i;
  50657.             if (($inc383_i | 0) != 16) {
  50658.               break;
  50659.             }
  50660.             HEAP[$syllable_serial_i] = 1;
  50661.             break;
  50662.           } else if (($245 | 0) == 4) {
  50663.             HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50664.             HEAP[$i391_i] = HEAP[$last_i];
  50665.             L696 : do {
  50666.               if (HEAP[$i391_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50667.                 while (1) {
  50668.                   HEAP[HEAP[$info_i] + (HEAP[$i391_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 3) & 255;
  50669.                   HEAP[$i391_i] = HEAP[$i391_i] + 1 | 0;
  50670.                   if (HEAP[$i391_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50671.                     break L696;
  50672.                   }
  50673.                 }
  50674.               }
  50675.             } while (0);
  50676.             HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50677.             var $inc407_i = HEAP[$syllable_serial_i] + 1 | 0;
  50678.             HEAP[$syllable_serial_i] = $inc407_i;
  50679.             if (($inc407_i | 0) != 16) {
  50680.               break;
  50681.             }
  50682.             HEAP[$syllable_serial_i] = 1;
  50683.             break;
  50684.           } else if (($245 | 0) == 5) {
  50685.             HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  50686.             HEAP[$i415_i] = HEAP[$last_i];
  50687.             L702 : do {
  50688.               if (HEAP[$i415_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  50689.                 while (1) {
  50690.                   HEAP[HEAP[$info_i] + (HEAP[$i415_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 4) & 255;
  50691.                   HEAP[$i415_i] = HEAP[$i415_i] + 1 | 0;
  50692.                   if (HEAP[$i415_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  50693.                     break L702;
  50694.                   }
  50695.                 }
  50696.               }
  50697.             } while (0);
  50698.             HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  50699.             var $inc431_i = HEAP[$syllable_serial_i] + 1 | 0;
  50700.             HEAP[$syllable_serial_i] = $inc431_i;
  50701.             if (($inc431_i | 0) != 16) {
  50702.               break;
  50703.             }
  50704.             HEAP[$syllable_serial_i] = 1;
  50705.             break;
  50706.           } else {
  50707.             break;
  50708.           }
  50709.         } else if (($conv40_i | 0) == 8) {
  50710.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50711.           HEAP[$act_i] = 1;
  50712.           break;
  50713.         } else if (($conv40_i | 0) == 6) {
  50714.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50715.           HEAP[$act_i] = 4;
  50716.           break;
  50717.         } else if (($conv40_i | 0) == 12) {
  50718.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  50719.           HEAP[$act_i] = 5;
  50720.           break;
  50721.         } else {
  50722.           break;
  50723.         }
  50724.       }
  50725.     } while (0);
  50726.     if ((HEAP[HEAP[$cs_i] + 112792 | 0] << 24 >> 24 | 0) == 9) {
  50727.       HEAP[$ts_i] = 0;
  50728.     }
  50729.     var $inc448_i = HEAP[$p_i] + 1 | 0;
  50730.     HEAP[$p_i] = $inc448_i;
  50731.     if (($inc448_i | 0) != (HEAP[$pe_i] | 0)) {
  50732.       label = 452;
  50733.       continue;
  50734.     } else {
  50735.       label = 538;
  50736.       continue;
  50737.     }
  50738.   }
  50739.   if (label == 542) {
  50740.     var $295 = $buffer_addr_i;
  50741.     var $296 = $p_i;
  50742.     var $297 = $pe_i;
  50743.     var $298 = $eof_i;
  50744.     var $299 = $ts_i;
  50745.     var $300 = $te_i;
  50746.     var $301 = $act_i;
  50747.     var $302 = $cs_i;
  50748.     var $303 = $info_i;
  50749.     var $304 = $last_i;
  50750.     var $305 = $syllable_serial_i;
  50751.     var $306 = $_slen_i;
  50752.     var $307 = $_trans_i;
  50753.     var $308 = $_keys_i;
  50754.     var $309 = $_inds_i;
  50755.     var $310 = $i_i;
  50756.     var $311 = $i59_i;
  50757.     var $312 = $i82_i;
  50758.     var $313 = $i106_i;
  50759.     var $314 = $i130_i;
  50760.     var $315 = $i153_i;
  50761.     var $316 = $i176_i;
  50762.     var $317 = $i200_i;
  50763.     var $318 = $i224_i;
  50764.     var $319 = $i248_i;
  50765.     var $320 = $i272_i;
  50766.     var $321 = $i295_i;
  50767.     var $322 = $i319_i;
  50768.     var $323 = $i343_i;
  50769.     var $324 = $i368_i;
  50770.     var $325 = $i391_i;
  50771.     var $326 = $i415_i;
  50772.     STACKTOP = __stackBase__;
  50773.     return;
  50774.   } else if (label == 543) {
  50775.     var $295 = $buffer_addr_i;
  50776.     var $296 = $p_i;
  50777.     var $297 = $pe_i;
  50778.     var $298 = $eof_i;
  50779.     var $299 = $ts_i;
  50780.     var $300 = $te_i;
  50781.     var $301 = $act_i;
  50782.     var $302 = $cs_i;
  50783.     var $303 = $info_i;
  50784.     var $304 = $last_i;
  50785.     var $305 = $syllable_serial_i;
  50786.     var $306 = $_slen_i;
  50787.     var $307 = $_trans_i;
  50788.     var $308 = $_keys_i;
  50789.     var $309 = $_inds_i;
  50790.     var $310 = $i_i;
  50791.     var $311 = $i59_i;
  50792.     var $312 = $i82_i;
  50793.     var $313 = $i106_i;
  50794.     var $314 = $i130_i;
  50795.     var $315 = $i153_i;
  50796.     var $316 = $i176_i;
  50797.     var $317 = $i200_i;
  50798.     var $318 = $i224_i;
  50799.     var $319 = $i248_i;
  50800.     var $320 = $i272_i;
  50801.     var $321 = $i295_i;
  50802.     var $322 = $i319_i;
  50803.     var $323 = $i343_i;
  50804.     var $324 = $i368_i;
  50805.     var $325 = $i391_i;
  50806.     var $326 = $i415_i;
  50807.     STACKTOP = __stackBase__;
  50808.     return;
  50809.   }
  50810. }
  50811. function __ZL18initial_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  50812.   var label = 0;
  50813.   var __stackBase__ = STACKTOP;
  50814.   STACKTOP = STACKTOP + 276 | 0;
  50815.   var $this_addr_i92_i = __stackBase__;
  50816.   var $i_addr_i93_i = __stackBase__ + 4;
  50817.   var $this_addr_i85_i = __stackBase__ + 8;
  50818.   var $i_addr_i86_i = __stackBase__ + 12;
  50819.   var $this_addr_i78_i = __stackBase__ + 16;
  50820.   var $i_addr_i79_i = __stackBase__ + 20;
  50821.   var $this_addr_i50_i = __stackBase__ + 24;
  50822.   var $this_addr_i43_i = __stackBase__ + 28;
  50823.   var $i_addr_i44_i = __stackBase__ + 32;
  50824.   var $this_addr_i35_i = __stackBase__ + 36;
  50825.   var $glyph_info_addr_i_i = __stackBase__ + 40;
  50826.   var $this_addr_i28_i = __stackBase__ + 44;
  50827.   var $i_addr_i29_i = __stackBase__ + 48;
  50828.   var $this_addr_i14_i = __stackBase__ + 52;
  50829.   var $this_addr_i10_i = __stackBase__ + 56;
  50830.   var $i_addr_i_i = __stackBase__ + 60;
  50831.   var $this_addr_i3_i = __stackBase__ + 64;
  50832.   var $tmp_string_i_i = __stackBase__ + 68;
  50833.   var $tmp_i_i = __stackBase__ + 72;
  50834.   var $this_addr_i_i_i_i_i = __stackBase__ + 76;
  50835.   var $this_addr_i_i_i_i = __stackBase__ + 80;
  50836.   var $obj_addr_i_i_i = __stackBase__ + 84;
  50837.   var $this_addr_i1_i = __stackBase__ + 88;
  50838.   var $this_addr_i_i1 = __stackBase__ + 92;
  50839.   var $unicode_addr_i_i = __stackBase__ + 96;
  50840.   var $variation_selector_addr_i_i = __stackBase__ + 100;
  50841.   var $glyph_addr_i_i = __stackBase__ + 104;
  50842.   var $plan_addr_i2 = __stackBase__ + 108;
  50843.   var $font_addr_i3 = __stackBase__ + 112;
  50844.   var $buffer_addr_i4 = __stackBase__ + 116;
  50845.   var $has_broken_syllables_i;
  50846.   var $count_i5 = __stackBase__ + 120;
  50847.   var $i_i6 = __stackBase__ + 124;
  50848.   var $dottedcircle_glyph_i = __stackBase__ + 128;
  50849.   var $dottedcircle_i = __stackBase__ + 132;
  50850.   var $last_syllable_i = __stackBase__ + 152;
  50851.   var $syllable_i = __stackBase__ + 156;
  50852.   var $syllable_type_i = __stackBase__ + 160;
  50853.   var $info21_i = __stackBase__ + 164;
  50854.   var $retval_i_i = __stackBase__ + 184;
  50855.   var $indic_plan_addr_i_i = __stackBase__ + 188;
  50856.   var $glyphs_addr_i_i = __stackBase__ + 192;
  50857.   var $face_addr_i_i = __stackBase__ + 196;
  50858.   var $zero_context_i_i;
  50859.   var $glyphs_r_i_i = __stackBase__ + 200;
  50860.   var $this_addr_i_i_i = __stackBase__ + 208;
  50861.   var $unicode_addr_i_i_i = __stackBase__ + 212;
  50862.   var $variation_selector_addr_i_i_i = __stackBase__ + 216;
  50863.   var $glyph_addr_i_i_i = __stackBase__ + 220;
  50864.   var $this_addr_i_i = __stackBase__ + 224;
  50865.   var $font_addr_i_i = __stackBase__ + 228;
  50866.   var $pglyph_addr_i_i = __stackBase__ + 232;
  50867.   var $glyph_i_i = __stackBase__ + 236;
  50868.   var $plan_addr_i = __stackBase__ + 240;
  50869.   var $font_addr_i = __stackBase__ + 244;
  50870.   var $buffer_addr_i = __stackBase__ + 248;
  50871.   var $indic_plan_i = __stackBase__ + 252;
  50872.   var $glyphs_i = __stackBase__ + 256;
  50873.   var $face_i = __stackBase__ + 264;
  50874.   var $count_i = __stackBase__ + 268;
  50875.   var $i_i = __stackBase__ + 272;
  50876.   var $plan_addr;
  50877.   var $font_addr;
  50878.   var $buffer_addr;
  50879.   var $info;
  50880.   var $count;
  50881.   var $last;
  50882.   var $last_syllable;
  50883.   var $i;
  50884.   $plan_addr = $plan;
  50885.   $font_addr = $font;
  50886.   $buffer_addr = $buffer;
  50887.   HEAP[$plan_addr_i] = $plan_addr;
  50888.   HEAP[$font_addr_i] = $font_addr;
  50889.   HEAP[$buffer_addr_i] = $buffer_addr;
  50890.   HEAP[$indic_plan_i] = HEAP[HEAP[$plan_addr_i] + 916 | 0];
  50891.   var $15 = HEAP[$font_addr_i];
  50892.   HEAP[$this_addr_i_i] = HEAP[$indic_plan_i];
  50893.   HEAP[$font_addr_i_i] = $15;
  50894.   HEAP[$pglyph_addr_i_i] = $glyphs_i | 0;
  50895.   var $this1_i_i = HEAP[$this_addr_i_i];
  50896.   HEAP[$glyph_i_i] = HEAP[$this1_i_i + 8 | 0];
  50897.   if ((HEAP[$this1_i_i + 8 | 0] | 0) == -1) {
  50898.     do {
  50899.       if ((HEAP[HEAP[$this1_i_i | 0] + 8 | 0] | 0) != 0) {
  50900.         var $26 = HEAP[HEAP[$this1_i_i | 0] + 8 | 0];
  50901.         HEAP[$this_addr_i_i_i] = HEAP[$font_addr_i_i];
  50902.         HEAP[$unicode_addr_i_i_i] = $26;
  50903.         HEAP[$variation_selector_addr_i_i_i] = 0;
  50904.         HEAP[$glyph_addr_i_i_i] = $glyph_i_i;
  50905.         var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  50906.         HEAP[HEAP[$glyph_addr_i_i_i]] = 0;
  50907.         if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i_i + 72 | 0] + 48 | 0]]($this1_i_i_i, HEAP[$this1_i_i_i + 76 | 0], HEAP[$unicode_addr_i_i_i], HEAP[$variation_selector_addr_i_i_i], HEAP[$glyph_addr_i_i_i], HEAP[HEAP[$this1_i_i_i + 72 | 0] + 92 | 0]) | 0) != 0) {
  50908.           break;
  50909.         } else {
  50910.           label = 547;
  50911.           break;
  50912.         }
  50913.       } else {
  50914.         label = 547;
  50915.       }
  50916.     } while (0);
  50917.     if (label == 547) {
  50918.       HEAP[$glyph_i_i] = 0;
  50919.     }
  50920.     HEAP[$this1_i_i + 8 | 0] = HEAP[$glyph_i_i];
  50921.   }
  50922.   HEAP[HEAP[$pglyph_addr_i_i]] = HEAP[$glyph_i_i];
  50923.   L726 : do {
  50924.     if ((HEAP[$glyph_i_i] | 0) != 0) {
  50925.       HEAP[$face_i] = HEAP[HEAP[$font_addr_i] + 52 | 0];
  50926.       HEAP[$count_i] = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  50927.       HEAP[$i_i] = 0;
  50928.       if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  50929.         break;
  50930.       }
  50931.       var $arrayidx8_i = $glyphs_i + 4 | 0;
  50932.       var $arraydecay_i = $glyphs_i | 0;
  50933.       var $arrayinit_begin_i_i = $glyphs_r_i_i | 0;
  50934.       var $arrayinit_element_i_i = $arrayinit_begin_i_i + 4 | 0;
  50935.       var $arraydecay_i_i = $glyphs_r_i_i | 0;
  50936.       var $arraydecay10_i_i = $glyphs_r_i_i | 0;
  50937.       var $arraydecay19_i_i = $glyphs_r_i_i | 0;
  50938.       while (1) {
  50939.         if ((HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) + 19 | 0] & 255 | 0) == 4) {
  50940.           HEAP[$arrayidx8_i] = HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) | 0];
  50941.           var $77 = HEAP[$face_i];
  50942.           HEAP[$indic_plan_addr_i_i] = HEAP[$indic_plan_i];
  50943.           HEAP[$glyphs_addr_i_i] = $arraydecay_i;
  50944.           HEAP[$face_addr_i_i] = $77;
  50945.           $zero_context_i_i = (HEAP[HEAP[$indic_plan_addr_i_i] + 4 | 0] & 1 ? 0 : 1) & 1;
  50946.           HEAP[$arrayinit_begin_i_i] = HEAP[HEAP[$glyphs_addr_i_i] + 4 | 0];
  50947.           HEAP[$arrayinit_element_i_i] = HEAP[HEAP[$glyphs_addr_i_i]];
  50948.           L733 : do {
  50949.             if (__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t(HEAP[$indic_plan_addr_i_i] + 20 | 0, HEAP[$glyphs_addr_i_i], 2, $zero_context_i_i & 1, HEAP[$face_addr_i_i])) {
  50950.               label = 555;
  50951.             } else {
  50952.               if (__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t(HEAP[$indic_plan_addr_i_i] + 20 | 0, $arraydecay_i_i, 2, $zero_context_i_i & 1, HEAP[$face_addr_i_i])) {
  50953.                 label = 555;
  50954.                 break;
  50955.               }
  50956.               do {
  50957.                 if (!__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t(HEAP[$indic_plan_addr_i_i] + 28 | 0, HEAP[$glyphs_addr_i_i], 2, $zero_context_i_i & 1, HEAP[$face_addr_i_i])) {
  50958.                   if (__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t(HEAP[$indic_plan_addr_i_i] + 28 | 0, $arraydecay10_i_i, 2, $zero_context_i_i & 1, HEAP[$face_addr_i_i])) {
  50959.                     break;
  50960.                   }
  50961.                   do {
  50962.                     if (!__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t(HEAP[$indic_plan_addr_i_i] + 36 | 0, HEAP[$glyphs_addr_i_i], 2, $zero_context_i_i & 1, HEAP[$face_addr_i_i])) {
  50963.                       if (__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t(HEAP[$indic_plan_addr_i_i] + 36 | 0, $arraydecay19_i_i, 2, $zero_context_i_i & 1, HEAP[$face_addr_i_i])) {
  50964.                         break;
  50965.                       }
  50966.                       HEAP[$retval_i_i] = 4;
  50967.                       break L733;
  50968.                     }
  50969.                   } while (0);
  50970.                   HEAP[$retval_i_i] = 11;
  50971.                   break L733;
  50972.                 }
  50973.               } while (0);
  50974.               HEAP[$retval_i_i] = 8;
  50975.               break;
  50976.             }
  50977.           } while (0);
  50978.           if (label == 555) {
  50979.             label = 0;
  50980.             HEAP[$retval_i_i] = 11;
  50981.           }
  50982.           HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) + 19 | 0] = HEAP[$retval_i_i] & 255;
  50983.         }
  50984.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  50985.         if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  50986.           break L726;
  50987.         }
  50988.       }
  50989.     }
  50990.   } while (0);
  50991.   HEAP[$plan_addr_i2] = $plan_addr;
  50992.   HEAP[$font_addr_i3] = $font_addr;
  50993.   HEAP[$buffer_addr_i4] = $buffer_addr;
  50994.   $has_broken_syllables_i = 0;
  50995.   HEAP[$count_i5] = HEAP[HEAP[$buffer_addr_i4] + 84 | 0];
  50996.   HEAP[$i_i6] = 0;
  50997.   L749 : do {
  50998.     if (HEAP[$i_i6] >>> 0 < HEAP[$count_i5] >>> 0) {
  50999.       while (1) {
  51000.         if ((HEAP[HEAP[HEAP[$buffer_addr_i4] + 96 | 0] + (HEAP[$i_i6] * 20 & -1) + 14 | 0] & 15 | 0) == 3) {
  51001.           break;
  51002.         }
  51003.         HEAP[$i_i6] = HEAP[$i_i6] + 1 | 0;
  51004.         if (HEAP[$i_i6] >>> 0 >= HEAP[$count_i5] >>> 0) {
  51005.           break L749;
  51006.         }
  51007.       }
  51008.       $has_broken_syllables_i = 1;
  51009.     }
  51010.   } while (0);
  51011.   do {
  51012.     if ($has_broken_syllables_i & 1) {
  51013.       HEAP[$this_addr_i_i1] = HEAP[$font_addr_i3];
  51014.       HEAP[$unicode_addr_i_i] = 9676;
  51015.       HEAP[$variation_selector_addr_i_i] = 0;
  51016.       HEAP[$glyph_addr_i_i] = $dottedcircle_glyph_i;
  51017.       var $this1_i_i17 = HEAP[$this_addr_i_i1];
  51018.       HEAP[HEAP[$glyph_addr_i_i]] = 0;
  51019.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i17 + 72 | 0] + 48 | 0]]($this1_i_i17, HEAP[$this1_i_i17 + 76 | 0], HEAP[$unicode_addr_i_i], HEAP[$variation_selector_addr_i_i], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i17 + 72 | 0] + 92 | 0]) | 0) == 0) {
  51020.         break;
  51021.       }
  51022.       var $164 = $dottedcircle_i;
  51023.       for (var $$dest = $164, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  51024.         HEAP[$$dest] = 0;
  51025.       }
  51026.       HEAP[$dottedcircle_i | 0] = 9676;
  51027.       __ZL20set_indic_propertiesR15hb_glyph_info_t($dottedcircle_i);
  51028.       HEAP[$dottedcircle_i | 0] = HEAP[$dottedcircle_glyph_i];
  51029.       HEAP[$this_addr_i1_i] = HEAP[$buffer_addr_i4];
  51030.       var $this1_i2_i = HEAP[$this_addr_i1_i];
  51031.       HEAP[$obj_addr_i_i_i] = $this1_i2_i;
  51032.       HEAP[$this_addr_i_i_i_i] = HEAP[$obj_addr_i_i_i] | 0;
  51033.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  51034.       if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) != -1) {
  51035.         HEAP[$this1_i2_i + 77 | 0] = 1;
  51036.         HEAP[$this1_i2_i + 78 | 0] = 0;
  51037.         HEAP[$this1_i2_i + 88 | 0] = 0;
  51038.         HEAP[$this1_i2_i + 100 | 0] = HEAP[$this1_i2_i + 96 | 0];
  51039.       }
  51040.       HEAP[HEAP[$buffer_addr_i4] + 80 | 0] = 0;
  51041.       HEAP[$last_syllable_i] = 0;
  51042.       var $183 = HEAP[$buffer_addr_i4];
  51043.       L761 : do {
  51044.         if (HEAP[HEAP[$buffer_addr_i4] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i4] + 84 | 0] >>> 0) {
  51045.           var $188 = $info21_i;
  51046.           var $189 = $dottedcircle_i;
  51047.           var $cluster23_i = $info21_i + 8 | 0;
  51048.           var $mask25_i = $info21_i + 4 | 0;
  51049.           var $arrayidx32_i = $info21_i + 14 | 0;
  51050.           var $215 = $183;
  51051.           while (1) {
  51052.             var $215;
  51053.             HEAP[$this_addr_i10_i] = $215;
  51054.             HEAP[$i_addr_i_i] = 0;
  51055.             var $this1_i11_i = HEAP[$this_addr_i10_i];
  51056.             HEAP[$syllable_i] = HEAP[HEAP[$this1_i11_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i11_i + 80 | 0]) * 20 & -1) + 14 | 0] & 255;
  51057.             HEAP[$syllable_type_i] = HEAP[$syllable_i] & 15;
  51058.             do {
  51059.               if ((HEAP[$last_syllable_i] | 0) != (HEAP[$syllable_i] | 0)) {
  51060.                 if ((HEAP[$syllable_type_i] | 0) != 3) {
  51061.                   label = 591;
  51062.                   break;
  51063.                 }
  51064.                 HEAP[$last_syllable_i] = HEAP[$syllable_i];
  51065.                 for (var $$src = $189, $$dest = $188, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51066.                   HEAP[$$dest] = HEAP[$$src];
  51067.                 }
  51068.                 HEAP[$this_addr_i28_i] = HEAP[$buffer_addr_i4];
  51069.                 HEAP[$i_addr_i29_i] = 0;
  51070.                 var $this1_i30_i = HEAP[$this_addr_i28_i];
  51071.                 HEAP[$cluster23_i] = HEAP[HEAP[$this1_i30_i + 96 | 0] + ((HEAP[$i_addr_i29_i] + HEAP[$this1_i30_i + 80 | 0]) * 20 & -1) + 8 | 0];
  51072.                 HEAP[$this_addr_i43_i] = HEAP[$buffer_addr_i4];
  51073.                 HEAP[$i_addr_i44_i] = 0;
  51074.                 var $this1_i45_i = HEAP[$this_addr_i43_i];
  51075.                 HEAP[$mask25_i] = HEAP[HEAP[$this1_i45_i + 96 | 0] + ((HEAP[$i_addr_i44_i] + HEAP[$this1_i45_i + 80 | 0]) * 20 & -1) + 4 | 0];
  51076.                 HEAP[$this_addr_i78_i] = HEAP[$buffer_addr_i4];
  51077.                 HEAP[$i_addr_i79_i] = 0;
  51078.                 var $this1_i80_i = HEAP[$this_addr_i78_i];
  51079.                 HEAP[$arrayidx32_i] = HEAP[HEAP[$this1_i80_i + 96 | 0] + ((HEAP[$i_addr_i79_i] + HEAP[$this1_i80_i + 80 | 0]) * 20 & -1) + 14 | 0];
  51080.                 L768 : do {
  51081.                   if (HEAP[HEAP[$buffer_addr_i4] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i4] + 84 | 0] >>> 0) {
  51082.                     while (1) {
  51083.                       var $244 = HEAP[$last_syllable_i];
  51084.                       HEAP[$this_addr_i92_i] = HEAP[$buffer_addr_i4];
  51085.                       HEAP[$i_addr_i93_i] = 0;
  51086.                       var $this1_i94_i = HEAP[$this_addr_i92_i];
  51087.                       if (($244 | 0) != (HEAP[HEAP[$this1_i94_i + 96 | 0] + ((HEAP[$i_addr_i93_i] + HEAP[$this1_i94_i + 80 | 0]) * 20 & -1) + 14 | 0] & 255 | 0)) {
  51088.                         label = 579;
  51089.                         break L768;
  51090.                       }
  51091.                       HEAP[$this_addr_i85_i] = HEAP[$buffer_addr_i4];
  51092.                       HEAP[$i_addr_i86_i] = 0;
  51093.                       var $this1_i87_i = HEAP[$this_addr_i85_i];
  51094.                       var $256 = HEAP[$buffer_addr_i4];
  51095.                       if ((HEAP[HEAP[$this1_i87_i + 96 | 0] + ((HEAP[$i_addr_i86_i] + HEAP[$this1_i87_i + 80 | 0]) * 20 & -1) + 18 | 0] & 255 | 0) != 15) {
  51096.                         var $274 = $256;
  51097.                         break L768;
  51098.                       }
  51099.                       HEAP[$this_addr_i50_i] = $256;
  51100.                       var $this1_i51_i = HEAP[$this_addr_i50_i];
  51101.                       do {
  51102.                         if (HEAP[$this1_i51_i + 77 | 0] & 1) {
  51103.                           do {
  51104.                             if ((HEAP[$this1_i51_i + 100 | 0] | 0) != (HEAP[$this1_i51_i + 96 | 0] | 0)) {
  51105.                               label = 584;
  51106.                             } else {
  51107.                               if ((HEAP[$this1_i51_i + 88 | 0] | 0) != (HEAP[$this1_i51_i + 80 | 0] | 0)) {
  51108.                                 label = 584;
  51109.                                 break;
  51110.                               } else {
  51111.                                 break;
  51112.                               }
  51113.                             }
  51114.                           } while (0);
  51115.                           if (label == 584) {
  51116.                             label = 0;
  51117.                             if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i51_i, 1, 1)) {
  51118.                               break;
  51119.                             }
  51120.                             var $266 = HEAP[$this1_i51_i + 100 | 0] + (HEAP[$this1_i51_i + 88 | 0] * 20 & -1) | 0;
  51121.                             var $267 = HEAP[$this1_i51_i + 96 | 0] + (HEAP[$this1_i51_i + 80 | 0] * 20 & -1) | 0;
  51122.                             for (var $$src = $267, $$dest = $266, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51123.                               HEAP[$$dest] = HEAP[$$src];
  51124.                             }
  51125.                           }
  51126.                           var $out_len11_i71_i = $this1_i51_i + 88 | 0;
  51127.                           HEAP[$out_len11_i71_i] = HEAP[$out_len11_i71_i] + 1 | 0;
  51128.                           label = 587;
  51129.                           break;
  51130.                         } else {
  51131.                           label = 587;
  51132.                         }
  51133.                       } while (0);
  51134.                       if (label == 587) {
  51135.                         label = 0;
  51136.                         var $idx13_i74_i = $this1_i51_i + 80 | 0;
  51137.                         HEAP[$idx13_i74_i] = HEAP[$idx13_i74_i] + 1 | 0;
  51138.                       }
  51139.                       if (HEAP[HEAP[$buffer_addr_i4] + 80 | 0] >>> 0 >= HEAP[HEAP[$buffer_addr_i4] + 84 | 0] >>> 0) {
  51140.                         label = 579;
  51141.                         break L768;
  51142.                       }
  51143.                     }
  51144.                   } else {
  51145.                     label = 579;
  51146.                   }
  51147.                 } while (0);
  51148.                 if (label == 579) {
  51149.                   label = 0;
  51150.                   var $274 = HEAP[$buffer_addr_i4];
  51151.                 }
  51152.                 var $274;
  51153.                 HEAP[$this_addr_i35_i] = $274;
  51154.                 HEAP[$glyph_info_addr_i_i] = $info21_i;
  51155.                 var $this1_i36_i = HEAP[$this_addr_i35_i];
  51156.                 if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i36_i, 0, 1)) {
  51157.                   break;
  51158.                 }
  51159.                 var $278 = HEAP[$this1_i36_i + 100 | 0] + (HEAP[$this1_i36_i + 88 | 0] * 20 & -1) | 0;
  51160.                 var $279 = HEAP[$glyph_info_addr_i_i];
  51161.                 for (var $$src = $279, $$dest = $278, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51162.                   HEAP[$$dest] = HEAP[$$src];
  51163.                 }
  51164.                 var $out_len2_i_i = $this1_i36_i + 88 | 0;
  51165.                 HEAP[$out_len2_i_i] = HEAP[$out_len2_i_i] + 1 | 0;
  51166.                 break;
  51167.               } else {
  51168.                 label = 591;
  51169.               }
  51170.             } while (0);
  51171.             do {
  51172.               if (label == 591) {
  51173.                 label = 0;
  51174.                 HEAP[$this_addr_i14_i] = HEAP[$buffer_addr_i4];
  51175.                 var $this1_i15_i = HEAP[$this_addr_i14_i];
  51176.                 if (HEAP[$this1_i15_i + 77 | 0] & 1) {
  51177.                   do {
  51178.                     if ((HEAP[$this1_i15_i + 100 | 0] | 0) != (HEAP[$this1_i15_i + 96 | 0] | 0)) {
  51179.                       label = 594;
  51180.                     } else {
  51181.                       if ((HEAP[$this1_i15_i + 88 | 0] | 0) != (HEAP[$this1_i15_i + 80 | 0] | 0)) {
  51182.                         label = 594;
  51183.                         break;
  51184.                       } else {
  51185.                         break;
  51186.                       }
  51187.                     }
  51188.                   } while (0);
  51189.                   if (label == 594) {
  51190.                     label = 0;
  51191.                     if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i15_i, 1, 1)) {
  51192.                       break;
  51193.                     }
  51194.                     var $291 = HEAP[$this1_i15_i + 100 | 0] + (HEAP[$this1_i15_i + 88 | 0] * 20 & -1) | 0;
  51195.                     var $292 = HEAP[$this1_i15_i + 96 | 0] + (HEAP[$this1_i15_i + 80 | 0] * 20 & -1) | 0;
  51196.                     for (var $$src = $292, $$dest = $291, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51197.                       HEAP[$$dest] = HEAP[$$src];
  51198.                     }
  51199.                   }
  51200.                   var $out_len11_i_i = $this1_i15_i + 88 | 0;
  51201.                   HEAP[$out_len11_i_i] = HEAP[$out_len11_i_i] + 1 | 0;
  51202.                 }
  51203.                 var $idx13_i_i = $this1_i15_i + 80 | 0;
  51204.                 HEAP[$idx13_i_i] = HEAP[$idx13_i_i] + 1 | 0;
  51205.               }
  51206.             } while (0);
  51207.             var $299 = HEAP[$buffer_addr_i4];
  51208.             if (HEAP[HEAP[$buffer_addr_i4] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i4] + 84 | 0] >>> 0) {
  51209.               var $215 = $299;
  51210.             } else {
  51211.               var $_lcssa102_i = $299;
  51212.               break L761;
  51213.             }
  51214.           }
  51215.         } else {
  51216.           var $_lcssa102_i = $183;
  51217.         }
  51218.       } while (0);
  51219.       var $_lcssa102_i;
  51220.       HEAP[$this_addr_i3_i] = $_lcssa102_i;
  51221.       var $this1_i4_i = HEAP[$this_addr_i3_i];
  51222.       if (!(HEAP[$this1_i4_i + 76 | 0] & 1)) {
  51223.         if (!(HEAP[$this1_i4_i + 77 | 0] & 1)) {
  51224.           ___assert_func(102952, 274, 108904, 103776);
  51225.         }
  51226.         HEAP[$this1_i4_i + 77 | 0] = 0;
  51227.         if ((HEAP[$this1_i4_i + 100 | 0] | 0) != (HEAP[$this1_i4_i + 96 | 0] | 0)) {
  51228.           HEAP[$tmp_string_i_i] = HEAP[$this1_i4_i + 96 | 0];
  51229.           HEAP[$this1_i4_i + 96 | 0] = HEAP[$this1_i4_i + 100 | 0];
  51230.           HEAP[$this1_i4_i + 100 | 0] = HEAP[$tmp_string_i_i];
  51231.           HEAP[$this1_i4_i + 104 | 0] = HEAP[$this1_i4_i + 100 | 0];
  51232.         }
  51233.         HEAP[$tmp_i_i] = HEAP[$this1_i4_i + 84 | 0];
  51234.         HEAP[$this1_i4_i + 84 | 0] = HEAP[$this1_i4_i + 88 | 0];
  51235.         HEAP[$this1_i4_i + 88 | 0] = HEAP[$tmp_i_i];
  51236.         HEAP[$this1_i4_i + 80 | 0] = 0;
  51237.       }
  51238.     }
  51239.   } while (0);
  51240.   $info = HEAP[$buffer_addr + 96 | 0];
  51241.   var $332 = HEAP[$buffer_addr + 84 | 0];
  51242.   $count = $332;
  51243.   if (($332 | 0) == 0) {
  51244.     STACKTOP = __stackBase__;
  51245.     return;
  51246.   }
  51247.   $last = 0;
  51248.   $last_syllable = HEAP[$info + 14 | 0] & 255;
  51249.   $i = 1;
  51250.   L814 : do {
  51251.     if ($i >>> 0 < $count >>> 0) {
  51252.       while (1) {
  51253.         if (($last_syllable | 0) != (HEAP[$info + ($i * 20 & -1) + 14 | 0] & 255 | 0)) {
  51254.           __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan_addr, HEAP[$font_addr + 52 | 0], $buffer_addr, $last, $i);
  51255.           $last = $i;
  51256.           $last_syllable = HEAP[$info + ($last * 20 & -1) + 14 | 0] & 255;
  51257.         }
  51258.         $i = $i + 1 | 0;
  51259.         if ($i >>> 0 >= $count >>> 0) {
  51260.           break L814;
  51261.         }
  51262.       }
  51263.     }
  51264.   } while (0);
  51265.   __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan_addr, HEAP[$font_addr + 52 | 0], $buffer_addr, $last, $count);
  51266.   STACKTOP = __stackBase__;
  51267.   return;
  51268. }
  51269. function __ZL16final_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  51270.   var $plan_addr;
  51271.   var $buffer_addr;
  51272.   var $count;
  51273.   var $info;
  51274.   var $last;
  51275.   var $last_syllable;
  51276.   var $i;
  51277.   var $i16;
  51278.   $plan_addr = $plan;
  51279.   $buffer_addr = $buffer;
  51280.   $count = HEAP[$buffer_addr + 84 | 0];
  51281.   if (($count | 0) == 0) {
  51282.     return;
  51283.   }
  51284.   $info = HEAP[$buffer_addr + 96 | 0];
  51285.   $last = 0;
  51286.   $last_syllable = HEAP[$info + 14 | 0] & 255;
  51287.   $i = 1;
  51288.   L826 : do {
  51289.     if ($i >>> 0 < $count >>> 0) {
  51290.       while (1) {
  51291.         if (($last_syllable | 0) != (HEAP[$info + ($i * 20 & -1) + 14 | 0] & 255 | 0)) {
  51292.           __ZL25final_reordering_syllablePK18hb_ot_shape_plan_tP11hb_buffer_tjj($plan_addr, $buffer_addr, $last, $i);
  51293.           $last = $i;
  51294.           $last_syllable = HEAP[$info + ($last * 20 & -1) + 14 | 0] & 255;
  51295.         }
  51296.         $i = $i + 1 | 0;
  51297.         if ($i >>> 0 >= $count >>> 0) {
  51298.           break L826;
  51299.         }
  51300.       }
  51301.     }
  51302.   } while (0);
  51303.   __ZL25final_reordering_syllablePK18hb_ot_shape_plan_tP11hb_buffer_tjj($plan_addr, $buffer_addr, $last, $count);
  51304.   $i16 = 0;
  51305.   L833 : do {
  51306.     if ($i16 >>> 0 < $count >>> 0) {
  51307.       while (1) {
  51308.         HEAP[$info + ($i16 * 20 & -1) + 14 | 0] = 0;
  51309.         $i16 = $i16 + 1 | 0;
  51310.         if ($i16 >>> 0 >= $count >>> 0) {
  51311.           break L833;
  51312.         }
  51313.       }
  51314.     }
  51315.   } while (0);
  51316.   __ZN11hb_buffer_t14deallocate_varEjjPKc($buffer_addr, 6, 1, 102776);
  51317.   __ZN11hb_buffer_t14deallocate_varEjjPKc($buffer_addr, 7, 1, 103760);
  51318.   return;
  51319. }
  51320. function __ZL25final_reordering_syllablePK18hb_ot_shape_plan_tP11hb_buffer_tjj($plan, $buffer, $start, $end) {
  51321.   var label = 0;
  51322.   var __stackBase__ = STACKTOP;
  51323.   STACKTOP = STACKTOP + 329 | 0;
  51324.   var $info_addr_i_i_i248 = __stackBase__;
  51325.   var $retval_i_i249 = __stackBase__ + 4;
  51326.   var $info_addr_i_i250 = __stackBase__ + 5;
  51327.   var $flags_addr_i_i251 = __stackBase__ + 9;
  51328.   var $info_addr_i252 = __stackBase__ + 13;
  51329.   var $info_addr_i_i_i227 = __stackBase__ + 17;
  51330.   var $retval_i_i228 = __stackBase__ + 21;
  51331.   var $info_addr_i_i229 = __stackBase__ + 22;
  51332.   var $flags_addr_i_i230 = __stackBase__ + 26;
  51333.   var $info_addr_i231 = __stackBase__ + 30;
  51334.   var $info_addr_i_i_i206 = __stackBase__ + 34;
  51335.   var $retval_i_i207 = __stackBase__ + 38;
  51336.   var $info_addr_i_i208 = __stackBase__ + 39;
  51337.   var $flags_addr_i_i209 = __stackBase__ + 43;
  51338.   var $info_addr_i210 = __stackBase__ + 47;
  51339.   var $info_addr_i_i_i185 = __stackBase__ + 51;
  51340.   var $retval_i_i186 = __stackBase__ + 55;
  51341.   var $info_addr_i_i187 = __stackBase__ + 56;
  51342.   var $flags_addr_i_i188 = __stackBase__ + 60;
  51343.   var $info_addr_i189 = __stackBase__ + 64;
  51344.   var $info_addr_i_i_i164 = __stackBase__ + 68;
  51345.   var $retval_i_i165 = __stackBase__ + 72;
  51346.   var $info_addr_i_i166 = __stackBase__ + 73;
  51347.   var $flags_addr_i_i167 = __stackBase__ + 77;
  51348.   var $info_addr_i168 = __stackBase__ + 81;
  51349.   var $u_i_i148 = __stackBase__ + 85;
  51350.   var $c_i_i149 = __stackBase__ + 89;
  51351.   var $info_addr_i_i_i127 = __stackBase__ + 93;
  51352.   var $retval_i_i128 = __stackBase__ + 97;
  51353.   var $info_addr_i_i129 = __stackBase__ + 98;
  51354.   var $flags_addr_i_i130 = __stackBase__ + 102;
  51355.   var $info_addr_i131 = __stackBase__ + 106;
  51356.   var $info_addr_i_i_i106 = __stackBase__ + 110;
  51357.   var $retval_i_i107 = __stackBase__ + 114;
  51358.   var $info_addr_i_i108 = __stackBase__ + 115;
  51359.   var $flags_addr_i_i109 = __stackBase__ + 119;
  51360.   var $info_addr_i110 = __stackBase__ + 123;
  51361.   var $info_addr_i_i85 = __stackBase__ + 127;
  51362.   var $retval_i86 = __stackBase__ + 131;
  51363.   var $info_addr_i87 = __stackBase__ + 132;
  51364.   var $flags_addr_i88 = __stackBase__ + 136;
  51365.   var $info_addr_i_i_i64 = __stackBase__ + 140;
  51366.   var $retval_i_i65 = __stackBase__ + 144;
  51367.   var $info_addr_i_i66 = __stackBase__ + 145;
  51368.   var $flags_addr_i_i67 = __stackBase__ + 149;
  51369.   var $info_addr_i68 = __stackBase__ + 153;
  51370.   var $info_addr_i_i_i43 = __stackBase__ + 157;
  51371.   var $retval_i_i44 = __stackBase__ + 161;
  51372.   var $info_addr_i_i45 = __stackBase__ + 162;
  51373.   var $flags_addr_i_i46 = __stackBase__ + 166;
  51374.   var $info_addr_i47 = __stackBase__ + 170;
  51375.   var $a_addr_i39 = __stackBase__ + 174;
  51376.   var $b_addr_i40 = __stackBase__ + 178;
  51377.   var $info_addr_i33 = __stackBase__ + 182;
  51378.   var $a_addr_i = __stackBase__ + 186;
  51379.   var $b_addr_i = __stackBase__ + 190;
  51380.   var $info_addr_i_i_i13 = __stackBase__ + 194;
  51381.   var $retval_i_i14 = __stackBase__ + 198;
  51382.   var $info_addr_i_i15 = __stackBase__ + 199;
  51383.   var $flags_addr_i_i16 = __stackBase__ + 203;
  51384.   var $info_addr_i17 = __stackBase__ + 207;
  51385.   var $u_i_i = __stackBase__ + 211;
  51386.   var $c_i_i = __stackBase__ + 215;
  51387.   var $info_addr_i_i_i = __stackBase__ + 219;
  51388.   var $retval_i_i = __stackBase__ + 223;
  51389.   var $info_addr_i_i1 = __stackBase__ + 224;
  51390.   var $flags_addr_i_i = __stackBase__ + 228;
  51391.   var $info_addr_i2 = __stackBase__ + 232;
  51392.   var $info_addr_i_i = __stackBase__ + 236;
  51393.   var $retval_i = __stackBase__ + 240;
  51394.   var $info_addr_i = __stackBase__ + 241;
  51395.   var $flags_addr_i = __stackBase__ + 245;
  51396.   var $buffer_addr;
  51397.   var $start_addr;
  51398.   var $end_addr = __stackBase__ + 249;
  51399.   var $indic_plan;
  51400.   var $info;
  51401.   var $base;
  51402.   var $new_pos;
  51403.   var $i;
  51404.   var $old_pos;
  51405.   var $tmp = __stackBase__ + 253;
  51406.   var $ref_tmp = __stackBase__ + 273;
  51407.   var $i124;
  51408.   var $ref_tmp136 = __stackBase__ + 277;
  51409.   var $new_reph_pos;
  51410.   var $reph_pos;
  51411.   var $tmp275 = __stackBase__ + 281;
  51412.   var $i282;
  51413.   var $reph = __stackBase__ + 285;
  51414.   var $i322;
  51415.   var $new_pos344;
  51416.   var $old_pos375;
  51417.   var $i377;
  51418.   var $old_pos411;
  51419.   var $tmp414 = __stackBase__ + 305;
  51420.   var $tmp455 = __stackBase__ + 325;
  51421.   $buffer_addr = $buffer;
  51422.   $start_addr = $start;
  51423.   HEAP[$end_addr] = $end;
  51424.   $indic_plan = HEAP[$plan + 916 | 0];
  51425.   $info = HEAP[$buffer_addr + 96 | 0];
  51426.   $base = $start_addr;
  51427.   L839 : do {
  51428.     if ($base >>> 0 < HEAP[$end_addr] >>> 0) {
  51429.       while (1) {
  51430.         if ((HEAP[$info + ($base * 20 & -1) + 19 | 0] & 255 | 0) >= 4) {
  51431.           break;
  51432.         }
  51433.         $base = $base + 1 | 0;
  51434.         if ($base >>> 0 >= HEAP[$end_addr] >>> 0) {
  51435.           break L839;
  51436.         }
  51437.       }
  51438.       if ($start_addr >>> 0 >= $base >>> 0) {
  51439.         break;
  51440.       }
  51441.       if ((HEAP[$info + ($base * 20 & -1) + 19 | 0] & 255 | 0) <= 4) {
  51442.         break;
  51443.       }
  51444.       $base = $base - 1 | 0;
  51445.     }
  51446.   } while (0);
  51447.   do {
  51448.     if (($base | 0) == (HEAP[$end_addr] | 0)) {
  51449.       if ($start_addr >>> 0 >= $base >>> 0) {
  51450.         break;
  51451.       }
  51452.       if ((HEAP[$info + (($base - 1) * 20 & -1) + 18 | 0] & 255 | 0) == 6) {
  51453.         break;
  51454.       }
  51455.       $base = $base - 1 | 0;
  51456.     }
  51457.   } while (0);
  51458.   L852 : do {
  51459.     if ($start_addr >>> 0 < $base >>> 0) {
  51460.       while (1) {
  51461.         if ((HEAP[$info + ($base * 20 & -1) + 18 | 0] & 255 | 0) != 4) {
  51462.           if ((HEAP[$info + ($base * 20 & -1) + 18 | 0] & 255 | 0) != 3) {
  51463.             break L852;
  51464.           }
  51465.         }
  51466.         $base = $base - 1 | 0;
  51467.         if ($start_addr >>> 0 >= $base >>> 0) {
  51468.           break L852;
  51469.         }
  51470.       }
  51471.     }
  51472.   } while (0);
  51473.   L859 : do {
  51474.     if (($start_addr + 1 | 0) >>> 0 < HEAP[$end_addr] >>> 0) {
  51475.       if ($start_addr >>> 0 >= $base >>> 0) {
  51476.         break;
  51477.       }
  51478.       var $45 = $base;
  51479.       $new_pos = ($base | 0) == (HEAP[$end_addr] | 0) ? $45 - 2 | 0 : $45 - 1 | 0;
  51480.       L862 : do {
  51481.         if ((HEAP[$buffer_addr + 52 | 0] | 0) != 1298954605) {
  51482.           if ((HEAP[$buffer_addr + 52 | 0] | 0) == 1415671148) {
  51483.             break;
  51484.           }
  51485.           var $52 = $new_pos;
  51486.           L865 : do {
  51487.             if ($new_pos >>> 0 > $start_addr >>> 0) {
  51488.               var $61 = $52;
  51489.               while (1) {
  51490.                 var $61;
  51491.                 HEAP[$info_addr_i] = $info + ($61 * 20 & -1) | 0;
  51492.                 HEAP[$flags_addr_i] = 16528;
  51493.                 HEAP[$info_addr_i_i] = HEAP[$info_addr_i];
  51494.                 if ((HEAP[HEAP[$info_addr_i_i] + 15 | 0] & 16 | 0) != 0) {
  51495.                   HEAP[$retval_i] = 0;
  51496.                 } else {
  51497.                   HEAP[$retval_i] = (1 << (HEAP[HEAP[$info_addr_i] + 18 | 0] & 255) & HEAP[$flags_addr_i] | 0) != 0;
  51498.                 }
  51499.                 var $70 = $new_pos;
  51500.                 if (!(HEAP[$retval_i] ^ 1)) {
  51501.                   var $74 = $70;
  51502.                   break L865;
  51503.                 }
  51504.                 $new_pos = $70 - 1 | 0;
  51505.                 var $73 = $new_pos;
  51506.                 if ($new_pos >>> 0 > $start_addr >>> 0) {
  51507.                   var $61 = $73;
  51508.                 } else {
  51509.                   var $74 = $73;
  51510.                   break L865;
  51511.                 }
  51512.               }
  51513.             } else {
  51514.               var $74 = $52;
  51515.             }
  51516.           } while (0);
  51517.           var $74;
  51518.           HEAP[$info_addr_i2] = $info + ($74 * 20 & -1) | 0;
  51519.           HEAP[$info_addr_i_i1] = HEAP[$info_addr_i2];
  51520.           HEAP[$flags_addr_i_i] = 16400;
  51521.           HEAP[$info_addr_i_i_i] = HEAP[$info_addr_i_i1];
  51522.           do {
  51523.             if ((HEAP[HEAP[$info_addr_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  51524.               HEAP[$retval_i_i] = 0;
  51525.             } else {
  51526.               var $tobool_i_i7 = (1 << (HEAP[HEAP[$info_addr_i_i1] + 18 | 0] & 255) & HEAP[$flags_addr_i_i] | 0) != 0;
  51527.               HEAP[$retval_i_i] = $tobool_i_i7;
  51528.               if (!$tobool_i_i7) {
  51529.                 break;
  51530.               }
  51531.               if ((HEAP[$info + ($new_pos * 20 & -1) + 19 | 0] & 255 | 0) == 2) {
  51532.                 break;
  51533.               }
  51534.               if (($new_pos + 1 | 0) >>> 0 >= HEAP[$end_addr] >>> 0) {
  51535.                 break L862;
  51536.               }
  51537.               HEAP[$info_addr_i17] = $info + (($new_pos + 1) * 20 & -1) | 0;
  51538.               HEAP[$info_addr_i_i15] = HEAP[$info_addr_i17];
  51539.               HEAP[$flags_addr_i_i16] = 96;
  51540.               HEAP[$info_addr_i_i_i13] = HEAP[$info_addr_i_i15];
  51541.               if ((HEAP[HEAP[$info_addr_i_i_i13] + 15 | 0] & 16 | 0) != 0) {
  51542.                 HEAP[$retval_i_i14] = 0;
  51543.                 break L862;
  51544.               }
  51545.               var $tobool_i_i31 = (1 << (HEAP[HEAP[$info_addr_i_i15] + 18 | 0] & 255) & HEAP[$flags_addr_i_i16] | 0) != 0;
  51546.               HEAP[$retval_i_i14] = $tobool_i_i31;
  51547.               if (!$tobool_i_i31) {
  51548.                 break L862;
  51549.               }
  51550.               $new_pos = $new_pos + 1 | 0;
  51551.               break L862;
  51552.             }
  51553.           } while (0);
  51554.           $new_pos = $start_addr;
  51555.         }
  51556.       } while (0);
  51557.       do {
  51558.         if ($start_addr >>> 0 < $new_pos >>> 0) {
  51559.           if ((HEAP[$info + ($new_pos * 20 & -1) + 19 | 0] & 255 | 0) == 2) {
  51560.             break;
  51561.           }
  51562.           $i = $new_pos;
  51563.           L890 : do {
  51564.             if ($i >>> 0 > $start_addr >>> 0) {
  51565.               var $135 = $tmp;
  51566.               var $136 = $tmp;
  51567.               while (1) {
  51568.                 if ((HEAP[$info + (($i - 1) * 20 & -1) + 19 | 0] & 255 | 0) == 2) {
  51569.                   $old_pos = $i - 1 | 0;
  51570.                   var $143 = $info + ($old_pos * 20 & -1) | 0;
  51571.                   for (var $$src = $143, $$dest = $135, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51572.                     HEAP[$$dest] = HEAP[$$src];
  51573.                   }
  51574.                   _memmove($info + ($old_pos * 20 & -1) | 0, $info + (($old_pos + 1) * 20 & -1) | 0, ($new_pos - $old_pos) * 20 & -1, 4, 0);
  51575.                   var $154 = $info + ($new_pos * 20 & -1) | 0;
  51576.                   for (var $$src = $136, $$dest = $154, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51577.                     HEAP[$$dest] = HEAP[$$src];
  51578.                   }
  51579.                   do {
  51580.                     if ($old_pos >>> 0 < $base >>> 0) {
  51581.                       if (!($base >>> 0 <= $new_pos >>> 0)) {
  51582.                         break;
  51583.                       }
  51584.                       $base = $base - 1 | 0;
  51585.                     }
  51586.                   } while (0);
  51587.                   $new_pos = $new_pos - 1 | 0;
  51588.                 }
  51589.                 $i = $i - 1 | 0;
  51590.                 if ($i >>> 0 <= $start_addr >>> 0) {
  51591.                   break L890;
  51592.                 }
  51593.               }
  51594.             }
  51595.           } while (0);
  51596.           HEAP[$ref_tmp] = $base + 1 | 0;
  51597.           HEAP[$a_addr_i] = $end_addr;
  51598.           HEAP[$b_addr_i] = $ref_tmp;
  51599.           __ZN11hb_buffer_t14merge_clustersEjj($buffer_addr, $new_pos, HEAP[HEAP[$a_addr_i]] >>> 0 < HEAP[HEAP[$b_addr_i]] >>> 0 ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]]);
  51600.           break L859;
  51601.         }
  51602.       } while (0);
  51603.       $i124 = $start_addr;
  51604.       if ($i124 >>> 0 >= $base >>> 0) {
  51605.         break;
  51606.       }
  51607.       while (1) {
  51608.         if ((HEAP[$info + ($i124 * 20 & -1) + 19 | 0] & 255 | 0) == 2) {
  51609.           break;
  51610.         }
  51611.         $i124 = $i124 + 1 | 0;
  51612.         if ($i124 >>> 0 >= $base >>> 0) {
  51613.           break L859;
  51614.         }
  51615.       }
  51616.       HEAP[$ref_tmp136] = $base + 1 | 0;
  51617.       HEAP[$a_addr_i39] = $end_addr;
  51618.       HEAP[$b_addr_i40] = $ref_tmp136;
  51619.       __ZN11hb_buffer_t14merge_clustersEjj($buffer_addr, $i124, HEAP[HEAP[$a_addr_i39]] >>> 0 < HEAP[HEAP[$b_addr_i40]] >>> 0 ? HEAP[HEAP[$a_addr_i39]] : HEAP[HEAP[$b_addr_i40]]);
  51620.     }
  51621.   } while (0);
  51622.   do {
  51623.     if (($start_addr + 1 | 0) >>> 0 < HEAP[$end_addr] >>> 0) {
  51624.       if ((HEAP[$info + ($start_addr * 20 & -1) + 19 | 0] & 255 | 0) != 1) {
  51625.         break;
  51626.       }
  51627.       if ((HEAP[$info + (($start_addr + 1) * 20 & -1) + 19 | 0] & 255 | 0) == 1) {
  51628.         break;
  51629.       }
  51630.       $reph_pos = HEAP[HEAP[$indic_plan | 0] + 16 | 0];
  51631.       L912 : do {
  51632.         if (($reph_pos | 0) == 12) {
  51633.           label = 707;
  51634.         } else {
  51635.           $new_reph_pos = $start_addr + 1 | 0;
  51636.           var $218 = $new_reph_pos;
  51637.           L914 : do {
  51638.             if ($new_reph_pos >>> 0 < $base >>> 0) {
  51639.               var $229 = $218;
  51640.               while (1) {
  51641.                 var $229;
  51642.                 HEAP[$info_addr_i110] = $info + ($229 * 20 & -1) | 0;
  51643.                 HEAP[$info_addr_i_i108] = HEAP[$info_addr_i110];
  51644.                 HEAP[$flags_addr_i_i109] = 16400;
  51645.                 HEAP[$info_addr_i_i_i106] = HEAP[$info_addr_i_i108];
  51646.                 if ((HEAP[HEAP[$info_addr_i_i_i106] + 15 | 0] & 16 | 0) != 0) {
  51647.                   HEAP[$retval_i_i107] = 0;
  51648.                 } else {
  51649.                   HEAP[$retval_i_i107] = (1 << (HEAP[HEAP[$info_addr_i_i108] + 18 | 0] & 255) & HEAP[$flags_addr_i_i109] | 0) != 0;
  51650.                 }
  51651.                 var $239 = $new_reph_pos;
  51652.                 if (!(HEAP[$retval_i_i107] ^ 1)) {
  51653.                   var $243 = $239;
  51654.                   break L914;
  51655.                 }
  51656.                 $new_reph_pos = $239 + 1 | 0;
  51657.                 var $242 = $new_reph_pos;
  51658.                 if ($new_reph_pos >>> 0 < $base >>> 0) {
  51659.                   var $229 = $242;
  51660.                 } else {
  51661.                   var $243 = $242;
  51662.                   break L914;
  51663.                 }
  51664.               }
  51665.             } else {
  51666.               var $243 = $218;
  51667.             }
  51668.           } while (0);
  51669.           var $243;
  51670.           do {
  51671.             if ($243 >>> 0 < $base >>> 0) {
  51672.               HEAP[$info_addr_i168] = $info + ($new_reph_pos * 20 & -1) | 0;
  51673.               HEAP[$info_addr_i_i166] = HEAP[$info_addr_i168];
  51674.               HEAP[$flags_addr_i_i167] = 16400;
  51675.               HEAP[$info_addr_i_i_i164] = HEAP[$info_addr_i_i166];
  51676.               if ((HEAP[HEAP[$info_addr_i_i_i164] + 15 | 0] & 16 | 0) != 0) {
  51677.                 HEAP[$retval_i_i165] = 0;
  51678.                 break;
  51679.               }
  51680.               var $tobool_i_i182 = (1 << (HEAP[HEAP[$info_addr_i_i166] + 18 | 0] & 255) & HEAP[$flags_addr_i_i167] | 0) != 0;
  51681.               HEAP[$retval_i_i165] = $tobool_i_i182;
  51682.               if (!$tobool_i_i182) {
  51683.                 break;
  51684.               }
  51685.               if (($new_reph_pos + 1 | 0) >>> 0 >= $base >>> 0) {
  51686.                 break L912;
  51687.               }
  51688.               HEAP[$info_addr_i189] = $info + (($new_reph_pos + 1) * 20 & -1) | 0;
  51689.               HEAP[$info_addr_i_i187] = HEAP[$info_addr_i189];
  51690.               HEAP[$flags_addr_i_i188] = 96;
  51691.               HEAP[$info_addr_i_i_i185] = HEAP[$info_addr_i_i187];
  51692.               if ((HEAP[HEAP[$info_addr_i_i_i185] + 15 | 0] & 16 | 0) != 0) {
  51693.                 HEAP[$retval_i_i186] = 0;
  51694.                 break L912;
  51695.               }
  51696.               var $tobool_i_i203 = (1 << (HEAP[HEAP[$info_addr_i_i187] + 18 | 0] & 255) & HEAP[$flags_addr_i_i188] | 0) != 0;
  51697.               HEAP[$retval_i_i186] = $tobool_i_i203;
  51698.               if (!$tobool_i_i203) {
  51699.                 break L912;
  51700.               }
  51701.               $new_reph_pos = $new_reph_pos + 1 | 0;
  51702.               break L912;
  51703.             }
  51704.           } while (0);
  51705.           var $294 = $reph_pos;
  51706.           if (($294 | 0) == 5) {
  51707.             $new_reph_pos = $base;
  51708.             var $298 = $new_reph_pos;
  51709.             L938 : do {
  51710.               if (($new_reph_pos + 1 | 0) >>> 0 < HEAP[$end_addr] >>> 0) {
  51711.                 var $299 = $298;
  51712.                 while (1) {
  51713.                   var $299;
  51714.                   var $302 = $new_reph_pos;
  51715.                   if (!((HEAP[$info + (($299 + 1) * 20 & -1) + 19 | 0] & 255 | 0) <= 5)) {
  51716.                     var $306 = $302;
  51717.                     break L938;
  51718.                   }
  51719.                   $new_reph_pos = $302 + 1 | 0;
  51720.                   var $305 = $new_reph_pos;
  51721.                   if (($new_reph_pos + 1 | 0) >>> 0 < HEAP[$end_addr] >>> 0) {
  51722.                     var $299 = $305;
  51723.                   } else {
  51724.                     var $306 = $305;
  51725.                     break L938;
  51726.                   }
  51727.                 }
  51728.               } else {
  51729.                 var $306 = $298;
  51730.               }
  51731.             } while (0);
  51732.             var $306;
  51733.             if ($306 >>> 0 < HEAP[$end_addr] >>> 0) {
  51734.               break;
  51735.             }
  51736.             var $308 = $reph_pos;
  51737.           } else {
  51738.             var $308 = $294;
  51739.           }
  51740.           var $308;
  51741.           if (($308 | 0) != 9) {
  51742.             label = 707;
  51743.             break;
  51744.           }
  51745.           $new_reph_pos = $base;
  51746.           var $312 = $new_reph_pos;
  51747.           L946 : do {
  51748.             if ($new_reph_pos >>> 0 < HEAP[$end_addr] >>> 0) {
  51749.               var $313 = $312;
  51750.               while (1) {
  51751.                 var $313;
  51752.                 var $316 = $new_reph_pos;
  51753.                 if (!((1 << (HEAP[$info + (($313 + 1) * 20 & -1) + 19 | 0] & 255) & 22528 | 0) != 0 ^ 1)) {
  51754.                   var $320 = $316;
  51755.                   break L946;
  51756.                 }
  51757.                 $new_reph_pos = $316 + 1 | 0;
  51758.                 var $319 = $new_reph_pos;
  51759.                 if ($new_reph_pos >>> 0 < HEAP[$end_addr] >>> 0) {
  51760.                   var $313 = $319;
  51761.                 } else {
  51762.                   var $320 = $319;
  51763.                   break L946;
  51764.                 }
  51765.               }
  51766.             } else {
  51767.               var $320 = $312;
  51768.             }
  51769.           } while (0);
  51770.           var $320;
  51771.           if ($320 >>> 0 < HEAP[$end_addr] >>> 0) {
  51772.             break;
  51773.           } else {
  51774.             label = 707;
  51775.             break;
  51776.           }
  51777.         }
  51778.       } while (0);
  51779.       L951 : do {
  51780.         if (label == 707) {
  51781.           $new_reph_pos = $start_addr + 1 | 0;
  51782.           var $325 = $new_reph_pos;
  51783.           L953 : do {
  51784.             if ($new_reph_pos >>> 0 < $base >>> 0) {
  51785.               var $336 = $325;
  51786.               while (1) {
  51787.                 var $336;
  51788.                 HEAP[$info_addr_i252] = $info + ($336 * 20 & -1) | 0;
  51789.                 HEAP[$info_addr_i_i250] = HEAP[$info_addr_i252];
  51790.                 HEAP[$flags_addr_i_i251] = 16400;
  51791.                 HEAP[$info_addr_i_i_i248] = HEAP[$info_addr_i_i250];
  51792.                 if ((HEAP[HEAP[$info_addr_i_i_i248] + 15 | 0] & 16 | 0) != 0) {
  51793.                   HEAP[$retval_i_i249] = 0;
  51794.                 } else {
  51795.                   HEAP[$retval_i_i249] = (1 << (HEAP[HEAP[$info_addr_i_i250] + 18 | 0] & 255) & HEAP[$flags_addr_i_i251] | 0) != 0;
  51796.                 }
  51797.                 var $346 = $new_reph_pos;
  51798.                 if (!(HEAP[$retval_i_i249] ^ 1)) {
  51799.                   var $350 = $346;
  51800.                   break L953;
  51801.                 }
  51802.                 $new_reph_pos = $346 + 1 | 0;
  51803.                 var $349 = $new_reph_pos;
  51804.                 if ($new_reph_pos >>> 0 < $base >>> 0) {
  51805.                   var $336 = $349;
  51806.                 } else {
  51807.                   var $350 = $349;
  51808.                   break L953;
  51809.                 }
  51810.               }
  51811.             } else {
  51812.               var $350 = $325;
  51813.             }
  51814.           } while (0);
  51815.           var $350;
  51816.           do {
  51817.             if ($350 >>> 0 < $base >>> 0) {
  51818.               HEAP[$info_addr_i231] = $info + ($new_reph_pos * 20 & -1) | 0;
  51819.               HEAP[$info_addr_i_i229] = HEAP[$info_addr_i231];
  51820.               HEAP[$flags_addr_i_i230] = 16400;
  51821.               HEAP[$info_addr_i_i_i227] = HEAP[$info_addr_i_i229];
  51822.               if ((HEAP[HEAP[$info_addr_i_i_i227] + 15 | 0] & 16 | 0) != 0) {
  51823.                 HEAP[$retval_i_i228] = 0;
  51824.                 break;
  51825.               }
  51826.               var $tobool_i_i245 = (1 << (HEAP[HEAP[$info_addr_i_i229] + 18 | 0] & 255) & HEAP[$flags_addr_i_i230] | 0) != 0;
  51827.               HEAP[$retval_i_i228] = $tobool_i_i245;
  51828.               if (!$tobool_i_i245) {
  51829.                 break;
  51830.               }
  51831.               if (($new_reph_pos + 1 | 0) >>> 0 >= $base >>> 0) {
  51832.                 break L951;
  51833.               }
  51834.               HEAP[$info_addr_i210] = $info + (($new_reph_pos + 1) * 20 & -1) | 0;
  51835.               HEAP[$info_addr_i_i208] = HEAP[$info_addr_i210];
  51836.               HEAP[$flags_addr_i_i209] = 96;
  51837.               HEAP[$info_addr_i_i_i206] = HEAP[$info_addr_i_i208];
  51838.               if ((HEAP[HEAP[$info_addr_i_i_i206] + 15 | 0] & 16 | 0) != 0) {
  51839.                 HEAP[$retval_i_i207] = 0;
  51840.                 break L951;
  51841.               }
  51842.               var $tobool_i_i224 = (1 << (HEAP[HEAP[$info_addr_i_i208] + 18 | 0] & 255) & HEAP[$flags_addr_i_i209] | 0) != 0;
  51843.               HEAP[$retval_i_i207] = $tobool_i_i224;
  51844.               if (!$tobool_i_i224) {
  51845.                 break L951;
  51846.               }
  51847.               $new_reph_pos = $new_reph_pos + 1 | 0;
  51848.               break L951;
  51849.             }
  51850.           } while (0);
  51851.           $new_reph_pos = HEAP[$end_addr] - 1 | 0;
  51852.           L975 : do {
  51853.             if ($new_reph_pos >>> 0 > $start_addr >>> 0) {
  51854.               while (1) {
  51855.                 if ((HEAP[$info + ($new_reph_pos * 20 & -1) + 19 | 0] & 255 | 0) != 14) {
  51856.                   break L975;
  51857.                 }
  51858.                 $new_reph_pos = $new_reph_pos - 1 | 0;
  51859.                 if ($new_reph_pos >>> 0 <= $start_addr >>> 0) {
  51860.                   break L975;
  51861.                 }
  51862.               }
  51863.             }
  51864.           } while (0);
  51865.           if ((HEAP[104720] | 0) == 0) {
  51866.             HEAP[$u_i_i148] = 0;
  51867.             var $413 = $u_i_i148;
  51868.             HEAP[$413] = HEAP[$413] & -2 | 1;
  51869.             var $call_i_i153 = _getenv(102488);
  51870.             HEAP[$c_i_i149] = $call_i_i153;
  51871.             if ((HEAP[$c_i_i149] | 0) != 0) {
  51872.               var $419 = (_strstr(HEAP[$c_i_i149], 103336) | 0) != 0;
  51873.             } else {
  51874.               var $419 = 0;
  51875.             }
  51876.             var $419;
  51877.             var $420 = $u_i_i148;
  51878.             HEAP[$420] = ($419 & 1) << 1 | HEAP[$420] & -3;
  51879.             var $426 = $u_i_i148;
  51880.             HEAP[104720] = HEAP[$426];
  51881.             HEAP[104721] = HEAP[$426 + 1];
  51882.             HEAP[104722] = HEAP[$426 + 2];
  51883.             HEAP[104723] = HEAP[$426 + 3];
  51884.           }
  51885.           var $429 = $tmp275;
  51886.           HEAP[$429] = HEAP[104720];
  51887.           HEAP[$429 + 1] = HEAP[104721];
  51888.           HEAP[$429 + 2] = HEAP[104722];
  51889.           HEAP[$429 + 3] = HEAP[104723];
  51890.           if (((HEAP[$tmp275] >>> 1 & 1) << 31 >> 31 | 0) != 0) {
  51891.             break;
  51892.           }
  51893.           HEAP[$info_addr_i131] = $info + ($new_reph_pos * 20 & -1) | 0;
  51894.           HEAP[$info_addr_i_i129] = HEAP[$info_addr_i131];
  51895.           HEAP[$flags_addr_i_i130] = 16400;
  51896.           HEAP[$info_addr_i_i_i127] = HEAP[$info_addr_i_i129];
  51897.           if ((HEAP[HEAP[$info_addr_i_i_i127] + 15 | 0] & 16 | 0) != 0) {
  51898.             HEAP[$retval_i_i128] = 0;
  51899.             break;
  51900.           }
  51901.           var $tobool_i_i145 = (1 << (HEAP[HEAP[$info_addr_i_i129] + 18 | 0] & 255) & HEAP[$flags_addr_i_i130] | 0) != 0;
  51902.           HEAP[$retval_i_i128] = $tobool_i_i145;
  51903.           if (!$tobool_i_i145) {
  51904.             break;
  51905.           }
  51906.           $i282 = $base + 1 | 0;
  51907.           if ($i282 >>> 0 >= $new_reph_pos >>> 0) {
  51908.             break;
  51909.           }
  51910.           while (1) {
  51911.             if ((HEAP[$info + ($i282 * 20 & -1) + 18 | 0] & 255 | 0) == 7) {
  51912.               $new_reph_pos = $new_reph_pos - 1 | 0;
  51913.             }
  51914.             $i282 = $i282 + 1 | 0;
  51915.             if ($i282 >>> 0 >= $new_reph_pos >>> 0) {
  51916.               break L951;
  51917.             }
  51918.           }
  51919.         }
  51920.       } while (0);
  51921.       __ZN11hb_buffer_t14merge_clustersEjj($buffer_addr, $start_addr, HEAP[$end_addr]);
  51922.       var $472 = $reph;
  51923.       var $473 = $info + ($start_addr * 20 & -1) | 0;
  51924.       for (var $$src = $473, $$dest = $472, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51925.         HEAP[$$dest] = HEAP[$$src];
  51926.       }
  51927.       _memmove($info + ($start_addr * 20 & -1) | 0, $info + (($start_addr + 1) * 20 & -1) | 0, ($new_reph_pos - $start_addr) * 20 & -1, 4, 0);
  51928.       var $484 = $info + ($new_reph_pos * 20 & -1) | 0;
  51929.       var $485 = $reph;
  51930.       for (var $$src = $485, $$dest = $484, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  51931.         HEAP[$$dest] = HEAP[$$src];
  51932.       }
  51933.       if ($start_addr >>> 0 >= $base >>> 0) {
  51934.         break;
  51935.       }
  51936.       if (!($base >>> 0 <= $new_reph_pos >>> 0)) {
  51937.         break;
  51938.       }
  51939.       $base = $base - 1 | 0;
  51940.     }
  51941.   } while (0);
  51942.   L1000 : do {
  51943.     if ((HEAP[$indic_plan + 60 | 0] | 0) != 0) {
  51944.       if (($base + 1 | 0) >>> 0 >= HEAP[$end_addr] >>> 0) {
  51945.         break;
  51946.       }
  51947.       $i322 = $base + 1 | 0;
  51948.       if ($i322 >>> 0 >= HEAP[$end_addr] >>> 0) {
  51949.         break;
  51950.       }
  51951.       while (1) {
  51952.         var $add333 = $i322 + 1 | 0;
  51953.         if ((HEAP[$indic_plan + 60 | 0] & HEAP[$info + ($i322 * 20 & -1) + 4 | 0] | 0) != 0) {
  51954.           break;
  51955.         }
  51956.         $i322 = $add333;
  51957.         if ($i322 >>> 0 >= HEAP[$end_addr] >>> 0) {
  51958.           break L1000;
  51959.         }
  51960.       }
  51961.       if (($add333 | 0) != (HEAP[$end_addr] | 0)) {
  51962.         if ((HEAP[$indic_plan + 60 | 0] & HEAP[$info + (($i322 + 1) * 20 & -1) + 4 | 0] | 0) != 0) {
  51963.           break;
  51964.         }
  51965.       }
  51966.       $new_pos344 = $base;
  51967.       L1010 : do {
  51968.         if ((HEAP[$buffer_addr + 52 | 0] | 0) != 1298954605) {
  51969.           if ((HEAP[$buffer_addr + 52 | 0] | 0) == 1415671148) {
  51970.             break;
  51971.           }
  51972.           var $517 = $new_pos344;
  51973.           L1013 : do {
  51974.             if ($new_pos344 >>> 0 > $start_addr >>> 0) {
  51975.               var $526 = $517;
  51976.               while (1) {
  51977.                 var $526;
  51978.                 HEAP[$info_addr_i87] = $info + (($526 - 1) * 20 & -1) | 0;
  51979.                 HEAP[$flags_addr_i88] = 16528;
  51980.                 HEAP[$info_addr_i_i85] = HEAP[$info_addr_i87];
  51981.                 if ((HEAP[HEAP[$info_addr_i_i85] + 15 | 0] & 16 | 0) != 0) {
  51982.                   HEAP[$retval_i86] = 0;
  51983.                 } else {
  51984.                   HEAP[$retval_i86] = (1 << (HEAP[HEAP[$info_addr_i87] + 18 | 0] & 255) & HEAP[$flags_addr_i88] | 0) != 0;
  51985.                 }
  51986.                 var $535 = $new_pos344;
  51987.                 if (!(HEAP[$retval_i86] ^ 1)) {
  51988.                   var $539 = $535;
  51989.                   break L1013;
  51990.                 }
  51991.                 $new_pos344 = $535 - 1 | 0;
  51992.                 var $538 = $new_pos344;
  51993.                 if ($new_pos344 >>> 0 > $start_addr >>> 0) {
  51994.                   var $526 = $538;
  51995.                 } else {
  51996.                   var $539 = $538;
  51997.                   break L1013;
  51998.                 }
  51999.               }
  52000.             } else {
  52001.               var $539 = $517;
  52002.             }
  52003.           } while (0);
  52004.           var $539;
  52005.           if ($539 >>> 0 <= $start_addr >>> 0) {
  52006.             break;
  52007.           }
  52008.           if ((HEAP[$info + (($new_pos344 - 1) * 20 & -1) + 18 | 0] & 255 | 0) != 7) {
  52009.             break;
  52010.           }
  52011.           $old_pos375 = $i322;
  52012.           $i377 = $base + 1 | 0;
  52013.           if ($i377 >>> 0 >= $old_pos375 >>> 0) {
  52014.             break;
  52015.           }
  52016.           while (1) {
  52017.             if ((HEAP[$info + ($i377 * 20 & -1) + 18 | 0] & 255 | 0) == 7) {
  52018.               break;
  52019.             }
  52020.             $i377 = $i377 + 1 | 0;
  52021.             if ($i377 >>> 0 >= $old_pos375 >>> 0) {
  52022.               break L1010;
  52023.             }
  52024.           }
  52025.           $new_pos344 = $new_pos344 - 1 | 0;
  52026.         }
  52027.       } while (0);
  52028.       do {
  52029.         if ($new_pos344 >>> 0 > $start_addr >>> 0) {
  52030.           HEAP[$info_addr_i68] = $info + (($new_pos344 - 1) * 20 & -1) | 0;
  52031.           HEAP[$info_addr_i_i66] = HEAP[$info_addr_i68];
  52032.           HEAP[$flags_addr_i_i67] = 16400;
  52033.           HEAP[$info_addr_i_i_i64] = HEAP[$info_addr_i_i66];
  52034.           if ((HEAP[HEAP[$info_addr_i_i_i64] + 15 | 0] & 16 | 0) != 0) {
  52035.             HEAP[$retval_i_i65] = 0;
  52036.             break;
  52037.           }
  52038.           var $tobool_i_i82 = (1 << (HEAP[HEAP[$info_addr_i_i66] + 18 | 0] & 255) & HEAP[$flags_addr_i_i67] | 0) != 0;
  52039.           HEAP[$retval_i_i65] = $tobool_i_i82;
  52040.           if (!$tobool_i_i82) {
  52041.             break;
  52042.           }
  52043.           if ($new_pos344 >>> 0 >= HEAP[$end_addr] >>> 0) {
  52044.             break;
  52045.           }
  52046.           HEAP[$info_addr_i47] = $info + ($new_pos344 * 20 & -1) | 0;
  52047.           HEAP[$info_addr_i_i45] = HEAP[$info_addr_i47];
  52048.           HEAP[$flags_addr_i_i46] = 96;
  52049.           HEAP[$info_addr_i_i_i43] = HEAP[$info_addr_i_i45];
  52050.           if ((HEAP[HEAP[$info_addr_i_i_i43] + 15 | 0] & 16 | 0) != 0) {
  52051.             HEAP[$retval_i_i44] = 0;
  52052.             break;
  52053.           }
  52054.           var $tobool_i_i61 = (1 << (HEAP[HEAP[$info_addr_i_i45] + 18 | 0] & 255) & HEAP[$flags_addr_i_i46] | 0) != 0;
  52055.           HEAP[$retval_i_i44] = $tobool_i_i61;
  52056.           if (!$tobool_i_i61) {
  52057.             break;
  52058.           }
  52059.           $new_pos344 = $new_pos344 + 1 | 0;
  52060.         }
  52061.       } while (0);
  52062.       $old_pos411 = $i322;
  52063.       __ZN11hb_buffer_t14merge_clustersEjj($buffer_addr, $new_pos344, $old_pos411 + 1 | 0);
  52064.       var $612 = $tmp414;
  52065.       var $613 = $info + ($old_pos411 * 20 & -1) | 0;
  52066.       for (var $$src = $613, $$dest = $612, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  52067.         HEAP[$$dest] = HEAP[$$src];
  52068.       }
  52069.       _memmove($info + (($new_pos344 + 1) * 20 & -1) | 0, $info + ($new_pos344 * 20 & -1) | 0, ($old_pos411 - $new_pos344) * 20 & -1, 4, 0);
  52070.       var $624 = $info + ($new_pos344 * 20 & -1) | 0;
  52071.       var $625 = $tmp414;
  52072.       for (var $$src = $625, $$dest = $624, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  52073.         HEAP[$$dest] = HEAP[$$src];
  52074.       }
  52075.       if (!($new_pos344 >>> 0 <= $base >>> 0)) {
  52076.         break;
  52077.       }
  52078.       if ($base >>> 0 >= $old_pos411 >>> 0) {
  52079.         break;
  52080.       }
  52081.       $base = $base + 1 | 0;
  52082.     }
  52083.   } while (0);
  52084.   do {
  52085.     if ((HEAP[$info + ($start_addr * 20 & -1) + 19 | 0] & 255 | 0) == 2) {
  52086.       if (($start_addr | 0) != 0) {
  52087.         HEAP[$info_addr_i33] = $info + (($start_addr - 1) * 20 & -1) | 0;
  52088.         if ((1 << (HEAP[HEAP[$info_addr_i33] + 16 | 0] & 31) & 8190 | 0) != 0) {
  52089.           break;
  52090.         }
  52091.       }
  52092.       var $mask453 = $info + ($start_addr * 20 & -1) + 4 | 0;
  52093.       HEAP[$mask453] = HEAP[$mask453] | HEAP[$indic_plan + 92 | 0];
  52094.     }
  52095.   } while (0);
  52096.   if ((HEAP[104720] | 0) == 0) {
  52097.     HEAP[$u_i_i] = 0;
  52098.     var $651 = $u_i_i;
  52099.     HEAP[$651] = HEAP[$651] & -2 | 1;
  52100.     var $call_i_i = _getenv(102488);
  52101.     HEAP[$c_i_i] = $call_i_i;
  52102.     if ((HEAP[$c_i_i] | 0) != 0) {
  52103.       var $657 = (_strstr(HEAP[$c_i_i], 103336) | 0) != 0;
  52104.     } else {
  52105.       var $657 = 0;
  52106.     }
  52107.     var $657;
  52108.     var $658 = $u_i_i;
  52109.     HEAP[$658] = ($657 & 1) << 1 | HEAP[$658] & -3;
  52110.     var $664 = $u_i_i;
  52111.     HEAP[104720] = HEAP[$664];
  52112.     HEAP[104721] = HEAP[$664 + 1];
  52113.     HEAP[104722] = HEAP[$664 + 2];
  52114.     HEAP[104723] = HEAP[$664 + 3];
  52115.   }
  52116.   var $667 = $tmp455;
  52117.   HEAP[$667] = HEAP[104720];
  52118.   HEAP[$667 + 1] = HEAP[104721];
  52119.   HEAP[$667 + 2] = HEAP[104722];
  52120.   HEAP[$667 + 3] = HEAP[104723];
  52121.   if (((HEAP[$tmp455] >>> 1 & 1) << 31 >> 31 | 0) == 0) {
  52122.     STACKTOP = __stackBase__;
  52123.     return;
  52124.   }
  52125.   __ZN11hb_buffer_t14merge_clustersEjj($buffer_addr, $start_addr, HEAP[$end_addr]);
  52126.   STACKTOP = __stackBase__;
  52127.   return;
  52128. }
  52129. function __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan, $face, $buffer, $start, $end) {
  52130.   var __stackBase__ = STACKTOP;
  52131.   STACKTOP = STACKTOP + 40 | 0;
  52132.   var $plan_addr_i1 = __stackBase__;
  52133.   var $face_addr_i2 = __stackBase__ + 4;
  52134.   var $buffer_addr_i3 = __stackBase__ + 8;
  52135.   var $start_addr_i4 = __stackBase__ + 12;
  52136.   var $end_addr_i5 = __stackBase__ + 16;
  52137.   var $plan_addr_i = __stackBase__ + 20;
  52138.   var $face_addr_i = __stackBase__ + 24;
  52139.   var $buffer_addr_i = __stackBase__ + 28;
  52140.   var $start_addr_i = __stackBase__ + 32;
  52141.   var $end_addr_i = __stackBase__ + 36;
  52142.   var $plan_addr;
  52143.   var $face_addr;
  52144.   var $buffer_addr;
  52145.   var $start_addr;
  52146.   var $end_addr;
  52147.   $plan_addr = $plan;
  52148.   $face_addr = $face;
  52149.   $buffer_addr = $buffer;
  52150.   $start_addr = $start;
  52151.   $end_addr = $end;
  52152.   var $4 = HEAP[HEAP[$buffer_addr + 96 | 0] + ($start_addr * 20 & -1) + 14 | 0] & 15;
  52153.   if (($4 | 0) == 3) {
  52154.     HEAP[$plan_addr_i1] = $plan_addr;
  52155.     HEAP[$face_addr_i2] = $face_addr;
  52156.     HEAP[$buffer_addr_i3] = $buffer_addr;
  52157.     HEAP[$start_addr_i4] = $start_addr;
  52158.     HEAP[$end_addr_i5] = $end_addr;
  52159.     __ZL37initial_reordering_standalone_clusterPK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj(HEAP[$plan_addr_i1], HEAP[$face_addr_i2], HEAP[$buffer_addr_i3], HEAP[$start_addr_i4], HEAP[$end_addr_i5]);
  52160.     STACKTOP = __stackBase__;
  52161.     return;
  52162.   } else if (($4 | 0) == 1) {
  52163.     HEAP[$plan_addr_i] = $plan_addr;
  52164.     HEAP[$face_addr_i] = $face_addr;
  52165.     HEAP[$buffer_addr_i] = $buffer_addr;
  52166.     HEAP[$start_addr_i] = $start_addr;
  52167.     HEAP[$end_addr_i] = $end_addr;
  52168.     __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj(HEAP[$plan_addr_i], HEAP[$face_addr_i], HEAP[$buffer_addr_i], HEAP[$start_addr_i], HEAP[$end_addr_i]);
  52169.     STACKTOP = __stackBase__;
  52170.     return;
  52171.   } else if (($4 | 0) == 0) {
  52172.     __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan_addr, $face_addr, $buffer_addr, $start_addr, $end_addr);
  52173.     STACKTOP = __stackBase__;
  52174.     return;
  52175.   } else if (($4 | 0) == 2) {
  52176.     __ZL37initial_reordering_standalone_clusterPK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan_addr, $face_addr, $buffer_addr, $start_addr, $end_addr);
  52177.     STACKTOP = __stackBase__;
  52178.     return;
  52179.   } else {
  52180.     STACKTOP = __stackBase__;
  52181.     return;
  52182.   }
  52183. }
  52184. function __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan, $face, $buffer, $start, $end) {
  52185.   var label = 0;
  52186.   var __stackBase__ = STACKTOP;
  52187.   STACKTOP = STACKTOP + 256 | 0;
  52188.   var $info_addr_i_i_i209 = __stackBase__;
  52189.   var $retval_i_i210 = __stackBase__ + 4;
  52190.   var $info_addr_i_i211 = __stackBase__ + 5;
  52191.   var $flags_addr_i_i212 = __stackBase__ + 9;
  52192.   var $info_addr_i213 = __stackBase__ + 13;
  52193.   var $info_addr_i_i_i188 = __stackBase__ + 17;
  52194.   var $retval_i_i189 = __stackBase__ + 21;
  52195.   var $info_addr_i_i190 = __stackBase__ + 22;
  52196.   var $flags_addr_i_i191 = __stackBase__ + 26;
  52197.   var $info_addr_i192 = __stackBase__ + 30;
  52198.   var $info_addr_i_i_i167 = __stackBase__ + 34;
  52199.   var $retval_i_i168 = __stackBase__ + 38;
  52200.   var $info_addr_i_i169 = __stackBase__ + 39;
  52201.   var $flags_addr_i_i170 = __stackBase__ + 43;
  52202.   var $info_addr_i171 = __stackBase__ + 47;
  52203.   var $a_addr_i = __stackBase__ + 51;
  52204.   var $b_addr_i = __stackBase__ + 55;
  52205.   var $info_addr_i_i_i146 = __stackBase__ + 59;
  52206.   var $retval_i_i147 = __stackBase__ + 63;
  52207.   var $info_addr_i_i148 = __stackBase__ + 64;
  52208.   var $flags_addr_i_i149 = __stackBase__ + 68;
  52209.   var $info_addr_i150 = __stackBase__ + 72;
  52210.   var $info_addr_i_i_i125 = __stackBase__ + 76;
  52211.   var $retval_i_i126 = __stackBase__ + 80;
  52212.   var $info_addr_i_i127 = __stackBase__ + 81;
  52213.   var $flags_addr_i_i128 = __stackBase__ + 85;
  52214.   var $info_addr_i129 = __stackBase__ + 89;
  52215.   var $info_addr_i_i_i105 = __stackBase__ + 93;
  52216.   var $retval_i_i106 = __stackBase__ + 97;
  52217.   var $info_addr_i_i107 = __stackBase__ + 98;
  52218.   var $flags_addr_i_i108 = __stackBase__ + 102;
  52219.   var $info_addr_i109 = __stackBase__ + 106;
  52220.   var $info_addr_i_i_i84 = __stackBase__ + 110;
  52221.   var $retval_i_i85 = __stackBase__ + 114;
  52222.   var $info_addr_i_i86 = __stackBase__ + 115;
  52223.   var $flags_addr_i_i87 = __stackBase__ + 119;
  52224.   var $info_addr_i88 = __stackBase__ + 123;
  52225.   var $info_addr_i_i_i63 = __stackBase__ + 127;
  52226.   var $retval_i_i64 = __stackBase__ + 131;
  52227.   var $info_addr_i_i65 = __stackBase__ + 132;
  52228.   var $flags_addr_i_i66 = __stackBase__ + 136;
  52229.   var $info_addr_i67 = __stackBase__ + 140;
  52230.   var $info_addr_i_i_i42 = __stackBase__ + 144;
  52231.   var $retval_i_i43 = __stackBase__ + 148;
  52232.   var $info_addr_i_i44 = __stackBase__ + 149;
  52233.   var $flags_addr_i_i45 = __stackBase__ + 153;
  52234.   var $info_addr_i46 = __stackBase__ + 157;
  52235.   var $info_addr_i_i_i21 = __stackBase__ + 161;
  52236.   var $retval_i_i22 = __stackBase__ + 165;
  52237.   var $info_addr_i_i23 = __stackBase__ + 166;
  52238.   var $flags_addr_i_i24 = __stackBase__ + 170;
  52239.   var $info_addr_i25 = __stackBase__ + 174;
  52240.   var $info_addr_i_i_i1 = __stackBase__ + 178;
  52241.   var $retval_i_i2 = __stackBase__ + 182;
  52242.   var $info_addr_i_i3 = __stackBase__ + 183;
  52243.   var $flags_addr_i_i4 = __stackBase__ + 187;
  52244.   var $info_addr_i5 = __stackBase__ + 191;
  52245.   var $info_addr_i_i_i = __stackBase__ + 195;
  52246.   var $retval_i_i = __stackBase__ + 199;
  52247.   var $info_addr_i_i = __stackBase__ + 200;
  52248.   var $flags_addr_i_i = __stackBase__ + 204;
  52249.   var $info_addr_i = __stackBase__ + 208;
  52250.   var $face_addr;
  52251.   var $buffer_addr;
  52252.   var $start_addr;
  52253.   var $end_addr;
  52254.   var $indic_plan;
  52255.   var $info;
  52256.   var $base;
  52257.   var $has_reph;
  52258.   var $limit;
  52259.   var $glyphs = __stackBase__ + 212;
  52260.   var $i;
  52261.   var $seen_below;
  52262.   var $i102;
  52263.   var $i128;
  52264.   var $i159;
  52265.   var $ref_tmp = __stackBase__ + 220;
  52266.   var $ref_tmp168 = __stackBase__ + 224;
  52267.   var $i185;
  52268.   var $j;
  52269.   var $i225;
  52270.   var $j237;
  52271.   var $t = __stackBase__ + 228;
  52272.   var $last_pos;
  52273.   var $i277;
  52274.   var $j307;
  52275.   var $last_halant;
  52276.   var $i351;
  52277.   var $j363;
  52278.   var $i392;
  52279.   var $mask;
  52280.   var $i407;
  52281.   var $i428;
  52282.   var $i452;
  52283.   var $i468;
  52284.   var $i522;
  52285.   var $glyphs528 = __stackBase__ + 248;
  52286.   var $i568;
  52287.   var $non_joiner;
  52288.   var $j582;
  52289.   $face_addr = $face;
  52290.   $buffer_addr = $buffer;
  52291.   $start_addr = $start;
  52292.   $end_addr = $end;
  52293.   $indic_plan = HEAP[$plan + 916 | 0];
  52294.   $info = HEAP[$buffer_addr + 96 | 0];
  52295.   $base = $end_addr;
  52296.   $has_reph = 0;
  52297.   $limit = $start_addr;
  52298.   do {
  52299.     if ((HEAP[$indic_plan + 52 | 0] | 0) != 0) {
  52300.       if (!(($start_addr + 3 | 0) >>> 0 <= $end_addr >>> 0)) {
  52301.         label = 815;
  52302.         break;
  52303.       }
  52304.       do {
  52305.         if ((HEAP[HEAP[$indic_plan | 0] + 20 | 0] | 0) == 0) {
  52306.           HEAP[$info_addr_i] = $info + (($start_addr + 2) * 20 & -1) | 0;
  52307.           HEAP[$info_addr_i_i] = HEAP[$info_addr_i];
  52308.           HEAP[$flags_addr_i_i] = 96;
  52309.           HEAP[$info_addr_i_i_i] = HEAP[$info_addr_i_i];
  52310.           if ((HEAP[HEAP[$info_addr_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  52311.             HEAP[$retval_i_i] = 0;
  52312.             break;
  52313.           } else {
  52314.             var $tobool_i_i = (1 << (HEAP[HEAP[$info_addr_i_i] + 18 | 0] & 255) & HEAP[$flags_addr_i_i] | 0) != 0;
  52315.             HEAP[$retval_i_i] = $tobool_i_i;
  52316.             if ($tobool_i_i) {
  52317.               label = 805;
  52318.               break;
  52319.             } else {
  52320.               break;
  52321.             }
  52322.           }
  52323.         } else {
  52324.           label = 805;
  52325.         }
  52326.       } while (0);
  52327.       if (label == 805) {
  52328.         if ((HEAP[HEAP[$indic_plan | 0] + 20 | 0] | 0) != 1) {
  52329.           label = 815;
  52330.           break;
  52331.         }
  52332.         if ((HEAP[$info + (($start_addr + 2) * 20 & -1) + 18 | 0] & 255 | 0) != 6) {
  52333.           label = 815;
  52334.           break;
  52335.         }
  52336.       }
  52337.       var $arrayinit_begin = $glyphs | 0;
  52338.       HEAP[$arrayinit_begin] = HEAP[$info + ($start_addr * 20 & -1) | 0];
  52339.       HEAP[$arrayinit_begin + 4 | 0] = HEAP[$info + (($start_addr + 1) * 20 & -1) | 0];
  52340.       if (!__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t($indic_plan + 12 | 0, $glyphs | 0, 2, 1, $face_addr)) {
  52341.         break;
  52342.       }
  52343.       $limit = $limit + 2 | 0;
  52344.       L1086 : do {
  52345.         if ($limit >>> 0 < $end_addr >>> 0) {
  52346.           while (1) {
  52347.             HEAP[$info_addr_i46] = $info + ($limit * 20 & -1) | 0;
  52348.             HEAP[$info_addr_i_i44] = HEAP[$info_addr_i46];
  52349.             HEAP[$flags_addr_i_i45] = 96;
  52350.             HEAP[$info_addr_i_i_i42] = HEAP[$info_addr_i_i44];
  52351.             if ((HEAP[HEAP[$info_addr_i_i_i42] + 15 | 0] & 16 | 0) != 0) {
  52352.               break;
  52353.             }
  52354.             var $tobool_i_i60 = (1 << (HEAP[HEAP[$info_addr_i_i44] + 18 | 0] & 255) & HEAP[$flags_addr_i_i45] | 0) != 0;
  52355.             HEAP[$retval_i_i43] = $tobool_i_i60;
  52356.             if (!$tobool_i_i60) {
  52357.               break L1086;
  52358.             }
  52359.             $limit = $limit + 1 | 0;
  52360.             if ($limit >>> 0 >= $end_addr >>> 0) {
  52361.               break L1086;
  52362.             }
  52363.           }
  52364.           HEAP[$retval_i_i43] = 0;
  52365.         }
  52366.       } while (0);
  52367.       $base = $start_addr;
  52368.       $has_reph = 1;
  52369.       break;
  52370.     } else {
  52371.       label = 815;
  52372.     }
  52373.   } while (0);
  52374.   do {
  52375.     if (label == 815) {
  52376.       if ((HEAP[HEAP[$indic_plan | 0] + 20 | 0] | 0) != 3) {
  52377.         break;
  52378.       }
  52379.       if ((HEAP[$info + ($start_addr * 20 & -1) + 18 | 0] & 255 | 0) != 15) {
  52380.         break;
  52381.       }
  52382.       $limit = $limit + 1 | 0;
  52383.       L1098 : do {
  52384.         if ($limit >>> 0 < $end_addr >>> 0) {
  52385.           while (1) {
  52386.             HEAP[$info_addr_i67] = $info + ($limit * 20 & -1) | 0;
  52387.             HEAP[$info_addr_i_i65] = HEAP[$info_addr_i67];
  52388.             HEAP[$flags_addr_i_i66] = 96;
  52389.             HEAP[$info_addr_i_i_i63] = HEAP[$info_addr_i_i65];
  52390.             if ((HEAP[HEAP[$info_addr_i_i_i63] + 15 | 0] & 16 | 0) != 0) {
  52391.               break;
  52392.             }
  52393.             var $tobool_i_i81 = (1 << (HEAP[HEAP[$info_addr_i_i65] + 18 | 0] & 255) & HEAP[$flags_addr_i_i66] | 0) != 0;
  52394.             HEAP[$retval_i_i64] = $tobool_i_i81;
  52395.             if (!$tobool_i_i81) {
  52396.               break L1098;
  52397.             }
  52398.             $limit = $limit + 1 | 0;
  52399.             if ($limit >>> 0 >= $end_addr >>> 0) {
  52400.               break L1098;
  52401.             }
  52402.           }
  52403.           HEAP[$retval_i_i64] = 0;
  52404.         }
  52405.       } while (0);
  52406.       $base = $start_addr;
  52407.       $has_reph = 1;
  52408.     }
  52409.   } while (0);
  52410.   var $119 = HEAP[HEAP[$indic_plan | 0] + 12 | 0];
  52411.   L1107 : do {
  52412.     if (($119 | 0) == 1) {
  52413.       $i = $end_addr;
  52414.       $seen_below = 0;
  52415.       L1110 : while (1) {
  52416.         $i = $i - 1 | 0;
  52417.         HEAP[$info_addr_i213] = $info + ($i * 20 & -1) | 0;
  52418.         HEAP[$info_addr_i_i211] = HEAP[$info_addr_i213];
  52419.         HEAP[$flags_addr_i_i212] = 202758;
  52420.         HEAP[$info_addr_i_i_i209] = HEAP[$info_addr_i_i211];
  52421.         do {
  52422.           if ((HEAP[HEAP[$info_addr_i_i_i209] + 15 | 0] & 16 | 0) != 0) {
  52423.             HEAP[$retval_i_i210] = 0;
  52424.             label = 837;
  52425.             break;
  52426.           } else {
  52427.             var $tobool_i_i227 = (1 << (HEAP[HEAP[$info_addr_i_i211] + 18 | 0] & 255) & HEAP[$flags_addr_i_i212] | 0) != 0;
  52428.             HEAP[$retval_i_i210] = $tobool_i_i227;
  52429.             if (!$tobool_i_i227) {
  52430.               label = 837;
  52431.               break;
  52432.             }
  52433.             if ((HEAP[$info + ($i * 20 & -1) + 19 | 0] & 255 | 0) != 8) {
  52434.               if ((HEAP[$info + ($i * 20 & -1) + 19 | 0] & 255 | 0) != 11) {
  52435.                 break L1110;
  52436.               }
  52437.               if ($seen_below & 1) {
  52438.                 break L1110;
  52439.               }
  52440.             }
  52441.             if ((HEAP[$info + ($i * 20 & -1) + 19 | 0] & 255 | 0) == 8) {
  52442.               $seen_below = 1;
  52443.             }
  52444.             $base = $i;
  52445.             break;
  52446.           }
  52447.         } while (0);
  52448.         do {
  52449.           if (label == 837) {
  52450.             label = 0;
  52451.             if ($start_addr >>> 0 >= $i >>> 0) {
  52452.               break;
  52453.             }
  52454.             if ((HEAP[$info + ($i * 20 & -1) + 18 | 0] & 255 | 0) != 6) {
  52455.               break;
  52456.             }
  52457.             if ((HEAP[$info + (($i - 1) * 20 & -1) + 18 | 0] & 255 | 0) == 4) {
  52458.               break L1107;
  52459.             }
  52460.           }
  52461.         } while (0);
  52462.         if ($i >>> 0 <= $limit >>> 0) {
  52463.           break L1107;
  52464.         }
  52465.       }
  52466.       $base = $i;
  52467.     } else if (($119 | 0) == 0) {
  52468.       if (!($has_reph & 1)) {
  52469.         $base = $limit;
  52470.       }
  52471.       $i102 = $limit;
  52472.       L1133 : do {
  52473.         if ($i102 >>> 0 < $end_addr >>> 0) {
  52474.           while (1) {
  52475.             HEAP[$info_addr_i192] = $info + ($i102 * 20 & -1) | 0;
  52476.             HEAP[$info_addr_i_i190] = HEAP[$info_addr_i192];
  52477.             HEAP[$flags_addr_i_i191] = 202758;
  52478.             HEAP[$info_addr_i_i_i188] = HEAP[$info_addr_i_i190];
  52479.             do {
  52480.               if ((HEAP[HEAP[$info_addr_i_i_i188] + 15 | 0] & 16 | 0) != 0) {
  52481.                 HEAP[$retval_i_i189] = 0;
  52482.               } else {
  52483.                 var $tobool_i_i206 = (1 << (HEAP[HEAP[$info_addr_i_i190] + 18 | 0] & 255) & HEAP[$flags_addr_i_i191] | 0) != 0;
  52484.                 HEAP[$retval_i_i189] = $tobool_i_i206;
  52485.                 if (!$tobool_i_i206) {
  52486.                   break;
  52487.                 }
  52488.                 if ((HEAP[$info + ($i102 * 20 & -1) + 19 | 0] & 255 | 0) != 4) {
  52489.                   break;
  52490.                 }
  52491.                 if ($limit >>> 0 < $i102 >>> 0) {
  52492.                   if ((HEAP[$info + (($i102 - 1) * 20 & -1) + 18 | 0] & 255 | 0) == 6) {
  52493.                     break L1133;
  52494.                   }
  52495.                 }
  52496.                 $base = $i102;
  52497.               }
  52498.             } while (0);
  52499.             $i102 = $i102 + 1 | 0;
  52500.             if ($i102 >>> 0 >= $end_addr >>> 0) {
  52501.               break L1133;
  52502.             }
  52503.           }
  52504.         }
  52505.       } while (0);
  52506.       $i128 = $base + 1 | 0;
  52507.       if ($i128 >>> 0 >= $end_addr >>> 0) {
  52508.         break;
  52509.       }
  52510.       while (1) {
  52511.         HEAP[$info_addr_i171] = $info + ($i128 * 20 & -1) | 0;
  52512.         HEAP[$info_addr_i_i169] = HEAP[$info_addr_i171];
  52513.         HEAP[$flags_addr_i_i170] = 202758;
  52514.         HEAP[$info_addr_i_i_i167] = HEAP[$info_addr_i_i169];
  52515.         do {
  52516.           if ((HEAP[HEAP[$info_addr_i_i_i167] + 15 | 0] & 16 | 0) != 0) {
  52517.             HEAP[$retval_i_i168] = 0;
  52518.           } else {
  52519.             var $tobool_i_i185 = (1 << (HEAP[HEAP[$info_addr_i_i169] + 18 | 0] & 255) & HEAP[$flags_addr_i_i170] | 0) != 0;
  52520.             HEAP[$retval_i_i168] = $tobool_i_i185;
  52521.             if (!$tobool_i_i185) {
  52522.               break;
  52523.             }
  52524.             if ((HEAP[$info + ($i128 * 20 & -1) + 19 | 0] & 255 | 0) != 4) {
  52525.               break;
  52526.             }
  52527.             HEAP[$info + ($i128 * 20 & -1) + 19 | 0] = 8;
  52528.           }
  52529.         } while (0);
  52530.         $i128 = $i128 + 1 | 0;
  52531.         if ($i128 >>> 0 >= $end_addr >>> 0) {
  52532.           break L1107;
  52533.         }
  52534.       }
  52535.     } else {
  52536.       ___assert_func(102536, 708, 109024, 103472);
  52537.     }
  52538.   } while (0);
  52539.   do {
  52540.     if ($has_reph & 1) {
  52541.       if (($base | 0) != ($start_addr | 0)) {
  52542.         break;
  52543.       }
  52544.       if (!(($limit - $base | 0) >>> 0 <= 2)) {
  52545.         break;
  52546.       }
  52547.       $has_reph = 0;
  52548.     }
  52549.   } while (0);
  52550.   $i159 = $start_addr;
  52551.   L1162 : do {
  52552.     if ($i159 >>> 0 < $base >>> 0) {
  52553.       while (1) {
  52554.         HEAP[$ref_tmp] = 3;
  52555.         HEAP[$ref_tmp168] = HEAP[$info + ($i159 * 20 & -1) + 19 | 0] & 255;
  52556.         HEAP[$a_addr_i] = $ref_tmp;
  52557.         HEAP[$b_addr_i] = $ref_tmp168;
  52558.         HEAP[$info + ($i159 * 20 & -1) + 19 | 0] = ((HEAP[HEAP[$a_addr_i]] | 0) < (HEAP[HEAP[$b_addr_i]] | 0) ? HEAP[HEAP[$a_addr_i]] : HEAP[HEAP[$b_addr_i]]) & 255;
  52559.         $i159 = $i159 + 1 | 0;
  52560.         if ($i159 >>> 0 >= $base >>> 0) {
  52561.           break L1162;
  52562.         }
  52563.       }
  52564.     }
  52565.   } while (0);
  52566.   if ($base >>> 0 < $end_addr >>> 0) {
  52567.     HEAP[$info + ($base * 20 & -1) + 19 | 0] = 4;
  52568.   }
  52569.   $i185 = $base + 1 | 0;
  52570.   L1170 : do {
  52571.     if ($i185 >>> 0 < $end_addr >>> 0) {
  52572.       while (1) {
  52573.         var $add197 = $i185 + 1 | 0;
  52574.         if ((HEAP[$info + ($i185 * 20 & -1) + 18 | 0] & 255 | 0) == 7) {
  52575.           break;
  52576.         }
  52577.         $i185 = $add197;
  52578.         if ($i185 >>> 0 >= $end_addr >>> 0) {
  52579.           break L1170;
  52580.         }
  52581.       }
  52582.       $j = $add197;
  52583.       if ($j >>> 0 >= $end_addr >>> 0) {
  52584.         break;
  52585.       }
  52586.       while (1) {
  52587.         HEAP[$info_addr_i150] = $info + ($j * 20 & -1) | 0;
  52588.         HEAP[$info_addr_i_i148] = HEAP[$info_addr_i150];
  52589.         HEAP[$flags_addr_i_i149] = 202758;
  52590.         HEAP[$info_addr_i_i_i146] = HEAP[$info_addr_i_i148];
  52591.         if ((HEAP[HEAP[$info_addr_i_i_i146] + 15 | 0] & 16 | 0) != 0) {
  52592.           HEAP[$retval_i_i147] = 0;
  52593.           var $301 = 0;
  52594.         } else {
  52595.           var $tobool_i_i164 = (1 << (HEAP[HEAP[$info_addr_i_i148] + 18 | 0] & 255) & HEAP[$flags_addr_i_i149] | 0) != 0;
  52596.           HEAP[$retval_i_i147] = $tobool_i_i164;
  52597.           var $301 = $tobool_i_i164;
  52598.         }
  52599.         var $301;
  52600.         var $302 = $j;
  52601.         if ($301) {
  52602.           break;
  52603.         }
  52604.         $j = $302 + 1 | 0;
  52605.         if ($j >>> 0 >= $end_addr >>> 0) {
  52606.           break L1170;
  52607.         }
  52608.       }
  52609.       HEAP[$info + ($302 * 20 & -1) + 19 | 0] = 13;
  52610.     }
  52611.   } while (0);
  52612.   if ($has_reph & 1) {
  52613.     HEAP[$info + ($start_addr * 20 & -1) + 19 | 0] = 1;
  52614.   }
  52615.   L1188 : do {
  52616.     if (HEAP[$indic_plan + 4 | 0] & 1) {
  52617.       $i225 = $base + 1 | 0;
  52618.       if ($i225 >>> 0 >= $end_addr >>> 0) {
  52619.         break;
  52620.       }
  52621.       while (1) {
  52622.         if ((HEAP[$info + ($i225 * 20 & -1) + 18 | 0] & 255 | 0) == 4) {
  52623.           break;
  52624.         }
  52625.         $i225 = $i225 + 1 | 0;
  52626.         if ($i225 >>> 0 >= $end_addr >>> 0) {
  52627.           break L1188;
  52628.         }
  52629.       }
  52630.       $j237 = $end_addr - 1 | 0;
  52631.       L1194 : do {
  52632.         if ($j237 >>> 0 > $i225 >>> 0) {
  52633.           while (1) {
  52634.             HEAP[$info_addr_i129] = $info + ($j237 * 20 & -1) | 0;
  52635.             HEAP[$info_addr_i_i127] = HEAP[$info_addr_i129];
  52636.             HEAP[$flags_addr_i_i128] = 202758;
  52637.             HEAP[$info_addr_i_i_i125] = HEAP[$info_addr_i_i127];
  52638.             if ((HEAP[HEAP[$info_addr_i_i_i125] + 15 | 0] & 16 | 0) != 0) {
  52639.               HEAP[$retval_i_i126] = 0;
  52640.             } else {
  52641.               var $tobool_i_i143 = (1 << (HEAP[HEAP[$info_addr_i_i127] + 18 | 0] & 255) & HEAP[$flags_addr_i_i128] | 0) != 0;
  52642.               HEAP[$retval_i_i126] = $tobool_i_i143;
  52643.               if ($tobool_i_i143) {
  52644.                 break L1194;
  52645.               }
  52646.             }
  52647.             if ((HEAP[$info + ($j237 * 20 & -1) + 18 | 0] & 255 | 0) == 4) {
  52648.               break L1194;
  52649.             }
  52650.             $j237 = $j237 - 1 | 0;
  52651.             if ($j237 >>> 0 <= $i225 >>> 0) {
  52652.               break L1194;
  52653.             }
  52654.           }
  52655.         }
  52656.       } while (0);
  52657.       if ((HEAP[$info + ($j237 * 20 & -1) + 18 | 0] & 255 | 0) == 4) {
  52658.         break;
  52659.       }
  52660.       if ($j237 >>> 0 <= $i225 >>> 0) {
  52661.         break;
  52662.       }
  52663.       var $358 = $t;
  52664.       var $359 = $info + ($i225 * 20 & -1) | 0;
  52665.       for (var $$src = $359, $$dest = $358, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  52666.         HEAP[$$dest] = HEAP[$$src];
  52667.       }
  52668.       _memmove($info + ($i225 * 20 & -1) | 0, $info + (($i225 + 1) * 20 & -1) | 0, ($j237 - $i225) * 20 & -1, 4, 0);
  52669.       var $370 = $info + ($j237 * 20 & -1) | 0;
  52670.       var $371 = $t;
  52671.       for (var $$src = $371, $$dest = $370, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  52672.         HEAP[$$dest] = HEAP[$$src];
  52673.       }
  52674.     }
  52675.   } while (0);
  52676.   $last_pos = 0;
  52677.   $i277 = $start_addr;
  52678.   L1207 : do {
  52679.     if ($i277 >>> 0 < $end_addr >>> 0) {
  52680.       while (1) {
  52681.         L1210 : do {
  52682.           if ((1 << (HEAP[$info + ($i277 * 20 & -1) + 18 | 0] & 255) & 24696 | 0) != 0) {
  52683.             HEAP[$info + ($i277 * 20 & -1) + 19 | 0] = $last_pos & 255;
  52684.             if ((HEAP[$info + ($i277 * 20 & -1) + 18 | 0] & 255 | 0) != 4) {
  52685.               break;
  52686.             }
  52687.             if ((HEAP[$info + ($i277 * 20 & -1) + 19 | 0] & 255 | 0) != 2) {
  52688.               break;
  52689.             }
  52690.             $j307 = $i277;
  52691.             if ($j307 >>> 0 <= $start_addr >>> 0) {
  52692.               break;
  52693.             }
  52694.             while (1) {
  52695.               var $396 = $j307;
  52696.               if ((HEAP[$info + (($j307 - 1) * 20 & -1) + 19 | 0] & 255 | 0) != 2) {
  52697.                 break;
  52698.               }
  52699.               $j307 = $396 - 1 | 0;
  52700.               if ($j307 >>> 0 <= $start_addr >>> 0) {
  52701.                 break L1210;
  52702.               }
  52703.             }
  52704.             HEAP[$info + ($i277 * 20 & -1) + 19 | 0] = HEAP[$info + (($396 - 1) * 20 & -1) + 19 | 0];
  52705.           } else {
  52706.             if ((HEAP[$info + ($i277 * 20 & -1) + 19 | 0] & 255 | 0) == 14) {
  52707.               break;
  52708.             }
  52709.             $last_pos = HEAP[$info + ($i277 * 20 & -1) + 19 | 0] & 255;
  52710.           }
  52711.         } while (0);
  52712.         $i277 = $i277 + 1 | 0;
  52713.         if ($i277 >>> 0 >= $end_addr >>> 0) {
  52714.           break L1207;
  52715.         }
  52716.       }
  52717.     }
  52718.   } while (0);
  52719.   $last_halant = $end_addr;
  52720.   $i351 = $base + 1 | 0;
  52721.   L1222 : do {
  52722.     if ($i351 >>> 0 < $end_addr >>> 0) {
  52723.       while (1) {
  52724.         HEAP[$info_addr_i109] = $info + ($i351 * 20 & -1) | 0;
  52725.         HEAP[$info_addr_i_i107] = HEAP[$info_addr_i109];
  52726.         HEAP[$flags_addr_i_i108] = 16400;
  52727.         HEAP[$info_addr_i_i_i105] = HEAP[$info_addr_i_i107];
  52728.         if ((HEAP[HEAP[$info_addr_i_i_i105] + 15 | 0] & 16 | 0) != 0) {
  52729.           HEAP[$retval_i_i106] = 0;
  52730.           var $449 = 0;
  52731.         } else {
  52732.           var $tobool_i_i123 = (1 << (HEAP[HEAP[$info_addr_i_i107] + 18 | 0] & 255) & HEAP[$flags_addr_i_i108] | 0) != 0;
  52733.           HEAP[$retval_i_i106] = $tobool_i_i123;
  52734.           var $449 = $tobool_i_i123;
  52735.         }
  52736.         var $449;
  52737.         var $450 = $i351;
  52738.         L1230 : do {
  52739.           if ($449) {
  52740.             $last_halant = $450;
  52741.           } else {
  52742.             HEAP[$info_addr_i88] = $info + ($450 * 20 & -1) | 0;
  52743.             HEAP[$info_addr_i_i86] = HEAP[$info_addr_i88];
  52744.             HEAP[$flags_addr_i_i87] = 202758;
  52745.             HEAP[$info_addr_i_i_i84] = HEAP[$info_addr_i_i86];
  52746.             if ((HEAP[HEAP[$info_addr_i_i_i84] + 15 | 0] & 16 | 0) != 0) {
  52747.               HEAP[$retval_i_i85] = 0;
  52748.               break;
  52749.             }
  52750.             var $tobool_i_i102 = (1 << (HEAP[HEAP[$info_addr_i_i86] + 18 | 0] & 255) & HEAP[$flags_addr_i_i87] | 0) != 0;
  52751.             HEAP[$retval_i_i85] = $tobool_i_i102;
  52752.             if (!$tobool_i_i102) {
  52753.               break;
  52754.             }
  52755.             $j363 = $last_halant;
  52756.             if ($j363 >>> 0 >= $i351 >>> 0) {
  52757.               break;
  52758.             }
  52759.             while (1) {
  52760.               if ((HEAP[$info + ($j363 * 20 & -1) + 19 | 0] & 255 | 0) != 14) {
  52761.                 HEAP[$info + ($j363 * 20 & -1) + 19 | 0] = HEAP[$info + ($i351 * 20 & -1) + 19 | 0];
  52762.               }
  52763.               $j363 = $j363 + 1 | 0;
  52764.               if ($j363 >>> 0 >= $i351 >>> 0) {
  52765.                 break L1230;
  52766.               }
  52767.             }
  52768.           }
  52769.         } while (0);
  52770.         $i351 = $i351 + 1 | 0;
  52771.         if ($i351 >>> 0 >= $end_addr >>> 0) {
  52772.           break L1222;
  52773.         }
  52774.       }
  52775.     }
  52776.   } while (0);
  52777.   __ZN11hb_buffer_t14merge_clustersEjj($buffer_addr, $base, $end_addr);
  52778.   __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E($info + ($start_addr * 20 & -1) | 0, $end_addr - $start_addr | 0, 158);
  52779.   $base = $end_addr;
  52780.   $i392 = $start_addr;
  52781.   L1244 : do {
  52782.     if ($i392 >>> 0 < $end_addr >>> 0) {
  52783.       while (1) {
  52784.         var $490 = $i392;
  52785.         if ((HEAP[$info + ($i392 * 20 & -1) + 19 | 0] & 255 | 0) == 4) {
  52786.           break;
  52787.         }
  52788.         $i392 = $490 + 1 | 0;
  52789.         if ($i392 >>> 0 >= $end_addr >>> 0) {
  52790.           break L1244;
  52791.         }
  52792.       }
  52793.       $base = $490;
  52794.     }
  52795.   } while (0);
  52796.   $i407 = $start_addr;
  52797.   L1250 : do {
  52798.     if ($i407 >>> 0 < $end_addr >>> 0) {
  52799.       while (1) {
  52800.         var $mask_array419 = $indic_plan + 44 | 0;
  52801.         if ((HEAP[$info + ($i407 * 20 & -1) + 19 | 0] & 255 | 0) != 1) {
  52802.           var $mask_array419231 = $mask_array419;
  52803.           break L1250;
  52804.         }
  52805.         var $mask422 = $info + ($i407 * 20 & -1) + 4 | 0;
  52806.         HEAP[$mask422] = HEAP[$mask422] | HEAP[$mask_array419 + 8 | 0];
  52807.         $i407 = $i407 + 1 | 0;
  52808.         if ($i407 >>> 0 >= $end_addr >>> 0) {
  52809.           label = 928;
  52810.           break L1250;
  52811.         }
  52812.       }
  52813.     } else {
  52814.       label = 928;
  52815.     }
  52816.   } while (0);
  52817.   if (label == 928) {
  52818.     var $mask_array419231 = $indic_plan + 44 | 0;
  52819.   }
  52820.   var $mask_array419231;
  52821.   $mask = HEAP[$mask_array419231 + 24 | 0];
  52822.   $i428 = $start_addr;
  52823.   L1257 : do {
  52824.     if ($i428 >>> 0 < $base >>> 0) {
  52825.       while (1) {
  52826.         var $mask433 = $info + ($i428 * 20 & -1) + 4 | 0;
  52827.         HEAP[$mask433] = HEAP[$mask433] | $mask;
  52828.         $i428 = $i428 + 1 | 0;
  52829.         if ($i428 >>> 0 >= $base >>> 0) {
  52830.           break L1257;
  52831.         }
  52832.       }
  52833.     }
  52834.   } while (0);
  52835.   $mask = 0;
  52836.   if ($base >>> 0 < $end_addr >>> 0) {
  52837.     var $mask441 = $info + ($base * 20 & -1) + 4 | 0;
  52838.     HEAP[$mask441] = HEAP[$mask441] | $mask;
  52839.   }
  52840.   $mask = HEAP[$indic_plan + 72 | 0] | HEAP[$indic_plan + 64 | 0] | HEAP[$indic_plan + 76 | 0];
  52841.   $i452 = $base + 1 | 0;
  52842.   L1264 : do {
  52843.     if ($i452 >>> 0 < $end_addr >>> 0) {
  52844.       while (1) {
  52845.         var $mask458 = $info + ($i452 * 20 & -1) + 4 | 0;
  52846.         HEAP[$mask458] = HEAP[$mask458] | $mask;
  52847.         $i452 = $i452 + 1 | 0;
  52848.         if ($i452 >>> 0 >= $end_addr >>> 0) {
  52849.           break L1264;
  52850.         }
  52851.       }
  52852.     }
  52853.   } while (0);
  52854.   L1268 : do {
  52855.     if (HEAP[$indic_plan + 4 | 0] & 1) {
  52856.       if ((HEAP[$buffer_addr + 52 | 0] | 0) != 1147500129) {
  52857.         break;
  52858.       }
  52859.       $i468 = $start_addr;
  52860.       if (($i468 + 1 | 0) >>> 0 >= $base >>> 0) {
  52861.         break;
  52862.       }
  52863.       while (1) {
  52864.         do {
  52865.           if ((HEAP[$info + ($i468 * 20 & -1) + 18 | 0] & 255 | 0) == 16) {
  52866.             if ((HEAP[$info + (($i468 + 1) * 20 & -1) + 18 | 0] & 255 | 0) != 4) {
  52867.               break;
  52868.             }
  52869.             if (($i468 + 2 | 0) != ($base | 0)) {
  52870.               if ((HEAP[$info + (($i468 + 2) * 20 & -1) + 18 | 0] & 255 | 0) == 6) {
  52871.                 break;
  52872.               }
  52873.             }
  52874.             var $mask502 = $info + ($i468 * 20 & -1) + 4 | 0;
  52875.             HEAP[$mask502] = HEAP[$mask502] | HEAP[$indic_plan + 64 | 0];
  52876.             var $mask508 = $info + (($i468 + 1) * 20 & -1) + 4 | 0;
  52877.             HEAP[$mask508] = HEAP[$mask508] | HEAP[$indic_plan + 64 | 0];
  52878.           }
  52879.         } while (0);
  52880.         $i468 = $i468 + 1 | 0;
  52881.         if (($i468 + 1 | 0) >>> 0 >= $base >>> 0) {
  52882.           break L1268;
  52883.         }
  52884.       }
  52885.     }
  52886.   } while (0);
  52887.   L1281 : do {
  52888.     if ((HEAP[$indic_plan + 60 | 0] | 0) != 0) {
  52889.       if (($base + 2 | 0) >>> 0 >= $end_addr >>> 0) {
  52890.         break;
  52891.       }
  52892.       $i522 = $base + 1 | 0;
  52893.       if (($i522 + 1 | 0) >>> 0 >= $end_addr >>> 0) {
  52894.         break;
  52895.       }
  52896.       var $arrayinit_begin529 = $glyphs528 | 0;
  52897.       var $arrayinit_element532 = $arrayinit_begin529 + 4 | 0;
  52898.       var $arraydecay536 = $glyphs528 | 0;
  52899.       while (1) {
  52900.         HEAP[$arrayinit_begin529] = HEAP[$info + ($i522 * 20 & -1) | 0];
  52901.         HEAP[$arrayinit_element532] = HEAP[$info + (($i522 + 1) * 20 & -1) | 0];
  52902.         if (__ZNK26would_substitute_feature_t16would_substituteEPKjjbP9hb_face_t($indic_plan + 20 | 0, $arraydecay536, 2, 1, $face_addr)) {
  52903.           break;
  52904.         }
  52905.         $i522 = $i522 + 1 | 0;
  52906.         if (($i522 + 1 | 0) >>> 0 >= $end_addr >>> 0) {
  52907.           break L1281;
  52908.         }
  52909.       }
  52910.       var $589 = $i522;
  52911.       $i522 = $589 + 1 | 0;
  52912.       var $mask544 = $info + ($589 * 20 & -1) + 4 | 0;
  52913.       HEAP[$mask544] = HEAP[$mask544] | HEAP[$indic_plan + 60 | 0];
  52914.       var $594 = $i522;
  52915.       $i522 = $594 + 1 | 0;
  52916.       var $mask550 = $info + ($594 * 20 & -1) + 4 | 0;
  52917.       HEAP[$mask550] = HEAP[$mask550] | HEAP[$indic_plan + 60 | 0];
  52918.       if ($i522 >>> 0 >= $end_addr >>> 0) {
  52919.         break;
  52920.       }
  52921.       while (1) {
  52922.         var $mask558 = $info + ($i522 * 20 & -1) + 4 | 0;
  52923.         HEAP[$mask558] = HEAP[$mask558] | HEAP[$indic_plan + 80 | 0];
  52924.         $i522 = $i522 + 1 | 0;
  52925.         if ($i522 >>> 0 >= $end_addr >>> 0) {
  52926.           break L1281;
  52927.         }
  52928.       }
  52929.     }
  52930.   } while (0);
  52931.   $i568 = $start_addr + 1 | 0;
  52932.   if ($i568 >>> 0 >= $end_addr >>> 0) {
  52933.     STACKTOP = __stackBase__;
  52934.     return;
  52935.   }
  52936.   while (1) {
  52937.     HEAP[$info_addr_i25] = $info + ($i568 * 20 & -1) | 0;
  52938.     HEAP[$info_addr_i_i23] = HEAP[$info_addr_i25];
  52939.     HEAP[$flags_addr_i_i24] = 96;
  52940.     HEAP[$info_addr_i_i_i21] = HEAP[$info_addr_i_i23];
  52941.     L1297 : do {
  52942.       if ((HEAP[HEAP[$info_addr_i_i_i21] + 15 | 0] & 16 | 0) != 0) {
  52943.         HEAP[$retval_i_i22] = 0;
  52944.       } else {
  52945.         var $tobool_i_i39 = (1 << (HEAP[HEAP[$info_addr_i_i23] + 18 | 0] & 255) & HEAP[$flags_addr_i_i24] | 0) != 0;
  52946.         HEAP[$retval_i_i22] = $tobool_i_i39;
  52947.         if (!$tobool_i_i39) {
  52948.           break;
  52949.         }
  52950.         $non_joiner = (HEAP[$info + ($i568 * 20 & -1) + 18 | 0] & 255 | 0) == 5 & 1;
  52951.         $j582 = $i568;
  52952.         while (1) {
  52953.           $j582 = $j582 - 1 | 0;
  52954.           if ($non_joiner & 1) {
  52955.             var $mask590 = $info + ($j582 * 20 & -1) + 4 | 0;
  52956.             HEAP[$mask590] = HEAP[$mask590] & (HEAP[$indic_plan + 68 | 0] ^ -1);
  52957.           }
  52958.           if ($j582 >>> 0 <= $start_addr >>> 0) {
  52959.             break L1297;
  52960.           }
  52961.           HEAP[$info_addr_i5] = $info + ($j582 * 20 & -1) | 0;
  52962.           HEAP[$info_addr_i_i3] = HEAP[$info_addr_i5];
  52963.           HEAP[$flags_addr_i_i4] = 202758;
  52964.           HEAP[$info_addr_i_i_i1] = HEAP[$info_addr_i_i3];
  52965.           if ((HEAP[HEAP[$info_addr_i_i_i1] + 15 | 0] & 16 | 0) != 0) {
  52966.             HEAP[$retval_i_i2] = 0;
  52967.           } else {
  52968.             HEAP[$retval_i_i2] = (1 << (HEAP[HEAP[$info_addr_i_i3] + 18 | 0] & 255) & HEAP[$flags_addr_i_i4] | 0) != 0;
  52969.           }
  52970.           if (!(HEAP[$retval_i_i2] ^ 1)) {
  52971.             break L1297;
  52972.           }
  52973.         }
  52974.       }
  52975.     } while (0);
  52976.     $i568 = $i568 + 1 | 0;
  52977.     if ($i568 >>> 0 >= $end_addr >>> 0) {
  52978.       break;
  52979.     }
  52980.   }
  52981.   STACKTOP = __stackBase__;
  52982.   return;
  52983. }
  52984. function __ZL32normalization_preference_myanmarPK23hb_segment_properties_t($props) {
  52985.   return 2;
  52986. }
  52987. function __ZL19compare_indic_orderPK15hb_glyph_info_tS1_($pa, $pb) {
  52988.   var $a;
  52989.   var $b;
  52990.   $a = HEAP[$pa + 19 | 0] & 255;
  52991.   $b = HEAP[$pb + 19 | 0] & 255;
  52992.   if (($a | 0) < ($b | 0)) {
  52993.     var $cond6 = -1;
  52994.     var $cond6;
  52995.     return $cond6;
  52996.   }
  52997.   var $cond6 = ($a | 0) == ($b | 0) ? 0 : 1;
  52998.   var $cond6;
  52999.   return $cond6;
  53000. }
  53001. function __Z23hb_indic_get_categoriesj($u) {
  53002.   var $retval;
  53003.   var $u_addr;
  53004.   $u_addr = $u;
  53005.   var $2 = $u_addr;
  53006.   if (2304 <= $u_addr >>> 0 & $u_addr >>> 0 <= 4256) {
  53007.     $retval = HEAP[($2 - 2304 << 1) + 139160 | 0];
  53008.     var $38 = $retval;
  53009.     return $38;
  53010.   }
  53011.   var $5 = $u_addr;
  53012.   if (5888 <= $2 >>> 0 & $u_addr >>> 0 <= 6144) {
  53013.     $retval = HEAP[($5 - 3936 << 1) + 139160 | 0];
  53014.     var $38 = $retval;
  53015.     return $38;
  53016.   }
  53017.   var $8 = $u_addr;
  53018.   if (6400 <= $5 >>> 0 & $u_addr >>> 0 <= 6832) {
  53019.     $retval = HEAP[($8 - 4192 << 1) + 139160 | 0];
  53020.     var $38 = $retval;
  53021.     return $38;
  53022.   }
  53023.   var $11 = $u_addr;
  53024.   if (6912 <= $8 >>> 0 & $u_addr >>> 0 <= 7248) {
  53025.     $retval = HEAP[($11 - 4272 << 1) + 139160 | 0];
  53026.     var $38 = $retval;
  53027.     return $38;
  53028.   }
  53029.   var $14 = $u_addr;
  53030.   if (7376 <= $11 >>> 0 & $u_addr >>> 0 <= 7424) {
  53031.     $retval = HEAP[($14 - 4400 << 1) + 139160 | 0];
  53032.     var $38 = $retval;
  53033.     return $38;
  53034.   }
  53035.   var $17 = $u_addr;
  53036.   if (43008 <= $14 >>> 0 & $u_addr >>> 0 <= 43776) {
  53037.     $retval = HEAP[($17 - 39984 << 1) + 139160 | 0];
  53038.     var $38 = $retval;
  53039.     return $38;
  53040.   }
  53041.   var $20 = $u_addr;
  53042.   if (43968 <= $17 >>> 0 & $u_addr >>> 0 <= 44032) {
  53043.     $retval = HEAP[($20 - 40176 << 1) + 139160 | 0];
  53044.     var $38 = $retval;
  53045.     return $38;
  53046.   }
  53047.   var $23 = $u_addr;
  53048.   if (68096 <= $20 >>> 0 & $u_addr >>> 0 <= 68192) {
  53049.     $retval = HEAP[($23 - 64240 << 1) + 139160 | 0];
  53050.     var $38 = $retval;
  53051.     return $38;
  53052.   }
  53053.   var $26 = $u_addr;
  53054.   if (69632 <= $23 >>> 0 & $u_addr >>> 0 <= 69840) {
  53055.     $retval = HEAP[($26 - 65680 << 1) + 139160 | 0];
  53056.     var $38 = $retval;
  53057.     return $38;
  53058.   }
  53059.   var $29 = $u_addr;
  53060.   if (69888 <= $26 >>> 0 & $u_addr >>> 0 <= 69968) {
  53061.     $retval = HEAP[($29 - 65728 << 1) + 139160 | 0];
  53062.     var $38 = $retval;
  53063.     return $38;
  53064.   }
  53065.   var $32 = $u_addr;
  53066.   if (70016 <= $29 >>> 0 & $u_addr >>> 0 <= 70112) {
  53067.     $retval = HEAP[($32 - 65776 << 1) + 139160 | 0];
  53068.     var $38 = $retval;
  53069.     return $38;
  53070.   }
  53071.   var $35 = $u_addr;
  53072.   if (71296 <= $32 >>> 0 & $u_addr >>> 0 <= 71376) {
  53073.     $retval = HEAP[($35 - 66960 << 1) + 139160 | 0];
  53074.     var $38 = $retval;
  53075.     return $38;
  53076.   }
  53077.   if (($35 | 0) == 160) {
  53078.     $retval = 3851;
  53079.     var $38 = $retval;
  53080.     return $38;
  53081.   }
  53082.   if (($u_addr | 0) == 9676) {
  53083.     $retval = 3851;
  53084.     var $38 = $retval;
  53085.     return $38;
  53086.   } else {
  53087.     $retval = 3840;
  53088.     var $38 = $retval;
  53089.     return $38;
  53090.   }
  53091. }
  53092. function __ZL37initial_reordering_standalone_clusterPK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan, $face, $buffer, $start, $end) {
  53093.   var __stackBase__ = STACKTOP;
  53094.   STACKTOP = STACKTOP + 12 | 0;
  53095.   var $u_i_i = __stackBase__;
  53096.   var $c_i_i = __stackBase__ + 4;
  53097.   var $plan_addr;
  53098.   var $face_addr;
  53099.   var $buffer_addr;
  53100.   var $start_addr;
  53101.   var $end_addr;
  53102.   var $tmp = __stackBase__ + 8;
  53103.   $plan_addr = $plan;
  53104.   $face_addr = $face;
  53105.   $buffer_addr = $buffer;
  53106.   $start_addr = $start;
  53107.   $end_addr = $end;
  53108.   if ((HEAP[104720] | 0) == 0) {
  53109.     HEAP[$u_i_i] = 0;
  53110.     var $3 = $u_i_i;
  53111.     HEAP[$3] = HEAP[$3] & -2 | 1;
  53112.     var $call_i_i = _getenv(102488);
  53113.     HEAP[$c_i_i] = $call_i_i;
  53114.     if ((HEAP[$c_i_i] | 0) != 0) {
  53115.       var $9 = (_strstr(HEAP[$c_i_i], 103336) | 0) != 0;
  53116.     } else {
  53117.       var $9 = 0;
  53118.     }
  53119.     var $9;
  53120.     var $10 = $u_i_i;
  53121.     HEAP[$10] = ($9 & 1) << 1 | HEAP[$10] & -3;
  53122.     var $16 = $u_i_i;
  53123.     HEAP[104720] = HEAP[$16];
  53124.     HEAP[104721] = HEAP[$16 + 1];
  53125.     HEAP[104722] = HEAP[$16 + 2];
  53126.     HEAP[104723] = HEAP[$16 + 3];
  53127.   }
  53128.   var $19 = $tmp;
  53129.   HEAP[$19] = HEAP[104720];
  53130.   HEAP[$19 + 1] = HEAP[104721];
  53131.   HEAP[$19 + 2] = HEAP[104722];
  53132.   HEAP[$19 + 3] = HEAP[104723];
  53133.   do {
  53134.     if (((HEAP[$tmp] >>> 1 & 1) << 31 >> 31 | 0) != 0) {
  53135.       if ((HEAP[HEAP[$buffer_addr + 96 | 0] + (($end_addr - 1) * 20 & -1) + 18 | 0] & 255 | 0) != 12) {
  53136.         break;
  53137.       }
  53138.       STACKTOP = __stackBase__;
  53139.       return;
  53140.     }
  53141.   } while (0);
  53142.   __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj($plan_addr, $face_addr, $buffer_addr, $start_addr, $end_addr);
  53143.   STACKTOP = __stackBase__;
  53144.   return;
  53145. }
  53146. function __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E($array, $len, $compar) {
  53147.   var label = 0;
  53148.   var __stackBase__ = STACKTOP;
  53149.   STACKTOP = STACKTOP + 52 | 0;
  53150.   var $array_addr_i = __stackBase__;
  53151.   var $len_addr_i = __stackBase__ + 4;
  53152.   var $compar_addr_i = __stackBase__ + 8;
  53153.   var $array2_addr_i = __stackBase__ + 12;
  53154.   var $k_i = __stackBase__ + 16;
  53155.   var $new_k_i = __stackBase__ + 20;
  53156.   var $j_i = __stackBase__ + 24;
  53157.   var $t_i = __stackBase__ + 28;
  53158.   var $t12_i = __stackBase__ + 48;
  53159.   HEAP[$array_addr_i] = $array;
  53160.   HEAP[$len_addr_i] = $len;
  53161.   HEAP[$compar_addr_i] = $compar;
  53162.   HEAP[$array2_addr_i] = 0;
  53163.   if ((HEAP[$len_addr_i] | 0) == 0) {
  53164.     var $51 = $array_addr_i;
  53165.     var $52 = $len_addr_i;
  53166.     var $53 = $compar_addr_i;
  53167.     var $54 = $array2_addr_i;
  53168.     var $55 = $k_i;
  53169.     var $56 = $new_k_i;
  53170.     var $57 = $j_i;
  53171.     var $58 = $t_i;
  53172.     var $59 = $t12_i;
  53173.     STACKTOP = __stackBase__;
  53174.     return;
  53175.   }
  53176.   HEAP[$k_i] = HEAP[$len_addr_i] - 1 | 0;
  53177.   var $14 = $t_i;
  53178.   var $15 = $t_i;
  53179.   while (1) {
  53180.     HEAP[$new_k_i] = 0;
  53181.     HEAP[$j_i] = 0;
  53182.     if (HEAP[$j_i] >>> 0 >= HEAP[$k_i] >>> 0) {
  53183.       break;
  53184.     }
  53185.     while (1) {
  53186.       if ((FUNCTION_TABLE[HEAP[$compar_addr_i]](HEAP[$array_addr_i] + (HEAP[$j_i] * 20 & -1) | 0, HEAP[$array_addr_i] + ((HEAP[$j_i] + 1) * 20 & -1) | 0) | 0) > 0) {
  53187.         var $25 = HEAP[$array_addr_i] + (HEAP[$j_i] * 20 & -1) | 0;
  53188.         for (var $$src = $25, $$dest = $14, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  53189.           HEAP[$$dest] = HEAP[$$src];
  53190.         }
  53191.         var $30 = HEAP[$array_addr_i] + (HEAP[$j_i] * 20 & -1) | 0;
  53192.         var $31 = HEAP[$array_addr_i] + ((HEAP[$j_i] + 1) * 20 & -1) | 0;
  53193.         for (var $$src = $31, $$dest = $30, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  53194.           HEAP[$$dest] = HEAP[$$src];
  53195.         }
  53196.         var $34 = HEAP[$array_addr_i] + ((HEAP[$j_i] + 1) * 20 & -1) | 0;
  53197.         for (var $$src = $15, $$dest = $34, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  53198.           HEAP[$$dest] = HEAP[$$src];
  53199.         }
  53200.         if ((HEAP[$array2_addr_i] | 0) != 0) {
  53201.           HEAP[$t12_i] = HEAP[(HEAP[$j_i] << 2) + HEAP[$array2_addr_i] | 0];
  53202.           HEAP[(HEAP[$j_i] << 2) + HEAP[$array2_addr_i] | 0] = HEAP[(HEAP[$j_i] + 1 << 2) + HEAP[$array2_addr_i] | 0];
  53203.           HEAP[(HEAP[$j_i] + 1 << 2) + HEAP[$array2_addr_i] | 0] = HEAP[$t12_i];
  53204.         }
  53205.         HEAP[$new_k_i] = HEAP[$j_i];
  53206.       }
  53207.       HEAP[$j_i] = HEAP[$j_i] + 1 | 0;
  53208.       if (HEAP[$j_i] >>> 0 >= HEAP[$k_i] >>> 0) {
  53209.         break;
  53210.       }
  53211.     }
  53212.     var $_pr_i = HEAP[$new_k_i];
  53213.     HEAP[$k_i] = $_pr_i;
  53214.     if (($_pr_i | 0) == 0) {
  53215.       label = 1045;
  53216.       break;
  53217.     }
  53218.   }
  53219.   if (label == 1045) {
  53220.     var $51 = $array_addr_i;
  53221.     var $52 = $len_addr_i;
  53222.     var $53 = $compar_addr_i;
  53223.     var $54 = $array2_addr_i;
  53224.     var $55 = $k_i;
  53225.     var $56 = $new_k_i;
  53226.     var $57 = $j_i;
  53227.     var $58 = $t_i;
  53228.     var $59 = $t12_i;
  53229.     STACKTOP = __stackBase__;
  53230.     return;
  53231.   }
  53232.   HEAP[$k_i] = 0;
  53233.   var $51 = $array_addr_i;
  53234.   var $52 = $len_addr_i;
  53235.   var $53 = $compar_addr_i;
  53236.   var $54 = $array2_addr_i;
  53237.   var $55 = $k_i;
  53238.   var $56 = $new_k_i;
  53239.   var $57 = $j_i;
  53240.   var $58 = $t_i;
  53241.   var $59 = $t12_i;
  53242.   STACKTOP = __stackBase__;
  53243.   return;
  53244. }
  53245. function __ZL24collect_features_myanmarP21hb_ot_shape_planner_t($plan) {
  53246.   var __stackBase__ = STACKTOP;
  53247.   STACKTOP = STACKTOP + 48 | 0;
  53248.   var $this_addr_i10 = __stackBase__;
  53249.   var $pause_func_addr_i11 = __stackBase__ + 4;
  53250.   var $this_addr_i7 = __stackBase__ + 8;
  53251.   var $pause_func_addr_i8 = __stackBase__ + 12;
  53252.   var $l_addr_i4 = __stackBase__ + 16;
  53253.   var $r_addr_i5 = __stackBase__ + 20;
  53254.   var $l_addr_i = __stackBase__ + 24;
  53255.   var $r_addr_i = __stackBase__ + 28;
  53256.   var $this_addr_i1 = __stackBase__ + 32;
  53257.   var $pause_func_addr_i2 = __stackBase__ + 36;
  53258.   var $this_addr_i = __stackBase__ + 40;
  53259.   var $pause_func_addr_i = __stackBase__ + 44;
  53260.   var $map;
  53261.   var $i;
  53262.   var $i3;
  53263.   $map = $plan + 28 | 0;
  53264.   HEAP[$this_addr_i] = $map;
  53265.   HEAP[$pause_func_addr_i] = 98;
  53266.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i], 0, HEAP[$pause_func_addr_i]);
  53267.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1819239276);
  53268.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1667460464);
  53269.   HEAP[$this_addr_i1] = $map;
  53270.   HEAP[$pause_func_addr_i2] = 180;
  53271.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i1], 0, HEAP[$pause_func_addr_i2]);
  53272.   $i = 0;
  53273.   var $24 = $map;
  53274.   while (1) {
  53275.     var $24;
  53276.     var $26 = HEAP[($i << 2) + 132424 | 0];
  53277.     HEAP[$l_addr_i] = 1;
  53278.     HEAP[$r_addr_i] = 4;
  53279.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($24, $26, 1, HEAP[$r_addr_i] | HEAP[$l_addr_i]);
  53280.     HEAP[$this_addr_i10] = $map;
  53281.     HEAP[$pause_func_addr_i11] = 0;
  53282.     __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i10], 0, HEAP[$pause_func_addr_i11]);
  53283.     var $inc = $i + 1 | 0;
  53284.     $i = $inc;
  53285.     var $32 = $map;
  53286.     if ($inc >>> 0 < 4) {
  53287.       var $24 = $32;
  53288.     } else {
  53289.       break;
  53290.     }
  53291.   }
  53292.   HEAP[$this_addr_i7] = $32;
  53293.   HEAP[$pause_func_addr_i8] = 44;
  53294.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i7], 0, HEAP[$pause_func_addr_i8]);
  53295.   $i3 = 0;
  53296.   while (1) {
  53297.     var $44 = HEAP[($i3 << 2) + 132176 | 0];
  53298.     HEAP[$l_addr_i4] = 1;
  53299.     HEAP[$r_addr_i5] = 4;
  53300.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($map, $44, 1, HEAP[$r_addr_i5] | HEAP[$l_addr_i4]);
  53301.     var $inc11 = $i3 + 1 | 0;
  53302.     $i3 = $inc11;
  53303.     if ($inc11 >>> 0 >= 5) {
  53304.       break;
  53305.     }
  53306.   }
  53307.   STACKTOP = __stackBase__;
  53308.   return;
  53309. }
  53310. function __ZL25override_features_myanmarP21hb_ot_shape_planner_t($plan) {
  53311.   var __stackBase__ = STACKTOP;
  53312.   STACKTOP = STACKTOP + 12 | 0;
  53313.   var $u_i_i = __stackBase__;
  53314.   var $c_i_i = __stackBase__ + 4;
  53315.   var $plan_addr;
  53316.   var $tmp = __stackBase__ + 8;
  53317.   $plan_addr = $plan;
  53318.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($plan_addr + 28 | 0, 1818847073, 0, 1);
  53319.   if ((HEAP[104720] | 0) == 0) {
  53320.     HEAP[$u_i_i] = 0;
  53321.     var $4 = $u_i_i;
  53322.     HEAP[$4] = HEAP[$4] & -2 | 1;
  53323.     var $call_i_i = _getenv(102488);
  53324.     HEAP[$c_i_i] = $call_i_i;
  53325.     if ((HEAP[$c_i_i] | 0) != 0) {
  53326.       var $10 = (_strstr(HEAP[$c_i_i], 103336) | 0) != 0;
  53327.     } else {
  53328.       var $10 = 0;
  53329.     }
  53330.     var $10;
  53331.     var $11 = $u_i_i;
  53332.     HEAP[$11] = ($10 & 1) << 1 | HEAP[$11] & -3;
  53333.     var $17 = $u_i_i;
  53334.     HEAP[104720] = HEAP[$17];
  53335.     HEAP[104721] = HEAP[$17 + 1];
  53336.     HEAP[104722] = HEAP[$17 + 2];
  53337.     HEAP[104723] = HEAP[$17 + 3];
  53338.   }
  53339.   var $20 = $tmp;
  53340.   HEAP[$20] = HEAP[104720];
  53341.   HEAP[$20 + 1] = HEAP[104721];
  53342.   HEAP[$20 + 2] = HEAP[104722];
  53343.   HEAP[$20 + 3] = HEAP[104723];
  53344.   if (((HEAP[$tmp] >>> 1 & 1) << 31 >> 31 | 0) == 0) {
  53345.     STACKTOP = __stackBase__;
  53346.     return;
  53347.   }
  53348.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($plan_addr + 28 | 0, 1835102827, 0, 1);
  53349.   STACKTOP = __stackBase__;
  53350.   return;
  53351. }
  53352. function __ZL19setup_masks_myanmarPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t($plan, $buffer, $font) {
  53353.   var $buffer_addr;
  53354.   var $count;
  53355.   var $i;
  53356.   $buffer_addr = $buffer;
  53357.   __ZN11hb_buffer_t12allocate_varEjjPKc($buffer_addr, 6, 1, 102696);
  53358.   __ZN11hb_buffer_t12allocate_varEjjPKc($buffer_addr, 7, 1, 103632);
  53359.   $count = HEAP[$buffer_addr + 84 | 0];
  53360.   $i = 0;
  53361.   if ($i >>> 0 >= $count >>> 0) {
  53362.     return;
  53363.   }
  53364.   while (1) {
  53365.     __ZL22set_myanmar_propertiesR15hb_glyph_info_t(HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0);
  53366.     $i = $i + 1 | 0;
  53367.     if ($i >>> 0 >= $count >>> 0) {
  53368.       break;
  53369.     }
  53370.   }
  53371.   return;
  53372. }
  53373. function __ZL15setup_syllablesPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t334($plan, $font, $buffer) {
  53374.   var label = 0;
  53375.   var __stackBase__ = STACKTOP;
  53376.   STACKTOP = STACKTOP + 84 | 0;
  53377.   var $buffer_addr_i = __stackBase__;
  53378.   var $p_i = __stackBase__ + 4;
  53379.   var $pe_i = __stackBase__ + 8;
  53380.   var $eof_i = __stackBase__ + 12;
  53381.   var $ts_i = __stackBase__ + 16;
  53382.   var $te_i = __stackBase__ + 20;
  53383.   var $act_i = __stackBase__ + 24;
  53384.   var $cs_i = __stackBase__ + 28;
  53385.   var $info_i = __stackBase__ + 32;
  53386.   var $last_i = __stackBase__ + 36;
  53387.   var $syllable_serial_i = __stackBase__ + 40;
  53388.   var $_slen_i = __stackBase__ + 44;
  53389.   var $_trans_i = __stackBase__ + 48;
  53390.   var $_keys_i = __stackBase__ + 52;
  53391.   var $_inds_i = __stackBase__ + 56;
  53392.   var $i_i = __stackBase__ + 60;
  53393.   var $i57_i = __stackBase__ + 64;
  53394.   var $i80_i = __stackBase__ + 68;
  53395.   var $i104_i = __stackBase__ + 72;
  53396.   var $i127_i = __stackBase__ + 76;
  53397.   var $i150_i = __stackBase__ + 80;
  53398.   HEAP[$buffer_addr_i] = $buffer;
  53399.   HEAP[$info_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0];
  53400.   HEAP[$cs_i] = 0;
  53401.   HEAP[$ts_i] = 0;
  53402.   HEAP[$te_i] = 0;
  53403.   HEAP[$act_i] = 0;
  53404.   HEAP[$p_i] = 0;
  53405.   var $25 = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  53406.   HEAP[$eof_i] = $25;
  53407.   HEAP[$pe_i] = $25;
  53408.   HEAP[$last_i] = 0;
  53409.   HEAP[$syllable_serial_i] = 1;
  53410.   if ((HEAP[$p_i] | 0) == (HEAP[$pe_i] | 0)) {
  53411.     label = 1103;
  53412.   } else {
  53413.     label = 1066;
  53414.   }
  53415.   while (1) {
  53416.     if (label == 1103) {
  53417.       label = 0;
  53418.       if ((HEAP[$p_i] | 0) != (HEAP[$eof_i] | 0)) {
  53419.         label = 1107;
  53420.         break;
  53421.       }
  53422.       if ((HEAP[(HEAP[$cs_i] << 1) + 115192 | 0] << 16 >> 16 | 0) <= 0) {
  53423.         label = 1108;
  53424.         break;
  53425.       }
  53426.       HEAP[$_trans_i] = (HEAP[(HEAP[$cs_i] << 1) + 115192 | 0] << 16 >> 16) - 1 | 0;
  53427.     } else if (label == 1066) {
  53428.       label = 0;
  53429.       if ((HEAP[HEAP[$cs_i] + 112184 | 0] << 24 >> 24 | 0) == 2) {
  53430.         HEAP[$ts_i] = HEAP[$p_i];
  53431.       }
  53432.       HEAP[$_keys_i] = (HEAP[$cs_i] << 1) + 115024 | 0;
  53433.       HEAP[$_inds_i] = (HEAP[(HEAP[$cs_i] << 1) + 113352 | 0] << 16 >> 16) + 116312 | 0;
  53434.       var $conv6_i = HEAP[HEAP[$cs_i] + 115144 | 0] << 24 >> 24;
  53435.       HEAP[$_slen_i] = $conv6_i;
  53436.       do {
  53437.         if (($conv6_i | 0) > 0) {
  53438.           if (!((HEAP[HEAP[$_keys_i]] & 255 | 0) <= (HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255 | 0))) {
  53439.             label = 1072;
  53440.             break;
  53441.           }
  53442.           if (!((HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255 | 0) <= (HEAP[HEAP[$_keys_i] + 1 | 0] & 255 | 0))) {
  53443.             label = 1072;
  53444.             break;
  53445.           }
  53446.           var $cond_i = (HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255) - (HEAP[HEAP[$_keys_i]] & 255) | 0;
  53447.           break;
  53448.         } else {
  53449.           label = 1072;
  53450.         }
  53451.       } while (0);
  53452.       if (label == 1072) {
  53453.         label = 0;
  53454.         var $cond_i = HEAP[$_slen_i];
  53455.       }
  53456.       var $cond_i;
  53457.       HEAP[$_trans_i] = HEAP[HEAP[$_inds_i] + $cond_i | 0] << 24 >> 24;
  53458.     }
  53459.     HEAP[$cs_i] = HEAP[HEAP[$_trans_i] + 113448 | 0] << 24 >> 24;
  53460.     do {
  53461.       if ((HEAP[HEAP[$_trans_i] + 113296 | 0] << 24 >> 24 | 0) != 0) {
  53462.         var $conv40_i = HEAP[HEAP[$_trans_i] + 113296 | 0] << 24 >> 24;
  53463.         if (($conv40_i | 0) == 5) {
  53464.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  53465.           HEAP[$i57_i] = HEAP[$last_i];
  53466.           L1454 : do {
  53467.             if (HEAP[$i57_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  53468.               while (1) {
  53469.                 HEAP[HEAP[$info_i] + (HEAP[$i57_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  53470.                 HEAP[$i57_i] = HEAP[$i57_i] + 1 | 0;
  53471.                 if (HEAP[$i57_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  53472.                   break L1454;
  53473.                 }
  53474.               }
  53475.             }
  53476.           } while (0);
  53477.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  53478.           var $inc72_i = HEAP[$syllable_serial_i] + 1 | 0;
  53479.           HEAP[$syllable_serial_i] = $inc72_i;
  53480.           if (($inc72_i | 0) != 16) {
  53481.             break;
  53482.           }
  53483.           HEAP[$syllable_serial_i] = 1;
  53484.           break;
  53485.         } else if (($conv40_i | 0) == 6) {
  53486.           HEAP[$te_i] = HEAP[$p_i];
  53487.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  53488.           HEAP[$i127_i] = HEAP[$last_i];
  53489.           L1460 : do {
  53490.             if (HEAP[$i127_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  53491.               while (1) {
  53492.                 HEAP[HEAP[$info_i] + (HEAP[$i127_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  53493.                 HEAP[$i127_i] = HEAP[$i127_i] + 1 | 0;
  53494.                 if (HEAP[$i127_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  53495.                   break L1460;
  53496.                 }
  53497.               }
  53498.             }
  53499.           } while (0);
  53500.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  53501.           var $inc142_i = HEAP[$syllable_serial_i] + 1 | 0;
  53502.           HEAP[$syllable_serial_i] = $inc142_i;
  53503.           if (($inc142_i | 0) != 16) {
  53504.             break;
  53505.           }
  53506.           HEAP[$syllable_serial_i] = 1;
  53507.           break;
  53508.         } else if (($conv40_i | 0) == 8) {
  53509.           HEAP[$te_i] = HEAP[$p_i];
  53510.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  53511.           HEAP[$i150_i] = HEAP[$last_i];
  53512.           L1466 : do {
  53513.             if (HEAP[$i150_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  53514.               while (1) {
  53515.                 HEAP[HEAP[$info_i] + (HEAP[$i150_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  53516.                 HEAP[$i150_i] = HEAP[$i150_i] + 1 | 0;
  53517.                 if (HEAP[$i150_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  53518.                   break L1466;
  53519.                 }
  53520.               }
  53521.             }
  53522.           } while (0);
  53523.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  53524.           var $inc166_i = HEAP[$syllable_serial_i] + 1 | 0;
  53525.           HEAP[$syllable_serial_i] = $inc166_i;
  53526.           if (($inc166_i | 0) != 16) {
  53527.             break;
  53528.           }
  53529.           HEAP[$syllable_serial_i] = 1;
  53530.           break;
  53531.         } else if (($conv40_i | 0) == 4) {
  53532.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  53533.           HEAP[$i80_i] = HEAP[$last_i];
  53534.           L1472 : do {
  53535.             if (HEAP[$i80_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  53536.               while (1) {
  53537.                 HEAP[HEAP[$info_i] + (HEAP[$i80_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  53538.                 HEAP[$i80_i] = HEAP[$i80_i] + 1 | 0;
  53539.                 if (HEAP[$i80_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  53540.                   break L1472;
  53541.                 }
  53542.               }
  53543.             }
  53544.           } while (0);
  53545.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  53546.           var $inc96_i = HEAP[$syllable_serial_i] + 1 | 0;
  53547.           HEAP[$syllable_serial_i] = $inc96_i;
  53548.           if (($inc96_i | 0) != 16) {
  53549.             break;
  53550.           }
  53551.           HEAP[$syllable_serial_i] = 1;
  53552.           break;
  53553.         } else if (($conv40_i | 0) == 3) {
  53554.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  53555.           HEAP[$i104_i] = HEAP[$last_i];
  53556.           L1478 : do {
  53557.             if (HEAP[$i104_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  53558.               while (1) {
  53559.                 HEAP[HEAP[$info_i] + (HEAP[$i104_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  53560.                 HEAP[$i104_i] = HEAP[$i104_i] + 1 | 0;
  53561.                 if (HEAP[$i104_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  53562.                   break L1478;
  53563.                 }
  53564.               }
  53565.             }
  53566.           } while (0);
  53567.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  53568.           var $inc120_i = HEAP[$syllable_serial_i] + 1 | 0;
  53569.           HEAP[$syllable_serial_i] = $inc120_i;
  53570.           if (($inc120_i | 0) != 16) {
  53571.             break;
  53572.           }
  53573.           HEAP[$syllable_serial_i] = 1;
  53574.           break;
  53575.         } else if (($conv40_i | 0) == 7) {
  53576.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  53577.           HEAP[$i_i] = HEAP[$last_i];
  53578.           L1484 : do {
  53579.             if (HEAP[$i_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  53580.               while (1) {
  53581.                 HEAP[HEAP[$info_i] + (HEAP[$i_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  53582.                 HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  53583.                 if (HEAP[$i_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  53584.                   break L1484;
  53585.                 }
  53586.               }
  53587.             }
  53588.           } while (0);
  53589.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  53590.           var $inc50_i = HEAP[$syllable_serial_i] + 1 | 0;
  53591.           HEAP[$syllable_serial_i] = $inc50_i;
  53592.           if (($inc50_i | 0) != 16) {
  53593.             break;
  53594.           }
  53595.           HEAP[$syllable_serial_i] = 1;
  53596.           break;
  53597.         } else {
  53598.           break;
  53599.         }
  53600.       }
  53601.     } while (0);
  53602.     if ((HEAP[HEAP[$cs_i] + 112232 | 0] << 24 >> 24 | 0) == 1) {
  53603.       HEAP[$ts_i] = 0;
  53604.     }
  53605.     var $inc176_i = HEAP[$p_i] + 1 | 0;
  53606.     HEAP[$p_i] = $inc176_i;
  53607.     if (($inc176_i | 0) != (HEAP[$pe_i] | 0)) {
  53608.       label = 1066;
  53609.       continue;
  53610.     } else {
  53611.       label = 1103;
  53612.       continue;
  53613.     }
  53614.   }
  53615.   if (label == 1107) {
  53616.     var $144 = $buffer_addr_i;
  53617.     var $145 = $p_i;
  53618.     var $146 = $pe_i;
  53619.     var $147 = $eof_i;
  53620.     var $148 = $ts_i;
  53621.     var $149 = $te_i;
  53622.     var $150 = $act_i;
  53623.     var $151 = $cs_i;
  53624.     var $152 = $info_i;
  53625.     var $153 = $last_i;
  53626.     var $154 = $syllable_serial_i;
  53627.     var $155 = $_slen_i;
  53628.     var $156 = $_trans_i;
  53629.     var $157 = $_keys_i;
  53630.     var $158 = $_inds_i;
  53631.     var $159 = $i_i;
  53632.     var $160 = $i57_i;
  53633.     var $161 = $i80_i;
  53634.     var $162 = $i104_i;
  53635.     var $163 = $i127_i;
  53636.     var $164 = $i150_i;
  53637.     STACKTOP = __stackBase__;
  53638.     return;
  53639.   } else if (label == 1108) {
  53640.     var $144 = $buffer_addr_i;
  53641.     var $145 = $p_i;
  53642.     var $146 = $pe_i;
  53643.     var $147 = $eof_i;
  53644.     var $148 = $ts_i;
  53645.     var $149 = $te_i;
  53646.     var $150 = $act_i;
  53647.     var $151 = $cs_i;
  53648.     var $152 = $info_i;
  53649.     var $153 = $last_i;
  53650.     var $154 = $syllable_serial_i;
  53651.     var $155 = $_slen_i;
  53652.     var $156 = $_trans_i;
  53653.     var $157 = $_keys_i;
  53654.     var $158 = $_inds_i;
  53655.     var $159 = $i_i;
  53656.     var $160 = $i57_i;
  53657.     var $161 = $i80_i;
  53658.     var $162 = $i104_i;
  53659.     var $163 = $i127_i;
  53660.     var $164 = $i150_i;
  53661.     STACKTOP = __stackBase__;
  53662.     return;
  53663.   }
  53664. }
  53665. function __ZL22set_myanmar_propertiesR15hb_glyph_info_t($info) {
  53666.   var label = 0;
  53667.   var __stackBase__ = STACKTOP;
  53668.   STACKTOP = STACKTOP + 13 | 0;
  53669.   var $retval_i = __stackBase__;
  53670.   var $u_addr_i = __stackBase__ + 1;
  53671.   var $lo_addr_i = __stackBase__ + 5;
  53672.   var $hi_addr_i = __stackBase__ + 9;
  53673.   var $info_addr;
  53674.   var $u;
  53675.   var $type;
  53676.   var $cat;
  53677.   var $pos;
  53678.   $info_addr = $info;
  53679.   $u = HEAP[$info_addr | 0];
  53680.   $type = __Z23hb_indic_get_categoriesj($u) & 65535;
  53681.   $cat = $type & 127;
  53682.   $pos = $type >>> 8;
  53683.   HEAP[$u_addr_i] = $u;
  53684.   HEAP[$lo_addr_i] = 65024;
  53685.   HEAP[$hi_addr_i] = 65039;
  53686.   do {
  53687.     if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$lo_addr_i] | 0) == 0) {
  53688.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) & HEAP[$hi_addr_i] | 0) != (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i] | 0)) {
  53689.         label = 1113;
  53690.         break;
  53691.       }
  53692.       if (((HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) + 1 & (HEAP[$hi_addr_i] ^ HEAP[$lo_addr_i]) | 0) != 0) {
  53693.         label = 1113;
  53694.         break;
  53695.       }
  53696.       var $cmp12_i = ((HEAP[$lo_addr_i] ^ -1 ^ HEAP[$hi_addr_i]) & HEAP[$u_addr_i] | 0) == (HEAP[$lo_addr_i] | 0);
  53697.       HEAP[$retval_i] = $cmp12_i;
  53698.       var $31 = $cmp12_i;
  53699.       break;
  53700.     } else {
  53701.       label = 1113;
  53702.     }
  53703.   } while (0);
  53704.   if (label == 1113) {
  53705.     if (HEAP[$lo_addr_i] >>> 0 <= HEAP[$u_addr_i] >>> 0) {
  53706.       var $30 = HEAP[$u_addr_i] >>> 0 <= HEAP[$hi_addr_i] >>> 0;
  53707.     } else {
  53708.       var $30 = 0;
  53709.     }
  53710.     var $30;
  53711.     HEAP[$retval_i] = $30;
  53712.     var $31 = $30;
  53713.   }
  53714.   var $31;
  53715.   do {
  53716.     if ($31) {
  53717.       $cat = 30;
  53718.       label = 1122;
  53719.       break;
  53720.     } else {
  53721.       if (($u | 0) == 8204) {
  53722.         $cat = 5;
  53723.         label = 1122;
  53724.         break;
  53725.       }
  53726.       var $37 = $u;
  53727.       if (($37 | 0) != 8205) {
  53728.         var $38 = $37;
  53729.         break;
  53730.       }
  53731.       $cat = 6;
  53732.       label = 1122;
  53733.       break;
  53734.     }
  53735.   } while (0);
  53736.   if (label == 1122) {
  53737.     var $38 = $u;
  53738.   }
  53739.   var $38;
  53740.   do {
  53741.     if (($38 | 0) == 45 | ($38 | 0) == 160 | ($38 | 0) == 215 | ($38 | 0) == 8210 | ($38 | 0) == 8211 | ($38 | 0) == 8212 | ($38 | 0) == 8213 | ($38 | 0) == 8226 | ($38 | 0) == 9676 | ($38 | 0) == 9723 | ($38 | 0) == 9724 | ($38 | 0) == 9725 | ($38 | 0) == 9726) {
  53742.       $cat = 12;
  53743.     } else if (($38 | 0) == 4100 | ($38 | 0) == 4123 | ($38 | 0) == 4186) {
  53744.       $cat = 16;
  53745.     } else if (($38 | 0) == 4146 | ($38 | 0) == 4150) {
  53746.       $cat = 10;
  53747.     } else if (($38 | 0) == 4154) {
  53748.       $cat = 18;
  53749.     } else if (($38 | 0) == 4161 | ($38 | 0) == 4162 | ($38 | 0) == 4163 | ($38 | 0) == 4164 | ($38 | 0) == 4165 | ($38 | 0) == 4166 | ($38 | 0) == 4167 | ($38 | 0) == 4168 | ($38 | 0) == 4169 | ($38 | 0) == 4240 | ($38 | 0) == 4241 | ($38 | 0) == 4242 | ($38 | 0) == 4243 | ($38 | 0) == 4244 | ($38 | 0) == 4245 | ($38 | 0) == 4246 | ($38 | 0) == 4247 | ($38 | 0) == 4248 | ($38 | 0) == 4249) {
  53750.       $cat = 19;
  53751.     } else if (($38 | 0) == 4160) {
  53752.       $cat = 19;
  53753.     } else if (($38 | 0) == 4158 | ($38 | 0) == 4192) {
  53754.       $cat = 21;
  53755.     } else if (($38 | 0) == 4156) {
  53756.       $cat = 22;
  53757.     } else if (($38 | 0) == 4157 | ($38 | 0) == 4226) {
  53758.       $cat = 23;
  53759.     } else if (($38 | 0) == 4155 | ($38 | 0) == 4190 | ($38 | 0) == 4191) {
  53760.       $cat = 24;
  53761.     } else if (($38 | 0) == 4195 | ($38 | 0) == 4196 | ($38 | 0) == 4201 | ($38 | 0) == 4202 | ($38 | 0) == 4203 | ($38 | 0) == 4204 | ($38 | 0) == 4205 | ($38 | 0) == 43643) {
  53762.       $cat = 25;
  53763.     } else if (($38 | 0) == 4152 | ($38 | 0) == 4231 | ($38 | 0) == 4232 | ($38 | 0) == 4233 | ($38 | 0) == 4234 | ($38 | 0) == 4235 | ($38 | 0) == 4236 | ($38 | 0) == 4237 | ($38 | 0) == 4239 | ($38 | 0) == 4250 | ($38 | 0) == 4251 | ($38 | 0) == 4252) {
  53764.       $cat = 8;
  53765.     } else {
  53766.       if (($cat | 0) != 7) {
  53767.         break;
  53768.       }
  53769.       var $39 = $pos;
  53770.       if (($39 | 0) == 11) {
  53771.         $cat = 29;
  53772.         break;
  53773.       } else if (($39 | 0) == 3) {
  53774.         $cat = 28;
  53775.         $pos = 2;
  53776.         break;
  53777.       } else if (($39 | 0) == 6) {
  53778.         $cat = 26;
  53779.         break;
  53780.       } else if (($39 | 0) == 8) {
  53781.         $cat = 27;
  53782.         break;
  53783.       } else {
  53784.         break;
  53785.       }
  53786.     }
  53787.   } while (0);
  53788.   HEAP[$info_addr + 18 | 0] = $cat & 255;
  53789.   HEAP[$info_addr + 19 | 0] = $pos & 255;
  53790.   STACKTOP = __stackBase__;
  53791.   return;
  53792. }
  53793. function __ZL16final_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t336($plan, $font, $buffer) {
  53794.   var $buffer_addr;
  53795.   var $info;
  53796.   var $count;
  53797.   var $i;
  53798.   $buffer_addr = $buffer;
  53799.   $info = HEAP[$buffer_addr + 96 | 0];
  53800.   $count = HEAP[$buffer_addr + 84 | 0];
  53801.   $i = 0;
  53802.   L1539 : do {
  53803.     if ($i >>> 0 < $count >>> 0) {
  53804.       while (1) {
  53805.         HEAP[$info + ($i * 20 & -1) + 14 | 0] = 0;
  53806.         $i = $i + 1 | 0;
  53807.         if ($i >>> 0 >= $count >>> 0) {
  53808.           break L1539;
  53809.         }
  53810.       }
  53811.     }
  53812.   } while (0);
  53813.   __ZN11hb_buffer_t14deallocate_varEjjPKc($buffer_addr, 6, 1, 102696);
  53814.   __ZN11hb_buffer_t14deallocate_varEjjPKc($buffer_addr, 7, 1, 103632);
  53815.   return;
  53816. }
  53817. function __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj339($plan, $face, $buffer, $start, $end) {
  53818.   var __stackBase__ = STACKTOP;
  53819.   STACKTOP = STACKTOP + 20 | 0;
  53820.   var $plan_addr_i = __stackBase__;
  53821.   var $face_addr_i = __stackBase__ + 4;
  53822.   var $buffer_addr_i = __stackBase__ + 8;
  53823.   var $start_addr_i = __stackBase__ + 12;
  53824.   var $end_addr_i = __stackBase__ + 16;
  53825.   var $plan_addr;
  53826.   var $face_addr;
  53827.   var $buffer_addr;
  53828.   var $start_addr;
  53829.   var $end_addr;
  53830.   $plan_addr = $plan;
  53831.   $face_addr = $face;
  53832.   $buffer_addr = $buffer;
  53833.   $start_addr = $start;
  53834.   $end_addr = $end;
  53835.   var $4 = HEAP[HEAP[$buffer_addr + 96 | 0] + ($start_addr * 20 & -1) + 14 | 0] & 15;
  53836.   if (($4 | 0) == 1) {
  53837.     HEAP[$plan_addr_i] = $plan_addr;
  53838.     HEAP[$face_addr_i] = $face_addr;
  53839.     HEAP[$buffer_addr_i] = $buffer_addr;
  53840.     HEAP[$start_addr_i] = $start_addr;
  53841.     HEAP[$end_addr_i] = $end_addr;
  53842.     __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj340(HEAP[$plan_addr_i], HEAP[$face_addr_i], HEAP[$buffer_addr_i], HEAP[$start_addr_i], HEAP[$end_addr_i]);
  53843.     STACKTOP = __stackBase__;
  53844.     return;
  53845.   } else if (($4 | 0) == 0) {
  53846.     __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj340($plan_addr, $face_addr, $buffer_addr, $start_addr, $end_addr);
  53847.     STACKTOP = __stackBase__;
  53848.     return;
  53849.   } else {
  53850.     STACKTOP = __stackBase__;
  53851.     return;
  53852.   }
  53853. }
  53854. function __ZL18initial_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t335($plan, $font, $buffer) {
  53855.   var label = 0;
  53856.   var __stackBase__ = STACKTOP;
  53857.   STACKTOP = STACKTOP + 164 | 0;
  53858.   var $this_addr_i50_i = __stackBase__;
  53859.   var $i_addr_i51_i = __stackBase__ + 4;
  53860.   var $this_addr_i43_i = __stackBase__ + 8;
  53861.   var $i_addr_i44_i = __stackBase__ + 12;
  53862.   var $this_addr_i35_i = __stackBase__ + 16;
  53863.   var $glyph_info_addr_i_i = __stackBase__ + 20;
  53864.   var $this_addr_i28_i = __stackBase__ + 24;
  53865.   var $i_addr_i29_i = __stackBase__ + 28;
  53866.   var $this_addr_i14_i = __stackBase__ + 32;
  53867.   var $this_addr_i10_i = __stackBase__ + 36;
  53868.   var $i_addr_i_i = __stackBase__ + 40;
  53869.   var $this_addr_i3_i = __stackBase__ + 44;
  53870.   var $tmp_string_i_i = __stackBase__ + 48;
  53871.   var $tmp_i_i = __stackBase__ + 52;
  53872.   var $this_addr_i_i_i_i_i = __stackBase__ + 56;
  53873.   var $this_addr_i_i_i_i = __stackBase__ + 60;
  53874.   var $obj_addr_i_i_i = __stackBase__ + 64;
  53875.   var $this_addr_i1_i = __stackBase__ + 68;
  53876.   var $this_addr_i_i = __stackBase__ + 72;
  53877.   var $unicode_addr_i_i = __stackBase__ + 76;
  53878.   var $variation_selector_addr_i_i = __stackBase__ + 80;
  53879.   var $glyph_addr_i_i = __stackBase__ + 84;
  53880.   var $font_addr_i = __stackBase__ + 92;
  53881.   var $buffer_addr_i = __stackBase__ + 96;
  53882.   var $has_broken_syllables_i;
  53883.   var $count_i = __stackBase__ + 100;
  53884.   var $i_i = __stackBase__ + 104;
  53885.   var $dottedcircle_glyph_i = __stackBase__ + 108;
  53886.   var $dottedcircle_i = __stackBase__ + 112;
  53887.   var $last_syllable_i = __stackBase__ + 132;
  53888.   var $syllable_i = __stackBase__ + 136;
  53889.   var $syllable_type_i = __stackBase__ + 140;
  53890.   var $info21_i = __stackBase__ + 144;
  53891.   var $plan_addr;
  53892.   var $font_addr;
  53893.   var $buffer_addr;
  53894.   var $info;
  53895.   var $count;
  53896.   var $last;
  53897.   var $last_syllable;
  53898.   var $i;
  53899.   $plan_addr = $plan;
  53900.   $font_addr = $font;
  53901.   $buffer_addr = $buffer;
  53902.   HEAP[__stackBase__ + 88] = $plan_addr;
  53903.   HEAP[$font_addr_i] = $font_addr;
  53904.   HEAP[$buffer_addr_i] = $buffer_addr;
  53905.   $has_broken_syllables_i = 0;
  53906.   HEAP[$count_i] = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  53907.   HEAP[$i_i] = 0;
  53908.   L1551 : do {
  53909.     if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  53910.       while (1) {
  53911.         if ((HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) + 14 | 0] & 15 | 0) == 1) {
  53912.           break;
  53913.         }
  53914.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  53915.         if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  53916.           break L1551;
  53917.         }
  53918.       }
  53919.       $has_broken_syllables_i = 1;
  53920.     }
  53921.   } while (0);
  53922.   do {
  53923.     if ($has_broken_syllables_i & 1) {
  53924.       HEAP[$this_addr_i_i] = HEAP[$font_addr_i];
  53925.       HEAP[$unicode_addr_i_i] = 9676;
  53926.       HEAP[$variation_selector_addr_i_i] = 0;
  53927.       HEAP[$glyph_addr_i_i] = $dottedcircle_glyph_i;
  53928.       var $this1_i_i = HEAP[$this_addr_i_i];
  53929.       HEAP[HEAP[$glyph_addr_i_i]] = 0;
  53930.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 48 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$unicode_addr_i_i], HEAP[$variation_selector_addr_i_i], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  53931.         break;
  53932.       }
  53933.       var $44 = $dottedcircle_i;
  53934.       for (var $$dest = $44, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  53935.         HEAP[$$dest] = 0;
  53936.       }
  53937.       HEAP[$dottedcircle_i | 0] = 9676;
  53938.       __ZL22set_myanmar_propertiesR15hb_glyph_info_t($dottedcircle_i);
  53939.       HEAP[$dottedcircle_i | 0] = HEAP[$dottedcircle_glyph_i];
  53940.       HEAP[$this_addr_i1_i] = HEAP[$buffer_addr_i];
  53941.       var $this1_i2_i = HEAP[$this_addr_i1_i];
  53942.       HEAP[$obj_addr_i_i_i] = $this1_i2_i;
  53943.       HEAP[$this_addr_i_i_i_i] = HEAP[$obj_addr_i_i_i] | 0;
  53944.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  53945.       if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) != -1) {
  53946.         HEAP[$this1_i2_i + 77 | 0] = 1;
  53947.         HEAP[$this1_i2_i + 78 | 0] = 0;
  53948.         HEAP[$this1_i2_i + 88 | 0] = 0;
  53949.         HEAP[$this1_i2_i + 100 | 0] = HEAP[$this1_i2_i + 96 | 0];
  53950.       }
  53951.       HEAP[HEAP[$buffer_addr_i] + 80 | 0] = 0;
  53952.       HEAP[$last_syllable_i] = 0;
  53953.       var $63 = HEAP[$buffer_addr_i];
  53954.       L1563 : do {
  53955.         if (HEAP[HEAP[$buffer_addr_i] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i] + 84 | 0] >>> 0) {
  53956.           var $68 = $info21_i;
  53957.           var $69 = $dottedcircle_i;
  53958.           var $cluster23_i = $info21_i + 8 | 0;
  53959.           var $mask25_i = $info21_i + 4 | 0;
  53960.           var $arrayidx32_i = $info21_i + 14 | 0;
  53961.           var $85 = $63;
  53962.           while (1) {
  53963.             var $85;
  53964.             HEAP[$this_addr_i10_i] = $85;
  53965.             HEAP[$i_addr_i_i] = 0;
  53966.             var $this1_i11_i = HEAP[$this_addr_i10_i];
  53967.             HEAP[$syllable_i] = HEAP[HEAP[$this1_i11_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i11_i + 80 | 0]) * 20 & -1) + 14 | 0] & 255;
  53968.             HEAP[$syllable_type_i] = HEAP[$syllable_i] & 15;
  53969.             do {
  53970.               if ((HEAP[$last_syllable_i] | 0) != (HEAP[$syllable_i] | 0)) {
  53971.                 if ((HEAP[$syllable_type_i] | 0) != 1) {
  53972.                   label = 1167;
  53973.                   break;
  53974.                 }
  53975.                 HEAP[$last_syllable_i] = HEAP[$syllable_i];
  53976.                 for (var $$src = $69, $$dest = $68, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  53977.                   HEAP[$$dest] = HEAP[$$src];
  53978.                 }
  53979.                 HEAP[$this_addr_i28_i] = HEAP[$buffer_addr_i];
  53980.                 HEAP[$i_addr_i29_i] = 0;
  53981.                 var $this1_i30_i = HEAP[$this_addr_i28_i];
  53982.                 HEAP[$cluster23_i] = HEAP[HEAP[$this1_i30_i + 96 | 0] + ((HEAP[$i_addr_i29_i] + HEAP[$this1_i30_i + 80 | 0]) * 20 & -1) + 8 | 0];
  53983.                 HEAP[$this_addr_i43_i] = HEAP[$buffer_addr_i];
  53984.                 HEAP[$i_addr_i44_i] = 0;
  53985.                 var $this1_i45_i = HEAP[$this_addr_i43_i];
  53986.                 HEAP[$mask25_i] = HEAP[HEAP[$this1_i45_i + 96 | 0] + ((HEAP[$i_addr_i44_i] + HEAP[$this1_i45_i + 80 | 0]) * 20 & -1) + 4 | 0];
  53987.                 HEAP[$this_addr_i50_i] = HEAP[$buffer_addr_i];
  53988.                 HEAP[$i_addr_i51_i] = 0;
  53989.                 var $this1_i52_i = HEAP[$this_addr_i50_i];
  53990.                 HEAP[$arrayidx32_i] = HEAP[HEAP[$this1_i52_i + 96 | 0] + ((HEAP[$i_addr_i51_i] + HEAP[$this1_i52_i + 80 | 0]) * 20 & -1) + 14 | 0];
  53991.                 HEAP[$this_addr_i35_i] = HEAP[$buffer_addr_i];
  53992.                 HEAP[$glyph_info_addr_i_i] = $info21_i;
  53993.                 var $this1_i36_i = HEAP[$this_addr_i35_i];
  53994.                 if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i36_i, 0, 1)) {
  53995.                   break;
  53996.                 }
  53997.                 var $114 = HEAP[$this1_i36_i + 100 | 0] + (HEAP[$this1_i36_i + 88 | 0] * 20 & -1) | 0;
  53998.                 var $115 = HEAP[$glyph_info_addr_i_i];
  53999.                 for (var $$src = $115, $$dest = $114, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  54000.                   HEAP[$$dest] = HEAP[$$src];
  54001.                 }
  54002.                 var $out_len2_i_i = $this1_i36_i + 88 | 0;
  54003.                 HEAP[$out_len2_i_i] = HEAP[$out_len2_i_i] + 1 | 0;
  54004.                 break;
  54005.               } else {
  54006.                 label = 1167;
  54007.               }
  54008.             } while (0);
  54009.             do {
  54010.               if (label == 1167) {
  54011.                 label = 0;
  54012.                 HEAP[$this_addr_i14_i] = HEAP[$buffer_addr_i];
  54013.                 var $this1_i15_i = HEAP[$this_addr_i14_i];
  54014.                 if (HEAP[$this1_i15_i + 77 | 0] & 1) {
  54015.                   do {
  54016.                     if ((HEAP[$this1_i15_i + 100 | 0] | 0) != (HEAP[$this1_i15_i + 96 | 0] | 0)) {
  54017.                       label = 1170;
  54018.                     } else {
  54019.                       if ((HEAP[$this1_i15_i + 88 | 0] | 0) != (HEAP[$this1_i15_i + 80 | 0] | 0)) {
  54020.                         label = 1170;
  54021.                         break;
  54022.                       } else {
  54023.                         break;
  54024.                       }
  54025.                     }
  54026.                   } while (0);
  54027.                   if (label == 1170) {
  54028.                     label = 0;
  54029.                     if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i15_i, 1, 1)) {
  54030.                       break;
  54031.                     }
  54032.                     var $127 = HEAP[$this1_i15_i + 100 | 0] + (HEAP[$this1_i15_i + 88 | 0] * 20 & -1) | 0;
  54033.                     var $128 = HEAP[$this1_i15_i + 96 | 0] + (HEAP[$this1_i15_i + 80 | 0] * 20 & -1) | 0;
  54034.                     for (var $$src = $128, $$dest = $127, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  54035.                       HEAP[$$dest] = HEAP[$$src];
  54036.                     }
  54037.                   }
  54038.                   var $out_len11_i_i = $this1_i15_i + 88 | 0;
  54039.                   HEAP[$out_len11_i_i] = HEAP[$out_len11_i_i] + 1 | 0;
  54040.                 }
  54041.                 var $idx13_i_i = $this1_i15_i + 80 | 0;
  54042.                 HEAP[$idx13_i_i] = HEAP[$idx13_i_i] + 1 | 0;
  54043.               }
  54044.             } while (0);
  54045.             var $135 = HEAP[$buffer_addr_i];
  54046.             if (HEAP[HEAP[$buffer_addr_i] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i] + 84 | 0] >>> 0) {
  54047.               var $85 = $135;
  54048.             } else {
  54049.               var $_lcssa_i = $135;
  54050.               break L1563;
  54051.             }
  54052.           }
  54053.         } else {
  54054.           var $_lcssa_i = $63;
  54055.         }
  54056.       } while (0);
  54057.       var $_lcssa_i;
  54058.       HEAP[$this_addr_i3_i] = $_lcssa_i;
  54059.       var $this1_i4_i = HEAP[$this_addr_i3_i];
  54060.       if (!(HEAP[$this1_i4_i + 76 | 0] & 1)) {
  54061.         if (!(HEAP[$this1_i4_i + 77 | 0] & 1)) {
  54062.           ___assert_func(102952, 274, 108904, 103776);
  54063.         }
  54064.         HEAP[$this1_i4_i + 77 | 0] = 0;
  54065.         if ((HEAP[$this1_i4_i + 100 | 0] | 0) != (HEAP[$this1_i4_i + 96 | 0] | 0)) {
  54066.           HEAP[$tmp_string_i_i] = HEAP[$this1_i4_i + 96 | 0];
  54067.           HEAP[$this1_i4_i + 96 | 0] = HEAP[$this1_i4_i + 100 | 0];
  54068.           HEAP[$this1_i4_i + 100 | 0] = HEAP[$tmp_string_i_i];
  54069.           HEAP[$this1_i4_i + 104 | 0] = HEAP[$this1_i4_i + 100 | 0];
  54070.         }
  54071.         HEAP[$tmp_i_i] = HEAP[$this1_i4_i + 84 | 0];
  54072.         HEAP[$this1_i4_i + 84 | 0] = HEAP[$this1_i4_i + 88 | 0];
  54073.         HEAP[$this1_i4_i + 88 | 0] = HEAP[$tmp_i_i];
  54074.         HEAP[$this1_i4_i + 80 | 0] = 0;
  54075.       }
  54076.     }
  54077.   } while (0);
  54078.   $info = HEAP[$buffer_addr + 96 | 0];
  54079.   var $168 = HEAP[$buffer_addr + 84 | 0];
  54080.   $count = $168;
  54081.   if (($168 | 0) == 0) {
  54082.     STACKTOP = __stackBase__;
  54083.     return;
  54084.   }
  54085.   $last = 0;
  54086.   $last_syllable = HEAP[$info + 14 | 0] & 255;
  54087.   $i = 1;
  54088.   L1597 : do {
  54089.     if ($i >>> 0 < $count >>> 0) {
  54090.       while (1) {
  54091.         if (($last_syllable | 0) != (HEAP[$info + ($i * 20 & -1) + 14 | 0] & 255 | 0)) {
  54092.           __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj339($plan_addr, HEAP[$font_addr + 52 | 0], $buffer_addr, $last, $i);
  54093.           $last = $i;
  54094.           $last_syllable = HEAP[$info + ($last * 20 & -1) + 14 | 0] & 255;
  54095.         }
  54096.         $i = $i + 1 | 0;
  54097.         if ($i >>> 0 >= $count >>> 0) {
  54098.           break L1597;
  54099.         }
  54100.       }
  54101.     }
  54102.   } while (0);
  54103.   __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj339($plan_addr, HEAP[$font_addr + 52 | 0], $buffer_addr, $last, $count);
  54104.   STACKTOP = __stackBase__;
  54105.   return;
  54106. }
  54107. function __ZL28normalization_preference_seaPK23hb_segment_properties_t($props) {
  54108.   return 2;
  54109. }
  54110. function __ZL21compare_myanmar_orderPK15hb_glyph_info_tS1_($pa, $pb) {
  54111.   var $a;
  54112.   var $b;
  54113.   $a = HEAP[$pa + 19 | 0] & 255;
  54114.   $b = HEAP[$pb + 19 | 0] & 255;
  54115.   if (($a | 0) < ($b | 0)) {
  54116.     var $cond6 = -1;
  54117.     var $cond6;
  54118.     return $cond6;
  54119.   }
  54120.   var $cond6 = ($a | 0) == ($b | 0) ? 0 : 1;
  54121.   var $cond6;
  54122.   return $cond6;
  54123. }
  54124. function __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj340($plan, $face, $buffer, $start, $end) {
  54125.   var __stackBase__ = STACKTOP;
  54126.   STACKTOP = STACKTOP + 17 | 0;
  54127.   var $info_addr_i_i_i = __stackBase__;
  54128.   var $retval_i_i = __stackBase__ + 4;
  54129.   var $info_addr_i_i = __stackBase__ + 5;
  54130.   var $flags_addr_i_i = __stackBase__ + 9;
  54131.   var $info_addr_i = __stackBase__ + 13;
  54132.   var $buffer_addr;
  54133.   var $start_addr;
  54134.   var $end_addr;
  54135.   var $info;
  54136.   var $base;
  54137.   var $has_reph;
  54138.   var $limit;
  54139.   var $i;
  54140.   var $i27;
  54141.   var $pos;
  54142.   $buffer_addr = $buffer;
  54143.   $start_addr = $start;
  54144.   $end_addr = $end;
  54145.   $info = HEAP[$buffer_addr + 96 | 0];
  54146.   $base = $end_addr;
  54147.   $has_reph = 0;
  54148.   $limit = $start_addr;
  54149.   do {
  54150.     if (($start_addr + 3 | 0) >>> 0 <= $end_addr >>> 0) {
  54151.       if ((HEAP[$info + ($start_addr * 20 & -1) + 18 | 0] & 255 | 0) != 16) {
  54152.         break;
  54153.       }
  54154.       if ((HEAP[$info + (($start_addr + 1) * 20 & -1) + 18 | 0] & 255 | 0) != 18) {
  54155.         break;
  54156.       }
  54157.       if ((HEAP[$info + (($start_addr + 2) * 20 & -1) + 18 | 0] & 255 | 0) != 4) {
  54158.         break;
  54159.       }
  54160.       $limit = $limit + 3 | 0;
  54161.       $base = $start_addr;
  54162.       $has_reph = 1;
  54163.     }
  54164.   } while (0);
  54165.   if (!($has_reph & 1)) {
  54166.     $base = $limit;
  54167.   }
  54168.   $i = $limit;
  54169.   L1621 : do {
  54170.     if ($i >>> 0 < $end_addr >>> 0) {
  54171.       while (1) {
  54172.         HEAP[$info_addr_i] = $info + ($i * 20 & -1) | 0;
  54173.         HEAP[$info_addr_i_i] = HEAP[$info_addr_i];
  54174.         HEAP[$flags_addr_i_i] = 202758;
  54175.         HEAP[$info_addr_i_i_i] = HEAP[$info_addr_i_i];
  54176.         if ((HEAP[HEAP[$info_addr_i_i_i] + 15 | 0] & 16 | 0) != 0) {
  54177.           HEAP[$retval_i_i] = 0;
  54178.           var $41 = 0;
  54179.         } else {
  54180.           var $tobool_i_i = (1 << (HEAP[HEAP[$info_addr_i_i] + 18 | 0] & 255) & HEAP[$flags_addr_i_i] | 0) != 0;
  54181.           HEAP[$retval_i_i] = $tobool_i_i;
  54182.           var $41 = $tobool_i_i;
  54183.         }
  54184.         var $41;
  54185.         var $42 = $i;
  54186.         if ($41) {
  54187.           break;
  54188.         }
  54189.         $i = $42 + 1 | 0;
  54190.         if ($i >>> 0 >= $end_addr >>> 0) {
  54191.           break L1621;
  54192.         }
  54193.       }
  54194.       $base = $42;
  54195.     }
  54196.   } while (0);
  54197.   $i27 = $start_addr;
  54198.   L1632 : do {
  54199.     if ($i27 >>> 0 < (($has_reph & 1 ? 3 : 0) + $start_addr | 0) >>> 0) {
  54200.       while (1) {
  54201.         HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = 5;
  54202.         $i27 = $i27 + 1 | 0;
  54203.         if ($i27 >>> 0 >= (($has_reph & 1 ? 3 : 0) + $start_addr | 0) >>> 0) {
  54204.           break L1632;
  54205.         }
  54206.       }
  54207.     }
  54208.   } while (0);
  54209.   var $51 = $i27;
  54210.   L1636 : do {
  54211.     if ($i27 >>> 0 < $base >>> 0) {
  54212.       var $58 = $51;
  54213.       while (1) {
  54214.         var $58;
  54215.         HEAP[$info + ($58 * 20 & -1) + 19 | 0] = 3;
  54216.         $i27 = $i27 + 1 | 0;
  54217.         var $63 = $i27;
  54218.         if ($i27 >>> 0 < $base >>> 0) {
  54219.           var $58 = $63;
  54220.         } else {
  54221.           var $_lcssa = $63;
  54222.           break L1636;
  54223.         }
  54224.       }
  54225.     } else {
  54226.       var $_lcssa = $51;
  54227.     }
  54228.   } while (0);
  54229.   var $_lcssa;
  54230.   if ($_lcssa >>> 0 < $end_addr >>> 0) {
  54231.     HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = 4;
  54232.     $i27 = $i27 + 1 | 0;
  54233.   }
  54234.   $pos = 5;
  54235.   if ($i27 >>> 0 >= $end_addr >>> 0) {
  54236.     var $108 = $buffer_addr;
  54237.     var $109 = $start_addr;
  54238.     var $110 = $end_addr;
  54239.     __ZN11hb_buffer_t14merge_clustersEjj($108, $109, $110);
  54240.     var $111 = $info;
  54241.     var $112 = $start_addr;
  54242.     var $add_ptr = $111 + ($112 * 20 & -1) | 0;
  54243.     var $113 = $end_addr;
  54244.     var $114 = $start_addr;
  54245.     var $sub = $113 - $114 | 0;
  54246.     __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E($add_ptr, $sub, 10);
  54247.     STACKTOP = __stackBase__;
  54248.     return;
  54249.   }
  54250.   while (1) {
  54251.     var $arrayidx71 = $info + ($i27 * 20 & -1) + 19 | 0;
  54252.     L1647 : do {
  54253.       if ((HEAP[$info + ($i27 * 20 & -1) + 18 | 0] & 255 | 0) == 22) {
  54254.         HEAP[$arrayidx71] = 3;
  54255.       } else {
  54256.         if ((HEAP[$arrayidx71] & 255 | 0) < 4) {
  54257.           break;
  54258.         }
  54259.         var $76 = $pos;
  54260.         do {
  54261.           if (($76 | 0) == 5) {
  54262.             if ((HEAP[$info + ($i27 * 20 & -1) + 18 | 0] & 255 | 0) == 27) {
  54263.               $pos = 8;
  54264.               HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = $pos & 255;
  54265.               break L1647;
  54266.             } else {
  54267.               var $83 = $pos;
  54268.               break;
  54269.             }
  54270.           } else {
  54271.             var $83 = $76;
  54272.           }
  54273.         } while (0);
  54274.         var $83;
  54275.         do {
  54276.           if (($83 | 0) == 8) {
  54277.             if ((HEAP[$info + ($i27 * 20 & -1) + 18 | 0] & 255 | 0) != 10) {
  54278.               break;
  54279.             }
  54280.             HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = 7;
  54281.             break L1647;
  54282.           }
  54283.         } while (0);
  54284.         do {
  54285.           if (($pos | 0) == 8) {
  54286.             var $93 = $pos;
  54287.             if ((HEAP[$info + ($i27 * 20 & -1) + 18 | 0] & 255 | 0) == 27) {
  54288.               HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = $93 & 255;
  54289.               break L1647;
  54290.             }
  54291.             if (($93 | 0) != 8) {
  54292.               break;
  54293.             }
  54294.             if ((HEAP[$info + ($i27 * 20 & -1) + 18 | 0] & 255 | 0) == 10) {
  54295.               break;
  54296.             }
  54297.             $pos = 9;
  54298.             HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = $pos & 255;
  54299.             break L1647;
  54300.           }
  54301.         } while (0);
  54302.         HEAP[$info + ($i27 * 20 & -1) + 19 | 0] = $pos & 255;
  54303.       }
  54304.     } while (0);
  54305.     $i27 = $i27 + 1 | 0;
  54306.     if ($i27 >>> 0 >= $end_addr >>> 0) {
  54307.       break;
  54308.     }
  54309.   }
  54310.   var $108 = $buffer_addr;
  54311.   var $109 = $start_addr;
  54312.   var $110 = $end_addr;
  54313.   __ZN11hb_buffer_t14merge_clustersEjj($108, $109, $110);
  54314.   var $111 = $info;
  54315.   var $112 = $start_addr;
  54316.   var $add_ptr = $111 + ($112 * 20 & -1) | 0;
  54317.   var $113 = $end_addr;
  54318.   var $114 = $start_addr;
  54319.   var $sub = $113 - $114 | 0;
  54320.   __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E($add_ptr, $sub, 10);
  54321.   STACKTOP = __stackBase__;
  54322.   return;
  54323. }
  54324. function __ZL20collect_features_seaP21hb_ot_shape_planner_t($plan) {
  54325.   var __stackBase__ = STACKTOP;
  54326.   STACKTOP = STACKTOP + 48 | 0;
  54327.   var $this_addr_i10 = __stackBase__;
  54328.   var $pause_func_addr_i11 = __stackBase__ + 4;
  54329.   var $this_addr_i7 = __stackBase__ + 8;
  54330.   var $pause_func_addr_i8 = __stackBase__ + 12;
  54331.   var $l_addr_i4 = __stackBase__ + 16;
  54332.   var $r_addr_i5 = __stackBase__ + 20;
  54333.   var $l_addr_i = __stackBase__ + 24;
  54334.   var $r_addr_i = __stackBase__ + 28;
  54335.   var $this_addr_i1 = __stackBase__ + 32;
  54336.   var $pause_func_addr_i2 = __stackBase__ + 36;
  54337.   var $this_addr_i = __stackBase__ + 40;
  54338.   var $pause_func_addr_i = __stackBase__ + 44;
  54339.   var $map;
  54340.   var $i;
  54341.   var $i3;
  54342.   $map = $plan + 28 | 0;
  54343.   HEAP[$this_addr_i] = $map;
  54344.   HEAP[$pause_func_addr_i] = 152;
  54345.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i], 0, HEAP[$pause_func_addr_i]);
  54346.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1819239276);
  54347.   __ZN19hb_ot_map_builder_t23add_global_bool_featureEj($map, 1667460464);
  54348.   HEAP[$this_addr_i1] = $map;
  54349.   HEAP[$pause_func_addr_i2] = 124;
  54350.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i1], 0, HEAP[$pause_func_addr_i2]);
  54351.   $i = 0;
  54352.   var $24 = $map;
  54353.   while (1) {
  54354.     var $24;
  54355.     var $26 = HEAP[($i << 2) + 132408 | 0];
  54356.     HEAP[$l_addr_i] = 1;
  54357.     HEAP[$r_addr_i] = 4;
  54358.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($24, $26, 1, HEAP[$r_addr_i] | HEAP[$l_addr_i]);
  54359.     HEAP[$this_addr_i10] = $map;
  54360.     HEAP[$pause_func_addr_i11] = 0;
  54361.     __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i10], 0, HEAP[$pause_func_addr_i11]);
  54362.     var $inc = $i + 1 | 0;
  54363.     $i = $inc;
  54364.     var $32 = $map;
  54365.     if ($inc >>> 0 < 4) {
  54366.       var $24 = $32;
  54367.     } else {
  54368.       break;
  54369.     }
  54370.   }
  54371.   HEAP[$this_addr_i7] = $32;
  54372.   HEAP[$pause_func_addr_i8] = 172;
  54373.   __ZN19hb_ot_map_builder_t9add_pauseEjPFvPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tE(HEAP[$this_addr_i7], 0, HEAP[$pause_func_addr_i8]);
  54374.   $i3 = 0;
  54375.   while (1) {
  54376.     var $44 = HEAP[($i3 << 2) + 132152 | 0];
  54377.     HEAP[$l_addr_i4] = 1;
  54378.     HEAP[$r_addr_i5] = 4;
  54379.     __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($map, $44, 1, HEAP[$r_addr_i5] | HEAP[$l_addr_i4]);
  54380.     var $inc11 = $i3 + 1 | 0;
  54381.     $i3 = $inc11;
  54382.     if ($inc11 >>> 0 >= 5) {
  54383.       break;
  54384.     }
  54385.   }
  54386.   STACKTOP = __stackBase__;
  54387.   return;
  54388. }
  54389. function __ZL21override_features_seaP21hb_ot_shape_planner_t($plan) {
  54390.   __ZN19hb_ot_map_builder_t11add_featureEjj25hb_ot_map_feature_flags_t($plan + 28 | 0, 1818847073, 0, 1);
  54391.   return;
  54392. }
  54393. function __ZL15setup_masks_seaPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t($plan, $buffer, $font) {
  54394.   var __stackBase__ = STACKTOP;
  54395.   STACKTOP = STACKTOP + 20 | 0;
  54396.   var $info_addr_i = __stackBase__;
  54397.   var $u_i = __stackBase__ + 4;
  54398.   var $type_i = __stackBase__ + 8;
  54399.   var $cat_i = __stackBase__ + 12;
  54400.   var $pos_i = __stackBase__ + 16;
  54401.   var $buffer_addr;
  54402.   var $count;
  54403.   var $i;
  54404.   $buffer_addr = $buffer;
  54405.   __ZN11hb_buffer_t12allocate_varEjjPKc($buffer_addr, 6, 1, 102640);
  54406.   __ZN11hb_buffer_t12allocate_varEjjPKc($buffer_addr, 7, 1, 103480);
  54407.   $count = HEAP[$buffer_addr + 84 | 0];
  54408.   $i = 0;
  54409.   if ($i >>> 0 >= $count >>> 0) {
  54410.     STACKTOP = __stackBase__;
  54411.     return;
  54412.   }
  54413.   while (1) {
  54414.     HEAP[$info_addr_i] = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  54415.     HEAP[$u_i] = HEAP[HEAP[$info_addr_i] | 0];
  54416.     var $conv_i = __Z23hb_indic_get_categoriesj(HEAP[$u_i]) & 65535;
  54417.     HEAP[$type_i] = $conv_i;
  54418.     HEAP[$cat_i] = HEAP[$type_i] & 127;
  54419.     HEAP[$pos_i] = HEAP[$type_i] >>> 8;
  54420.     do {
  54421.       if ((HEAP[$u_i] | 0) == 6741 | (HEAP[$u_i] | 0) == 43572) {
  54422.         HEAP[$cat_i] = 22;
  54423.       } else {
  54424.         if ((HEAP[$cat_i] | 0) != 7) {
  54425.           break;
  54426.         }
  54427.         var $26 = HEAP[$pos_i];
  54428.         if (($26 | 0) == 6) {
  54429.           HEAP[$cat_i] = 26;
  54430.           break;
  54431.         } else if (($26 | 0) == 8) {
  54432.           HEAP[$cat_i] = 27;
  54433.           break;
  54434.         } else if (($26 | 0) == 11) {
  54435.           HEAP[$cat_i] = 29;
  54436.           break;
  54437.         } else if (($26 | 0) == 3) {
  54438.           HEAP[$cat_i] = 28;
  54439.           break;
  54440.         } else {
  54441.           break;
  54442.         }
  54443.       }
  54444.     } while (0);
  54445.     HEAP[HEAP[$info_addr_i] + 18 | 0] = HEAP[$cat_i] & 255;
  54446.     HEAP[HEAP[$info_addr_i] + 19 | 0] = HEAP[$pos_i] & 255;
  54447.     $i = $i + 1 | 0;
  54448.     if ($i >>> 0 >= $count >>> 0) {
  54449.       break;
  54450.     }
  54451.   }
  54452.   STACKTOP = __stackBase__;
  54453.   return;
  54454. }
  54455. function __ZL15setup_syllablesPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t352($plan, $font, $buffer) {
  54456.   var label = 0;
  54457.   var __stackBase__ = STACKTOP;
  54458.   STACKTOP = STACKTOP + 84 | 0;
  54459.   var $buffer_addr_i = __stackBase__;
  54460.   var $p_i = __stackBase__ + 4;
  54461.   var $pe_i = __stackBase__ + 8;
  54462.   var $eof_i = __stackBase__ + 12;
  54463.   var $ts_i = __stackBase__ + 16;
  54464.   var $te_i = __stackBase__ + 20;
  54465.   var $act_i = __stackBase__ + 24;
  54466.   var $cs_i = __stackBase__ + 28;
  54467.   var $info_i = __stackBase__ + 32;
  54468.   var $last_i = __stackBase__ + 36;
  54469.   var $syllable_serial_i = __stackBase__ + 40;
  54470.   var $_slen_i = __stackBase__ + 44;
  54471.   var $_trans_i = __stackBase__ + 48;
  54472.   var $_keys_i = __stackBase__ + 52;
  54473.   var $_inds_i = __stackBase__ + 56;
  54474.   var $i_i = __stackBase__ + 60;
  54475.   var $i58_i = __stackBase__ + 64;
  54476.   var $i81_i = __stackBase__ + 68;
  54477.   var $i105_i = __stackBase__ + 72;
  54478.   var $i129_i = __stackBase__ + 76;
  54479.   var $i152_i = __stackBase__ + 80;
  54480.   HEAP[$buffer_addr_i] = $buffer;
  54481.   HEAP[$info_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0];
  54482.   HEAP[$cs_i] = 2;
  54483.   HEAP[$ts_i] = 0;
  54484.   HEAP[$te_i] = 0;
  54485.   HEAP[$act_i] = 0;
  54486.   HEAP[$p_i] = 0;
  54487.   var $25 = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  54488.   HEAP[$eof_i] = $25;
  54489.   HEAP[$pe_i] = $25;
  54490.   HEAP[$last_i] = 0;
  54491.   HEAP[$syllable_serial_i] = 1;
  54492.   if ((HEAP[$p_i] | 0) == (HEAP[$pe_i] | 0)) {
  54493.     label = 1299;
  54494.   } else {
  54495.     label = 1261;
  54496.   }
  54497.   while (1) {
  54498.     if (label == 1299) {
  54499.       label = 0;
  54500.       if ((HEAP[$p_i] | 0) != (HEAP[$eof_i] | 0)) {
  54501.         label = 1303;
  54502.         break;
  54503.       }
  54504.       if ((HEAP[HEAP[$cs_i] + 130712 | 0] << 24 >> 24 | 0) <= 0) {
  54505.         label = 1304;
  54506.         break;
  54507.       }
  54508.       HEAP[$_trans_i] = (HEAP[HEAP[$cs_i] + 130712 | 0] << 24 >> 24) - 1 | 0;
  54509.     } else if (label == 1261) {
  54510.       label = 0;
  54511.       if ((HEAP[HEAP[$cs_i] + 112784 | 0] << 24 >> 24 | 0) == 5) {
  54512.         HEAP[$ts_i] = HEAP[$p_i];
  54513.       }
  54514.       HEAP[$_keys_i] = (HEAP[$cs_i] << 1) + 119976 | 0;
  54515.       HEAP[$_inds_i] = (HEAP[HEAP[$cs_i] + 115136 | 0] << 24 >> 24) + 130720 | 0;
  54516.       var $conv6_i = HEAP[HEAP[$cs_i] + 130704 | 0] << 24 >> 24;
  54517.       HEAP[$_slen_i] = $conv6_i;
  54518.       do {
  54519.         if (($conv6_i | 0) > 0) {
  54520.           if (!((HEAP[HEAP[$_keys_i]] & 255 | 0) <= (HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255 | 0))) {
  54521.             label = 1267;
  54522.             break;
  54523.           }
  54524.           if (!((HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255 | 0) <= (HEAP[HEAP[$_keys_i] + 1 | 0] & 255 | 0))) {
  54525.             label = 1267;
  54526.             break;
  54527.           }
  54528.           var $cond_i = (HEAP[HEAP[$info_i] + (HEAP[$p_i] * 20 & -1) + 18 | 0] & 255) - (HEAP[HEAP[$_keys_i]] & 255) | 0;
  54529.           break;
  54530.         } else {
  54531.           label = 1267;
  54532.         }
  54533.       } while (0);
  54534.       if (label == 1267) {
  54535.         label = 0;
  54536.         var $cond_i = HEAP[$_slen_i];
  54537.       }
  54538.       var $cond_i;
  54539.       HEAP[$_trans_i] = HEAP[HEAP[$_inds_i] + $cond_i | 0] << 24 >> 24;
  54540.     }
  54541.     HEAP[$cs_i] = HEAP[HEAP[$_trans_i] + 118456 | 0] << 24 >> 24;
  54542.     do {
  54543.       if ((HEAP[HEAP[$_trans_i] + 115120 | 0] << 24 >> 24 | 0) != 0) {
  54544.         var $conv40_i = HEAP[HEAP[$_trans_i] + 115120 | 0] << 24 >> 24;
  54545.         if (($conv40_i | 0) == 7) {
  54546.           HEAP[$te_i] = HEAP[$p_i];
  54547.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  54548.           HEAP[$i58_i] = HEAP[$last_i];
  54549.           L1718 : do {
  54550.             if (HEAP[$i58_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  54551.               while (1) {
  54552.                 HEAP[HEAP[$info_i] + (HEAP[$i58_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  54553.                 HEAP[$i58_i] = HEAP[$i58_i] + 1 | 0;
  54554.                 if (HEAP[$i58_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  54555.                   break L1718;
  54556.                 }
  54557.               }
  54558.             }
  54559.           } while (0);
  54560.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  54561.           var $inc73_i = HEAP[$syllable_serial_i] + 1 | 0;
  54562.           HEAP[$syllable_serial_i] = $inc73_i;
  54563.           if (($inc73_i | 0) != 16) {
  54564.             break;
  54565.           }
  54566.           HEAP[$syllable_serial_i] = 1;
  54567.           break;
  54568.         } else if (($conv40_i | 0) == 8) {
  54569.           HEAP[$te_i] = HEAP[$p_i];
  54570.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  54571.           HEAP[$i81_i] = HEAP[$last_i];
  54572.           L1724 : do {
  54573.             if (HEAP[$i81_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  54574.               while (1) {
  54575.                 HEAP[HEAP[$info_i] + (HEAP[$i81_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  54576.                 HEAP[$i81_i] = HEAP[$i81_i] + 1 | 0;
  54577.                 if (HEAP[$i81_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  54578.                   break L1724;
  54579.                 }
  54580.               }
  54581.             }
  54582.           } while (0);
  54583.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  54584.           var $inc97_i = HEAP[$syllable_serial_i] + 1 | 0;
  54585.           HEAP[$syllable_serial_i] = $inc97_i;
  54586.           if (($inc97_i | 0) != 16) {
  54587.             break;
  54588.           }
  54589.           HEAP[$syllable_serial_i] = 1;
  54590.           break;
  54591.         } else if (($conv40_i | 0) == 9) {
  54592.           HEAP[$te_i] = HEAP[$p_i];
  54593.           HEAP[$p_i] = HEAP[$p_i] - 1 | 0;
  54594.           HEAP[$i105_i] = HEAP[$last_i];
  54595.           L1730 : do {
  54596.             if (HEAP[$i105_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  54597.               while (1) {
  54598.                 HEAP[HEAP[$info_i] + (HEAP[$i105_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  54599.                 HEAP[$i105_i] = HEAP[$i105_i] + 1 | 0;
  54600.                 if (HEAP[$i105_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  54601.                   break L1730;
  54602.                 }
  54603.               }
  54604.             }
  54605.           } while (0);
  54606.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  54607.           var $inc121_i = HEAP[$syllable_serial_i] + 1 | 0;
  54608.           HEAP[$syllable_serial_i] = $inc121_i;
  54609.           if (($inc121_i | 0) != 16) {
  54610.             break;
  54611.           }
  54612.           HEAP[$syllable_serial_i] = 1;
  54613.           break;
  54614.         } else if (($conv40_i | 0) == 2) {
  54615.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  54616.           break;
  54617.         } else if (($conv40_i | 0) == 3) {
  54618.           HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  54619.           HEAP[$i152_i] = HEAP[$last_i];
  54620.           L1737 : do {
  54621.             if (HEAP[$i152_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  54622.               while (1) {
  54623.                 HEAP[HEAP[$info_i] + (HEAP[$i152_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 1) & 255;
  54624.                 HEAP[$i152_i] = HEAP[$i152_i] + 1 | 0;
  54625.                 if (HEAP[$i152_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  54626.                   break L1737;
  54627.                 }
  54628.               }
  54629.             }
  54630.           } while (0);
  54631.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  54632.           var $inc168_i = HEAP[$syllable_serial_i] + 1 | 0;
  54633.           HEAP[$syllable_serial_i] = $inc168_i;
  54634.           if (($inc168_i | 0) != 16) {
  54635.             break;
  54636.           }
  54637.           HEAP[$syllable_serial_i] = 1;
  54638.           break;
  54639.         } else if (($conv40_i | 0) == 1) {
  54640.           HEAP[$p_i] = HEAP[$te_i] - 1 | 0;
  54641.           HEAP[$i129_i] = HEAP[$last_i];
  54642.           L1743 : do {
  54643.             if (HEAP[$i129_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  54644.               while (1) {
  54645.                 HEAP[HEAP[$info_i] + (HEAP[$i129_i] * 20 & -1) + 14 | 0] = HEAP[$syllable_serial_i] << 4 & 255;
  54646.                 HEAP[$i129_i] = HEAP[$i129_i] + 1 | 0;
  54647.                 if (HEAP[$i129_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  54648.                   break L1743;
  54649.                 }
  54650.               }
  54651.             }
  54652.           } while (0);
  54653.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  54654.           var $inc144_i = HEAP[$syllable_serial_i] + 1 | 0;
  54655.           HEAP[$syllable_serial_i] = $inc144_i;
  54656.           if (($inc144_i | 0) != 16) {
  54657.             break;
  54658.           }
  54659.           HEAP[$syllable_serial_i] = 1;
  54660.           break;
  54661.         } else if (($conv40_i | 0) == 6) {
  54662.           HEAP[$te_i] = HEAP[$p_i] + 1 | 0;
  54663.           HEAP[$i_i] = HEAP[$last_i];
  54664.           L1749 : do {
  54665.             if (HEAP[$i_i] >>> 0 < (HEAP[$p_i] + 1 | 0) >>> 0) {
  54666.               while (1) {
  54667.                 HEAP[HEAP[$info_i] + (HEAP[$i_i] * 20 & -1) + 14 | 0] = (HEAP[$syllable_serial_i] << 4 | 2) & 255;
  54668.                 HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  54669.                 if (HEAP[$i_i] >>> 0 >= (HEAP[$p_i] + 1 | 0) >>> 0) {
  54670.                   break L1749;
  54671.                 }
  54672.               }
  54673.             }
  54674.           } while (0);
  54675.           HEAP[$last_i] = HEAP[$p_i] + 1 | 0;
  54676.           var $inc52_i = HEAP[$syllable_serial_i] + 1 | 0;
  54677.           HEAP[$syllable_serial_i] = $inc52_i;
  54678.           if (($inc52_i | 0) != 16) {
  54679.             break;
  54680.           }
  54681.           HEAP[$syllable_serial_i] = 1;
  54682.           break;
  54683.         } else {
  54684.           break;
  54685.         }
  54686.       }
  54687.     } while (0);
  54688.     if ((HEAP[HEAP[$cs_i] + 113440 | 0] << 24 >> 24 | 0) == 4) {
  54689.       HEAP[$ts_i] = 0;
  54690.     }
  54691.     var $inc178_i = HEAP[$p_i] + 1 | 0;
  54692.     HEAP[$p_i] = $inc178_i;
  54693.     if (($inc178_i | 0) != (HEAP[$pe_i] | 0)) {
  54694.       label = 1261;
  54695.       continue;
  54696.     } else {
  54697.       label = 1299;
  54698.       continue;
  54699.     }
  54700.   }
  54701.   if (label == 1303) {
  54702.     var $146 = $buffer_addr_i;
  54703.     var $147 = $p_i;
  54704.     var $148 = $pe_i;
  54705.     var $149 = $eof_i;
  54706.     var $150 = $ts_i;
  54707.     var $151 = $te_i;
  54708.     var $152 = $act_i;
  54709.     var $153 = $cs_i;
  54710.     var $154 = $info_i;
  54711.     var $155 = $last_i;
  54712.     var $156 = $syllable_serial_i;
  54713.     var $157 = $_slen_i;
  54714.     var $158 = $_trans_i;
  54715.     var $159 = $_keys_i;
  54716.     var $160 = $_inds_i;
  54717.     var $161 = $i_i;
  54718.     var $162 = $i58_i;
  54719.     var $163 = $i81_i;
  54720.     var $164 = $i105_i;
  54721.     var $165 = $i129_i;
  54722.     var $166 = $i152_i;
  54723.     STACKTOP = __stackBase__;
  54724.     return;
  54725.   } else if (label == 1304) {
  54726.     var $146 = $buffer_addr_i;
  54727.     var $147 = $p_i;
  54728.     var $148 = $pe_i;
  54729.     var $149 = $eof_i;
  54730.     var $150 = $ts_i;
  54731.     var $151 = $te_i;
  54732.     var $152 = $act_i;
  54733.     var $153 = $cs_i;
  54734.     var $154 = $info_i;
  54735.     var $155 = $last_i;
  54736.     var $156 = $syllable_serial_i;
  54737.     var $157 = $_slen_i;
  54738.     var $158 = $_trans_i;
  54739.     var $159 = $_keys_i;
  54740.     var $160 = $_inds_i;
  54741.     var $161 = $i_i;
  54742.     var $162 = $i58_i;
  54743.     var $163 = $i81_i;
  54744.     var $164 = $i105_i;
  54745.     var $165 = $i129_i;
  54746.     var $166 = $i152_i;
  54747.     STACKTOP = __stackBase__;
  54748.     return;
  54749.   }
  54750. }
  54751. function __ZL16final_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t355($plan, $font, $buffer) {
  54752.   var $buffer_addr;
  54753.   var $info;
  54754.   var $count;
  54755.   var $i;
  54756.   $buffer_addr = $buffer;
  54757.   $info = HEAP[$buffer_addr + 96 | 0];
  54758.   $count = HEAP[$buffer_addr + 84 | 0];
  54759.   $i = 0;
  54760.   L1762 : do {
  54761.     if ($i >>> 0 < $count >>> 0) {
  54762.       while (1) {
  54763.         HEAP[$info + ($i * 20 & -1) + 14 | 0] = 0;
  54764.         $i = $i + 1 | 0;
  54765.         if ($i >>> 0 >= $count >>> 0) {
  54766.           break L1762;
  54767.         }
  54768.       }
  54769.     }
  54770.   } while (0);
  54771.   __ZN11hb_buffer_t14deallocate_varEjjPKc($buffer_addr, 6, 1, 102640);
  54772.   __ZN11hb_buffer_t14deallocate_varEjjPKc($buffer_addr, 7, 1, 103480);
  54773.   return;
  54774. }
  54775. function __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj358($plan, $face, $buffer, $start, $end) {
  54776.   var __stackBase__ = STACKTOP;
  54777.   STACKTOP = STACKTOP + 20 | 0;
  54778.   var $plan_addr_i = __stackBase__;
  54779.   var $face_addr_i = __stackBase__ + 4;
  54780.   var $buffer_addr_i = __stackBase__ + 8;
  54781.   var $start_addr_i = __stackBase__ + 12;
  54782.   var $end_addr_i = __stackBase__ + 16;
  54783.   var $plan_addr;
  54784.   var $face_addr;
  54785.   var $buffer_addr;
  54786.   var $start_addr;
  54787.   var $end_addr;
  54788.   $plan_addr = $plan;
  54789.   $face_addr = $face;
  54790.   $buffer_addr = $buffer;
  54791.   $start_addr = $start;
  54792.   $end_addr = $end;
  54793.   var $4 = HEAP[HEAP[$buffer_addr + 96 | 0] + ($start_addr * 20 & -1) + 14 | 0] & 15;
  54794.   if (($4 | 0) == 0) {
  54795.     __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj359($plan_addr, $face_addr, $buffer_addr, $start_addr, $end_addr);
  54796.     STACKTOP = __stackBase__;
  54797.     return;
  54798.   } else if (($4 | 0) == 1) {
  54799.     HEAP[$plan_addr_i] = $plan_addr;
  54800.     HEAP[$face_addr_i] = $face_addr;
  54801.     HEAP[$buffer_addr_i] = $buffer_addr;
  54802.     HEAP[$start_addr_i] = $start_addr;
  54803.     HEAP[$end_addr_i] = $end_addr;
  54804.     __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj359(HEAP[$plan_addr_i], HEAP[$face_addr_i], HEAP[$buffer_addr_i], HEAP[$start_addr_i], HEAP[$end_addr_i]);
  54805.     STACKTOP = __stackBase__;
  54806.     return;
  54807.   } else {
  54808.     STACKTOP = __stackBase__;
  54809.     return;
  54810.   }
  54811. }
  54812. function __ZL18initial_reorderingPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t353($plan, $font, $buffer) {
  54813.   var label = 0;
  54814.   var __stackBase__ = STACKTOP;
  54815.   STACKTOP = STACKTOP + 184 | 0;
  54816.   var $this_addr_i57_i = __stackBase__;
  54817.   var $i_addr_i58_i = __stackBase__ + 4;
  54818.   var $this_addr_i50_i = __stackBase__ + 8;
  54819.   var $i_addr_i51_i = __stackBase__ + 12;
  54820.   var $this_addr_i42_i = __stackBase__ + 16;
  54821.   var $glyph_info_addr_i_i = __stackBase__ + 20;
  54822.   var $this_addr_i35_i = __stackBase__ + 24;
  54823.   var $i_addr_i36_i = __stackBase__ + 28;
  54824.   var $this_addr_i19_i = __stackBase__ + 32;
  54825.   var $this_addr_i14_i = __stackBase__ + 36;
  54826.   var $i_addr_i_i = __stackBase__ + 40;
  54827.   var $this_addr_i5_i = __stackBase__ + 44;
  54828.   var $tmp_string_i_i = __stackBase__ + 48;
  54829.   var $tmp_i_i = __stackBase__ + 52;
  54830.   var $this_addr_i_i_i_i_i = __stackBase__ + 56;
  54831.   var $this_addr_i_i_i_i = __stackBase__ + 60;
  54832.   var $obj_addr_i_i_i = __stackBase__ + 64;
  54833.   var $this_addr_i2_i = __stackBase__ + 68;
  54834.   var $info_addr_i_i = __stackBase__ + 72;
  54835.   var $u_i_i = __stackBase__ + 76;
  54836.   var $type_i_i = __stackBase__ + 80;
  54837.   var $cat_i_i = __stackBase__ + 84;
  54838.   var $pos_i_i = __stackBase__ + 88;
  54839.   var $this_addr_i_i = __stackBase__ + 92;
  54840.   var $unicode_addr_i_i = __stackBase__ + 96;
  54841.   var $variation_selector_addr_i_i = __stackBase__ + 100;
  54842.   var $glyph_addr_i_i = __stackBase__ + 104;
  54843.   var $font_addr_i = __stackBase__ + 112;
  54844.   var $buffer_addr_i = __stackBase__ + 116;
  54845.   var $has_broken_syllables_i;
  54846.   var $count_i = __stackBase__ + 120;
  54847.   var $i_i = __stackBase__ + 124;
  54848.   var $dottedcircle_glyph_i = __stackBase__ + 128;
  54849.   var $dottedcircle_i = __stackBase__ + 132;
  54850.   var $last_syllable_i = __stackBase__ + 152;
  54851.   var $syllable_i = __stackBase__ + 156;
  54852.   var $syllable_type_i = __stackBase__ + 160;
  54853.   var $info21_i = __stackBase__ + 164;
  54854.   var $plan_addr;
  54855.   var $font_addr;
  54856.   var $buffer_addr;
  54857.   var $info;
  54858.   var $count;
  54859.   var $last;
  54860.   var $last_syllable;
  54861.   var $i;
  54862.   $plan_addr = $plan;
  54863.   $font_addr = $font;
  54864.   $buffer_addr = $buffer;
  54865.   HEAP[__stackBase__ + 108] = $plan_addr;
  54866.   HEAP[$font_addr_i] = $font_addr;
  54867.   HEAP[$buffer_addr_i] = $buffer_addr;
  54868.   $has_broken_syllables_i = 0;
  54869.   HEAP[$count_i] = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  54870.   HEAP[$i_i] = 0;
  54871.   L1774 : do {
  54872.     if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  54873.       while (1) {
  54874.         if ((HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) + 14 | 0] & 15 | 0) == 1) {
  54875.           break;
  54876.         }
  54877.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  54878.         if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  54879.           break L1774;
  54880.         }
  54881.       }
  54882.       $has_broken_syllables_i = 1;
  54883.     }
  54884.   } while (0);
  54885.   do {
  54886.     if ($has_broken_syllables_i & 1) {
  54887.       HEAP[$this_addr_i_i] = HEAP[$font_addr_i];
  54888.       HEAP[$unicode_addr_i_i] = 9676;
  54889.       HEAP[$variation_selector_addr_i_i] = 0;
  54890.       HEAP[$glyph_addr_i_i] = $dottedcircle_glyph_i;
  54891.       var $this1_i_i = HEAP[$this_addr_i_i];
  54892.       HEAP[HEAP[$glyph_addr_i_i]] = 0;
  54893.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 48 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$unicode_addr_i_i], HEAP[$variation_selector_addr_i_i], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  54894.         break;
  54895.       }
  54896.       var $44 = $dottedcircle_i;
  54897.       for (var $$dest = $44, $$stop = $$dest + 20; $$dest < $$stop; $$dest++) {
  54898.         HEAP[$$dest] = 0;
  54899.       }
  54900.       HEAP[$dottedcircle_i | 0] = 9676;
  54901.       HEAP[$info_addr_i_i] = $dottedcircle_i;
  54902.       HEAP[$u_i_i] = HEAP[HEAP[$info_addr_i_i] | 0];
  54903.       var $conv_i_i = __Z23hb_indic_get_categoriesj(HEAP[$u_i_i]) & 65535;
  54904.       HEAP[$type_i_i] = $conv_i_i;
  54905.       HEAP[$cat_i_i] = HEAP[$type_i_i] & 127;
  54906.       HEAP[$pos_i_i] = HEAP[$type_i_i] >>> 8;
  54907.       do {
  54908.         if ((HEAP[$u_i_i] | 0) == 6741 | (HEAP[$u_i_i] | 0) == 43572) {
  54909.           HEAP[$cat_i_i] = 22;
  54910.         } else {
  54911.           if ((HEAP[$cat_i_i] | 0) != 7) {
  54912.             break;
  54913.           }
  54914.           var $57 = HEAP[$pos_i_i];
  54915.           if (($57 | 0) == 3) {
  54916.             HEAP[$cat_i_i] = 28;
  54917.             break;
  54918.           } else if (($57 | 0) == 6) {
  54919.             HEAP[$cat_i_i] = 26;
  54920.             break;
  54921.           } else if (($57 | 0) == 8) {
  54922.             HEAP[$cat_i_i] = 27;
  54923.             break;
  54924.           } else if (($57 | 0) == 11) {
  54925.             HEAP[$cat_i_i] = 29;
  54926.             break;
  54927.           } else {
  54928.             break;
  54929.           }
  54930.         }
  54931.       } while (0);
  54932.       HEAP[HEAP[$info_addr_i_i] + 18 | 0] = HEAP[$cat_i_i] & 255;
  54933.       HEAP[HEAP[$info_addr_i_i] + 19 | 0] = HEAP[$pos_i_i] & 255;
  54934.       HEAP[$dottedcircle_i | 0] = HEAP[$dottedcircle_glyph_i];
  54935.       HEAP[$this_addr_i2_i] = HEAP[$buffer_addr_i];
  54936.       var $this1_i3_i = HEAP[$this_addr_i2_i];
  54937.       HEAP[$obj_addr_i_i_i] = $this1_i3_i;
  54938.       HEAP[$this_addr_i_i_i_i] = HEAP[$obj_addr_i_i_i] | 0;
  54939.       HEAP[$this_addr_i_i_i_i_i] = HEAP[$this_addr_i_i_i_i] | 0;
  54940.       if ((HEAP[HEAP[$this_addr_i_i_i_i_i] | 0] | 0) != -1) {
  54941.         HEAP[$this1_i3_i + 77 | 0] = 1;
  54942.         HEAP[$this1_i3_i + 78 | 0] = 0;
  54943.         HEAP[$this1_i3_i + 88 | 0] = 0;
  54944.         HEAP[$this1_i3_i + 100 | 0] = HEAP[$this1_i3_i + 96 | 0];
  54945.       }
  54946.       HEAP[HEAP[$buffer_addr_i] + 80 | 0] = 0;
  54947.       HEAP[$last_syllable_i] = 0;
  54948.       var $85 = HEAP[$buffer_addr_i];
  54949.       L1796 : do {
  54950.         if (HEAP[HEAP[$buffer_addr_i] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i] + 84 | 0] >>> 0) {
  54951.           var $90 = $info21_i;
  54952.           var $91 = $dottedcircle_i;
  54953.           var $cluster23_i = $info21_i + 8 | 0;
  54954.           var $mask25_i = $info21_i + 4 | 0;
  54955.           var $arrayidx32_i = $info21_i + 14 | 0;
  54956.           var $107 = $85;
  54957.           while (1) {
  54958.             var $107;
  54959.             HEAP[$this_addr_i14_i] = $107;
  54960.             HEAP[$i_addr_i_i] = 0;
  54961.             var $this1_i15_i = HEAP[$this_addr_i14_i];
  54962.             HEAP[$syllable_i] = HEAP[HEAP[$this1_i15_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i15_i + 80 | 0]) * 20 & -1) + 14 | 0] & 255;
  54963.             HEAP[$syllable_type_i] = HEAP[$syllable_i] & 15;
  54964.             do {
  54965.               if ((HEAP[$last_syllable_i] | 0) != (HEAP[$syllable_i] | 0)) {
  54966.                 if ((HEAP[$syllable_type_i] | 0) != 1) {
  54967.                   label = 1337;
  54968.                   break;
  54969.                 }
  54970.                 HEAP[$last_syllable_i] = HEAP[$syllable_i];
  54971.                 for (var $$src = $91, $$dest = $90, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  54972.                   HEAP[$$dest] = HEAP[$$src];
  54973.                 }
  54974.                 HEAP[$this_addr_i35_i] = HEAP[$buffer_addr_i];
  54975.                 HEAP[$i_addr_i36_i] = 0;
  54976.                 var $this1_i37_i = HEAP[$this_addr_i35_i];
  54977.                 HEAP[$cluster23_i] = HEAP[HEAP[$this1_i37_i + 96 | 0] + ((HEAP[$i_addr_i36_i] + HEAP[$this1_i37_i + 80 | 0]) * 20 & -1) + 8 | 0];
  54978.                 HEAP[$this_addr_i50_i] = HEAP[$buffer_addr_i];
  54979.                 HEAP[$i_addr_i51_i] = 0;
  54980.                 var $this1_i52_i = HEAP[$this_addr_i50_i];
  54981.                 HEAP[$mask25_i] = HEAP[HEAP[$this1_i52_i + 96 | 0] + ((HEAP[$i_addr_i51_i] + HEAP[$this1_i52_i + 80 | 0]) * 20 & -1) + 4 | 0];
  54982.                 HEAP[$this_addr_i57_i] = HEAP[$buffer_addr_i];
  54983.                 HEAP[$i_addr_i58_i] = 0;
  54984.                 var $this1_i59_i = HEAP[$this_addr_i57_i];
  54985.                 HEAP[$arrayidx32_i] = HEAP[HEAP[$this1_i59_i + 96 | 0] + ((HEAP[$i_addr_i58_i] + HEAP[$this1_i59_i + 80 | 0]) * 20 & -1) + 14 | 0];
  54986.                 HEAP[$this_addr_i42_i] = HEAP[$buffer_addr_i];
  54987.                 HEAP[$glyph_info_addr_i_i] = $info21_i;
  54988.                 var $this1_i43_i = HEAP[$this_addr_i42_i];
  54989.                 if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i43_i, 0, 1)) {
  54990.                   break;
  54991.                 }
  54992.                 var $136 = HEAP[$this1_i43_i + 100 | 0] + (HEAP[$this1_i43_i + 88 | 0] * 20 & -1) | 0;
  54993.                 var $137 = HEAP[$glyph_info_addr_i_i];
  54994.                 for (var $$src = $137, $$dest = $136, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  54995.                   HEAP[$$dest] = HEAP[$$src];
  54996.                 }
  54997.                 var $out_len2_i_i = $this1_i43_i + 88 | 0;
  54998.                 HEAP[$out_len2_i_i] = HEAP[$out_len2_i_i] + 1 | 0;
  54999.                 break;
  55000.               } else {
  55001.                 label = 1337;
  55002.               }
  55003.             } while (0);
  55004.             do {
  55005.               if (label == 1337) {
  55006.                 label = 0;
  55007.                 HEAP[$this_addr_i19_i] = HEAP[$buffer_addr_i];
  55008.                 var $this1_i20_i = HEAP[$this_addr_i19_i];
  55009.                 if (HEAP[$this1_i20_i + 77 | 0] & 1) {
  55010.                   do {
  55011.                     if ((HEAP[$this1_i20_i + 100 | 0] | 0) != (HEAP[$this1_i20_i + 96 | 0] | 0)) {
  55012.                       label = 1340;
  55013.                     } else {
  55014.                       if ((HEAP[$this1_i20_i + 88 | 0] | 0) != (HEAP[$this1_i20_i + 80 | 0] | 0)) {
  55015.                         label = 1340;
  55016.                         break;
  55017.                       } else {
  55018.                         break;
  55019.                       }
  55020.                     }
  55021.                   } while (0);
  55022.                   if (label == 1340) {
  55023.                     label = 0;
  55024.                     if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i20_i, 1, 1)) {
  55025.                       break;
  55026.                     }
  55027.                     var $149 = HEAP[$this1_i20_i + 100 | 0] + (HEAP[$this1_i20_i + 88 | 0] * 20 & -1) | 0;
  55028.                     var $150 = HEAP[$this1_i20_i + 96 | 0] + (HEAP[$this1_i20_i + 80 | 0] * 20 & -1) | 0;
  55029.                     for (var $$src = $150, $$dest = $149, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  55030.                       HEAP[$$dest] = HEAP[$$src];
  55031.                     }
  55032.                   }
  55033.                   var $out_len11_i_i = $this1_i20_i + 88 | 0;
  55034.                   HEAP[$out_len11_i_i] = HEAP[$out_len11_i_i] + 1 | 0;
  55035.                 }
  55036.                 var $idx13_i_i = $this1_i20_i + 80 | 0;
  55037.                 HEAP[$idx13_i_i] = HEAP[$idx13_i_i] + 1 | 0;
  55038.               }
  55039.             } while (0);
  55040.             var $157 = HEAP[$buffer_addr_i];
  55041.             if (HEAP[HEAP[$buffer_addr_i] + 80 | 0] >>> 0 < HEAP[HEAP[$buffer_addr_i] + 84 | 0] >>> 0) {
  55042.               var $107 = $157;
  55043.             } else {
  55044.               var $_lcssa_i = $157;
  55045.               break L1796;
  55046.             }
  55047.           }
  55048.         } else {
  55049.           var $_lcssa_i = $85;
  55050.         }
  55051.       } while (0);
  55052.       var $_lcssa_i;
  55053.       HEAP[$this_addr_i5_i] = $_lcssa_i;
  55054.       var $this1_i6_i = HEAP[$this_addr_i5_i];
  55055.       if (!(HEAP[$this1_i6_i + 76 | 0] & 1)) {
  55056.         if (!(HEAP[$this1_i6_i + 77 | 0] & 1)) {
  55057.           ___assert_func(102952, 274, 108904, 103776);
  55058.         }
  55059.         HEAP[$this1_i6_i + 77 | 0] = 0;
  55060.         if ((HEAP[$this1_i6_i + 100 | 0] | 0) != (HEAP[$this1_i6_i + 96 | 0] | 0)) {
  55061.           HEAP[$tmp_string_i_i] = HEAP[$this1_i6_i + 96 | 0];
  55062.           HEAP[$this1_i6_i + 96 | 0] = HEAP[$this1_i6_i + 100 | 0];
  55063.           HEAP[$this1_i6_i + 100 | 0] = HEAP[$tmp_string_i_i];
  55064.           HEAP[$this1_i6_i + 104 | 0] = HEAP[$this1_i6_i + 100 | 0];
  55065.         }
  55066.         HEAP[$tmp_i_i] = HEAP[$this1_i6_i + 84 | 0];
  55067.         HEAP[$this1_i6_i + 84 | 0] = HEAP[$this1_i6_i + 88 | 0];
  55068.         HEAP[$this1_i6_i + 88 | 0] = HEAP[$tmp_i_i];
  55069.         HEAP[$this1_i6_i + 80 | 0] = 0;
  55070.       }
  55071.     }
  55072.   } while (0);
  55073.   $info = HEAP[$buffer_addr + 96 | 0];
  55074.   var $190 = HEAP[$buffer_addr + 84 | 0];
  55075.   $count = $190;
  55076.   if (($190 | 0) == 0) {
  55077.     STACKTOP = __stackBase__;
  55078.     return;
  55079.   }
  55080.   $last = 0;
  55081.   $last_syllable = HEAP[$info + 14 | 0] & 255;
  55082.   $i = 1;
  55083.   L1830 : do {
  55084.     if ($i >>> 0 < $count >>> 0) {
  55085.       while (1) {
  55086.         if (($last_syllable | 0) != (HEAP[$info + ($i * 20 & -1) + 14 | 0] & 255 | 0)) {
  55087.           __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj358($plan_addr, HEAP[$font_addr + 52 | 0], $buffer_addr, $last, $i);
  55088.           $last = $i;
  55089.           $last_syllable = HEAP[$info + ($last * 20 & -1) + 14 | 0] & 255;
  55090.         }
  55091.         $i = $i + 1 | 0;
  55092.         if ($i >>> 0 >= $count >>> 0) {
  55093.           break L1830;
  55094.         }
  55095.       }
  55096.     }
  55097.   } while (0);
  55098.   __ZL27initial_reordering_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj358($plan_addr, HEAP[$font_addr + 52 | 0], $buffer_addr, $last, $count);
  55099.   STACKTOP = __stackBase__;
  55100.   return;
  55101. }
  55102. function __ZL17compare_sea_orderPK15hb_glyph_info_tS1_($pa, $pb) {
  55103.   var $a;
  55104.   var $b;
  55105.   $a = HEAP[$pa + 19 | 0] & 255;
  55106.   $b = HEAP[$pb + 19 | 0] & 255;
  55107.   if (($a | 0) < ($b | 0)) {
  55108.     var $cond6 = -1;
  55109.     var $cond6;
  55110.     return $cond6;
  55111.   }
  55112.   var $cond6 = ($a | 0) == ($b | 0) ? 0 : 1;
  55113.   var $cond6;
  55114.   return $cond6;
  55115. }
  55116. function __ZL37initial_reordering_consonant_syllablePK18hb_ot_shape_plan_tP9hb_face_tP11hb_buffer_tjj359($plan, $face, $buffer, $start, $end) {
  55117.   var $buffer_addr;
  55118.   var $start_addr;
  55119.   var $end_addr;
  55120.   var $info;
  55121.   var $base;
  55122.   var $i;
  55123.   $buffer_addr = $buffer;
  55124.   $start_addr = $start;
  55125.   $end_addr = $end;
  55126.   $info = HEAP[$buffer_addr + 96 | 0];
  55127.   $base = $start_addr;
  55128.   $i = $start_addr;
  55129.   var $6 = $i;
  55130.   L1844 : do {
  55131.     if ($i >>> 0 < $base >>> 0) {
  55132.       var $7 = $6;
  55133.       while (1) {
  55134.         var $7;
  55135.         HEAP[$info + ($7 * 20 & -1) + 19 | 0] = 3;
  55136.         $i = $i + 1 | 0;
  55137.         var $12 = $i;
  55138.         if ($i >>> 0 < $base >>> 0) {
  55139.           var $7 = $12;
  55140.         } else {
  55141.           var $_lcssa = $12;
  55142.           break L1844;
  55143.         }
  55144.       }
  55145.     } else {
  55146.       var $_lcssa = $6;
  55147.     }
  55148.   } while (0);
  55149.   var $_lcssa;
  55150.   if ($_lcssa >>> 0 < $end_addr >>> 0) {
  55151.     HEAP[$info + ($i * 20 & -1) + 19 | 0] = 4;
  55152.     $i = $i + 1 | 0;
  55153.   }
  55154.   if ($i >>> 0 >= $end_addr >>> 0) {
  55155.     var $30 = $buffer_addr;
  55156.     var $31 = $start_addr;
  55157.     var $32 = $end_addr;
  55158.     __ZN11hb_buffer_t14merge_clustersEjj($30, $31, $32);
  55159.     var $33 = $info;
  55160.     var $34 = $start_addr;
  55161.     var $add_ptr = $33 + ($34 * 20 & -1) | 0;
  55162.     var $35 = $end_addr;
  55163.     var $36 = $start_addr;
  55164.     var $sub = $35 - $36 | 0;
  55165.     __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E($add_ptr, $sub, 142);
  55166.     return;
  55167.   }
  55168.   while (1) {
  55169.     var $u820 = $info + ($i * 20 & -1) + 16 | 0;
  55170.     do {
  55171.       if ((HEAP[$info + ($i * 20 & -1) + 18 | 0] & 255 | 0) == 22) {
  55172.         HEAP[$u820 + 3 | 0] = 3;
  55173.       } else {
  55174.         var $arrayidx33 = $info + ($i * 20 & -1) + 19 | 0;
  55175.         if ((HEAP[$u820 + 2 | 0] & 255 | 0) == 28) {
  55176.           HEAP[$arrayidx33] = 2;
  55177.           break;
  55178.         } else {
  55179.           HEAP[$arrayidx33] = 5;
  55180.           break;
  55181.         }
  55182.       }
  55183.     } while (0);
  55184.     $i = $i + 1 | 0;
  55185.     if ($i >>> 0 >= $end_addr >>> 0) {
  55186.       break;
  55187.     }
  55188.   }
  55189.   var $30 = $buffer_addr;
  55190.   var $31 = $start_addr;
  55191.   var $32 = $end_addr;
  55192.   __ZN11hb_buffer_t14merge_clustersEjj($30, $31, $32);
  55193.   var $33 = $info;
  55194.   var $34 = $start_addr;
  55195.   var $add_ptr = $33 + ($34 * 20 & -1) | 0;
  55196.   var $35 = $end_addr;
  55197.   var $36 = $start_addr;
  55198.   var $sub = $35 - $36 | 0;
  55199.   __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E($add_ptr, $sub, 142);
  55200.   return;
  55201. }
  55202. function __ZL20preprocess_text_thaiPK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t($plan, $buffer, $font) {
  55203.   var label = 0;
  55204.   var __stackBase__ = STACKTOP;
  55205.   STACKTOP = STACKTOP + 272 | 0;
  55206.   var $this_addr_i28 = __stackBase__;
  55207.   var $tmp_string_i = __stackBase__ + 4;
  55208.   var $tmp_i = __stackBase__ + 8;
  55209.   var $retval_i30_i = __stackBase__ + 12;
  55210.   var $u_addr_i31_i = __stackBase__ + 13;
  55211.   var $lo_addr_i32_i = __stackBase__ + 17;
  55212.   var $hi_addr_i33_i = __stackBase__ + 21;
  55213.   var $retval_i1_i = __stackBase__ + 25;
  55214.   var $u_addr_i2_i = __stackBase__ + 26;
  55215.   var $lo_addr_i3_i = __stackBase__ + 30;
  55216.   var $hi_addr_i4_i = __stackBase__ + 34;
  55217.   var $retval_i_i20 = __stackBase__ + 38;
  55218.   var $u_addr_i_i21 = __stackBase__ + 39;
  55219.   var $lo_addr_i_i = __stackBase__ + 43;
  55220.   var $hi_addr_i_i = __stackBase__ + 47;
  55221.   var $u_addr_i = __stackBase__ + 51;
  55222.   var $lo1_addr_i = __stackBase__ + 55;
  55223.   var $hi1_addr_i = __stackBase__ + 59;
  55224.   var $lo2_addr_i = __stackBase__ + 63;
  55225.   var $hi2_addr_i = __stackBase__ + 67;
  55226.   var $lo3_addr_i = __stackBase__ + 71;
  55227.   var $hi3_addr_i = __stackBase__ + 75;
  55228.   var $this_addr_i7 = __stackBase__ + 79;
  55229.   var $this_addr_i3 = __stackBase__ + 83;
  55230.   var $i_addr_i = __stackBase__ + 87;
  55231.   var $retval_i_i1_i = __stackBase__ + 91;
  55232.   var $u_addr_i_i2_i = __stackBase__ + 92;
  55233.   var $lo_addr_i_i3_i = __stackBase__ + 96;
  55234.   var $hi_addr_i_i4_i = __stackBase__ + 100;
  55235.   var $retval_i5_i = __stackBase__ + 104;
  55236.   var $u_addr_i6_i = __stackBase__ + 108;
  55237.   var $retval_i59_i_i = __stackBase__ + 112;
  55238.   var $u_addr_i60_i_i = __stackBase__ + 113;
  55239.   var $lo_addr_i61_i_i = __stackBase__ + 117;
  55240.   var $hi_addr_i62_i_i = __stackBase__ + 121;
  55241.   var $retval_i30_i_i = __stackBase__ + 125;
  55242.   var $u_addr_i31_i_i = __stackBase__ + 126;
  55243.   var $lo_addr_i32_i_i = __stackBase__ + 130;
  55244.   var $hi_addr_i33_i_i = __stackBase__ + 134;
  55245.   var $retval_i1_i_i = __stackBase__ + 138;
  55246.   var $u_addr_i2_i_i = __stackBase__ + 139;
  55247.   var $lo_addr_i3_i_i = __stackBase__ + 143;
  55248.   var $hi_addr_i4_i_i = __stackBase__ + 147;
  55249.   var $retval_i_i_i = __stackBase__ + 151;
  55250.   var $u_addr_i_i_i = __stackBase__ + 152;
  55251.   var $lo_addr_i_i_i = __stackBase__ + 156;
  55252.   var $hi_addr_i_i_i = __stackBase__ + 160;
  55253.   var $retval_i_i = __stackBase__ + 164;
  55254.   var $u_addr_i_i = __stackBase__ + 168;
  55255.   var $plan_addr_i = __stackBase__ + 172;
  55256.   var $buffer_addr_i = __stackBase__ + 176;
  55257.   var $font_addr_i = __stackBase__ + 180;
  55258.   var $above_state_i = __stackBase__ + 184;
  55259.   var $below_state_i = __stackBase__ + 188;
  55260.   var $base_i = __stackBase__ + 192;
  55261.   var $info_i1 = __stackBase__ + 196;
  55262.   var $count_i = __stackBase__ + 200;
  55263.   var $i_i = __stackBase__ + 204;
  55264.   var $mt_i = __stackBase__ + 208;
  55265.   var $ct_i = __stackBase__ + 212;
  55266.   var $above_edge_i = __stackBase__ + 216;
  55267.   var $below_edge_i = __stackBase__ + 220;
  55268.   var $action_i = __stackBase__ + 224;
  55269.   var $this_addr_i_i_i_i = __stackBase__ + 228;
  55270.   var $this_addr_i_i_i = __stackBase__ + 232;
  55271.   var $obj_addr_i_i = __stackBase__ + 236;
  55272.   var $this_addr_i = __stackBase__ + 240;
  55273.   var $plan_addr;
  55274.   var $buffer_addr;
  55275.   var $font_addr;
  55276.   var $count;
  55277.   var $u;
  55278.   var $decomposed = __stackBase__ + 244;
  55279.   var $end;
  55280.   var $start;
  55281.   var $t = __stackBase__ + 252;
  55282.   $plan_addr = $plan;
  55283.   $buffer_addr = $buffer;
  55284.   $font_addr = $font;
  55285.   HEAP[$this_addr_i] = $buffer_addr;
  55286.   var $this1_i = HEAP[$this_addr_i];
  55287.   HEAP[$obj_addr_i_i] = $this1_i;
  55288.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  55289.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  55290.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  55291.     HEAP[$this1_i + 77 | 0] = 1;
  55292.     HEAP[$this1_i + 78 | 0] = 0;
  55293.     HEAP[$this1_i + 88 | 0] = 0;
  55294.     HEAP[$this1_i + 100 | 0] = HEAP[$this1_i + 96 | 0];
  55295.   }
  55296.   $count = HEAP[$buffer_addr + 84 | 0];
  55297.   HEAP[$buffer_addr + 80 | 0] = 0;
  55298.   var $18 = $buffer_addr;
  55299.   L1867 : do {
  55300.     if (HEAP[$buffer_addr + 80 | 0] >>> 0 < $count >>> 0) {
  55301.       var $arrayinit_begin = $decomposed | 0;
  55302.       var $arrayinit_element = $arrayinit_begin + 4 | 0;
  55303.       var $arraydecay = $decomposed | 0;
  55304.       var $23 = $t;
  55305.       var $24 = $t;
  55306.       var $65 = $18;
  55307.       L1869 : while (1) {
  55308.         var $65;
  55309.         HEAP[$this_addr_i3] = $65;
  55310.         HEAP[$i_addr_i] = 0;
  55311.         var $this1_i4 = HEAP[$this_addr_i3];
  55312.         $u = HEAP[HEAP[$this1_i4 + 96 | 0] + ((HEAP[$i_addr_i] + HEAP[$this1_i4 + 80 | 0]) * 20 & -1) | 0];
  55313.         do {
  55314.           if (($u & -129 | 0) == 3635) {
  55315.             HEAP[$arrayinit_begin] = $u + 26 | 0;
  55316.             HEAP[$arrayinit_element] = $u - 1 | 0;
  55317.             __ZN11hb_buffer_t14replace_glyphsEjjPKj($buffer_addr, 1, 2, $arraydecay);
  55318.             if (HEAP[$buffer_addr + 76 | 0] & 1) {
  55319.               break L1869;
  55320.             }
  55321.             $end = HEAP[$buffer_addr + 88 | 0];
  55322.             var $sub6 = $end - 2 | 0;
  55323.             $start = $sub6;
  55324.             var $97 = $start;
  55325.             L1884 : do {
  55326.               if ($sub6 >>> 0 > 0) {
  55327.                 var $98 = $97;
  55328.                 while (1) {
  55329.                   var $98;
  55330.                   HEAP[$u_addr_i] = HEAP[HEAP[$buffer_addr + 100 | 0] + (($98 - 1) * 20 & -1) | 0] & -129;
  55331.                   HEAP[$lo1_addr_i] = 3636;
  55332.                   HEAP[$hi1_addr_i] = 3639;
  55333.                   HEAP[$lo2_addr_i] = 3655;
  55334.                   HEAP[$hi2_addr_i] = 3662;
  55335.                   HEAP[$lo3_addr_i] = 3633;
  55336.                   HEAP[$hi3_addr_i] = 3633;
  55337.                   var $103 = HEAP[$lo1_addr_i];
  55338.                   var $104 = HEAP[$hi1_addr_i];
  55339.                   HEAP[$u_addr_i_i21] = HEAP[$u_addr_i];
  55340.                   HEAP[$lo_addr_i_i] = $103;
  55341.                   HEAP[$hi_addr_i_i] = $104;
  55342.                   do {
  55343.                     if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$lo_addr_i_i] | 0) == 0) {
  55344.                       if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$hi_addr_i_i] | 0) != (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i] | 0)) {
  55345.                         label = 1399;
  55346.                         break;
  55347.                       }
  55348.                       if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) + 1 & (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) | 0) != 0) {
  55349.                         label = 1399;
  55350.                         break;
  55351.                       }
  55352.                       var $cmp12_i_i = ((HEAP[$lo_addr_i_i] ^ -1 ^ HEAP[$hi_addr_i_i]) & HEAP[$u_addr_i_i21] | 0) == (HEAP[$lo_addr_i_i] | 0);
  55353.                       HEAP[$retval_i_i20] = $cmp12_i_i;
  55354.                       var $126 = $cmp12_i_i;
  55355.                       break;
  55356.                     } else {
  55357.                       label = 1399;
  55358.                     }
  55359.                   } while (0);
  55360.                   if (label == 1399) {
  55361.                     label = 0;
  55362.                     if (HEAP[$lo_addr_i_i] >>> 0 <= HEAP[$u_addr_i_i21] >>> 0) {
  55363.                       var $125 = HEAP[$u_addr_i_i21] >>> 0 <= HEAP[$hi_addr_i_i] >>> 0;
  55364.                     } else {
  55365.                       var $125 = 0;
  55366.                     }
  55367.                     var $125;
  55368.                     HEAP[$retval_i_i20] = $125;
  55369.                     var $126 = $125;
  55370.                   }
  55371.                   var $126;
  55372.                   do {
  55373.                     if ($126) {
  55374.                       var $177 = 1;
  55375.                     } else {
  55376.                       var $128 = HEAP[$lo2_addr_i];
  55377.                       var $129 = HEAP[$hi2_addr_i];
  55378.                       HEAP[$u_addr_i31_i] = HEAP[$u_addr_i];
  55379.                       HEAP[$lo_addr_i32_i] = $128;
  55380.                       HEAP[$hi_addr_i33_i] = $129;
  55381.                       do {
  55382.                         if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) & HEAP[$lo_addr_i32_i] | 0) == 0) {
  55383.                           if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) & HEAP[$hi_addr_i33_i] | 0) != (HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i] | 0)) {
  55384.                             label = 1407;
  55385.                             break;
  55386.                           }
  55387.                           if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) + 1 & (HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) | 0) != 0) {
  55388.                             label = 1407;
  55389.                             break;
  55390.                           }
  55391.                           var $cmp12_i51_i = ((HEAP[$lo_addr_i32_i] ^ -1 ^ HEAP[$hi_addr_i33_i]) & HEAP[$u_addr_i31_i] | 0) == (HEAP[$lo_addr_i32_i] | 0);
  55392.                           HEAP[$retval_i30_i] = $cmp12_i51_i;
  55393.                           var $151 = $cmp12_i51_i;
  55394.                           break;
  55395.                         } else {
  55396.                           label = 1407;
  55397.                         }
  55398.                       } while (0);
  55399.                       if (label == 1407) {
  55400.                         label = 0;
  55401.                         if (HEAP[$lo_addr_i32_i] >>> 0 <= HEAP[$u_addr_i31_i] >>> 0) {
  55402.                           var $150 = HEAP[$u_addr_i31_i] >>> 0 <= HEAP[$hi_addr_i33_i] >>> 0;
  55403.                         } else {
  55404.                           var $150 = 0;
  55405.                         }
  55406.                         var $150;
  55407.                         HEAP[$retval_i30_i] = $150;
  55408.                         var $151 = $150;
  55409.                       }
  55410.                       var $151;
  55411.                       if ($151) {
  55412.                         var $177 = 1;
  55413.                         break;
  55414.                       }
  55415.                       var $153 = HEAP[$lo3_addr_i];
  55416.                       var $154 = HEAP[$hi3_addr_i];
  55417.                       HEAP[$u_addr_i2_i] = HEAP[$u_addr_i];
  55418.                       HEAP[$lo_addr_i3_i] = $153;
  55419.                       HEAP[$hi_addr_i4_i] = $154;
  55420.                       do {
  55421.                         if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) & HEAP[$lo_addr_i3_i] | 0) == 0) {
  55422.                           if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) & HEAP[$hi_addr_i4_i] | 0) != (HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i] | 0)) {
  55423.                             label = 1415;
  55424.                             break;
  55425.                           }
  55426.                           if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) + 1 & (HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) | 0) != 0) {
  55427.                             label = 1415;
  55428.                             break;
  55429.                           }
  55430.                           HEAP[$retval_i1_i] = ((HEAP[$lo_addr_i3_i] ^ -1 ^ HEAP[$hi_addr_i4_i]) & HEAP[$u_addr_i2_i] | 0) == (HEAP[$lo_addr_i3_i] | 0);
  55431.                           break;
  55432.                         } else {
  55433.                           label = 1415;
  55434.                         }
  55435.                       } while (0);
  55436.                       if (label == 1415) {
  55437.                         label = 0;
  55438.                         if (HEAP[$lo_addr_i3_i] >>> 0 <= HEAP[$u_addr_i2_i] >>> 0) {
  55439.                           var $175 = HEAP[$u_addr_i2_i] >>> 0 <= HEAP[$hi_addr_i4_i] >>> 0;
  55440.                         } else {
  55441.                           var $175 = 0;
  55442.                         }
  55443.                         var $175;
  55444.                         HEAP[$retval_i1_i] = $175;
  55445.                       }
  55446.                       var $177 = HEAP[$retval_i1_i];
  55447.                     }
  55448.                   } while (0);
  55449.                   var $177;
  55450.                   var $178 = $start;
  55451.                   if (!$177) {
  55452.                     var $180 = $178;
  55453.                     break L1884;
  55454.                   }
  55455.                   var $dec = $178 - 1 | 0;
  55456.                   $start = $dec;
  55457.                   var $179 = $start;
  55458.                   if ($dec >>> 0 > 0) {
  55459.                     var $98 = $179;
  55460.                   } else {
  55461.                     var $180 = $179;
  55462.                     break L1884;
  55463.                   }
  55464.                 }
  55465.               } else {
  55466.                 var $180 = $97;
  55467.               }
  55468.             } while (0);
  55469.             var $180;
  55470.             if (($180 + 2 | 0) >>> 0 < $end >>> 0) {
  55471.               __ZN11hb_buffer_t18merge_out_clustersEjj($buffer_addr, $start, $end);
  55472.               var $188 = HEAP[$buffer_addr + 100 | 0] + (($end - 2) * 20 & -1) | 0;
  55473.               for (var $$src = $188, $$dest = $23, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  55474.                 HEAP[$$dest] = HEAP[$$src];
  55475.               }
  55476.               _memmove(HEAP[$buffer_addr + 100 | 0] + ($start * 20 & -1) + 20 | 0, HEAP[$buffer_addr + 100 | 0] + ($start * 20 & -1) | 0, ($end - 2 + -$start) * 20 & -1, 4, 0);
  55477.               var $202 = HEAP[$buffer_addr + 100 | 0] + ($start * 20 & -1) | 0;
  55478.               for (var $$src = $24, $$dest = $202, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  55479.                 HEAP[$$dest] = HEAP[$$src];
  55480.               }
  55481.               break;
  55482.             }
  55483.             if (($start | 0) == 0) {
  55484.               break;
  55485.             }
  55486.             __ZN11hb_buffer_t18merge_out_clustersEjj($buffer_addr, $start - 1 | 0, $end);
  55487.           } else {
  55488.             HEAP[$this_addr_i7] = $buffer_addr;
  55489.             var $this1_i8 = HEAP[$this_addr_i7];
  55490.             if (HEAP[$this1_i8 + 77 | 0] & 1) {
  55491.               do {
  55492.                 if ((HEAP[$this1_i8 + 100 | 0] | 0) != (HEAP[$this1_i8 + 96 | 0] | 0)) {
  55493.                   label = 1388;
  55494.                 } else {
  55495.                   if ((HEAP[$this1_i8 + 88 | 0] | 0) != (HEAP[$this1_i8 + 80 | 0] | 0)) {
  55496.                     label = 1388;
  55497.                     break;
  55498.                   } else {
  55499.                     break;
  55500.                   }
  55501.                 }
  55502.               } while (0);
  55503.               if (label == 1388) {
  55504.                 label = 0;
  55505.                 if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i8, 1, 1)) {
  55506.                   break;
  55507.                 }
  55508.                 var $81 = HEAP[$this1_i8 + 100 | 0] + (HEAP[$this1_i8 + 88 | 0] * 20 & -1) | 0;
  55509.                 var $82 = HEAP[$this1_i8 + 96 | 0] + (HEAP[$this1_i8 + 80 | 0] * 20 & -1) | 0;
  55510.                 for (var $$src = $82, $$dest = $81, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  55511.                   HEAP[$$dest] = HEAP[$$src];
  55512.                 }
  55513.               }
  55514.               var $out_len11_i = $this1_i8 + 88 | 0;
  55515.               HEAP[$out_len11_i] = HEAP[$out_len11_i] + 1 | 0;
  55516.             }
  55517.             var $idx13_i = $this1_i8 + 80 | 0;
  55518.             HEAP[$idx13_i] = HEAP[$idx13_i] + 1 | 0;
  55519.           }
  55520.         } while (0);
  55521.         var $88 = $buffer_addr;
  55522.         if (HEAP[$buffer_addr + 80 | 0] >>> 0 < $count >>> 0) {
  55523.           var $65 = $88;
  55524.         } else {
  55525.           var $_lcssa = $88;
  55526.           break L1867;
  55527.         }
  55528.       }
  55529.       STACKTOP = __stackBase__;
  55530.       return;
  55531.     } else {
  55532.       var $_lcssa = $18;
  55533.     }
  55534.   } while (0);
  55535.   var $_lcssa;
  55536.   HEAP[$this_addr_i28] = $_lcssa;
  55537.   var $this1_i29 = HEAP[$this_addr_i28];
  55538.   if (!(HEAP[$this1_i29 + 76 | 0] & 1)) {
  55539.     if (!(HEAP[$this1_i29 + 77 | 0] & 1)) {
  55540.       ___assert_func(102952, 274, 108904, 103776);
  55541.     }
  55542.     HEAP[$this1_i29 + 77 | 0] = 0;
  55543.     if ((HEAP[$this1_i29 + 100 | 0] | 0) != (HEAP[$this1_i29 + 96 | 0] | 0)) {
  55544.       HEAP[$tmp_string_i] = HEAP[$this1_i29 + 96 | 0];
  55545.       HEAP[$this1_i29 + 96 | 0] = HEAP[$this1_i29 + 100 | 0];
  55546.       HEAP[$this1_i29 + 100 | 0] = HEAP[$tmp_string_i];
  55547.       HEAP[$this1_i29 + 104 | 0] = HEAP[$this1_i29 + 100 | 0];
  55548.     }
  55549.     HEAP[$tmp_i] = HEAP[$this1_i29 + 84 | 0];
  55550.     HEAP[$this1_i29 + 84 | 0] = HEAP[$this1_i29 + 88 | 0];
  55551.     HEAP[$this1_i29 + 88 | 0] = HEAP[$tmp_i];
  55552.     HEAP[$this1_i29 + 80 | 0] = 0;
  55553.   }
  55554.   if ((HEAP[$plan_addr + 4 | 0] | 0) != 1416126825) {
  55555.     STACKTOP = __stackBase__;
  55556.     return;
  55557.   }
  55558.   if (HEAP[$plan_addr + 32 | 0] & 1) {
  55559.     STACKTOP = __stackBase__;
  55560.     return;
  55561.   }
  55562.   HEAP[$plan_addr_i] = $plan_addr;
  55563.   HEAP[$buffer_addr_i] = $buffer_addr;
  55564.   HEAP[$font_addr_i] = $font_addr;
  55565.   HEAP[$above_state_i] = 3;
  55566.   HEAP[$below_state_i] = 2;
  55567.   HEAP[$base_i] = 0;
  55568.   HEAP[$info_i1] = HEAP[HEAP[$buffer_addr_i] + 96 | 0];
  55569.   HEAP[$count_i] = HEAP[HEAP[$buffer_addr_i] + 84 | 0];
  55570.   HEAP[$i_i] = 0;
  55571.   L1945 : do {
  55572.     if (HEAP[$i_i] >>> 0 < HEAP[$count_i] >>> 0) {
  55573.       while (1) {
  55574.         var $304 = HEAP[HEAP[$info_i1] + (HEAP[$i_i] * 20 & -1) | 0];
  55575.         HEAP[$u_addr_i_i] = $304;
  55576.         do {
  55577.           if (($304 | 0) == 3633) {
  55578.             label = 1452;
  55579.           } else {
  55580.             HEAP[$u_addr_i_i_i] = HEAP[$u_addr_i_i];
  55581.             HEAP[$lo_addr_i_i_i] = 3636;
  55582.             HEAP[$hi_addr_i_i_i] = 3639;
  55583.             do {
  55584.               if (((HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) & HEAP[$lo_addr_i_i_i] | 0) == 0) {
  55585.                 if (((HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) & HEAP[$hi_addr_i_i_i] | 0) != (HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i] | 0)) {
  55586.                   label = 1440;
  55587.                   break;
  55588.                 }
  55589.                 if (((HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) + 1 & (HEAP[$hi_addr_i_i_i] ^ HEAP[$lo_addr_i_i_i]) | 0) != 0) {
  55590.                   label = 1440;
  55591.                   break;
  55592.                 }
  55593.                 HEAP[$retval_i_i_i] = ((HEAP[$lo_addr_i_i_i] ^ -1 ^ HEAP[$hi_addr_i_i_i]) & HEAP[$u_addr_i_i_i] | 0) == (HEAP[$lo_addr_i_i_i] | 0);
  55594.                 break;
  55595.               } else {
  55596.                 label = 1440;
  55597.               }
  55598.             } while (0);
  55599.             if (label == 1440) {
  55600.               label = 0;
  55601.               if (HEAP[$lo_addr_i_i_i] >>> 0 <= HEAP[$u_addr_i_i_i] >>> 0) {
  55602.                 var $326 = HEAP[$u_addr_i_i_i] >>> 0 <= HEAP[$hi_addr_i_i_i] >>> 0;
  55603.               } else {
  55604.                 var $326 = 0;
  55605.               }
  55606.               var $326;
  55607.               HEAP[$retval_i_i_i] = $326;
  55608.             }
  55609.             if (HEAP[$retval_i_i_i] | (HEAP[$u_addr_i_i] | 0) == 3655) {
  55610.               label = 1452;
  55611.               break;
  55612.             }
  55613.             HEAP[$u_addr_i60_i_i] = HEAP[$u_addr_i_i];
  55614.             HEAP[$lo_addr_i61_i_i] = 3661;
  55615.             HEAP[$hi_addr_i62_i_i] = 3662;
  55616.             do {
  55617.               if (((HEAP[$hi_addr_i62_i_i] ^ HEAP[$lo_addr_i61_i_i]) & HEAP[$lo_addr_i61_i_i] | 0) == 0) {
  55618.                 if (((HEAP[$hi_addr_i62_i_i] ^ HEAP[$lo_addr_i61_i_i]) & HEAP[$hi_addr_i62_i_i] | 0) != (HEAP[$hi_addr_i62_i_i] ^ HEAP[$lo_addr_i61_i_i] | 0)) {
  55619.                   label = 1448;
  55620.                   break;
  55621.                 }
  55622.                 if (((HEAP[$hi_addr_i62_i_i] ^ HEAP[$lo_addr_i61_i_i]) + 1 & (HEAP[$hi_addr_i62_i_i] ^ HEAP[$lo_addr_i61_i_i]) | 0) != 0) {
  55623.                   label = 1448;
  55624.                   break;
  55625.                 }
  55626.                 var $cmp12_i80_i_i = ((HEAP[$lo_addr_i61_i_i] ^ -1 ^ HEAP[$hi_addr_i62_i_i]) & HEAP[$u_addr_i60_i_i] | 0) == (HEAP[$lo_addr_i61_i_i] | 0);
  55627.                 HEAP[$retval_i59_i_i] = $cmp12_i80_i_i;
  55628.                 var $351 = $cmp12_i80_i_i;
  55629.                 break;
  55630.               } else {
  55631.                 label = 1448;
  55632.               }
  55633.             } while (0);
  55634.             if (label == 1448) {
  55635.               label = 0;
  55636.               if (HEAP[$lo_addr_i61_i_i] >>> 0 <= HEAP[$u_addr_i60_i_i] >>> 0) {
  55637.                 var $350 = HEAP[$u_addr_i60_i_i] >>> 0 <= HEAP[$hi_addr_i62_i_i] >>> 0;
  55638.               } else {
  55639.                 var $350 = 0;
  55640.               }
  55641.               var $350;
  55642.               HEAP[$retval_i59_i_i] = $350;
  55643.               var $351 = $350;
  55644.             }
  55645.             var $351;
  55646.             if ($351) {
  55647.               label = 1452;
  55648.               break;
  55649.             }
  55650.             HEAP[$u_addr_i31_i_i] = HEAP[$u_addr_i_i];
  55651.             HEAP[$lo_addr_i32_i_i] = 3640;
  55652.             HEAP[$hi_addr_i33_i_i] = 3642;
  55653.             do {
  55654.               if (((HEAP[$hi_addr_i33_i_i] ^ HEAP[$lo_addr_i32_i_i]) & HEAP[$lo_addr_i32_i_i] | 0) == 0) {
  55655.                 if (((HEAP[$hi_addr_i33_i_i] ^ HEAP[$lo_addr_i32_i_i]) & HEAP[$hi_addr_i33_i_i] | 0) != (HEAP[$hi_addr_i33_i_i] ^ HEAP[$lo_addr_i32_i_i] | 0)) {
  55656.                   label = 1457;
  55657.                   break;
  55658.                 }
  55659.                 if (((HEAP[$hi_addr_i33_i_i] ^ HEAP[$lo_addr_i32_i_i]) + 1 & (HEAP[$hi_addr_i33_i_i] ^ HEAP[$lo_addr_i32_i_i]) | 0) != 0) {
  55660.                   label = 1457;
  55661.                   break;
  55662.                 }
  55663.                 var $cmp12_i51_i_i = ((HEAP[$lo_addr_i32_i_i] ^ -1 ^ HEAP[$hi_addr_i33_i_i]) & HEAP[$u_addr_i31_i_i] | 0) == (HEAP[$lo_addr_i32_i_i] | 0);
  55664.                 HEAP[$retval_i30_i_i] = $cmp12_i51_i_i;
  55665.                 var $374 = $cmp12_i51_i_i;
  55666.                 break;
  55667.               } else {
  55668.                 label = 1457;
  55669.               }
  55670.             } while (0);
  55671.             if (label == 1457) {
  55672.               label = 0;
  55673.               if (HEAP[$lo_addr_i32_i_i] >>> 0 <= HEAP[$u_addr_i31_i_i] >>> 0) {
  55674.                 var $373 = HEAP[$u_addr_i31_i_i] >>> 0 <= HEAP[$hi_addr_i33_i_i] >>> 0;
  55675.               } else {
  55676.                 var $373 = 0;
  55677.               }
  55678.               var $373;
  55679.               HEAP[$retval_i30_i_i] = $373;
  55680.               var $374 = $373;
  55681.             }
  55682.             var $374;
  55683.             if ($374) {
  55684.               HEAP[$retval_i_i] = 1;
  55685.               var $_ph_i = 1;
  55686.               label = 1488;
  55687.               break;
  55688.             }
  55689.             HEAP[$u_addr_i2_i_i] = HEAP[$u_addr_i_i];
  55690.             HEAP[$lo_addr_i3_i_i] = 3656;
  55691.             HEAP[$hi_addr_i4_i_i] = 3660;
  55692.             do {
  55693.               if (((HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) & HEAP[$lo_addr_i3_i_i] | 0) == 0) {
  55694.                 if (((HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) & HEAP[$hi_addr_i4_i_i] | 0) != (HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i] | 0)) {
  55695.                   label = 1466;
  55696.                   break;
  55697.                 }
  55698.                 if (((HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) + 1 & (HEAP[$hi_addr_i4_i_i] ^ HEAP[$lo_addr_i3_i_i]) | 0) != 0) {
  55699.                   label = 1466;
  55700.                   break;
  55701.                 }
  55702.                 var $cmp12_i22_i_i = ((HEAP[$lo_addr_i3_i_i] ^ -1 ^ HEAP[$hi_addr_i4_i_i]) & HEAP[$u_addr_i2_i_i] | 0) == (HEAP[$lo_addr_i3_i_i] | 0);
  55703.                 HEAP[$retval_i1_i_i] = $cmp12_i22_i_i;
  55704.                 var $397 = $cmp12_i22_i_i;
  55705.                 break;
  55706.               } else {
  55707.                 label = 1466;
  55708.               }
  55709.             } while (0);
  55710.             if (label == 1466) {
  55711.               label = 0;
  55712.               if (HEAP[$lo_addr_i3_i_i] >>> 0 <= HEAP[$u_addr_i2_i_i] >>> 0) {
  55713.                 var $396 = HEAP[$u_addr_i2_i_i] >>> 0 <= HEAP[$hi_addr_i4_i_i] >>> 0;
  55714.               } else {
  55715.                 var $396 = 0;
  55716.               }
  55717.               var $396;
  55718.               HEAP[$retval_i1_i_i] = $396;
  55719.               var $397 = $396;
  55720.             }
  55721.             var $397;
  55722.             if ($397) {
  55723.               HEAP[$retval_i_i] = 2;
  55724.               var $_ph_i = 2;
  55725.               label = 1488;
  55726.               break;
  55727.             }
  55728.             HEAP[$retval_i_i] = 3;
  55729.             HEAP[$mt_i] = 3;
  55730.             HEAP[$u_addr_i6_i] = HEAP[HEAP[$info_i1] + (HEAP[$i_i] * 20 & -1) | 0];
  55731.             do {
  55732.               if ((HEAP[$u_addr_i6_i] | 0) == 3611 | (HEAP[$u_addr_i6_i] | 0) == 3613 | (HEAP[$u_addr_i6_i] | 0) == 3615) {
  55733.                 HEAP[$retval_i5_i] = 1;
  55734.               } else {
  55735.                 if ((HEAP[$u_addr_i6_i] | 0) == 3597 | (HEAP[$u_addr_i6_i] | 0) == 3600) {
  55736.                   HEAP[$retval_i5_i] = 2;
  55737.                   break;
  55738.                 }
  55739.                 if ((HEAP[$u_addr_i6_i] | 0) == 3598 | (HEAP[$u_addr_i6_i] | 0) == 3599) {
  55740.                   HEAP[$retval_i5_i] = 3;
  55741.                   break;
  55742.                 }
  55743.                 HEAP[$u_addr_i_i2_i] = HEAP[$u_addr_i6_i];
  55744.                 HEAP[$lo_addr_i_i3_i] = 3585;
  55745.                 HEAP[$hi_addr_i_i4_i] = 3630;
  55746.                 do {
  55747.                   if (((HEAP[$hi_addr_i_i4_i] ^ HEAP[$lo_addr_i_i3_i]) & HEAP[$lo_addr_i_i3_i] | 0) == 0) {
  55748.                     if (((HEAP[$hi_addr_i_i4_i] ^ HEAP[$lo_addr_i_i3_i]) & HEAP[$hi_addr_i_i4_i] | 0) != (HEAP[$hi_addr_i_i4_i] ^ HEAP[$lo_addr_i_i3_i] | 0)) {
  55749.                       label = 1481;
  55750.                       break;
  55751.                     }
  55752.                     if (((HEAP[$hi_addr_i_i4_i] ^ HEAP[$lo_addr_i_i3_i]) + 1 & (HEAP[$hi_addr_i_i4_i] ^ HEAP[$lo_addr_i_i3_i]) | 0) != 0) {
  55753.                       label = 1481;
  55754.                       break;
  55755.                     }
  55756.                     var $cmp12_i_i28_i = ((HEAP[$lo_addr_i_i3_i] ^ -1 ^ HEAP[$hi_addr_i_i4_i]) & HEAP[$u_addr_i_i2_i] | 0) == (HEAP[$lo_addr_i_i3_i] | 0);
  55757.                     HEAP[$retval_i_i1_i] = $cmp12_i_i28_i;
  55758.                     var $430 = $cmp12_i_i28_i;
  55759.                     break;
  55760.                   } else {
  55761.                     label = 1481;
  55762.                   }
  55763.                 } while (0);
  55764.                 if (label == 1481) {
  55765.                   label = 0;
  55766.                   if (HEAP[$lo_addr_i_i3_i] >>> 0 <= HEAP[$u_addr_i_i2_i] >>> 0) {
  55767.                     var $429 = HEAP[$u_addr_i_i2_i] >>> 0 <= HEAP[$hi_addr_i_i4_i] >>> 0;
  55768.                   } else {
  55769.                     var $429 = 0;
  55770.                   }
  55771.                   var $429;
  55772.                   HEAP[$retval_i_i1_i] = $429;
  55773.                   var $430 = $429;
  55774.                 }
  55775.                 var $430;
  55776.                 if ($430) {
  55777.                   HEAP[$retval_i5_i] = 0;
  55778.                   break;
  55779.                 } else {
  55780.                   HEAP[$retval_i5_i] = 4;
  55781.                   break;
  55782.                 }
  55783.               }
  55784.             } while (0);
  55785.             HEAP[$ct_i] = HEAP[$retval_i5_i];
  55786.             HEAP[$above_state_i] = HEAP[(HEAP[$ct_i] << 2) + 131136 | 0];
  55787.             HEAP[$below_state_i] = HEAP[(HEAP[$ct_i] << 2) + 131112 | 0];
  55788.             HEAP[$base_i] = HEAP[$i_i];
  55789.             break;
  55790.           }
  55791.         } while (0);
  55792.         do {
  55793.           if (label == 1452) {
  55794.             label = 0;
  55795.             HEAP[$retval_i_i] = 0;
  55796.             var $_ph_i = 0;
  55797.             label = 1488;
  55798.             break;
  55799.           }
  55800.         } while (0);
  55801.         do {
  55802.           if (label == 1488) {
  55803.             label = 0;
  55804.             var $_ph_i;
  55805.             HEAP[$mt_i] = $_ph_i;
  55806.             HEAP[$above_edge_i] = (HEAP[$mt_i] << 3) + (HEAP[$above_state_i] * 24 & -1) + 130888 | 0;
  55807.             HEAP[$below_edge_i] = (HEAP[$mt_i] << 3) + (HEAP[$below_state_i] * 24 & -1) + 130816 | 0;
  55808.             HEAP[$above_state_i] = HEAP[HEAP[$above_edge_i] + 4 | 0];
  55809.             HEAP[$below_state_i] = HEAP[HEAP[$below_edge_i] + 4 | 0];
  55810.             if ((HEAP[HEAP[$above_edge_i] | 0] | 0) != 0) {
  55811.               var $cond_i = HEAP[HEAP[$above_edge_i] | 0];
  55812.             } else {
  55813.               var $cond_i = HEAP[HEAP[$below_edge_i] | 0];
  55814.             }
  55815.             var $cond_i;
  55816.             HEAP[$action_i] = $cond_i;
  55817.             if (($cond_i | 0) == 4) {
  55818.               var $call21_i = __ZL14thai_pua_shapej13thai_action_tP9hb_font_t(HEAP[HEAP[$info_i1] + (HEAP[$base_i] * 20 & -1) | 0], HEAP[$action_i], HEAP[$font_addr_i]);
  55819.               HEAP[HEAP[$info_i1] + (HEAP[$base_i] * 20 & -1) | 0] = $call21_i;
  55820.               break;
  55821.             } else {
  55822.               var $call26_i = __ZL14thai_pua_shapej13thai_action_tP9hb_font_t(HEAP[HEAP[$info_i1] + (HEAP[$i_i] * 20 & -1) | 0], HEAP[$action_i], HEAP[$font_addr_i]);
  55823.               HEAP[HEAP[$info_i1] + (HEAP[$i_i] * 20 & -1) | 0] = $call26_i;
  55824.               break;
  55825.             }
  55826.           }
  55827.         } while (0);
  55828.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  55829.         if (HEAP[$i_i] >>> 0 >= HEAP[$count_i] >>> 0) {
  55830.           break L1945;
  55831.         }
  55832.       }
  55833.     }
  55834.   } while (0);
  55835.   STACKTOP = __stackBase__;
  55836.   return;
  55837. }
  55838. function __ZL14thai_pua_shapej13thai_action_tP9hb_font_t($u, $action, $font) {
  55839.   var __stackBase__ = STACKTOP;
  55840.   STACKTOP = STACKTOP + 68 | 0;
  55841.   var $this_addr_i_i1 = __stackBase__;
  55842.   var $unicode_addr_i_i2 = __stackBase__ + 4;
  55843.   var $variation_selector_addr_i_i3 = __stackBase__ + 8;
  55844.   var $glyph_addr_i_i4 = __stackBase__ + 12;
  55845.   var $font_addr_i5 = __stackBase__ + 16;
  55846.   var $unicode_addr_i6 = __stackBase__ + 20;
  55847.   var $variation_selector_addr_i7 = __stackBase__ + 24;
  55848.   var $glyph_addr_i8 = __stackBase__ + 28;
  55849.   var $this_addr_i_i = __stackBase__ + 32;
  55850.   var $unicode_addr_i_i = __stackBase__ + 36;
  55851.   var $variation_selector_addr_i_i = __stackBase__ + 40;
  55852.   var $glyph_addr_i_i = __stackBase__ + 44;
  55853.   var $font_addr_i = __stackBase__ + 48;
  55854.   var $unicode_addr_i = __stackBase__ + 52;
  55855.   var $variation_selector_addr_i = __stackBase__ + 56;
  55856.   var $glyph_addr_i = __stackBase__ + 60;
  55857.   var $retval;
  55858.   var $u_addr;
  55859.   var $font_addr;
  55860.   var $pua_mappings;
  55861.   var $glyph = __stackBase__ + 64;
  55862.   $u_addr = $u;
  55863.   $font_addr = $font;
  55864.   $pua_mappings = 0;
  55865.   var $0 = $action;
  55866.   if (($0 | 0) == 3) {
  55867.     $pua_mappings = 110848;
  55868.   } else if (($0 | 0) == 2) {
  55869.     $pua_mappings = 110920;
  55870.   } else if (($0 | 0) == 1) {
  55871.     $pua_mappings = 111080;
  55872.   } else if (($0 | 0) == 0) {
  55873.     $retval = $u_addr;
  55874.     var $79 = $retval;
  55875.     STACKTOP = __stackBase__;
  55876.     return $79;
  55877.   } else if (($0 | 0) == 4) {
  55878.     $pua_mappings = 111192;
  55879.   } else {
  55880.     ___assert_func(102608, 142, 110600, 103472);
  55881.   }
  55882.   L2046 : do {
  55883.     if ((HEAP[$pua_mappings | 0] | 0) != 0) {
  55884.       while (1) {
  55885.         if ((HEAP[$pua_mappings | 0] | 0) == ($u_addr | 0)) {
  55886.           break;
  55887.         }
  55888.         $pua_mappings = $pua_mappings + 12 | 0;
  55889.         if ((HEAP[$pua_mappings | 0] | 0) == 0) {
  55890.           break L2046;
  55891.         }
  55892.       }
  55893.       var $9 = HEAP[$pua_mappings + 4 | 0];
  55894.       HEAP[$font_addr_i] = $font_addr;
  55895.       HEAP[$unicode_addr_i] = $9;
  55896.       HEAP[$variation_selector_addr_i] = 0;
  55897.       HEAP[$glyph_addr_i] = $glyph;
  55898.       var $15 = HEAP[$unicode_addr_i];
  55899.       var $16 = HEAP[$variation_selector_addr_i];
  55900.       var $17 = HEAP[$glyph_addr_i];
  55901.       HEAP[$this_addr_i_i] = HEAP[$font_addr_i];
  55902.       HEAP[$unicode_addr_i_i] = $15;
  55903.       HEAP[$variation_selector_addr_i_i] = $16;
  55904.       HEAP[$glyph_addr_i_i] = $17;
  55905.       var $this1_i_i = HEAP[$this_addr_i_i];
  55906.       HEAP[HEAP[$glyph_addr_i_i]] = 0;
  55907.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 48 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$unicode_addr_i_i], HEAP[$variation_selector_addr_i_i], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 92 | 0]) | 0) != 0) {
  55908.         $retval = HEAP[$pua_mappings + 4 | 0];
  55909.         var $79 = $retval;
  55910.         STACKTOP = __stackBase__;
  55911.         return $79;
  55912.       }
  55913.       var $43 = HEAP[$pua_mappings + 8 | 0];
  55914.       HEAP[$font_addr_i5] = $font_addr;
  55915.       HEAP[$unicode_addr_i6] = $43;
  55916.       HEAP[$variation_selector_addr_i7] = 0;
  55917.       HEAP[$glyph_addr_i8] = $glyph;
  55918.       var $49 = HEAP[$unicode_addr_i6];
  55919.       var $50 = HEAP[$variation_selector_addr_i7];
  55920.       var $51 = HEAP[$glyph_addr_i8];
  55921.       HEAP[$this_addr_i_i1] = HEAP[$font_addr_i5];
  55922.       HEAP[$unicode_addr_i_i2] = $49;
  55923.       HEAP[$variation_selector_addr_i_i3] = $50;
  55924.       HEAP[$glyph_addr_i_i4] = $51;
  55925.       var $this1_i_i9 = HEAP[$this_addr_i_i1];
  55926.       HEAP[HEAP[$glyph_addr_i_i4]] = 0;
  55927.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i9 + 72 | 0] + 48 | 0]]($this1_i_i9, HEAP[$this1_i_i9 + 76 | 0], HEAP[$unicode_addr_i_i2], HEAP[$variation_selector_addr_i_i3], HEAP[$glyph_addr_i_i4], HEAP[HEAP[$this1_i_i9 + 72 | 0] + 92 | 0]) | 0) == 0) {
  55928.         break;
  55929.       }
  55930.       $retval = HEAP[$pua_mappings + 8 | 0];
  55931.       var $79 = $retval;
  55932.       STACKTOP = __stackBase__;
  55933.       return $79;
  55934.     }
  55935.   } while (0);
  55936.   $retval = $u_addr;
  55937.   var $79 = $retval;
  55938.   STACKTOP = __stackBase__;
  55939.   return $79;
  55940. }
  55941. function __Z22_hb_ot_shape_normalizePK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t($plan, $buffer, $font) {
  55942.   var label = 0;
  55943.   var __stackBase__ = STACKTOP;
  55944.   STACKTOP = STACKTOP + 368 | 0;
  55945.   var $this_addr_i_i = __stackBase__;
  55946.   var $unicode_addr_i_i = __stackBase__ + 4;
  55947.   var $variation_selector_addr_i_i = __stackBase__ + 8;
  55948.   var $glyph_addr_i_i = __stackBase__ + 12;
  55949.   var $info_addr_i198 = __stackBase__ + 16;
  55950.   var $font_addr_i = __stackBase__ + 20;
  55951.   var $this_addr_i170 = __stackBase__ + 24;
  55952.   var $this_addr_i167 = __stackBase__ + 28;
  55953.   var $unicode_addr_i = __stackBase__ + 32;
  55954.   var $variation_selector_addr_i = __stackBase__ + 36;
  55955.   var $glyph_addr_i = __stackBase__ + 40;
  55956.   var $this_addr_i160 = __stackBase__ + 44;
  55957.   var $i_addr_i161 = __stackBase__ + 48;
  55958.   var $info_addr_i155 = __stackBase__ + 52;
  55959.   var $this_addr_i148 = __stackBase__ + 56;
  55960.   var $i_addr_i149 = __stackBase__ + 60;
  55961.   var $info_addr_i143 = __stackBase__ + 64;
  55962.   var $this_addr_i137 = __stackBase__ + 68;
  55963.   var $info_addr_i132 = __stackBase__ + 72;
  55964.   var $this_addr_i125 = __stackBase__ + 76;
  55965.   var $i_addr_i126 = __stackBase__ + 80;
  55966.   var $this_addr_i97 = __stackBase__ + 84;
  55967.   var $this_addr_i_i_i_i79 = __stackBase__ + 88;
  55968.   var $this_addr_i_i_i80 = __stackBase__ + 92;
  55969.   var $obj_addr_i_i81 = __stackBase__ + 96;
  55970.   var $this_addr_i82 = __stackBase__ + 100;
  55971.   var $info_addr_i74 = __stackBase__ + 104;
  55972.   var $info_addr_i69 = __stackBase__ + 108;
  55973.   var $this_addr_i40 = __stackBase__ + 112;
  55974.   var $tmp_string_i41 = __stackBase__ + 116;
  55975.   var $tmp_i42 = __stackBase__ + 120;
  55976.   var $this_addr_i90_i_i_i = __stackBase__ + 124;
  55977.   var $i_addr_i91_i_i_i = __stackBase__ + 128;
  55978.   var $this_addr_i83_i_i_i = __stackBase__ + 132;
  55979.   var $i_addr_i84_i_i_i = __stackBase__ + 136;
  55980.   var $this_addr_i80_i_i_i = __stackBase__ + 140;
  55981.   var $unicode_addr_i_i_i_i = __stackBase__ + 144;
  55982.   var $variation_selector_addr_i_i_i_i = __stackBase__ + 148;
  55983.   var $glyph_addr_i_i_i_i = __stackBase__ + 152;
  55984.   var $this_addr_i_i62_i_i_i = __stackBase__ + 156;
  55985.   var $unicode_addr_i_i63_i_i_i = __stackBase__ + 160;
  55986.   var $variation_selector_addr_i_i64_i_i_i = __stackBase__ + 164;
  55987.   var $glyph_addr_i_i65_i_i_i = __stackBase__ + 168;
  55988.   var $info_addr_i66_i_i_i = __stackBase__ + 172;
  55989.   var $font_addr_i67_i_i_i = __stackBase__ + 176;
  55990.   var $this_addr_i55_i_i_i = __stackBase__ + 180;
  55991.   var $i_addr_i56_i_i_i = __stackBase__ + 184;
  55992.   var $this_addr_i27_i_i_i = __stackBase__ + 188;
  55993.   var $this_addr_i20_i_i_i = __stackBase__ + 192;
  55994.   var $i_addr_i21_i_i_i = __stackBase__ + 196;
  55995.   var $this_addr_i13_i_i_i = __stackBase__ + 200;
  55996.   var $i_addr_i14_i_i_i = __stackBase__ + 204;
  55997.   var $this_addr_i_i_i_i_i = __stackBase__ + 208;
  55998.   var $unicode_addr_i_i_i_i_i = __stackBase__ + 212;
  55999.   var $variation_selector_addr_i_i_i_i_i = __stackBase__ + 216;
  56000.   var $glyph_addr_i_i_i_i_i = __stackBase__ + 220;
  56001.   var $info_addr_i_i_i_i = __stackBase__ + 224;
  56002.   var $font_addr_i_i_i_i = __stackBase__ + 228;
  56003.   var $this_addr_i6_i_i_i = __stackBase__ + 232;
  56004.   var $i_addr_i7_i_i_i = __stackBase__ + 236;
  56005.   var $this_addr_i1_i_i_i = __stackBase__ + 240;
  56006.   var $this_addr_i_i_i_i31 = __stackBase__ + 244;
  56007.   var $i_addr_i_i_i_i = __stackBase__ + 248;
  56008.   var $c_addr_i_i_i = __stackBase__ + 252;
  56009.   var $end_addr_i_i_i = __stackBase__ + 256;
  56010.   var $buffer_i_i_i = __stackBase__ + 260;
  56011.   var $c_addr_i_i = __stackBase__ + 264;
  56012.   var $end_addr_i_i = __stackBase__ + 268;
  56013.   var $buffer_i_i = __stackBase__ + 272;
  56014.   var $i_i_i = __stackBase__ + 276;
  56015.   var $c_addr_i = __stackBase__ + 280;
  56016.   var $end_addr_i = __stackBase__ + 284;
  56017.   var $this_addr_i18 = __stackBase__ + 288;
  56018.   var $this_addr_i13 = __stackBase__ + 292;
  56019.   var $info_addr_i = __stackBase__ + 296;
  56020.   var $this_addr_i8 = __stackBase__ + 300;
  56021.   var $i_addr_i = __stackBase__ + 304;
  56022.   var $this_addr_i1 = __stackBase__ + 308;
  56023.   var $tmp_string_i = __stackBase__ + 312;
  56024.   var $tmp_i = __stackBase__ + 316;
  56025.   var $this_addr_i_i_i_i = __stackBase__ + 320;
  56026.   var $this_addr_i_i_i = __stackBase__ + 324;
  56027.   var $obj_addr_i_i = __stackBase__ + 328;
  56028.   var $this_addr_i = __stackBase__ + 332;
  56029.   var $plan_addr;
  56030.   var $buffer_addr;
  56031.   var $font_addr;
  56032.   var $mode;
  56033.   var $c = __stackBase__ + 336;
  56034.   var $short_circuit;
  56035.   var $count;
  56036.   var $end;
  56037.   var $i;
  56038.   var $end48;
  56039.   var $starter;
  56040.   var $composed = __stackBase__ + 360;
  56041.   var $glyph = __stackBase__ + 364;
  56042.   $plan_addr = $plan;
  56043.   $buffer_addr = $buffer;
  56044.   $font_addr = $font;
  56045.   if ((HEAP[HEAP[$plan_addr + 20 | 0] + 28 | 0] | 0) != 0) {
  56046.     var $cond = FUNCTION_TABLE[HEAP[HEAP[$plan_addr + 20 | 0] + 28 | 0]]($buffer_addr + 48 | 0);
  56047.   } else {
  56048.     var $cond = 1;
  56049.   }
  56050.   var $cond;
  56051.   $mode = $cond;
  56052.   HEAP[$c | 0] = $plan_addr;
  56053.   HEAP[$c + 4 | 0] = $buffer_addr;
  56054.   HEAP[$c + 8 | 0] = $font_addr;
  56055.   HEAP[$c + 12 | 0] = HEAP[$buffer_addr + 44 | 0];
  56056.   if ((HEAP[HEAP[$plan_addr + 20 | 0] + 32 | 0] | 0) != 0) {
  56057.     var $cond16 = HEAP[HEAP[$plan_addr + 20 | 0] + 32 | 0];
  56058.   } else {
  56059.     var $cond16 = 22;
  56060.   }
  56061.   var $cond16;
  56062.   HEAP[$c + 16 | 0] = $cond16;
  56063.   if ((HEAP[HEAP[$plan_addr + 20 | 0] + 36 | 0] | 0) != 0) {
  56064.     var $cond25 = HEAP[HEAP[$plan_addr + 20 | 0] + 36 | 0];
  56065.   } else {
  56066.     var $cond25 = 136;
  56067.   }
  56068.   var $cond25;
  56069.   HEAP[$c + 20 | 0] = $cond25;
  56070.   if (($mode | 0) != 0) {
  56071.     var $26 = ($mode | 0) != 2;
  56072.   } else {
  56073.     var $26 = 0;
  56074.   }
  56075.   var $26;
  56076.   $short_circuit = $26 & 1;
  56077.   HEAP[$this_addr_i] = $buffer_addr;
  56078.   var $this1_i = HEAP[$this_addr_i];
  56079.   HEAP[$obj_addr_i_i] = $this1_i;
  56080.   HEAP[$this_addr_i_i_i] = HEAP[$obj_addr_i_i] | 0;
  56081.   HEAP[$this_addr_i_i_i_i] = HEAP[$this_addr_i_i_i] | 0;
  56082.   if ((HEAP[HEAP[$this_addr_i_i_i_i] | 0] | 0) != -1) {
  56083.     HEAP[$this1_i + 77 | 0] = 1;
  56084.     HEAP[$this1_i + 78 | 0] = 0;
  56085.     HEAP[$this1_i + 88 | 0] = 0;
  56086.     HEAP[$this1_i + 100 | 0] = HEAP[$this1_i + 96 | 0];
  56087.   }
  56088.   $count = HEAP[$buffer_addr + 84 | 0];
  56089.   HEAP[$buffer_addr + 80 | 0] = 0;
  56090.   var $45 = $buffer_addr;
  56091.   L2075 : do {
  56092.     if (HEAP[$buffer_addr + 80 | 0] >>> 0 < $count >>> 0) {
  56093.       var $131 = $45;
  56094.       while (1) {
  56095.         var $131;
  56096.         $end = HEAP[$131 + 80 | 0] + 1 | 0;
  56097.         L2079 : do {
  56098.           if ($end >>> 0 < $count >>> 0) {
  56099.             while (1) {
  56100.               HEAP[$this_addr_i8] = $buffer_addr;
  56101.               HEAP[$i_addr_i] = 0;
  56102.               var $this1_i9 = HEAP[$this_addr_i8];
  56103.               if ((HEAP[HEAP[$this1_i9 + 96 | 0] + ((HEAP[$i_addr_i] + HEAP[$this1_i9 + 80 | 0]) * 20 & -1) + 8 | 0] | 0) != (HEAP[HEAP[$buffer_addr + 96 | 0] + ($end * 20 & -1) + 8 | 0] | 0)) {
  56104.                 break L2079;
  56105.               }
  56106.               $end = $end + 1 | 0;
  56107.               if ($end >>> 0 >= $count >>> 0) {
  56108.                 break L2079;
  56109.               }
  56110.             }
  56111.           }
  56112.         } while (0);
  56113.         HEAP[$c_addr_i] = $c;
  56114.         HEAP[$end_addr_i] = $end;
  56115.         var $153 = HEAP[$c_addr_i];
  56116.         L2084 : do {
  56117.           if ((HEAP[HEAP[HEAP[$c_addr_i] + 4 | 0] + 80 | 0] + 1 | 0) == (HEAP[$end_addr_i] | 0)) {
  56118.             __ZL27decompose_current_characterPK31hb_ot_shape_normalize_context_tb($153, $short_circuit & 1 & 1);
  56119.           } else {
  56120.             var $155 = HEAP[$end_addr_i];
  56121.             HEAP[$c_addr_i_i] = $153;
  56122.             HEAP[$end_addr_i_i] = $155;
  56123.             HEAP[$buffer_i_i] = HEAP[HEAP[$c_addr_i_i] + 4 | 0];
  56124.             HEAP[$i_i_i] = HEAP[HEAP[$buffer_i_i] + 80 | 0];
  56125.             L2087 : do {
  56126.               if (HEAP[$i_i_i] >>> 0 < HEAP[$end_addr_i_i] >>> 0) {
  56127.                 while (1) {
  56128.                   if ((__ZN18hb_unicode_funcs_t21is_variation_selectorEj(HEAP[HEAP[$buffer_i_i] + 44 | 0], HEAP[HEAP[HEAP[$buffer_i_i] + 96 | 0] + (HEAP[$i_i_i] * 20 & -1) | 0]) | 0) != 0) {
  56129.                     break;
  56130.                   }
  56131.                   HEAP[$i_i_i] = HEAP[$i_i_i] + 1 | 0;
  56132.                   if (HEAP[$i_i_i] >>> 0 >= HEAP[$end_addr_i_i] >>> 0) {
  56133.                     break L2087;
  56134.                   }
  56135.                 }
  56136.                 var $172 = HEAP[$end_addr_i_i];
  56137.                 HEAP[$c_addr_i_i_i] = HEAP[$c_addr_i_i];
  56138.                 HEAP[$end_addr_i_i_i] = $172;
  56139.                 HEAP[$buffer_i_i_i] = HEAP[HEAP[$c_addr_i_i_i] + 4 | 0];
  56140.                 var $178 = HEAP[$buffer_i_i_i];
  56141.                 L2092 : do {
  56142.                   if (HEAP[HEAP[$buffer_i_i_i] + 80 | 0] >>> 0 < (HEAP[$end_addr_i_i_i] - 1 | 0) >>> 0) {
  56143.                     var $179 = $178;
  56144.                     while (1) {
  56145.                       var $179;
  56146.                       var $180 = HEAP[$179 + 44 | 0];
  56147.                       HEAP[$this_addr_i_i_i_i31] = HEAP[$buffer_i_i_i];
  56148.                       HEAP[$i_addr_i_i_i_i] = 1;
  56149.                       var $this1_i_i_i_i37 = HEAP[$this_addr_i_i_i_i31];
  56150.                       do {
  56151.                         if ((__ZN18hb_unicode_funcs_t21is_variation_selectorEj($180, HEAP[HEAP[$this1_i_i_i_i37 + 96 | 0] + ((HEAP[$i_addr_i_i_i_i] + HEAP[$this1_i_i_i_i37 + 80 | 0]) * 20 & -1) | 0]) | 0) != 0) {
  56152.                           var $187 = HEAP[HEAP[$c_addr_i_i_i] + 8 | 0];
  56153.                           HEAP[$this_addr_i6_i_i_i] = HEAP[$buffer_i_i_i];
  56154.                           HEAP[$i_addr_i7_i_i_i] = 0;
  56155.                           var $this1_i8_i_i_i = HEAP[$this_addr_i6_i_i_i];
  56156.                           var $192 = HEAP[HEAP[$this1_i8_i_i_i + 96 | 0] + ((HEAP[$i_addr_i7_i_i_i] + HEAP[$this1_i8_i_i_i + 80 | 0]) * 20 & -1) | 0];
  56157.                           HEAP[$this_addr_i13_i_i_i] = HEAP[$buffer_i_i_i];
  56158.                           HEAP[$i_addr_i14_i_i_i] = 1;
  56159.                           var $this1_i15_i_i_i = HEAP[$this_addr_i13_i_i_i];
  56160.                           var $197 = HEAP[HEAP[$this1_i15_i_i_i + 96 | 0] + ((HEAP[$i_addr_i14_i_i_i] + HEAP[$this1_i15_i_i_i + 80 | 0]) * 20 & -1) | 0];
  56161.                           HEAP[$this_addr_i55_i_i_i] = HEAP[$buffer_i_i_i];
  56162.                           HEAP[$i_addr_i56_i_i_i] = 0;
  56163.                           var $this1_i57_i_i_i = HEAP[$this_addr_i55_i_i_i];
  56164.                           var $u32_i_i_i = HEAP[$this1_i57_i_i_i + 96 | 0] + ((HEAP[$i_addr_i56_i_i_i] + HEAP[$this1_i57_i_i_i + 80 | 0]) * 20 & -1) + 12 | 0;
  56165.                           HEAP[$this_addr_i80_i_i_i] = $187;
  56166.                           HEAP[$unicode_addr_i_i_i_i] = $192;
  56167.                           HEAP[$variation_selector_addr_i_i_i_i] = $197;
  56168.                           HEAP[$glyph_addr_i_i_i_i] = $u32_i_i_i;
  56169.                           var $this1_i81_i_i_i = HEAP[$this_addr_i80_i_i_i];
  56170.                           HEAP[HEAP[$glyph_addr_i_i_i_i]] = 0;
  56171.                           FUNCTION_TABLE[HEAP[HEAP[$this1_i81_i_i_i + 72 | 0] + 48 | 0]]($this1_i81_i_i_i, HEAP[$this1_i81_i_i_i + 76 | 0], HEAP[$unicode_addr_i_i_i_i], HEAP[$variation_selector_addr_i_i_i_i], HEAP[$glyph_addr_i_i_i_i], HEAP[HEAP[$this1_i81_i_i_i + 72 | 0] + 92 | 0]);
  56172.                           var $211 = HEAP[$buffer_i_i_i];
  56173.                           HEAP[$this_addr_i83_i_i_i] = HEAP[$buffer_i_i_i];
  56174.                           HEAP[$i_addr_i84_i_i_i] = 0;
  56175.                           var $this1_i85_i_i_i = HEAP[$this_addr_i83_i_i_i];
  56176.                           __ZN11hb_buffer_t14replace_glyphsEjjPKj($211, 2, 1, HEAP[$this1_i85_i_i_i + 96 | 0] + ((HEAP[$i_addr_i84_i_i_i] + HEAP[$this1_i85_i_i_i + 80 | 0]) * 20 & -1) | 0);
  56177.                         } else {
  56178.                           HEAP[$this_addr_i90_i_i_i] = HEAP[$buffer_i_i_i];
  56179.                           HEAP[$i_addr_i91_i_i_i] = 0;
  56180.                           var $this1_i92_i_i_i = HEAP[$this_addr_i90_i_i_i];
  56181.                           var $221 = HEAP[HEAP[$c_addr_i_i_i] + 8 | 0];
  56182.                           HEAP[$info_addr_i66_i_i_i] = HEAP[$this1_i92_i_i_i + 96 | 0] + ((HEAP[$i_addr_i91_i_i_i] + HEAP[$this1_i92_i_i_i + 80 | 0]) * 20 & -1) | 0;
  56183.                           HEAP[$font_addr_i67_i_i_i] = $221;
  56184.                           var $224 = HEAP[HEAP[$info_addr_i66_i_i_i] | 0];
  56185.                           var $u32_i70_i_i_i = HEAP[$info_addr_i66_i_i_i] + 12 | 0;
  56186.                           HEAP[$this_addr_i_i62_i_i_i] = HEAP[$font_addr_i67_i_i_i];
  56187.                           HEAP[$unicode_addr_i_i63_i_i_i] = $224;
  56188.                           HEAP[$variation_selector_addr_i_i64_i_i_i] = 0;
  56189.                           HEAP[$glyph_addr_i_i65_i_i_i] = $u32_i70_i_i_i;
  56190.                           var $this1_i_i71_i_i_i = HEAP[$this_addr_i_i62_i_i_i];
  56191.                           HEAP[HEAP[$glyph_addr_i_i65_i_i_i]] = 0;
  56192.                           FUNCTION_TABLE[HEAP[HEAP[$this1_i_i71_i_i_i + 72 | 0] + 48 | 0]]($this1_i_i71_i_i_i, HEAP[$this1_i_i71_i_i_i + 76 | 0], HEAP[$unicode_addr_i_i63_i_i_i], HEAP[$variation_selector_addr_i_i64_i_i_i], HEAP[$glyph_addr_i_i65_i_i_i], HEAP[HEAP[$this1_i_i71_i_i_i + 72 | 0] + 92 | 0]);
  56193.                           HEAP[$this_addr_i27_i_i_i] = HEAP[$buffer_i_i_i];
  56194.                           var $this1_i28_i_i_i = HEAP[$this_addr_i27_i_i_i];
  56195.                           if (HEAP[$this1_i28_i_i_i + 77 | 0] & 1) {
  56196.                             do {
  56197.                               if ((HEAP[$this1_i28_i_i_i + 100 | 0] | 0) != (HEAP[$this1_i28_i_i_i + 96 | 0] | 0)) {
  56198.                                 label = 1547;
  56199.                               } else {
  56200.                                 if ((HEAP[$this1_i28_i_i_i + 88 | 0] | 0) != (HEAP[$this1_i28_i_i_i + 80 | 0] | 0)) {
  56201.                                   label = 1547;
  56202.                                   break;
  56203.                                 } else {
  56204.                                   break;
  56205.                                 }
  56206.                               }
  56207.                             } while (0);
  56208.                             if (label == 1547) {
  56209.                               label = 0;
  56210.                               if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i28_i_i_i, 1, 1)) {
  56211.                                 break;
  56212.                               }
  56213.                               var $245 = HEAP[$this1_i28_i_i_i + 100 | 0] + (HEAP[$this1_i28_i_i_i + 88 | 0] * 20 & -1) | 0;
  56214.                               var $246 = HEAP[$this1_i28_i_i_i + 96 | 0] + (HEAP[$this1_i28_i_i_i + 80 | 0] * 20 & -1) | 0;
  56215.                               for (var $$src = $246, $$dest = $245, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56216.                                 HEAP[$$dest] = HEAP[$$src];
  56217.                               }
  56218.                             }
  56219.                             var $out_len11_i48_i_i_i = $this1_i28_i_i_i + 88 | 0;
  56220.                             HEAP[$out_len11_i48_i_i_i] = HEAP[$out_len11_i48_i_i_i] + 1 | 0;
  56221.                           }
  56222.                           var $idx13_i51_i_i_i = $this1_i28_i_i_i + 80 | 0;
  56223.                           HEAP[$idx13_i51_i_i_i] = HEAP[$idx13_i51_i_i_i] + 1 | 0;
  56224.                         }
  56225.                       } while (0);
  56226.                       var $252 = HEAP[$buffer_i_i_i];
  56227.                       if (HEAP[HEAP[$buffer_i_i_i] + 80 | 0] >>> 0 < (HEAP[$end_addr_i_i_i] - 1 | 0) >>> 0) {
  56228.                         var $179 = $252;
  56229.                       } else {
  56230.                         var $_lcssa_i_i_i = $252;
  56231.                         break L2092;
  56232.                       }
  56233.                     }
  56234.                   } else {
  56235.                     var $_lcssa_i_i_i = $178;
  56236.                   }
  56237.                 } while (0);
  56238.                 var $_lcssa_i_i_i;
  56239.                 if (HEAP[$_lcssa_i_i_i + 80 | 0] >>> 0 >= HEAP[$end_addr_i_i_i] >>> 0) {
  56240.                   break L2084;
  56241.                 }
  56242.                 HEAP[$this_addr_i20_i_i_i] = HEAP[$buffer_i_i_i];
  56243.                 HEAP[$i_addr_i21_i_i_i] = 0;
  56244.                 var $this1_i22_i_i_i = HEAP[$this_addr_i20_i_i_i];
  56245.                 var $260 = HEAP[HEAP[$c_addr_i_i_i] + 8 | 0];
  56246.                 HEAP[$info_addr_i_i_i_i] = HEAP[$this1_i22_i_i_i + 96 | 0] + ((HEAP[$i_addr_i21_i_i_i] + HEAP[$this1_i22_i_i_i + 80 | 0]) * 20 & -1) | 0;
  56247.                 HEAP[$font_addr_i_i_i_i] = $260;
  56248.                 var $263 = HEAP[HEAP[$info_addr_i_i_i_i] | 0];
  56249.                 var $u32_i_i_i_i = HEAP[$info_addr_i_i_i_i] + 12 | 0;
  56250.                 HEAP[$this_addr_i_i_i_i_i] = HEAP[$font_addr_i_i_i_i];
  56251.                 HEAP[$unicode_addr_i_i_i_i_i] = $263;
  56252.                 HEAP[$variation_selector_addr_i_i_i_i_i] = 0;
  56253.                 HEAP[$glyph_addr_i_i_i_i_i] = $u32_i_i_i_i;
  56254.                 var $this1_i_i_i_i_i = HEAP[$this_addr_i_i_i_i_i];
  56255.                 HEAP[HEAP[$glyph_addr_i_i_i_i_i]] = 0;
  56256.                 FUNCTION_TABLE[HEAP[HEAP[$this1_i_i_i_i_i + 72 | 0] + 48 | 0]]($this1_i_i_i_i_i, HEAP[$this1_i_i_i_i_i + 76 | 0], HEAP[$unicode_addr_i_i_i_i_i], HEAP[$variation_selector_addr_i_i_i_i_i], HEAP[$glyph_addr_i_i_i_i_i], HEAP[HEAP[$this1_i_i_i_i_i + 72 | 0] + 92 | 0]);
  56257.                 HEAP[$this_addr_i1_i_i_i] = HEAP[$buffer_i_i_i];
  56258.                 var $this1_i2_i_i_i = HEAP[$this_addr_i1_i_i_i];
  56259.                 if (HEAP[$this1_i2_i_i_i + 77 | 0] & 1) {
  56260.                   do {
  56261.                     if ((HEAP[$this1_i2_i_i_i + 100 | 0] | 0) != (HEAP[$this1_i2_i_i_i + 96 | 0] | 0)) {
  56262.                       label = 1556;
  56263.                     } else {
  56264.                       if ((HEAP[$this1_i2_i_i_i + 88 | 0] | 0) != (HEAP[$this1_i2_i_i_i + 80 | 0] | 0)) {
  56265.                         label = 1556;
  56266.                         break;
  56267.                       } else {
  56268.                         break;
  56269.                       }
  56270.                     }
  56271.                   } while (0);
  56272.                   if (label == 1556) {
  56273.                     label = 0;
  56274.                     if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i2_i_i_i, 1, 1)) {
  56275.                       break L2084;
  56276.                     }
  56277.                     var $284 = HEAP[$this1_i2_i_i_i + 100 | 0] + (HEAP[$this1_i2_i_i_i + 88 | 0] * 20 & -1) | 0;
  56278.                     var $285 = HEAP[$this1_i2_i_i_i + 96 | 0] + (HEAP[$this1_i2_i_i_i + 80 | 0] * 20 & -1) | 0;
  56279.                     for (var $$src = $285, $$dest = $284, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56280.                       HEAP[$$dest] = HEAP[$$src];
  56281.                     }
  56282.                   }
  56283.                   var $out_len11_i_i_i_i = $this1_i2_i_i_i + 88 | 0;
  56284.                   HEAP[$out_len11_i_i_i_i] = HEAP[$out_len11_i_i_i_i] + 1 | 0;
  56285.                 }
  56286.                 var $idx13_i_i_i_i = $this1_i2_i_i_i + 80 | 0;
  56287.                 HEAP[$idx13_i_i_i_i] = HEAP[$idx13_i_i_i_i] + 1 | 0;
  56288.                 break L2084;
  56289.               }
  56290.             } while (0);
  56291.             if (HEAP[HEAP[$buffer_i_i] + 80 | 0] >>> 0 >= HEAP[$end_addr_i_i] >>> 0) {
  56292.               break;
  56293.             }
  56294.             while (1) {
  56295.               __ZL27decompose_current_characterPK31hb_ot_shape_normalize_context_tb(HEAP[$c_addr_i_i], 0);
  56296.               if (HEAP[HEAP[$buffer_i_i] + 80 | 0] >>> 0 >= HEAP[$end_addr_i_i] >>> 0) {
  56297.                 break L2084;
  56298.               }
  56299.             }
  56300.           }
  56301.         } while (0);
  56302.         var $298 = $buffer_addr;
  56303.         if (HEAP[$buffer_addr + 80 | 0] >>> 0 < $count >>> 0) {
  56304.           var $131 = $298;
  56305.         } else {
  56306.           var $_lcssa207 = $298;
  56307.           break L2075;
  56308.         }
  56309.       }
  56310.     } else {
  56311.       var $_lcssa207 = $45;
  56312.     }
  56313.   } while (0);
  56314.   var $_lcssa207;
  56315.   HEAP[$this_addr_i40] = $_lcssa207;
  56316.   var $this1_i43 = HEAP[$this_addr_i40];
  56317.   if (!(HEAP[$this1_i43 + 76 | 0] & 1)) {
  56318.     if (!(HEAP[$this1_i43 + 77 | 0] & 1)) {
  56319.       ___assert_func(102952, 274, 108904, 103776);
  56320.     }
  56321.     HEAP[$this1_i43 + 77 | 0] = 0;
  56322.     if ((HEAP[$this1_i43 + 100 | 0] | 0) != (HEAP[$this1_i43 + 96 | 0] | 0)) {
  56323.       HEAP[$tmp_string_i41] = HEAP[$this1_i43 + 96 | 0];
  56324.       HEAP[$this1_i43 + 96 | 0] = HEAP[$this1_i43 + 100 | 0];
  56325.       HEAP[$this1_i43 + 100 | 0] = HEAP[$tmp_string_i41];
  56326.       HEAP[$this1_i43 + 104 | 0] = HEAP[$this1_i43 + 100 | 0];
  56327.     }
  56328.     HEAP[$tmp_i42] = HEAP[$this1_i43 + 84 | 0];
  56329.     HEAP[$this1_i43 + 84 | 0] = HEAP[$this1_i43 + 88 | 0];
  56330.     HEAP[$this1_i43 + 88 | 0] = HEAP[$tmp_i42];
  56331.     HEAP[$this1_i43 + 80 | 0] = 0;
  56332.   }
  56333.   $count = HEAP[$buffer_addr + 84 | 0];
  56334.   $i = 0;
  56335.   L2133 : do {
  56336.     if ($i >>> 0 < $count >>> 0) {
  56337.       while (1) {
  56338.         HEAP[$info_addr_i69] = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  56339.         do {
  56340.           if ((HEAP[HEAP[$info_addr_i69] + 17 | 0] & 255 | 0) != 0) {
  56341.             $end48 = $i + 1 | 0;
  56342.             L2139 : do {
  56343.               if ($end48 >>> 0 < $count >>> 0) {
  56344.                 while (1) {
  56345.                   HEAP[$info_addr_i74] = HEAP[$buffer_addr + 96 | 0] + ($end48 * 20 & -1) | 0;
  56346.                   if ((HEAP[HEAP[$info_addr_i74] + 17 | 0] & 255 | 0) == 0) {
  56347.                     break L2139;
  56348.                   }
  56349.                   $end48 = $end48 + 1 | 0;
  56350.                   if ($end48 >>> 0 >= $count >>> 0) {
  56351.                     break L2139;
  56352.                   }
  56353.                 }
  56354.               }
  56355.             } while (0);
  56356.             if (($end48 - $i | 0) >>> 0 > 10) {
  56357.               $i = $end48;
  56358.               break;
  56359.             } else {
  56360.               __Z14hb_bubble_sortI15hb_glyph_info_tEvPT_jPFiPKS1_S4_E(HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0, $end48 - $i | 0, 52);
  56361.               $i = $end48;
  56362.               break;
  56363.             }
  56364.           }
  56365.         } while (0);
  56366.         $i = $i + 1 | 0;
  56367.         if ($i >>> 0 >= $count >>> 0) {
  56368.           break L2133;
  56369.         }
  56370.       }
  56371.     }
  56372.   } while (0);
  56373.   if (($mode | 0) == 0) {
  56374.     STACKTOP = __stackBase__;
  56375.     return;
  56376.   }
  56377.   HEAP[$this_addr_i82] = $buffer_addr;
  56378.   var $this1_i83 = HEAP[$this_addr_i82];
  56379.   HEAP[$obj_addr_i_i81] = $this1_i83;
  56380.   HEAP[$this_addr_i_i_i80] = HEAP[$obj_addr_i_i81] | 0;
  56381.   HEAP[$this_addr_i_i_i_i79] = HEAP[$this_addr_i_i_i80] | 0;
  56382.   if ((HEAP[HEAP[$this_addr_i_i_i_i79] | 0] | 0) != -1) {
  56383.     HEAP[$this1_i83 + 77 | 0] = 1;
  56384.     HEAP[$this1_i83 + 78 | 0] = 0;
  56385.     HEAP[$this1_i83 + 88 | 0] = 0;
  56386.     HEAP[$this1_i83 + 100 | 0] = HEAP[$this1_i83 + 96 | 0];
  56387.   }
  56388.   $count = HEAP[$buffer_addr + 84 | 0];
  56389.   $starter = 0;
  56390.   HEAP[$this_addr_i97] = $buffer_addr;
  56391.   var $this1_i98 = HEAP[$this_addr_i97];
  56392.   do {
  56393.     if (HEAP[$this1_i98 + 77 | 0] & 1) {
  56394.       do {
  56395.         if ((HEAP[$this1_i98 + 100 | 0] | 0) != (HEAP[$this1_i98 + 96 | 0] | 0)) {
  56396.           label = 1585;
  56397.         } else {
  56398.           if ((HEAP[$this1_i98 + 88 | 0] | 0) != (HEAP[$this1_i98 + 80 | 0] | 0)) {
  56399.             label = 1585;
  56400.             break;
  56401.           } else {
  56402.             break;
  56403.           }
  56404.         }
  56405.       } while (0);
  56406.       if (label == 1585) {
  56407.         if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i98, 1, 1)) {
  56408.           break;
  56409.         }
  56410.         var $379 = HEAP[$this1_i98 + 100 | 0] + (HEAP[$this1_i98 + 88 | 0] * 20 & -1) | 0;
  56411.         var $380 = HEAP[$this1_i98 + 96 | 0] + (HEAP[$this1_i98 + 80 | 0] * 20 & -1) | 0;
  56412.         for (var $$src = $380, $$dest = $379, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56413.           HEAP[$$dest] = HEAP[$$src];
  56414.         }
  56415.       }
  56416.       var $out_len11_i118 = $this1_i98 + 88 | 0;
  56417.       HEAP[$out_len11_i118] = HEAP[$out_len11_i118] + 1 | 0;
  56418.       label = 1588;
  56419.       break;
  56420.     } else {
  56421.       label = 1588;
  56422.     }
  56423.   } while (0);
  56424.   if (label == 1588) {
  56425.     var $idx13_i121 = $this1_i98 + 80 | 0;
  56426.     HEAP[$idx13_i121] = HEAP[$idx13_i121] + 1 | 0;
  56427.   }
  56428.   var $387 = $buffer_addr;
  56429.   L2166 : do {
  56430.     if (HEAP[$buffer_addr + 80 | 0] >>> 0 < $count >>> 0) {
  56431.       var $compose87 = $c + 20 | 0;
  56432.       var $436 = $387;
  56433.       L2168 : while (1) {
  56434.         var $436;
  56435.         HEAP[$this_addr_i125] = $436;
  56436.         HEAP[$i_addr_i126] = 0;
  56437.         var $this1_i127 = HEAP[$this_addr_i125];
  56438.         HEAP[$info_addr_i132] = HEAP[$this1_i127 + 96 | 0] + ((HEAP[$i_addr_i126] + HEAP[$this1_i127 + 80 | 0]) * 20 & -1) | 0;
  56439.         do {
  56440.           if ((1 << (HEAP[HEAP[$info_addr_i132] + 16 | 0] & 31) & 7168 | 0) != 0) {
  56441.             if (($starter | 0) != (HEAP[$buffer_addr + 88 | 0] - 1 | 0)) {
  56442.               HEAP[$this_addr_i137] = $buffer_addr;
  56443.               var $this1_i138 = HEAP[$this_addr_i137];
  56444.               HEAP[$info_addr_i143] = HEAP[$this1_i138 + 100 | 0] + ((HEAP[$this1_i138 + 88 | 0] - 1) * 20 & -1) | 0;
  56445.               var $conv_i147 = HEAP[HEAP[$info_addr_i143] + 17 | 0] & 255;
  56446.               HEAP[$this_addr_i148] = $buffer_addr;
  56447.               HEAP[$i_addr_i149] = 0;
  56448.               var $this1_i150 = HEAP[$this_addr_i148];
  56449.               HEAP[$info_addr_i155] = HEAP[$this1_i150 + 96 | 0] + ((HEAP[$i_addr_i149] + HEAP[$this1_i150 + 80 | 0]) * 20 & -1) | 0;
  56450.               if ($conv_i147 >>> 0 >= (HEAP[HEAP[$info_addr_i155] + 17 | 0] & 255) >>> 0) {
  56451.                 label = 1606;
  56452.                 break;
  56453.               }
  56454.             }
  56455.             var $456 = HEAP[$compose87];
  56456.             var $460 = HEAP[HEAP[$buffer_addr + 100 | 0] + ($starter * 20 & -1) | 0];
  56457.             HEAP[$this_addr_i160] = $buffer_addr;
  56458.             HEAP[$i_addr_i161] = 0;
  56459.             var $this1_i162 = HEAP[$this_addr_i160];
  56460.             if (!FUNCTION_TABLE[$456]($c, $460, HEAP[HEAP[$this1_i162 + 96 | 0] + ((HEAP[$i_addr_i161] + HEAP[$this1_i162 + 80 | 0]) * 20 & -1) | 0], $composed)) {
  56461.               label = 1606;
  56462.               break;
  56463.             }
  56464.             var $467 = HEAP[$composed];
  56465.             HEAP[$this_addr_i167] = $font_addr;
  56466.             HEAP[$unicode_addr_i] = $467;
  56467.             HEAP[$variation_selector_addr_i] = 0;
  56468.             HEAP[$glyph_addr_i] = $glyph;
  56469.             var $this1_i168 = HEAP[$this_addr_i167];
  56470.             HEAP[HEAP[$glyph_addr_i]] = 0;
  56471.             if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i168 + 72 | 0] + 48 | 0]]($this1_i168, HEAP[$this1_i168 + 76 | 0], HEAP[$unicode_addr_i], HEAP[$variation_selector_addr_i], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i168 + 72 | 0] + 92 | 0]) | 0) == 0) {
  56472.               label = 1606;
  56473.               break;
  56474.             }
  56475.             HEAP[$this_addr_i170] = $buffer_addr;
  56476.             var $this1_i171 = HEAP[$this_addr_i170];
  56477.             do {
  56478.               if (HEAP[$this1_i171 + 77 | 0] & 1) {
  56479.                 do {
  56480.                   if ((HEAP[$this1_i171 + 100 | 0] | 0) != (HEAP[$this1_i171 + 96 | 0] | 0)) {
  56481.                     label = 1599;
  56482.                   } else {
  56483.                     if ((HEAP[$this1_i171 + 88 | 0] | 0) != (HEAP[$this1_i171 + 80 | 0] | 0)) {
  56484.                       label = 1599;
  56485.                       break;
  56486.                     } else {
  56487.                       break;
  56488.                     }
  56489.                   }
  56490.                 } while (0);
  56491.                 if (label == 1599) {
  56492.                   label = 0;
  56493.                   if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i171, 1, 1)) {
  56494.                     break;
  56495.                   }
  56496.                   var $487 = HEAP[$this1_i171 + 100 | 0] + (HEAP[$this1_i171 + 88 | 0] * 20 & -1) | 0;
  56497.                   var $488 = HEAP[$this1_i171 + 96 | 0] + (HEAP[$this1_i171 + 80 | 0] * 20 & -1) | 0;
  56498.                   for (var $$src = $488, $$dest = $487, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56499.                     HEAP[$$dest] = HEAP[$$src];
  56500.                   }
  56501.                 }
  56502.                 var $out_len11_i191 = $this1_i171 + 88 | 0;
  56503.                 HEAP[$out_len11_i191] = HEAP[$out_len11_i191] + 1 | 0;
  56504.                 label = 1602;
  56505.                 break;
  56506.               } else {
  56507.                 label = 1602;
  56508.               }
  56509.             } while (0);
  56510.             if (label == 1602) {
  56511.               label = 0;
  56512.               var $idx13_i194 = $this1_i171 + 80 | 0;
  56513.               HEAP[$idx13_i194] = HEAP[$idx13_i194] + 1 | 0;
  56514.             }
  56515.             if (HEAP[$buffer_addr + 76 | 0] & 1) {
  56516.               break L2168;
  56517.             }
  56518.             __ZN11hb_buffer_t18merge_out_clustersEjj($buffer_addr, $starter, HEAP[$buffer_addr + 88 | 0]);
  56519.             var $out_len100 = $buffer_addr + 88 | 0;
  56520.             HEAP[$out_len100] = HEAP[$out_len100] - 1 | 0;
  56521.             HEAP[HEAP[$buffer_addr + 100 | 0] + ($starter * 20 & -1) | 0] = HEAP[$composed];
  56522.             HEAP[$info_addr_i198] = HEAP[$buffer_addr + 100 | 0] + ($starter * 20 & -1) | 0;
  56523.             HEAP[$font_addr_i] = $font_addr;
  56524.             var $509 = HEAP[HEAP[$info_addr_i198] | 0];
  56525.             var $u32_i = HEAP[$info_addr_i198] + 12 | 0;
  56526.             HEAP[$this_addr_i_i] = HEAP[$font_addr_i];
  56527.             HEAP[$unicode_addr_i_i] = $509;
  56528.             HEAP[$variation_selector_addr_i_i] = 0;
  56529.             HEAP[$glyph_addr_i_i] = $u32_i;
  56530.             var $this1_i_i = HEAP[$this_addr_i_i];
  56531.             HEAP[HEAP[$glyph_addr_i_i]] = 0;
  56532.             FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 48 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$unicode_addr_i_i], HEAP[$variation_selector_addr_i_i], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 92 | 0]);
  56533.             __Z32_hb_glyph_info_set_unicode_propsP15hb_glyph_info_tP18hb_unicode_funcs_t(HEAP[$buffer_addr + 100 | 0] + ($starter * 20 & -1) | 0, HEAP[$buffer_addr + 44 | 0]);
  56534.             break;
  56535.           } else {
  56536.             label = 1606;
  56537.           }
  56538.         } while (0);
  56539.         do {
  56540.           if (label == 1606) {
  56541.             label = 0;
  56542.             HEAP[$this_addr_i18] = $buffer_addr;
  56543.             var $this1_i19 = HEAP[$this_addr_i18];
  56544.             do {
  56545.               if (HEAP[$this1_i19 + 77 | 0] & 1) {
  56546.                 do {
  56547.                   if ((HEAP[$this1_i19 + 100 | 0] | 0) != (HEAP[$this1_i19 + 96 | 0] | 0)) {
  56548.                     label = 1609;
  56549.                   } else {
  56550.                     if ((HEAP[$this1_i19 + 88 | 0] | 0) != (HEAP[$this1_i19 + 80 | 0] | 0)) {
  56551.                       label = 1609;
  56552.                       break;
  56553.                     } else {
  56554.                       break;
  56555.                     }
  56556.                   }
  56557.                 } while (0);
  56558.                 if (label == 1609) {
  56559.                   label = 0;
  56560.                   if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i19, 1, 1)) {
  56561.                     break;
  56562.                   }
  56563.                   var $539 = HEAP[$this1_i19 + 100 | 0] + (HEAP[$this1_i19 + 88 | 0] * 20 & -1) | 0;
  56564.                   var $540 = HEAP[$this1_i19 + 96 | 0] + (HEAP[$this1_i19 + 80 | 0] * 20 & -1) | 0;
  56565.                   for (var $$src = $540, $$dest = $539, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56566.                     HEAP[$$dest] = HEAP[$$src];
  56567.                   }
  56568.                 }
  56569.                 var $out_len11_i = $this1_i19 + 88 | 0;
  56570.                 HEAP[$out_len11_i] = HEAP[$out_len11_i] + 1 | 0;
  56571.                 label = 1612;
  56572.                 break;
  56573.               } else {
  56574.                 label = 1612;
  56575.               }
  56576.             } while (0);
  56577.             if (label == 1612) {
  56578.               label = 0;
  56579.               var $idx13_i = $this1_i19 + 80 | 0;
  56580.               HEAP[$idx13_i] = HEAP[$idx13_i] + 1 | 0;
  56581.             }
  56582.             HEAP[$this_addr_i13] = $buffer_addr;
  56583.             var $this1_i14 = HEAP[$this_addr_i13];
  56584.             HEAP[$info_addr_i] = HEAP[$this1_i14 + 100 | 0] + ((HEAP[$this1_i14 + 88 | 0] - 1) * 20 & -1) | 0;
  56585.             if ((HEAP[HEAP[$info_addr_i] + 17 | 0] & 255 | 0) != 0) {
  56586.               break;
  56587.             }
  56588.             $starter = HEAP[$buffer_addr + 88 | 0] - 1 | 0;
  56589.           }
  56590.         } while (0);
  56591.         var $528 = $buffer_addr;
  56592.         if (HEAP[$buffer_addr + 80 | 0] >>> 0 < $count >>> 0) {
  56593.           var $436 = $528;
  56594.         } else {
  56595.           var $_lcssa = $528;
  56596.           break L2166;
  56597.         }
  56598.       }
  56599.       STACKTOP = __stackBase__;
  56600.       return;
  56601.     } else {
  56602.       var $_lcssa = $387;
  56603.     }
  56604.   } while (0);
  56605.   var $_lcssa;
  56606.   HEAP[$this_addr_i1] = $_lcssa;
  56607.   var $this1_i2 = HEAP[$this_addr_i1];
  56608.   if (!(HEAP[$this1_i2 + 76 | 0] & 1)) {
  56609.     if (!(HEAP[$this1_i2 + 77 | 0] & 1)) {
  56610.       ___assert_func(102952, 274, 108904, 103776);
  56611.     }
  56612.     HEAP[$this1_i2 + 77 | 0] = 0;
  56613.     if ((HEAP[$this1_i2 + 100 | 0] | 0) != (HEAP[$this1_i2 + 96 | 0] | 0)) {
  56614.       HEAP[$tmp_string_i] = HEAP[$this1_i2 + 96 | 0];
  56615.       HEAP[$this1_i2 + 96 | 0] = HEAP[$this1_i2 + 100 | 0];
  56616.       HEAP[$this1_i2 + 100 | 0] = HEAP[$tmp_string_i];
  56617.       HEAP[$this1_i2 + 104 | 0] = HEAP[$this1_i2 + 100 | 0];
  56618.     }
  56619.     HEAP[$tmp_i] = HEAP[$this1_i2 + 84 | 0];
  56620.     HEAP[$this1_i2 + 84 | 0] = HEAP[$this1_i2 + 88 | 0];
  56621.     HEAP[$this1_i2 + 88 | 0] = HEAP[$tmp_i];
  56622.     HEAP[$this1_i2 + 80 | 0] = 0;
  56623.   }
  56624.   STACKTOP = __stackBase__;
  56625.   return;
  56626. }
  56627. function __ZL23compare_combining_classPK15hb_glyph_info_tS1_($pa, $pb) {
  56628.   var __stackBase__ = STACKTOP;
  56629.   STACKTOP = STACKTOP + 8 | 0;
  56630.   var $info_addr_i1 = __stackBase__;
  56631.   var $info_addr_i = __stackBase__ + 4;
  56632.   var $a;
  56633.   var $b;
  56634.   HEAP[$info_addr_i] = $pa;
  56635.   $a = HEAP[HEAP[$info_addr_i] + 17 | 0] & 255;
  56636.   HEAP[$info_addr_i1] = $pb;
  56637.   $b = HEAP[HEAP[$info_addr_i1] + 17 | 0] & 255;
  56638.   if ($a >>> 0 < $b >>> 0) {
  56639.     var $cond3 = -1;
  56640.     var $cond3;
  56641.     STACKTOP = __stackBase__;
  56642.     return $cond3;
  56643.   }
  56644.   var $cond3 = ($a | 0) == ($b | 0) ? 0 : 1;
  56645.   var $cond3;
  56646.   STACKTOP = __stackBase__;
  56647.   return $cond3;
  56648. }
  56649. function __ZL17decompose_unicodePK31hb_ot_shape_normalize_context_tjPjS2_($c, $ab, $a, $b) {
  56650.   var __stackBase__ = STACKTOP;
  56651.   STACKTOP = STACKTOP + 16 | 0;
  56652.   var $this_addr_i = __stackBase__;
  56653.   var $ab_addr_i = __stackBase__ + 4;
  56654.   var $a_addr_i = __stackBase__ + 8;
  56655.   var $b_addr_i = __stackBase__ + 12;
  56656.   HEAP[$this_addr_i] = HEAP[$c + 12 | 0];
  56657.   HEAP[$ab_addr_i] = $ab;
  56658.   HEAP[$a_addr_i] = $a;
  56659.   HEAP[$b_addr_i] = $b;
  56660.   var $this1_i = HEAP[$this_addr_i];
  56661.   HEAP[HEAP[$a_addr_i]] = HEAP[$ab_addr_i];
  56662.   HEAP[HEAP[$b_addr_i]] = 0;
  56663.   var $tobool = (FUNCTION_TABLE[HEAP[$this1_i + 76 | 0]]($this1_i, HEAP[$ab_addr_i], HEAP[$a_addr_i], HEAP[$b_addr_i], HEAP[$this1_i + 108 | 0]) | 0) != 0;
  56664.   STACKTOP = __stackBase__;
  56665.   return $tobool;
  56666. }
  56667. function __ZL15compose_unicodePK31hb_ot_shape_normalize_context_tjjPj($c, $a, $b, $ab) {
  56668.   var __stackBase__ = STACKTOP;
  56669.   STACKTOP = STACKTOP + 20 | 0;
  56670.   var $retval_i = __stackBase__;
  56671.   var $this_addr_i = __stackBase__ + 4;
  56672.   var $a_addr_i = __stackBase__ + 8;
  56673.   var $b_addr_i = __stackBase__ + 12;
  56674.   var $ab_addr_i = __stackBase__ + 16;
  56675.   HEAP[$this_addr_i] = HEAP[$c + 12 | 0];
  56676.   HEAP[$a_addr_i] = $a;
  56677.   HEAP[$b_addr_i] = $b;
  56678.   HEAP[$ab_addr_i] = $ab;
  56679.   var $this1_i = HEAP[$this_addr_i];
  56680.   HEAP[HEAP[$ab_addr_i]] = 0;
  56681.   do {
  56682.     if ((HEAP[$a_addr_i] | 0) != 0) {
  56683.       if ((HEAP[$b_addr_i] | 0) == 0) {
  56684.         break;
  56685.       }
  56686.       var $call_i = FUNCTION_TABLE[HEAP[$this1_i + 72 | 0]]($this1_i, HEAP[$a_addr_i], HEAP[$b_addr_i], HEAP[$ab_addr_i], HEAP[$this1_i + 104 | 0]);
  56687.       HEAP[$retval_i] = $call_i;
  56688.       var $18 = HEAP[$retval_i];
  56689.       var $19 = $retval_i;
  56690.       var $20 = $this_addr_i;
  56691.       var $21 = $a_addr_i;
  56692.       var $22 = $b_addr_i;
  56693.       var $23 = $ab_addr_i;
  56694.       var $tobool = ($18 | 0) != 0;
  56695.       STACKTOP = __stackBase__;
  56696.       return $tobool;
  56697.     }
  56698.   } while (0);
  56699.   HEAP[$retval_i] = 0;
  56700.   var $18 = HEAP[$retval_i];
  56701.   var $19 = $retval_i;
  56702.   var $20 = $this_addr_i;
  56703.   var $21 = $a_addr_i;
  56704.   var $22 = $b_addr_i;
  56705.   var $23 = $ab_addr_i;
  56706.   var $tobool = ($18 | 0) != 0;
  56707.   STACKTOP = __stackBase__;
  56708.   return $tobool;
  56709. }
  56710. function __ZL27decompose_current_characterPK31hb_ot_shape_normalize_context_tb($c, $shortest) {
  56711.   var label = 0;
  56712.   var __stackBase__ = STACKTOP;
  56713.   STACKTOP = STACKTOP + 352 | 0;
  56714.   var $this_addr_i128 = __stackBase__;
  56715.   var $i_addr_i129 = __stackBase__ + 4;
  56716.   var $this_addr_i1_i89 = __stackBase__ + 8;
  56717.   var $this_addr_i_i90 = __stackBase__ + 12;
  56718.   var $i_addr_i_i91 = __stackBase__ + 16;
  56719.   var $buffer_addr_i92 = __stackBase__ + 20;
  56720.   var $glyph_addr_i93 = __stackBase__ + 24;
  56721.   var $this_addr_i76 = __stackBase__ + 28;
  56722.   var $unicode_addr_i77 = __stackBase__ + 32;
  56723.   var $variation_selector_addr_i78 = __stackBase__ + 36;
  56724.   var $glyph_addr_i79 = __stackBase__ + 40;
  56725.   var $this_addr_i69 = __stackBase__ + 44;
  56726.   var $i_addr_i70 = __stackBase__ + 48;
  56727.   var $this_addr_i_i64 = __stackBase__ + 52;
  56728.   var $buffer_addr_i65 = __stackBase__ + 56;
  56729.   var $this_addr_i1_i55 = __stackBase__ + 60;
  56730.   var $unicode_addr_i_i = __stackBase__ + 64;
  56731.   var $variation_selector_addr_i_i = __stackBase__ + 68;
  56732.   var $glyph_addr_i_i = __stackBase__ + 72;
  56733.   var $retval_i_i = __stackBase__ + 76;
  56734.   var $this_addr_i_i56 = __stackBase__ + 80;
  56735.   var $u_addr_i_i = __stackBase__ + 84;
  56736.   var $decomposed_addr_i_i = __stackBase__ + 88;
  56737.   var $ret_i_i = __stackBase__ + 92;
  56738.   var $retval_i = __stackBase__ + 96;
  56739.   var $c_addr_i = __stackBase__ + 100;
  56740.   var $u_addr_i = __stackBase__ + 104;
  56741.   var $len_i = __stackBase__ + 108;
  56742.   var $i_i = __stackBase__ + 112;
  56743.   var $decomposed_i = __stackBase__ + 116;
  56744.   var $glyphs_i = __stackBase__ + 192;
  56745.   var $this_addr_i_i50 = __stackBase__ + 268;
  56746.   var $buffer_addr_i51 = __stackBase__ + 272;
  56747.   var $this_addr_i43 = __stackBase__ + 276;
  56748.   var $i_addr_i44 = __stackBase__ + 280;
  56749.   var $this_addr_i1_i4 = __stackBase__ + 284;
  56750.   var $this_addr_i_i5 = __stackBase__ + 288;
  56751.   var $i_addr_i_i6 = __stackBase__ + 292;
  56752.   var $buffer_addr_i7 = __stackBase__ + 296;
  56753.   var $glyph_addr_i8 = __stackBase__ + 300;
  56754.   var $this_addr_i1 = __stackBase__ + 304;
  56755.   var $unicode_addr_i = __stackBase__ + 308;
  56756.   var $variation_selector_addr_i = __stackBase__ + 312;
  56757.   var $glyph_addr_i2 = __stackBase__ + 316;
  56758.   var $this_addr_i1_i = __stackBase__ + 320;
  56759.   var $this_addr_i_i = __stackBase__ + 324;
  56760.   var $i_addr_i_i = __stackBase__ + 328;
  56761.   var $buffer_addr_i = __stackBase__ + 332;
  56762.   var $glyph_addr_i = __stackBase__ + 336;
  56763.   var $this_addr_i = __stackBase__ + 340;
  56764.   var $i_addr_i = __stackBase__ + 344;
  56765.   var $c_addr;
  56766.   var $shortest_addr;
  56767.   var $buffer;
  56768.   var $glyph = __stackBase__ + 348;
  56769.   $c_addr = $c;
  56770.   $shortest_addr = $shortest & 1;
  56771.   $buffer = HEAP[$c_addr + 4 | 0];
  56772.   do {
  56773.     if ($shortest_addr & 1) {
  56774.       var $4 = HEAP[$c_addr + 8 | 0];
  56775.       HEAP[$this_addr_i] = $buffer;
  56776.       HEAP[$i_addr_i] = 0;
  56777.       var $this1_i = HEAP[$this_addr_i];
  56778.       var $13 = HEAP[HEAP[$this1_i + 96 | 0] + ((HEAP[$i_addr_i] + HEAP[$this1_i + 80 | 0]) * 20 & -1) | 0];
  56779.       HEAP[$this_addr_i1] = $4;
  56780.       HEAP[$unicode_addr_i] = $13;
  56781.       HEAP[$variation_selector_addr_i] = 0;
  56782.       HEAP[$glyph_addr_i2] = $glyph;
  56783.       var $this1_i3 = HEAP[$this_addr_i1];
  56784.       HEAP[HEAP[$glyph_addr_i2]] = 0;
  56785.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i3 + 72 | 0] + 48 | 0]]($this1_i3, HEAP[$this1_i3 + 76 | 0], HEAP[$unicode_addr_i], HEAP[$variation_selector_addr_i], HEAP[$glyph_addr_i2], HEAP[HEAP[$this1_i3 + 72 | 0] + 92 | 0]) | 0) == 0) {
  56786.         break;
  56787.       }
  56788.       var $32 = HEAP[$glyph];
  56789.       HEAP[$buffer_addr_i7] = $buffer;
  56790.       HEAP[$glyph_addr_i8] = $32;
  56791.       var $35 = HEAP[$glyph_addr_i8];
  56792.       HEAP[$this_addr_i_i5] = HEAP[$buffer_addr_i7];
  56793.       HEAP[$i_addr_i_i6] = 0;
  56794.       var $this1_i_i9 = HEAP[$this_addr_i_i5];
  56795.       HEAP[HEAP[$this1_i_i9 + 96 | 0] + ((HEAP[$i_addr_i_i6] + HEAP[$this1_i_i9 + 80 | 0]) * 20 & -1) + 12 | 0] = $35;
  56796.       HEAP[$this_addr_i1_i4] = HEAP[$buffer_addr_i7];
  56797.       var $this1_i2_i16 = HEAP[$this_addr_i1_i4];
  56798.       do {
  56799.         if (HEAP[$this1_i2_i16 + 77 | 0] & 1) {
  56800.           do {
  56801.             if ((HEAP[$this1_i2_i16 + 100 | 0] | 0) != (HEAP[$this1_i2_i16 + 96 | 0] | 0)) {
  56802.               label = 1644;
  56803.             } else {
  56804.               if ((HEAP[$this1_i2_i16 + 88 | 0] | 0) != (HEAP[$this1_i2_i16 + 80 | 0] | 0)) {
  56805.                 label = 1644;
  56806.                 break;
  56807.               } else {
  56808.                 break;
  56809.               }
  56810.             }
  56811.           } while (0);
  56812.           if (label == 1644) {
  56813.             if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i2_i16, 1, 1)) {
  56814.               break;
  56815.             }
  56816.             var $55 = HEAP[$this1_i2_i16 + 100 | 0] + (HEAP[$this1_i2_i16 + 88 | 0] * 20 & -1) | 0;
  56817.             var $56 = HEAP[$this1_i2_i16 + 96 | 0] + (HEAP[$this1_i2_i16 + 80 | 0] * 20 & -1) | 0;
  56818.             for (var $$src = $56, $$dest = $55, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56819.               HEAP[$$dest] = HEAP[$$src];
  56820.             }
  56821.           }
  56822.           var $out_len11_i_i36 = $this1_i2_i16 + 88 | 0;
  56823.           HEAP[$out_len11_i_i36] = HEAP[$out_len11_i_i36] + 1 | 0;
  56824.           label = 1647;
  56825.           break;
  56826.         } else {
  56827.           label = 1647;
  56828.         }
  56829.       } while (0);
  56830.       if (label == 1647) {
  56831.         var $idx13_i_i39 = $this1_i2_i16 + 80 | 0;
  56832.         HEAP[$idx13_i_i39] = HEAP[$idx13_i_i39] + 1 | 0;
  56833.       }
  56834.       STACKTOP = __stackBase__;
  56835.       return;
  56836.     }
  56837.   } while (0);
  56838.   HEAP[$this_addr_i43] = $buffer;
  56839.   HEAP[$i_addr_i44] = 0;
  56840.   var $this1_i45 = HEAP[$this_addr_i43];
  56841.   if ((__ZL9decomposePK31hb_ot_shape_normalize_context_tbj($c_addr, $shortest_addr & 1, HEAP[HEAP[$this1_i45 + 96 | 0] + ((HEAP[$i_addr_i44] + HEAP[$this1_i45 + 80 | 0]) * 20 & -1) | 0]) | 0) != 0) {
  56842.     HEAP[$buffer_addr_i65] = $buffer;
  56843.     HEAP[$this_addr_i_i64] = HEAP[$buffer_addr_i65];
  56844.     var $idx_i_i67 = HEAP[$this_addr_i_i64] + 80 | 0;
  56845.     HEAP[$idx_i_i67] = HEAP[$idx_i_i67] + 1 | 0;
  56846.     STACKTOP = __stackBase__;
  56847.     return;
  56848.   }
  56849.   do {
  56850.     if (!($shortest_addr & 1)) {
  56851.       var $82 = HEAP[$c_addr + 8 | 0];
  56852.       HEAP[$this_addr_i69] = $buffer;
  56853.       HEAP[$i_addr_i70] = 0;
  56854.       var $this1_i71 = HEAP[$this_addr_i69];
  56855.       var $91 = HEAP[HEAP[$this1_i71 + 96 | 0] + ((HEAP[$i_addr_i70] + HEAP[$this1_i71 + 80 | 0]) * 20 & -1) | 0];
  56856.       HEAP[$this_addr_i76] = $82;
  56857.       HEAP[$unicode_addr_i77] = $91;
  56858.       HEAP[$variation_selector_addr_i78] = 0;
  56859.       HEAP[$glyph_addr_i79] = $glyph;
  56860.       var $this1_i80 = HEAP[$this_addr_i76];
  56861.       HEAP[HEAP[$glyph_addr_i79]] = 0;
  56862.       if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i80 + 72 | 0] + 48 | 0]]($this1_i80, HEAP[$this1_i80 + 76 | 0], HEAP[$unicode_addr_i77], HEAP[$variation_selector_addr_i78], HEAP[$glyph_addr_i79], HEAP[HEAP[$this1_i80 + 72 | 0] + 92 | 0]) | 0) == 0) {
  56863.         break;
  56864.       }
  56865.       var $110 = HEAP[$glyph];
  56866.       HEAP[$buffer_addr_i92] = $buffer;
  56867.       HEAP[$glyph_addr_i93] = $110;
  56868.       var $113 = HEAP[$glyph_addr_i93];
  56869.       HEAP[$this_addr_i_i90] = HEAP[$buffer_addr_i92];
  56870.       HEAP[$i_addr_i_i91] = 0;
  56871.       var $this1_i_i94 = HEAP[$this_addr_i_i90];
  56872.       HEAP[HEAP[$this1_i_i94 + 96 | 0] + ((HEAP[$i_addr_i_i91] + HEAP[$this1_i_i94 + 80 | 0]) * 20 & -1) + 12 | 0] = $113;
  56873.       HEAP[$this_addr_i1_i89] = HEAP[$buffer_addr_i92];
  56874.       var $this1_i2_i101 = HEAP[$this_addr_i1_i89];
  56875.       do {
  56876.         if (HEAP[$this1_i2_i101 + 77 | 0] & 1) {
  56877.           do {
  56878.             if ((HEAP[$this1_i2_i101 + 100 | 0] | 0) != (HEAP[$this1_i2_i101 + 96 | 0] | 0)) {
  56879.               label = 1656;
  56880.             } else {
  56881.               if ((HEAP[$this1_i2_i101 + 88 | 0] | 0) != (HEAP[$this1_i2_i101 + 80 | 0] | 0)) {
  56882.                 label = 1656;
  56883.                 break;
  56884.               } else {
  56885.                 break;
  56886.               }
  56887.             }
  56888.           } while (0);
  56889.           if (label == 1656) {
  56890.             if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i2_i101, 1, 1)) {
  56891.               break;
  56892.             }
  56893.             var $133 = HEAP[$this1_i2_i101 + 100 | 0] + (HEAP[$this1_i2_i101 + 88 | 0] * 20 & -1) | 0;
  56894.             var $134 = HEAP[$this1_i2_i101 + 96 | 0] + (HEAP[$this1_i2_i101 + 80 | 0] * 20 & -1) | 0;
  56895.             for (var $$src = $134, $$dest = $133, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  56896.               HEAP[$$dest] = HEAP[$$src];
  56897.             }
  56898.           }
  56899.           var $out_len11_i_i121 = $this1_i2_i101 + 88 | 0;
  56900.           HEAP[$out_len11_i_i121] = HEAP[$out_len11_i_i121] + 1 | 0;
  56901.           label = 1659;
  56902.           break;
  56903.         } else {
  56904.           label = 1659;
  56905.         }
  56906.       } while (0);
  56907.       if (label == 1659) {
  56908.         var $idx13_i_i124 = $this1_i2_i101 + 80 | 0;
  56909.         HEAP[$idx13_i_i124] = HEAP[$idx13_i_i124] + 1 | 0;
  56910.       }
  56911.       STACKTOP = __stackBase__;
  56912.       return;
  56913.     }
  56914.   } while (0);
  56915.   HEAP[$this_addr_i128] = $buffer;
  56916.   HEAP[$i_addr_i129] = 0;
  56917.   var $this1_i130 = HEAP[$this_addr_i128];
  56918.   var $149 = HEAP[HEAP[$this1_i130 + 96 | 0] + ((HEAP[$i_addr_i129] + HEAP[$this1_i130 + 80 | 0]) * 20 & -1) | 0];
  56919.   HEAP[$c_addr_i] = $c_addr;
  56920.   HEAP[$u_addr_i] = $149;
  56921.   var $160 = HEAP[$u_addr_i];
  56922.   HEAP[$this_addr_i_i56] = HEAP[HEAP[HEAP[$c_addr_i] + 4 | 0] + 44 | 0];
  56923.   HEAP[$u_addr_i_i] = $160;
  56924.   HEAP[$decomposed_addr_i_i] = $decomposed_i | 0;
  56925.   var $this1_i_i57 = HEAP[$this_addr_i_i56];
  56926.   var $call_i_i58 = FUNCTION_TABLE[HEAP[$this1_i_i57 + 80 | 0]]($this1_i_i57, HEAP[$u_addr_i_i], HEAP[$decomposed_addr_i_i], HEAP[$this1_i_i57 + 112 | 0]);
  56927.   HEAP[$ret_i_i] = $call_i_i58;
  56928.   do {
  56929.     if (($call_i_i58 | 0) == 1) {
  56930.       if ((HEAP[$u_addr_i_i] | 0) != (HEAP[HEAP[$decomposed_addr_i_i]] | 0)) {
  56931.         label = 1664;
  56932.         break;
  56933.       }
  56934.       HEAP[HEAP[$decomposed_addr_i_i]] = 0;
  56935.       HEAP[$retval_i_i] = 0;
  56936.       var $177 = 0;
  56937.       break;
  56938.     } else {
  56939.       label = 1664;
  56940.     }
  56941.   } while (0);
  56942.   if (label == 1664) {
  56943.     HEAP[(HEAP[$ret_i_i] << 2) + HEAP[$decomposed_addr_i_i] | 0] = 0;
  56944.     var $176 = HEAP[$ret_i_i];
  56945.     HEAP[$retval_i_i] = $176;
  56946.     var $177 = $176;
  56947.   }
  56948.   var $177;
  56949.   HEAP[$len_i] = $177;
  56950.   L2272 : do {
  56951.     if (($177 | 0) != 0) {
  56952.       HEAP[$i_i] = 0;
  56953.       L2275 : do {
  56954.         if (HEAP[$i_i] >>> 0 < HEAP[$len_i] >>> 0) {
  56955.           while (1) {
  56956.             var $196 = HEAP[(HEAP[$i_i] << 2) + $decomposed_i | 0];
  56957.             var $arrayidx1_i = (HEAP[$i_i] << 2) + $glyphs_i | 0;
  56958.             HEAP[$this_addr_i1_i55] = HEAP[HEAP[$c_addr_i] + 8 | 0];
  56959.             HEAP[$unicode_addr_i_i] = $196;
  56960.             HEAP[$variation_selector_addr_i_i] = 0;
  56961.             HEAP[$glyph_addr_i_i] = $arrayidx1_i;
  56962.             var $this1_i2_i63 = HEAP[$this_addr_i1_i55];
  56963.             HEAP[HEAP[$glyph_addr_i_i]] = 0;
  56964.             if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i2_i63 + 72 | 0] + 48 | 0]]($this1_i2_i63, HEAP[$this1_i2_i63 + 76 | 0], HEAP[$unicode_addr_i_i], HEAP[$variation_selector_addr_i_i], HEAP[$glyph_addr_i_i], HEAP[HEAP[$this1_i2_i63 + 72 | 0] + 92 | 0]) | 0) == 0) {
  56965.               break;
  56966.             }
  56967.             HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  56968.             if (HEAP[$i_i] >>> 0 >= HEAP[$len_i] >>> 0) {
  56969.               break L2275;
  56970.             }
  56971.           }
  56972.           HEAP[$retval_i] = 0;
  56973.           var $222 = 0;
  56974.           break L2272;
  56975.         }
  56976.       } while (0);
  56977.       HEAP[$i_i] = 0;
  56978.       L2282 : do {
  56979.         if (HEAP[$i_i] >>> 0 < HEAP[$len_i] >>> 0) {
  56980.           while (1) {
  56981.             __ZL11output_charP11hb_buffer_tjj(HEAP[HEAP[$c_addr_i] + 4 | 0], HEAP[(HEAP[$i_i] << 2) + $decomposed_i | 0], HEAP[(HEAP[$i_i] << 2) + $glyphs_i | 0]);
  56982.             HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  56983.             if (HEAP[$i_i] >>> 0 >= HEAP[$len_i] >>> 0) {
  56984.               break L2282;
  56985.             }
  56986.           }
  56987.         }
  56988.       } while (0);
  56989.       var $221 = HEAP[$len_i];
  56990.       HEAP[$retval_i] = $221;
  56991.       var $222 = $221;
  56992.     } else {
  56993.       HEAP[$retval_i] = 0;
  56994.       var $222 = 0;
  56995.     }
  56996.   } while (0);
  56997.   var $222;
  56998.   var $230 = $buffer;
  56999.   if (($222 | 0) != 0) {
  57000.     HEAP[$buffer_addr_i51] = $230;
  57001.     HEAP[$this_addr_i_i50] = HEAP[$buffer_addr_i51];
  57002.     var $idx_i_i53 = HEAP[$this_addr_i_i50] + 80 | 0;
  57003.     HEAP[$idx_i_i53] = HEAP[$idx_i_i53] + 1 | 0;
  57004.     STACKTOP = __stackBase__;
  57005.     return;
  57006.   }
  57007.   var $237 = HEAP[$glyph];
  57008.   HEAP[$buffer_addr_i] = $230;
  57009.   HEAP[$glyph_addr_i] = $237;
  57010.   var $240 = HEAP[$glyph_addr_i];
  57011.   HEAP[$this_addr_i_i] = HEAP[$buffer_addr_i];
  57012.   HEAP[$i_addr_i_i] = 0;
  57013.   var $this1_i_i = HEAP[$this_addr_i_i];
  57014.   HEAP[HEAP[$this1_i_i + 96 | 0] + ((HEAP[$i_addr_i_i] + HEAP[$this1_i_i + 80 | 0]) * 20 & -1) + 12 | 0] = $240;
  57015.   HEAP[$this_addr_i1_i] = HEAP[$buffer_addr_i];
  57016.   var $this1_i2_i = HEAP[$this_addr_i1_i];
  57017.   do {
  57018.     if (HEAP[$this1_i2_i + 77 | 0] & 1) {
  57019.       do {
  57020.         if ((HEAP[$this1_i2_i + 100 | 0] | 0) != (HEAP[$this1_i2_i + 96 | 0] | 0)) {
  57021.           label = 1680;
  57022.         } else {
  57023.           if ((HEAP[$this1_i2_i + 88 | 0] | 0) != (HEAP[$this1_i2_i + 80 | 0] | 0)) {
  57024.             label = 1680;
  57025.             break;
  57026.           } else {
  57027.             break;
  57028.           }
  57029.         }
  57030.       } while (0);
  57031.       if (label == 1680) {
  57032.         if (!__ZN11hb_buffer_t13make_room_forEjj($this1_i2_i, 1, 1)) {
  57033.           break;
  57034.         }
  57035.         var $260 = HEAP[$this1_i2_i + 100 | 0] + (HEAP[$this1_i2_i + 88 | 0] * 20 & -1) | 0;
  57036.         var $261 = HEAP[$this1_i2_i + 96 | 0] + (HEAP[$this1_i2_i + 80 | 0] * 20 & -1) | 0;
  57037.         for (var $$src = $261, $$dest = $260, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  57038.           HEAP[$$dest] = HEAP[$$src];
  57039.         }
  57040.       }
  57041.       var $out_len11_i_i = $this1_i2_i + 88 | 0;
  57042.       HEAP[$out_len11_i_i] = HEAP[$out_len11_i_i] + 1 | 0;
  57043.       label = 1683;
  57044.       break;
  57045.     } else {
  57046.       label = 1683;
  57047.     }
  57048.   } while (0);
  57049.   if (label == 1683) {
  57050.     var $idx13_i_i = $this1_i2_i + 80 | 0;
  57051.     HEAP[$idx13_i_i] = HEAP[$idx13_i_i] + 1 | 0;
  57052.   }
  57053.   STACKTOP = __stackBase__;
  57054.   return;
  57055. }
  57056. function __ZN18hb_unicode_funcs_t21is_variation_selectorEj($this, $unicode) {
  57057.   var label = 0;
  57058.   var __stackBase__ = STACKTOP;
  57059.   STACKTOP = STACKTOP + 67 | 0;
  57060.   var $retval_i30_i = __stackBase__;
  57061.   var $u_addr_i31_i = __stackBase__ + 1;
  57062.   var $lo_addr_i32_i = __stackBase__ + 5;
  57063.   var $hi_addr_i33_i = __stackBase__ + 9;
  57064.   var $retval_i1_i = __stackBase__ + 13;
  57065.   var $u_addr_i2_i = __stackBase__ + 14;
  57066.   var $lo_addr_i3_i = __stackBase__ + 18;
  57067.   var $hi_addr_i4_i = __stackBase__ + 22;
  57068.   var $retval_i_i = __stackBase__ + 26;
  57069.   var $u_addr_i_i = __stackBase__ + 27;
  57070.   var $lo_addr_i_i = __stackBase__ + 31;
  57071.   var $hi_addr_i_i = __stackBase__ + 35;
  57072.   var $u_addr_i = __stackBase__ + 39;
  57073.   var $lo1_addr_i = __stackBase__ + 43;
  57074.   var $hi1_addr_i = __stackBase__ + 47;
  57075.   var $lo2_addr_i = __stackBase__ + 51;
  57076.   var $hi2_addr_i = __stackBase__ + 55;
  57077.   var $lo3_addr_i = __stackBase__ + 59;
  57078.   var $hi3_addr_i = __stackBase__ + 63;
  57079.   HEAP[$u_addr_i] = $unicode;
  57080.   HEAP[$lo1_addr_i] = 6155;
  57081.   HEAP[$hi1_addr_i] = 6157;
  57082.   HEAP[$lo2_addr_i] = 65024;
  57083.   HEAP[$hi2_addr_i] = 65039;
  57084.   HEAP[$lo3_addr_i] = 917760;
  57085.   HEAP[$hi3_addr_i] = 917999;
  57086.   var $9 = HEAP[$lo1_addr_i];
  57087.   var $10 = HEAP[$hi1_addr_i];
  57088.   HEAP[$u_addr_i_i] = HEAP[$u_addr_i];
  57089.   HEAP[$lo_addr_i_i] = $9;
  57090.   HEAP[$hi_addr_i_i] = $10;
  57091.   do {
  57092.     if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$lo_addr_i_i] | 0) == 0) {
  57093.       if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) & HEAP[$hi_addr_i_i] | 0) != (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i] | 0)) {
  57094.         label = 1695;
  57095.         break;
  57096.       }
  57097.       if (((HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) + 1 & (HEAP[$hi_addr_i_i] ^ HEAP[$lo_addr_i_i]) | 0) != 0) {
  57098.         label = 1695;
  57099.         break;
  57100.       }
  57101.       var $cmp12_i_i = ((HEAP[$lo_addr_i_i] ^ -1 ^ HEAP[$hi_addr_i_i]) & HEAP[$u_addr_i_i] | 0) == (HEAP[$lo_addr_i_i] | 0);
  57102.       HEAP[$retval_i_i] = $cmp12_i_i;
  57103.       var $36 = $cmp12_i_i;
  57104.       break;
  57105.     } else {
  57106.       label = 1695;
  57107.     }
  57108.   } while (0);
  57109.   if (label == 1695) {
  57110.     if (HEAP[$lo_addr_i_i] >>> 0 <= HEAP[$u_addr_i_i] >>> 0) {
  57111.       var $35 = HEAP[$u_addr_i_i] >>> 0 <= HEAP[$hi_addr_i_i] >>> 0;
  57112.     } else {
  57113.       var $35 = 0;
  57114.     }
  57115.     var $35;
  57116.     HEAP[$retval_i_i] = $35;
  57117.     var $36 = $35;
  57118.   }
  57119.   var $36;
  57120.   if ($36) {
  57121.     var $107 = 1;
  57122.     var $107;
  57123.     var $108 = $u_addr_i;
  57124.     var $109 = $lo1_addr_i;
  57125.     var $110 = $hi1_addr_i;
  57126.     var $111 = $lo2_addr_i;
  57127.     var $112 = $hi2_addr_i;
  57128.     var $113 = $lo3_addr_i;
  57129.     var $114 = $hi3_addr_i;
  57130.     var $conv = $107 & 1;
  57131.     STACKTOP = __stackBase__;
  57132.     return $conv;
  57133.   }
  57134.   var $42 = HEAP[$lo2_addr_i];
  57135.   var $43 = HEAP[$hi2_addr_i];
  57136.   HEAP[$u_addr_i31_i] = HEAP[$u_addr_i];
  57137.   HEAP[$lo_addr_i32_i] = $42;
  57138.   HEAP[$hi_addr_i33_i] = $43;
  57139.   do {
  57140.     if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) & HEAP[$lo_addr_i32_i] | 0) == 0) {
  57141.       if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) & HEAP[$hi_addr_i33_i] | 0) != (HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i] | 0)) {
  57142.         label = 1703;
  57143.         break;
  57144.       }
  57145.       if (((HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) + 1 & (HEAP[$hi_addr_i33_i] ^ HEAP[$lo_addr_i32_i]) | 0) != 0) {
  57146.         label = 1703;
  57147.         break;
  57148.       }
  57149.       var $cmp12_i51_i = ((HEAP[$lo_addr_i32_i] ^ -1 ^ HEAP[$hi_addr_i33_i]) & HEAP[$u_addr_i31_i] | 0) == (HEAP[$lo_addr_i32_i] | 0);
  57150.       HEAP[$retval_i30_i] = $cmp12_i51_i;
  57151.       var $69 = $cmp12_i51_i;
  57152.       break;
  57153.     } else {
  57154.       label = 1703;
  57155.     }
  57156.   } while (0);
  57157.   if (label == 1703) {
  57158.     if (HEAP[$lo_addr_i32_i] >>> 0 <= HEAP[$u_addr_i31_i] >>> 0) {
  57159.       var $68 = HEAP[$u_addr_i31_i] >>> 0 <= HEAP[$hi_addr_i33_i] >>> 0;
  57160.     } else {
  57161.       var $68 = 0;
  57162.     }
  57163.     var $68;
  57164.     HEAP[$retval_i30_i] = $68;
  57165.     var $69 = $68;
  57166.   }
  57167.   var $69;
  57168.   if ($69) {
  57169.     var $107 = 1;
  57170.     var $107;
  57171.     var $108 = $u_addr_i;
  57172.     var $109 = $lo1_addr_i;
  57173.     var $110 = $hi1_addr_i;
  57174.     var $111 = $lo2_addr_i;
  57175.     var $112 = $hi2_addr_i;
  57176.     var $113 = $lo3_addr_i;
  57177.     var $114 = $hi3_addr_i;
  57178.     var $conv = $107 & 1;
  57179.     STACKTOP = __stackBase__;
  57180.     return $conv;
  57181.   }
  57182.   var $75 = HEAP[$lo3_addr_i];
  57183.   var $76 = HEAP[$hi3_addr_i];
  57184.   HEAP[$u_addr_i2_i] = HEAP[$u_addr_i];
  57185.   HEAP[$lo_addr_i3_i] = $75;
  57186.   HEAP[$hi_addr_i4_i] = $76;
  57187.   do {
  57188.     if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) & HEAP[$lo_addr_i3_i] | 0) == 0) {
  57189.       if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) & HEAP[$hi_addr_i4_i] | 0) != (HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i] | 0)) {
  57190.         label = 1711;
  57191.         break;
  57192.       }
  57193.       if (((HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) + 1 & (HEAP[$hi_addr_i4_i] ^ HEAP[$lo_addr_i3_i]) | 0) != 0) {
  57194.         label = 1711;
  57195.         break;
  57196.       }
  57197.       HEAP[$retval_i1_i] = ((HEAP[$lo_addr_i3_i] ^ -1 ^ HEAP[$hi_addr_i4_i]) & HEAP[$u_addr_i2_i] | 0) == (HEAP[$lo_addr_i3_i] | 0);
  57198.       break;
  57199.     } else {
  57200.       label = 1711;
  57201.     }
  57202.   } while (0);
  57203.   if (label == 1711) {
  57204.     if (HEAP[$lo_addr_i3_i] >>> 0 <= HEAP[$u_addr_i2_i] >>> 0) {
  57205.       var $101 = HEAP[$u_addr_i2_i] >>> 0 <= HEAP[$hi_addr_i4_i] >>> 0;
  57206.     } else {
  57207.       var $101 = 0;
  57208.     }
  57209.     var $101;
  57210.     HEAP[$retval_i1_i] = $101;
  57211.   }
  57212.   var $107 = HEAP[$retval_i1_i];
  57213.   var $107;
  57214.   var $108 = $u_addr_i;
  57215.   var $109 = $lo1_addr_i;
  57216.   var $110 = $hi1_addr_i;
  57217.   var $111 = $lo2_addr_i;
  57218.   var $112 = $hi2_addr_i;
  57219.   var $113 = $lo3_addr_i;
  57220.   var $114 = $hi3_addr_i;
  57221.   var $conv = $107 & 1;
  57222.   STACKTOP = __stackBase__;
  57223.   return $conv;
  57224. }
  57225. function __Z49_hb_ot_shape_fallback_position_recategorize_marksPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  57226.   var label = 0;
  57227.   var __stackBase__ = STACKTOP;
  57228.   STACKTOP = STACKTOP + 28 | 0;
  57229.   var $info_addr_i7 = __stackBase__;
  57230.   var $retval_i = __stackBase__ + 4;
  57231.   var $u_addr_i = __stackBase__ + 8;
  57232.   var $klass_addr_i = __stackBase__ + 12;
  57233.   var $info_addr_i1 = __stackBase__ + 16;
  57234.   var $modified_class_addr_i = __stackBase__ + 20;
  57235.   var $info_addr_i = __stackBase__ + 24;
  57236.   var $buffer_addr;
  57237.   var $count;
  57238.   var $i;
  57239.   var $combining_class;
  57240.   $buffer_addr = $buffer;
  57241.   $count = HEAP[$buffer_addr + 84 | 0];
  57242.   $i = 0;
  57243.   if ($i >>> 0 >= $count >>> 0) {
  57244.     STACKTOP = __stackBase__;
  57245.     return;
  57246.   }
  57247.   while (1) {
  57248.     HEAP[$info_addr_i] = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  57249.     if ((HEAP[HEAP[$info_addr_i] + 16 | 0] & 31 | 0) == 12) {
  57250.       HEAP[$info_addr_i7] = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  57251.       $combining_class = HEAP[HEAP[$info_addr_i7] + 17 | 0] & 255;
  57252.       HEAP[$u_addr_i] = HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0];
  57253.       HEAP[$klass_addr_i] = $combining_class;
  57254.       L2349 : do {
  57255.         if (HEAP[$klass_addr_i] >>> 0 >= 200) {
  57256.           HEAP[$retval_i] = HEAP[$klass_addr_i];
  57257.         } else {
  57258.           do {
  57259.             if ((HEAP[$u_addr_i] & -256 | 0) == 3584) {
  57260.               var $37 = HEAP[$u_addr_i];
  57261.               if ((HEAP[$klass_addr_i] | 0) != 0) {
  57262.                 if (($37 | 0) != 3642) {
  57263.                   label = 1732;
  57264.                   break;
  57265.                 }
  57266.                 HEAP[$klass_addr_i] = 222;
  57267.                 break;
  57268.               }
  57269.               if (($37 | 0) == 3633 | ($37 | 0) == 3636 | ($37 | 0) == 3637 | ($37 | 0) == 3638 | ($37 | 0) == 3639 | ($37 | 0) == 3655 | ($37 | 0) == 3660 | ($37 | 0) == 3661 | ($37 | 0) == 3662) {
  57270.                 HEAP[$klass_addr_i] = 232;
  57271.                 break;
  57272.               } else if (($37 | 0) == 3761 | ($37 | 0) == 3764 | ($37 | 0) == 3765 | ($37 | 0) == 3766 | ($37 | 0) == 3767 | ($37 | 0) == 3771 | ($37 | 0) == 3788 | ($37 | 0) == 3789) {
  57273.                 HEAP[$klass_addr_i] = 230;
  57274.                 break;
  57275.               } else if (($37 | 0) == 3772) {
  57276.                 HEAP[$klass_addr_i] = 220;
  57277.                 break;
  57278.               } else {
  57279.                 label = 1732;
  57280.                 break;
  57281.               }
  57282.             } else {
  57283.               label = 1732;
  57284.             }
  57285.           } while (0);
  57286.           do {
  57287.             if (label == 1732) {
  57288.               label = 0;
  57289.               var $_pr_i = HEAP[$klass_addr_i];
  57290.               if (($_pr_i | 0) == 107) {
  57291.                 HEAP[$retval_i] = 232;
  57292.                 break L2349;
  57293.               } else if (($_pr_i | 0) == 130) {
  57294.                 HEAP[$retval_i] = 230;
  57295.                 break L2349;
  57296.               } else if (($_pr_i | 0) == 11 | ($_pr_i | 0) == 14) {
  57297.                 HEAP[$retval_i] = 228;
  57298.                 break L2349;
  57299.               } else if (($_pr_i | 0) == 30 | ($_pr_i | 0) == 33) {
  57300.                 HEAP[$retval_i] = 220;
  57301.                 break L2349;
  57302.               } else if (($_pr_i | 0) == 129) {
  57303.                 HEAP[$retval_i] = 220;
  57304.                 break L2349;
  57305.               } else if (($_pr_i | 0) == 122) {
  57306.                 HEAP[$retval_i] = 230;
  57307.                 break L2349;
  57308.               } else if (($_pr_i | 0) == 118) {
  57309.                 HEAP[$retval_i] = 220;
  57310.                 break L2349;
  57311.               } else if (($_pr_i | 0) == 132) {
  57312.                 HEAP[$retval_i] = 220;
  57313.                 break L2349;
  57314.               } else if (($_pr_i | 0) == 13) {
  57315.                 HEAP[$retval_i] = 214;
  57316.                 break L2349;
  57317.               } else if (($_pr_i | 0) == 26) {
  57318.                 HEAP[$retval_i] = 230;
  57319.                 break L2349;
  57320.               } else if (($_pr_i | 0) == 10) {
  57321.                 HEAP[$retval_i] = 232;
  57322.                 break L2349;
  57323.               } else if (($_pr_i | 0) == 28 | ($_pr_i | 0) == 29 | ($_pr_i | 0) == 31 | ($_pr_i | 0) == 32 | ($_pr_i | 0) == 27 | ($_pr_i | 0) == 34 | ($_pr_i | 0) == 35 | ($_pr_i | 0) == 36) {
  57324.                 HEAP[$retval_i] = 230;
  57325.                 break L2349;
  57326.               } else if (($_pr_i | 0) == 3) {
  57327.                 HEAP[$retval_i] = 222;
  57328.                 break L2349;
  57329.               } else if (($_pr_i | 0) == 22 | ($_pr_i | 0) == 15 | ($_pr_i | 0) == 16 | ($_pr_i | 0) == 17 | ($_pr_i | 0) == 23 | ($_pr_i | 0) == 18 | ($_pr_i | 0) == 19 | ($_pr_i | 0) == 20 | ($_pr_i | 0) == 21 | ($_pr_i | 0) == 24 | ($_pr_i | 0) == 25) {
  57330.                 HEAP[$retval_i] = 220;
  57331.                 break L2349;
  57332.               } else {
  57333.                 break;
  57334.               }
  57335.             }
  57336.           } while (0);
  57337.           HEAP[$retval_i] = HEAP[$klass_addr_i];
  57338.         }
  57339.       } while (0);
  57340.       $combining_class = HEAP[$retval_i];
  57341.       HEAP[$info_addr_i1] = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  57342.       HEAP[$modified_class_addr_i] = $combining_class;
  57343.       HEAP[HEAP[$info_addr_i1] + 17 | 0] = HEAP[$modified_class_addr_i] & 255;
  57344.     }
  57345.     $i = $i + 1 | 0;
  57346.     if ($i >>> 0 >= $count >>> 0) {
  57347.       break;
  57348.     }
  57349.   }
  57350.   STACKTOP = __stackBase__;
  57351.   return;
  57352. }
  57353. function __ZL9decomposePK31hb_ot_shape_normalize_context_tbj($c, $shortest, $ab) {
  57354.   var __stackBase__ = STACKTOP;
  57355.   STACKTOP = STACKTOP + 48 | 0;
  57356.   var $this_addr_i1 = __stackBase__;
  57357.   var $unicode_addr_i2 = __stackBase__ + 4;
  57358.   var $variation_selector_addr_i3 = __stackBase__ + 8;
  57359.   var $glyph_addr_i4 = __stackBase__ + 12;
  57360.   var $this_addr_i = __stackBase__ + 16;
  57361.   var $unicode_addr_i = __stackBase__ + 20;
  57362.   var $variation_selector_addr_i = __stackBase__ + 24;
  57363.   var $glyph_addr_i = __stackBase__ + 28;
  57364.   var $retval;
  57365.   var $c_addr;
  57366.   var $shortest_addr;
  57367.   var $a = __stackBase__ + 32;
  57368.   var $b = __stackBase__ + 36;
  57369.   var $a_glyph = __stackBase__ + 40;
  57370.   var $b_glyph = __stackBase__ + 44;
  57371.   var $has_a;
  57372.   var $ret;
  57373.   $c_addr = $c;
  57374.   $shortest_addr = $shortest & 1;
  57375.   do {
  57376.     if (FUNCTION_TABLE[HEAP[$c_addr + 16 | 0]]($c_addr, $ab, $a, $b)) {
  57377.       if ((HEAP[$b] | 0) != 0) {
  57378.         var $7 = HEAP[$b];
  57379.         HEAP[$this_addr_i] = HEAP[$c_addr + 8 | 0];
  57380.         HEAP[$unicode_addr_i] = $7;
  57381.         HEAP[$variation_selector_addr_i] = 0;
  57382.         HEAP[$glyph_addr_i] = $b_glyph;
  57383.         var $this1_i = HEAP[$this_addr_i];
  57384.         HEAP[HEAP[$glyph_addr_i]] = 0;
  57385.         if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i + 72 | 0] + 48 | 0]]($this1_i, HEAP[$this1_i + 76 | 0], HEAP[$unicode_addr_i], HEAP[$variation_selector_addr_i], HEAP[$glyph_addr_i], HEAP[HEAP[$this1_i + 72 | 0] + 92 | 0]) | 0) == 0) {
  57386.           break;
  57387.         }
  57388.       }
  57389.       var $27 = HEAP[$a];
  57390.       HEAP[$this_addr_i1] = HEAP[$c_addr + 8 | 0];
  57391.       HEAP[$unicode_addr_i2] = $27;
  57392.       HEAP[$variation_selector_addr_i3] = 0;
  57393.       HEAP[$glyph_addr_i4] = $a_glyph;
  57394.       var $this1_i5 = HEAP[$this_addr_i1];
  57395.       HEAP[HEAP[$glyph_addr_i4]] = 0;
  57396.       $has_a = (FUNCTION_TABLE[HEAP[HEAP[$this1_i5 + 72 | 0] + 48 | 0]]($this1_i5, HEAP[$this1_i5 + 76 | 0], HEAP[$unicode_addr_i2], HEAP[$variation_selector_addr_i3], HEAP[$glyph_addr_i4], HEAP[HEAP[$this1_i5 + 72 | 0] + 92 | 0]) | 0) != 0 & 1;
  57397.       do {
  57398.         if ($shortest_addr & 1) {
  57399.           if (!($has_a & 1)) {
  57400.             break;
  57401.           }
  57402.           __ZL11output_charP11hb_buffer_tjj(HEAP[$c_addr + 4 | 0], HEAP[$a], HEAP[$a_glyph]);
  57403.           if ((HEAP[$b] | 0) != 0) {
  57404.             __ZL11output_charP11hb_buffer_tjj(HEAP[$c_addr + 4 | 0], HEAP[$b], HEAP[$b_glyph]);
  57405.             $retval = 2;
  57406.             var $76 = $retval;
  57407.             STACKTOP = __stackBase__;
  57408.             return $76;
  57409.           } else {
  57410.             $retval = 1;
  57411.             var $76 = $retval;
  57412.             STACKTOP = __stackBase__;
  57413.             return $76;
  57414.           }
  57415.         }
  57416.       } while (0);
  57417.       var $call18 = __ZL9decomposePK31hb_ot_shape_normalize_context_tbj($c_addr, $shortest_addr & 1, HEAP[$a]);
  57418.       $ret = $call18;
  57419.       if (($call18 | 0) != 0) {
  57420.         if ((HEAP[$b] | 0) != 0) {
  57421.           __ZL11output_charP11hb_buffer_tjj(HEAP[$c_addr + 4 | 0], HEAP[$b], HEAP[$b_glyph]);
  57422.           $retval = $ret + 1 | 0;
  57423.           var $76 = $retval;
  57424.           STACKTOP = __stackBase__;
  57425.           return $76;
  57426.         } else {
  57427.           $retval = $ret;
  57428.           var $76 = $retval;
  57429.           STACKTOP = __stackBase__;
  57430.           return $76;
  57431.         }
  57432.       }
  57433.       if (!($has_a & 1)) {
  57434.         $retval = 0;
  57435.         var $76 = $retval;
  57436.         STACKTOP = __stackBase__;
  57437.         return $76;
  57438.       }
  57439.       __ZL11output_charP11hb_buffer_tjj(HEAP[$c_addr + 4 | 0], HEAP[$a], HEAP[$a_glyph]);
  57440.       if ((HEAP[$b] | 0) != 0) {
  57441.         __ZL11output_charP11hb_buffer_tjj(HEAP[$c_addr + 4 | 0], HEAP[$b], HEAP[$b_glyph]);
  57442.         $retval = 2;
  57443.         var $76 = $retval;
  57444.         STACKTOP = __stackBase__;
  57445.         return $76;
  57446.       } else {
  57447.         $retval = 1;
  57448.         var $76 = $retval;
  57449.         STACKTOP = __stackBase__;
  57450.         return $76;
  57451.       }
  57452.     }
  57453.   } while (0);
  57454.   $retval = 0;
  57455.   var $76 = $retval;
  57456.   STACKTOP = __stackBase__;
  57457.   return $76;
  57458. }
  57459. function __ZL11output_charP11hb_buffer_tjj($buffer, $unichar, $glyph) {
  57460.   var __stackBase__ = STACKTOP;
  57461.   STACKTOP = STACKTOP + 20 | 0;
  57462.   var $this_addr_i6 = __stackBase__;
  57463.   var $this_addr_i1 = __stackBase__ + 4;
  57464.   var $glyph_index_addr_i = __stackBase__ + 8;
  57465.   var $this_addr_i = __stackBase__ + 12;
  57466.   var $i_addr_i = __stackBase__ + 16;
  57467.   var $buffer_addr;
  57468.   $buffer_addr = $buffer;
  57469.   HEAP[$this_addr_i] = $buffer_addr;
  57470.   HEAP[$i_addr_i] = 0;
  57471.   var $this1_i = HEAP[$this_addr_i];
  57472.   HEAP[HEAP[$this1_i + 96 | 0] + ((HEAP[$i_addr_i] + HEAP[$this1_i + 80 | 0]) * 20 & -1) + 12 | 0] = $glyph;
  57473.   HEAP[$this_addr_i1] = $buffer_addr;
  57474.   HEAP[$glyph_index_addr_i] = $unichar;
  57475.   var $this1_i2 = HEAP[$this_addr_i1];
  57476.   if (__ZN11hb_buffer_t13make_room_forEjj($this1_i2, 0, 1)) {
  57477.     var $17 = HEAP[$this1_i2 + 100 | 0] + (HEAP[$this1_i2 + 88 | 0] * 20 & -1) | 0;
  57478.     var $18 = HEAP[$this1_i2 + 96 | 0] + (HEAP[$this1_i2 + 80 | 0] * 20 & -1) | 0;
  57479.     for (var $$src = $18, $$dest = $17, $$stop = $$src + 20; $$src < $$stop; $$src++, $$dest++) {
  57480.       HEAP[$$dest] = HEAP[$$src];
  57481.     }
  57482.     HEAP[HEAP[$this1_i2 + 100 | 0] + (HEAP[$this1_i2 + 88 | 0] * 20 & -1) | 0] = HEAP[$glyph_index_addr_i];
  57483.     var $out_len6_i = $this1_i2 + 88 | 0;
  57484.     HEAP[$out_len6_i] = HEAP[$out_len6_i] + 1 | 0;
  57485.   }
  57486.   HEAP[$this_addr_i6] = $buffer_addr;
  57487.   var $this1_i7 = HEAP[$this_addr_i6];
  57488.   __Z32_hb_glyph_info_set_unicode_propsP15hb_glyph_info_tP18hb_unicode_funcs_t(HEAP[$this1_i7 + 100 | 0] + ((HEAP[$this1_i7 + 88 | 0] - 1) * 20 & -1) | 0, HEAP[$buffer_addr + 44 | 0]);
  57489.   STACKTOP = __stackBase__;
  57490.   return;
  57491. }
  57492. function __Z30_hb_ot_shape_fallback_positionPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  57493.   var $plan_addr;
  57494.   var $font_addr;
  57495.   var $buffer_addr;
  57496.   var $start;
  57497.   var $last_cluster;
  57498.   var $count;
  57499.   var $i;
  57500.   $plan_addr = $plan;
  57501.   $font_addr = $font;
  57502.   $buffer_addr = $buffer;
  57503.   $start = 0;
  57504.   $last_cluster = HEAP[HEAP[$buffer_addr + 96 | 0] + 8 | 0];
  57505.   $count = HEAP[$buffer_addr + 84 | 0];
  57506.   $i = 1;
  57507.   if ($i >>> 0 >= $count >>> 0) {
  57508.     var $25 = $plan_addr;
  57509.     var $26 = $font_addr;
  57510.     var $27 = $buffer_addr;
  57511.     var $28 = $start;
  57512.     var $29 = $count;
  57513.     __ZL16position_clusterPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tjj($25, $26, $27, $28, $29);
  57514.     return;
  57515.   }
  57516.   while (1) {
  57517.     if ((HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) + 8 | 0] | 0) != ($last_cluster | 0)) {
  57518.       __ZL16position_clusterPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tjj($plan_addr, $font_addr, $buffer_addr, $start, $i);
  57519.       $start = $i;
  57520.       $last_cluster = HEAP[HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) + 8 | 0];
  57521.     }
  57522.     $i = $i + 1 | 0;
  57523.     if ($i >>> 0 >= $count >>> 0) {
  57524.       break;
  57525.     }
  57526.   }
  57527.   var $25 = $plan_addr;
  57528.   var $26 = $font_addr;
  57529.   var $27 = $buffer_addr;
  57530.   var $28 = $start;
  57531.   var $29 = $count;
  57532.   __ZL16position_clusterPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tjj($25, $26, $27, $28, $29);
  57533.   return;
  57534. }
  57535. function __ZL16position_clusterPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_tjj($plan, $font, $buffer, $start, $end) {
  57536.   var label = 0;
  57537.   var __stackBase__ = STACKTOP;
  57538.   STACKTOP = STACKTOP + 260 | 0;
  57539.   var $info_addr_i3 = __stackBase__;
  57540.   var $info_addr_i_i38_i = __stackBase__ + 4;
  57541.   var $retval_i39_i = __stackBase__ + 8;
  57542.   var $info_addr_i40_i = __stackBase__ + 12;
  57543.   var $info_addr_i33_i = __stackBase__ + 16;
  57544.   var $info_addr_i27_i = __stackBase__ + 20;
  57545.   var $info_addr_i_i14_i = __stackBase__ + 24;
  57546.   var $retval_i15_i = __stackBase__ + 28;
  57547.   var $info_addr_i16_i = __stackBase__ + 32;
  57548.   var $retval_i_i = __stackBase__ + 36;
  57549.   var $script_addr_i_i = __stackBase__ + 40;
  57550.   var $info_addr_i8_i = __stackBase__ + 44;
  57551.   var $info_addr_i_i = __stackBase__ + 48;
  57552.   var $this_addr_i_i_i = __stackBase__ + 52;
  57553.   var $glyph_addr_i_i_i = __stackBase__ + 56;
  57554.   var $extents_addr_i_i_i = __stackBase__ + 60;
  57555.   var $plan_addr_i_i = __stackBase__ + 64;
  57556.   var $font_addr_i_i = __stackBase__ + 68;
  57557.   var $buffer_addr_i1_i = __stackBase__ + 72;
  57558.   var $base_extents_addr_i_i = __stackBase__ + 76;
  57559.   var $i_addr_i_i = __stackBase__ + 80;
  57560.   var $combining_class_addr_i_i = __stackBase__ + 84;
  57561.   var $mark_extents_i_i = __stackBase__ + 88;
  57562.   var $y_gap_i_i = __stackBase__ + 104;
  57563.   var $pos_i2_i = __stackBase__ + 108;
  57564.   var $info_addr_i_i_i = __stackBase__ + 112;
  57565.   var $buffer_addr_i_i = __stackBase__ + 116;
  57566.   var $start_addr_i_i = __stackBase__ + 120;
  57567.   var $end_addr_i_i = __stackBase__ + 124;
  57568.   var $i_i_i = __stackBase__ + 128;
  57569.   var $this_addr_i_i = __stackBase__ + 132;
  57570.   var $glyph_addr_i_i = __stackBase__ + 136;
  57571.   var $extents_addr_i_i = __stackBase__ + 140;
  57572.   var $plan_addr_i = __stackBase__ + 144;
  57573.   var $font_addr_i = __stackBase__ + 148;
  57574.   var $buffer_addr_i = __stackBase__ + 152;
  57575.   var $base_addr_i = __stackBase__ + 156;
  57576.   var $end_addr_i = __stackBase__ + 160;
  57577.   var $horiz_dir_i = __stackBase__ + 164;
  57578.   var $base_extents_i = __stackBase__ + 168;
  57579.   var $lig_id_i = __stackBase__ + 184;
  57580.   var $num_lig_components_i = __stackBase__ + 188;
  57581.   var $x_offset12_i = __stackBase__ + 192;
  57582.   var $y_offset13_i = __stackBase__ + 196;
  57583.   var $component_extents_i = __stackBase__ + 200;
  57584.   var $last_lig_component_i = __stackBase__ + 216;
  57585.   var $last_combining_class_i = __stackBase__ + 220;
  57586.   var $cluster_extents_i = __stackBase__ + 224;
  57587.   var $i_i = __stackBase__ + 240;
  57588.   var $this_lig_id_i = __stackBase__ + 244;
  57589.   var $this_lig_component_i = __stackBase__ + 248;
  57590.   var $this_combining_class_i = __stackBase__ + 252;
  57591.   var $info_addr_i = __stackBase__ + 256;
  57592.   var $plan_addr;
  57593.   var $font_addr;
  57594.   var $buffer_addr;
  57595.   var $start_addr;
  57596.   var $end_addr;
  57597.   var $i;
  57598.   var $j;
  57599.   $plan_addr = $plan;
  57600.   $font_addr = $font;
  57601.   $buffer_addr = $buffer;
  57602.   $start_addr = $start;
  57603.   $end_addr = $end;
  57604.   if (($end_addr - $start_addr | 0) >>> 0 < 2) {
  57605.     STACKTOP = __stackBase__;
  57606.     return;
  57607.   }
  57608.   $i = $start_addr;
  57609.   if ($i >>> 0 >= $end_addr >>> 0) {
  57610.     STACKTOP = __stackBase__;
  57611.     return;
  57612.   }
  57613.   var $x_bearing_i = $base_extents_i | 0;
  57614.   var $y_bearing_i = $base_extents_i + 4 | 0;
  57615.   var $40 = $component_extents_i;
  57616.   var $41 = $base_extents_i;
  57617.   var $42 = $cluster_extents_i;
  57618.   var $43 = $base_extents_i;
  57619.   var $54 = $component_extents_i;
  57620.   var $55 = $base_extents_i;
  57621.   var $width_i = $component_extents_i + 8 | 0;
  57622.   var $x_bearing61_i = $component_extents_i | 0;
  57623.   var $width72_i = $component_extents_i + 8 | 0;
  57624.   var $width66_i = $component_extents_i + 8 | 0;
  57625.   var $x_bearing69_i = $component_extents_i | 0;
  57626.   var $62 = $cluster_extents_i;
  57627.   var $63 = $component_extents_i;
  57628.   var $width27_i_i = $mark_extents_i_i + 8 | 0;
  57629.   var $x_bearing31_i_i = $mark_extents_i_i | 0;
  57630.   var $y_bearing56_i_i = $mark_extents_i_i + 4 | 0;
  57631.   var $height60_i_i = $mark_extents_i_i + 12 | 0;
  57632.   var $y_bearing70_i_i = $mark_extents_i_i + 4 | 0;
  57633.   var $height71_i_i = $mark_extents_i_i + 12 | 0;
  57634.   var $height76_i_i = $mark_extents_i_i + 12 | 0;
  57635.   var $height79_i_i = $mark_extents_i_i + 12 | 0;
  57636.   var $width_i_i = $mark_extents_i_i + 8 | 0;
  57637.   var $x_bearing5_i_i = $mark_extents_i_i | 0;
  57638.   var $width15_i_i = $mark_extents_i_i + 8 | 0;
  57639.   var $x_bearing18_i_i = $mark_extents_i_i | 0;
  57640.   var $width45_i_i = $mark_extents_i_i + 8 | 0;
  57641.   var $x_bearing47_i_i = $mark_extents_i_i | 0;
  57642.   var $x_bearing37_i_i = $mark_extents_i_i | 0;
  57643.   while (1) {
  57644.     HEAP[$info_addr_i] = HEAP[$buffer_addr + 96 | 0] + ($i * 20 & -1) | 0;
  57645.     if ((1 << (HEAP[HEAP[$info_addr_i] + 16 | 0] & 31) & 7168 | 0) == 0) {
  57646.       $j = $i + 1 | 0;
  57647.       L2441 : do {
  57648.         if ($j >>> 0 < $end_addr >>> 0) {
  57649.           while (1) {
  57650.             HEAP[$info_addr_i3] = HEAP[$buffer_addr + 96 | 0] + ($j * 20 & -1) | 0;
  57651.             if ((1 << (HEAP[HEAP[$info_addr_i3] + 16 | 0] & 31) & 7168 | 0) == 0) {
  57652.               break L2441;
  57653.             }
  57654.             $j = $j + 1 | 0;
  57655.             if ($j >>> 0 >= $end_addr >>> 0) {
  57656.               break L2441;
  57657.             }
  57658.           }
  57659.         }
  57660.       } while (0);
  57661.       HEAP[$plan_addr_i] = $plan_addr;
  57662.       HEAP[$font_addr_i] = $font_addr;
  57663.       HEAP[$buffer_addr_i] = $buffer_addr;
  57664.       HEAP[$base_addr_i] = $i;
  57665.       HEAP[$end_addr_i] = $j;
  57666.       HEAP[$horiz_dir_i] = 0;
  57667.       var $144 = HEAP[HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$base_addr_i] * 20 & -1) | 0];
  57668.       HEAP[$this_addr_i_i] = HEAP[$font_addr_i];
  57669.       HEAP[$glyph_addr_i_i] = $144;
  57670.       HEAP[$extents_addr_i_i] = $base_extents_i;
  57671.       var $this1_i_i = HEAP[$this_addr_i_i];
  57672.       var $146 = HEAP[$extents_addr_i_i];
  57673.       for (var $$dest = $146, $$stop = $$dest + 16; $$dest < $$stop; $$dest++) {
  57674.         HEAP[$$dest] = 0;
  57675.       }
  57676.       L2446 : do {
  57677.         if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 76 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$glyph_addr_i_i], HEAP[$extents_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 120 | 0]) | 0) != 0) {
  57678.           HEAP[$x_bearing_i] = HEAP[$x_bearing_i] + HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$base_addr_i] * 20 & -1) + 8 | 0] | 0;
  57679.           HEAP[$y_bearing_i] = HEAP[$y_bearing_i] + HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$base_addr_i] * 20 & -1) + 12 | 0] | 0;
  57680.           HEAP[$info_addr_i_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$base_addr_i] * 20 & -1) | 0;
  57681.           HEAP[$lig_id_i] = (HEAP[HEAP[$info_addr_i_i] + 15 | 0] & 255) >> 5;
  57682.           HEAP[$info_addr_i40_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$base_addr_i] * 20 & -1) | 0;
  57683.           do {
  57684.             if ((HEAP[HEAP[$info_addr_i40_i] + 12 | 0] & 4 | 0) != 0) {
  57685.               HEAP[$info_addr_i_i38_i] = HEAP[$info_addr_i40_i];
  57686.               if ((HEAP[HEAP[$info_addr_i_i38_i] + 15 | 0] & 16 | 0) == 0) {
  57687.                 label = 1805;
  57688.                 break;
  57689.               }
  57690.               HEAP[$retval_i39_i] = HEAP[HEAP[$info_addr_i40_i] + 15 | 0] & 15;
  57691.               break;
  57692.             } else {
  57693.               label = 1805;
  57694.             }
  57695.           } while (0);
  57696.           if (label == 1805) {
  57697.             label = 0;
  57698.             HEAP[$retval_i39_i] = 1;
  57699.           }
  57700.           HEAP[$num_lig_components_i] = HEAP[$retval_i39_i];
  57701.           HEAP[$x_offset12_i] = 0;
  57702.           HEAP[$y_offset13_i] = 0;
  57703.           if ((HEAP[HEAP[$buffer_addr_i] + 48 | 0] & -3 | 0) == 4) {
  57704.             HEAP[$x_offset12_i] = HEAP[$x_offset12_i] - HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$base_addr_i] * 20 & -1) | 0] | 0;
  57705.             HEAP[$y_offset13_i] = HEAP[$y_offset13_i] - HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$base_addr_i] * 20 & -1) + 4 | 0] | 0;
  57706.           }
  57707.           for (var $$src = $41, $$dest = $40, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  57708.             HEAP[$$dest] = HEAP[$$src];
  57709.           }
  57710.           HEAP[$last_lig_component_i] = -1;
  57711.           HEAP[$last_combining_class_i] = 255;
  57712.           for (var $$src = $43, $$dest = $42, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  57713.             HEAP[$$dest] = HEAP[$$src];
  57714.           }
  57715.           HEAP[$i_i] = HEAP[$base_addr_i] + 1 | 0;
  57716.           if (HEAP[$i_i] >>> 0 >= HEAP[$end_addr_i] >>> 0) {
  57717.             break;
  57718.           }
  57719.           while (1) {
  57720.             HEAP[$info_addr_i33_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) | 0;
  57721.             do {
  57722.               if ((HEAP[HEAP[$info_addr_i33_i] + 17 | 0] & 255 | 0) != 0) {
  57723.                 do {
  57724.                   if (HEAP[$num_lig_components_i] >>> 0 > 1) {
  57725.                     HEAP[$info_addr_i27_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) | 0;
  57726.                     HEAP[$this_lig_id_i] = (HEAP[HEAP[$info_addr_i27_i] + 15 | 0] & 255) >> 5;
  57727.                     HEAP[$info_addr_i16_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) | 0;
  57728.                     HEAP[$info_addr_i_i14_i] = HEAP[$info_addr_i16_i];
  57729.                     if ((HEAP[HEAP[$info_addr_i_i14_i] + 15 | 0] & 16 | 0) != 0) {
  57730.                       HEAP[$retval_i15_i] = 0;
  57731.                     } else {
  57732.                       HEAP[$retval_i15_i] = HEAP[HEAP[$info_addr_i16_i] + 15 | 0] & 15;
  57733.                     }
  57734.                     HEAP[$this_lig_component_i] = HEAP[$retval_i15_i] - 1 | 0;
  57735.                     do {
  57736.                       if ((HEAP[$lig_id_i] | 0) != 0) {
  57737.                         if ((HEAP[$lig_id_i] | 0) != (HEAP[$this_lig_id_i] | 0)) {
  57738.                           label = 1817;
  57739.                           break;
  57740.                         }
  57741.                         if (HEAP[$this_lig_component_i] >>> 0 >= HEAP[$num_lig_components_i] >>> 0) {
  57742.                           label = 1817;
  57743.                           break;
  57744.                         } else {
  57745.                           break;
  57746.                         }
  57747.                       } else {
  57748.                         label = 1817;
  57749.                       }
  57750.                     } while (0);
  57751.                     if (label == 1817) {
  57752.                       label = 0;
  57753.                       HEAP[$this_lig_component_i] = HEAP[$num_lig_components_i] - 1 | 0;
  57754.                     }
  57755.                     if ((HEAP[$last_lig_component_i] | 0) == (HEAP[$this_lig_component_i] | 0)) {
  57756.                       break;
  57757.                     }
  57758.                     HEAP[$last_lig_component_i] = HEAP[$this_lig_component_i];
  57759.                     HEAP[$last_combining_class_i] = 255;
  57760.                     for (var $$src = $55, $$dest = $54, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  57761.                       HEAP[$$dest] = HEAP[$$src];
  57762.                     }
  57763.                     var $244 = HEAP[$horiz_dir_i];
  57764.                     do {
  57765.                       if (($244 | 0) == 0) {
  57766.                         var $props53_i = HEAP[$plan_addr_i] | 0;
  57767.                         if ((HEAP[HEAP[$plan_addr_i] | 0] & -2 | 0) == 4) {
  57768.                           var $248 = HEAP[$props53_i | 0];
  57769.                           HEAP[$horiz_dir_i] = $248;
  57770.                           var $252 = $248;
  57771.                           break;
  57772.                         }
  57773.                         HEAP[$script_addr_i_i] = HEAP[$props53_i + 4 | 0];
  57774.                         var $250 = HEAP[$script_addr_i_i];
  57775.                         if (($250 | 0) == 1098015074 | ($250 | 0) == 1214603890 | ($250 | 0) == 1400468067 | ($250 | 0) == 1416126817 | ($250 | 0) == 1131442804 | ($250 | 0) == 1265131890 | ($250 | 0) == 1349021304 | ($250 | 0) == 1315663727 | ($250 | 0) == 1283023977 | ($250 | 0) == 1098281844 | ($250 | 0) == 1098018153 | ($250 | 0) == 1349020777 | ($250 | 0) == 1349678185 | ($250 | 0) == 1398895202 | ($250 | 0) == 1332898664 | ($250 | 0) == 1398893938 | ($250 | 0) == 1298230884 | ($250 | 0) == 1298494051 | ($250 | 0) == 1298494063) {
  57776.                           HEAP[$retval_i_i] = 5;
  57777.                         } else {
  57778.                           HEAP[$retval_i_i] = 4;
  57779.                         }
  57780.                         var $251 = HEAP[$retval_i_i];
  57781.                         HEAP[$horiz_dir_i] = $251;
  57782.                         var $252 = $251;
  57783.                       } else {
  57784.                         var $252 = $244;
  57785.                       }
  57786.                     } while (0);
  57787.                     var $252;
  57788.                     if (($252 | 0) == 4) {
  57789.                       var $div_i = Math.floor((Math.imul(HEAP[$width_i], HEAP[$this_lig_component_i]) >>> 0) / (HEAP[$num_lig_components_i] >>> 0));
  57790.                       HEAP[$x_bearing61_i] = HEAP[$x_bearing61_i] + $div_i | 0;
  57791.                     } else {
  57792.                       var $div68_i = Math.floor((Math.imul(HEAP[$num_lig_components_i] - 1 + -HEAP[$this_lig_component_i] | 0, HEAP[$width66_i]) >>> 0) / (HEAP[$num_lig_components_i] >>> 0));
  57793.                       HEAP[$x_bearing69_i] = HEAP[$x_bearing69_i] + $div68_i | 0;
  57794.                     }
  57795.                     var $div73_i = Math.floor((HEAP[$width72_i] >>> 0) / (HEAP[$num_lig_components_i] >>> 0));
  57796.                     HEAP[$width72_i] = $div73_i;
  57797.                   }
  57798.                 } while (0);
  57799.                 HEAP[$info_addr_i8_i] = HEAP[HEAP[$buffer_addr_i] + 96 | 0] + (HEAP[$i_i] * 20 & -1) | 0;
  57800.                 HEAP[$this_combining_class_i] = HEAP[HEAP[$info_addr_i8_i] + 17 | 0] & 255;
  57801.                 if ((HEAP[$last_combining_class_i] | 0) != (HEAP[$this_combining_class_i] | 0)) {
  57802.                   HEAP[$last_combining_class_i] = HEAP[$this_combining_class_i];
  57803.                   for (var $$src = $63, $$dest = $62, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  57804.                     HEAP[$$dest] = HEAP[$$src];
  57805.                   }
  57806.                 }
  57807.                 var $273 = HEAP[$font_addr_i];
  57808.                 var $274 = HEAP[$buffer_addr_i];
  57809.                 var $275 = HEAP[$i_i];
  57810.                 var $276 = HEAP[$this_combining_class_i];
  57811.                 HEAP[$plan_addr_i_i] = HEAP[$plan_addr_i];
  57812.                 HEAP[$font_addr_i_i] = $273;
  57813.                 HEAP[$buffer_addr_i1_i] = $274;
  57814.                 HEAP[$base_extents_addr_i_i] = $cluster_extents_i;
  57815.                 HEAP[$i_addr_i_i] = $275;
  57816.                 HEAP[$combining_class_addr_i_i] = $276;
  57817.                 var $281 = HEAP[HEAP[HEAP[$buffer_addr_i1_i] + 96 | 0] + (HEAP[$i_addr_i_i] * 20 & -1) | 0];
  57818.                 HEAP[$this_addr_i_i_i] = HEAP[$font_addr_i_i];
  57819.                 HEAP[$glyph_addr_i_i_i] = $281;
  57820.                 HEAP[$extents_addr_i_i_i] = $mark_extents_i_i;
  57821.                 var $this1_i_i_i = HEAP[$this_addr_i_i_i];
  57822.                 var $283 = HEAP[$extents_addr_i_i_i];
  57823.                 for (var $$dest = $283, $$stop = $$dest + 16; $$dest < $$stop; $$dest++) {
  57824.                   HEAP[$$dest] = 0;
  57825.                 }
  57826.                 L2492 : do {
  57827.                   if ((FUNCTION_TABLE[HEAP[HEAP[$this1_i_i_i + 72 | 0] + 76 | 0]]($this1_i_i_i, HEAP[$this1_i_i_i + 76 | 0], HEAP[$glyph_addr_i_i_i], HEAP[$extents_addr_i_i_i], HEAP[HEAP[$this1_i_i_i + 72 | 0] + 120 | 0]) | 0) != 0) {
  57828.                     HEAP[$y_gap_i_i] = (HEAP[HEAP[$font_addr_i_i] + 60 | 0] | 0) / 16 & -1;
  57829.                     HEAP[$pos_i2_i] = HEAP[HEAP[$buffer_addr_i1_i] + 104 | 0] + (HEAP[$i_addr_i_i] * 20 & -1) | 0;
  57830.                     HEAP[HEAP[$pos_i2_i] + 12 | 0] = 0;
  57831.                     HEAP[HEAP[$pos_i2_i] + 8 | 0] = 0;
  57832.                     var $298 = HEAP[$combining_class_addr_i_i];
  57833.                     do {
  57834.                       if (($298 | 0) == 233 | ($298 | 0) == 234) {
  57835.                         if ((HEAP[HEAP[$buffer_addr_i1_i] + 48 | 0] | 0) == 4) {
  57836.                           var $x_offset7_i_i = HEAP[$pos_i2_i] + 8 | 0;
  57837.                           HEAP[$x_offset7_i_i] = -((HEAP[$width_i_i] | 0) / 2 & -1) + HEAP[HEAP[$base_extents_addr_i_i] | 0] + -HEAP[$x_bearing5_i_i] + HEAP[$x_offset7_i_i] | 0;
  57838.                           break;
  57839.                         }
  57840.                         if ((HEAP[HEAP[$buffer_addr_i1_i] + 48 | 0] | 0) != 5) {
  57841.                           label = 1838;
  57842.                           break;
  57843.                         }
  57844.                         var $x_offset20_i_i = HEAP[$pos_i2_i] + 8 | 0;
  57845.                         HEAP[$x_offset20_i_i] = HEAP[HEAP[$base_extents_addr_i_i] + 8 | 0] + HEAP[HEAP[$base_extents_addr_i_i] | 0] + -((HEAP[$width15_i_i] | 0) / 2 & -1) + -HEAP[$x_bearing18_i_i] + HEAP[$x_offset20_i_i] | 0;
  57846.                         break;
  57847.                       } else if (($298 | 0) == 232 | ($298 | 0) == 222 | ($298 | 0) == 216) {
  57848.                         var $x_offset49_i_i = HEAP[$pos_i2_i] + 8 | 0;
  57849.                         HEAP[$x_offset49_i_i] = HEAP[HEAP[$base_extents_addr_i_i] + 8 | 0] + HEAP[HEAP[$base_extents_addr_i_i] | 0] + -HEAP[$width45_i_i] + -HEAP[$x_bearing47_i_i] + HEAP[$x_offset49_i_i] | 0;
  57850.                         break;
  57851.                       } else if (($298 | 0) == 228 | ($298 | 0) == 200 | ($298 | 0) == 218) {
  57852.                         var $x_offset39_i_i = HEAP[$pos_i2_i] + 8 | 0;
  57853.                         HEAP[$x_offset39_i_i] = -HEAP[$x_bearing37_i_i] + HEAP[HEAP[$base_extents_addr_i_i] | 0] + HEAP[$x_offset39_i_i] | 0;
  57854.                         break;
  57855.                       } else {
  57856.                         label = 1838;
  57857.                       }
  57858.                     } while (0);
  57859.                     if (label == 1838) {
  57860.                       label = 0;
  57861.                       var $x_offset33_i_i = HEAP[$pos_i2_i] + 8 | 0;
  57862.                       HEAP[$x_offset33_i_i] = ((HEAP[HEAP[$base_extents_addr_i_i] + 8 | 0] - HEAP[$width27_i_i] | 0) / 2 & -1) + HEAP[HEAP[$base_extents_addr_i_i] | 0] + -HEAP[$x_bearing31_i_i] + HEAP[$x_offset33_i_i] | 0;
  57863.                     }
  57864.                     var $338 = HEAP[$combining_class_addr_i_i];
  57865.                     do {
  57866.                       if (($338 | 0) == 233 | ($338 | 0) == 218 | ($338 | 0) == 220 | ($338 | 0) == 222) {
  57867.                         var $height_i_i = HEAP[$base_extents_addr_i_i] + 12 | 0;
  57868.                         HEAP[$height_i_i] = HEAP[$height_i_i] - HEAP[$y_gap_i_i] | 0;
  57869.                         label = 1843;
  57870.                         break;
  57871.                       } else if (($338 | 0) == 200 | ($338 | 0) == 202) {
  57872.                         label = 1843;
  57873.                       } else if (($338 | 0) == 234 | ($338 | 0) == 228 | ($338 | 0) == 230 | ($338 | 0) == 232) {
  57874.                         var $y_bearing64_i_i = HEAP[$base_extents_addr_i_i] + 4 | 0;
  57875.                         HEAP[$y_bearing64_i_i] = HEAP[$y_bearing64_i_i] + HEAP[$y_gap_i_i] | 0;
  57876.                         var $height66_i_i = HEAP[$base_extents_addr_i_i] + 12 | 0;
  57877.                         HEAP[$height66_i_i] = HEAP[$height66_i_i] - HEAP[$y_gap_i_i] | 0;
  57878.                         label = 1845;
  57879.                         break;
  57880.                       } else if (($338 | 0) == 214 | ($338 | 0) == 216) {
  57881.                         label = 1845;
  57882.                       } else {
  57883.                         break L2492;
  57884.                       }
  57885.                     } while (0);
  57886.                     if (label == 1843) {
  57887.                       label = 0;
  57888.                       var $y_offset58_i_i = HEAP[$pos_i2_i] + 12 | 0;
  57889.                       HEAP[$y_offset58_i_i] = HEAP[HEAP[$base_extents_addr_i_i] + 12 | 0] + HEAP[HEAP[$base_extents_addr_i_i] + 4 | 0] + -HEAP[$y_bearing56_i_i] + HEAP[$y_offset58_i_i] | 0;
  57890.                       var $height61_i_i = HEAP[$base_extents_addr_i_i] + 12 | 0;
  57891.                       HEAP[$height61_i_i] = HEAP[$height61_i_i] + HEAP[$height60_i_i] | 0;
  57892.                       break;
  57893.                     } else if (label == 1845) {
  57894.                       label = 0;
  57895.                       var $y_offset74_i_i = HEAP[$pos_i2_i] + 12 | 0;
  57896.                       HEAP[$y_offset74_i_i] = -HEAP[$y_bearing70_i_i] + HEAP[HEAP[$base_extents_addr_i_i] + 4 | 0] + -HEAP[$height71_i_i] + HEAP[$y_offset74_i_i] | 0;
  57897.                       var $y_bearing77_i_i = HEAP[$base_extents_addr_i_i] + 4 | 0;
  57898.                       HEAP[$y_bearing77_i_i] = HEAP[$y_bearing77_i_i] - HEAP[$height76_i_i] | 0;
  57899.                       var $height80_i_i = HEAP[$base_extents_addr_i_i] + 12 | 0;
  57900.                       HEAP[$height80_i_i] = HEAP[$height80_i_i] + HEAP[$height79_i_i] | 0;
  57901.                       break;
  57902.                     }
  57903.                   }
  57904.                 } while (0);
  57905.                 HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) | 0] = 0;
  57906.                 HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) + 4 | 0] = 0;
  57907.                 var $x_offset90_i = HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) + 8 | 0;
  57908.                 HEAP[$x_offset90_i] = HEAP[$x_offset90_i] + HEAP[$x_offset12_i] | 0;
  57909.                 var $y_offset94_i = HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) + 12 | 0;
  57910.                 HEAP[$y_offset94_i] = HEAP[$y_offset94_i] + HEAP[$y_offset13_i] | 0;
  57911.               } else {
  57912.                 var $391 = HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) | 0];
  57913.                 var $392 = HEAP[$x_offset12_i];
  57914.                 if ((HEAP[HEAP[$buffer_addr_i] + 48 | 0] & -3 | 0) == 4) {
  57915.                   HEAP[$x_offset12_i] = $392 - $391 | 0;
  57916.                   HEAP[$y_offset13_i] = HEAP[$y_offset13_i] - HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) + 4 | 0] | 0;
  57917.                   break;
  57918.                 } else {
  57919.                   HEAP[$x_offset12_i] = $392 + $391 | 0;
  57920.                   HEAP[$y_offset13_i] = HEAP[$y_offset13_i] + HEAP[HEAP[HEAP[$buffer_addr_i] + 104 | 0] + (HEAP[$i_i] * 20 & -1) + 4 | 0] | 0;
  57921.                   break;
  57922.                 }
  57923.               }
  57924.             } while (0);
  57925.             HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  57926.             if (HEAP[$i_i] >>> 0 >= HEAP[$end_addr_i] >>> 0) {
  57927.               break L2446;
  57928.             }
  57929.           }
  57930.         } else {
  57931.           var $add_i = HEAP[$base_addr_i] + 1 | 0;
  57932.           var $156 = HEAP[$end_addr_i];
  57933.           HEAP[$buffer_addr_i_i] = HEAP[$buffer_addr_i];
  57934.           HEAP[$start_addr_i_i] = $add_i;
  57935.           HEAP[$end_addr_i_i] = $156;
  57936.           HEAP[$i_i_i] = HEAP[$start_addr_i_i];
  57937.           if (HEAP[$i_i_i] >>> 0 >= HEAP[$end_addr_i_i] >>> 0) {
  57938.             break;
  57939.           }
  57940.           while (1) {
  57941.             HEAP[$info_addr_i_i_i] = HEAP[HEAP[$buffer_addr_i_i] + 96 | 0] + (HEAP[$i_i_i] * 20 & -1) | 0;
  57942.             if ((HEAP[HEAP[$info_addr_i_i_i] + 16 | 0] & 31 | 0) == 12) {
  57943.               HEAP[HEAP[HEAP[$buffer_addr_i_i] + 104 | 0] + (HEAP[$i_i_i] * 20 & -1) | 0] = 0;
  57944.               HEAP[HEAP[HEAP[$buffer_addr_i_i] + 104 | 0] + (HEAP[$i_i_i] * 20 & -1) + 4 | 0] = 0;
  57945.             }
  57946.             HEAP[$i_i_i] = HEAP[$i_i_i] + 1 | 0;
  57947.             if (HEAP[$i_i_i] >>> 0 >= HEAP[$end_addr_i_i] >>> 0) {
  57948.               break L2446;
  57949.             }
  57950.           }
  57951.         }
  57952.       } while (0);
  57953.       $i = $j - 1 | 0;
  57954.     }
  57955.     $i = $i + 1 | 0;
  57956.     if ($i >>> 0 >= $end_addr >>> 0) {
  57957.       break;
  57958.     }
  57959.   }
  57960.   STACKTOP = __stackBase__;
  57961.   return;
  57962. }
  57963. function _ucdn_get_unicode_version() {
  57964.   return 102944;
  57965. }
  57966. function __ZL31hb_ucdn_decompose_compatibilityP18hb_unicode_funcs_tjPjPv($ufuncs, $u, $decomposed, $user_data) {
  57967.   var __stackBase__ = STACKTOP;
  57968.   STACKTOP = STACKTOP + 48 | 0;
  57969.   var $retval_i_i = __stackBase__;
  57970.   var $code_ptr_addr_i_i = __stackBase__ + 4;
  57971.   var $code_i_i = __stackBase__ + 8;
  57972.   var $code_addr_i_i = __stackBase__ + 12;
  57973.   var $index_i_i = __stackBase__ + 16;
  57974.   var $offset_i_i = __stackBase__ + 20;
  57975.   var $retval_i = __stackBase__ + 24;
  57976.   var $code_addr_i = __stackBase__ + 28;
  57977.   var $decomposed_addr_i = __stackBase__ + 32;
  57978.   var $i_i = __stackBase__ + 36;
  57979.   var $len_i = __stackBase__ + 40;
  57980.   var $rec_i = __stackBase__ + 44;
  57981.   HEAP[$code_addr_i] = $u;
  57982.   HEAP[$decomposed_addr_i] = $decomposed;
  57983.   HEAP[$code_addr_i_i] = HEAP[$code_addr_i];
  57984.   if (HEAP[$code_addr_i_i] >>> 0 >= 1114112) {
  57985.     HEAP[$index_i_i] = 0;
  57986.   } else {
  57987.     HEAP[$index_i_i] = (HEAP[(HEAP[$code_addr_i_i] >>> 10) + 56984 | 0] & 255) << 6;
  57988.     HEAP[$offset_i_i] = HEAP[$code_addr_i_i] >>> 4 & 63;
  57989.     HEAP[$index_i_i] = (HEAP[(HEAP[$offset_i_i] + HEAP[$index_i_i] << 1) + 54168 | 0] & 65535) << 4;
  57990.     HEAP[$offset_i_i] = HEAP[$code_addr_i_i] & 15;
  57991.     HEAP[$index_i_i] = HEAP[(HEAP[$offset_i_i] + HEAP[$index_i_i] << 1) + 39032 | 0] & 65535;
  57992.   }
  57993.   HEAP[$rec_i] = (HEAP[$index_i_i] << 1) + 58072 | 0;
  57994.   var $shr_i = (HEAP[HEAP[$rec_i]] & 65535) >> 8;
  57995.   HEAP[$len_i] = $shr_i;
  57996.   if (($shr_i | 0) == 0) {
  57997.     HEAP[$retval_i] = 0;
  57998.     var $57 = HEAP[$retval_i];
  57999.     var $58 = $retval_i;
  58000.     var $59 = $code_addr_i;
  58001.     var $60 = $decomposed_addr_i;
  58002.     var $61 = $i_i;
  58003.     var $62 = $len_i;
  58004.     var $63 = $rec_i;
  58005.     STACKTOP = __stackBase__;
  58006.     return $57;
  58007.   }
  58008.   HEAP[$rec_i] = HEAP[$rec_i] + 2 | 0;
  58009.   HEAP[$i_i] = 0;
  58010.   L2536 : do {
  58011.     if ((HEAP[$i_i] | 0) < (HEAP[$len_i] | 0)) {
  58012.       while (1) {
  58013.         HEAP[$code_ptr_addr_i_i] = $rec_i;
  58014.         HEAP[$code_i_i] = HEAP[HEAP[$code_ptr_addr_i_i]];
  58015.         var $42 = HEAP[$code_ptr_addr_i_i];
  58016.         var $43 = HEAP[$42];
  58017.         if ((HEAP[HEAP[$code_i_i]] & 55296 | 0) != 55296) {
  58018.           HEAP[$42] = $43 + 2 | 0;
  58019.           HEAP[$retval_i_i] = HEAP[HEAP[$code_i_i]] & 65535;
  58020.         } else {
  58021.           HEAP[$42] = $43 + 4 | 0;
  58022.           HEAP[$retval_i_i] = ((HEAP[HEAP[$code_i_i]] & 65535) - 55296 << 10) + (HEAP[HEAP[$code_i_i] + 2 | 0] & 65535) + 9216 | 0;
  58023.         }
  58024.         HEAP[(HEAP[$i_i] << 2) + HEAP[$decomposed_addr_i] | 0] = HEAP[$retval_i_i];
  58025.         HEAP[$i_i] = HEAP[$i_i] + 1 | 0;
  58026.         if ((HEAP[$i_i] | 0) >= (HEAP[$len_i] | 0)) {
  58027.           break L2536;
  58028.         }
  58029.       }
  58030.     }
  58031.   } while (0);
  58032.   HEAP[$retval_i] = HEAP[$len_i];
  58033.   var $57 = HEAP[$retval_i];
  58034.   var $58 = $retval_i;
  58035.   var $59 = $code_addr_i;
  58036.   var $60 = $decomposed_addr_i;
  58037.   var $61 = $i_i;
  58038.   var $62 = $len_i;
  58039.   var $63 = $rec_i;
  58040.   STACKTOP = __stackBase__;
  58041.   return $57;
  58042. }
  58043. function _ucdn_get_combining_class($code) {
  58044.   var __stackBase__ = STACKTOP;
  58045.   STACKTOP = STACKTOP + 12 | 0;
  58046.   var $code_addr_i = __stackBase__;
  58047.   var $index_i = __stackBase__ + 4;
  58048.   var $offset_i = __stackBase__ + 8;
  58049.   HEAP[$code_addr_i] = $code;
  58050.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58051.     HEAP[$index_i] = 0;
  58052.     var $15 = HEAP[$index_i];
  58053.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58054.     var $16 = $code_addr_i;
  58055.     var $17 = $index_i;
  58056.     var $18 = $offset_i;
  58057.     var $combining = $arrayidx9_i + 1 | 0;
  58058.     var $19 = HEAP[$combining];
  58059.     var $conv = $19 & 255;
  58060.     STACKTOP = __stackBase__;
  58061.     return $conv;
  58062.   } else {
  58063.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58064.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58065.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58066.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58067.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58068.     var $15 = HEAP[$index_i];
  58069.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58070.     var $16 = $code_addr_i;
  58071.     var $17 = $index_i;
  58072.     var $18 = $offset_i;
  58073.     var $combining = $arrayidx9_i + 1 | 0;
  58074.     var $19 = HEAP[$combining];
  58075.     var $conv = $19 & 255;
  58076.     STACKTOP = __stackBase__;
  58077.     return $conv;
  58078.   }
  58079. }
  58080. function _ucdn_get_east_asian_width($code) {
  58081.   var __stackBase__ = STACKTOP;
  58082.   STACKTOP = STACKTOP + 12 | 0;
  58083.   var $code_addr_i = __stackBase__;
  58084.   var $index_i = __stackBase__ + 4;
  58085.   var $offset_i = __stackBase__ + 8;
  58086.   HEAP[$code_addr_i] = $code;
  58087.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58088.     HEAP[$index_i] = 0;
  58089.     var $15 = HEAP[$index_i];
  58090.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58091.     var $16 = $code_addr_i;
  58092.     var $17 = $index_i;
  58093.     var $18 = $offset_i;
  58094.     var $east_asian_width = $arrayidx9_i + 4 | 0;
  58095.     var $19 = HEAP[$east_asian_width];
  58096.     var $conv = $19 & 255;
  58097.     STACKTOP = __stackBase__;
  58098.     return $conv;
  58099.   } else {
  58100.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58101.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58102.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58103.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58104.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58105.     var $15 = HEAP[$index_i];
  58106.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58107.     var $16 = $code_addr_i;
  58108.     var $17 = $index_i;
  58109.     var $18 = $offset_i;
  58110.     var $east_asian_width = $arrayidx9_i + 4 | 0;
  58111.     var $19 = HEAP[$east_asian_width];
  58112.     var $conv = $19 & 255;
  58113.     STACKTOP = __stackBase__;
  58114.     return $conv;
  58115.   }
  58116. }
  58117. function _ucdn_get_general_category($code) {
  58118.   var __stackBase__ = STACKTOP;
  58119.   STACKTOP = STACKTOP + 12 | 0;
  58120.   var $code_addr_i = __stackBase__;
  58121.   var $index_i = __stackBase__ + 4;
  58122.   var $offset_i = __stackBase__ + 8;
  58123.   HEAP[$code_addr_i] = $code;
  58124.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58125.     HEAP[$index_i] = 0;
  58126.     var $15 = HEAP[$index_i];
  58127.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58128.     var $16 = $code_addr_i;
  58129.     var $17 = $index_i;
  58130.     var $18 = $offset_i;
  58131.     var $category = $arrayidx9_i | 0;
  58132.     var $19 = HEAP[$category];
  58133.     var $conv = $19 & 255;
  58134.     STACKTOP = __stackBase__;
  58135.     return $conv;
  58136.   } else {
  58137.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58138.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58139.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58140.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58141.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58142.     var $15 = HEAP[$index_i];
  58143.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58144.     var $16 = $code_addr_i;
  58145.     var $17 = $index_i;
  58146.     var $18 = $offset_i;
  58147.     var $category = $arrayidx9_i | 0;
  58148.     var $19 = HEAP[$category];
  58149.     var $conv = $19 & 255;
  58150.     STACKTOP = __stackBase__;
  58151.     return $conv;
  58152.   }
  58153. }
  58154. function _ucdn_get_bidi_class($code) {
  58155.   var __stackBase__ = STACKTOP;
  58156.   STACKTOP = STACKTOP + 12 | 0;
  58157.   var $code_addr_i = __stackBase__;
  58158.   var $index_i = __stackBase__ + 4;
  58159.   var $offset_i = __stackBase__ + 8;
  58160.   HEAP[$code_addr_i] = $code;
  58161.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58162.     HEAP[$index_i] = 0;
  58163.     var $15 = HEAP[$index_i];
  58164.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58165.     var $16 = $code_addr_i;
  58166.     var $17 = $index_i;
  58167.     var $18 = $offset_i;
  58168.     var $bidi_class = $arrayidx9_i + 2 | 0;
  58169.     var $19 = HEAP[$bidi_class];
  58170.     var $conv = $19 & 255;
  58171.     STACKTOP = __stackBase__;
  58172.     return $conv;
  58173.   } else {
  58174.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58175.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58176.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58177.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58178.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58179.     var $15 = HEAP[$index_i];
  58180.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58181.     var $16 = $code_addr_i;
  58182.     var $17 = $index_i;
  58183.     var $18 = $offset_i;
  58184.     var $bidi_class = $arrayidx9_i + 2 | 0;
  58185.     var $19 = HEAP[$bidi_class];
  58186.     var $conv = $19 & 255;
  58187.     STACKTOP = __stackBase__;
  58188.     return $conv;
  58189.   }
  58190. }
  58191. function __Z26_hb_ot_shape_fallback_kernPK18hb_ot_shape_plan_tP9hb_font_tP11hb_buffer_t($plan, $font, $buffer) {
  58192.   var __stackBase__ = STACKTOP;
  58193.   STACKTOP = STACKTOP + 160 | 0;
  58194.   var $this_addr_i1_i = __stackBase__;
  58195.   var $left_glyph_addr_i2_i = __stackBase__ + 4;
  58196.   var $right_glyph_addr_i3_i = __stackBase__ + 8;
  58197.   var $this_addr_i_i = __stackBase__ + 12;
  58198.   var $left_glyph_addr_i_i = __stackBase__ + 16;
  58199.   var $right_glyph_addr_i_i = __stackBase__ + 20;
  58200.   var $this_addr_i1 = __stackBase__ + 24;
  58201.   var $first_glyph_addr_i = __stackBase__ + 28;
  58202.   var $second_glyph_addr_i = __stackBase__ + 32;
  58203.   var $direction_addr_i = __stackBase__ + 36;
  58204.   var $x_addr_i = __stackBase__ + 40;
  58205.   var $y_addr_i = __stackBase__ + 44;
  58206.   var $this_addr_i = __stackBase__ + 48;
  58207.   var $lookup_props__addr_i = __stackBase__ + 52;
  58208.   var $font_addr;
  58209.   var $buffer_addr;
  58210.   var $count;
  58211.   var $c = __stackBase__ + 56;
  58212.   var $skippy_iter = __stackBase__ + 108;
  58213.   var $x_kern = __stackBase__ + 152;
  58214.   var $y_kern = __stackBase__ + 156;
  58215.   var $kern1;
  58216.   var $kern2;
  58217.   $font_addr = $font;
  58218.   $buffer_addr = $buffer;
  58219.   $count = HEAP[$buffer_addr + 84 | 0];
  58220.   __ZN2OT18hb_apply_context_tC1EjP9hb_font_tP11hb_buffer_tjb($c, 1, $font_addr, $buffer_addr, __ZNK11hb_ot_map_t10get_1_maskEj($plan + 24 | 0, (HEAP[$buffer_addr + 48 | 0] & -2 | 0) == 4 ? 1801810542 : 1986753134), 1);
  58221.   HEAP[$this_addr_i] = $c;
  58222.   HEAP[$lookup_props__addr_i] = 8;
  58223.   HEAP[HEAP[$this_addr_i] + 36 | 0] = HEAP[$lookup_props__addr_i];
  58224.   HEAP[$buffer_addr + 80 | 0] = 0;
  58225.   if (HEAP[$buffer_addr + 80 | 0] >>> 0 >= $count >>> 0) {
  58226.     STACKTOP = __stackBase__;
  58227.     return;
  58228.   }
  58229.   var $idx7 = $skippy_iter | 0;
  58230.   var $idx15 = $skippy_iter | 0;
  58231.   var $idx20 = $skippy_iter | 0;
  58232.   var $idx30 = $skippy_iter | 0;
  58233.   var $idx35 = $skippy_iter | 0;
  58234.   var $idx39 = $skippy_iter | 0;
  58235.   while (1) {
  58236.     __ZN2OT18hb_apply_context_t27skipping_forward_iterator_tC1EPS0_jjb($skippy_iter, $c, HEAP[$buffer_addr + 80 | 0], 1, 0);
  58237.     if (__ZN2OT18hb_apply_context_t27skipping_forward_iterator_t4nextEv($skippy_iter)) {
  58238.       var $53 = HEAP[HEAP[$buffer_addr + 96 | 0] + (HEAP[$buffer_addr + 80 | 0] * 20 & -1) | 0];
  58239.       var $57 = HEAP[HEAP[$buffer_addr + 96 | 0] + (HEAP[$idx7] * 20 & -1) | 0];
  58240.       var $59 = HEAP[$buffer_addr + 48 | 0];
  58241.       HEAP[$this_addr_i1] = $font_addr;
  58242.       HEAP[$first_glyph_addr_i] = $53;
  58243.       HEAP[$second_glyph_addr_i] = $57;
  58244.       HEAP[$direction_addr_i] = $59;
  58245.       HEAP[$x_addr_i] = $x_kern;
  58246.       HEAP[$y_addr_i] = $y_kern;
  58247.       var $this1_i2 = HEAP[$this_addr_i1];
  58248.       if ((HEAP[$direction_addr_i] & -2 | 0) == 4) {
  58249.         var $61 = HEAP[$first_glyph_addr_i];
  58250.         var $62 = HEAP[$second_glyph_addr_i];
  58251.         HEAP[$this_addr_i_i] = $this1_i2;
  58252.         HEAP[$left_glyph_addr_i_i] = $61;
  58253.         HEAP[$right_glyph_addr_i_i] = $62;
  58254.         var $this1_i_i = HEAP[$this_addr_i_i];
  58255.         var $call_i_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i_i + 72 | 0] + 68 | 0]]($this1_i_i, HEAP[$this1_i_i + 76 | 0], HEAP[$left_glyph_addr_i_i], HEAP[$right_glyph_addr_i_i], HEAP[HEAP[$this1_i_i + 72 | 0] + 112 | 0]);
  58256.         HEAP[HEAP[$x_addr_i]] = $call_i_i;
  58257.         HEAP[HEAP[$y_addr_i]] = 0;
  58258.       } else {
  58259.         HEAP[HEAP[$x_addr_i]] = 0;
  58260.         var $73 = HEAP[$first_glyph_addr_i];
  58261.         var $74 = HEAP[$second_glyph_addr_i];
  58262.         HEAP[$this_addr_i1_i] = $this1_i2;
  58263.         HEAP[$left_glyph_addr_i2_i] = $73;
  58264.         HEAP[$right_glyph_addr_i3_i] = $74;
  58265.         var $this1_i4_i = HEAP[$this_addr_i1_i];
  58266.         var $call_i10_i = FUNCTION_TABLE[HEAP[HEAP[$this1_i4_i + 72 | 0] + 72 | 0]]($this1_i4_i, HEAP[$this1_i4_i + 76 | 0], HEAP[$left_glyph_addr_i2_i], HEAP[$right_glyph_addr_i3_i], HEAP[HEAP[$this1_i4_i + 72 | 0] + 116 | 0]);
  58267.         HEAP[HEAP[$y_addr_i]] = $call_i10_i;
  58268.       }
  58269.       $kern1 = HEAP[$x_kern] >> 1;
  58270.       $kern2 = HEAP[$x_kern] - $kern1 | 0;
  58271.       var $x_advance = HEAP[$buffer_addr + 104 | 0] + (HEAP[$buffer_addr + 80 | 0] * 20 & -1) | 0;
  58272.       HEAP[$x_advance] = HEAP[$x_advance] + $kern1 | 0;
  58273.       var $x_advance18 = HEAP[$buffer_addr + 104 | 0] + (HEAP[$idx15] * 20 & -1) | 0;
  58274.       HEAP[$x_advance18] = HEAP[$x_advance18] + $kern2 | 0;
  58275.       var $x_offset = HEAP[$buffer_addr + 104 | 0] + (HEAP[$idx20] * 20 & -1) + 8 | 0;
  58276.       HEAP[$x_offset] = HEAP[$x_offset] + $kern2 | 0;
  58277.       $kern1 = HEAP[$y_kern] >> 1;
  58278.       $kern2 = HEAP[$y_kern] - $kern1 | 0;
  58279.       var $y_advance = HEAP[$buffer_addr + 104 | 0] + (HEAP[$buffer_addr + 80 | 0] * 20 & -1) + 4 | 0;
  58280.       HEAP[$y_advance] = HEAP[$y_advance] + $kern1 | 0;
  58281.       var $y_advance33 = HEAP[$buffer_addr + 104 | 0] + (HEAP[$idx30] * 20 & -1) + 4 | 0;
  58282.       HEAP[$y_advance33] = HEAP[$y_advance33] + $kern2 | 0;
  58283.       var $y_offset = HEAP[$buffer_addr + 104 | 0] + (HEAP[$idx35] * 20 & -1) + 12 | 0;
  58284.       HEAP[$y_offset] = HEAP[$y_offset] + $kern2 | 0;
  58285.       HEAP[$buffer_addr + 80 | 0] = HEAP[$idx39];
  58286.     } else {
  58287.       var $idx5 = $buffer_addr + 80 | 0;
  58288.       HEAP[$idx5] = HEAP[$idx5] + 1 | 0;
  58289.     }
  58290.     if (HEAP[$buffer_addr + 80 | 0] >>> 0 >= $count >>> 0) {
  58291.       break;
  58292.     }
  58293.   }
  58294.   STACKTOP = __stackBase__;
  58295.   return;
  58296. }
  58297. function __ZL23hb_ucdn_combining_classP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  58298.   return _ucdn_get_combining_class($unicode);
  58299. }
  58300. function __ZL23hb_ucdn_eastasian_widthP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  58301.   var $w;
  58302.   $w = _ucdn_get_east_asian_width($unicode);
  58303.   if (($w | 0) == 0) {
  58304.     var $3 = 1;
  58305.     var $3;
  58306.     var $cond = $3 ? 2 : 1;
  58307.     return $cond;
  58308.   }
  58309.   var $3 = ($w | 0) == 2;
  58310.   var $3;
  58311.   var $cond = $3 ? 2 : 1;
  58312.   return $cond;
  58313. }
  58314. function __ZL24hb_ucdn_general_categoryP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  58315.   return _ucdn_get_general_category($unicode);
  58316. }
  58317. function __ZL17hb_ucdn_mirroringP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  58318.   return _ucdn_mirror($unicode);
  58319. }
  58320. function __ZL14hb_ucdn_scriptP18hb_unicode_funcs_tjPv($ufuncs, $unicode, $user_data) {
  58321.   var $arrayidx = (_ucdn_get_script($unicode) << 2) + 131160 | 0;
  58322.   return HEAP[$arrayidx];
  58323. }
  58324. function __ZL15hb_ucdn_composeP18hb_unicode_funcs_tjjPjPv($ufuncs, $a, $b, $ab, $user_data) {
  58325.   return _ucdn_compose($ab, $a, $b);
  58326. }
  58327. function __ZL17hb_ucdn_decomposeP18hb_unicode_funcs_tjPjS1_Pv($ufuncs, $ab, $a, $b, $user_data) {
  58328.   return _ucdn_decompose($ab, $a, $b);
  58329. }
  58330. function _ucdn_get_mirrored($code) {
  58331.   var __stackBase__ = STACKTOP;
  58332.   STACKTOP = STACKTOP + 12 | 0;
  58333.   var $code_addr_i = __stackBase__;
  58334.   var $index_i = __stackBase__ + 4;
  58335.   var $offset_i = __stackBase__ + 8;
  58336.   HEAP[$code_addr_i] = $code;
  58337.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58338.     HEAP[$index_i] = 0;
  58339.     var $15 = HEAP[$index_i];
  58340.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58341.     var $16 = $code_addr_i;
  58342.     var $17 = $index_i;
  58343.     var $18 = $offset_i;
  58344.     var $mirrored = $arrayidx9_i + 3 | 0;
  58345.     var $19 = HEAP[$mirrored];
  58346.     var $conv = $19 & 255;
  58347.     STACKTOP = __stackBase__;
  58348.     return $conv;
  58349.   } else {
  58350.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58351.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58352.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58353.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58354.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58355.     var $15 = HEAP[$index_i];
  58356.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58357.     var $16 = $code_addr_i;
  58358.     var $17 = $index_i;
  58359.     var $18 = $offset_i;
  58360.     var $mirrored = $arrayidx9_i + 3 | 0;
  58361.     var $19 = HEAP[$mirrored];
  58362.     var $conv = $19 & 255;
  58363.     STACKTOP = __stackBase__;
  58364.     return $conv;
  58365.   }
  58366. }
  58367. function _ucdn_get_script($code) {
  58368.   var __stackBase__ = STACKTOP;
  58369.   STACKTOP = STACKTOP + 12 | 0;
  58370.   var $code_addr_i = __stackBase__;
  58371.   var $index_i = __stackBase__ + 4;
  58372.   var $offset_i = __stackBase__ + 8;
  58373.   HEAP[$code_addr_i] = $code;
  58374.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58375.     HEAP[$index_i] = 0;
  58376.     var $15 = HEAP[$index_i];
  58377.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58378.     var $16 = $code_addr_i;
  58379.     var $17 = $index_i;
  58380.     var $18 = $offset_i;
  58381.     var $script = $arrayidx9_i + 6 | 0;
  58382.     var $19 = HEAP[$script];
  58383.     var $conv = $19 & 255;
  58384.     STACKTOP = __stackBase__;
  58385.     return $conv;
  58386.   } else {
  58387.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58388.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58389.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58390.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58391.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58392.     var $15 = HEAP[$index_i];
  58393.     var $arrayidx9_i = ($15 * 7 & -1) + 8 | 0;
  58394.     var $16 = $code_addr_i;
  58395.     var $17 = $index_i;
  58396.     var $18 = $offset_i;
  58397.     var $script = $arrayidx9_i + 6 | 0;
  58398.     var $19 = HEAP[$script];
  58399.     var $conv = $19 & 255;
  58400.     STACKTOP = __stackBase__;
  58401.     return $conv;
  58402.   }
  58403. }
  58404. function _compare_mp($a, $b) {
  58405.   return (HEAP[$a | 0] & 65535) - (HEAP[$b | 0] & 65535) | 0;
  58406. }
  58407. function _ucdn_decompose($code, $a, $b) {
  58408.   var __stackBase__ = STACKTOP;
  58409.   STACKTOP = STACKTOP + 60 | 0;
  58410.   var $code_addr_i25 = __stackBase__;
  58411.   var $index_i = __stackBase__ + 4;
  58412.   var $offset_i = __stackBase__ + 8;
  58413.   var $retval_i6 = __stackBase__ + 12;
  58414.   var $code_ptr_addr_i7 = __stackBase__ + 16;
  58415.   var $code_i8 = __stackBase__ + 20;
  58416.   var $retval_i1 = __stackBase__ + 24;
  58417.   var $code_ptr_addr_i = __stackBase__ + 28;
  58418.   var $code_i = __stackBase__ + 32;
  58419.   var $retval_i = __stackBase__ + 36;
  58420.   var $code_addr_i = __stackBase__ + 40;
  58421.   var $a_addr_i = __stackBase__ + 44;
  58422.   var $b_addr_i = __stackBase__ + 48;
  58423.   var $si_i = __stackBase__ + 52;
  58424.   var $retval;
  58425.   var $code_addr;
  58426.   var $a_addr;
  58427.   var $b_addr;
  58428.   var $rec = __stackBase__ + 56;
  58429.   var $len;
  58430.   $code_addr = $code;
  58431.   $a_addr = $a;
  58432.   $b_addr = $b;
  58433.   HEAP[$code_addr_i] = $code_addr;
  58434.   HEAP[$a_addr_i] = $a_addr;
  58435.   HEAP[$b_addr_i] = $b_addr;
  58436.   HEAP[$si_i] = HEAP[$code_addr_i] - 44032 | 0;
  58437.   do {
  58438.     if ((HEAP[$si_i] | 0) < 0 | (HEAP[$si_i] | 0) >= 11172) {
  58439.       HEAP[$retval_i] = 0;
  58440.       var $19 = 0;
  58441.     } else {
  58442.       var $12 = HEAP[$si_i];
  58443.       if (((HEAP[$si_i] | 0) % 28 | 0) != 0) {
  58444.         HEAP[HEAP[$a_addr_i]] = ((($12 | 0) / 28 & -1) * 28 & -1) + 44032 | 0;
  58445.         HEAP[HEAP[$b_addr_i]] = (HEAP[$si_i] | 0) % 28 + 4519 | 0;
  58446.         HEAP[$retval_i] = 3;
  58447.         var $19 = 3;
  58448.         break;
  58449.       } else {
  58450.         HEAP[HEAP[$a_addr_i]] = (($12 | 0) / 588 & -1) + 4352 | 0;
  58451.         HEAP[HEAP[$b_addr_i]] = (((HEAP[$si_i] | 0) % 588 | 0) / 28 & -1) + 4449 | 0;
  58452.         HEAP[$retval_i] = 2;
  58453.         var $19 = 2;
  58454.         break;
  58455.       }
  58456.     }
  58457.   } while (0);
  58458.   var $19;
  58459.   if (($19 | 0) != 0) {
  58460.     $retval = 1;
  58461.     var $92 = $retval;
  58462.     STACKTOP = __stackBase__;
  58463.     return $92;
  58464.   }
  58465.   HEAP[$code_addr_i25] = $code_addr;
  58466.   if (HEAP[$code_addr_i25] >>> 0 >= 1114112) {
  58467.     HEAP[$index_i] = 0;
  58468.   } else {
  58469.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i25] >>> 10) + 56984 | 0] & 255) << 6;
  58470.     HEAP[$offset_i] = HEAP[$code_addr_i25] >>> 4 & 63;
  58471.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 54168 | 0] & 65535) << 4;
  58472.     HEAP[$offset_i] = HEAP[$code_addr_i25] & 15;
  58473.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 39032 | 0] & 65535;
  58474.   }
  58475.   HEAP[$rec] = (HEAP[$index_i] << 1) + 58072 | 0;
  58476.   $len = (HEAP[HEAP[$rec] | 0] & 65535) >> 8;
  58477.   do {
  58478.     if ((HEAP[HEAP[$rec] | 0] & 255 | 0) == 0) {
  58479.       if (($len | 0) == 0) {
  58480.         break;
  58481.       }
  58482.       HEAP[$rec] = HEAP[$rec] + 2 | 0;
  58483.       HEAP[$code_ptr_addr_i7] = $rec;
  58484.       HEAP[$code_i8] = HEAP[HEAP[$code_ptr_addr_i7]];
  58485.       var $57 = HEAP[$code_ptr_addr_i7];
  58486.       var $58 = HEAP[$57];
  58487.       if ((HEAP[HEAP[$code_i8]] & 55296 | 0) != 55296) {
  58488.         HEAP[$57] = $58 + 2 | 0;
  58489.         HEAP[$retval_i6] = HEAP[HEAP[$code_i8]] & 65535;
  58490.       } else {
  58491.         HEAP[$57] = $58 + 4 | 0;
  58492.         HEAP[$retval_i6] = ((HEAP[HEAP[$code_i8]] & 65535) - 55296 << 10) + (HEAP[HEAP[$code_i8] + 2 | 0] & 65535) + 9216 | 0;
  58493.       }
  58494.       HEAP[$a_addr] = HEAP[$retval_i6];
  58495.       if (($len | 0) > 1) {
  58496.         HEAP[$code_ptr_addr_i] = $rec;
  58497.         HEAP[$code_i] = HEAP[HEAP[$code_ptr_addr_i]];
  58498.         var $78 = HEAP[$code_ptr_addr_i];
  58499.         var $79 = HEAP[$78];
  58500.         if ((HEAP[HEAP[$code_i]] & 55296 | 0) != 55296) {
  58501.           HEAP[$78] = $79 + 2 | 0;
  58502.           HEAP[$retval_i1] = HEAP[HEAP[$code_i]] & 65535;
  58503.         } else {
  58504.           HEAP[$78] = $79 + 4 | 0;
  58505.           HEAP[$retval_i1] = ((HEAP[HEAP[$code_i]] & 65535) - 55296 << 10) + (HEAP[HEAP[$code_i] + 2 | 0] & 65535) + 9216 | 0;
  58506.         }
  58507.         HEAP[$b_addr] = HEAP[$retval_i1];
  58508.       } else {
  58509.         HEAP[$b_addr] = 0;
  58510.       }
  58511.       $retval = 1;
  58512.       var $92 = $retval;
  58513.       STACKTOP = __stackBase__;
  58514.       return $92;
  58515.     }
  58516.   } while (0);
  58517.   $retval = 0;
  58518.   var $92 = $retval;
  58519.   STACKTOP = __stackBase__;
  58520.   return $92;
  58521. }
  58522. function _get_comp_index($code, $idx) {
  58523.   var label = 0;
  58524.   var $retval;
  58525.   var $code_addr;
  58526.   var $idx_addr;
  58527.   var $i;
  58528.   var $cur;
  58529.   $code_addr = $code;
  58530.   $idx_addr = $idx;
  58531.   $i = 0;
  58532.   L2644 : do {
  58533.     if ((HEAP[($i << 3) + $idx_addr | 0] | 0) != 0) {
  58534.       while (1) {
  58535.         $cur = ($i << 3) + $idx_addr | 0;
  58536.         if ($code_addr >>> 0 < HEAP[$cur | 0] >>> 0) {
  58537.           label = 1962;
  58538.           break;
  58539.         }
  58540.         if ($code_addr >>> 0 <= ((HEAP[$cur + 4 | 0] << 16 >> 16) + HEAP[$cur | 0] | 0) >>> 0) {
  58541.           label = 1964;
  58542.           break;
  58543.         }
  58544.         $i = $i + 1 | 0;
  58545.         if ((HEAP[($i << 3) + $idx_addr | 0] | 0) == 0) {
  58546.           break L2644;
  58547.         }
  58548.       }
  58549.       if (label == 1962) {
  58550.         $retval = -1;
  58551.         var $22 = $retval;
  58552.         return $22;
  58553.       } else if (label == 1964) {
  58554.         $retval = (HEAP[$cur + 6 | 0] << 16 >> 16) + $code_addr + -HEAP[$cur | 0] | 0;
  58555.         var $22 = $retval;
  58556.         return $22;
  58557.       }
  58558.     }
  58559.   } while (0);
  58560.   $retval = -1;
  58561.   var $22 = $retval;
  58562.   return $22;
  58563. }
  58564. function _ucdn_mirror($code) {
  58565.   var __stackBase__ = STACKTOP;
  58566.   STACKTOP = STACKTOP + 16 | 0;
  58567.   var $code_addr_i = __stackBase__;
  58568.   var $index_i = __stackBase__ + 4;
  58569.   var $offset_i = __stackBase__ + 8;
  58570.   var $retval;
  58571.   var $code_addr;
  58572.   var $mp = __stackBase__ + 12;
  58573.   var $res;
  58574.   $code_addr = $code;
  58575.   var $0 = $mp;
  58576.   HEAP[$0] = 0;
  58577.   HEAP[$0 + 1] = 0;
  58578.   HEAP[$0 + 2] = 0;
  58579.   HEAP[$0 + 3] = 0;
  58580.   HEAP[$code_addr_i] = $code_addr;
  58581.   if (HEAP[$code_addr_i] >>> 0 >= 1114112) {
  58582.     HEAP[$index_i] = 0;
  58583.   } else {
  58584.     HEAP[$index_i] = (HEAP[(HEAP[$code_addr_i] >>> 8) + 34680 | 0] & 255) << 5;
  58585.     HEAP[$offset_i] = HEAP[$code_addr_i] >>> 3 & 31;
  58586.     HEAP[$index_i] = (HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 26232 | 0] & 65535) << 3;
  58587.     HEAP[$offset_i] = HEAP[$code_addr_i] & 7;
  58588.     HEAP[$index_i] = HEAP[(HEAP[$offset_i] + HEAP[$index_i] << 1) + 8312 | 0] & 65535;
  58589.   }
  58590.   var $21 = $code_addr;
  58591.   if ((HEAP[(HEAP[$index_i] * 7 & -1) + 11 | 0] & 255 | 0) == 0) {
  58592.     $retval = $21;
  58593.     var $28 = $retval;
  58594.     STACKTOP = __stackBase__;
  58595.     return $28;
  58596.   }
  58597.   HEAP[$mp | 0] = $21 & 65535;
  58598.   $res = _bsearch($mp, 6856, 364, 4, 156);
  58599.   if (($res | 0) == 0) {
  58600.     $retval = $code_addr;
  58601.     var $28 = $retval;
  58602.     STACKTOP = __stackBase__;
  58603.     return $28;
  58604.   } else {
  58605.     $retval = HEAP[$res + 2 | 0] & 65535;
  58606.     var $28 = $retval;
  58607.     STACKTOP = __stackBase__;
  58608.     return $28;
  58609.   }
  58610. }
  58611. function _ucdn_compose($code, $a, $b) {
  58612.   var __stackBase__ = STACKTOP;
  58613.   STACKTOP = STACKTOP + 24 | 0;
  58614.   var $retval_i = __stackBase__;
  58615.   var $code_addr_i = __stackBase__ + 4;
  58616.   var $a_addr_i = __stackBase__ + 8;
  58617.   var $b_addr_i = __stackBase__ + 12;
  58618.   var $li_i = __stackBase__ + 16;
  58619.   var $vi_i = __stackBase__ + 20;
  58620.   var $retval;
  58621.   var $code_addr;
  58622.   var $a_addr;
  58623.   var $b_addr;
  58624.   var $l;
  58625.   var $r;
  58626.   var $index;
  58627.   var $indexi;
  58628.   var $offset;
  58629.   $code_addr = $code;
  58630.   $a_addr = $a;
  58631.   $b_addr = $b;
  58632.   HEAP[$code_addr_i] = $code_addr;
  58633.   HEAP[$a_addr_i] = $a_addr;
  58634.   HEAP[$b_addr_i] = $b_addr;
  58635.   L2671 : do {
  58636.     if (HEAP[$b_addr_i] >>> 0 < 4449 | HEAP[$b_addr_i] >>> 0 >= 4547) {
  58637.       HEAP[$retval_i] = 0;
  58638.       var $23 = 0;
  58639.     } else {
  58640.       var $12 = HEAP[$a_addr_i];
  58641.       do {
  58642.         if (HEAP[$a_addr_i] >>> 0 < 4352 | $12 >>> 0 >= 4371) {
  58643.           var $14 = HEAP[$a_addr_i];
  58644.           if (!(HEAP[$a_addr_i] >>> 0 < 44032 | $14 >>> 0 >= 55204)) {
  58645.             var $15 = $14;
  58646.             break;
  58647.           }
  58648.           HEAP[$retval_i] = 0;
  58649.           var $23 = 0;
  58650.           break L2671;
  58651.         } else {
  58652.           var $15 = $12;
  58653.         }
  58654.       } while (0);
  58655.       var $15;
  58656.       var $16 = HEAP[$a_addr_i];
  58657.       if ($15 >>> 0 >= 44032) {
  58658.         HEAP[HEAP[$code_addr_i]] = $16 - 4519 + HEAP[$b_addr_i] | 0;
  58659.         HEAP[$retval_i] = 3;
  58660.         var $23 = 3;
  58661.         break;
  58662.       } else {
  58663.         HEAP[$li_i] = $16 - 4352 | 0;
  58664.         HEAP[$vi_i] = HEAP[$b_addr_i] - 4449 | 0;
  58665.         HEAP[HEAP[$code_addr_i]] = (HEAP[$li_i] * 588 & -1) + (HEAP[$vi_i] * 28 & -1) + 44032 | 0;
  58666.         HEAP[$retval_i] = 2;
  58667.         var $23 = 2;
  58668.         break;
  58669.       }
  58670.     }
  58671.   } while (0);
  58672.   var $23;
  58673.   if (($23 | 0) != 0) {
  58674.     $retval = 1;
  58675.     var $49 = $retval;
  58676.     STACKTOP = __stackBase__;
  58677.     return $49;
  58678.   }
  58679.   $l = _get_comp_index($a_addr, 5168);
  58680.   $r = _get_comp_index($b_addr, 4896);
  58681.   do {
  58682.     if (($l | 0) >= 0) {
  58683.       if (($r | 0) < 0) {
  58684.         break;
  58685.       }
  58686.       $indexi = ($l * 56 & -1) + $r | 0;
  58687.       $index = (HEAP[($indexi >> 3 << 1) + 91152 | 0] & 65535) << 2;
  58688.       $offset = $indexi >> 1 & 3;
  58689.       $index = (HEAP[($offset + $index << 1) + 86800 | 0] & 65535) << 1;
  58690.       $offset = $indexi & 1;
  58691.       HEAP[$code_addr] = HEAP[($offset + $index << 2) + 96360 | 0];
  58692.       $retval = (HEAP[$code_addr] | 0) != 0 & 1;
  58693.       var $49 = $retval;
  58694.       STACKTOP = __stackBase__;
  58695.       return $49;
  58696.     }
  58697.   } while (0);
  58698.   $retval = 0;
  58699.   var $49 = $retval;
  58700.   STACKTOP = __stackBase__;
  58701.   return $49;
  58702. }
  58703. function _malloc($bytes) {
  58704.   var label = 0;
  58705.   var __stackBase__ = STACKTOP;
  58706.   STACKTOP = STACKTOP + 776 | 0;
  58707.   var $m_addr_i116_i = __stackBase__;
  58708.   var $p_addr_i117_i = __stackBase__ + 4;
  58709.   var $psize_addr_i118_i = __stackBase__ + 8;
  58710.   var $offset_i119_i = __stackBase__ + 12;
  58711.   var $m_addr_i55_i = __stackBase__ + 16;
  58712.   var $newbase_addr_i_i = __stackBase__ + 20;
  58713.   var $oldbase_addr_i_i = __stackBase__ + 24;
  58714.   var $nb_addr_i_i = __stackBase__ + 28;
  58715.   var $p_i56_i = __stackBase__ + 32;
  58716.   var $oldfirst_i_i = __stackBase__ + 36;
  58717.   var $psize_i57_i = __stackBase__ + 40;
  58718.   var $q_i58_i = __stackBase__ + 44;
  58719.   var $qsize_i_i = __stackBase__ + 48;
  58720.   var $tsize_i_i = __stackBase__ + 52;
  58721.   var $dsize_i_i = __stackBase__ + 56;
  58722.   var $nsize_i_i = __stackBase__ + 60;
  58723.   var $F_i59_i = __stackBase__ + 64;
  58724.   var $B_i60_i = __stackBase__ + 68;
  58725.   var $I_i61_i = __stackBase__ + 72;
  58726.   var $TP_i62_i = __stackBase__ + 76;
  58727.   var $XP_i_i = __stackBase__ + 80;
  58728.   var $R_i_i = __stackBase__ + 84;
  58729.   var $F77_i_i = __stackBase__ + 88;
  58730.   var $RP_i_i = __stackBase__ + 92;
  58731.   var $CP_i_i = __stackBase__ + 96;
  58732.   var $H_i63_i = __stackBase__ + 100;
  58733.   var $C0_i_i = __stackBase__ + 104;
  58734.   var $C1_i_i = __stackBase__ + 108;
  58735.   var $I218_i_i = __stackBase__ + 112;
  58736.   var $B220_i_i = __stackBase__ + 116;
  58737.   var $F224_i_i = __stackBase__ + 120;
  58738.   var $TP250_i_i = __stackBase__ + 124;
  58739.   var $H251_i_i = __stackBase__ + 128;
  58740.   var $I252_i_i = __stackBase__ + 132;
  58741.   var $X_i64_i = __stackBase__ + 136;
  58742.   var $Y_i65_i = __stackBase__ + 140;
  58743.   var $N_i66_i = __stackBase__ + 144;
  58744.   var $K_i67_i = __stackBase__ + 148;
  58745.   var $T_i68_i = __stackBase__ + 152;
  58746.   var $K305_i_i = __stackBase__ + 156;
  58747.   var $C_i69_i = __stackBase__ + 160;
  58748.   var $F343_i_i = __stackBase__ + 164;
  58749.   var $m_addr_i31_i = __stackBase__ + 168;
  58750.   var $p_addr_i32_i = __stackBase__ + 172;
  58751.   var $psize_addr_i33_i = __stackBase__ + 176;
  58752.   var $offset_i34_i = __stackBase__ + 180;
  58753.   var $m_addr_i19_i = __stackBase__ + 184;
  58754.   var $p_addr_i_i = __stackBase__ + 188;
  58755.   var $psize_addr_i_i = __stackBase__ + 192;
  58756.   var $offset_i20_i = __stackBase__ + 196;
  58757.   var $m_addr_i10_i = __stackBase__ + 200;
  58758.   var $i_i_i = __stackBase__ + 204;
  58759.   var $bin_i_i = __stackBase__ + 208;
  58760.   var $m_addr_i1_i_i = __stackBase__ + 212;
  58761.   var $p_addr_i_i_i = __stackBase__ + 216;
  58762.   var $psize_addr_i_i_i = __stackBase__ + 220;
  58763.   var $offset_i_i_i = __stackBase__ + 224;
  58764.   var $retval_i_i_i = __stackBase__ + 228;
  58765.   var $m_addr_i_i_i = __stackBase__ + 232;
  58766.   var $addr_addr_i_i_i = __stackBase__ + 236;
  58767.   var $sp_i_i_i = __stackBase__ + 240;
  58768.   var $m_addr_i1_i = __stackBase__ + 244;
  58769.   var $tbase_addr_i_i = __stackBase__ + 248;
  58770.   var $tsize_addr_i_i = __stackBase__ + 252;
  58771.   var $mmapped_addr_i_i = __stackBase__ + 256;
  58772.   var $old_top_i_i = __stackBase__ + 260;
  58773.   var $oldsp_i_i = __stackBase__ + 264;
  58774.   var $old_end_i_i = __stackBase__ + 268;
  58775.   var $ssize_i_i = __stackBase__ + 272;
  58776.   var $rawsp_i_i = __stackBase__ + 276;
  58777.   var $offset_i_i = __stackBase__ + 280;
  58778.   var $asp_i_i = __stackBase__ + 284;
  58779.   var $csp_i_i = __stackBase__ + 288;
  58780.   var $sp_i2_i = __stackBase__ + 292;
  58781.   var $ss_i_i = __stackBase__ + 296;
  58782.   var $tnext_i_i = __stackBase__ + 300;
  58783.   var $p_i_i = __stackBase__ + 304;
  58784.   var $nfences_i_i = __stackBase__ + 308;
  58785.   var $nextp_i_i = __stackBase__ + 312;
  58786.   var $q_i_i = __stackBase__ + 316;
  58787.   var $psize_i_i = __stackBase__ + 320;
  58788.   var $tn_i_i = __stackBase__ + 324;
  58789.   var $I_i_i = __stackBase__ + 328;
  58790.   var $B_i_i = __stackBase__ + 332;
  58791.   var $F_i_i = __stackBase__ + 336;
  58792.   var $TP_i_i = __stackBase__ + 340;
  58793.   var $H_i_i = __stackBase__ + 344;
  58794.   var $I57_i_i = __stackBase__ + 348;
  58795.   var $X_i_i = __stackBase__ + 352;
  58796.   var $Y_i_i = __stackBase__ + 356;
  58797.   var $N_i_i = __stackBase__ + 360;
  58798.   var $K_i_i = __stackBase__ + 364;
  58799.   var $T_i_i = __stackBase__ + 368;
  58800.   var $K105_i_i = __stackBase__ + 372;
  58801.   var $C_i_i = __stackBase__ + 376;
  58802.   var $F144_i_i = __stackBase__ + 380;
  58803.   var $retval_i_i = __stackBase__ + 384;
  58804.   var $m_addr_i_i = __stackBase__ + 388;
  58805.   var $addr_addr_i_i = __stackBase__ + 392;
  58806.   var $sp_i_i = __stackBase__ + 396;
  58807.   var $retval_i72 = __stackBase__ + 400;
  58808.   var $m_addr_i73 = __stackBase__ + 404;
  58809.   var $nb_addr_i74 = __stackBase__ + 408;
  58810.   var $tbase_i = __stackBase__ + 412;
  58811.   var $tsize_i = __stackBase__ + 416;
  58812.   var $mmap_flag_i = __stackBase__ + 420;
  58813.   var $asize_i = __stackBase__ + 424;
  58814.   var $fp_i = __stackBase__ + 428;
  58815.   var $br_i = __stackBase__ + 432;
  58816.   var $ssize_i = __stackBase__ + 436;
  58817.   var $ss_i = __stackBase__ + 440;
  58818.   var $base_i = __stackBase__ + 444;
  58819.   var $fp37_i = __stackBase__ + 448;
  58820.   var $esize_i = __stackBase__ + 452;
  58821.   var $end_i = __stackBase__ + 456;
  58822.   var $br126_i = __stackBase__ + 460;
  58823.   var $end127_i = __stackBase__ + 464;
  58824.   var $ssize136_i = __stackBase__ + 468;
  58825.   var $mn_i = __stackBase__ + 472;
  58826.   var $sp_i = __stackBase__ + 476;
  58827.   var $oldbase_i = __stackBase__ + 480;
  58828.   var $rsize_i75 = __stackBase__ + 484;
  58829.   var $p_i = __stackBase__ + 488;
  58830.   var $r_i76 = __stackBase__ + 492;
  58831.   var $retval_i = __stackBase__ + 496;
  58832.   var $m_addr_i1 = __stackBase__ + 500;
  58833.   var $nb_addr_i2 = __stackBase__ + 504;
  58834.   var $v_i3 = __stackBase__ + 508;
  58835.   var $rsize_i4 = __stackBase__ + 512;
  58836.   var $t_i5 = __stackBase__ + 516;
  58837.   var $idx_i = __stackBase__ + 520;
  58838.   var $X_i = __stackBase__ + 524;
  58839.   var $Y_i6 = __stackBase__ + 528;
  58840.   var $N_i7 = __stackBase__ + 532;
  58841.   var $K_i8 = __stackBase__ + 536;
  58842.   var $sizebits_i = __stackBase__ + 540;
  58843.   var $rst_i = __stackBase__ + 544;
  58844.   var $rt_i = __stackBase__ + 548;
  58845.   var $trem_i9 = __stackBase__ + 552;
  58846.   var $leftbits_i = __stackBase__ + 556;
  58847.   var $i_i10 = __stackBase__ + 560;
  58848.   var $leastbit_i11 = __stackBase__ + 564;
  58849.   var $Y68_i = __stackBase__ + 568;
  58850.   var $K70_i = __stackBase__ + 572;
  58851.   var $N73_i = __stackBase__ + 576;
  58852.   var $trem97_i = __stackBase__ + 580;
  58853.   var $r_i12 = __stackBase__ + 584;
  58854.   var $XP_i13 = __stackBase__ + 588;
  58855.   var $R_i14 = __stackBase__ + 592;
  58856.   var $F_i15 = __stackBase__ + 596;
  58857.   var $RP_i16 = __stackBase__ + 600;
  58858.   var $CP_i17 = __stackBase__ + 604;
  58859.   var $H_i18 = __stackBase__ + 608;
  58860.   var $C0_i19 = __stackBase__ + 612;
  58861.   var $C1_i20 = __stackBase__ + 616;
  58862.   var $I_i21 = __stackBase__ + 620;
  58863.   var $B_i22 = __stackBase__ + 624;
  58864.   var $F289_i = __stackBase__ + 628;
  58865.   var $TP_i = __stackBase__ + 632;
  58866.   var $H314_i = __stackBase__ + 636;
  58867.   var $I315_i = __stackBase__ + 640;
  58868.   var $X316_i = __stackBase__ + 644;
  58869.   var $Y326_i = __stackBase__ + 648;
  58870.   var $N327_i = __stackBase__ + 652;
  58871.   var $K331_i = __stackBase__ + 656;
  58872.   var $T_i = __stackBase__ + 660;
  58873.   var $K372_i = __stackBase__ + 664;
  58874.   var $C_i = __stackBase__ + 668;
  58875.   var $F411_i = __stackBase__ + 672;
  58876.   var $m_addr_i = __stackBase__ + 676;
  58877.   var $nb_addr_i = __stackBase__ + 680;
  58878.   var $t_i = __stackBase__ + 684;
  58879.   var $v_i = __stackBase__ + 688;
  58880.   var $rsize_i = __stackBase__ + 692;
  58881.   var $i_i = __stackBase__ + 696;
  58882.   var $leastbit_i = __stackBase__ + 700;
  58883.   var $Y_i = __stackBase__ + 704;
  58884.   var $K_i = __stackBase__ + 708;
  58885.   var $N_i = __stackBase__ + 712;
  58886.   var $trem_i = __stackBase__ + 716;
  58887.   var $r_i = __stackBase__ + 720;
  58888.   var $XP_i = __stackBase__ + 724;
  58889.   var $R_i = __stackBase__ + 728;
  58890.   var $F_i = __stackBase__ + 732;
  58891.   var $RP_i = __stackBase__ + 736;
  58892.   var $CP_i = __stackBase__ + 740;
  58893.   var $H_i = __stackBase__ + 744;
  58894.   var $C0_i = __stackBase__ + 748;
  58895.   var $C1_i = __stackBase__ + 752;
  58896.   var $DVS_i = __stackBase__ + 756;
  58897.   var $DV_i = __stackBase__ + 760;
  58898.   var $I_i = __stackBase__ + 764;
  58899.   var $B_i = __stackBase__ + 768;
  58900.   var $F197_i = __stackBase__ + 772;
  58901.   var $bytes_addr;
  58902.   var $mem;
  58903.   var $nb;
  58904.   var $idx;
  58905.   var $smallbits;
  58906.   var $b;
  58907.   var $p;
  58908.   var $F;
  58909.   var $b33;
  58910.   var $p34;
  58911.   var $r;
  58912.   var $rsize;
  58913.   var $i;
  58914.   var $leftbits;
  58915.   var $Y;
  58916.   var $K;
  58917.   var $N;
  58918.   var $F68;
  58919.   var $DV;
  58920.   var $I;
  58921.   var $B;
  58922.   var $F104;
  58923.   var $rsize158;
  58924.   var $p160;
  58925.   var $r164;
  58926.   var $dvs;
  58927.   var $p188;
  58928.   $bytes_addr = $bytes;
  58929.   var $1 = $bytes_addr;
  58930.   do {
  58931.     if ($bytes_addr >>> 0 <= 244) {
  58932.       if ($1 >>> 0 < 11) {
  58933.         var $cond = 16;
  58934.       } else {
  58935.         var $cond = $bytes_addr + 11 & -8;
  58936.       }
  58937.       var $cond;
  58938.       $nb = $cond;
  58939.       $idx = $nb >>> 3;
  58940.       $smallbits = HEAP[104984] >>> ($idx >>> 0);
  58941.       if (($smallbits & 3 | 0) != 0) {
  58942.         $idx = $idx + (($smallbits ^ -1) & 1) | 0;
  58943.         $b = ($idx << 3) + 105024 | 0;
  58944.         $p = HEAP[$b + 8 | 0];
  58945.         $F = HEAP[$p + 8 | 0];
  58946.         do {
  58947.           if (($b | 0) == ($F | 0)) {
  58948.             HEAP[104984] = HEAP[104984] & (1 << $idx ^ -1);
  58949.           } else {
  58950.             if ($F >>> 0 >= HEAP[105e3] >>> 0) {
  58951.               var $26 = (HEAP[$F + 12 | 0] | 0) == ($p | 0);
  58952.             } else {
  58953.               var $26 = 0;
  58954.             }
  58955.             var $26;
  58956.             if (($26 & 1 | 0) != 0) {
  58957.               HEAP[$F + 12 | 0] = $b;
  58958.               HEAP[$b + 8 | 0] = $F;
  58959.               break;
  58960.             } else {
  58961.               _abort();
  58962.             }
  58963.           }
  58964.         } while (0);
  58965.         HEAP[$p + 4 | 0] = $idx << 3 | 3;
  58966.         var $head25 = ($idx << 3) + $p + 4 | 0;
  58967.         HEAP[$head25] = HEAP[$head25] | 1;
  58968.         $mem = $p + 8 | 0;
  58969.         var $1985 = $mem;
  58970.         STACKTOP = __stackBase__;
  58971.         return $1985;
  58972.       }
  58973.       if ($nb >>> 0 <= HEAP[104992] >>> 0) {
  58974.         break;
  58975.       }
  58976.       if (($smallbits | 0) != 0) {
  58977.         $leftbits = (-(1 << $idx << 1) | 1 << $idx << 1) & $smallbits << $idx;
  58978.         $Y = (-$leftbits & $leftbits) - 1 | 0;
  58979.         $K = $Y >>> 12 & 16;
  58980.         $N = $K;
  58981.         $Y = $Y >>> ($K >>> 0);
  58982.         var $and49 = $Y >>> 5 & 8;
  58983.         $K = $and49;
  58984.         $N = $and49 + $N | 0;
  58985.         $Y = $Y >>> ($K >>> 0);
  58986.         var $and53 = $Y >>> 2 & 4;
  58987.         $K = $and53;
  58988.         $N = $and53 + $N | 0;
  58989.         $Y = $Y >>> ($K >>> 0);
  58990.         var $and57 = $Y >>> 1 & 2;
  58991.         $K = $and57;
  58992.         $N = $and57 + $N | 0;
  58993.         $Y = $Y >>> ($K >>> 0);
  58994.         var $and61 = $Y >>> 1 & 1;
  58995.         $K = $and61;
  58996.         $N = $and61 + $N | 0;
  58997.         $Y = $Y >>> ($K >>> 0);
  58998.         $i = $Y + $N | 0;
  58999.         $b33 = ($i << 3) + 105024 | 0;
  59000.         $p34 = HEAP[$b33 + 8 | 0];
  59001.         $F68 = HEAP[$p34 + 8 | 0];
  59002.         do {
  59003.           if (($b33 | 0) == ($F68 | 0)) {
  59004.             HEAP[104984] = HEAP[104984] & (1 << $i ^ -1);
  59005.           } else {
  59006.             if ($F68 >>> 0 >= HEAP[105e3] >>> 0) {
  59007.               var $89 = (HEAP[$F68 + 12 | 0] | 0) == ($p34 | 0);
  59008.             } else {
  59009.               var $89 = 0;
  59010.             }
  59011.             var $89;
  59012.             if (($89 & 1 | 0) != 0) {
  59013.               HEAP[$F68 + 12 | 0] = $b33;
  59014.               HEAP[$b33 + 8 | 0] = $F68;
  59015.               break;
  59016.             } else {
  59017.               _abort();
  59018.             }
  59019.           }
  59020.         } while (0);
  59021.         $rsize = ($i << 3) - $nb | 0;
  59022.         HEAP[$p34 + 4 | 0] = $nb | 3;
  59023.         $r = $p34 + $nb | 0;
  59024.         HEAP[$r + 4 | 0] = $rsize | 1;
  59025.         HEAP[$r + $rsize | 0] = $rsize;
  59026.         var $109 = HEAP[104992];
  59027.         if (($109 | 0) != 0) {
  59028.           $DV = HEAP[105004];
  59029.           $I = $109 >>> 3;
  59030.           $B = ($I << 3) + 105024 | 0;
  59031.           $F104 = $B;
  59032.           do {
  59033.             if ((1 << $I & HEAP[104984] | 0) != 0) {
  59034.               if ((HEAP[$B + 8 | 0] >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  59035.                 $F104 = HEAP[$B + 8 | 0];
  59036.                 break;
  59037.               } else {
  59038.                 _abort();
  59039.               }
  59040.             } else {
  59041.               HEAP[104984] = HEAP[104984] | 1 << $I;
  59042.             }
  59043.           } while (0);
  59044.           HEAP[$B + 8 | 0] = $DV;
  59045.           HEAP[$F104 + 12 | 0] = $DV;
  59046.           HEAP[$DV + 8 | 0] = $F104;
  59047.           HEAP[$DV + 12 | 0] = $B;
  59048.         }
  59049.         HEAP[104992] = $rsize;
  59050.         HEAP[105004] = $r;
  59051.         $mem = $p34 + 8 | 0;
  59052.         var $1985 = $mem;
  59053.         STACKTOP = __stackBase__;
  59054.         return $1985;
  59055.       }
  59056.       if ((HEAP[104988] | 0) == 0) {
  59057.         break;
  59058.       }
  59059.       HEAP[$m_addr_i] = 104984;
  59060.       HEAP[$nb_addr_i] = $nb;
  59061.       HEAP[$leastbit_i] = -HEAP[HEAP[$m_addr_i] + 4 | 0] & HEAP[HEAP[$m_addr_i] + 4 | 0];
  59062.       HEAP[$Y_i] = HEAP[$leastbit_i] - 1 | 0;
  59063.       HEAP[$K_i] = HEAP[$Y_i] >>> 12 & 16;
  59064.       HEAP[$N_i] = HEAP[$K_i];
  59065.       HEAP[$Y_i] = HEAP[$Y_i] >>> (HEAP[$K_i] >>> 0);
  59066.       var $and6_i = HEAP[$Y_i] >>> 5 & 8;
  59067.       HEAP[$K_i] = $and6_i;
  59068.       HEAP[$N_i] = $and6_i + HEAP[$N_i] | 0;
  59069.       HEAP[$Y_i] = HEAP[$Y_i] >>> (HEAP[$K_i] >>> 0);
  59070.       var $and9_i = HEAP[$Y_i] >>> 2 & 4;
  59071.       HEAP[$K_i] = $and9_i;
  59072.       HEAP[$N_i] = $and9_i + HEAP[$N_i] | 0;
  59073.       HEAP[$Y_i] = HEAP[$Y_i] >>> (HEAP[$K_i] >>> 0);
  59074.       var $and13_i = HEAP[$Y_i] >>> 1 & 2;
  59075.       HEAP[$K_i] = $and13_i;
  59076.       HEAP[$N_i] = $and13_i + HEAP[$N_i] | 0;
  59077.       HEAP[$Y_i] = HEAP[$Y_i] >>> (HEAP[$K_i] >>> 0);
  59078.       var $and17_i = HEAP[$Y_i] >>> 1 & 1;
  59079.       HEAP[$K_i] = $and17_i;
  59080.       HEAP[$N_i] = $and17_i + HEAP[$N_i] | 0;
  59081.       HEAP[$Y_i] = HEAP[$Y_i] >>> (HEAP[$K_i] >>> 0);
  59082.       HEAP[$i_i] = HEAP[$Y_i] + HEAP[$N_i] | 0;
  59083.       var $194 = HEAP[(HEAP[$i_i] << 2) + HEAP[$m_addr_i] + 304 | 0];
  59084.       HEAP[$t_i] = $194;
  59085.       HEAP[$v_i] = $194;
  59086.       HEAP[$rsize_i] = (HEAP[HEAP[$t_i] + 4 | 0] & -8) - HEAP[$nb_addr_i] | 0;
  59087.       while (1) {
  59088.         var $child24_i = HEAP[$t_i] + 16 | 0;
  59089.         if ((HEAP[HEAP[$t_i] + 16 | 0] | 0) != 0) {
  59090.           var $cond_i = HEAP[$child24_i | 0];
  59091.         } else {
  59092.           var $cond_i = HEAP[$child24_i + 4 | 0];
  59093.         }
  59094.         var $cond_i;
  59095.         HEAP[$t_i] = $cond_i;
  59096.         if (($cond_i | 0) == 0) {
  59097.           break;
  59098.         }
  59099.         HEAP[$trem_i] = (HEAP[HEAP[$t_i] + 4 | 0] & -8) - HEAP[$nb_addr_i] | 0;
  59100.         if (HEAP[$trem_i] >>> 0 >= HEAP[$rsize_i] >>> 0) {
  59101.           continue;
  59102.         }
  59103.         HEAP[$rsize_i] = HEAP[$trem_i];
  59104.         HEAP[$v_i] = HEAP[$t_i];
  59105.       }
  59106.       if ((HEAP[$v_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  59107.         _abort();
  59108.       }
  59109.       HEAP[$r_i] = HEAP[$v_i] + HEAP[$nb_addr_i] | 0;
  59110.       if ((HEAP[$v_i] >>> 0 < HEAP[$r_i] >>> 0 & 1 | 0) == 0) {
  59111.         _abort();
  59112.       }
  59113.       HEAP[$XP_i] = HEAP[HEAP[$v_i] + 24 | 0];
  59114.       var $227 = HEAP[$v_i];
  59115.       L61 : do {
  59116.         if ((HEAP[HEAP[$v_i] + 12 | 0] | 0) != (HEAP[$v_i] | 0)) {
  59117.           HEAP[$F_i] = HEAP[$227 + 8 | 0];
  59118.           HEAP[$R_i] = HEAP[HEAP[$v_i] + 12 | 0];
  59119.           do {
  59120.             if (HEAP[$F_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0) {
  59121.               if ((HEAP[HEAP[$F_i] + 12 | 0] | 0) != (HEAP[$v_i] | 0)) {
  59122.                 var $241 = 0;
  59123.                 break;
  59124.               }
  59125.               var $241 = (HEAP[HEAP[$R_i] + 8 | 0] | 0) == (HEAP[$v_i] | 0);
  59126.             } else {
  59127.               var $241 = 0;
  59128.             }
  59129.           } while (0);
  59130.           var $241;
  59131.           if (($241 & 1 | 0) != 0) {
  59132.             HEAP[HEAP[$F_i] + 12 | 0] = HEAP[$R_i];
  59133.             HEAP[HEAP[$R_i] + 8 | 0] = HEAP[$F_i];
  59134.             break;
  59135.           } else {
  59136.             _abort();
  59137.           }
  59138.         } else {
  59139.           var $arrayidx61_i = $227 + 20 | 0;
  59140.           HEAP[$RP_i] = $arrayidx61_i;
  59141.           var $246 = HEAP[$arrayidx61_i];
  59142.           HEAP[$R_i] = $246;
  59143.           do {
  59144.             if (($246 | 0) == 0) {
  59145.               var $arrayidx65_i = HEAP[$v_i] + 16 | 0;
  59146.               HEAP[$RP_i] = $arrayidx65_i;
  59147.               var $248 = HEAP[$arrayidx65_i];
  59148.               HEAP[$R_i] = $248;
  59149.               if (($248 | 0) != 0) {
  59150.                 break;
  59151.               } else {
  59152.                 break L61;
  59153.               }
  59154.             }
  59155.           } while (0);
  59156.           while (1) {
  59157.             var $arrayidx71_i = HEAP[$R_i] + 20 | 0;
  59158.             HEAP[$CP_i] = $arrayidx71_i;
  59159.             if ((HEAP[$arrayidx71_i] | 0) == 0) {
  59160.               var $arrayidx75_i = HEAP[$R_i] + 16 | 0;
  59161.               HEAP[$CP_i] = $arrayidx75_i;
  59162.               if ((HEAP[$arrayidx75_i] | 0) == 0) {
  59163.                 break;
  59164.               }
  59165.             }
  59166.             var $253 = HEAP[$CP_i];
  59167.             HEAP[$RP_i] = $253;
  59168.             HEAP[$R_i] = HEAP[$253];
  59169.           }
  59170.           if ((HEAP[$RP_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59171.             HEAP[HEAP[$RP_i]] = 0;
  59172.             break;
  59173.           } else {
  59174.             _abort();
  59175.           }
  59176.         }
  59177.       } while (0);
  59178.       do {
  59179.         if ((HEAP[$XP_i] | 0) != 0) {
  59180.           HEAP[$H_i] = (HEAP[HEAP[$v_i] + 28 | 0] << 2) + HEAP[$m_addr_i] + 304 | 0;
  59181.           do {
  59182.             if ((HEAP[$v_i] | 0) == (HEAP[HEAP[$H_i]] | 0)) {
  59183.               var $267 = HEAP[$R_i];
  59184.               HEAP[HEAP[$H_i]] = $267;
  59185.               if (($267 | 0) != 0) {
  59186.                 break;
  59187.               }
  59188.               var $treemap102_i = HEAP[$m_addr_i] + 4 | 0;
  59189.               HEAP[$treemap102_i] = HEAP[$treemap102_i] & (1 << HEAP[HEAP[$v_i] + 28 | 0] ^ -1);
  59190.             } else {
  59191.               if ((HEAP[$XP_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  59192.                 _abort();
  59193.               }
  59194.               var $280 = HEAP[$R_i];
  59195.               var $child117_i = HEAP[$XP_i] + 16 | 0;
  59196.               if ((HEAP[HEAP[$XP_i] + 16 | 0] | 0) == (HEAP[$v_i] | 0)) {
  59197.                 HEAP[$child117_i | 0] = $280;
  59198.                 break;
  59199.               } else {
  59200.                 HEAP[$child117_i + 4 | 0] = $280;
  59201.                 break;
  59202.               }
  59203.             }
  59204.           } while (0);
  59205.           if ((HEAP[$R_i] | 0) == 0) {
  59206.             break;
  59207.           }
  59208.           if ((HEAP[$R_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  59209.             _abort();
  59210.           }
  59211.           HEAP[HEAP[$R_i] + 24 | 0] = HEAP[$XP_i];
  59212.           var $290 = HEAP[HEAP[$v_i] + 16 | 0];
  59213.           HEAP[$C0_i] = $290;
  59214.           do {
  59215.             if (($290 | 0) != 0) {
  59216.               if ((HEAP[$C0_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59217.                 HEAP[HEAP[$R_i] + 16 | 0] = HEAP[$C0_i];
  59218.                 HEAP[HEAP[$C0_i] + 24 | 0] = HEAP[$R_i];
  59219.                 break;
  59220.               } else {
  59221.                 _abort();
  59222.               }
  59223.             }
  59224.           } while (0);
  59225.           var $300 = HEAP[HEAP[$v_i] + 20 | 0];
  59226.           HEAP[$C1_i] = $300;
  59227.           if (($300 | 0) == 0) {
  59228.             break;
  59229.           }
  59230.           if ((HEAP[$C1_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59231.             HEAP[HEAP[$R_i] + 20 | 0] = HEAP[$C1_i];
  59232.             HEAP[HEAP[$C1_i] + 24 | 0] = HEAP[$R_i];
  59233.             break;
  59234.           } else {
  59235.             _abort();
  59236.           }
  59237.         }
  59238.       } while (0);
  59239.       if (HEAP[$rsize_i] >>> 0 < 16) {
  59240.         HEAP[HEAP[$v_i] + 4 | 0] = HEAP[$nb_addr_i] + HEAP[$rsize_i] | 3;
  59241.         var $head182_i = HEAP[$v_i] + HEAP[$nb_addr_i] + HEAP[$rsize_i] + 4 | 0;
  59242.         HEAP[$head182_i] = HEAP[$head182_i] | 1;
  59243.       } else {
  59244.         HEAP[HEAP[$v_i] + 4 | 0] = HEAP[$nb_addr_i] | 3;
  59245.         HEAP[HEAP[$r_i] + 4 | 0] = HEAP[$rsize_i] | 1;
  59246.         HEAP[HEAP[$r_i] + HEAP[$rsize_i] | 0] = HEAP[$rsize_i];
  59247.         HEAP[$DVS_i] = HEAP[HEAP[$m_addr_i] + 8 | 0];
  59248.         if ((HEAP[$DVS_i] | 0) != 0) {
  59249.           HEAP[$DV_i] = HEAP[HEAP[$m_addr_i] + 20 | 0];
  59250.           HEAP[$I_i] = HEAP[$DVS_i] >>> 3;
  59251.           HEAP[$B_i] = (HEAP[$I_i] << 3) + HEAP[$m_addr_i] + 40 | 0;
  59252.           HEAP[$F197_i] = HEAP[$B_i];
  59253.           do {
  59254.             if ((1 << HEAP[$I_i] & HEAP[HEAP[$m_addr_i] | 0] | 0) != 0) {
  59255.               if ((HEAP[HEAP[$B_i] + 8 | 0] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59256.                 HEAP[$F197_i] = HEAP[HEAP[$B_i] + 8 | 0];
  59257.                 break;
  59258.               } else {
  59259.                 _abort();
  59260.               }
  59261.             } else {
  59262.               var $smallmap203_i = HEAP[$m_addr_i] | 0;
  59263.               HEAP[$smallmap203_i] = HEAP[$smallmap203_i] | 1 << HEAP[$I_i];
  59264.             }
  59265.           } while (0);
  59266.           HEAP[HEAP[$B_i] + 8 | 0] = HEAP[$DV_i];
  59267.           HEAP[HEAP[$F197_i] + 12 | 0] = HEAP[$DV_i];
  59268.           HEAP[HEAP[$DV_i] + 8 | 0] = HEAP[$F197_i];
  59269.           HEAP[HEAP[$DV_i] + 12 | 0] = HEAP[$B_i];
  59270.         }
  59271.         HEAP[HEAP[$m_addr_i] + 8 | 0] = HEAP[$rsize_i];
  59272.         HEAP[HEAP[$m_addr_i] + 20 | 0] = HEAP[$r_i];
  59273.       }
  59274.       var $add_ptr225_i = HEAP[$v_i] + 8 | 0;
  59275.       $mem = $add_ptr225_i;
  59276.       if (($add_ptr225_i | 0) == 0) {
  59277.         break;
  59278.       }
  59279.       var $1985 = $mem;
  59280.       STACKTOP = __stackBase__;
  59281.       return $1985;
  59282.     } else {
  59283.       if ($1 >>> 0 >= 4294967232) {
  59284.         $nb = -1;
  59285.         break;
  59286.       }
  59287.       $nb = $bytes_addr + 11 & -8;
  59288.       if ((HEAP[104988] | 0) == 0) {
  59289.         break;
  59290.       }
  59291.       HEAP[$m_addr_i1] = 104984;
  59292.       HEAP[$nb_addr_i2] = $nb;
  59293.       HEAP[$v_i3] = 0;
  59294.       HEAP[$rsize_i4] = -HEAP[$nb_addr_i2] | 0;
  59295.       HEAP[$X_i] = HEAP[$nb_addr_i2] >>> 8;
  59296.       do {
  59297.         if ((HEAP[$X_i] | 0) == 0) {
  59298.           HEAP[$idx_i] = 0;
  59299.         } else {
  59300.           if (HEAP[$X_i] >>> 0 > 65535) {
  59301.             HEAP[$idx_i] = 31;
  59302.             break;
  59303.           } else {
  59304.             HEAP[$Y_i6] = HEAP[$X_i];
  59305.             HEAP[$N_i7] = (HEAP[$Y_i6] - 256 | 0) >>> 16 & 8;
  59306.             var $shl_i30 = HEAP[$Y_i6] << HEAP[$N_i7];
  59307.             HEAP[$Y_i6] = $shl_i30;
  59308.             HEAP[$K_i8] = ($shl_i30 - 4096 | 0) >>> 16 & 4;
  59309.             HEAP[$N_i7] = HEAP[$N_i7] + HEAP[$K_i8] | 0;
  59310.             var $shl9_i = HEAP[$Y_i6] << HEAP[$K_i8];
  59311.             HEAP[$Y_i6] = $shl9_i;
  59312.             var $and12_i = ($shl9_i - 16384 | 0) >>> 16 & 2;
  59313.             HEAP[$K_i8] = $and12_i;
  59314.             HEAP[$N_i7] = $and12_i + HEAP[$N_i7] | 0;
  59315.             var $sub14_i = -HEAP[$N_i7] + 14 | 0;
  59316.             var $shl15_i = HEAP[$Y_i6] << HEAP[$K_i8];
  59317.             HEAP[$Y_i6] = $shl15_i;
  59318.             HEAP[$K_i8] = $sub14_i + ($shl15_i >>> 15) | 0;
  59319.             HEAP[$idx_i] = (HEAP[$K_i8] << 1) + (HEAP[$nb_addr_i2] >>> ((HEAP[$K_i8] + 7 | 0) >>> 0) & 1) | 0;
  59320.             break;
  59321.           }
  59322.         }
  59323.       } while (0);
  59324.       var $460 = HEAP[(HEAP[$idx_i] << 2) + HEAP[$m_addr_i1] + 304 | 0];
  59325.       HEAP[$t_i5] = $460;
  59326.       do {
  59327.         if (($460 | 0) != 0) {
  59328.           if ((HEAP[$idx_i] | 0) == 31) {
  59329.             var $cond_i39 = 0;
  59330.           } else {
  59331.             var $cond_i39 = -(HEAP[$idx_i] >>> 1) + 25 | 0;
  59332.           }
  59333.           var $cond_i39;
  59334.           HEAP[$sizebits_i] = HEAP[$nb_addr_i2] << $cond_i39;
  59335.           HEAP[$rst_i] = 0;
  59336.           while (1) {
  59337.             HEAP[$trem_i9] = (HEAP[HEAP[$t_i5] + 4 | 0] & -8) - HEAP[$nb_addr_i2] | 0;
  59338.             if (HEAP[$trem_i9] >>> 0 < HEAP[$rsize_i4] >>> 0) {
  59339.               var $469 = HEAP[$t_i5];
  59340.               HEAP[$v_i3] = $469;
  59341.               var $470 = HEAP[$trem_i9];
  59342.               HEAP[$rsize_i4] = $470;
  59343.               if (($470 | 0) == 0) {
  59344.                 var $483 = $469;
  59345.                 break;
  59346.               }
  59347.             }
  59348.             HEAP[$rt_i] = HEAP[HEAP[$t_i5] + 20 | 0];
  59349.             var $475 = HEAP[((HEAP[$sizebits_i] >>> 31 & 1) << 2) + HEAP[$t_i5] + 16 | 0];
  59350.             HEAP[$t_i5] = $475;
  59351.             do {
  59352.               if ((HEAP[$rt_i] | 0) != 0) {
  59353.                 var $478 = HEAP[$t_i5];
  59354.                 if ((HEAP[$rt_i] | 0) == ($478 | 0)) {
  59355.                   var $480 = $478;
  59356.                   break;
  59357.                 }
  59358.                 HEAP[$rst_i] = HEAP[$rt_i];
  59359.                 var $480 = HEAP[$t_i5];
  59360.               } else {
  59361.                 var $480 = $475;
  59362.               }
  59363.             } while (0);
  59364.             var $480;
  59365.             if (($480 | 0) == 0) {
  59366.               label = 105;
  59367.               break;
  59368.             }
  59369.             HEAP[$sizebits_i] = HEAP[$sizebits_i] << 1;
  59370.           }
  59371.           if (label == 105) {
  59372.             var $481 = HEAP[$rst_i];
  59373.             HEAP[$t_i5] = $481;
  59374.             var $483 = $481;
  59375.           }
  59376.           var $483;
  59377.           if (($483 | 0) == 0) {
  59378.             label = 108;
  59379.             break;
  59380.           } else {
  59381.             label = 111;
  59382.             break;
  59383.           }
  59384.         } else {
  59385.           label = 108;
  59386.         }
  59387.       } while (0);
  59388.       do {
  59389.         if (label == 108) {
  59390.           if ((HEAP[$v_i3] | 0) != 0) {
  59391.             label = 111;
  59392.             break;
  59393.           }
  59394.           HEAP[$leftbits_i] = (-(1 << HEAP[$idx_i] << 1) | 1 << HEAP[$idx_i] << 1) & HEAP[HEAP[$m_addr_i1] + 4 | 0];
  59395.           if ((HEAP[$leftbits_i] | 0) == 0) {
  59396.             label = 111;
  59397.             break;
  59398.           }
  59399.           HEAP[$leastbit_i11] = -HEAP[$leftbits_i] & HEAP[$leftbits_i];
  59400.           HEAP[$Y68_i] = HEAP[$leastbit_i11] - 1 | 0;
  59401.           HEAP[$K70_i] = HEAP[$Y68_i] >>> 12 & 16;
  59402.           HEAP[$N73_i] = HEAP[$K70_i];
  59403.           HEAP[$Y68_i] = HEAP[$Y68_i] >>> (HEAP[$K70_i] >>> 0);
  59404.           var $and76_i = HEAP[$Y68_i] >>> 5 & 8;
  59405.           HEAP[$K70_i] = $and76_i;
  59406.           HEAP[$N73_i] = $and76_i + HEAP[$N73_i] | 0;
  59407.           HEAP[$Y68_i] = HEAP[$Y68_i] >>> (HEAP[$K70_i] >>> 0);
  59408.           var $and80_i = HEAP[$Y68_i] >>> 2 & 4;
  59409.           HEAP[$K70_i] = $and80_i;
  59410.           HEAP[$N73_i] = $and80_i + HEAP[$N73_i] | 0;
  59411.           HEAP[$Y68_i] = HEAP[$Y68_i] >>> (HEAP[$K70_i] >>> 0);
  59412.           var $and84_i = HEAP[$Y68_i] >>> 1 & 2;
  59413.           HEAP[$K70_i] = $and84_i;
  59414.           HEAP[$N73_i] = $and84_i + HEAP[$N73_i] | 0;
  59415.           HEAP[$Y68_i] = HEAP[$Y68_i] >>> (HEAP[$K70_i] >>> 0);
  59416.           var $and88_i = HEAP[$Y68_i] >>> 1 & 1;
  59417.           HEAP[$K70_i] = $and88_i;
  59418.           HEAP[$N73_i] = $and88_i + HEAP[$N73_i] | 0;
  59419.           HEAP[$Y68_i] = HEAP[$Y68_i] >>> (HEAP[$K70_i] >>> 0);
  59420.           HEAP[$i_i10] = HEAP[$Y68_i] + HEAP[$N73_i] | 0;
  59421.           var $517 = HEAP[(HEAP[$i_i10] << 2) + HEAP[$m_addr_i1] + 304 | 0];
  59422.           HEAP[$t_i5] = $517;
  59423.           var $_ph_i = $517;
  59424.           break;
  59425.         }
  59426.       } while (0);
  59427.       if (label == 111) {
  59428.         var $_ph_i = HEAP[$t_i5];
  59429.       }
  59430.       var $_ph_i;
  59431.       L163 : do {
  59432.         if (($_ph_i | 0) != 0) {
  59433.           while (1) {
  59434.             HEAP[$trem97_i] = (HEAP[HEAP[$t_i5] + 4 | 0] & -8) - HEAP[$nb_addr_i2] | 0;
  59435.             if (HEAP[$trem97_i] >>> 0 < HEAP[$rsize_i4] >>> 0) {
  59436.               HEAP[$rsize_i4] = HEAP[$trem97_i];
  59437.               HEAP[$v_i3] = HEAP[$t_i5];
  59438.             }
  59439.             var $child108_i = HEAP[$t_i5] + 16 | 0;
  59440.             if ((HEAP[HEAP[$t_i5] + 16 | 0] | 0) != 0) {
  59441.               var $cond114_i = HEAP[$child108_i | 0];
  59442.             } else {
  59443.               var $cond114_i = HEAP[$child108_i + 4 | 0];
  59444.             }
  59445.             var $cond114_i;
  59446.             HEAP[$t_i5] = $cond114_i;
  59447.             if (($cond114_i | 0) == 0) {
  59448.               break L163;
  59449.             }
  59450.           }
  59451.         }
  59452.       } while (0);
  59453.       do {
  59454.         if ((HEAP[$v_i3] | 0) != 0) {
  59455.           if (HEAP[$rsize_i4] >>> 0 >= (HEAP[HEAP[$m_addr_i1] + 8 | 0] - HEAP[$nb_addr_i2] | 0) >>> 0) {
  59456.             label = 189;
  59457.             break;
  59458.           }
  59459.           if ((HEAP[$v_i3] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  59460.             _abort();
  59461.           }
  59462.           HEAP[$r_i12] = HEAP[$v_i3] + HEAP[$nb_addr_i2] | 0;
  59463.           if ((HEAP[$v_i3] >>> 0 < HEAP[$r_i12] >>> 0 & 1 | 0) == 0) {
  59464.             _abort();
  59465.           }
  59466.           HEAP[$XP_i13] = HEAP[HEAP[$v_i3] + 24 | 0];
  59467.           var $552 = HEAP[$v_i3];
  59468.           L183 : do {
  59469.             if ((HEAP[HEAP[$v_i3] + 12 | 0] | 0) != (HEAP[$v_i3] | 0)) {
  59470.               HEAP[$F_i15] = HEAP[$552 + 8 | 0];
  59471.               HEAP[$R_i14] = HEAP[HEAP[$v_i3] + 12 | 0];
  59472.               do {
  59473.                 if (HEAP[$F_i15] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0) {
  59474.                   if ((HEAP[HEAP[$F_i15] + 12 | 0] | 0) != (HEAP[$v_i3] | 0)) {
  59475.                     var $566 = 0;
  59476.                     break;
  59477.                   }
  59478.                   var $566 = (HEAP[HEAP[$R_i14] + 8 | 0] | 0) == (HEAP[$v_i3] | 0);
  59479.                 } else {
  59480.                   var $566 = 0;
  59481.                 }
  59482.               } while (0);
  59483.               var $566;
  59484.               if (($566 & 1 | 0) != 0) {
  59485.                 HEAP[HEAP[$F_i15] + 12 | 0] = HEAP[$R_i14];
  59486.                 HEAP[HEAP[$R_i14] + 8 | 0] = HEAP[$F_i15];
  59487.                 break;
  59488.               } else {
  59489.                 _abort();
  59490.               }
  59491.             } else {
  59492.               var $arrayidx150_i = $552 + 20 | 0;
  59493.               HEAP[$RP_i16] = $arrayidx150_i;
  59494.               var $571 = HEAP[$arrayidx150_i];
  59495.               HEAP[$R_i14] = $571;
  59496.               do {
  59497.                 if (($571 | 0) == 0) {
  59498.                   var $arrayidx154_i61 = HEAP[$v_i3] + 16 | 0;
  59499.                   HEAP[$RP_i16] = $arrayidx154_i61;
  59500.                   var $573 = HEAP[$arrayidx154_i61];
  59501.                   HEAP[$R_i14] = $573;
  59502.                   if (($573 | 0) != 0) {
  59503.                     break;
  59504.                   } else {
  59505.                     break L183;
  59506.                   }
  59507.                 }
  59508.               } while (0);
  59509.               while (1) {
  59510.                 var $arrayidx160_i = HEAP[$R_i14] + 20 | 0;
  59511.                 HEAP[$CP_i17] = $arrayidx160_i;
  59512.                 if ((HEAP[$arrayidx160_i] | 0) == 0) {
  59513.                   var $arrayidx164_i = HEAP[$R_i14] + 16 | 0;
  59514.                   HEAP[$CP_i17] = $arrayidx164_i;
  59515.                   if ((HEAP[$arrayidx164_i] | 0) == 0) {
  59516.                     break;
  59517.                   }
  59518.                 }
  59519.                 var $578 = HEAP[$CP_i17];
  59520.                 HEAP[$RP_i16] = $578;
  59521.                 HEAP[$R_i14] = HEAP[$578];
  59522.               }
  59523.               if ((HEAP[$RP_i16] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59524.                 HEAP[HEAP[$RP_i16]] = 0;
  59525.                 break;
  59526.               } else {
  59527.                 _abort();
  59528.               }
  59529.             }
  59530.           } while (0);
  59531.           do {
  59532.             if ((HEAP[$XP_i13] | 0) != 0) {
  59533.               HEAP[$H_i18] = (HEAP[HEAP[$v_i3] + 28 | 0] << 2) + HEAP[$m_addr_i1] + 304 | 0;
  59534.               do {
  59535.                 if ((HEAP[$v_i3] | 0) == (HEAP[HEAP[$H_i18]] | 0)) {
  59536.                   var $592 = HEAP[$R_i14];
  59537.                   HEAP[HEAP[$H_i18]] = $592;
  59538.                   if (($592 | 0) != 0) {
  59539.                     break;
  59540.                   }
  59541.                   var $treemap192_i = HEAP[$m_addr_i1] + 4 | 0;
  59542.                   HEAP[$treemap192_i] = HEAP[$treemap192_i] & (1 << HEAP[HEAP[$v_i3] + 28 | 0] ^ -1);
  59543.                 } else {
  59544.                   if ((HEAP[$XP_i13] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  59545.                     _abort();
  59546.                   }
  59547.                   var $605 = HEAP[$R_i14];
  59548.                   var $child207_i = HEAP[$XP_i13] + 16 | 0;
  59549.                   if ((HEAP[HEAP[$XP_i13] + 16 | 0] | 0) == (HEAP[$v_i3] | 0)) {
  59550.                     HEAP[$child207_i | 0] = $605;
  59551.                     break;
  59552.                   } else {
  59553.                     HEAP[$child207_i + 4 | 0] = $605;
  59554.                     break;
  59555.                   }
  59556.                 }
  59557.               } while (0);
  59558.               if ((HEAP[$R_i14] | 0) == 0) {
  59559.                 break;
  59560.               }
  59561.               if ((HEAP[$R_i14] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  59562.                 _abort();
  59563.               }
  59564.               HEAP[HEAP[$R_i14] + 24 | 0] = HEAP[$XP_i13];
  59565.               var $615 = HEAP[HEAP[$v_i3] + 16 | 0];
  59566.               HEAP[$C0_i19] = $615;
  59567.               do {
  59568.                 if (($615 | 0) != 0) {
  59569.                   if ((HEAP[$C0_i19] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59570.                     HEAP[HEAP[$R_i14] + 16 | 0] = HEAP[$C0_i19];
  59571.                     HEAP[HEAP[$C0_i19] + 24 | 0] = HEAP[$R_i14];
  59572.                     break;
  59573.                   } else {
  59574.                     _abort();
  59575.                   }
  59576.                 }
  59577.               } while (0);
  59578.               var $625 = HEAP[HEAP[$v_i3] + 20 | 0];
  59579.               HEAP[$C1_i20] = $625;
  59580.               if (($625 | 0) == 0) {
  59581.                 break;
  59582.               }
  59583.               if ((HEAP[$C1_i20] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59584.                 HEAP[HEAP[$R_i14] + 20 | 0] = HEAP[$C1_i20];
  59585.                 HEAP[HEAP[$C1_i20] + 24 | 0] = HEAP[$R_i14];
  59586.                 break;
  59587.               } else {
  59588.                 _abort();
  59589.               }
  59590.             }
  59591.           } while (0);
  59592.           L233 : do {
  59593.             if (HEAP[$rsize_i4] >>> 0 < 16) {
  59594.               HEAP[HEAP[$v_i3] + 4 | 0] = HEAP[$nb_addr_i2] + HEAP[$rsize_i4] | 3;
  59595.               var $head273_i = HEAP[$v_i3] + HEAP[$nb_addr_i2] + HEAP[$rsize_i4] + 4 | 0;
  59596.               HEAP[$head273_i] = HEAP[$head273_i] | 1;
  59597.             } else {
  59598.               HEAP[HEAP[$v_i3] + 4 | 0] = HEAP[$nb_addr_i2] | 3;
  59599.               HEAP[HEAP[$r_i12] + 4 | 0] = HEAP[$rsize_i4] | 1;
  59600.               HEAP[HEAP[$r_i12] + HEAP[$rsize_i4] | 0] = HEAP[$rsize_i4];
  59601.               if (HEAP[$rsize_i4] >>> 3 >>> 0 < 32) {
  59602.                 HEAP[$I_i21] = HEAP[$rsize_i4] >>> 3;
  59603.                 HEAP[$B_i22] = (HEAP[$I_i21] << 3) + HEAP[$m_addr_i1] + 40 | 0;
  59604.                 HEAP[$F289_i] = HEAP[$B_i22];
  59605.                 do {
  59606.                   if ((1 << HEAP[$I_i21] & HEAP[HEAP[$m_addr_i1] | 0] | 0) != 0) {
  59607.                     if ((HEAP[HEAP[$B_i22] + 8 | 0] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59608.                       HEAP[$F289_i] = HEAP[HEAP[$B_i22] + 8 | 0];
  59609.                       break;
  59610.                     } else {
  59611.                       _abort();
  59612.                     }
  59613.                   } else {
  59614.                     var $smallmap295_i = HEAP[$m_addr_i1] | 0;
  59615.                     HEAP[$smallmap295_i] = HEAP[$smallmap295_i] | 1 << HEAP[$I_i21];
  59616.                   }
  59617.                 } while (0);
  59618.                 HEAP[HEAP[$B_i22] + 8 | 0] = HEAP[$r_i12];
  59619.                 HEAP[HEAP[$F289_i] + 12 | 0] = HEAP[$r_i12];
  59620.                 HEAP[HEAP[$r_i12] + 8 | 0] = HEAP[$F289_i];
  59621.                 HEAP[HEAP[$r_i12] + 12 | 0] = HEAP[$B_i22];
  59622.                 break;
  59623.               }
  59624.               HEAP[$TP_i] = HEAP[$r_i12];
  59625.               HEAP[$X316_i] = HEAP[$rsize_i4] >>> 8;
  59626.               do {
  59627.                 if ((HEAP[$X316_i] | 0) == 0) {
  59628.                   HEAP[$I315_i] = 0;
  59629.                 } else {
  59630.                   if (HEAP[$X316_i] >>> 0 > 65535) {
  59631.                     HEAP[$I315_i] = 31;
  59632.                     break;
  59633.                   } else {
  59634.                     HEAP[$Y326_i] = HEAP[$X316_i];
  59635.                     HEAP[$N327_i] = (HEAP[$Y326_i] - 256 | 0) >>> 16 & 8;
  59636.                     var $shl332_i = HEAP[$Y326_i] << HEAP[$N327_i];
  59637.                     HEAP[$Y326_i] = $shl332_i;
  59638.                     HEAP[$K331_i] = ($shl332_i - 4096 | 0) >>> 16 & 4;
  59639.                     HEAP[$N327_i] = HEAP[$N327_i] + HEAP[$K331_i] | 0;
  59640.                     var $shl337_i = HEAP[$Y326_i] << HEAP[$K331_i];
  59641.                     HEAP[$Y326_i] = $shl337_i;
  59642.                     var $and340_i = ($shl337_i - 16384 | 0) >>> 16 & 2;
  59643.                     HEAP[$K331_i] = $and340_i;
  59644.                     HEAP[$N327_i] = $and340_i + HEAP[$N327_i] | 0;
  59645.                     var $sub342_i = -HEAP[$N327_i] + 14 | 0;
  59646.                     var $shl343_i = HEAP[$Y326_i] << HEAP[$K331_i];
  59647.                     HEAP[$Y326_i] = $shl343_i;
  59648.                     HEAP[$K331_i] = $sub342_i + ($shl343_i >>> 15) | 0;
  59649.                     HEAP[$I315_i] = (HEAP[$K331_i] << 1) + (HEAP[$rsize_i4] >>> ((HEAP[$K331_i] + 7 | 0) >>> 0) & 1) | 0;
  59650.                     break;
  59651.                   }
  59652.                 }
  59653.               } while (0);
  59654.               HEAP[$H314_i] = (HEAP[$I315_i] << 2) + HEAP[$m_addr_i1] + 304 | 0;
  59655.               HEAP[HEAP[$TP_i] + 28 | 0] = HEAP[$I315_i];
  59656.               HEAP[HEAP[$TP_i] + 20 | 0] = 0;
  59657.               HEAP[HEAP[$TP_i] + 16 | 0] = 0;
  59658.               if ((1 << HEAP[$I315_i] & HEAP[HEAP[$m_addr_i1] + 4 | 0] | 0) == 0) {
  59659.                 var $treemap366_i = HEAP[$m_addr_i1] + 4 | 0;
  59660.                 HEAP[$treemap366_i] = HEAP[$treemap366_i] | 1 << HEAP[$I315_i];
  59661.                 HEAP[HEAP[$H314_i]] = HEAP[$TP_i];
  59662.                 HEAP[HEAP[$TP_i] + 24 | 0] = HEAP[$H314_i];
  59663.                 var $718 = HEAP[$TP_i];
  59664.                 HEAP[HEAP[$TP_i] + 12 | 0] = $718;
  59665.                 HEAP[HEAP[$TP_i] + 8 | 0] = $718;
  59666.                 break;
  59667.               }
  59668.               HEAP[$T_i] = HEAP[HEAP[$H314_i]];
  59669.               if ((HEAP[$I315_i] | 0) == 31) {
  59670.                 var $cond382_i = 0;
  59671.               } else {
  59672.                 var $cond382_i = -(HEAP[$I315_i] >>> 1) + 25 | 0;
  59673.               }
  59674.               var $cond382_i;
  59675.               HEAP[$K372_i] = HEAP[$rsize_i4] << $cond382_i;
  59676.               L259 : do {
  59677.                 if ((HEAP[HEAP[$T_i] + 4 | 0] & -8 | 0) != (HEAP[$rsize_i4] | 0)) {
  59678.                   while (1) {
  59679.                     HEAP[$C_i] = ((HEAP[$K372_i] >>> 31 & 1) << 2) + HEAP[$T_i] + 16 | 0;
  59680.                     HEAP[$K372_i] = HEAP[$K372_i] << 1;
  59681.                     var $734 = HEAP[$C_i];
  59682.                     if ((HEAP[HEAP[$C_i]] | 0) == 0) {
  59683.                       break;
  59684.                     }
  59685.                     HEAP[$T_i] = HEAP[$734];
  59686.                     if ((HEAP[HEAP[$T_i] + 4 | 0] & -8 | 0) == (HEAP[$rsize_i4] | 0)) {
  59687.                       break L259;
  59688.                     }
  59689.                   }
  59690.                   if (($734 >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  59691.                     HEAP[HEAP[$C_i]] = HEAP[$TP_i];
  59692.                     HEAP[HEAP[$TP_i] + 24 | 0] = HEAP[$T_i];
  59693.                     var $746 = HEAP[$TP_i];
  59694.                     HEAP[HEAP[$TP_i] + 12 | 0] = $746;
  59695.                     HEAP[HEAP[$TP_i] + 8 | 0] = $746;
  59696.                     break L233;
  59697.                   } else {
  59698.                     _abort();
  59699.                   }
  59700.                 }
  59701.               } while (0);
  59702.               HEAP[$F411_i] = HEAP[HEAP[$T_i] + 8 | 0];
  59703.               if (HEAP[$T_i] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0) {
  59704.                 var $759 = HEAP[$F411_i] >>> 0 >= HEAP[HEAP[$m_addr_i1] + 16 | 0] >>> 0;
  59705.               } else {
  59706.                 var $759 = 0;
  59707.               }
  59708.               var $759;
  59709.               if (($759 & 1 | 0) != 0) {
  59710.                 var $760 = HEAP[$TP_i];
  59711.                 HEAP[HEAP[$F411_i] + 12 | 0] = $760;
  59712.                 HEAP[HEAP[$T_i] + 8 | 0] = $760;
  59713.                 HEAP[HEAP[$TP_i] + 8 | 0] = HEAP[$F411_i];
  59714.                 HEAP[HEAP[$TP_i] + 12 | 0] = HEAP[$T_i];
  59715.                 HEAP[HEAP[$TP_i] + 24 | 0] = 0;
  59716.                 break;
  59717.               } else {
  59718.                 _abort();
  59719.               }
  59720.             }
  59721.           } while (0);
  59722.           var $add_ptr436_i = HEAP[$v_i3] + 8 | 0;
  59723.           HEAP[$retval_i] = $add_ptr436_i;
  59724.           var $770 = $add_ptr436_i;
  59725.           break;
  59726.         } else {
  59727.           label = 189;
  59728.         }
  59729.       } while (0);
  59730.       if (label == 189) {
  59731.         HEAP[$retval_i] = 0;
  59732.         var $770 = 0;
  59733.       }
  59734.       var $770;
  59735.       $mem = $770;
  59736.       if (($770 | 0) == 0) {
  59737.         break;
  59738.       }
  59739.       var $1985 = $mem;
  59740.       STACKTOP = __stackBase__;
  59741.       return $1985;
  59742.     }
  59743.   } while (0);
  59744.   if ($nb >>> 0 <= HEAP[104992] >>> 0) {
  59745.     $rsize158 = HEAP[104992] - $nb | 0;
  59746.     $p160 = HEAP[105004];
  59747.     if ($rsize158 >>> 0 >= 16) {
  59748.       var $825 = $p160 + $nb | 0;
  59749.       HEAP[105004] = $825;
  59750.       $r164 = $825;
  59751.       HEAP[104992] = $rsize158;
  59752.       HEAP[$r164 + 4 | 0] = $rsize158 | 1;
  59753.       HEAP[$r164 + $rsize158 | 0] = $rsize158;
  59754.       HEAP[$p160 + 4 | 0] = $nb | 3;
  59755.     } else {
  59756.       $dvs = HEAP[104992];
  59757.       HEAP[104992] = 0;
  59758.       HEAP[105004] = 0;
  59759.       HEAP[$p160 + 4 | 0] = $dvs | 3;
  59760.       var $head178 = $dvs + ($p160 + 4) | 0;
  59761.       HEAP[$head178] = HEAP[$head178] | 1;
  59762.     }
  59763.     $mem = $p160 + 8 | 0;
  59764.     var $1985 = $mem;
  59765.     STACKTOP = __stackBase__;
  59766.     return $1985;
  59767.   }
  59768.   var $848 = $nb;
  59769.   if ($nb >>> 0 < HEAP[104996] >>> 0) {
  59770.     var $sub187 = HEAP[104996] - $848 | 0;
  59771.     HEAP[104996] = $sub187;
  59772.     $p188 = HEAP[105008];
  59773.     var $854 = $p188 + $nb | 0;
  59774.     HEAP[105008] = $854;
  59775.     HEAP[$854 + 4 | 0] = $sub187 | 1;
  59776.     HEAP[$p188 + 4 | 0] = $nb | 3;
  59777.     $mem = $p188 + 8 | 0;
  59778.     var $1985 = $mem;
  59779.     STACKTOP = __stackBase__;
  59780.     return $1985;
  59781.   }
  59782.   HEAP[$m_addr_i73] = 104984;
  59783.   HEAP[$nb_addr_i74] = $848;
  59784.   HEAP[$tbase_i] = -1;
  59785.   HEAP[$tsize_i] = 0;
  59786.   HEAP[$mmap_flag_i] = 0;
  59787.   if ((HEAP[6832] | 0) == 0) {
  59788.     _init_mparams();
  59789.   }
  59790.   HEAP[$asize_i] = (HEAP[6840] - 1 ^ -1) & HEAP[$nb_addr_i74] + HEAP[6840] + 47;
  59791.   L295 : do {
  59792.     if (HEAP[$asize_i] >>> 0 <= HEAP[$nb_addr_i74] >>> 0) {
  59793.       HEAP[$retval_i72] = 0;
  59794.     } else {
  59795.       do {
  59796.         if ((HEAP[HEAP[$m_addr_i73] + 440 | 0] | 0) != 0) {
  59797.           HEAP[$fp_i] = HEAP[$asize_i] + HEAP[HEAP[$m_addr_i73] + 432 | 0] | 0;
  59798.           if (!(HEAP[$fp_i] >>> 0 <= HEAP[HEAP[$m_addr_i73] + 432 | 0] >>> 0)) {
  59799.             if (HEAP[$fp_i] >>> 0 <= HEAP[HEAP[$m_addr_i73] + 440 | 0] >>> 0) {
  59800.               break;
  59801.             }
  59802.           }
  59803.           HEAP[$retval_i72] = 0;
  59804.           break L295;
  59805.         }
  59806.       } while (0);
  59807.       L304 : do {
  59808.         if ((HEAP[HEAP[$m_addr_i73] + 444 | 0] & 4 | 0) != 0) {
  59809.           label = 240;
  59810.         } else {
  59811.           HEAP[$br_i] = -1;
  59812.           HEAP[$ssize_i] = HEAP[$asize_i];
  59813.           do {
  59814.             if ((HEAP[HEAP[$m_addr_i73] + 24 | 0] | 0) == 0) {
  59815.               HEAP[$ss_i] = 0;
  59816.               label = 216;
  59817.               break;
  59818.             } else {
  59819.               var $910 = HEAP[HEAP[$m_addr_i73] + 24 | 0];
  59820.               HEAP[$m_addr_i_i] = HEAP[$m_addr_i73];
  59821.               HEAP[$addr_addr_i_i] = $910;
  59822.               HEAP[$sp_i_i] = HEAP[$m_addr_i_i] + 448 | 0;
  59823.               while (1) {
  59824.                 if (HEAP[$addr_addr_i_i] >>> 0 >= HEAP[HEAP[$sp_i_i] | 0] >>> 0) {
  59825.                   if (HEAP[$addr_addr_i_i] >>> 0 < (HEAP[HEAP[$sp_i_i] | 0] + HEAP[HEAP[$sp_i_i] + 4 | 0] | 0) >>> 0) {
  59826.                     label = 212;
  59827.                     break;
  59828.                   }
  59829.                 }
  59830.                 var $926 = HEAP[HEAP[$sp_i_i] + 8 | 0];
  59831.                 HEAP[$sp_i_i] = $926;
  59832.                 if (($926 | 0) == 0) {
  59833.                   label = 214;
  59834.                   break;
  59835.                 }
  59836.               }
  59837.               if (label == 212) {
  59838.                 var $924 = HEAP[$sp_i_i];
  59839.                 HEAP[$retval_i_i] = $924;
  59840.                 var $927 = $924;
  59841.               } else if (label == 214) {
  59842.                 HEAP[$retval_i_i] = 0;
  59843.                 var $927 = 0;
  59844.               }
  59845.               var $927;
  59846.               HEAP[$ss_i] = $927;
  59847.               if (($927 | 0) == 0) {
  59848.                 label = 216;
  59849.                 break;
  59850.               }
  59851.               HEAP[$ssize_i] = (HEAP[6840] - 1 ^ -1) & HEAP[$nb_addr_i74] + -HEAP[HEAP[$m_addr_i73] + 12 | 0] + HEAP[6840] + 47;
  59852.               if (HEAP[$ssize_i] >>> 0 >= 2147483647) {
  59853.                 label = 228;
  59854.                 break;
  59855.               }
  59856.               var $call80_i = _sbrk(HEAP[$ssize_i]);
  59857.               HEAP[$br_i] = $call80_i;
  59858.               if (($call80_i | 0) != (HEAP[HEAP[$ss_i] | 0] + HEAP[HEAP[$ss_i] + 4 | 0] | 0)) {
  59859.                 label = 228;
  59860.                 break;
  59861.               }
  59862.               var $971 = HEAP[$br_i];
  59863.               HEAP[$tbase_i] = $971;
  59864.               HEAP[$tsize_i] = HEAP[$ssize_i];
  59865.               var $973 = $971;
  59866.               break;
  59867.             }
  59868.           } while (0);
  59869.           do {
  59870.             if (label == 216) {
  59871.               var $call34_i = _sbrk(0);
  59872.               HEAP[$base_i] = $call34_i;
  59873.               if (($call34_i | 0) == -1) {
  59874.                 label = 228;
  59875.                 break;
  59876.               }
  59877.               if ((HEAP[6836] - 1 & HEAP[$base_i] | 0) != 0) {
  59878.                 HEAP[$ssize_i] = (HEAP[6836] - 1 + HEAP[$base_i] & (HEAP[6836] - 1 ^ -1)) + -HEAP[$base_i] + HEAP[$ssize_i] | 0;
  59879.               }
  59880.               HEAP[$fp37_i] = HEAP[$ssize_i] + HEAP[HEAP[$m_addr_i73] + 432 | 0] | 0;
  59881.               if (!(HEAP[$ssize_i] >>> 0 > HEAP[$nb_addr_i74] >>> 0 & HEAP[$ssize_i] >>> 0 < 2147483647)) {
  59882.                 label = 228;
  59883.                 break;
  59884.               }
  59885.               if ((HEAP[HEAP[$m_addr_i73] + 440 | 0] | 0) != 0) {
  59886.                 if (HEAP[$fp37_i] >>> 0 <= HEAP[HEAP[$m_addr_i73] + 432 | 0] >>> 0) {
  59887.                   label = 228;
  59888.                   break;
  59889.                 }
  59890.                 if (!(HEAP[$fp37_i] >>> 0 <= HEAP[HEAP[$m_addr_i73] + 440 | 0] >>> 0)) {
  59891.                   label = 228;
  59892.                   break;
  59893.                 }
  59894.               }
  59895.               var $call65_i = _sbrk(HEAP[$ssize_i]);
  59896.               HEAP[$br_i] = $call65_i;
  59897.               if (($call65_i | 0) != (HEAP[$base_i] | 0)) {
  59898.                 label = 228;
  59899.                 break;
  59900.               }
  59901.               var $958 = HEAP[$base_i];
  59902.               HEAP[$tbase_i] = $958;
  59903.               HEAP[$tsize_i] = HEAP[$ssize_i];
  59904.               var $973 = $958;
  59905.               break;
  59906.             }
  59907.           } while (0);
  59908.           if (label == 228) {
  59909.             var $973 = HEAP[$tbase_i];
  59910.           }
  59911.           var $973;
  59912.           if (($973 | 0) != -1) {
  59913.             label = 240;
  59914.             break;
  59915.           }
  59916.           L337 : do {
  59917.             if ((HEAP[$br_i] | 0) != -1) {
  59918.               do {
  59919.                 if (HEAP[$ssize_i] >>> 0 < 2147483647) {
  59920.                   if (HEAP[$ssize_i] >>> 0 >= (HEAP[$nb_addr_i74] + 48 | 0) >>> 0) {
  59921.                     break;
  59922.                   }
  59923.                   HEAP[$esize_i] = (HEAP[6840] - 1 ^ -1) & HEAP[$nb_addr_i74] + -HEAP[$ssize_i] + HEAP[6840] + 47;
  59924.                   if (HEAP[$esize_i] >>> 0 >= 2147483647) {
  59925.                     break;
  59926.                   }
  59927.                   var $call104_i = _sbrk(HEAP[$esize_i]);
  59928.                   HEAP[$end_i] = $call104_i;
  59929.                   if ((HEAP[$end_i] | 0) != -1) {
  59930.                     HEAP[$ssize_i] = HEAP[$ssize_i] + HEAP[$esize_i] | 0;
  59931.                     break;
  59932.                   } else {
  59933.                     _sbrk(-HEAP[$ssize_i] | 0);
  59934.                     HEAP[$br_i] = -1;
  59935.                     break L337;
  59936.                   }
  59937.                 }
  59938.               } while (0);
  59939.               if ((HEAP[$br_i] | 0) == -1) {
  59940.                 break;
  59941.               }
  59942.               var $988 = HEAP[$br_i];
  59943.               HEAP[$tbase_i] = $988;
  59944.               HEAP[$tsize_i] = HEAP[$ssize_i];
  59945.               var $992 = $988;
  59946.               break L304;
  59947.             }
  59948.           } while (0);
  59949.           var $mflags118_i = HEAP[$m_addr_i73] + 444 | 0;
  59950.           HEAP[$mflags118_i] = HEAP[$mflags118_i] | 4;
  59951.           label = 240;
  59952.           break;
  59953.         }
  59954.       } while (0);
  59955.       if (label == 240) {
  59956.         var $992 = HEAP[$tbase_i];
  59957.       }
  59958.       var $992;
  59959.       do {
  59960.         if (($992 | 0) == -1) {
  59961.           if (HEAP[$asize_i] >>> 0 >= 2147483647) {
  59962.             label = 248;
  59963.             break;
  59964.           }
  59965.           HEAP[$br126_i] = -1;
  59966.           HEAP[$end127_i] = -1;
  59967.           var $call128_i = _sbrk(HEAP[$asize_i]);
  59968.           HEAP[$br126_i] = $call128_i;
  59969.           var $call129_i = _sbrk(0);
  59970.           HEAP[$end127_i] = $call129_i;
  59971.           if ((HEAP[$br126_i] | 0) == -1) {
  59972.             label = 248;
  59973.             break;
  59974.           }
  59975.           if ((HEAP[$end127_i] | 0) == -1) {
  59976.             label = 248;
  59977.             break;
  59978.           }
  59979.           if (HEAP[$br126_i] >>> 0 >= HEAP[$end127_i] >>> 0) {
  59980.             label = 248;
  59981.             break;
  59982.           }
  59983.           HEAP[$ssize136_i] = HEAP[$end127_i] - HEAP[$br126_i] | 0;
  59984.           if (HEAP[$ssize136_i] >>> 0 <= (HEAP[$nb_addr_i74] + 40 | 0) >>> 0) {
  59985.             label = 248;
  59986.             break;
  59987.           }
  59988.           var $1003 = HEAP[$br126_i];
  59989.           HEAP[$tbase_i] = $1003;
  59990.           HEAP[$tsize_i] = HEAP[$ssize136_i];
  59991.           var $1005 = $1003;
  59992.           break;
  59993.         } else {
  59994.           label = 248;
  59995.         }
  59996.       } while (0);
  59997.       if (label == 248) {
  59998.         var $1005 = HEAP[$tbase_i];
  59999.       }
  60000.       var $1005;
  60001.       do {
  60002.         if (($1005 | 0) != -1) {
  60003.           var $footprint146_i = HEAP[$m_addr_i73] + 432 | 0;
  60004.           var $add147_i = HEAP[$footprint146_i] + HEAP[$tsize_i] | 0;
  60005.           HEAP[$footprint146_i] = $add147_i;
  60006.           if ($add147_i >>> 0 > HEAP[HEAP[$m_addr_i73] + 436 | 0] >>> 0) {
  60007.             HEAP[HEAP[$m_addr_i73] + 436 | 0] = HEAP[HEAP[$m_addr_i73] + 432 | 0];
  60008.           }
  60009.           var $1016 = HEAP[$m_addr_i73];
  60010.           L367 : do {
  60011.             if ((HEAP[HEAP[$m_addr_i73] + 24 | 0] | 0) != 0) {
  60012.               var $seg182_i = $1016 + 448 | 0;
  60013.               HEAP[$sp_i] = $seg182_i;
  60014.               L387 : do {
  60015.                 if (($seg182_i | 0) != 0) {
  60016.                   while (1) {
  60017.                     var $1136 = HEAP[$sp_i];
  60018.                     if ((HEAP[$tbase_i] | 0) == (HEAP[HEAP[$sp_i] | 0] + HEAP[HEAP[$sp_i] + 4 | 0] | 0)) {
  60019.                       var $1138 = $1136;
  60020.                       break L387;
  60021.                     }
  60022.                     var $1137 = HEAP[$1136 + 8 | 0];
  60023.                     HEAP[$sp_i] = $1137;
  60024.                     if (($1137 | 0) == 0) {
  60025.                       label = 266;
  60026.                       break L387;
  60027.                     }
  60028.                   }
  60029.                 } else {
  60030.                   label = 266;
  60031.                 }
  60032.               } while (0);
  60033.               if (label == 266) {
  60034.                 var $1138 = HEAP[$sp_i];
  60035.               }
  60036.               var $1138;
  60037.               do {
  60038.                 if (($1138 | 0) != 0) {
  60039.                   if ((HEAP[HEAP[$sp_i] + 12 | 0] & 8 | 0) != 0) {
  60040.                     break;
  60041.                   }
  60042.                   if (0 != (HEAP[$mmap_flag_i] | 0)) {
  60043.                     break;
  60044.                   }
  60045.                   if (!(HEAP[HEAP[$m_addr_i73] + 24 | 0] >>> 0 >= HEAP[HEAP[$sp_i] | 0] >>> 0)) {
  60046.                     break;
  60047.                   }
  60048.                   if (HEAP[HEAP[$m_addr_i73] + 24 | 0] >>> 0 >= (HEAP[HEAP[$sp_i] | 0] + HEAP[HEAP[$sp_i] + 4 | 0] | 0) >>> 0) {
  60049.                     break;
  60050.                   }
  60051.                   var $size208_i = HEAP[$sp_i] + 4 | 0;
  60052.                   HEAP[$size208_i] = HEAP[$size208_i] + HEAP[$tsize_i] | 0;
  60053.                   var $1159 = HEAP[HEAP[$m_addr_i73] + 24 | 0];
  60054.                   var $add212_i = HEAP[$tsize_i] + HEAP[HEAP[$m_addr_i73] + 12 | 0] | 0;
  60055.                   HEAP[$m_addr_i116_i] = HEAP[$m_addr_i73];
  60056.                   HEAP[$p_addr_i117_i] = $1159;
  60057.                   HEAP[$psize_addr_i118_i] = $add212_i;
  60058.                   if ((HEAP[$p_addr_i117_i] + 8 & 7 | 0) == 0) {
  60059.                     var $cond_i128_i = 0;
  60060.                   } else {
  60061.                     var $cond_i128_i = 8 - (HEAP[$p_addr_i117_i] + 8 & 7) & 7;
  60062.                   }
  60063.                   var $cond_i128_i;
  60064.                   HEAP[$offset_i119_i] = $cond_i128_i;
  60065.                   HEAP[$p_addr_i117_i] = HEAP[$p_addr_i117_i] + HEAP[$offset_i119_i] | 0;
  60066.                   HEAP[$psize_addr_i118_i] = HEAP[$psize_addr_i118_i] - HEAP[$offset_i119_i] | 0;
  60067.                   HEAP[HEAP[$m_addr_i116_i] + 24 | 0] = HEAP[$p_addr_i117_i];
  60068.                   HEAP[HEAP[$m_addr_i116_i] + 12 | 0] = HEAP[$psize_addr_i118_i];
  60069.                   HEAP[HEAP[$p_addr_i117_i] + 4 | 0] = HEAP[$psize_addr_i118_i] | 1;
  60070.                   HEAP[HEAP[$p_addr_i117_i] + HEAP[$psize_addr_i118_i] + 4 | 0] = 40;
  60071.                   HEAP[HEAP[$m_addr_i116_i] + 28 | 0] = HEAP[6848];
  60072.                   break L367;
  60073.                 }
  60074.               } while (0);
  60075.               if (HEAP[$tbase_i] >>> 0 < HEAP[HEAP[$m_addr_i73] + 16 | 0] >>> 0) {
  60076.                 HEAP[HEAP[$m_addr_i73] + 16 | 0] = HEAP[$tbase_i];
  60077.               }
  60078.               var $seg219_i = HEAP[$m_addr_i73] + 448 | 0;
  60079.               HEAP[$sp_i] = $seg219_i;
  60080.               var $1201 = HEAP[$sp_i];
  60081.               L407 : do {
  60082.                 if (($seg219_i | 0) != 0) {
  60083.                   var $1202 = $1201;
  60084.                   while (1) {
  60085.                     var $1202;
  60086.                     var $1206 = HEAP[$sp_i];
  60087.                     if ((HEAP[$1202 | 0] | 0) == (HEAP[$tbase_i] + HEAP[$tsize_i] | 0)) {
  60088.                       var $1209 = $1206;
  60089.                       break L407;
  60090.                     }
  60091.                     var $1207 = HEAP[$1206 + 8 | 0];
  60092.                     HEAP[$sp_i] = $1207;
  60093.                     var $1208 = HEAP[$sp_i];
  60094.                     if (($1207 | 0) != 0) {
  60095.                       var $1202 = $1208;
  60096.                     } else {
  60097.                       var $1209 = $1208;
  60098.                       break L407;
  60099.                     }
  60100.                   }
  60101.                 } else {
  60102.                   var $1209 = $1201;
  60103.                 }
  60104.               } while (0);
  60105.               var $1209;
  60106.               do {
  60107.                 if (($1209 | 0) != 0) {
  60108.                   if ((HEAP[HEAP[$sp_i] + 12 | 0] & 8 | 0) != 0) {
  60109.                     break;
  60110.                   }
  60111.                   if (0 != (HEAP[$mmap_flag_i] | 0)) {
  60112.                     break;
  60113.                   }
  60114.                   HEAP[$oldbase_i] = HEAP[HEAP[$sp_i] | 0];
  60115.                   HEAP[HEAP[$sp_i] | 0] = HEAP[$tbase_i];
  60116.                   var $size242_i = HEAP[$sp_i] + 4 | 0;
  60117.                   HEAP[$size242_i] = HEAP[$size242_i] + HEAP[$tsize_i] | 0;
  60118.                   var $1221 = HEAP[$tbase_i];
  60119.                   var $1222 = HEAP[$oldbase_i];
  60120.                   var $1223 = HEAP[$nb_addr_i74];
  60121.                   HEAP[$m_addr_i55_i] = HEAP[$m_addr_i73];
  60122.                   HEAP[$newbase_addr_i_i] = $1221;
  60123.                   HEAP[$oldbase_addr_i_i] = $1222;
  60124.                   HEAP[$nb_addr_i_i] = $1223;
  60125.                   if ((HEAP[$newbase_addr_i_i] + 8 & 7 | 0) == 0) {
  60126.                     var $cond_i78_i = 0;
  60127.                   } else {
  60128.                     var $cond_i78_i = 8 - (HEAP[$newbase_addr_i_i] + 8 & 7) & 7;
  60129.                   }
  60130.                   var $cond_i78_i;
  60131.                   HEAP[$p_i56_i] = HEAP[$newbase_addr_i_i] + $cond_i78_i | 0;
  60132.                   if ((HEAP[$oldbase_addr_i_i] + 8 & 7 | 0) == 0) {
  60133.                     var $cond15_i_i = 0;
  60134.                   } else {
  60135.                     var $cond15_i_i = 8 - (HEAP[$oldbase_addr_i_i] + 8 & 7) & 7;
  60136.                   }
  60137.                   var $cond15_i_i;
  60138.                   HEAP[$oldfirst_i_i] = HEAP[$oldbase_addr_i_i] + $cond15_i_i | 0;
  60139.                   HEAP[$psize_i57_i] = HEAP[$oldfirst_i_i] - HEAP[$p_i56_i] | 0;
  60140.                   HEAP[$q_i58_i] = HEAP[$p_i56_i] + HEAP[$nb_addr_i_i] | 0;
  60141.                   HEAP[$qsize_i_i] = HEAP[$psize_i57_i] - HEAP[$nb_addr_i_i] | 0;
  60142.                   HEAP[HEAP[$p_i56_i] + 4 | 0] = HEAP[$nb_addr_i_i] | 3;
  60143.                   L422 : do {
  60144.                     if ((HEAP[$oldfirst_i_i] | 0) == (HEAP[HEAP[$m_addr_i55_i] + 24 | 0] | 0)) {
  60145.                       var $topsize_i87_i = HEAP[$m_addr_i55_i] + 12 | 0;
  60146.                       var $add_i88_i = HEAP[$topsize_i87_i] + HEAP[$qsize_i_i] | 0;
  60147.                       HEAP[$topsize_i87_i] = $add_i88_i;
  60148.                       HEAP[$tsize_i_i] = $add_i88_i;
  60149.                       HEAP[HEAP[$m_addr_i55_i] + 24 | 0] = HEAP[$q_i58_i];
  60150.                       HEAP[HEAP[$q_i58_i] + 4 | 0] = HEAP[$tsize_i_i] | 1;
  60151.                     } else {
  60152.                       if ((HEAP[$oldfirst_i_i] | 0) == (HEAP[HEAP[$m_addr_i55_i] + 20 | 0] | 0)) {
  60153.                         var $dvsize_i_i = HEAP[$m_addr_i55_i] + 8 | 0;
  60154.                         var $add26_i_i = HEAP[$dvsize_i_i] + HEAP[$qsize_i_i] | 0;
  60155.                         HEAP[$dvsize_i_i] = $add26_i_i;
  60156.                         HEAP[$dsize_i_i] = $add26_i_i;
  60157.                         HEAP[HEAP[$m_addr_i55_i] + 20 | 0] = HEAP[$q_i58_i];
  60158.                         HEAP[HEAP[$q_i58_i] + 4 | 0] = HEAP[$dsize_i_i] | 1;
  60159.                         HEAP[HEAP[$q_i58_i] + HEAP[$dsize_i_i] | 0] = HEAP[$dsize_i_i];
  60160.                         break;
  60161.                       }
  60162.                       if ((HEAP[HEAP[$oldfirst_i_i] + 4 | 0] & 3 | 0) == 1) {
  60163.                         HEAP[$nsize_i_i] = HEAP[HEAP[$oldfirst_i_i] + 4 | 0] & -8;
  60164.                         var $1316 = HEAP[$oldfirst_i_i];
  60165.                         do {
  60166.                           if (HEAP[$nsize_i_i] >>> 3 >>> 0 < 32) {
  60167.                             HEAP[$F_i59_i] = HEAP[$1316 + 8 | 0];
  60168.                             HEAP[$B_i60_i] = HEAP[HEAP[$oldfirst_i_i] + 12 | 0];
  60169.                             HEAP[$I_i61_i] = HEAP[$nsize_i_i] >>> 3;
  60170.                             do {
  60171.                               if ((HEAP[$F_i59_i] | 0) == ((HEAP[$I_i61_i] << 3) + HEAP[$m_addr_i55_i] + 40 | 0)) {
  60172.                                 var $1333 = 1;
  60173.                               } else {
  60174.                                 if (!(HEAP[$F_i59_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0)) {
  60175.                                   var $1333 = 0;
  60176.                                   break;
  60177.                                 }
  60178.                                 var $1333 = (HEAP[HEAP[$F_i59_i] + 12 | 0] | 0) == (HEAP[$oldfirst_i_i] | 0);
  60179.                               }
  60180.                             } while (0);
  60181.                             var $1333;
  60182.                             if (($1333 & 1 | 0) == 0) {
  60183.                               _abort();
  60184.                             }
  60185.                             if ((HEAP[$B_i60_i] | 0) == (HEAP[$F_i59_i] | 0)) {
  60186.                               var $smallmap_i103_i = HEAP[$m_addr_i55_i] | 0;
  60187.                               HEAP[$smallmap_i103_i] = HEAP[$smallmap_i103_i] & (1 << HEAP[$I_i61_i] ^ -1);
  60188.                               break;
  60189.                             }
  60190.                             do {
  60191.                               if ((HEAP[$B_i60_i] | 0) == ((HEAP[$I_i61_i] << 3) + HEAP[$m_addr_i55_i] + 40 | 0)) {
  60192.                                 var $1351 = 1;
  60193.                               } else {
  60194.                                 if (!(HEAP[$B_i60_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0)) {
  60195.                                   var $1351 = 0;
  60196.                                   break;
  60197.                                 }
  60198.                                 var $1351 = (HEAP[HEAP[$B_i60_i] + 8 | 0] | 0) == (HEAP[$oldfirst_i_i] | 0);
  60199.                               }
  60200.                             } while (0);
  60201.                             var $1351;
  60202.                             if (($1351 & 1 | 0) != 0) {
  60203.                               HEAP[HEAP[$F_i59_i] + 12 | 0] = HEAP[$B_i60_i];
  60204.                               HEAP[HEAP[$B_i60_i] + 8 | 0] = HEAP[$F_i59_i];
  60205.                               break;
  60206.                             } else {
  60207.                               _abort();
  60208.                             }
  60209.                           } else {
  60210.                             HEAP[$TP_i62_i] = $1316;
  60211.                             HEAP[$XP_i_i] = HEAP[HEAP[$TP_i62_i] + 24 | 0];
  60212.                             var $1362 = HEAP[$TP_i62_i];
  60213.                             L450 : do {
  60214.                               if ((HEAP[HEAP[$TP_i62_i] + 12 | 0] | 0) != (HEAP[$TP_i62_i] | 0)) {
  60215.                                 HEAP[$F77_i_i] = HEAP[$1362 + 8 | 0];
  60216.                                 HEAP[$R_i_i] = HEAP[HEAP[$TP_i62_i] + 12 | 0];
  60217.                                 do {
  60218.                                   if (HEAP[$F77_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0) {
  60219.                                     if ((HEAP[HEAP[$F77_i_i] + 12 | 0] | 0) != (HEAP[$TP_i62_i] | 0)) {
  60220.                                       var $1376 = 0;
  60221.                                       break;
  60222.                                     }
  60223.                                     var $1376 = (HEAP[HEAP[$R_i_i] + 8 | 0] | 0) == (HEAP[$TP_i62_i] | 0);
  60224.                                   } else {
  60225.                                     var $1376 = 0;
  60226.                                   }
  60227.                                 } while (0);
  60228.                                 var $1376;
  60229.                                 if (($1376 & 1 | 0) != 0) {
  60230.                                   HEAP[HEAP[$F77_i_i] + 12 | 0] = HEAP[$R_i_i];
  60231.                                   HEAP[HEAP[$R_i_i] + 8 | 0] = HEAP[$F77_i_i];
  60232.                                   break;
  60233.                                 } else {
  60234.                                   _abort();
  60235.                                 }
  60236.                               } else {
  60237.                                 var $arrayidx96_i_i = $1362 + 20 | 0;
  60238.                                 HEAP[$RP_i_i] = $arrayidx96_i_i;
  60239.                                 var $1381 = HEAP[$arrayidx96_i_i];
  60240.                                 HEAP[$R_i_i] = $1381;
  60241.                                 do {
  60242.                                   if (($1381 | 0) == 0) {
  60243.                                     var $arrayidx99_i_i = HEAP[$TP_i62_i] + 16 | 0;
  60244.                                     HEAP[$RP_i_i] = $arrayidx99_i_i;
  60245.                                     var $1383 = HEAP[$arrayidx99_i_i];
  60246.                                     HEAP[$R_i_i] = $1383;
  60247.                                     if (($1383 | 0) != 0) {
  60248.                                       break;
  60249.                                     } else {
  60250.                                       break L450;
  60251.                                     }
  60252.                                   }
  60253.                                 } while (0);
  60254.                                 while (1) {
  60255.                                   var $arrayidx103_i_i = HEAP[$R_i_i] + 20 | 0;
  60256.                                   HEAP[$CP_i_i] = $arrayidx103_i_i;
  60257.                                   if ((HEAP[$arrayidx103_i_i] | 0) == 0) {
  60258.                                     var $arrayidx107_i_i = HEAP[$R_i_i] + 16 | 0;
  60259.                                     HEAP[$CP_i_i] = $arrayidx107_i_i;
  60260.                                     if ((HEAP[$arrayidx107_i_i] | 0) == 0) {
  60261.                                       break;
  60262.                                     }
  60263.                                   }
  60264.                                   var $1388 = HEAP[$CP_i_i];
  60265.                                   HEAP[$RP_i_i] = $1388;
  60266.                                   HEAP[$R_i_i] = HEAP[$1388];
  60267.                                 }
  60268.                                 if ((HEAP[$RP_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60269.                                   HEAP[HEAP[$RP_i_i]] = 0;
  60270.                                   break;
  60271.                                 } else {
  60272.                                   _abort();
  60273.                                 }
  60274.                               }
  60275.                             } while (0);
  60276.                             if ((HEAP[$XP_i_i] | 0) == 0) {
  60277.                               break;
  60278.                             }
  60279.                             HEAP[$H_i63_i] = (HEAP[HEAP[$TP_i62_i] + 28 | 0] << 2) + HEAP[$m_addr_i55_i] + 304 | 0;
  60280.                             do {
  60281.                               if ((HEAP[$TP_i62_i] | 0) == (HEAP[HEAP[$H_i63_i]] | 0)) {
  60282.                                 var $1402 = HEAP[$R_i_i];
  60283.                                 HEAP[HEAP[$H_i63_i]] = $1402;
  60284.                                 if (($1402 | 0) != 0) {
  60285.                                   break;
  60286.                                 }
  60287.                                 var $treemap_i114_i = HEAP[$m_addr_i55_i] + 4 | 0;
  60288.                                 HEAP[$treemap_i114_i] = HEAP[$treemap_i114_i] & (1 << HEAP[HEAP[$TP_i62_i] + 28 | 0] ^ -1);
  60289.                               } else {
  60290.                                 if ((HEAP[$XP_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  60291.                                   _abort();
  60292.                                 }
  60293.                                 var $1415 = HEAP[$R_i_i];
  60294.                                 var $child147_i_i = HEAP[$XP_i_i] + 16 | 0;
  60295.                                 if ((HEAP[HEAP[$XP_i_i] + 16 | 0] | 0) == (HEAP[$TP_i62_i] | 0)) {
  60296.                                   HEAP[$child147_i_i | 0] = $1415;
  60297.                                   break;
  60298.                                 } else {
  60299.                                   HEAP[$child147_i_i + 4 | 0] = $1415;
  60300.                                   break;
  60301.                                 }
  60302.                               }
  60303.                             } while (0);
  60304.                             if ((HEAP[$R_i_i] | 0) == 0) {
  60305.                               break;
  60306.                             }
  60307.                             if ((HEAP[$R_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  60308.                               _abort();
  60309.                             }
  60310.                             HEAP[HEAP[$R_i_i] + 24 | 0] = HEAP[$XP_i_i];
  60311.                             var $1425 = HEAP[HEAP[$TP_i62_i] + 16 | 0];
  60312.                             HEAP[$C0_i_i] = $1425;
  60313.                             do {
  60314.                               if (($1425 | 0) != 0) {
  60315.                                 if ((HEAP[$C0_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60316.                                   HEAP[HEAP[$R_i_i] + 16 | 0] = HEAP[$C0_i_i];
  60317.                                   HEAP[HEAP[$C0_i_i] + 24 | 0] = HEAP[$R_i_i];
  60318.                                   break;
  60319.                                 } else {
  60320.                                   _abort();
  60321.                                 }
  60322.                               }
  60323.                             } while (0);
  60324.                             var $1435 = HEAP[HEAP[$TP_i62_i] + 20 | 0];
  60325.                             HEAP[$C1_i_i] = $1435;
  60326.                             if (($1435 | 0) == 0) {
  60327.                               break;
  60328.                             }
  60329.                             if ((HEAP[$C1_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60330.                               HEAP[HEAP[$R_i_i] + 20 | 0] = HEAP[$C1_i_i];
  60331.                               HEAP[HEAP[$C1_i_i] + 24 | 0] = HEAP[$R_i_i];
  60332.                               break;
  60333.                             } else {
  60334.                               _abort();
  60335.                             }
  60336.                           }
  60337.                         } while (0);
  60338.                         HEAP[$oldfirst_i_i] = HEAP[$oldfirst_i_i] + HEAP[$nsize_i_i] | 0;
  60339.                         HEAP[$qsize_i_i] = HEAP[$qsize_i_i] + HEAP[$nsize_i_i] | 0;
  60340.                       }
  60341.                       var $head208_i_i = HEAP[$oldfirst_i_i] + 4 | 0;
  60342.                       HEAP[$head208_i_i] = HEAP[$head208_i_i] & -2;
  60343.                       HEAP[HEAP[$q_i58_i] + 4 | 0] = HEAP[$qsize_i_i] | 1;
  60344.                       HEAP[HEAP[$q_i58_i] + HEAP[$qsize_i_i] | 0] = HEAP[$qsize_i_i];
  60345.                       if (HEAP[$qsize_i_i] >>> 3 >>> 0 < 32) {
  60346.                         HEAP[$I218_i_i] = HEAP[$qsize_i_i] >>> 3;
  60347.                         HEAP[$B220_i_i] = (HEAP[$I218_i_i] << 3) + HEAP[$m_addr_i55_i] + 40 | 0;
  60348.                         HEAP[$F224_i_i] = HEAP[$B220_i_i];
  60349.                         do {
  60350.                           if ((1 << HEAP[$I218_i_i] & HEAP[HEAP[$m_addr_i55_i] | 0] | 0) != 0) {
  60351.                             if ((HEAP[HEAP[$B220_i_i] + 8 | 0] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60352.                               HEAP[$F224_i_i] = HEAP[HEAP[$B220_i_i] + 8 | 0];
  60353.                               break;
  60354.                             } else {
  60355.                               _abort();
  60356.                             }
  60357.                           } else {
  60358.                             var $smallmap231_i_i = HEAP[$m_addr_i55_i] | 0;
  60359.                             HEAP[$smallmap231_i_i] = HEAP[$smallmap231_i_i] | 1 << HEAP[$I218_i_i];
  60360.                           }
  60361.                         } while (0);
  60362.                         HEAP[HEAP[$B220_i_i] + 8 | 0] = HEAP[$q_i58_i];
  60363.                         HEAP[HEAP[$F224_i_i] + 12 | 0] = HEAP[$q_i58_i];
  60364.                         HEAP[HEAP[$q_i58_i] + 8 | 0] = HEAP[$F224_i_i];
  60365.                         HEAP[HEAP[$q_i58_i] + 12 | 0] = HEAP[$B220_i_i];
  60366.                         break;
  60367.                       }
  60368.                       HEAP[$TP250_i_i] = HEAP[$q_i58_i];
  60369.                       HEAP[$X_i64_i] = HEAP[$qsize_i_i] >>> 8;
  60370.                       do {
  60371.                         if ((HEAP[$X_i64_i] | 0) == 0) {
  60372.                           HEAP[$I252_i_i] = 0;
  60373.                         } else {
  60374.                           if (HEAP[$X_i64_i] >>> 0 > 65535) {
  60375.                             HEAP[$I252_i_i] = 31;
  60376.                             break;
  60377.                           } else {
  60378.                             HEAP[$Y_i65_i] = HEAP[$X_i64_i];
  60379.                             HEAP[$N_i66_i] = (HEAP[$Y_i65_i] - 256 | 0) >>> 16 & 8;
  60380.                             var $shl265_i_i = HEAP[$Y_i65_i] << HEAP[$N_i66_i];
  60381.                             HEAP[$Y_i65_i] = $shl265_i_i;
  60382.                             HEAP[$K_i67_i] = ($shl265_i_i - 4096 | 0) >>> 16 & 4;
  60383.                             HEAP[$N_i66_i] = HEAP[$N_i66_i] + HEAP[$K_i67_i] | 0;
  60384.                             var $shl270_i_i = HEAP[$Y_i65_i] << HEAP[$K_i67_i];
  60385.                             HEAP[$Y_i65_i] = $shl270_i_i;
  60386.                             var $and273_i_i = ($shl270_i_i - 16384 | 0) >>> 16 & 2;
  60387.                             HEAP[$K_i67_i] = $and273_i_i;
  60388.                             HEAP[$N_i66_i] = $and273_i_i + HEAP[$N_i66_i] | 0;
  60389.                             var $sub275_i_i = -HEAP[$N_i66_i] + 14 | 0;
  60390.                             var $shl276_i_i = HEAP[$Y_i65_i] << HEAP[$K_i67_i];
  60391.                             HEAP[$Y_i65_i] = $shl276_i_i;
  60392.                             HEAP[$K_i67_i] = $sub275_i_i + ($shl276_i_i >>> 15) | 0;
  60393.                             HEAP[$I252_i_i] = (HEAP[$K_i67_i] << 1) + (HEAP[$qsize_i_i] >>> ((HEAP[$K_i67_i] + 7 | 0) >>> 0) & 1) | 0;
  60394.                             break;
  60395.                           }
  60396.                         }
  60397.                       } while (0);
  60398.                       HEAP[$H251_i_i] = (HEAP[$I252_i_i] << 2) + HEAP[$m_addr_i55_i] + 304 | 0;
  60399.                       HEAP[HEAP[$TP250_i_i] + 28 | 0] = HEAP[$I252_i_i];
  60400.                       HEAP[HEAP[$TP250_i_i] + 20 | 0] = 0;
  60401.                       HEAP[HEAP[$TP250_i_i] + 16 | 0] = 0;
  60402.                       if ((1 << HEAP[$I252_i_i] & HEAP[HEAP[$m_addr_i55_i] + 4 | 0] | 0) == 0) {
  60403.                         var $treemap299_i_i = HEAP[$m_addr_i55_i] + 4 | 0;
  60404.                         HEAP[$treemap299_i_i] = HEAP[$treemap299_i_i] | 1 << HEAP[$I252_i_i];
  60405.                         HEAP[HEAP[$H251_i_i]] = HEAP[$TP250_i_i];
  60406.                         HEAP[HEAP[$TP250_i_i] + 24 | 0] = HEAP[$H251_i_i];
  60407.                         var $1524 = HEAP[$TP250_i_i];
  60408.                         HEAP[HEAP[$TP250_i_i] + 12 | 0] = $1524;
  60409.                         HEAP[HEAP[$TP250_i_i] + 8 | 0] = $1524;
  60410.                         break;
  60411.                       }
  60412.                       HEAP[$T_i68_i] = HEAP[HEAP[$H251_i_i]];
  60413.                       if ((HEAP[$I252_i_i] | 0) == 31) {
  60414.                         var $cond315_i_i = 0;
  60415.                       } else {
  60416.                         var $cond315_i_i = -(HEAP[$I252_i_i] >>> 1) + 25 | 0;
  60417.                       }
  60418.                       var $cond315_i_i;
  60419.                       HEAP[$K305_i_i] = HEAP[$qsize_i_i] << $cond315_i_i;
  60420.                       L523 : do {
  60421.                         if ((HEAP[HEAP[$T_i68_i] + 4 | 0] & -8 | 0) != (HEAP[$qsize_i_i] | 0)) {
  60422.                           while (1) {
  60423.                             HEAP[$C_i69_i] = ((HEAP[$K305_i_i] >>> 31 & 1) << 2) + HEAP[$T_i68_i] + 16 | 0;
  60424.                             HEAP[$K305_i_i] = HEAP[$K305_i_i] << 1;
  60425.                             var $1540 = HEAP[$C_i69_i];
  60426.                             if ((HEAP[HEAP[$C_i69_i]] | 0) == 0) {
  60427.                               break;
  60428.                             }
  60429.                             HEAP[$T_i68_i] = HEAP[$1540];
  60430.                             if ((HEAP[HEAP[$T_i68_i] + 4 | 0] & -8 | 0) == (HEAP[$qsize_i_i] | 0)) {
  60431.                               break L523;
  60432.                             }
  60433.                           }
  60434.                           if (($1540 >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60435.                             HEAP[HEAP[$C_i69_i]] = HEAP[$TP250_i_i];
  60436.                             HEAP[HEAP[$TP250_i_i] + 24 | 0] = HEAP[$T_i68_i];
  60437.                             var $1552 = HEAP[$TP250_i_i];
  60438.                             HEAP[HEAP[$TP250_i_i] + 12 | 0] = $1552;
  60439.                             HEAP[HEAP[$TP250_i_i] + 8 | 0] = $1552;
  60440.                             break L422;
  60441.                           } else {
  60442.                             _abort();
  60443.                           }
  60444.                         }
  60445.                       } while (0);
  60446.                       HEAP[$F343_i_i] = HEAP[HEAP[$T_i68_i] + 8 | 0];
  60447.                       if (HEAP[$T_i68_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0) {
  60448.                         var $1565 = HEAP[$F343_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i55_i] + 16 | 0] >>> 0;
  60449.                       } else {
  60450.                         var $1565 = 0;
  60451.                       }
  60452.                       var $1565;
  60453.                       if (($1565 & 1 | 0) != 0) {
  60454.                         var $1566 = HEAP[$TP250_i_i];
  60455.                         HEAP[HEAP[$F343_i_i] + 12 | 0] = $1566;
  60456.                         HEAP[HEAP[$T_i68_i] + 8 | 0] = $1566;
  60457.                         HEAP[HEAP[$TP250_i_i] + 8 | 0] = HEAP[$F343_i_i];
  60458.                         HEAP[HEAP[$TP250_i_i] + 12 | 0] = HEAP[$T_i68_i];
  60459.                         HEAP[HEAP[$TP250_i_i] + 24 | 0] = 0;
  60460.                         break;
  60461.                       } else {
  60462.                         _abort();
  60463.                       }
  60464.                     }
  60465.                   } while (0);
  60466.                   HEAP[$retval_i72] = HEAP[$p_i56_i] + 8 | 0;
  60467.                   break L295;
  60468.                 }
  60469.               } while (0);
  60470.               var $1615 = HEAP[$tbase_i];
  60471.               var $1616 = HEAP[$tsize_i];
  60472.               var $1617 = HEAP[$mmap_flag_i];
  60473.               HEAP[$m_addr_i1_i] = HEAP[$m_addr_i73];
  60474.               HEAP[$tbase_addr_i_i] = $1615;
  60475.               HEAP[$tsize_addr_i_i] = $1616;
  60476.               HEAP[$mmapped_addr_i_i] = $1617;
  60477.               HEAP[$old_top_i_i] = HEAP[HEAP[$m_addr_i1_i] + 24 | 0];
  60478.               var $1657 = HEAP[$old_top_i_i];
  60479.               HEAP[$m_addr_i_i_i] = HEAP[$m_addr_i1_i];
  60480.               HEAP[$addr_addr_i_i_i] = $1657;
  60481.               HEAP[$sp_i_i_i] = HEAP[$m_addr_i_i_i] + 448 | 0;
  60482.               while (1) {
  60483.                 if (HEAP[$addr_addr_i_i_i] >>> 0 >= HEAP[HEAP[$sp_i_i_i] | 0] >>> 0) {
  60484.                   if (HEAP[$addr_addr_i_i_i] >>> 0 < (HEAP[HEAP[$sp_i_i_i] | 0] + HEAP[HEAP[$sp_i_i_i] + 4 | 0] | 0) >>> 0) {
  60485.                     label = 375;
  60486.                     break;
  60487.                   }
  60488.                 }
  60489.                 var $1673 = HEAP[HEAP[$sp_i_i_i] + 8 | 0];
  60490.                 HEAP[$sp_i_i_i] = $1673;
  60491.                 if (($1673 | 0) == 0) {
  60492.                   label = 377;
  60493.                   break;
  60494.                 }
  60495.               }
  60496.               if (label == 375) {
  60497.                 HEAP[$retval_i_i_i] = HEAP[$sp_i_i_i];
  60498.               } else if (label == 377) {
  60499.                 HEAP[$retval_i_i_i] = 0;
  60500.               }
  60501.               HEAP[$oldsp_i_i] = HEAP[$retval_i_i_i];
  60502.               HEAP[$old_end_i_i] = HEAP[HEAP[$oldsp_i_i] | 0] + HEAP[HEAP[$oldsp_i_i] + 4 | 0] | 0;
  60503.               HEAP[$ssize_i_i] = 24;
  60504.               HEAP[$rawsp_i_i] = HEAP[$old_end_i_i] + -(HEAP[$ssize_i_i] + 23 | 0) | 0;
  60505.               if ((HEAP[$rawsp_i_i] + 8 & 7 | 0) == 0) {
  60506.                 var $cond_i_i = 0;
  60507.               } else {
  60508.                 var $cond_i_i = 8 - (HEAP[$rawsp_i_i] + 8 & 7) & 7;
  60509.               }
  60510.               var $cond_i_i;
  60511.               HEAP[$offset_i_i] = $cond_i_i;
  60512.               HEAP[$asp_i_i] = HEAP[$rawsp_i_i] + HEAP[$offset_i_i] | 0;
  60513.               HEAP[$csp_i_i] = HEAP[$asp_i_i] >>> 0 < (HEAP[$old_top_i_i] + 16 | 0) >>> 0 ? HEAP[$old_top_i_i] : HEAP[$asp_i_i];
  60514.               HEAP[$sp_i2_i] = HEAP[$csp_i_i];
  60515.               HEAP[$ss_i_i] = HEAP[$sp_i2_i] + 8 | 0;
  60516.               HEAP[$tnext_i_i] = HEAP[$sp_i2_i] + HEAP[$ssize_i_i] | 0;
  60517.               HEAP[$p_i_i] = HEAP[$tnext_i_i];
  60518.               HEAP[$nfences_i_i] = 0;
  60519.               var $1707 = HEAP[$tbase_addr_i_i];
  60520.               var $sub16_i_i = HEAP[$tsize_addr_i_i] - 40 | 0;
  60521.               HEAP[$m_addr_i1_i_i] = HEAP[$m_addr_i1_i];
  60522.               HEAP[$p_addr_i_i_i] = $1707;
  60523.               HEAP[$psize_addr_i_i_i] = $sub16_i_i;
  60524.               if ((HEAP[$p_addr_i_i_i] + 8 & 7 | 0) == 0) {
  60525.                 var $cond_i_i_i = 0;
  60526.               } else {
  60527.                 var $cond_i_i_i = 8 - (HEAP[$p_addr_i_i_i] + 8 & 7) & 7;
  60528.               }
  60529.               var $cond_i_i_i;
  60530.               HEAP[$offset_i_i_i] = $cond_i_i_i;
  60531.               HEAP[$p_addr_i_i_i] = HEAP[$p_addr_i_i_i] + HEAP[$offset_i_i_i] | 0;
  60532.               HEAP[$psize_addr_i_i_i] = HEAP[$psize_addr_i_i_i] - HEAP[$offset_i_i_i] | 0;
  60533.               HEAP[HEAP[$m_addr_i1_i_i] + 24 | 0] = HEAP[$p_addr_i_i_i];
  60534.               HEAP[HEAP[$m_addr_i1_i_i] + 12 | 0] = HEAP[$psize_addr_i_i_i];
  60535.               HEAP[HEAP[$p_addr_i_i_i] + 4 | 0] = HEAP[$psize_addr_i_i_i] | 1;
  60536.               HEAP[HEAP[$p_addr_i_i_i] + HEAP[$psize_addr_i_i_i] + 4 | 0] = 40;
  60537.               HEAP[HEAP[$m_addr_i1_i_i] + 28 | 0] = HEAP[6848];
  60538.               HEAP[HEAP[$sp_i2_i] + 4 | 0] = HEAP[$ssize_i_i] | 3;
  60539.               var $1745 = HEAP[$ss_i_i];
  60540.               var $1746 = HEAP[$m_addr_i1_i] + 448 | 0;
  60541.               for (var $$src = $1746, $$dest = $1745, $$stop = $$src + 16; $$src < $$stop; $$src++, $$dest++) {
  60542.                 HEAP[$$dest] = HEAP[$$src];
  60543.               }
  60544.               HEAP[HEAP[$m_addr_i1_i] + 448 | 0] = HEAP[$tbase_addr_i_i];
  60545.               HEAP[HEAP[$m_addr_i1_i] + 452 | 0] = HEAP[$tsize_addr_i_i];
  60546.               HEAP[HEAP[$m_addr_i1_i] + 460 | 0] = HEAP[$mmapped_addr_i_i];
  60547.               HEAP[HEAP[$m_addr_i1_i] + 456 | 0] = HEAP[$ss_i_i];
  60548.               HEAP[$nextp_i_i] = HEAP[$p_i_i] + 4 | 0;
  60549.               HEAP[HEAP[$p_i_i] + 4 | 0] = 7;
  60550.               HEAP[$nfences_i_i] = HEAP[$nfences_i_i] + 1 | 0;
  60551.               L555 : do {
  60552.                 if ((HEAP[$nextp_i_i] + 4 | 0) >>> 0 < HEAP[$old_end_i_i] >>> 0) {
  60553.                   while (1) {
  60554.                     HEAP[$p_i_i] = HEAP[$nextp_i_i];
  60555.                     HEAP[$nextp_i_i] = HEAP[$p_i_i] + 4 | 0;
  60556.                     HEAP[HEAP[$p_i_i] + 4 | 0] = 7;
  60557.                     HEAP[$nfences_i_i] = HEAP[$nfences_i_i] + 1 | 0;
  60558.                     if ((HEAP[$nextp_i_i] + 4 | 0) >>> 0 >= HEAP[$old_end_i_i] >>> 0) {
  60559.                       break L555;
  60560.                     }
  60561.                   }
  60562.                 }
  60563.               } while (0);
  60564.               L559 : do {
  60565.                 if ((HEAP[$csp_i_i] | 0) != (HEAP[$old_top_i_i] | 0)) {
  60566.                   HEAP[$q_i_i] = HEAP[$old_top_i_i];
  60567.                   HEAP[$psize_i_i] = HEAP[$csp_i_i] - HEAP[$old_top_i_i] | 0;
  60568.                   HEAP[$tn_i_i] = HEAP[$q_i_i] + HEAP[$psize_i_i] | 0;
  60569.                   var $head31_i_i = HEAP[$tn_i_i] + 4 | 0;
  60570.                   HEAP[$head31_i_i] = HEAP[$head31_i_i] & -2;
  60571.                   HEAP[HEAP[$q_i_i] + 4 | 0] = HEAP[$psize_i_i] | 1;
  60572.                   HEAP[HEAP[$q_i_i] + HEAP[$psize_i_i] | 0] = HEAP[$psize_i_i];
  60573.                   if (HEAP[$psize_i_i] >>> 3 >>> 0 < 32) {
  60574.                     HEAP[$I_i_i] = HEAP[$psize_i_i] >>> 3;
  60575.                     HEAP[$B_i_i] = (HEAP[$I_i_i] << 3) + HEAP[$m_addr_i1_i] + 40 | 0;
  60576.                     HEAP[$F_i_i] = HEAP[$B_i_i];
  60577.                     do {
  60578.                       if ((1 << HEAP[$I_i_i] & HEAP[HEAP[$m_addr_i1_i] | 0] | 0) != 0) {
  60579.                         if ((HEAP[HEAP[$B_i_i] + 8 | 0] >>> 0 >= HEAP[HEAP[$m_addr_i1_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60580.                           HEAP[$F_i_i] = HEAP[HEAP[$B_i_i] + 8 | 0];
  60581.                           break;
  60582.                         } else {
  60583.                           _abort();
  60584.                         }
  60585.                       } else {
  60586.                         var $smallmap43_i_i = HEAP[$m_addr_i1_i] | 0;
  60587.                         HEAP[$smallmap43_i_i] = HEAP[$smallmap43_i_i] | 1 << HEAP[$I_i_i];
  60588.                       }
  60589.                     } while (0);
  60590.                     HEAP[HEAP[$B_i_i] + 8 | 0] = HEAP[$q_i_i];
  60591.                     HEAP[HEAP[$F_i_i] + 12 | 0] = HEAP[$q_i_i];
  60592.                     HEAP[HEAP[$q_i_i] + 8 | 0] = HEAP[$F_i_i];
  60593.                     HEAP[HEAP[$q_i_i] + 12 | 0] = HEAP[$B_i_i];
  60594.                     break;
  60595.                   }
  60596.                   HEAP[$TP_i_i] = HEAP[$q_i_i];
  60597.                   HEAP[$X_i_i] = HEAP[$psize_i_i] >>> 8;
  60598.                   do {
  60599.                     if ((HEAP[$X_i_i] | 0) == 0) {
  60600.                       HEAP[$I57_i_i] = 0;
  60601.                     } else {
  60602.                       if (HEAP[$X_i_i] >>> 0 > 65535) {
  60603.                         HEAP[$I57_i_i] = 31;
  60604.                         break;
  60605.                       } else {
  60606.                         HEAP[$Y_i_i] = HEAP[$X_i_i];
  60607.                         HEAP[$N_i_i] = (HEAP[$Y_i_i] - 256 | 0) >>> 16 & 8;
  60608.                         var $shl70_i_i = HEAP[$Y_i_i] << HEAP[$N_i_i];
  60609.                         HEAP[$Y_i_i] = $shl70_i_i;
  60610.                         HEAP[$K_i_i] = ($shl70_i_i - 4096 | 0) >>> 16 & 4;
  60611.                         HEAP[$N_i_i] = HEAP[$N_i_i] + HEAP[$K_i_i] | 0;
  60612.                         var $shl75_i_i = HEAP[$Y_i_i] << HEAP[$K_i_i];
  60613.                         HEAP[$Y_i_i] = $shl75_i_i;
  60614.                         var $and78_i_i = ($shl75_i_i - 16384 | 0) >>> 16 & 2;
  60615.                         HEAP[$K_i_i] = $and78_i_i;
  60616.                         HEAP[$N_i_i] = $and78_i_i + HEAP[$N_i_i] | 0;
  60617.                         var $sub80_i_i = -HEAP[$N_i_i] + 14 | 0;
  60618.                         var $shl81_i_i = HEAP[$Y_i_i] << HEAP[$K_i_i];
  60619.                         HEAP[$Y_i_i] = $shl81_i_i;
  60620.                         HEAP[$K_i_i] = $sub80_i_i + ($shl81_i_i >>> 15) | 0;
  60621.                         HEAP[$I57_i_i] = (HEAP[$K_i_i] << 1) + (HEAP[$psize_i_i] >>> ((HEAP[$K_i_i] + 7 | 0) >>> 0) & 1) | 0;
  60622.                         break;
  60623.                       }
  60624.                     }
  60625.                   } while (0);
  60626.                   HEAP[$H_i_i] = (HEAP[$I57_i_i] << 2) + HEAP[$m_addr_i1_i] + 304 | 0;
  60627.                   HEAP[HEAP[$TP_i_i] + 28 | 0] = HEAP[$I57_i_i];
  60628.                   HEAP[HEAP[$TP_i_i] + 20 | 0] = 0;
  60629.                   HEAP[HEAP[$TP_i_i] + 16 | 0] = 0;
  60630.                   if ((1 << HEAP[$I57_i_i] & HEAP[HEAP[$m_addr_i1_i] + 4 | 0] | 0) == 0) {
  60631.                     var $treemap100_i_i = HEAP[$m_addr_i1_i] + 4 | 0;
  60632.                     HEAP[$treemap100_i_i] = HEAP[$treemap100_i_i] | 1 << HEAP[$I57_i_i];
  60633.                     HEAP[HEAP[$H_i_i]] = HEAP[$TP_i_i];
  60634.                     HEAP[HEAP[$TP_i_i] + 24 | 0] = HEAP[$H_i_i];
  60635.                     var $1856 = HEAP[$TP_i_i];
  60636.                     HEAP[HEAP[$TP_i_i] + 12 | 0] = $1856;
  60637.                     HEAP[HEAP[$TP_i_i] + 8 | 0] = $1856;
  60638.                     break;
  60639.                   }
  60640.                   HEAP[$T_i_i] = HEAP[HEAP[$H_i_i]];
  60641.                   if ((HEAP[$I57_i_i] | 0) == 31) {
  60642.                     var $cond115_i_i = 0;
  60643.                   } else {
  60644.                     var $cond115_i_i = -(HEAP[$I57_i_i] >>> 1) + 25 | 0;
  60645.                   }
  60646.                   var $cond115_i_i;
  60647.                   HEAP[$K105_i_i] = HEAP[$psize_i_i] << $cond115_i_i;
  60648.                   L584 : do {
  60649.                     if ((HEAP[HEAP[$T_i_i] + 4 | 0] & -8 | 0) != (HEAP[$psize_i_i] | 0)) {
  60650.                       while (1) {
  60651.                         HEAP[$C_i_i] = ((HEAP[$K105_i_i] >>> 31 & 1) << 2) + HEAP[$T_i_i] + 16 | 0;
  60652.                         HEAP[$K105_i_i] = HEAP[$K105_i_i] << 1;
  60653.                         var $1872 = HEAP[$C_i_i];
  60654.                         if ((HEAP[HEAP[$C_i_i]] | 0) == 0) {
  60655.                           break;
  60656.                         }
  60657.                         HEAP[$T_i_i] = HEAP[$1872];
  60658.                         if ((HEAP[HEAP[$T_i_i] + 4 | 0] & -8 | 0) == (HEAP[$psize_i_i] | 0)) {
  60659.                           break L584;
  60660.                         }
  60661.                       }
  60662.                       if (($1872 >>> 0 >= HEAP[HEAP[$m_addr_i1_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  60663.                         HEAP[HEAP[$C_i_i]] = HEAP[$TP_i_i];
  60664.                         HEAP[HEAP[$TP_i_i] + 24 | 0] = HEAP[$T_i_i];
  60665.                         var $1884 = HEAP[$TP_i_i];
  60666.                         HEAP[HEAP[$TP_i_i] + 12 | 0] = $1884;
  60667.                         HEAP[HEAP[$TP_i_i] + 8 | 0] = $1884;
  60668.                         break L559;
  60669.                       } else {
  60670.                         _abort();
  60671.                       }
  60672.                     }
  60673.                   } while (0);
  60674.                   HEAP[$F144_i_i] = HEAP[HEAP[$T_i_i] + 8 | 0];
  60675.                   if (HEAP[$T_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i1_i] + 16 | 0] >>> 0) {
  60676.                     var $1897 = HEAP[$F144_i_i] >>> 0 >= HEAP[HEAP[$m_addr_i1_i] + 16 | 0] >>> 0;
  60677.                   } else {
  60678.                     var $1897 = 0;
  60679.                   }
  60680.                   var $1897;
  60681.                   if (($1897 & 1 | 0) != 0) {
  60682.                     var $1898 = HEAP[$TP_i_i];
  60683.                     HEAP[HEAP[$F144_i_i] + 12 | 0] = $1898;
  60684.                     HEAP[HEAP[$T_i_i] + 8 | 0] = $1898;
  60685.                     HEAP[HEAP[$TP_i_i] + 8 | 0] = HEAP[$F144_i_i];
  60686.                     HEAP[HEAP[$TP_i_i] + 12 | 0] = HEAP[$T_i_i];
  60687.                     HEAP[HEAP[$TP_i_i] + 24 | 0] = 0;
  60688.                     break;
  60689.                   } else {
  60690.                     _abort();
  60691.                   }
  60692.                 }
  60693.               } while (0);
  60694.             } else {
  60695.               do {
  60696.                 if ((HEAP[$1016 + 16 | 0] | 0) == 0) {
  60697.                   label = 255;
  60698.                 } else {
  60699.                   if (HEAP[$tbase_i] >>> 0 < HEAP[HEAP[$m_addr_i73] + 16 | 0] >>> 0) {
  60700.                     label = 255;
  60701.                     break;
  60702.                   } else {
  60703.                     break;
  60704.                   }
  60705.                 }
  60706.               } while (0);
  60707.               if (label == 255) {
  60708.                 HEAP[HEAP[$m_addr_i73] + 16 | 0] = HEAP[$tbase_i];
  60709.               }
  60710.               HEAP[HEAP[$m_addr_i73] + 448 | 0] = HEAP[$tbase_i];
  60711.               HEAP[HEAP[$m_addr_i73] + 452 | 0] = HEAP[$tsize_i];
  60712.               HEAP[HEAP[$m_addr_i73] + 460 | 0] = HEAP[$mmap_flag_i];
  60713.               HEAP[HEAP[$m_addr_i73] + 36 | 0] = HEAP[6832];
  60714.               HEAP[HEAP[$m_addr_i73] + 32 | 0] = -1;
  60715.               HEAP[$m_addr_i10_i] = HEAP[$m_addr_i73];
  60716.               HEAP[$i_i_i] = 0;
  60717.               while (1) {
  60718.                 HEAP[$bin_i_i] = (HEAP[$i_i_i] << 3) + HEAP[$m_addr_i10_i] + 40 | 0;
  60719.                 var $1040 = HEAP[$bin_i_i];
  60720.                 HEAP[HEAP[$bin_i_i] + 12 | 0] = $1040;
  60721.                 HEAP[HEAP[$bin_i_i] + 8 | 0] = $1040;
  60722.                 var $inc_i16_i = HEAP[$i_i_i] + 1 | 0;
  60723.                 HEAP[$i_i_i] = $inc_i16_i;
  60724.                 if ($inc_i16_i >>> 0 >= 32) {
  60725.                   break;
  60726.                 }
  60727.               }
  60728.               var $1048 = HEAP[$m_addr_i73];
  60729.               if ((HEAP[$m_addr_i73] | 0) == 104984) {
  60730.                 var $1050 = HEAP[$tbase_i];
  60731.                 var $sub169_i = HEAP[$tsize_i] - 40 | 0;
  60732.                 HEAP[$m_addr_i19_i] = $1048;
  60733.                 HEAP[$p_addr_i_i] = $1050;
  60734.                 HEAP[$psize_addr_i_i] = $sub169_i;
  60735.                 if ((HEAP[$p_addr_i_i] + 8 & 7 | 0) == 0) {
  60736.                   var $cond_i26_i = 0;
  60737.                 } else {
  60738.                   var $cond_i26_i = 8 - (HEAP[$p_addr_i_i] + 8 & 7) & 7;
  60739.                 }
  60740.                 var $cond_i26_i;
  60741.                 HEAP[$offset_i20_i] = $cond_i26_i;
  60742.                 HEAP[$p_addr_i_i] = HEAP[$p_addr_i_i] + HEAP[$offset_i20_i] | 0;
  60743.                 HEAP[$psize_addr_i_i] = HEAP[$psize_addr_i_i] - HEAP[$offset_i20_i] | 0;
  60744.                 HEAP[HEAP[$m_addr_i19_i] + 24 | 0] = HEAP[$p_addr_i_i];
  60745.                 HEAP[HEAP[$m_addr_i19_i] + 12 | 0] = HEAP[$psize_addr_i_i];
  60746.                 HEAP[HEAP[$p_addr_i_i] + 4 | 0] = HEAP[$psize_addr_i_i] | 1;
  60747.                 HEAP[HEAP[$p_addr_i_i] + HEAP[$psize_addr_i_i] + 4 | 0] = 40;
  60748.                 HEAP[HEAP[$m_addr_i19_i] + 28 | 0] = HEAP[6848];
  60749.                 break;
  60750.               } else {
  60751.                 HEAP[$mn_i] = $1048 - 8 + (HEAP[HEAP[$m_addr_i73] - 8 + 4 | 0] & -8) | 0;
  60752.                 var $1093 = HEAP[$mn_i];
  60753.                 var $sub179_i = HEAP[$tbase_i] + HEAP[$tsize_i] - 40 + -HEAP[$mn_i] | 0;
  60754.                 HEAP[$m_addr_i31_i] = HEAP[$m_addr_i73];
  60755.                 HEAP[$p_addr_i32_i] = $1093;
  60756.                 HEAP[$psize_addr_i33_i] = $sub179_i;
  60757.                 if ((HEAP[$p_addr_i32_i] + 8 & 7 | 0) == 0) {
  60758.                   var $cond_i43_i = 0;
  60759.                 } else {
  60760.                   var $cond_i43_i = 8 - (HEAP[$p_addr_i32_i] + 8 & 7) & 7;
  60761.                 }
  60762.                 var $cond_i43_i;
  60763.                 HEAP[$offset_i34_i] = $cond_i43_i;
  60764.                 HEAP[$p_addr_i32_i] = HEAP[$p_addr_i32_i] + HEAP[$offset_i34_i] | 0;
  60765.                 HEAP[$psize_addr_i33_i] = HEAP[$psize_addr_i33_i] - HEAP[$offset_i34_i] | 0;
  60766.                 HEAP[HEAP[$m_addr_i31_i] + 24 | 0] = HEAP[$p_addr_i32_i];
  60767.                 HEAP[HEAP[$m_addr_i31_i] + 12 | 0] = HEAP[$psize_addr_i33_i];
  60768.                 HEAP[HEAP[$p_addr_i32_i] + 4 | 0] = HEAP[$psize_addr_i33_i] | 1;
  60769.                 HEAP[HEAP[$p_addr_i32_i] + HEAP[$psize_addr_i33_i] + 4 | 0] = 40;
  60770.                 HEAP[HEAP[$m_addr_i31_i] + 28 | 0] = HEAP[6848];
  60771.                 break;
  60772.               }
  60773.             }
  60774.           } while (0);
  60775.           if (HEAP[$nb_addr_i74] >>> 0 >= HEAP[HEAP[$m_addr_i73] + 12 | 0] >>> 0) {
  60776.             break;
  60777.           }
  60778.           var $topsize252_i = HEAP[$m_addr_i73] + 12 | 0;
  60779.           var $sub253_i = HEAP[$topsize252_i] - HEAP[$nb_addr_i74] | 0;
  60780.           HEAP[$topsize252_i] = $sub253_i;
  60781.           HEAP[$rsize_i75] = $sub253_i;
  60782.           HEAP[$p_i] = HEAP[HEAP[$m_addr_i73] + 24 | 0];
  60783.           var $1952 = HEAP[$p_i] + HEAP[$nb_addr_i74] | 0;
  60784.           HEAP[HEAP[$m_addr_i73] + 24 | 0] = $1952;
  60785.           HEAP[$r_i76] = $1952;
  60786.           HEAP[HEAP[$r_i76] + 4 | 0] = HEAP[$rsize_i75] | 1;
  60787.           HEAP[HEAP[$p_i] + 4 | 0] = HEAP[$nb_addr_i74] | 3;
  60788.           HEAP[$retval_i72] = HEAP[$p_i] + 8 | 0;
  60789.           break L295;
  60790.         }
  60791.       } while (0);
  60792.       var $call265_i = ___errno_location();
  60793.       HEAP[$call265_i] = 12;
  60794.       HEAP[$retval_i72] = 0;
  60795.     }
  60796.   } while (0);
  60797.   $mem = HEAP[$retval_i72];
  60798.   var $1985 = $mem;
  60799.   STACKTOP = __stackBase__;
  60800.   return $1985;
  60801. }
  60802. function _free($mem) {
  60803.   var label = 0;
  60804.   var __stackBase__ = STACKTOP;
  60805.   STACKTOP = STACKTOP + 100 | 0;
  60806.   var $m_addr_i1 = __stackBase__;
  60807.   var $released_i2 = __stackBase__ + 4;
  60808.   var $nsegs_i = __stackBase__ + 8;
  60809.   var $pred_i = __stackBase__ + 12;
  60810.   var $sp_i3 = __stackBase__ + 16;
  60811.   var $base_i4 = __stackBase__ + 20;
  60812.   var $size_i5 = __stackBase__ + 24;
  60813.   var $next3_i = __stackBase__ + 28;
  60814.   var $m_addr_i1_i = __stackBase__ + 32;
  60815.   var $p_addr_i_i = __stackBase__ + 36;
  60816.   var $psize_addr_i_i = __stackBase__ + 40;
  60817.   var $offset_i_i = __stackBase__ + 44;
  60818.   var $retval_i_i = __stackBase__ + 48;
  60819.   var $m_addr_i_i = __stackBase__ + 52;
  60820.   var $addr_addr_i_i = __stackBase__ + 56;
  60821.   var $sp_i_i = __stackBase__ + 60;
  60822.   var $m_addr_i = __stackBase__ + 64;
  60823.   var $pad_addr_i = __stackBase__ + 68;
  60824.   var $released_i = __stackBase__ + 72;
  60825.   var $unit_i = __stackBase__ + 76;
  60826.   var $extra_i = __stackBase__ + 80;
  60827.   var $sp_i = __stackBase__ + 84;
  60828.   var $old_br_i = __stackBase__ + 88;
  60829.   var $rel_br_i = __stackBase__ + 92;
  60830.   var $new_br_i = __stackBase__ + 96;
  60831.   var $mem_addr;
  60832.   var $p;
  60833.   var $psize;
  60834.   var $next;
  60835.   var $prevsize;
  60836.   var $prev;
  60837.   var $F;
  60838.   var $B;
  60839.   var $I;
  60840.   var $TP;
  60841.   var $XP;
  60842.   var $R;
  60843.   var $F77;
  60844.   var $RP;
  60845.   var $CP;
  60846.   var $H;
  60847.   var $C0;
  60848.   var $C1;
  60849.   var $tsize;
  60850.   var $dsize;
  60851.   var $nsize;
  60852.   var $F271;
  60853.   var $B273;
  60854.   var $I275;
  60855.   var $TP328;
  60856.   var $XP329;
  60857.   var $R331;
  60858.   var $F336;
  60859.   var $RP359;
  60860.   var $CP370;
  60861.   var $H397;
  60862.   var $C0439;
  60863.   var $C1440;
  60864.   var $I501;
  60865.   var $B503;
  60866.   var $F506;
  60867.   var $tp;
  60868.   var $H529;
  60869.   var $I530;
  60870.   var $X;
  60871.   var $Y;
  60872.   var $N;
  60873.   var $K;
  60874.   var $T;
  60875.   var $K579;
  60876.   var $C;
  60877.   var $F612;
  60878.   $mem_addr = $mem;
  60879.   if (($mem_addr | 0) == 0) {
  60880.     STACKTOP = __stackBase__;
  60881.     return;
  60882.   }
  60883.   $p = $mem_addr - 8 | 0;
  60884.   if ($p >>> 0 >= HEAP[105e3] >>> 0) {
  60885.     var $8 = (HEAP[$p + 4 | 0] & 3 | 0) != 1;
  60886.   } else {
  60887.     var $8 = 0;
  60888.   }
  60889.   var $8;
  60890.   if (($8 & 1 | 0) == 0) {
  60891.     _abort();
  60892.   }
  60893.   $psize = HEAP[$p + 4 | 0] & -8;
  60894.   $next = $p + $psize | 0;
  60895.   do {
  60896.     if ((HEAP[$p + 4 | 0] & 1 | 0) == 0) {
  60897.       $prevsize = HEAP[$p | 0];
  60898.       if ((HEAP[$p + 4 | 0] & 3 | 0) == 0) {
  60899.         $psize = $psize + ($prevsize + 16) | 0;
  60900.         STACKTOP = __stackBase__;
  60901.         return;
  60902.       }
  60903.       $prev = $p + -$prevsize | 0;
  60904.       $psize = $psize + $prevsize | 0;
  60905.       $p = $prev;
  60906.       if (($prev >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) == 0) {
  60907.         _abort();
  60908.       }
  60909.       if (($p | 0) == (HEAP[105004] | 0)) {
  60910.         if ((HEAP[$next + 4 | 0] & 3 | 0) != 3) {
  60911.           break;
  60912.         }
  60913.         HEAP[104992] = $psize;
  60914.         var $head214 = $next + 4 | 0;
  60915.         HEAP[$head214] = HEAP[$head214] & -2;
  60916.         HEAP[$p + 4 | 0] = $psize | 1;
  60917.         HEAP[$p + $psize | 0] = $psize;
  60918.         STACKTOP = __stackBase__;
  60919.         return;
  60920.       }
  60921.       var $36 = $p;
  60922.       if ($prevsize >>> 3 >>> 0 < 32) {
  60923.         $F = HEAP[$36 + 8 | 0];
  60924.         $B = HEAP[$p + 12 | 0];
  60925.         $I = $prevsize >>> 3;
  60926.         do {
  60927.           if (($F | 0) == (($I << 3) + 105024 | 0)) {
  60928.             var $51 = 1;
  60929.           } else {
  60930.             if (!($F >>> 0 >= HEAP[105e3] >>> 0)) {
  60931.               var $51 = 0;
  60932.               break;
  60933.             }
  60934.             var $51 = (HEAP[$F + 12 | 0] | 0) == ($p | 0);
  60935.           }
  60936.         } while (0);
  60937.         var $51;
  60938.         if (($51 & 1 | 0) == 0) {
  60939.           _abort();
  60940.         }
  60941.         if (($B | 0) == ($F | 0)) {
  60942.           HEAP[104984] = HEAP[104984] & (1 << $I ^ -1);
  60943.           break;
  60944.         }
  60945.         do {
  60946.           if (($B | 0) == (($I << 3) + 105024 | 0)) {
  60947.             var $66 = 1;
  60948.           } else {
  60949.             if (!($B >>> 0 >= HEAP[105e3] >>> 0)) {
  60950.               var $66 = 0;
  60951.               break;
  60952.             }
  60953.             var $66 = (HEAP[$B + 8 | 0] | 0) == ($p | 0);
  60954.           }
  60955.         } while (0);
  60956.         var $66;
  60957.         if (($66 & 1 | 0) != 0) {
  60958.           HEAP[$F + 12 | 0] = $B;
  60959.           HEAP[$B + 8 | 0] = $F;
  60960.           break;
  60961.         } else {
  60962.           _abort();
  60963.         }
  60964.       }
  60965.       $TP = $36;
  60966.       $XP = HEAP[$TP + 24 | 0];
  60967.       var $77 = $TP;
  60968.       L649 : do {
  60969.         if ((HEAP[$TP + 12 | 0] | 0) != ($TP | 0)) {
  60970.           $F77 = HEAP[$77 + 8 | 0];
  60971.           $R = HEAP[$TP + 12 | 0];
  60972.           do {
  60973.             if ($F77 >>> 0 >= HEAP[105e3] >>> 0) {
  60974.               if ((HEAP[$F77 + 12 | 0] | 0) != ($TP | 0)) {
  60975.                 var $90 = 0;
  60976.                 break;
  60977.               }
  60978.               var $90 = (HEAP[$R + 8 | 0] | 0) == ($TP | 0);
  60979.             } else {
  60980.               var $90 = 0;
  60981.             }
  60982.           } while (0);
  60983.           var $90;
  60984.           if (($90 & 1 | 0) != 0) {
  60985.             HEAP[$F77 + 12 | 0] = $R;
  60986.             HEAP[$R + 8 | 0] = $F77;
  60987.             break;
  60988.           } else {
  60989.             _abort();
  60990.           }
  60991.         } else {
  60992.           var $arrayidx99 = $77 + 20 | 0;
  60993.           $RP = $arrayidx99;
  60994.           var $95 = HEAP[$arrayidx99];
  60995.           $R = $95;
  60996.           do {
  60997.             if (($95 | 0) == 0) {
  60998.               var $arrayidx103 = $TP + 16 | 0;
  60999.               $RP = $arrayidx103;
  61000.               var $97 = HEAP[$arrayidx103];
  61001.               $R = $97;
  61002.               if (($97 | 0) != 0) {
  61003.                 break;
  61004.               } else {
  61005.                 break L649;
  61006.               }
  61007.             }
  61008.           } while (0);
  61009.           while (1) {
  61010.             var $arrayidx108 = $R + 20 | 0;
  61011.             $CP = $arrayidx108;
  61012.             if ((HEAP[$arrayidx108] | 0) == 0) {
  61013.               var $arrayidx113 = $R + 16 | 0;
  61014.               $CP = $arrayidx113;
  61015.               if ((HEAP[$arrayidx113] | 0) == 0) {
  61016.                 break;
  61017.               }
  61018.             }
  61019.             var $102 = $CP;
  61020.             $RP = $102;
  61021.             $R = HEAP[$102];
  61022.           }
  61023.           if (($RP >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61024.             HEAP[$RP] = 0;
  61025.             break;
  61026.           } else {
  61027.             _abort();
  61028.           }
  61029.         }
  61030.       } while (0);
  61031.       if (($XP | 0) == 0) {
  61032.         break;
  61033.       }
  61034.       $H = (HEAP[$TP + 28 | 0] << 2) + 105288 | 0;
  61035.       do {
  61036.         if (($TP | 0) == (HEAP[$H] | 0)) {
  61037.           var $114 = $R;
  61038.           HEAP[$H] = $114;
  61039.           if (($114 | 0) != 0) {
  61040.             break;
  61041.           }
  61042.           HEAP[104988] = HEAP[104988] & (1 << HEAP[$TP + 28 | 0] ^ -1);
  61043.         } else {
  61044.           if (($XP >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) == 0) {
  61045.             _abort();
  61046.           }
  61047.           var $125 = $R;
  61048.           var $child153 = $XP + 16 | 0;
  61049.           if ((HEAP[$XP + 16 | 0] | 0) == ($TP | 0)) {
  61050.             HEAP[$child153 | 0] = $125;
  61051.             break;
  61052.           } else {
  61053.             HEAP[$child153 + 4 | 0] = $125;
  61054.             break;
  61055.           }
  61056.         }
  61057.       } while (0);
  61058.       if (($R | 0) == 0) {
  61059.         break;
  61060.       }
  61061.       if (($R >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) == 0) {
  61062.         _abort();
  61063.       }
  61064.       HEAP[$R + 24 | 0] = $XP;
  61065.       var $134 = HEAP[$TP + 16 | 0];
  61066.       $C0 = $134;
  61067.       do {
  61068.         if (($134 | 0) != 0) {
  61069.           if (($C0 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61070.             HEAP[$R + 16 | 0] = $C0;
  61071.             HEAP[$C0 + 24 | 0] = $R;
  61072.             break;
  61073.           } else {
  61074.             _abort();
  61075.           }
  61076.         }
  61077.       } while (0);
  61078.       var $143 = HEAP[$TP + 20 | 0];
  61079.       $C1 = $143;
  61080.       if (($143 | 0) == 0) {
  61081.         break;
  61082.       }
  61083.       if (($C1 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61084.         HEAP[$R + 20 | 0] = $C1;
  61085.         HEAP[$C1 + 24 | 0] = $R;
  61086.         break;
  61087.       } else {
  61088.         _abort();
  61089.       }
  61090.     }
  61091.   } while (0);
  61092.   if ($p >>> 0 < $next >>> 0) {
  61093.     var $169 = (HEAP[$next + 4 | 0] & 1 | 0) != 0;
  61094.   } else {
  61095.     var $169 = 0;
  61096.   }
  61097.   var $169;
  61098.   if (($169 & 1 | 0) == 0) {
  61099.     _abort();
  61100.   }
  61101.   var $172 = $next;
  61102.   do {
  61103.     if ((HEAP[$next + 4 | 0] & 2 | 0) != 0) {
  61104.       var $head490 = $172 + 4 | 0;
  61105.       HEAP[$head490] = HEAP[$head490] & -2;
  61106.       HEAP[$p + 4 | 0] = $psize | 1;
  61107.       HEAP[$p + $psize | 0] = $psize;
  61108.     } else {
  61109.       if (($172 | 0) == (HEAP[105008] | 0)) {
  61110.         var $add243 = HEAP[104996] + $psize | 0;
  61111.         HEAP[104996] = $add243;
  61112.         $tsize = $add243;
  61113.         HEAP[105008] = $p;
  61114.         HEAP[$p + 4 | 0] = $tsize | 1;
  61115.         if (($p | 0) == (HEAP[105004] | 0)) {
  61116.           HEAP[105004] = 0;
  61117.           HEAP[104992] = 0;
  61118.         }
  61119.         if ($tsize >>> 0 <= HEAP[105012] >>> 0) {
  61120.           STACKTOP = __stackBase__;
  61121.           return;
  61122.         }
  61123.         HEAP[$m_addr_i] = 104984;
  61124.         HEAP[$pad_addr_i] = 0;
  61125.         HEAP[$released_i] = 0;
  61126.         do {
  61127.           if ((HEAP[6832] | 0) != 0) {
  61128.             label = 499;
  61129.           } else {
  61130.             _init_mparams();
  61131.             if (HEAP[$pad_addr_i] >>> 0 < 4294967232) {
  61132.               label = 499;
  61133.               break;
  61134.             } else {
  61135.               break;
  61136.             }
  61137.           }
  61138.         } while (0);
  61139.         do {
  61140.           if (label == 499) {
  61141.             if ((HEAP[HEAP[$m_addr_i] + 24 | 0] | 0) == 0) {
  61142.               break;
  61143.             }
  61144.             HEAP[$pad_addr_i] = HEAP[$pad_addr_i] + 40 | 0;
  61145.             do {
  61146.               if (HEAP[HEAP[$m_addr_i] + 12 | 0] >>> 0 > HEAP[$pad_addr_i] >>> 0) {
  61147.                 HEAP[$unit_i] = HEAP[6840];
  61148.                 var $mul_i = Math.imul(Math.floor(((HEAP[HEAP[$m_addr_i] + 12 | 0] - 1 + -HEAP[$pad_addr_i] + HEAP[$unit_i] | 0) >>> 0) / (HEAP[$unit_i] >>> 0)) - 1 | 0, HEAP[$unit_i]);
  61149.                 HEAP[$extra_i] = $mul_i;
  61150.                 var $209 = HEAP[HEAP[$m_addr_i] + 24 | 0];
  61151.                 HEAP[$m_addr_i_i] = HEAP[$m_addr_i];
  61152.                 HEAP[$addr_addr_i_i] = $209;
  61153.                 HEAP[$sp_i_i] = HEAP[$m_addr_i_i] + 448 | 0;
  61154.                 while (1) {
  61155.                   if (HEAP[$addr_addr_i_i] >>> 0 >= HEAP[HEAP[$sp_i_i] | 0] >>> 0) {
  61156.                     if (HEAP[$addr_addr_i_i] >>> 0 < (HEAP[HEAP[$sp_i_i] | 0] + HEAP[HEAP[$sp_i_i] + 4 | 0] | 0) >>> 0) {
  61157.                       label = 504;
  61158.                       break;
  61159.                     }
  61160.                   }
  61161.                   var $225 = HEAP[HEAP[$sp_i_i] + 8 | 0];
  61162.                   HEAP[$sp_i_i] = $225;
  61163.                   if (($225 | 0) == 0) {
  61164.                     label = 506;
  61165.                     break;
  61166.                   }
  61167.                 }
  61168.                 if (label == 504) {
  61169.                   HEAP[$retval_i_i] = HEAP[$sp_i_i];
  61170.                 } else if (label == 506) {
  61171.                   HEAP[$retval_i_i] = 0;
  61172.                 }
  61173.                 HEAP[$sp_i] = HEAP[$retval_i_i];
  61174.                 do {
  61175.                   if ((HEAP[HEAP[$sp_i] + 12 | 0] & 8 | 0) != 0) {
  61176.                     label = 514;
  61177.                   } else {
  61178.                     if (HEAP[$extra_i] >>> 0 >= 2147483647) {
  61179.                       HEAP[$extra_i] = -2147483648 - HEAP[$unit_i] | 0;
  61180.                     }
  61181.                     var $call20_i = _sbrk(0);
  61182.                     HEAP[$old_br_i] = $call20_i;
  61183.                     if ((HEAP[$old_br_i] | 0) != (HEAP[HEAP[$sp_i] | 0] + HEAP[HEAP[$sp_i] + 4 | 0] | 0)) {
  61184.                       label = 514;
  61185.                       break;
  61186.                     }
  61187.                     var $call24_i = _sbrk(-HEAP[$extra_i] | 0);
  61188.                     HEAP[$rel_br_i] = $call24_i;
  61189.                     var $call25_i = _sbrk(0);
  61190.                     HEAP[$new_br_i] = $call25_i;
  61191.                     if ((HEAP[$rel_br_i] | 0) == -1) {
  61192.                       label = 514;
  61193.                       break;
  61194.                     }
  61195.                     if (HEAP[$new_br_i] >>> 0 >= HEAP[$old_br_i] >>> 0) {
  61196.                       label = 514;
  61197.                       break;
  61198.                     }
  61199.                     var $sub_ptr_sub_i = HEAP[$old_br_i] - HEAP[$new_br_i] | 0;
  61200.                     HEAP[$released_i] = $sub_ptr_sub_i;
  61201.                     var $246 = $sub_ptr_sub_i;
  61202.                     break;
  61203.                   }
  61204.                 } while (0);
  61205.                 if (label == 514) {
  61206.                   var $246 = HEAP[$released_i];
  61207.                 }
  61208.                 var $246;
  61209.                 if (($246 | 0) == 0) {
  61210.                   break;
  61211.                 }
  61212.                 var $size36_i = HEAP[$sp_i] + 4 | 0;
  61213.                 HEAP[$size36_i] = HEAP[$size36_i] - HEAP[$released_i] | 0;
  61214.                 var $footprint_i = HEAP[$m_addr_i] + 432 | 0;
  61215.                 HEAP[$footprint_i] = HEAP[$footprint_i] - HEAP[$released_i] | 0;
  61216.                 var $255 = HEAP[HEAP[$m_addr_i] + 24 | 0];
  61217.                 var $sub41_i = HEAP[HEAP[$m_addr_i] + 12 | 0] - HEAP[$released_i] | 0;
  61218.                 HEAP[$m_addr_i1_i] = HEAP[$m_addr_i];
  61219.                 HEAP[$p_addr_i_i] = $255;
  61220.                 HEAP[$psize_addr_i_i] = $sub41_i;
  61221.                 if ((HEAP[$p_addr_i_i] + 8 & 7 | 0) == 0) {
  61222.                   var $cond_i_i = 0;
  61223.                 } else {
  61224.                   var $cond_i_i = 8 - (HEAP[$p_addr_i_i] + 8 & 7) & 7;
  61225.                 }
  61226.                 var $cond_i_i;
  61227.                 HEAP[$offset_i_i] = $cond_i_i;
  61228.                 HEAP[$p_addr_i_i] = HEAP[$p_addr_i_i] + HEAP[$offset_i_i] | 0;
  61229.                 HEAP[$psize_addr_i_i] = HEAP[$psize_addr_i_i] - HEAP[$offset_i_i] | 0;
  61230.                 HEAP[HEAP[$m_addr_i1_i] + 24 | 0] = HEAP[$p_addr_i_i];
  61231.                 HEAP[HEAP[$m_addr_i1_i] + 12 | 0] = HEAP[$psize_addr_i_i];
  61232.                 HEAP[HEAP[$p_addr_i_i] + 4 | 0] = HEAP[$psize_addr_i_i] | 1;
  61233.                 HEAP[HEAP[$p_addr_i_i] + HEAP[$psize_addr_i_i] + 4 | 0] = 40;
  61234.                 HEAP[HEAP[$m_addr_i1_i] + 28 | 0] = HEAP[6848];
  61235.               }
  61236.             } while (0);
  61237.             if ((HEAP[$released_i] | 0) != 0) {
  61238.               break;
  61239.             }
  61240.             if (HEAP[HEAP[$m_addr_i] + 12 | 0] >>> 0 <= HEAP[HEAP[$m_addr_i] + 28 | 0] >>> 0) {
  61241.               break;
  61242.             }
  61243.             HEAP[HEAP[$m_addr_i] + 28 | 0] = -1;
  61244.           }
  61245.         } while (0);
  61246.         STACKTOP = __stackBase__;
  61247.         return;
  61248.       }
  61249.       if (($next | 0) == (HEAP[105004] | 0)) {
  61250.         var $add258 = HEAP[104992] + $psize | 0;
  61251.         HEAP[104992] = $add258;
  61252.         $dsize = $add258;
  61253.         HEAP[105004] = $p;
  61254.         HEAP[$p + 4 | 0] = $dsize | 1;
  61255.         HEAP[$p + $dsize | 0] = $dsize;
  61256.         STACKTOP = __stackBase__;
  61257.         return;
  61258.       }
  61259.       $nsize = HEAP[$next + 4 | 0] & -8;
  61260.       $psize = $psize + $nsize | 0;
  61261.       var $323 = $next;
  61262.       do {
  61263.         if ($nsize >>> 3 >>> 0 < 32) {
  61264.           $F271 = HEAP[$323 + 8 | 0];
  61265.           $B273 = HEAP[$next + 12 | 0];
  61266.           $I275 = $nsize >>> 3;
  61267.           do {
  61268.             if (($F271 | 0) == (($I275 << 3) + 105024 | 0)) {
  61269.               var $338 = 1;
  61270.             } else {
  61271.               if (!($F271 >>> 0 >= HEAP[105e3] >>> 0)) {
  61272.                 var $338 = 0;
  61273.                 break;
  61274.               }
  61275.               var $338 = (HEAP[$F271 + 12 | 0] | 0) == ($next | 0);
  61276.             }
  61277.           } while (0);
  61278.           var $338;
  61279.           if (($338 & 1 | 0) == 0) {
  61280.             _abort();
  61281.           }
  61282.           if (($B273 | 0) == ($F271 | 0)) {
  61283.             HEAP[104984] = HEAP[104984] & (1 << $I275 ^ -1);
  61284.             break;
  61285.           }
  61286.           do {
  61287.             if (($B273 | 0) == (($I275 << 3) + 105024 | 0)) {
  61288.               var $353 = 1;
  61289.             } else {
  61290.               if (!($B273 >>> 0 >= HEAP[105e3] >>> 0)) {
  61291.                 var $353 = 0;
  61292.                 break;
  61293.               }
  61294.               var $353 = (HEAP[$B273 + 8 | 0] | 0) == ($next | 0);
  61295.             }
  61296.           } while (0);
  61297.           var $353;
  61298.           if (($353 & 1 | 0) != 0) {
  61299.             HEAP[$F271 + 12 | 0] = $B273;
  61300.             HEAP[$B273 + 8 | 0] = $F271;
  61301.             break;
  61302.           } else {
  61303.             _abort();
  61304.           }
  61305.         } else {
  61306.           $TP328 = $323;
  61307.           $XP329 = HEAP[$TP328 + 24 | 0];
  61308.           var $364 = $TP328;
  61309.           L775 : do {
  61310.             if ((HEAP[$TP328 + 12 | 0] | 0) != ($TP328 | 0)) {
  61311.               $F336 = HEAP[$364 + 8 | 0];
  61312.               $R331 = HEAP[$TP328 + 12 | 0];
  61313.               do {
  61314.                 if ($F336 >>> 0 >= HEAP[105e3] >>> 0) {
  61315.                   if ((HEAP[$F336 + 12 | 0] | 0) != ($TP328 | 0)) {
  61316.                     var $377 = 0;
  61317.                     break;
  61318.                   }
  61319.                   var $377 = (HEAP[$R331 + 8 | 0] | 0) == ($TP328 | 0);
  61320.                 } else {
  61321.                   var $377 = 0;
  61322.                 }
  61323.               } while (0);
  61324.               var $377;
  61325.               if (($377 & 1 | 0) != 0) {
  61326.                 HEAP[$F336 + 12 | 0] = $R331;
  61327.                 HEAP[$R331 + 8 | 0] = $F336;
  61328.                 break;
  61329.               } else {
  61330.                 _abort();
  61331.               }
  61332.             } else {
  61333.               var $arrayidx361 = $364 + 20 | 0;
  61334.               $RP359 = $arrayidx361;
  61335.               var $382 = HEAP[$arrayidx361];
  61336.               $R331 = $382;
  61337.               do {
  61338.                 if (($382 | 0) == 0) {
  61339.                   var $arrayidx366 = $TP328 + 16 | 0;
  61340.                   $RP359 = $arrayidx366;
  61341.                   var $384 = HEAP[$arrayidx366];
  61342.                   $R331 = $384;
  61343.                   if (($384 | 0) != 0) {
  61344.                     break;
  61345.                   } else {
  61346.                     break L775;
  61347.                   }
  61348.                 }
  61349.               } while (0);
  61350.               while (1) {
  61351.                 var $arrayidx373 = $R331 + 20 | 0;
  61352.                 $CP370 = $arrayidx373;
  61353.                 if ((HEAP[$arrayidx373] | 0) == 0) {
  61354.                   var $arrayidx378 = $R331 + 16 | 0;
  61355.                   $CP370 = $arrayidx378;
  61356.                   if ((HEAP[$arrayidx378] | 0) == 0) {
  61357.                     break;
  61358.                   }
  61359.                 }
  61360.                 var $389 = $CP370;
  61361.                 $RP359 = $389;
  61362.                 $R331 = HEAP[$389];
  61363.               }
  61364.               if (($RP359 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61365.                 HEAP[$RP359] = 0;
  61366.                 break;
  61367.               } else {
  61368.                 _abort();
  61369.               }
  61370.             }
  61371.           } while (0);
  61372.           if (($XP329 | 0) == 0) {
  61373.             break;
  61374.           }
  61375.           $H397 = (HEAP[$TP328 + 28 | 0] << 2) + 105288 | 0;
  61376.           do {
  61377.             if (($TP328 | 0) == (HEAP[$H397] | 0)) {
  61378.               var $401 = $R331;
  61379.               HEAP[$H397] = $401;
  61380.               if (($401 | 0) != 0) {
  61381.                 break;
  61382.               }
  61383.               HEAP[104988] = HEAP[104988] & (1 << HEAP[$TP328 + 28 | 0] ^ -1);
  61384.             } else {
  61385.               if (($XP329 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) == 0) {
  61386.                 _abort();
  61387.               }
  61388.               var $412 = $R331;
  61389.               var $child422 = $XP329 + 16 | 0;
  61390.               if ((HEAP[$XP329 + 16 | 0] | 0) == ($TP328 | 0)) {
  61391.                 HEAP[$child422 | 0] = $412;
  61392.                 break;
  61393.               } else {
  61394.                 HEAP[$child422 + 4 | 0] = $412;
  61395.                 break;
  61396.               }
  61397.             }
  61398.           } while (0);
  61399.           if (($R331 | 0) == 0) {
  61400.             break;
  61401.           }
  61402.           if (($R331 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) == 0) {
  61403.             _abort();
  61404.           }
  61405.           HEAP[$R331 + 24 | 0] = $XP329;
  61406.           var $421 = HEAP[$TP328 + 16 | 0];
  61407.           $C0439 = $421;
  61408.           do {
  61409.             if (($421 | 0) != 0) {
  61410.               if (($C0439 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61411.                 HEAP[$R331 + 16 | 0] = $C0439;
  61412.                 HEAP[$C0439 + 24 | 0] = $R331;
  61413.                 break;
  61414.               } else {
  61415.                 _abort();
  61416.               }
  61417.             }
  61418.           } while (0);
  61419.           var $430 = HEAP[$TP328 + 20 | 0];
  61420.           $C1440 = $430;
  61421.           if (($430 | 0) == 0) {
  61422.             break;
  61423.           }
  61424.           if (($C1440 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61425.             HEAP[$R331 + 20 | 0] = $C1440;
  61426.             HEAP[$C1440 + 24 | 0] = $R331;
  61427.             break;
  61428.           } else {
  61429.             _abort();
  61430.           }
  61431.         }
  61432.       } while (0);
  61433.       HEAP[$p + 4 | 0] = $psize | 1;
  61434.       HEAP[$p + $psize | 0] = $psize;
  61435.       if (($p | 0) != (HEAP[105004] | 0)) {
  61436.         break;
  61437.       }
  61438.       HEAP[104992] = $psize;
  61439.       STACKTOP = __stackBase__;
  61440.       return;
  61441.     }
  61442.   } while (0);
  61443.   if ($psize >>> 3 >>> 0 < 32) {
  61444.     $I501 = $psize >>> 3;
  61445.     $B503 = ($I501 << 3) + 105024 | 0;
  61446.     $F506 = $B503;
  61447.     do {
  61448.       if ((1 << $I501 & HEAP[104984] | 0) != 0) {
  61449.         if ((HEAP[$B503 + 8 | 0] >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61450.           $F506 = HEAP[$B503 + 8 | 0];
  61451.           break;
  61452.         } else {
  61453.           _abort();
  61454.         }
  61455.       } else {
  61456.         HEAP[104984] = HEAP[104984] | 1 << $I501;
  61457.       }
  61458.     } while (0);
  61459.     HEAP[$B503 + 8 | 0] = $p;
  61460.     HEAP[$F506 + 12 | 0] = $p;
  61461.     HEAP[$p + 8 | 0] = $F506;
  61462.     HEAP[$p + 12 | 0] = $B503;
  61463.     STACKTOP = __stackBase__;
  61464.     return;
  61465.   }
  61466.   $tp = $p;
  61467.   $X = $psize >>> 8;
  61468.   do {
  61469.     if (($X | 0) == 0) {
  61470.       $I530 = 0;
  61471.     } else {
  61472.       if ($X >>> 0 > 65535) {
  61473.         $I530 = 31;
  61474.         break;
  61475.       } else {
  61476.         $Y = $X;
  61477.         $N = ($Y - 256 | 0) >>> 16 & 8;
  61478.         var $shl542 = $Y << $N;
  61479.         $Y = $shl542;
  61480.         $K = ($shl542 - 4096 | 0) >>> 16 & 4;
  61481.         $N = $N + $K | 0;
  61482.         var $shl547 = $Y << $K;
  61483.         $Y = $shl547;
  61484.         var $and550 = ($shl547 - 16384 | 0) >>> 16 & 2;
  61485.         $K = $and550;
  61486.         $N = $and550 + $N | 0;
  61487.         var $shl553 = $Y << $K;
  61488.         $Y = $shl553;
  61489.         $K = -$N + ($shl553 >>> 15) + 14 | 0;
  61490.         $I530 = ($K << 1) + ($psize >>> (($K + 7 | 0) >>> 0) & 1) | 0;
  61491.         break;
  61492.       }
  61493.     }
  61494.   } while (0);
  61495.   $H529 = ($I530 << 2) + 105288 | 0;
  61496.   HEAP[$tp + 28 | 0] = $I530;
  61497.   HEAP[$tp + 20 | 0] = 0;
  61498.   HEAP[$tp + 16 | 0] = 0;
  61499.   L846 : do {
  61500.     if ((1 << $I530 & HEAP[104988] | 0) != 0) {
  61501.       $T = HEAP[$H529];
  61502.       if (($I530 | 0) == 31) {
  61503.         var $cond = 0;
  61504.       } else {
  61505.         var $cond = -($I530 >>> 1) + 25 | 0;
  61506.       }
  61507.       var $cond;
  61508.       $K579 = $psize << $cond;
  61509.       L852 : do {
  61510.         if ((HEAP[$T + 4 | 0] & -8 | 0) != ($psize | 0)) {
  61511.           while (1) {
  61512.             $C = (($K579 >>> 31 & 1) << 2) + $T + 16 | 0;
  61513.             $K579 = $K579 << 1;
  61514.             var $530 = $C;
  61515.             if ((HEAP[$C] | 0) == 0) {
  61516.               break;
  61517.             }
  61518.             $T = HEAP[$530];
  61519.             if ((HEAP[$T + 4 | 0] & -8 | 0) == ($psize | 0)) {
  61520.               break L852;
  61521.             }
  61522.           }
  61523.           if (($530 >>> 0 >= HEAP[105e3] >>> 0 & 1 | 0) != 0) {
  61524.             HEAP[$C] = $tp;
  61525.             HEAP[$tp + 24 | 0] = $T;
  61526.             var $541 = $tp;
  61527.             HEAP[$tp + 12 | 0] = $541;
  61528.             HEAP[$tp + 8 | 0] = $541;
  61529.             break L846;
  61530.           } else {
  61531.             _abort();
  61532.           }
  61533.         }
  61534.       } while (0);
  61535.       $F612 = HEAP[$T + 8 | 0];
  61536.       if ($T >>> 0 >= HEAP[105e3] >>> 0) {
  61537.         var $552 = $F612 >>> 0 >= HEAP[105e3] >>> 0;
  61538.       } else {
  61539.         var $552 = 0;
  61540.       }
  61541.       var $552;
  61542.       if (($552 & 1 | 0) != 0) {
  61543.         var $553 = $tp;
  61544.         HEAP[$F612 + 12 | 0] = $553;
  61545.         HEAP[$T + 8 | 0] = $553;
  61546.         HEAP[$tp + 8 | 0] = $F612;
  61547.         HEAP[$tp + 12 | 0] = $T;
  61548.         HEAP[$tp + 24 | 0] = 0;
  61549.         break;
  61550.       } else {
  61551.         _abort();
  61552.       }
  61553.     } else {
  61554.       HEAP[104988] = HEAP[104988] | 1 << $I530;
  61555.       HEAP[$H529] = $tp;
  61556.       HEAP[$tp + 24 | 0] = $H529;
  61557.       var $514 = $tp;
  61558.       HEAP[$tp + 12 | 0] = $514;
  61559.       HEAP[$tp + 8 | 0] = $514;
  61560.     }
  61561.   } while (0);
  61562.   var $dec = HEAP[105016] - 1 | 0;
  61563.   HEAP[105016] = $dec;
  61564.   if (($dec | 0) != 0) {
  61565.     STACKTOP = __stackBase__;
  61566.     return;
  61567.   }
  61568.   HEAP[$m_addr_i1] = 104984;
  61569.   HEAP[$released_i2] = 0;
  61570.   HEAP[$nsegs_i] = 0;
  61571.   HEAP[$pred_i] = HEAP[$m_addr_i1] + 448 | 0;
  61572.   var $572 = HEAP[HEAP[$pred_i] + 8 | 0];
  61573.   HEAP[$sp_i3] = $572;
  61574.   L871 : do {
  61575.     if (($572 | 0) != 0) {
  61576.       while (1) {
  61577.         HEAP[$base_i4] = HEAP[HEAP[$sp_i3] | 0];
  61578.         HEAP[$size_i5] = HEAP[HEAP[$sp_i3] + 4 | 0];
  61579.         var $578 = HEAP[HEAP[$sp_i3] + 8 | 0];
  61580.         HEAP[$next3_i] = $578;
  61581.         HEAP[$nsegs_i] = HEAP[$nsegs_i] + 1 | 0;
  61582.         HEAP[$pred_i] = HEAP[$sp_i3];
  61583.         HEAP[$sp_i3] = $578;
  61584.         if (($578 | 0) == 0) {
  61585.           break L871;
  61586.         }
  61587.       }
  61588.     }
  61589.   } while (0);
  61590.   HEAP[HEAP[$m_addr_i1] + 32 | 0] = -1;
  61591.   STACKTOP = __stackBase__;
  61592.   return;
  61593. }
  61594. function _calloc($n_elements, $elem_size) {
  61595.   var $n_elements_addr;
  61596.   var $elem_size_addr;
  61597.   var $mem;
  61598.   var $req;
  61599.   $n_elements_addr = $n_elements;
  61600.   $elem_size_addr = $elem_size;
  61601.   $req = 0;
  61602.   do {
  61603.     if (($n_elements_addr | 0) != 0) {
  61604.       $req = Math.imul($elem_size_addr, $n_elements_addr);
  61605.       if ((($elem_size_addr | $n_elements_addr) & -65536 | 0) == 0) {
  61606.         break;
  61607.       }
  61608.       if ((Math.floor(($req >>> 0) / ($n_elements_addr >>> 0)) | 0) == ($elem_size_addr | 0)) {
  61609.         break;
  61610.       }
  61611.       $req = -1;
  61612.     }
  61613.   } while (0);
  61614.   var $call = _malloc($req);
  61615.   $mem = $call;
  61616.   if (($call | 0) == 0) {
  61617.     var $14 = $mem;
  61618.     return $14;
  61619.   }
  61620.   if ((HEAP[$mem - 8 + 4 | 0] & 3 | 0) == 0) {
  61621.     var $14 = $mem;
  61622.     return $14;
  61623.   }
  61624.   var $12 = $mem;
  61625.   var $13 = $req;
  61626.   for (var $$dest = $12, $$stop = $$dest + $13; $$dest < $$stop; $$dest++) {
  61627.     HEAP[$$dest] = 0;
  61628.   }
  61629.   var $14 = $mem;
  61630.   return $14;
  61631. }
  61632. function _realloc($oldmem, $bytes) {
  61633.   var __stackBase__ = STACKTOP;
  61634.   STACKTOP = STACKTOP + 172 | 0;
  61635.   var $retval_i_i = __stackBase__;
  61636.   var $m_addr_i_i = __stackBase__ + 4;
  61637.   var $oldp_addr_i_i = __stackBase__ + 8;
  61638.   var $nb_addr_i_i = __stackBase__ + 12;
  61639.   var $flags_addr_i_i = __stackBase__ + 16;
  61640.   var $oldsize_i_i = __stackBase__ + 20;
  61641.   var $offset_i_i = __stackBase__ + 24;
  61642.   var $oldmmsize_i_i = __stackBase__ + 28;
  61643.   var $newmmsize_i_i = __stackBase__ + 32;
  61644.   var $cp_i_i = __stackBase__ + 36;
  61645.   var $m_addr_i = __stackBase__ + 40;
  61646.   var $p_addr_i = __stackBase__ + 44;
  61647.   var $nb_addr_i = __stackBase__ + 48;
  61648.   var $can_move_addr_i = __stackBase__ + 52;
  61649.   var $newp_i = __stackBase__ + 56;
  61650.   var $oldsize_i = __stackBase__ + 60;
  61651.   var $next_i = __stackBase__ + 64;
  61652.   var $rsize_i = __stackBase__ + 68;
  61653.   var $r_i = __stackBase__ + 72;
  61654.   var $newsize_i = __stackBase__ + 76;
  61655.   var $newtopsize_i = __stackBase__ + 80;
  61656.   var $newtop_i = __stackBase__ + 84;
  61657.   var $dvs_i = __stackBase__ + 88;
  61658.   var $dsize_i = __stackBase__ + 92;
  61659.   var $r65_i = __stackBase__ + 96;
  61660.   var $n_i = __stackBase__ + 100;
  61661.   var $newsize84_i = __stackBase__ + 104;
  61662.   var $nextsize_i = __stackBase__ + 108;
  61663.   var $rsize108_i = __stackBase__ + 112;
  61664.   var $F_i = __stackBase__ + 116;
  61665.   var $B_i = __stackBase__ + 120;
  61666.   var $I_i = __stackBase__ + 124;
  61667.   var $TP_i = __stackBase__ + 128;
  61668.   var $XP_i = __stackBase__ + 132;
  61669.   var $R_i = __stackBase__ + 136;
  61670.   var $F158_i = __stackBase__ + 140;
  61671.   var $RP_i = __stackBase__ + 144;
  61672.   var $CP_i = __stackBase__ + 148;
  61673.   var $H_i = __stackBase__ + 152;
  61674.   var $C0_i = __stackBase__ + 156;
  61675.   var $C1_i = __stackBase__ + 160;
  61676.   var $newsize291_i = __stackBase__ + 164;
  61677.   var $r302_i = __stackBase__ + 168;
  61678.   var $oldmem_addr;
  61679.   var $bytes_addr;
  61680.   var $mem;
  61681.   var $oldp;
  61682.   var $oc;
  61683.   $oldmem_addr = $oldmem;
  61684.   $bytes_addr = $bytes;
  61685.   $mem = 0;
  61686.   var $1 = $bytes_addr;
  61687.   if (($oldmem_addr | 0) == 0) {
  61688.     $mem = _malloc($1);
  61689.     var $449 = $mem;
  61690.     STACKTOP = __stackBase__;
  61691.     return $449;
  61692.   }
  61693.   if ($1 >>> 0 >= 4294967232) {
  61694.     var $call3 = ___errno_location();
  61695.     HEAP[$call3] = 12;
  61696.     var $449 = $mem;
  61697.     STACKTOP = __stackBase__;
  61698.     return $449;
  61699.   }
  61700.   if ($bytes_addr >>> 0 < 11) {
  61701.     var $cond = 16;
  61702.   } else {
  61703.     var $cond = $bytes_addr + 11 & -8;
  61704.   }
  61705.   var $cond;
  61706.   $oldp = $oldmem_addr - 8 | 0;
  61707.   HEAP[$m_addr_i] = 104984;
  61708.   HEAP[$p_addr_i] = $oldp;
  61709.   HEAP[$nb_addr_i] = $cond;
  61710.   HEAP[$can_move_addr_i] = 1;
  61711.   HEAP[$newp_i] = 0;
  61712.   HEAP[$oldsize_i] = HEAP[HEAP[$p_addr_i] + 4 | 0] & -8;
  61713.   HEAP[$next_i] = HEAP[$p_addr_i] + HEAP[$oldsize_i] | 0;
  61714.   do {
  61715.     if (HEAP[$p_addr_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0) {
  61716.       if ((HEAP[HEAP[$p_addr_i] + 4 | 0] & 3 | 0) == 1) {
  61717.         var $60 = 0;
  61718.         break;
  61719.       }
  61720.       if (HEAP[$p_addr_i] >>> 0 >= HEAP[$next_i] >>> 0) {
  61721.         var $60 = 0;
  61722.         break;
  61723.       }
  61724.       var $60 = (HEAP[HEAP[$next_i] + 4 | 0] & 1 | 0) != 0;
  61725.     } else {
  61726.       var $60 = 0;
  61727.     }
  61728.   } while (0);
  61729.   var $60;
  61730.   if (($60 & 1 | 0) == 0) {
  61731.     _abort();
  61732.   }
  61733.   L909 : do {
  61734.     if ((HEAP[HEAP[$p_addr_i] + 4 | 0] & 3 | 0) == 0) {
  61735.       var $64 = HEAP[$p_addr_i];
  61736.       var $65 = HEAP[$nb_addr_i];
  61737.       var $66 = HEAP[$can_move_addr_i];
  61738.       HEAP[$m_addr_i_i] = HEAP[$m_addr_i];
  61739.       HEAP[$oldp_addr_i_i] = $64;
  61740.       HEAP[$nb_addr_i_i] = $65;
  61741.       HEAP[$flags_addr_i_i] = $66;
  61742.       HEAP[$oldsize_i_i] = HEAP[HEAP[$oldp_addr_i_i] + 4 | 0] & -8;
  61743.       L911 : do {
  61744.         if (HEAP[$nb_addr_i_i] >>> 3 >>> 0 < 32) {
  61745.           HEAP[$retval_i_i] = 0;
  61746.         } else {
  61747.           do {
  61748.             if (HEAP[$oldsize_i_i] >>> 0 >= (HEAP[$nb_addr_i_i] + 4 | 0) >>> 0) {
  61749.               if (!((HEAP[$oldsize_i_i] - HEAP[$nb_addr_i_i] | 0) >>> 0 <= HEAP[6840] << 1 >>> 0)) {
  61750.                 break;
  61751.               }
  61752.               HEAP[$retval_i_i] = HEAP[$oldp_addr_i_i];
  61753.               break L911;
  61754.             }
  61755.           } while (0);
  61756.           HEAP[$offset_i_i] = HEAP[HEAP[$oldp_addr_i_i] | 0];
  61757.           HEAP[$oldmmsize_i_i] = HEAP[$oldsize_i_i] + HEAP[$offset_i_i] + 16 | 0;
  61758.           HEAP[$newmmsize_i_i] = (HEAP[6836] - 1 ^ -1) & HEAP[$nb_addr_i_i] + HEAP[6836] + 30;
  61759.           HEAP[$cp_i_i] = -1;
  61760.           HEAP[$retval_i_i] = 0;
  61761.         }
  61762.       } while (0);
  61763.       var $93 = HEAP[$retval_i_i];
  61764.       HEAP[$newp_i] = $93;
  61765.       var $400 = $93;
  61766.     } else {
  61767.       if (HEAP[$oldsize_i] >>> 0 >= HEAP[$nb_addr_i] >>> 0) {
  61768.         HEAP[$rsize_i] = HEAP[$oldsize_i] - HEAP[$nb_addr_i] | 0;
  61769.         if (HEAP[$rsize_i] >>> 0 >= 16) {
  61770.           HEAP[$r_i] = HEAP[$p_addr_i] + HEAP[$nb_addr_i] | 0;
  61771.           HEAP[HEAP[$p_addr_i] + 4 | 0] = HEAP[$nb_addr_i] | 2 | HEAP[HEAP[$p_addr_i] + 4 | 0] & 1;
  61772.           var $head23_i = HEAP[$p_addr_i] + HEAP[$nb_addr_i] + 4 | 0;
  61773.           HEAP[$head23_i] = HEAP[$head23_i] | 1;
  61774.           HEAP[HEAP[$r_i] + 4 | 0] = HEAP[$rsize_i] | 2 | HEAP[HEAP[$r_i] + 4 | 0] & 1;
  61775.           var $head31_i = HEAP[$r_i] + HEAP[$rsize_i] + 4 | 0;
  61776.           HEAP[$head31_i] = HEAP[$head31_i] | 1;
  61777.           _dispose_chunk(HEAP[$m_addr_i], HEAP[$r_i], HEAP[$rsize_i]);
  61778.         }
  61779.         var $134 = HEAP[$p_addr_i];
  61780.         HEAP[$newp_i] = $134;
  61781.         var $400 = $134;
  61782.         break;
  61783.       }
  61784.       do {
  61785.         if ((HEAP[$next_i] | 0) == (HEAP[HEAP[$m_addr_i] + 24 | 0] | 0)) {
  61786.           if ((HEAP[HEAP[$m_addr_i] + 12 | 0] + HEAP[$oldsize_i] | 0) >>> 0 <= HEAP[$nb_addr_i] >>> 0) {
  61787.             break;
  61788.           }
  61789.           HEAP[$newsize_i] = HEAP[HEAP[$m_addr_i] + 12 | 0] + HEAP[$oldsize_i] | 0;
  61790.           HEAP[$newtopsize_i] = HEAP[$newsize_i] - HEAP[$nb_addr_i] | 0;
  61791.           HEAP[$newtop_i] = HEAP[$p_addr_i] + HEAP[$nb_addr_i] | 0;
  61792.           HEAP[HEAP[$p_addr_i] + 4 | 0] = HEAP[$nb_addr_i] | 2 | HEAP[HEAP[$p_addr_i] + 4 | 0] & 1;
  61793.           var $head48_i = HEAP[$p_addr_i] + HEAP[$nb_addr_i] + 4 | 0;
  61794.           HEAP[$head48_i] = HEAP[$head48_i] | 1;
  61795.           HEAP[HEAP[$newtop_i] + 4 | 0] = HEAP[$newtopsize_i] | 1;
  61796.           HEAP[HEAP[$m_addr_i] + 24 | 0] = HEAP[$newtop_i];
  61797.           HEAP[HEAP[$m_addr_i] + 12 | 0] = HEAP[$newtopsize_i];
  61798.           var $166 = HEAP[$p_addr_i];
  61799.           HEAP[$newp_i] = $166;
  61800.           var $400 = $166;
  61801.           break L909;
  61802.         } else {
  61803.           if ((HEAP[$next_i] | 0) == (HEAP[HEAP[$m_addr_i] + 20 | 0] | 0)) {
  61804.             HEAP[$dvs_i] = HEAP[HEAP[$m_addr_i] + 8 | 0];
  61805.             if (!((HEAP[$dvs_i] + HEAP[$oldsize_i] | 0) >>> 0 >= HEAP[$nb_addr_i] >>> 0)) {
  61806.               break;
  61807.             }
  61808.             HEAP[$dsize_i] = HEAP[$dvs_i] + HEAP[$oldsize_i] + -HEAP[$nb_addr_i] | 0;
  61809.             if (HEAP[$dsize_i] >>> 0 >= 16) {
  61810.               HEAP[$r65_i] = HEAP[$p_addr_i] + HEAP[$nb_addr_i] | 0;
  61811.               HEAP[$n_i] = HEAP[$r65_i] + HEAP[$dsize_i] | 0;
  61812.               HEAP[HEAP[$p_addr_i] + 4 | 0] = HEAP[$nb_addr_i] | 2 | HEAP[HEAP[$p_addr_i] + 4 | 0] & 1;
  61813.               var $head74_i = HEAP[$p_addr_i] + HEAP[$nb_addr_i] + 4 | 0;
  61814.               HEAP[$head74_i] = HEAP[$head74_i] | 1;
  61815.               HEAP[HEAP[$r65_i] + 4 | 0] = HEAP[$dsize_i] | 1;
  61816.               HEAP[HEAP[$r65_i] + HEAP[$dsize_i] | 0] = HEAP[$dsize_i];
  61817.               var $head79_i = HEAP[$n_i] + 4 | 0;
  61818.               HEAP[$head79_i] = HEAP[$head79_i] & -2;
  61819.               HEAP[HEAP[$m_addr_i] + 8 | 0] = HEAP[$dsize_i];
  61820.               HEAP[HEAP[$m_addr_i] + 20 | 0] = HEAP[$r65_i];
  61821.             } else {
  61822.               HEAP[$newsize84_i] = HEAP[$dvs_i] + HEAP[$oldsize_i] | 0;
  61823.               HEAP[HEAP[$p_addr_i] + 4 | 0] = HEAP[$newsize84_i] | 2 | HEAP[HEAP[$p_addr_i] + 4 | 0] & 1;
  61824.               var $head92_i = HEAP[$p_addr_i] + HEAP[$newsize84_i] + 4 | 0;
  61825.               HEAP[$head92_i] = HEAP[$head92_i] | 1;
  61826.               HEAP[HEAP[$m_addr_i] + 8 | 0] = 0;
  61827.               HEAP[HEAP[$m_addr_i] + 20 | 0] = 0;
  61828.             }
  61829.             var $222 = HEAP[$p_addr_i];
  61830.             HEAP[$newp_i] = $222;
  61831.             var $400 = $222;
  61832.             break L909;
  61833.           }
  61834.           if ((HEAP[HEAP[$next_i] + 4 | 0] & 2 | 0) != 0) {
  61835.             break;
  61836.           }
  61837.           HEAP[$nextsize_i] = HEAP[HEAP[$next_i] + 4 | 0] & -8;
  61838.           if (!((HEAP[$nextsize_i] + HEAP[$oldsize_i] | 0) >>> 0 >= HEAP[$nb_addr_i] >>> 0)) {
  61839.             break;
  61840.           }
  61841.           HEAP[$rsize108_i] = HEAP[$nextsize_i] + HEAP[$oldsize_i] + -HEAP[$nb_addr_i] | 0;
  61842.           var $234 = HEAP[$next_i];
  61843.           do {
  61844.             if (HEAP[$nextsize_i] >>> 3 >>> 0 < 32) {
  61845.               HEAP[$F_i] = HEAP[$234 + 8 | 0];
  61846.               HEAP[$B_i] = HEAP[HEAP[$next_i] + 12 | 0];
  61847.               HEAP[$I_i] = HEAP[$nextsize_i] >>> 3;
  61848.               do {
  61849.                 if ((HEAP[$F_i] | 0) == ((HEAP[$I_i] << 3) + HEAP[$m_addr_i] + 40 | 0)) {
  61850.                   var $251 = 1;
  61851.                 } else {
  61852.                   if (!(HEAP[$F_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0)) {
  61853.                     var $251 = 0;
  61854.                     break;
  61855.                   }
  61856.                   var $251 = (HEAP[HEAP[$F_i] + 12 | 0] | 0) == (HEAP[$next_i] | 0);
  61857.                 }
  61858.               } while (0);
  61859.               var $251;
  61860.               if (($251 & 1 | 0) == 0) {
  61861.                 _abort();
  61862.               }
  61863.               if ((HEAP[$B_i] | 0) == (HEAP[$F_i] | 0)) {
  61864.                 var $smallmap_i = HEAP[$m_addr_i] | 0;
  61865.                 HEAP[$smallmap_i] = HEAP[$smallmap_i] & (1 << HEAP[$I_i] ^ -1);
  61866.                 break;
  61867.               }
  61868.               do {
  61869.                 if ((HEAP[$B_i] | 0) == ((HEAP[$I_i] << 3) + HEAP[$m_addr_i] + 40 | 0)) {
  61870.                   var $269 = 1;
  61871.                 } else {
  61872.                   if (!(HEAP[$B_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0)) {
  61873.                     var $269 = 0;
  61874.                     break;
  61875.                   }
  61876.                   var $269 = (HEAP[HEAP[$B_i] + 8 | 0] | 0) == (HEAP[$next_i] | 0);
  61877.                 }
  61878.               } while (0);
  61879.               var $269;
  61880.               if (($269 & 1 | 0) != 0) {
  61881.                 HEAP[HEAP[$F_i] + 12 | 0] = HEAP[$B_i];
  61882.                 HEAP[HEAP[$B_i] + 8 | 0] = HEAP[$F_i];
  61883.                 break;
  61884.               } else {
  61885.                 _abort();
  61886.               }
  61887.             } else {
  61888.               HEAP[$TP_i] = $234;
  61889.               HEAP[$XP_i] = HEAP[HEAP[$TP_i] + 24 | 0];
  61890.               var $280 = HEAP[$TP_i];
  61891.               L960 : do {
  61892.                 if ((HEAP[HEAP[$TP_i] + 12 | 0] | 0) != (HEAP[$TP_i] | 0)) {
  61893.                   HEAP[$F158_i] = HEAP[$280 + 8 | 0];
  61894.                   HEAP[$R_i] = HEAP[HEAP[$TP_i] + 12 | 0];
  61895.                   do {
  61896.                     if (HEAP[$F158_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0) {
  61897.                       if ((HEAP[HEAP[$F158_i] + 12 | 0] | 0) != (HEAP[$TP_i] | 0)) {
  61898.                         var $294 = 0;
  61899.                         break;
  61900.                       }
  61901.                       var $294 = (HEAP[HEAP[$R_i] + 8 | 0] | 0) == (HEAP[$TP_i] | 0);
  61902.                     } else {
  61903.                       var $294 = 0;
  61904.                     }
  61905.                   } while (0);
  61906.                   var $294;
  61907.                   if (($294 & 1 | 0) != 0) {
  61908.                     HEAP[HEAP[$F158_i] + 12 | 0] = HEAP[$R_i];
  61909.                     HEAP[HEAP[$R_i] + 8 | 0] = HEAP[$F158_i];
  61910.                     break;
  61911.                   } else {
  61912.                     _abort();
  61913.                   }
  61914.                 } else {
  61915.                   var $arrayidx179_i = $280 + 20 | 0;
  61916.                   HEAP[$RP_i] = $arrayidx179_i;
  61917.                   var $299 = HEAP[$arrayidx179_i];
  61918.                   HEAP[$R_i] = $299;
  61919.                   do {
  61920.                     if (($299 | 0) == 0) {
  61921.                       var $arrayidx182_i = HEAP[$TP_i] + 16 | 0;
  61922.                       HEAP[$RP_i] = $arrayidx182_i;
  61923.                       var $301 = HEAP[$arrayidx182_i];
  61924.                       HEAP[$R_i] = $301;
  61925.                       if (($301 | 0) != 0) {
  61926.                         break;
  61927.                       } else {
  61928.                         break L960;
  61929.                       }
  61930.                     }
  61931.                   } while (0);
  61932.                   while (1) {
  61933.                     var $arrayidx186_i = HEAP[$R_i] + 20 | 0;
  61934.                     HEAP[$CP_i] = $arrayidx186_i;
  61935.                     if ((HEAP[$arrayidx186_i] | 0) == 0) {
  61936.                       var $arrayidx190_i = HEAP[$R_i] + 16 | 0;
  61937.                       HEAP[$CP_i] = $arrayidx190_i;
  61938.                       if ((HEAP[$arrayidx190_i] | 0) == 0) {
  61939.                         break;
  61940.                       }
  61941.                     }
  61942.                     var $306 = HEAP[$CP_i];
  61943.                     HEAP[$RP_i] = $306;
  61944.                     HEAP[$R_i] = HEAP[$306];
  61945.                   }
  61946.                   if ((HEAP[$RP_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  61947.                     HEAP[HEAP[$RP_i]] = 0;
  61948.                     break;
  61949.                   } else {
  61950.                     _abort();
  61951.                   }
  61952.                 }
  61953.               } while (0);
  61954.               if ((HEAP[$XP_i] | 0) == 0) {
  61955.                 break;
  61956.               }
  61957.               HEAP[$H_i] = (HEAP[HEAP[$TP_i] + 28 | 0] << 2) + HEAP[$m_addr_i] + 304 | 0;
  61958.               do {
  61959.                 if ((HEAP[$TP_i] | 0) == (HEAP[HEAP[$H_i]] | 0)) {
  61960.                   var $320 = HEAP[$R_i];
  61961.                   HEAP[HEAP[$H_i]] = $320;
  61962.                   if (($320 | 0) != 0) {
  61963.                     break;
  61964.                   }
  61965.                   var $treemap_i = HEAP[$m_addr_i] + 4 | 0;
  61966.                   HEAP[$treemap_i] = HEAP[$treemap_i] & (1 << HEAP[HEAP[$TP_i] + 28 | 0] ^ -1);
  61967.                 } else {
  61968.                   if ((HEAP[$XP_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  61969.                     _abort();
  61970.                   }
  61971.                   var $333 = HEAP[$R_i];
  61972.                   var $child230_i = HEAP[$XP_i] + 16 | 0;
  61973.                   if ((HEAP[HEAP[$XP_i] + 16 | 0] | 0) == (HEAP[$TP_i] | 0)) {
  61974.                     HEAP[$child230_i | 0] = $333;
  61975.                     break;
  61976.                   } else {
  61977.                     HEAP[$child230_i + 4 | 0] = $333;
  61978.                     break;
  61979.                   }
  61980.                 }
  61981.               } while (0);
  61982.               if ((HEAP[$R_i] | 0) == 0) {
  61983.                 break;
  61984.               }
  61985.               if ((HEAP[$R_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) == 0) {
  61986.                 _abort();
  61987.               }
  61988.               HEAP[HEAP[$R_i] + 24 | 0] = HEAP[$XP_i];
  61989.               var $343 = HEAP[HEAP[$TP_i] + 16 | 0];
  61990.               HEAP[$C0_i] = $343;
  61991.               do {
  61992.                 if (($343 | 0) != 0) {
  61993.                   if ((HEAP[$C0_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  61994.                     HEAP[HEAP[$R_i] + 16 | 0] = HEAP[$C0_i];
  61995.                     HEAP[HEAP[$C0_i] + 24 | 0] = HEAP[$R_i];
  61996.                     break;
  61997.                   } else {
  61998.                     _abort();
  61999.                   }
  62000.                 }
  62001.               } while (0);
  62002.               var $353 = HEAP[HEAP[$TP_i] + 20 | 0];
  62003.               HEAP[$C1_i] = $353;
  62004.               if (($353 | 0) == 0) {
  62005.                 break;
  62006.               }
  62007.               if ((HEAP[$C1_i] >>> 0 >= HEAP[HEAP[$m_addr_i] + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62008.                 HEAP[HEAP[$R_i] + 20 | 0] = HEAP[$C1_i];
  62009.                 HEAP[HEAP[$C1_i] + 24 | 0] = HEAP[$R_i];
  62010.                 break;
  62011.               } else {
  62012.                 _abort();
  62013.               }
  62014.             }
  62015.           } while (0);
  62016.           if (HEAP[$rsize108_i] >>> 0 < 16) {
  62017.             HEAP[$newsize291_i] = HEAP[$nextsize_i] + HEAP[$oldsize_i] | 0;
  62018.             HEAP[HEAP[$p_addr_i] + 4 | 0] = HEAP[$newsize291_i] | 2 | HEAP[HEAP[$p_addr_i] + 4 | 0] & 1;
  62019.             var $head299_i = HEAP[$p_addr_i] + HEAP[$newsize291_i] + 4 | 0;
  62020.             HEAP[$head299_i] = HEAP[$head299_i] | 1;
  62021.           } else {
  62022.             HEAP[$r302_i] = HEAP[$p_addr_i] + HEAP[$nb_addr_i] | 0;
  62023.             HEAP[HEAP[$p_addr_i] + 4 | 0] = HEAP[$nb_addr_i] | 2 | HEAP[HEAP[$p_addr_i] + 4 | 0] & 1;
  62024.             var $head310_i = HEAP[$p_addr_i] + HEAP[$nb_addr_i] + 4 | 0;
  62025.             HEAP[$head310_i] = HEAP[$head310_i] | 1;
  62026.             HEAP[HEAP[$r302_i] + 4 | 0] = HEAP[$rsize108_i] | 2 | HEAP[HEAP[$r302_i] + 4 | 0] & 1;
  62027.             var $head318_i = HEAP[$r302_i] + HEAP[$rsize108_i] + 4 | 0;
  62028.             HEAP[$head318_i] = HEAP[$head318_i] | 1;
  62029.             _dispose_chunk(HEAP[$m_addr_i], HEAP[$r302_i], HEAP[$rsize108_i]);
  62030.           }
  62031.           var $399 = HEAP[$p_addr_i];
  62032.           HEAP[$newp_i] = $399;
  62033.           var $400 = $399;
  62034.           break L909;
  62035.         }
  62036.       } while (0);
  62037.       var $400 = HEAP[$newp_i];
  62038.     }
  62039.   } while (0);
  62040.   var $400;
  62041.   if (($400 | 0) != 0) {
  62042.     $mem = $400 + 8 | 0;
  62043.     var $449 = $mem;
  62044.     STACKTOP = __stackBase__;
  62045.     return $449;
  62046.   }
  62047.   $mem = _malloc($bytes_addr);
  62048.   if (($mem | 0) == 0) {
  62049.     var $449 = $mem;
  62050.     STACKTOP = __stackBase__;
  62051.     return $449;
  62052.   }
  62053.   $oc = (HEAP[$oldp + 4 | 0] & -8) - ((HEAP[$oldp + 4 | 0] & 3 | 0) == 0 ? 8 : 4) | 0;
  62054.   var $442 = $mem;
  62055.   var $443 = $oldmem_addr;
  62056.   var $cond24 = $oc >>> 0 < $bytes_addr >>> 0 ? $oc : $bytes_addr;
  62057.   for (var $$src = $443, $$dest = $442, $$stop = $$src + $cond24; $$src < $$stop; $$src++, $$dest++) {
  62058.     HEAP[$$dest] = HEAP[$$src];
  62059.   }
  62060.   _free($oldmem_addr);
  62061.   var $449 = $mem;
  62062.   STACKTOP = __stackBase__;
  62063.   return $449;
  62064. }
  62065. function _init_mparams() {
  62066.   var $magic;
  62067.   var $psize;
  62068.   var $gsize;
  62069.   if ((HEAP[6832] | 0) != 0) {
  62070.     return;
  62071.   }
  62072.   $psize = _sysconf(8);
  62073.   $gsize = $psize;
  62074.   if (($gsize - 1 & $gsize | 0) != 0) {
  62075.     _abort();
  62076.   }
  62077.   if (($psize - 1 & $psize | 0) != 0) {
  62078.     _abort();
  62079.   }
  62080.   HEAP[6840] = $gsize;
  62081.   HEAP[6836] = $psize;
  62082.   HEAP[6844] = -1;
  62083.   HEAP[6848] = 2097152;
  62084.   HEAP[6852] = 0;
  62085.   HEAP[105428] = HEAP[6852];
  62086.   $magic = _time(0) ^ 1431655765;
  62087.   $magic = $magic | 8;
  62088.   $magic = $magic & -8;
  62089.   HEAP[6832] = $magic;
  62090.   return;
  62091. }
  62092. function _dispose_chunk($m, $p, $psize) {
  62093.   var $m_addr;
  62094.   var $p_addr;
  62095.   var $psize_addr;
  62096.   var $next;
  62097.   var $prev;
  62098.   var $prevsize;
  62099.   var $F;
  62100.   var $B;
  62101.   var $I;
  62102.   var $TP;
  62103.   var $XP;
  62104.   var $R;
  62105.   var $F64;
  62106.   var $RP;
  62107.   var $CP;
  62108.   var $H;
  62109.   var $C0;
  62110.   var $C1;
  62111.   var $dsize;
  62112.   var $nsize;
  62113.   var $F260;
  62114.   var $B262;
  62115.   var $I264;
  62116.   var $TP322;
  62117.   var $XP323;
  62118.   var $R325;
  62119.   var $F330;
  62120.   var $RP354;
  62121.   var $CP365;
  62122.   var $H393;
  62123.   var $C0439;
  62124.   var $C1440;
  62125.   var $I505;
  62126.   var $B507;
  62127.   var $F511;
  62128.   var $TP537;
  62129.   var $H538;
  62130.   var $I539;
  62131.   var $X;
  62132.   var $Y;
  62133.   var $N;
  62134.   var $K;
  62135.   var $T;
  62136.   var $K591;
  62137.   var $C;
  62138.   var $F625;
  62139.   $m_addr = $m;
  62140.   $p_addr = $p;
  62141.   $psize_addr = $psize;
  62142.   $next = $p_addr + $psize_addr | 0;
  62143.   do {
  62144.     if ((HEAP[$p_addr + 4 | 0] & 1 | 0) == 0) {
  62145.       $prevsize = HEAP[$p_addr | 0];
  62146.       if ((HEAP[$p_addr + 4 | 0] & 3 | 0) == 0) {
  62147.         $psize_addr = $psize_addr + ($prevsize + 16) | 0;
  62148.         return;
  62149.       }
  62150.       $prev = $p_addr + -$prevsize | 0;
  62151.       $psize_addr = $psize_addr + $prevsize | 0;
  62152.       $p_addr = $prev;
  62153.       if (($prev >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62154.         _abort();
  62155.       }
  62156.       if (($p_addr | 0) == (HEAP[$m_addr + 20 | 0] | 0)) {
  62157.         if ((HEAP[$next + 4 | 0] & 3 | 0) != 3) {
  62158.           break;
  62159.         }
  62160.         HEAP[$m_addr + 8 | 0] = $psize_addr;
  62161.         var $head206 = $next + 4 | 0;
  62162.         HEAP[$head206] = HEAP[$head206] & -2;
  62163.         HEAP[$p_addr + 4 | 0] = $psize_addr | 1;
  62164.         HEAP[$p_addr + $psize_addr | 0] = $psize_addr;
  62165.         return;
  62166.       }
  62167.       var $27 = $p_addr;
  62168.       if ($prevsize >>> 3 >>> 0 < 32) {
  62169.         $F = HEAP[$27 + 8 | 0];
  62170.         $B = HEAP[$p_addr + 12 | 0];
  62171.         $I = $prevsize >>> 3;
  62172.         do {
  62173.           if (($F | 0) == (($I << 3) + $m_addr + 40 | 0)) {
  62174.             var $44 = 1;
  62175.           } else {
  62176.             if (!($F >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0)) {
  62177.               var $44 = 0;
  62178.               break;
  62179.             }
  62180.             var $44 = (HEAP[$F + 12 | 0] | 0) == ($p_addr | 0);
  62181.           }
  62182.         } while (0);
  62183.         var $44;
  62184.         if (($44 & 1 | 0) == 0) {
  62185.           _abort();
  62186.         }
  62187.         if (($B | 0) == ($F | 0)) {
  62188.           var $smallmap = $m_addr | 0;
  62189.           HEAP[$smallmap] = HEAP[$smallmap] & (1 << $I ^ -1);
  62190.           break;
  62191.         }
  62192.         do {
  62193.           if (($B | 0) == (($I << 3) + $m_addr + 40 | 0)) {
  62194.             var $62 = 1;
  62195.           } else {
  62196.             if (!($B >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0)) {
  62197.               var $62 = 0;
  62198.               break;
  62199.             }
  62200.             var $62 = (HEAP[$B + 8 | 0] | 0) == ($p_addr | 0);
  62201.           }
  62202.         } while (0);
  62203.         var $62;
  62204.         if (($62 & 1 | 0) != 0) {
  62205.           HEAP[$F + 12 | 0] = $B;
  62206.           HEAP[$B + 8 | 0] = $F;
  62207.           break;
  62208.         } else {
  62209.           _abort();
  62210.         }
  62211.       }
  62212.       $TP = $27;
  62213.       $XP = HEAP[$TP + 24 | 0];
  62214.       var $73 = $TP;
  62215.       L1069 : do {
  62216.         if ((HEAP[$TP + 12 | 0] | 0) != ($TP | 0)) {
  62217.           $F64 = HEAP[$73 + 8 | 0];
  62218.           $R = HEAP[$TP + 12 | 0];
  62219.           do {
  62220.             if ($F64 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0) {
  62221.               if ((HEAP[$F64 + 12 | 0] | 0) != ($TP | 0)) {
  62222.                 var $87 = 0;
  62223.                 break;
  62224.               }
  62225.               var $87 = (HEAP[$R + 8 | 0] | 0) == ($TP | 0);
  62226.             } else {
  62227.               var $87 = 0;
  62228.             }
  62229.           } while (0);
  62230.           var $87;
  62231.           if (($87 & 1 | 0) != 0) {
  62232.             HEAP[$F64 + 12 | 0] = $R;
  62233.             HEAP[$R + 8 | 0] = $F64;
  62234.             break;
  62235.           } else {
  62236.             _abort();
  62237.           }
  62238.         } else {
  62239.           var $arrayidx86 = $73 + 20 | 0;
  62240.           $RP = $arrayidx86;
  62241.           var $92 = HEAP[$arrayidx86];
  62242.           $R = $92;
  62243.           do {
  62244.             if (($92 | 0) == 0) {
  62245.               var $arrayidx90 = $TP + 16 | 0;
  62246.               $RP = $arrayidx90;
  62247.               var $94 = HEAP[$arrayidx90];
  62248.               $R = $94;
  62249.               if (($94 | 0) != 0) {
  62250.                 break;
  62251.               } else {
  62252.                 break L1069;
  62253.               }
  62254.             }
  62255.           } while (0);
  62256.           while (1) {
  62257.             var $arrayidx95 = $R + 20 | 0;
  62258.             $CP = $arrayidx95;
  62259.             if ((HEAP[$arrayidx95] | 0) == 0) {
  62260.               var $arrayidx100 = $R + 16 | 0;
  62261.               $CP = $arrayidx100;
  62262.               if ((HEAP[$arrayidx100] | 0) == 0) {
  62263.                 break;
  62264.               }
  62265.             }
  62266.             var $99 = $CP;
  62267.             $RP = $99;
  62268.             $R = HEAP[$99];
  62269.           }
  62270.           if (($RP >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62271.             HEAP[$RP] = 0;
  62272.             break;
  62273.           } else {
  62274.             _abort();
  62275.           }
  62276.         }
  62277.       } while (0);
  62278.       if (($XP | 0) == 0) {
  62279.         break;
  62280.       }
  62281.       $H = (HEAP[$TP + 28 | 0] << 2) + $m_addr + 304 | 0;
  62282.       do {
  62283.         if (($TP | 0) == (HEAP[$H] | 0)) {
  62284.           var $113 = $R;
  62285.           HEAP[$H] = $113;
  62286.           if (($113 | 0) != 0) {
  62287.             break;
  62288.           }
  62289.           var $treemap = $m_addr + 4 | 0;
  62290.           HEAP[$treemap] = HEAP[$treemap] & (1 << HEAP[$TP + 28 | 0] ^ -1);
  62291.         } else {
  62292.           if (($XP >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62293.             _abort();
  62294.           }
  62295.           var $126 = $R;
  62296.           var $child142 = $XP + 16 | 0;
  62297.           if ((HEAP[$XP + 16 | 0] | 0) == ($TP | 0)) {
  62298.             HEAP[$child142 | 0] = $126;
  62299.             break;
  62300.           } else {
  62301.             HEAP[$child142 + 4 | 0] = $126;
  62302.             break;
  62303.           }
  62304.         }
  62305.       } while (0);
  62306.       if (($R | 0) == 0) {
  62307.         break;
  62308.       }
  62309.       if (($R >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62310.         _abort();
  62311.       }
  62312.       HEAP[$R + 24 | 0] = $XP;
  62313.       var $136 = HEAP[$TP + 16 | 0];
  62314.       $C0 = $136;
  62315.       do {
  62316.         if (($136 | 0) != 0) {
  62317.           if (($C0 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62318.             HEAP[$R + 16 | 0] = $C0;
  62319.             HEAP[$C0 + 24 | 0] = $R;
  62320.             break;
  62321.           } else {
  62322.             _abort();
  62323.           }
  62324.         }
  62325.       } while (0);
  62326.       var $146 = HEAP[$TP + 20 | 0];
  62327.       $C1 = $146;
  62328.       if (($146 | 0) == 0) {
  62329.         break;
  62330.       }
  62331.       if (($C1 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62332.         HEAP[$R + 20 | 0] = $C1;
  62333.         HEAP[$C1 + 24 | 0] = $R;
  62334.         break;
  62335.       } else {
  62336.         _abort();
  62337.       }
  62338.     }
  62339.   } while (0);
  62340.   if (($next >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62341.     _abort();
  62342.   }
  62343.   var $174 = $next;
  62344.   do {
  62345.     if ((HEAP[$next + 4 | 0] & 2 | 0) != 0) {
  62346.       var $head494 = $174 + 4 | 0;
  62347.       HEAP[$head494] = HEAP[$head494] & -2;
  62348.       HEAP[$p_addr + 4 | 0] = $psize_addr | 1;
  62349.       HEAP[$p_addr + $psize_addr | 0] = $psize_addr;
  62350.     } else {
  62351.       if (($174 | 0) == (HEAP[$m_addr + 24 | 0] | 0)) {
  62352.         var $topsize = $m_addr + 12 | 0;
  62353.         var $add229 = HEAP[$topsize] + $psize_addr | 0;
  62354.         HEAP[$topsize] = $add229;
  62355.         HEAP[$m_addr + 24 | 0] = $p_addr;
  62356.         HEAP[$p_addr + 4 | 0] = $add229 | 1;
  62357.         if (($p_addr | 0) != (HEAP[$m_addr + 20 | 0] | 0)) {
  62358.           return;
  62359.         }
  62360.         HEAP[$m_addr + 20 | 0] = 0;
  62361.         HEAP[$m_addr + 8 | 0] = 0;
  62362.         return;
  62363.       }
  62364.       if (($next | 0) == (HEAP[$m_addr + 20 | 0] | 0)) {
  62365.         var $dvsize245 = $m_addr + 8 | 0;
  62366.         var $add246 = HEAP[$dvsize245] + $psize_addr | 0;
  62367.         HEAP[$dvsize245] = $add246;
  62368.         $dsize = $add246;
  62369.         HEAP[$m_addr + 20 | 0] = $p_addr;
  62370.         HEAP[$p_addr + 4 | 0] = $dsize | 1;
  62371.         HEAP[$p_addr + $dsize | 0] = $dsize;
  62372.         return;
  62373.       }
  62374.       $nsize = HEAP[$next + 4 | 0] & -8;
  62375.       $psize_addr = $psize_addr + $nsize | 0;
  62376.       var $209 = $next;
  62377.       do {
  62378.         if ($nsize >>> 3 >>> 0 < 32) {
  62379.           $F260 = HEAP[$209 + 8 | 0];
  62380.           $B262 = HEAP[$next + 12 | 0];
  62381.           $I264 = $nsize >>> 3;
  62382.           do {
  62383.             if (($F260 | 0) == (($I264 << 3) + $m_addr + 40 | 0)) {
  62384.               var $226 = 1;
  62385.             } else {
  62386.               if (!($F260 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0)) {
  62387.                 var $226 = 0;
  62388.                 break;
  62389.               }
  62390.               var $226 = (HEAP[$F260 + 12 | 0] | 0) == ($next | 0);
  62391.             }
  62392.           } while (0);
  62393.           var $226;
  62394.           if (($226 & 1 | 0) == 0) {
  62395.             _abort();
  62396.           }
  62397.           if (($B262 | 0) == ($F260 | 0)) {
  62398.             var $smallmap291 = $m_addr | 0;
  62399.             HEAP[$smallmap291] = HEAP[$smallmap291] & (1 << $I264 ^ -1);
  62400.             break;
  62401.           }
  62402.           do {
  62403.             if (($B262 | 0) == (($I264 << 3) + $m_addr + 40 | 0)) {
  62404.               var $244 = 1;
  62405.             } else {
  62406.               if (!($B262 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0)) {
  62407.                 var $244 = 0;
  62408.                 break;
  62409.               }
  62410.               var $244 = (HEAP[$B262 + 8 | 0] | 0) == ($next | 0);
  62411.             }
  62412.           } while (0);
  62413.           var $244;
  62414.           if (($244 & 1 | 0) != 0) {
  62415.             HEAP[$F260 + 12 | 0] = $B262;
  62416.             HEAP[$B262 + 8 | 0] = $F260;
  62417.             break;
  62418.           } else {
  62419.             _abort();
  62420.           }
  62421.         } else {
  62422.           $TP322 = $209;
  62423.           $XP323 = HEAP[$TP322 + 24 | 0];
  62424.           var $255 = $TP322;
  62425.           L1154 : do {
  62426.             if ((HEAP[$TP322 + 12 | 0] | 0) != ($TP322 | 0)) {
  62427.               $F330 = HEAP[$255 + 8 | 0];
  62428.               $R325 = HEAP[$TP322 + 12 | 0];
  62429.               do {
  62430.                 if ($F330 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0) {
  62431.                   if ((HEAP[$F330 + 12 | 0] | 0) != ($TP322 | 0)) {
  62432.                     var $269 = 0;
  62433.                     break;
  62434.                   }
  62435.                   var $269 = (HEAP[$R325 + 8 | 0] | 0) == ($TP322 | 0);
  62436.                 } else {
  62437.                   var $269 = 0;
  62438.                 }
  62439.               } while (0);
  62440.               var $269;
  62441.               if (($269 & 1 | 0) != 0) {
  62442.                 HEAP[$F330 + 12 | 0] = $R325;
  62443.                 HEAP[$R325 + 8 | 0] = $F330;
  62444.                 break;
  62445.               } else {
  62446.                 _abort();
  62447.               }
  62448.             } else {
  62449.               var $arrayidx356 = $255 + 20 | 0;
  62450.               $RP354 = $arrayidx356;
  62451.               var $274 = HEAP[$arrayidx356];
  62452.               $R325 = $274;
  62453.               do {
  62454.                 if (($274 | 0) == 0) {
  62455.                   var $arrayidx361 = $TP322 + 16 | 0;
  62456.                   $RP354 = $arrayidx361;
  62457.                   var $276 = HEAP[$arrayidx361];
  62458.                   $R325 = $276;
  62459.                   if (($276 | 0) != 0) {
  62460.                     break;
  62461.                   } else {
  62462.                     break L1154;
  62463.                   }
  62464.                 }
  62465.               } while (0);
  62466.               while (1) {
  62467.                 var $arrayidx368 = $R325 + 20 | 0;
  62468.                 $CP365 = $arrayidx368;
  62469.                 if ((HEAP[$arrayidx368] | 0) == 0) {
  62470.                   var $arrayidx373 = $R325 + 16 | 0;
  62471.                   $CP365 = $arrayidx373;
  62472.                   if ((HEAP[$arrayidx373] | 0) == 0) {
  62473.                     break;
  62474.                   }
  62475.                 }
  62476.                 var $281 = $CP365;
  62477.                 $RP354 = $281;
  62478.                 $R325 = HEAP[$281];
  62479.               }
  62480.               if (($RP354 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62481.                 HEAP[$RP354] = 0;
  62482.                 break;
  62483.               } else {
  62484.                 _abort();
  62485.               }
  62486.             }
  62487.           } while (0);
  62488.           if (($XP323 | 0) == 0) {
  62489.             break;
  62490.           }
  62491.           $H393 = (HEAP[$TP322 + 28 | 0] << 2) + $m_addr + 304 | 0;
  62492.           do {
  62493.             if (($TP322 | 0) == (HEAP[$H393] | 0)) {
  62494.               var $295 = $R325;
  62495.               HEAP[$H393] = $295;
  62496.               if (($295 | 0) != 0) {
  62497.                 break;
  62498.               }
  62499.               var $treemap406 = $m_addr + 4 | 0;
  62500.               HEAP[$treemap406] = HEAP[$treemap406] & (1 << HEAP[$TP322 + 28 | 0] ^ -1);
  62501.             } else {
  62502.               if (($XP323 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62503.                 _abort();
  62504.               }
  62505.               var $308 = $R325;
  62506.               var $child421 = $XP323 + 16 | 0;
  62507.               if ((HEAP[$XP323 + 16 | 0] | 0) == ($TP322 | 0)) {
  62508.                 HEAP[$child421 | 0] = $308;
  62509.                 break;
  62510.               } else {
  62511.                 HEAP[$child421 + 4 | 0] = $308;
  62512.                 break;
  62513.               }
  62514.             }
  62515.           } while (0);
  62516.           if (($R325 | 0) == 0) {
  62517.             break;
  62518.           }
  62519.           if (($R325 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62520.             _abort();
  62521.           }
  62522.           HEAP[$R325 + 24 | 0] = $XP323;
  62523.           var $318 = HEAP[$TP322 + 16 | 0];
  62524.           $C0439 = $318;
  62525.           do {
  62526.             if (($318 | 0) != 0) {
  62527.               if (($C0439 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62528.                 HEAP[$R325 + 16 | 0] = $C0439;
  62529.                 HEAP[$C0439 + 24 | 0] = $R325;
  62530.                 break;
  62531.               } else {
  62532.                 _abort();
  62533.               }
  62534.             }
  62535.           } while (0);
  62536.           var $328 = HEAP[$TP322 + 20 | 0];
  62537.           $C1440 = $328;
  62538.           if (($328 | 0) == 0) {
  62539.             break;
  62540.           }
  62541.           if (($C1440 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62542.             HEAP[$R325 + 20 | 0] = $C1440;
  62543.             HEAP[$C1440 + 24 | 0] = $R325;
  62544.             break;
  62545.           } else {
  62546.             _abort();
  62547.           }
  62548.         }
  62549.       } while (0);
  62550.       HEAP[$p_addr + 4 | 0] = $psize_addr | 1;
  62551.       HEAP[$p_addr + $psize_addr | 0] = $psize_addr;
  62552.       if (($p_addr | 0) != (HEAP[$m_addr + 20 | 0] | 0)) {
  62553.         break;
  62554.       }
  62555.       HEAP[$m_addr + 8 | 0] = $psize_addr;
  62556.       return;
  62557.     }
  62558.   } while (0);
  62559.   if ($psize_addr >>> 3 >>> 0 < 32) {
  62560.     $I505 = $psize_addr >>> 3;
  62561.     $B507 = ($I505 << 3) + $m_addr + 40 | 0;
  62562.     $F511 = $B507;
  62563.     do {
  62564.       if ((1 << $I505 & HEAP[$m_addr | 0] | 0) != 0) {
  62565.         if ((HEAP[$B507 + 8 | 0] >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) != 0) {
  62566.           $F511 = HEAP[$B507 + 8 | 0];
  62567.           break;
  62568.         } else {
  62569.           _abort();
  62570.         }
  62571.       } else {
  62572.         var $smallmap518 = $m_addr | 0;
  62573.         HEAP[$smallmap518] = HEAP[$smallmap518] | 1 << $I505;
  62574.       }
  62575.     } while (0);
  62576.     HEAP[$B507 + 8 | 0] = $p_addr;
  62577.     HEAP[$F511 + 12 | 0] = $p_addr;
  62578.     HEAP[$p_addr + 8 | 0] = $F511;
  62579.     HEAP[$p_addr + 12 | 0] = $B507;
  62580.     return;
  62581.   }
  62582.   $TP537 = $p_addr;
  62583.   $X = $psize_addr >>> 8;
  62584.   do {
  62585.     if (($X | 0) == 0) {
  62586.       $I539 = 0;
  62587.     } else {
  62588.       if ($X >>> 0 > 65535) {
  62589.         $I539 = 31;
  62590.         break;
  62591.       } else {
  62592.         $Y = $X;
  62593.         $N = ($Y - 256 | 0) >>> 16 & 8;
  62594.         var $shl551 = $Y << $N;
  62595.         $Y = $shl551;
  62596.         $K = ($shl551 - 4096 | 0) >>> 16 & 4;
  62597.         $N = $N + $K | 0;
  62598.         var $shl556 = $Y << $K;
  62599.         $Y = $shl556;
  62600.         var $and559 = ($shl556 - 16384 | 0) >>> 16 & 2;
  62601.         $K = $and559;
  62602.         $N = $and559 + $N | 0;
  62603.         var $shl562 = $Y << $K;
  62604.         $Y = $shl562;
  62605.         $K = -$N + ($shl562 >>> 15) + 14 | 0;
  62606.         $I539 = ($K << 1) + ($psize_addr >>> (($K + 7 | 0) >>> 0) & 1) | 0;
  62607.         break;
  62608.       }
  62609.     }
  62610.   } while (0);
  62611.   $H538 = ($I539 << 2) + $m_addr + 304 | 0;
  62612.   HEAP[$TP537 + 28 | 0] = $I539;
  62613.   HEAP[$TP537 + 20 | 0] = 0;
  62614.   HEAP[$TP537 + 16 | 0] = 0;
  62615.   if ((1 << $I539 & HEAP[$m_addr + 4 | 0] | 0) == 0) {
  62616.     var $treemap585 = $m_addr + 4 | 0;
  62617.     HEAP[$treemap585] = HEAP[$treemap585] | 1 << $I539;
  62618.     HEAP[$H538] = $TP537;
  62619.     HEAP[$TP537 + 24 | 0] = $H538;
  62620.     var $422 = $TP537;
  62621.     HEAP[$TP537 + 12 | 0] = $422;
  62622.     HEAP[$TP537 + 8 | 0] = $422;
  62623.     return;
  62624.   }
  62625.   $T = HEAP[$H538];
  62626.   if (($I539 | 0) == 31) {
  62627.     var $cond = 0;
  62628.   } else {
  62629.     var $cond = -($I539 >>> 1) + 25 | 0;
  62630.   }
  62631.   var $cond;
  62632.   $K591 = $psize_addr << $cond;
  62633.   L1232 : do {
  62634.     if ((HEAP[$T + 4 | 0] & -8 | 0) != ($psize_addr | 0)) {
  62635.       while (1) {
  62636.         $C = (($K591 >>> 31 & 1) << 2) + $T + 16 | 0;
  62637.         $K591 = $K591 << 1;
  62638.         var $438 = $C;
  62639.         if ((HEAP[$C] | 0) == 0) {
  62640.           break;
  62641.         }
  62642.         $T = HEAP[$438];
  62643.         if ((HEAP[$T + 4 | 0] & -8 | 0) == ($psize_addr | 0)) {
  62644.           break L1232;
  62645.         }
  62646.       }
  62647.       if (($438 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0 & 1 | 0) == 0) {
  62648.         _abort();
  62649.       }
  62650.       HEAP[$C] = $TP537;
  62651.       HEAP[$TP537 + 24 | 0] = $T;
  62652.       var $450 = $TP537;
  62653.       HEAP[$TP537 + 12 | 0] = $450;
  62654.       HEAP[$TP537 + 8 | 0] = $450;
  62655.       return;
  62656.     }
  62657.   } while (0);
  62658.   $F625 = HEAP[$T + 8 | 0];
  62659.   if ($T >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0) {
  62660.     var $463 = $F625 >>> 0 >= HEAP[$m_addr + 16 | 0] >>> 0;
  62661.   } else {
  62662.     var $463 = 0;
  62663.   }
  62664.   var $463;
  62665.   if (($463 & 1 | 0) == 0) {
  62666.     _abort();
  62667.   }
  62668.   var $464 = $TP537;
  62669.   HEAP[$F625 + 12 | 0] = $464;
  62670.   HEAP[$T + 8 | 0] = $464;
  62671.   HEAP[$TP537 + 8 | 0] = $F625;
  62672.   HEAP[$TP537 + 12 | 0] = $T;
  62673.   HEAP[$TP537 + 24 | 0] = 0;
  62674.   return;
  62675. }
  62676. // EMSCRIPTEN_END_FUNCS
  62677. Module["_hb_blob_get_empty"] = _hb_blob_get_empty;
  62678. Module["_hb_blob_create"] = _hb_blob_create;
  62679. Module["_hb_blob_reference"] = _hb_blob_reference;
  62680. Module["_hb_blob_destroy"] = _hb_blob_destroy;
  62681. Module["_hb_blob_create_sub_blob"] = _hb_blob_create_sub_blob;
  62682. Module["_hb_buffer_get_empty"] = _hb_buffer_get_empty;
  62683. Module["_hb_buffer_reference"] = _hb_buffer_reference;
  62684. Module["_hb_buffer_set_content_type"] = _hb_buffer_set_content_type;
  62685. Module["_hb_buffer_get_content_type"] = _hb_buffer_get_content_type;
  62686. Module["_hb_buffer_create"] = _hb_buffer_create;
  62687. Module["_hb_buffer_destroy"] = _hb_buffer_destroy;
  62688. Module["_hb_buffer_set_direction"] = _hb_buffer_set_direction;
  62689. Module["_hb_buffer_get_direction"] = _hb_buffer_get_direction;
  62690. Module["_hb_buffer_set_script"] = _hb_buffer_set_script;
  62691. Module["_hb_buffer_get_script"] = _hb_buffer_get_script;
  62692. Module["_hb_buffer_set_language"] = _hb_buffer_set_language;
  62693. Module["_hb_buffer_get_language"] = _hb_buffer_get_language;
  62694. Module["_hb_buffer_get_length"] = _hb_buffer_get_length;
  62695. Module["_hb_buffer_get_glyph_infos"] = _hb_buffer_get_glyph_infos;
  62696. Module["_hb_buffer_reset"] = _hb_buffer_reset;
  62697. Module["_hb_buffer_add"] = _hb_buffer_add;
  62698. Module["_hb_buffer_get_glyph_positions"] = _hb_buffer_get_glyph_positions;
  62699. Module["_hb_buffer_guess_segment_properties"] = _hb_buffer_guess_segment_properties;
  62700. Module["_hb_buffer_add_utf8"] = _hb_buffer_add_utf8;
  62701. Module["_hb_buffer_add_utf16"] = _hb_buffer_add_utf16;
  62702. Module["_hb_buffer_add_utf32"] = _hb_buffer_add_utf32;
  62703. Module["_hb_buffer_normalize_glyphs"] = _hb_buffer_normalize_glyphs;
  62704. Module["_hb_language_to_string"] = _hb_language_to_string;
  62705. Module["_hb_language_from_string"] = _hb_language_from_string;
  62706. Module["_hb_font_funcs_create"] = _hb_font_funcs_create;
  62707. Module["_hb_font_funcs_destroy"] = _hb_font_funcs_destroy;
  62708. Module["_hb_font_funcs_set_glyph_func"] = _hb_font_funcs_set_glyph_func;
  62709. Module["_hb_font_funcs_set_glyph_h_advance_func"] = _hb_font_funcs_set_glyph_h_advance_func;
  62710. Module["_hb_font_funcs_set_glyph_v_advance_func"] = _hb_font_funcs_set_glyph_v_advance_func;
  62711. Module["_hb_font_funcs_set_glyph_h_origin_func"] = _hb_font_funcs_set_glyph_h_origin_func;
  62712. Module["_hb_font_funcs_set_glyph_v_origin_func"] = _hb_font_funcs_set_glyph_v_origin_func;
  62713. Module["_hb_font_funcs_set_glyph_h_kerning_func"] = _hb_font_funcs_set_glyph_h_kerning_func;
  62714. Module["_hb_font_funcs_set_glyph_v_kerning_func"] = _hb_font_funcs_set_glyph_v_kerning_func;
  62715. Module["_hb_font_funcs_set_glyph_extents_func"] = _hb_font_funcs_set_glyph_extents_func;
  62716. Module["_hb_font_funcs_set_glyph_contour_point_func"] = _hb_font_funcs_set_glyph_contour_point_func;
  62717. Module["_hb_font_funcs_set_glyph_name_func"] = _hb_font_funcs_set_glyph_name_func;
  62718. Module["_hb_font_funcs_set_glyph_from_name_func"] = _hb_font_funcs_set_glyph_from_name_func;
  62719. Module["_hb_face_create"] = _hb_face_create;
  62720. Module["_hb_font_get_face"] = _hb_font_get_face;
  62721. Module["_hb_face_destroy"] = _hb_face_destroy;
  62722. Module["_hb_font_create"] = _hb_font_create;
  62723. Module["_hb_font_destroy"] = _hb_font_destroy;
  62724. Module["_hb_font_set_funcs"] = _hb_font_set_funcs;
  62725. Module["_hb_font_set_scale"] = _hb_font_set_scale;
  62726. Module["_hb_feature_from_string"] = _hb_feature_from_string;
  62727. Module["_hb_feature_to_string"] = _hb_feature_to_string;
  62728. Module["_hb_shape_list_shapers"] = _hb_shape_list_shapers;
  62729. Module["_hb_shape"] = _hb_shape;
  62730. Module["_hb_shape_full"] = _hb_shape_full;
  62731. Module["_hb_unicode_funcs_get_default"] = _hb_unicode_funcs_get_default;
  62732. Module["_hb_unicode_funcs_reference"] = _hb_unicode_funcs_reference;
  62733. Module["_ucdn_get_unicode_version"] = _ucdn_get_unicode_version;
  62734. Module["_ucdn_get_combining_class"] = _ucdn_get_combining_class;
  62735. Module["_ucdn_get_east_asian_width"] = _ucdn_get_east_asian_width;
  62736. Module["_ucdn_get_general_category"] = _ucdn_get_general_category;
  62737. Module["_ucdn_get_bidi_class"] = _ucdn_get_bidi_class;
  62738. Module["_ucdn_get_mirrored"] = _ucdn_get_mirrored;
  62739. Module["_ucdn_get_script"] = _ucdn_get_script;
  62740. Module["_ucdn_decompose"] = _ucdn_decompose;
  62741. Module["_ucdn_mirror"] = _ucdn_mirror;
  62742. Module["_ucdn_compose"] = _ucdn_compose;
  62743. Module["_calloc"] = _calloc;
  62744. Module["_realloc"] = _realloc;
  62745. // Warning: printing of i64 values may be slightly rounded! No deep i64 math used, so precise i64 code not included
  62746. var i64Math = null;
  62747. // === Auto-generated postamble setup entry stuff ===
  62748. Module.callMain = function callMain(args) {
  62749.   assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
  62750.   assert(!Module['preRun'] || Module['preRun'].length == 0, 'cannot call main when preRun functions remain to be called');
  62751.   args = args || [];
  62752.   ensureInitRuntime();
  62753.   var argc = args.length+1;
  62754.   function pad() {
  62755.     for (var i = 0; i < 4-1; i++) {
  62756.       argv.push(0);
  62757.     }
  62758.   }
  62759.   var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ];
  62760.   pad();
  62761.   for (var i = 0; i < argc-1; i = i + 1) {
  62762.     argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
  62763.     pad();
  62764.   }
  62765.   argv.push(0);
  62766.   argv = allocate(argv, 'i32', ALLOC_NORMAL);
  62767.   var ret;
  62768.   var initialStackTop = STACKTOP;
  62769.   try {
  62770.     ret = Module['_main'](argc, argv, 0);
  62771.   }
  62772.   catch(e) {
  62773.     if (e.name == 'ExitStatus') {
  62774.       return e.status;
  62775.     } else if (e == 'SimulateInfiniteLoop') {
  62776.       Module['noExitRuntime'] = true;
  62777.     } else {
  62778.       throw e;
  62779.     }
  62780.   } finally {
  62781.     STACKTOP = initialStackTop;
  62782.   }
  62783.   return ret;
  62784. }
  62785. function run(args) {
  62786.   args = args || Module['arguments'];
  62787.   if (runDependencies > 0) {
  62788.     Module.printErr('run() called, but dependencies remain, so not running');
  62789.     return 0;
  62790.   }
  62791.   if (Module['preRun']) {
  62792.     if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
  62793.     var toRun = Module['preRun'];
  62794.     Module['preRun'] = [];
  62795.     for (var i = toRun.length-1; i >= 0; i--) {
  62796.       toRun[i]();
  62797.     }
  62798.     if (runDependencies > 0) {
  62799.       // a preRun added a dependency, run will be called later
  62800.       return 0;
  62801.     }
  62802.   }
  62803.   function doRun() {
  62804.     ensureInitRuntime();
  62805.     preMain();
  62806.     var ret = 0;
  62807.     calledRun = true;
  62808.     if (Module['_main'] && shouldRunNow) {
  62809.       ret = Module.callMain(args);
  62810.       if (!Module['noExitRuntime']) {
  62811.         exitRuntime();
  62812.       }
  62813.     }
  62814.     if (Module['postRun']) {
  62815.       if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
  62816.       while (Module['postRun'].length > 0) {
  62817.         Module['postRun'].pop()();
  62818.       }
  62819.     }
  62820.     return ret;
  62821.   }
  62822.   if (Module['setStatus']) {
  62823.     Module['setStatus']('Running...');
  62824.     setTimeout(function() {
  62825.       setTimeout(function() {
  62826.         Module['setStatus']('');
  62827.       }, 1);
  62828.       doRun();
  62829.     }, 1);
  62830.     return 0;
  62831.   } else {
  62832.     return doRun();
  62833.   }
  62834. }
  62835. Module['run'] = Module.run = run;
  62836. // {{PRE_RUN_ADDITIONS}}
  62837. if (Module['preInit']) {
  62838.   if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
  62839.   while (Module['preInit'].length > 0) {
  62840.     Module['preInit'].pop()();
  62841.   }
  62842. }
  62843. // shouldRunNow refers to calling main(), not run().
  62844. var shouldRunNow = true;
  62845. if (Module['noInitialRun']) {
  62846.   shouldRunNow = false;
  62847. }
  62848. run();
  62849. // {{POST_RUN_ADDITIONS}}
  62850.   // {{MODULE_ADDITIONS}}
  62851. // Generated by CoffeeScript 1.6.2
  62852. var CObject, CString, INVALID_SIZE, NON_HEAP, SelfPtr, Void, addressof, array, callback, define, dumpData, dumpType, enlargeMemory, free, fromNative, nativeTypeOf, ptr, registerMemoryRemapCallback, remapCallbacks, simplePointerTypes, simpleType, sizeof, sizeofType, string, struct, toNative, type, typedef, unregisterCallback, unregisterMemoryRemapCallback, writeTo, __originalEnlargeMemory, _i, _len, _ref,
  62853.   __hasProp = {}.hasOwnProperty,
  62854.   __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  62855.   __slice = [].slice;
  62856. Module["free"] = free = function(struct) {
  62857.   return _free(struct["$ptr"]);
  62858. };
  62859. remapCallbacks = [];
  62860. Module["registerMemoryRemapCallback"] = registerMemoryRemapCallback = function(remapCallback, userData) {
  62861.   var callbackData;
  62862.   callbackData = {
  62863.     "userData": userData,
  62864.     "callback": remapCallback
  62865.   };
  62866.   remapCallbacks.push(callbackData);
  62867.   return callbackData;
  62868. };
  62869. Module["unregisterMemoryRemapCallback"] = unregisterMemoryRemapCallback = function(callbackData) {
  62870.   var index;
  62871.   index = remapCallbacks.indexOf(callbackData);
  62872.   if (index !== -1) {
  62873.     return remapCallbacks.splice(index, 1);
  62874.   }
  62875. };
  62876. __originalEnlargeMemory = enlargeMemory;
  62877. enlargeMemory = function() {
  62878.   var remapCallback, _i, _len, _results;
  62879.   __originalEnlargeMemory();
  62880.   _results = [];
  62881.   for (_i = 0, _len = remapCallbacks.length; _i < _len; _i++) {
  62882.     remapCallback = remapCallbacks[_i];
  62883.     _results.push(remapCallback["callback"](Module["HEAPU8"], remapCallback["userData"]));
  62884.   }
  62885.   return _results;
  62886. };
  62887. Module["Void"] = Void = "i32";
  62888. Module["SelfPtr"] = SelfPtr = {};
  62889. NON_HEAP = -1;
  62890. INVALID_SIZE = -1;
  62891. CObject = (function() {
  62892.   function CObject(heap) {
  62893.     this["$type"]["resolve"]();
  62894.     if (heap == null) {
  62895.       heap = allocate(this["$type"]["size"], "i8", ALLOC_NORMAL);
  62896.     }
  62897.     if (heap !== NON_HEAP) {
  62898.       this["$ptr"] = heap;
  62899.     }
  62900.   }
  62901.   CObject.prototype["$offset"] = function(index) {
  62902.     if (this["$ptr"] === NON_HEAP) {
  62903.       throw new Error("Non-heap");
  62904.     }
  62905.     return new this["$type"](this["$ptr"] + index * this["$type"]["size"]);
  62906.   };
  62907.   CObject.prototype["$next"] = function() {
  62908.     return this["$offset"](1);
  62909.   };
  62910.   CObject.prototype["toString"] = function(stack) {
  62911.     if (stack == null) {
  62912.       stack = [];
  62913.     }
  62914.     return dumpData(this, this["$type"], stack);
  62915.   };
  62916.   CObject["resolve"] = function() {
  62917.     throw new Error("Unknown type, cannot resolve");
  62918.   };
  62919.   CObject["writeTo"] = function(address, value) {
  62920.     if (value["$ptr"] === NON_HEAP) {
  62921.       throw new Error("Non heap object");
  62922.     }
  62923.     if (value["$ptr"] === 0) {
  62924.       throw new Error("Null reference");
  62925.     }
  62926.     return _memcpy(address, value["$ptr"], this["size"]);
  62927.   };
  62928.   CObject["fromNative"] = function(value) {
  62929.     return new this(value);
  62930.   };
  62931.   CObject["toNative"] = function(value) {
  62932.     if (value === null) {
  62933.       return 0;
  62934.     } else {
  62935.       return value["$ptr"];
  62936.     }
  62937.   };
  62938.   return CObject;
  62939. })();
  62940. Module["struct"] = struct = function(fields) {
  62941.   var CStruct;
  62942.   return CStruct = (function(_super) {
  62943.     var getters, resolved, setters;
  62944.     __extends(CStruct, _super);
  62945.     CStruct.prototype["$type"] = CStruct;
  62946.     function CStruct(heap) {
  62947.       CStruct.__super__.constructor.call(this, heap);
  62948.     }
  62949.     CStruct.prototype["toString"] = function(stack) {
  62950.       var field, type;
  62951.       if (stack == null) {
  62952.         stack = [];
  62953.       }
  62954.       return "{" + ((function() {
  62955.         var _results;
  62956.         _results = [];
  62957.         for (field in fields) {
  62958.           if (!__hasProp.call(fields, field)) continue;
  62959.           type = fields[field];
  62960.           _results.push(" " + field + ": " + (dumpData(this['get'](field), type, stack)));
  62961.         }
  62962.         return _results;
  62963.       }).call(this)).join(",") + " }";
  62964.     };
  62965.     CStruct["toString"] = function(stack) {
  62966.       var field, type;
  62967.       if (stack == null) {
  62968.         stack = [];
  62969.       }
  62970.       return "{" + ((function() {
  62971.         var _results;
  62972.         _results = [];
  62973.         for (field in fields) {
  62974.           if (!__hasProp.call(fields, field)) continue;
  62975.           type = fields[field];
  62976.           _results.push(" " + field + ": " + (dumpType(type, stack)));
  62977.         }
  62978.         return _results;
  62979.       })()).join(",") + " }";
  62980.     };
  62981.     resolved = false;
  62982.     CStruct["redefine"] = function(newFields) {
  62983.       if (resolved) {
  62984.         throw new Error("Type " + this + " is already resolved");
  62985.       }
  62986.       return fields = newFields;
  62987.     };
  62988.     getters = {};
  62989.     setters = {};
  62990.     CStruct["resolve"] = function() {
  62991.       var field, fieldsNotToResolve, offset, type, _fn;
  62992.       if (resolved) {
  62993.         return;
  62994.       }
  62995.       fieldsNotToResolve = [];
  62996.       for (field in fields) {
  62997.         if (!__hasProp.call(fields, field)) continue;
  62998.         type = fields[field];
  62999.         if (type === SelfPtr) {
  63000.           fields[field] = ptr(this);
  63001.           fieldsNotToResolve.push(field);
  63002.         }
  63003.       }
  63004.       offset = 0;
  63005.       _fn = function(offset, field, type) {
  63006.         var compoundProperty;
  63007.         if (simpleType(type)) {
  63008.           getters[field] = function(object) {
  63009.             return getValue(object["$ptr"] + offset, type);
  63010.           };
  63011.           return setters[field] = function(object, value) {
  63012.             setValue(object["$ptr"] + offset, value, type);
  63013.           };
  63014.         } else {
  63015.           if (fieldsNotToResolve.indexOf(field) === -1) {
  63016.             type["resolve"]();
  63017.           }
  63018.           compoundProperty = null;
  63019.           getters[field] = function(object) {
  63020.             if (compoundProperty === null) {
  63021.               compoundProperty = new type(object["$ptr"] + offset);
  63022.             }
  63023.             return compoundProperty;
  63024.           };
  63025.           return setters[field] = function(object, otherStruct) {
  63026.             if (otherStruct["$type"] !== type) {
  63027.               throw new Error("Cannot load incompatible data: " + type + " vs. " + otherStruct['$type']);
  63028.             }
  63029.             writeTo(object["$ptr"] + offset, otherStruct, type);
  63030.           };
  63031.         }
  63032.       };
  63033.       for (field in fields) {
  63034.         if (!__hasProp.call(fields, field)) continue;
  63035.         type = fields[field];
  63036.         _fn(offset, field, type);
  63037.         offset += sizeof(type);
  63038.       }
  63039.       this["size"] = offset;
  63040.       return resolved = true;
  63041.     };
  63042.     CStruct.prototype["get"] = function(field) {
  63043.       return getters[field](this);
  63044.     };
  63045.     CStruct.prototype["set"] = function(field, value) {
  63046.       setters[field](this, value);
  63047.     };
  63048.     return CStruct;
  63049.   })(CObject);
  63050. };
  63051. Module["array"] = array = function(elemType, count) {
  63052.   var CArray;
  63053.   return CArray = (function(_super) {
  63054.     var checkIndex, resolved;
  63055.     __extends(CArray, _super);
  63056.     if (elemType == null) {
  63057.       throw new Error("Element type is not specified");
  63058.     }
  63059.     if (typeof count !== "number" || count < 0) {
  63060.       throw new Error("Array size must be non-negative: " + count);
  63061.     }
  63062.     CArray.prototype["$type"] = CArray;
  63063.     CArray["count"] = count;
  63064.     CArray["elemType"] = elemType;
  63065.     function CArray(heap) {
  63066.       CArray.__super__.constructor.call(this, heap);
  63067.     }
  63068.     checkIndex = function(index) {
  63069.       if (!((0 <= index && index < count))) {
  63070.         throw new Error("Index out of bounds: 0 <= " + index + " < " + count);
  63071.       }
  63072.       return index;
  63073.     };
  63074.     CArray.prototype["get"] = function(index) {
  63075.       var address;
  63076.       address = this["$ptr"] + checkIndex(index) * sizeofType(elemType);
  63077.       if (simpleType(elemType)) {
  63078.         return getValue(address, elemType);
  63079.       } else {
  63080.         return new elemType(address);
  63081.       }
  63082.     };
  63083.     CArray.prototype["set"] = function(index, value) {
  63084.       var address;
  63085.       address = this["$ptr"] + checkIndex(index) * sizeofType(elemType);
  63086.       if (simpleType(elemType)) {
  63087.         if (typeof value !== "number") {
  63088.           throw new Error("Cannot load " + (typeof value) + " to " + elemType);
  63089.         }
  63090.         setValue(address, value, elemType);
  63091.       } else {
  63092.         if (value["$type"] !== elemType) {
  63093.           throw new Error("Cannot load " + value["$type"] + " to " + elemType);
  63094.         }
  63095.         writeTo(address, value, elemType);
  63096.       }
  63097.     };
  63098.     CArray.prototype["getAddress"] = function() {
  63099.       return this["ptr"](0);
  63100.     };
  63101.     CArray.prototype["ptr"] = function(index) {
  63102.       var type;
  63103.       type = simpleType(elemType) ? simplePointerTypes[elemType] : elemType;
  63104.       return new type(this["$ptr"] + checkIndex(index) * sizeofType(elemType));
  63105.     };
  63106.     CArray.prototype["toArray"] = function() {
  63107.       var i, _i, _results;
  63108.       _results = [];
  63109.       for (i = _i = 0; 0 <= count ? _i < count : _i > count; i = 0 <= count ? ++_i : --_i) {
  63110.         _results.push(this["get"](i));
  63111.       }
  63112.       return _results;
  63113.     };
  63114.     CArray.prototype["toString"] = function(stack) {
  63115.       var index;
  63116.       if (stack == null) {
  63117.         stack = [];
  63118.       }
  63119.       return "[" + ((function() {
  63120.         var _i, _results;
  63121.         _results = [];
  63122.         for (index = _i = 0; 0 <= count ? _i < count : _i > count; index = 0 <= count ? ++_i : --_i) {
  63123.           _results.push(" " + (dumpData(this.get(index), elemType, stack)));
  63124.         }
  63125.         return _results;
  63126.       }).call(this)).join(",") + " ]";
  63127.     };
  63128.     CArray["toString"] = function(stack) {
  63129.       if (stack == null) {
  63130.         stack = [];
  63131.       }
  63132.       return "" + (dumpType(elemType, stack)) + "[" + count + "]";
  63133.     };
  63134.     resolved = false;
  63135.     CArray["resolve"] = function() {
  63136.       var size;
  63137.       if (resolved) {
  63138.         return;
  63139.       }
  63140.       if (!simpleType(elemType)) {
  63141.         elemType["resolve"]();
  63142.       }
  63143.       size = count * sizeofType(elemType);
  63144.       this["size"] = size;
  63145.       return resolved = true;
  63146.     };
  63147.     return CArray;
  63148.   })(CObject);
  63149. };
  63150. Module["ptr"] = ptr = function(targetType) {
  63151.   var CPointer;
  63152.   return CPointer = (function(_super) {
  63153.     var resolved, size, _address;
  63154.     __extends(CPointer, _super);
  63155.     if (targetType == null) {
  63156.       throw new Error("Target type is not specified");
  63157.     }
  63158.     CPointer.prototype["$type"] = CPointer;
  63159.     size = sizeof("i32");
  63160.     CPointer["size"] = size;
  63161.     _address = 0;
  63162.     function CPointer(heap, target) {
  63163.       if (heap == null) {
  63164.         heap = NON_HEAP;
  63165.       }
  63166.       if (target == null) {
  63167.         target = null;
  63168.       }
  63169.       CPointer.__super__.constructor.call(this, heap);
  63170.       this.nonHeap = heap === NON_HEAP;
  63171.       if (this.nonHeap) {
  63172.         _address = addressof(target);
  63173.       }
  63174.     }
  63175.     CPointer.prototype["getAddress"] = function() {
  63176.       if (this.nonHeap) {
  63177.         return _address;
  63178.       } else {
  63179.         return getValue(this["$ptr"], "i32");
  63180.       }
  63181.     };
  63182.     CPointer.prototype["setAddress"] = function(targetAddress) {
  63183.       if (this.nonHeap) {
  63184.         return _address = targetAddress;
  63185.       } else {
  63186.         return setValue(this["$ptr"], targetAddress, "i32");
  63187.       }
  63188.     };
  63189.     CPointer.prototype["get"] = function() {
  63190.       var address;
  63191.       address = this["getAddress"]();
  63192.       if (address === 0) {
  63193.         return null;
  63194.       } else if (simpleType(targetType)) {
  63195.         return getValue(address, targetType);
  63196.       } else {
  63197.         return new targetType(address);
  63198.       }
  63199.     };
  63200.     CPointer.prototype["set"] = function(target) {
  63201.       if (this["getAddress"]() === 0) {
  63202.         throw new Error("Null reference");
  63203.       }
  63204.       writeTo(this["getAddress"](), target, targetType);
  63205.     };
  63206.     CPointer.prototype["toString"] = function(stack) {
  63207.       var address;
  63208.       if (stack == null) {
  63209.         stack = [];
  63210.       }
  63211.       address = this["getAddress"]();
  63212.       if (address === 0) {
  63213.         return "NULL";
  63214.       } else {
  63215.         return "@" + address + "->" + (dumpData(this['get'](), targetType, stack));
  63216.       }
  63217.     };
  63218.     CPointer["toString"] = function(stack) {
  63219.       if (stack == null) {
  63220.         stack = [];
  63221.       }
  63222.       return "*" + (dumpType(targetType, stack));
  63223.     };
  63224.     resolved = false;
  63225.     CPointer["resolve"] = function() {
  63226.       if (resolved) {
  63227.         return;
  63228.       }
  63229.       resolved = true;
  63230.       if (!simpleType(targetType)) {
  63231.         return targetType["resolve"]();
  63232.       }
  63233.     };
  63234.     CPointer["fromNative"] = function(value) {
  63235.       var result;
  63236.       result = new this();
  63237.       result["setAddress"](value);
  63238.       return result;
  63239.     };
  63240.     CPointer["toNative"] = function(value) {
  63241.       if (value === null) {
  63242.         return 0;
  63243.       } else {
  63244.         return value["getAddress"]();
  63245.       }
  63246.     };
  63247.     return CPointer;
  63248.   })(CObject);
  63249. };
  63250. Module["string"] = string = CString = (function(_super) {
  63251.   __extends(CString, _super);
  63252.   CString.prototype["$type"] = CString;
  63253.   function CString(arg, alloc) {
  63254.     if (alloc == null) {
  63255.       alloc = ALLOC_NORMAL;
  63256.     }
  63257.     if (arg === null) {
  63258.       CString.__super__.constructor.call(this, 0);
  63259.     } else if (typeof arg === "number") {
  63260.       CString.__super__.constructor.call(this, arg);
  63261.     } else if (typeof arg === "string") {
  63262.       CString.__super__.constructor.call(this, allocate(intArrayFromString(arg), "i8", alloc));
  63263.     } else {
  63264.       throw new Error("Cannot create a string from " + arg);
  63265.     }
  63266.   }
  63267.   CString.prototype["toString"] = function() {
  63268.     return Pointer_stringify(this["$ptr"]);
  63269.   };
  63270.   CString["toString"] = function() {
  63271.     return "*char";
  63272.   };
  63273.   CString["resolve"] = function() {};
  63274.   CString["allocate"] = function(size, alloc) {
  63275.     if (alloc == null) {
  63276.       alloc = ALLOC_NORMAL;
  63277.     }
  63278.     return new this(allocate(size, "i8", alloc));
  63279.   };
  63280.   return CString;
  63281. })(CObject);
  63282. Module["define"] = define = function(returnType, name, argumentsDef) {
  63283.   var argument, argumentNativeTypes, argumentTypes, cFunc, returnNative, type;
  63284.   if (argumentsDef == null) {
  63285.     argumentsDef = {};
  63286.   }
  63287.   returnNative = nativeTypeOf(returnType);
  63288.   argumentTypes = (function() {
  63289.     var _results;
  63290.     _results = [];
  63291.     for (argument in argumentsDef) {
  63292.       if (!__hasProp.call(argumentsDef, argument)) continue;
  63293.       type = argumentsDef[argument];
  63294.       _results.push(type);
  63295.     }
  63296.     return _results;
  63297.   })();
  63298.   argumentNativeTypes = (function() {
  63299.     var _i, _len, _results;
  63300.     _results = [];
  63301.     for (_i = 0, _len = argumentTypes.length; _i < _len; _i++) {
  63302.       type = argumentTypes[_i];
  63303.       _results.push(nativeTypeOf(type));
  63304.     }
  63305.     return _results;
  63306.   })();
  63307.   cFunc = cwrap(name, returnNative, argumentNativeTypes);
  63308.   return Module[name] = function() {
  63309.     var args, i, nativeArgs, result, resultNative, _i, _ref;
  63310.     args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
  63311.     nativeArgs = new Array(argumentTypes.length);
  63312.     for (i = _i = 0, _ref = argumentTypes.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
  63313.       nativeArgs[i] = toNative(args[i], argumentTypes[i]);
  63314.     }
  63315.     resultNative = cFunc.apply(null, nativeArgs);
  63316.     result = fromNative(resultNative, returnType);
  63317.     return result;
  63318.   };
  63319. };
  63320. Module["callback"] = callback = function(returnType, name, argumentsDef, func) {
  63321.   var argument, argumentTypes, callbackFunc, functionIndex, type;
  63322.   if (argumentsDef == null) {
  63323.     argumentsDef = {};
  63324.   }
  63325.   argumentTypes = (function() {
  63326.     var _results;
  63327.     _results = [];
  63328.     for (argument in argumentsDef) {
  63329.       if (!__hasProp.call(argumentsDef, argument)) continue;
  63330.       type = argumentsDef[argument];
  63331.       _results.push(type);
  63332.     }
  63333.     return _results;
  63334.   })();
  63335.   callbackFunc = function() {
  63336.     var args, i, nativeArgs, result, resultNative, _i, _ref;
  63337.     nativeArgs = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
  63338.     args = new Array(argumentTypes.length);
  63339.     for (i = _i = 0, _ref = argumentTypes.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
  63340.       args[i] = fromNative(nativeArgs[i], argumentTypes[i]);
  63341.     }
  63342.     result = func.apply(null, args);
  63343.     resultNative = toNative(result, returnType);
  63344.     return resultNative;
  63345.   };
  63346.   functionIndex = Runtime.addFunction(callbackFunc, "x");
  63347.   if (name != null) {
  63348.     Module[name] = functionIndex;
  63349.   }
  63350.   return functionIndex;
  63351. };
  63352. Module["unregisterCallback"] = unregisterCallback = function(functionIndex) {
  63353.   return Runtime.removeFunction(functionIndex);
  63354. };
  63355. Module["typedef"] = typedef = function(name, type) {
  63356.   type["typeName"] = name;
  63357.   return Module[name] = type;
  63358. };
  63359. addressof = function(value, type) {
  63360.   if (simpleType(type)) {
  63361.     throw new Error("Simple types don't have an address");
  63362.   }
  63363.   if (value === null) {
  63364.     return 0;
  63365.   } else {
  63366.     return value["$ptr"];
  63367.   }
  63368. };
  63369. sizeof = function(type) {
  63370.   if (simpleType(type)) {
  63371.     return Runtime.getNativeFieldSize(type);
  63372.   } else {
  63373.     return type["size"];
  63374.   }
  63375. };
  63376. sizeofType = function(type) {
  63377.   if (simpleType(type)) {
  63378.     return Runtime.getNativeTypeSize(type);
  63379.   } else {
  63380.     return type["size"];
  63381.   }
  63382. };
  63383. writeTo = function(address, value, type) {
  63384.   if (simpleType(type)) {
  63385.     return setValue(address, value, type);
  63386.   } else {
  63387.     return type["writeTo"](address, value);
  63388.   }
  63389. };
  63390. simpleType = function(type) {
  63391.   return typeof type === "string";
  63392. };
  63393. nativeTypeOf = function(type) {
  63394.   return "number";
  63395. };
  63396. fromNative = function(value, type) {
  63397.   if (simpleType(type)) {
  63398.     return value;
  63399.   } else {
  63400.     return type["fromNative"](value);
  63401.   }
  63402. };
  63403. toNative = function(value, type) {
  63404.   if (simpleType(type)) {
  63405.     return value;
  63406.   } else {
  63407.     return type["toNative"](value);
  63408.   }
  63409. };
  63410. dumpType = function(type, stack) {
  63411.   var s;
  63412.   if (simpleType(type)) {
  63413.     s = type;
  63414.   } else if (stack.indexOf(type) > -1) {
  63415.     s = type["typeName"] ? type["typeName"] : "<backreference>";
  63416.   } else {
  63417.     if (type["typeName"] == null) {
  63418.       stack.push(type);
  63419.       s = type["toString"](stack);
  63420.       stack.pop();
  63421.     } else {
  63422.       s = type["typeName"];
  63423.     }
  63424.   }
  63425.   return s;
  63426. };
  63427. dumpData = function(value, type, stack) {
  63428.   var address, s;
  63429.   s = null;
  63430.   if (simpleType(type)) {
  63431.     s = value;
  63432.   } else {
  63433.     address = value["$ptr"];
  63434.     if (address === 0) {
  63435.       s = "NULL";
  63436.     } else {
  63437.       if (stack.indexOf(address) > -1) {
  63438.         s = "<backreference>";
  63439.       } else {
  63440.         stack.push(address);
  63441.         s = value["toString"](stack);
  63442.         stack.pop();
  63443.       }
  63444.     }
  63445.   }
  63446.   return s;
  63447. };
  63448. simplePointerTypes = {};
  63449. _ref = ["i1", "i8", "i16", "i32", "i64", "float", "double"];
  63450. for (_i = 0, _len = _ref.length; _i < _len; _i++) {
  63451.   type = _ref[_i];
  63452.   simplePointerTypes[type] = ptr(type);
  63453. }
  63454. // Generated by CoffeeScript 1.6.2
  63455. var Bool, Char, Enumeration, HB_DIRECTION_BTT, HB_DIRECTION_INVALID, HB_DIRECTION_LTR, HB_DIRECTION_RTL, HB_DIRECTION_TTB, HB_FONT_CALLBACKS, HB_LANGUAGE_INVALID, HB_SHAPER_LIST, HB_TAG, HB_UNICODE_CALLBACKS, HB_UNTAG, Int, Long, Long_Long, Short, Unsigned_Char, Unsigned_Int, Unsigned_Long, Unsigned_Long_Long, Unsigned_Short, fontCallback, hb_atomic_int_t, hb_blob_t, hb_bool_t, hb_buffer_content_type_t, hb_buffer_t, hb_codepoint_t, hb_destroy_func_t, hb_direction_t, hb_face_t, hb_feature_t, hb_font_funcs_t, hb_font_t, hb_glyph_info_t, hb_glyph_position_t, hb_language_impl_t, hb_language_t, hb_lockable_set_t, hb_mask_t, hb_memory_mode_t, hb_mutex_impl_t, hb_mutex_t, hb_object_header_t, hb_position_t, hb_prealloced_array_t, hb_reference_count_t, hb_reference_table_func_t, hb_script_t, hb_segment_properties_t, hb_shape_func_t, hb_shaper_data_t, hb_tag_t, hb_unicode_funcs_t, hb_user_data_array_t, hb_user_data_item_t, hb_user_data_key_t, hb_var_int_t, int16_t, int32_t, int64_t, int8_t, uint16_t, uint32_t, uint64_t, uint8_t, _i, _len;
  63456. Module["Bool"] = Bool = "i1";
  63457. Module["Char"] = Char = "i8";
  63458. Module["Unsigned_Char"] = Unsigned_Char = "i8";
  63459. Module["int8_t"] = int8_t = "i8";
  63460. Module["uint8_t"] = uint8_t = "i8";
  63461. Module["Short"] = Short = "i16";
  63462. Module["Unsigned_Short"] = Unsigned_Short = "i16";
  63463. Module["int16_t"] = int16_t = "i16";
  63464. Module["uint16_t"] = uint16_t = "i16";
  63465. Module["Int"] = Int = "i32";
  63466. Module["Unsigned_Int"] = Unsigned_Int = "i32";
  63467. Module["int32_t"] = int32_t = "i32";
  63468. Module["uint32_t"] = uint32_t = "i32";
  63469. Module["Long"] = Long = "i64";
  63470. Module["Unsigned_Long"] = Unsigned_Long = "i64";
  63471. Module["Long_Long"] = Long_Long = "i64";
  63472. Module["Unsigned_Long_Long"] = Unsigned_Long_Long = "i64";
  63473. Module["int64_t"] = int64_t = "i64";
  63474. Module["uint64_t"] = uint64_t = "i64";
  63475. Module["Enumeration"] = Enumeration = "i32";
  63476. Module["HB_TAG"] = HB_TAG = function(tag) {
  63477.   return tag.charCodeAt(0) << 24 | tag.charCodeAt(1) << 16 | tag.charCodeAt(2) << 8 | tag.charCodeAt(3);
  63478. };
  63479. Module["HB_UNTAG"] = HB_UNTAG = function(tag) {
  63480.   return String.fromCharCode(tag >>> 24, (tag >>> 16) & 0xFF, (tag >>> 8) & 0xFF, tag & 0xFF);
  63481. };
  63482. hb_language_impl_t = typedef("hb_language_impl_t", struct({
  63483.   "s": array(Char, 1)
  63484. }));
  63485. Module["hb_bool_t"] = hb_bool_t = Int;
  63486. Module["hb_codepoint_t"] = hb_codepoint_t = uint32_t;
  63487. Module["hb_position_t"] = hb_position_t = int32_t;
  63488. Module["hb_mask_t"] = hb_mask_t = uint32_t;
  63489. Module["hb_var_int_t"] = hb_var_int_t = uint32_t;
  63490. Module["hb_tag_t"] = hb_tag_t = uint32_t;
  63491. Module["hb_direction_t"] = hb_direction_t = Enumeration;
  63492. Module["HB_DIRECTION_INVALID"] = HB_DIRECTION_INVALID = 0;
  63493. Module["HB_DIRECTION_LTR"] = HB_DIRECTION_LTR = 4;
  63494. Module["HB_DIRECTION_RTL"] = HB_DIRECTION_RTL = 5;
  63495. Module["HB_DIRECTION_TTB"] = HB_DIRECTION_TTB = 6;
  63496. Module["HB_DIRECTION_BTT"] = HB_DIRECTION_BTT = 7;
  63497. Module["hb_script_t"] = hb_script_t = Enumeration;
  63498. hb_user_data_key_t = typedef("hb_user_data_key_t", struct({
  63499.   "unused": Char
  63500. }));
  63501. hb_destroy_func_t = ptr(Int);
  63502. hb_language_t = ptr(hb_language_impl_t);
  63503. Module["HB_LANGUAGE_INVALID"] = HB_LANGUAGE_INVALID = null;
  63504. define(hb_language_t, "hb_language_from_string", {
  63505.   "str": string,
  63506.   "len": Int
  63507. });
  63508. define(string, "hb_language_to_string", {
  63509.   "language": hb_language_t
  63510. });
  63511. hb_atomic_int_t = Int;
  63512. hb_mutex_impl_t = Int;
  63513. hb_mutex_t = typedef("hb_mutex_t", struct({
  63514.   "m": hb_mutex_impl_t
  63515. }));
  63516. hb_prealloced_array_t = function(Type, StaticSize) {
  63517.   return typedef("hb_prealloced_array_t<" + Type + ", " + StaticSize + ">", struct({
  63518.     "len": Unsigned_Int,
  63519.     "allocated": Unsigned_Int,
  63520.     "array": ptr(Type),
  63521.     "static_array": array(Type, StaticSize)
  63522.   }));
  63523. };
  63524. hb_lockable_set_t = function(item_t, lock_t) {
  63525.   return typedef("hb_lockable_set_t<" + item_t + ", " + lock_t + ">", struct({
  63526.     "items": hb_prealloced_array_t(item_t, 2)
  63527.   }));
  63528. };
  63529. hb_reference_count_t = typedef("hb_reference_count_t", struct({
  63530.   "ref_count": hb_atomic_int_t
  63531. }));
  63532. hb_user_data_item_t = typedef("hb_user_data_item_t", struct({
  63533.   "key": ptr(hb_user_data_key_t),
  63534.   "data": ptr(Int),
  63535.   "destroy": ptr(Int)
  63536. }));
  63537. hb_user_data_array_t = typedef("hb_user_data_array_t", struct({
  63538.   "items": hb_lockable_set_t(hb_user_data_item_t, hb_mutex_t)
  63539. }));
  63540. hb_object_header_t = typedef("hb_object_header_t", struct({
  63541.   "ref_count": hb_reference_count_t,
  63542.   "mutex": hb_mutex_t,
  63543.   "user_data": hb_user_data_array_t
  63544. }));
  63545. HB_UNICODE_CALLBACKS = ["combining_class", "eastasian_width", "general_category", "mirroring", "script", "compose", "decompose", "decompose_compatibility"];
  63546. hb_unicode_funcs_t = typedef("hb_unicode_funcs_t", struct({
  63547.   "header": hb_object_header_t,
  63548.   "parent": SelfPtr,
  63549.   "immutable": Bool,
  63550.   "func": array(ptr("i32"), HB_UNICODE_CALLBACKS.length),
  63551.   "user_data": array(ptr("i32"), HB_UNICODE_CALLBACKS.length),
  63552.   "destroy": array(ptr("i32"), HB_UNICODE_CALLBACKS.length)
  63553. }));
  63554. define(hb_unicode_funcs_t, "hb_unicode_funcs_get_default");
  63555. define(hb_unicode_funcs_t, "hb_unicode_funcs_reference", {
  63556.   "ufuncs": hb_unicode_funcs_t
  63557. });
  63558. hb_glyph_info_t = typedef("hb_glyph_info_t", struct({
  63559.   "codepoint": hb_codepoint_t,
  63560.   "mask": hb_mask_t,
  63561.   "cluster": uint32_t,
  63562.   "var1": hb_var_int_t,
  63563.   "var2": hb_var_int_t
  63564. }));
  63565. hb_glyph_position_t = typedef("hb_glyph_position_t", struct({
  63566.   "x_advance": hb_position_t,
  63567.   "y_advance": hb_position_t,
  63568.   "x_offset": hb_position_t,
  63569.   "y_offset": hb_position_t,
  63570.   "var": hb_var_int_t
  63571. }));
  63572. hb_buffer_content_type_t = Enumeration;
  63573. hb_segment_properties_t = typedef("hb_segment_properties_t", struct({
  63574.   "direction": hb_direction_t,
  63575.   "script": hb_script_t,
  63576.   "language": hb_language_t
  63577. }));
  63578. hb_buffer_t = typedef("hb_buffer_t", struct({
  63579.   "header": hb_object_header_t,
  63580.   "unicode": ptr(hb_unicode_funcs_t),
  63581.   "props": hb_segment_properties_t,
  63582.   "content_type": hb_buffer_content_type_t,
  63583.   "_status": Unsigned_Int,
  63584.   "idx": Unsigned_Int,
  63585.   "len": Unsigned_Int,
  63586.   "out_len": Unsigned_Int,
  63587.   "allocated": Unsigned_Int,
  63588.   "info": ptr(hb_glyph_info_t),
  63589.   "out_info": ptr(hb_glyph_info_t),
  63590.   "pos": ptr(hb_glyph_position_t),
  63591.   "serial": Unsigned_Int,
  63592.   "allocated_var_bytes": array(uint8_t, 8),
  63593.   "allocated_var_owner": array(ptr(Char), 8)
  63594. }));
  63595. define(hb_buffer_t, "hb_buffer_create");
  63596. define(hb_buffer_t, "hb_buffer_reference", {
  63597.   "buffer": hb_buffer_t
  63598. });
  63599. define(Void, "hb_buffer_destroy", {
  63600.   "buffer": hb_buffer_t
  63601. });
  63602. define(Void, "hb_buffer_reset", {
  63603.   "buffer": hb_buffer_t
  63604. });
  63605. define(hb_buffer_t, "hb_buffer_get_empty");
  63606. define(Void, "hb_buffer_set_content_type", {
  63607.   "buffer": hb_buffer_t,
  63608.   "content_type": hb_buffer_content_type_t
  63609. });
  63610. define(Int, "hb_buffer_get_content_type", {
  63611.   "buffer": hb_buffer_t
  63612. });
  63613. define(Unsigned_Int, "hb_buffer_get_length", {
  63614.   "buffer": hb_buffer_t
  63615. });
  63616. define(hb_glyph_info_t, "hb_buffer_get_glyph_infos", {
  63617.   "buffer": hb_buffer_t,
  63618.   "length": ptr(Unsigned_Int)
  63619. });
  63620. define(hb_glyph_position_t, "hb_buffer_get_glyph_positions", {
  63621.   "buffer": hb_buffer_t,
  63622.   "length": ptr(Unsigned_Int)
  63623. });
  63624. define(Void, "hb_buffer_normalize_glyphs", {
  63625.   "buffer": hb_buffer_t
  63626. });
  63627. define(Void, "hb_buffer_add", {
  63628.   "buffer": hb_buffer_t,
  63629.   "codepoint": hb_codepoint_t,
  63630.   "mask": hb_mask_t,
  63631.   "cluster": Unsigned_Int
  63632. });
  63633. define(Void, "hb_buffer_add_utf8", {
  63634.   "buffer": hb_buffer_t,
  63635.   "text": string,
  63636.   "text_length": Int,
  63637.   "item_offset": Unsigned_Int,
  63638.   "item_length": Int
  63639. });
  63640. define(Void, "hb_buffer_add_utf16", {
  63641.   "buffer": hb_buffer_t,
  63642.   "text": ptr(uint16_t),
  63643.   "text_length": Int,
  63644.   "item_offset": Unsigned_Int,
  63645.   "item_length": Int
  63646. });
  63647. define(Void, "hb_buffer_add_utf32", {
  63648.   "buffer": hb_buffer_t,
  63649.   "text": ptr(uint32_t),
  63650.   "text_length": Int,
  63651.   "item_offset": Unsigned_Int,
  63652.   "item_length": Int
  63653. });
  63654. define(Unsigned_Int, "hb_buffer_get_length", {
  63655.   "buffer": hb_buffer_t
  63656. });
  63657. define(Void, "hb_buffer_guess_segment_properties", {
  63658.   "buffer": hb_buffer_t
  63659. });
  63660. define(Void, "hb_buffer_set_direction", {
  63661.   "buffer": hb_buffer_t,
  63662.   "direction": hb_direction_t
  63663. });
  63664. define(hb_direction_t, "hb_buffer_get_direction", {
  63665.   "buffer": hb_buffer_t
  63666. });
  63667. define(Void, "hb_buffer_set_script", {
  63668.   "buffer": hb_buffer_t,
  63669.   "script": hb_script_t
  63670. });
  63671. define(hb_script_t, "hb_buffer_get_script", {
  63672.   "buffer": hb_buffer_t
  63673. });
  63674. define(Void, "hb_buffer_set_language", {
  63675.   "buffer": hb_buffer_t,
  63676.   "language": hb_language_t
  63677. });
  63678. define(hb_language_t, "hb_buffer_get_language", {
  63679.   "buffer": hb_buffer_t
  63680. });
  63681. hb_memory_mode_t = Enumeration;
  63682. hb_blob_t = typedef("hb_blob_t", struct({
  63683.   "header": hb_object_header_t,
  63684.   "immutable": Bool,
  63685.   "data": ptr(Char),
  63686.   "length": Unsigned_Int,
  63687.   "mode": hb_memory_mode_t,
  63688.   "user_data": ptr(Void),
  63689.   "destroy": hb_destroy_func_t
  63690. }));
  63691. define(hb_blob_t, "hb_blob_create", {
  63692.   "data": string,
  63693.   "length": Unsigned_Int,
  63694.   "mode": hb_memory_mode_t,
  63695.   "user_data": ptr(Void),
  63696.   "destroy": hb_destroy_func_t
  63697. });
  63698. define(hb_blob_t, "hb_blob_create_sub_blob", {
  63699.   "parent": hb_blob_t,
  63700.   "offset": Unsigned_Int,
  63701.   "length": Unsigned_Int
  63702. });
  63703. define(hb_blob_t, "hb_blob_get_empty");
  63704. define(hb_blob_t, "hb_blob_reference", {
  63705.   "blob": hb_blob_t
  63706. });
  63707. define(Void, "hb_blob_destroy", {
  63708.   "blob": hb_blob_t
  63709. });
  63710. HB_SHAPER_LIST = ["ot", "fallback"];
  63711. hb_shaper_data_t = typedef("hb_shaper_data_t", struct({
  63712.   "_shapers": array(ptr(Void), HB_SHAPER_LIST.length)
  63713. }));
  63714. hb_shape_func_t = ptr(Void);
  63715. hb_feature_t = typedef("hb_feature_t", struct({
  63716.   "tag": hb_tag_t,
  63717.   "value": uint32_t,
  63718.   "start": Unsigned_Int,
  63719.   "end": Unsigned_Int
  63720. }));
  63721. hb_font_t = typedef("hb_font_t", struct({}));
  63722. define(hb_bool_t, "hb_feature_from_string", {
  63723.   "str": string,
  63724.   "len": Int,
  63725.   "feature": hb_feature_t
  63726. });
  63727. define(Void, "hb_feature_to_string", {
  63728.   "feature": hb_feature_t,
  63729.   "buf": string,
  63730.   "size": Int
  63731. });
  63732. define(ptr(ptr(Char)), "hb_shape_list_shapers");
  63733. define(Void, "hb_shape", {
  63734.   "font": hb_font_t,
  63735.   "buffer": hb_buffer_t,
  63736.   "features": hb_feature_t,
  63737.   "num_features": Unsigned_Int
  63738. });
  63739. define(hb_bool_t, "hb_shape_full", {
  63740.   "font": hb_font_t,
  63741.   "buffer": hb_buffer_t,
  63742.   "features": hb_feature_t,
  63743.   "num_features": Unsigned_Int,
  63744.   "shaper_list": ptr(ptr(Char))
  63745. });
  63746. HB_FONT_CALLBACKS = ["glyph", "glyph_h_advance", "glyph_v_advance", "glyph_h_origin", "glyph_v_origin", "glyph_h_kerning", "glyph_v_kerning", "glyph_extents", "glyph_contour_point", "glyph_name", "glyph_from_name"];
  63747. hb_reference_table_func_t = ptr(Void);
  63748. hb_font_funcs_t = typedef("hb_font_funcs_t", struct({
  63749.   "header": hb_object_header_t,
  63750.   "immutable": hb_bool_t,
  63751.   "get": array(ptr(Void), HB_FONT_CALLBACKS.length),
  63752.   "user_data": array(ptr(Void), HB_FONT_CALLBACKS.length),
  63753.   "destroy": array(ptr(Void), HB_FONT_CALLBACKS.length)
  63754. }));
  63755. hb_face_t = typedef("hb_face_t", struct({
  63756.   "header": hb_object_header_t,
  63757.   "immutable": hb_bool_t,
  63758.   "reference_table_func": hb_reference_table_func_t,
  63759.   "user_data": ptr(Void),
  63760.   "destroy": hb_destroy_func_t,
  63761.   "index": Unsigned_Int,
  63762.   "upem": Unsigned_Int,
  63763.   "shaper_data": hb_shaper_data_t,
  63764.   "shape_plans": ptr(Void)
  63765. }));
  63766. hb_font_t["redefine"]({
  63767.   "header": hb_object_header_t,
  63768.   "immutable": hb_bool_t,
  63769.   "parent": SelfPtr,
  63770.   "face": ptr(hb_face_t),
  63771.   "x_scale": Int,
  63772.   "y_scale": Int,
  63773.   "x_ppem": Unsigned_Int,
  63774.   "y_ppem": Unsigned_Int,
  63775.   "klass": ptr(hb_font_funcs_t),
  63776.   "user_data": ptr(Void),
  63777.   "destroy": hb_destroy_func_t,
  63778.   "shaper_data": hb_shaper_data_t
  63779. });
  63780. define(hb_face_t, "hb_face_create", {
  63781.   "blob": hb_blob_t,
  63782.   "index": Unsigned_Int
  63783. });
  63784. define(Void, "hb_face_destroy", {
  63785.   "face": hb_face_t
  63786. });
  63787. define(hb_font_t, "hb_font_create", {
  63788.   "face": hb_face_t
  63789. });
  63790. define(Void, "hb_font_destroy", {
  63791.   "font": hb_font_t
  63792. });
  63793. define(Void, "hb_font_set_scale", {
  63794.   "font": hb_font_t,
  63795.   "x_scale": Int,
  63796.   "y_scale": Int
  63797. });
  63798. define(hb_face_t, "hb_font_get_face", {
  63799.   "font": hb_font_t
  63800. });
  63801. define(hb_font_funcs_t, "hb_font_funcs_create");
  63802. for (_i = 0, _len = HB_FONT_CALLBACKS.length; _i < _len; _i++) {
  63803.   fontCallback = HB_FONT_CALLBACKS[_i];
  63804.   define(Void, "hb_font_funcs_set_" + fontCallback + "_func", {
  63805.     "ffuncs": hb_font_funcs_t,
  63806.     "func": "i32",
  63807.     "user_data": ptr(Void),
  63808.     "destroy": hb_destroy_func_t
  63809.   });
  63810. }
  63811. define(Void, "hb_font_funcs_destroy", {
  63812.   "ffuncs": hb_font_funcs_t
  63813. });
  63814. define(Void, "hb_font_set_funcs", {
  63815.   "font": hb_font_t,
  63816.   "klass": hb_font_funcs_t,
  63817.   "font_data": ptr(Void),
  63818.   "destroy": hb_destroy_func_t
  63819. });
  63820. define(string, "ucdn_get_unicode_version");
  63821. define(Int, "ucdn_get_combining_class", {
  63822.   "code": uint32_t
  63823. });
  63824. define(Int, "ucdn_get_east_asian_width", {
  63825.   "code": uint32_t
  63826. });
  63827. define(Int, "ucdn_get_general_category", {
  63828.   "code": uint32_t
  63829. });
  63830. define(Int, "ucdn_get_bidi_class", {
  63831.   "code": uint32_t
  63832. });
  63833. define(Int, "ucdn_get_script", {
  63834.   "code": uint32_t
  63835. });
  63836. define(Int, "ucdn_get_mirrored", {
  63837.   "code": uint32_t
  63838. });
  63839. define(Int, "ucdn_mirror", {
  63840.   "code": uint32_t
  63841. });
  63842. define(Int, "ucdn_decompose", {
  63843.   "code": uint32_t,
  63844.   "a": ptr(uint32_t),
  63845.   "b": ptr(uint32_t)
  63846. });
  63847. define(Int, "ucdn_compose", {
  63848.   "code": ptr(uint32_t),
  63849.   "a": uint32_t,
  63850.   "b": uint32_t
  63851. });
  63852. Module["UCDN_EAST_ASIAN_F"] = 0;
  63853. Module["UCDN_EAST_ASIAN_H"] = 1;
  63854. Module["UCDN_EAST_ASIAN_W"] = 2;
  63855. Module["UCDN_EAST_ASIAN_NA"] = 3;
  63856. Module["UCDN_EAST_ASIAN_A"] = 4;
  63857. Module["UCDN_EAST_ASIAN_N"] = 5;
  63858. Module["UCDN_SCRIPT_COMMON"] = 0;
  63859. Module["UCDN_SCRIPT_LATIN"] = 1;
  63860. Module["UCDN_SCRIPT_GREEK"] = 2;
  63861. Module["UCDN_SCRIPT_CYRILLIC"] = 3;
  63862. Module["UCDN_SCRIPT_ARMENIAN"] = 4;
  63863. Module["UCDN_SCRIPT_HEBREW"] = 5;
  63864. Module["UCDN_SCRIPT_ARABIC"] = 6;
  63865. Module["UCDN_SCRIPT_SYRIAC"] = 7;
  63866. Module["UCDN_SCRIPT_THAANA"] = 8;
  63867. Module["UCDN_SCRIPT_DEVANAGARI"] = 9;
  63868. Module["UCDN_SCRIPT_BENGALI"] = 10;
  63869. Module["UCDN_SCRIPT_GURMUKHI"] = 11;
  63870. Module["UCDN_SCRIPT_GUJARATI"] = 12;
  63871. Module["UCDN_SCRIPT_ORIYA"] = 13;
  63872. Module["UCDN_SCRIPT_TAMIL"] = 14;
  63873. Module["UCDN_SCRIPT_TELUGU"] = 15;
  63874. Module["UCDN_SCRIPT_KANNADA"] = 16;
  63875. Module["UCDN_SCRIPT_MALAYALAM"] = 17;
  63876. Module["UCDN_SCRIPT_SINHALA"] = 18;
  63877. Module["UCDN_SCRIPT_THAI"] = 19;
  63878. Module["UCDN_SCRIPT_LAO"] = 20;
  63879. Module["UCDN_SCRIPT_TIBETAN"] = 21;
  63880. Module["UCDN_SCRIPT_MYANMAR"] = 22;
  63881. Module["UCDN_SCRIPT_GEORGIAN"] = 23;
  63882. Module["UCDN_SCRIPT_HANGUL"] = 24;
  63883. Module["UCDN_SCRIPT_ETHIOPIC"] = 25;
  63884. Module["UCDN_SCRIPT_CHEROKEE"] = 26;
  63885. Module["UCDN_SCRIPT_CANADIAN_ABORIGINAL"] = 27;
  63886. Module["UCDN_SCRIPT_OGHAM"] = 28;
  63887. Module["UCDN_SCRIPT_RUNIC"] = 29;
  63888. Module["UCDN_SCRIPT_KHMER"] = 30;
  63889. Module["UCDN_SCRIPT_MONGOLIAN"] = 31;
  63890. Module["UCDN_SCRIPT_HIRAGANA"] = 32;
  63891. Module["UCDN_SCRIPT_KATAKANA"] = 33;
  63892. Module["UCDN_SCRIPT_BOPOMOFO"] = 34;
  63893. Module["UCDN_SCRIPT_HAN"] = 35;
  63894. Module["UCDN_SCRIPT_YI"] = 36;
  63895. Module["UCDN_SCRIPT_OLD_ITALIC"] = 37;
  63896. Module["UCDN_SCRIPT_GOTHIC"] = 38;
  63897. Module["UCDN_SCRIPT_DESERET"] = 39;
  63898. Module["UCDN_SCRIPT_INHERITED"] = 40;
  63899. Module["UCDN_SCRIPT_TAGALOG"] = 41;
  63900. Module["UCDN_SCRIPT_HANUNOO"] = 42;
  63901. Module["UCDN_SCRIPT_BUHID"] = 43;
  63902. Module["UCDN_SCRIPT_TAGBANWA"] = 44;
  63903. Module["UCDN_SCRIPT_LIMBU"] = 45;
  63904. Module["UCDN_SCRIPT_TAI_LE"] = 46;
  63905. Module["UCDN_SCRIPT_LINEAR_B"] = 47;
  63906. Module["UCDN_SCRIPT_UGARITIC"] = 48;
  63907. Module["UCDN_SCRIPT_SHAVIAN"] = 49;
  63908. Module["UCDN_SCRIPT_OSMANYA"] = 50;
  63909. Module["UCDN_SCRIPT_CYPRIOT"] = 51;
  63910. Module["UCDN_SCRIPT_BRAILLE"] = 52;
  63911. Module["UCDN_SCRIPT_BUGINESE"] = 53;
  63912. Module["UCDN_SCRIPT_COPTIC"] = 54;
  63913. Module["UCDN_SCRIPT_NEW_TAI_LUE"] = 55;
  63914. Module["UCDN_SCRIPT_GLAGOLITIC"] = 56;
  63915. Module["UCDN_SCRIPT_TIFINAGH"] = 57;
  63916. Module["UCDN_SCRIPT_SYLOTI_NAGRI"] = 58;
  63917. Module["UCDN_SCRIPT_OLD_PERSIAN"] = 59;
  63918. Module["UCDN_SCRIPT_KHAROSHTHI"] = 60;
  63919. Module["UCDN_SCRIPT_BALINESE"] = 61;
  63920. Module["UCDN_SCRIPT_CUNEIFORM"] = 62;
  63921. Module["UCDN_SCRIPT_PHOENICIAN"] = 63;
  63922. Module["UCDN_SCRIPT_PHAGS_PA"] = 64;
  63923. Module["UCDN_SCRIPT_NKO"] = 65;
  63924. Module["UCDN_SCRIPT_SUNDANESE"] = 66;
  63925. Module["UCDN_SCRIPT_LEPCHA"] = 67;
  63926. Module["UCDN_SCRIPT_OL_CHIKI"] = 68;
  63927. Module["UCDN_SCRIPT_VAI"] = 69;
  63928. Module["UCDN_SCRIPT_SAURASHTRA"] = 70;
  63929. Module["UCDN_SCRIPT_KAYAH_LI"] = 71;
  63930. Module["UCDN_SCRIPT_REJANG"] = 72;
  63931. Module["UCDN_SCRIPT_LYCIAN"] = 73;
  63932. Module["UCDN_SCRIPT_CARIAN"] = 74;
  63933. Module["UCDN_SCRIPT_LYDIAN"] = 75;
  63934. Module["UCDN_SCRIPT_CHAM"] = 76;
  63935. Module["UCDN_SCRIPT_TAI_THAM"] = 77;
  63936. Module["UCDN_SCRIPT_TAI_VIET"] = 78;
  63937. Module["UCDN_SCRIPT_AVESTAN"] = 79;
  63938. Module["UCDN_SCRIPT_EGYPTIAN_HIEROGLYPHS"] = 80;
  63939. Module["UCDN_SCRIPT_SAMARITAN"] = 81;
  63940. Module["UCDN_SCRIPT_LISU"] = 82;
  63941. Module["UCDN_SCRIPT_BAMUM"] = 83;
  63942. Module["UCDN_SCRIPT_JAVANESE"] = 84;
  63943. Module["UCDN_SCRIPT_MEETEI_MAYEK"] = 85;
  63944. Module["UCDN_SCRIPT_IMPERIAL_ARAMAIC"] = 86;
  63945. Module["UCDN_SCRIPT_OLD_SOUTH_ARABIAN"] = 87;
  63946. Module["UCDN_SCRIPT_INSCRIPTIONAL_PARTHIAN"] = 88;
  63947. Module["UCDN_SCRIPT_INSCRIPTIONAL_PAHLAVI"] = 89;
  63948. Module["UCDN_SCRIPT_OLD_TURKIC"] = 90;
  63949. Module["UCDN_SCRIPT_KAITHI"] = 91;
  63950. Module["UCDN_SCRIPT_BATAK"] = 92;
  63951. Module["UCDN_SCRIPT_BRAHMI"] = 93;
  63952. Module["UCDN_SCRIPT_MANDAIC"] = 94;
  63953. Module["UCDN_SCRIPT_CHAKMA"] = 95;
  63954. Module["UCDN_SCRIPT_MEROITIC_CURSIVE"] = 96;
  63955. Module["UCDN_SCRIPT_MEROITIC_HIEROGLYPHS"] = 97;
  63956. Module["UCDN_SCRIPT_MIAO"] = 98;
  63957. Module["UCDN_SCRIPT_SHARADA"] = 99;
  63958. Module["UCDN_SCRIPT_SORA_SOMPENG"] = 100;
  63959. Module["UCDN_SCRIPT_TAKRI"] = 101;
  63960. Module["UCDN_SCRIPT_UNKNOWN"] = 102;
  63961. Module["UCDN_GENERAL_CATEGORY_CC"] = 0;
  63962. Module["UCDN_GENERAL_CATEGORY_CF"] = 1;
  63963. Module["UCDN_GENERAL_CATEGORY_CN"] = 2;
  63964. Module["UCDN_GENERAL_CATEGORY_CO"] = 3;
  63965. Module["UCDN_GENERAL_CATEGORY_CS"] = 4;
  63966. Module["UCDN_GENERAL_CATEGORY_LL"] = 5;
  63967. Module["UCDN_GENERAL_CATEGORY_LM"] = 6;
  63968. Module["UCDN_GENERAL_CATEGORY_LO"] = 7;
  63969. Module["UCDN_GENERAL_CATEGORY_LT"] = 8;
  63970. Module["UCDN_GENERAL_CATEGORY_LU"] = 9;
  63971. Module["UCDN_GENERAL_CATEGORY_MC"] = 10;
  63972. Module["UCDN_GENERAL_CATEGORY_ME"] = 11;
  63973. Module["UCDN_GENERAL_CATEGORY_MN"] = 12;
  63974. Module["UCDN_GENERAL_CATEGORY_ND"] = 13;
  63975. Module["UCDN_GENERAL_CATEGORY_NL"] = 14;
  63976. Module["UCDN_GENERAL_CATEGORY_NO"] = 15;
  63977. Module["UCDN_GENERAL_CATEGORY_PC"] = 16;
  63978. Module["UCDN_GENERAL_CATEGORY_PD"] = 17;
  63979. Module["UCDN_GENERAL_CATEGORY_PE"] = 18;
  63980. Module["UCDN_GENERAL_CATEGORY_PF"] = 19;
  63981. Module["UCDN_GENERAL_CATEGORY_PI"] = 20;
  63982. Module["UCDN_GENERAL_CATEGORY_PO"] = 21;
  63983. Module["UCDN_GENERAL_CATEGORY_PS"] = 22;
  63984. Module["UCDN_GENERAL_CATEGORY_SC"] = 23;
  63985. Module["UCDN_GENERAL_CATEGORY_SK"] = 24;
  63986. Module["UCDN_GENERAL_CATEGORY_SM"] = 25;
  63987. Module["UCDN_GENERAL_CATEGORY_SO"] = 26;
  63988. Module["UCDN_GENERAL_CATEGORY_ZL"] = 27;
  63989. Module["UCDN_GENERAL_CATEGORY_ZP"] = 28;
  63990. Module["UCDN_GENERAL_CATEGORY_ZS"] = 29;
  63991. Module["UCDN_BIDI_CLASS_L"] = 0;
  63992. Module["UCDN_BIDI_CLASS_LRE"] = 1;
  63993. Module["UCDN_BIDI_CLASS_LRO"] = 2;
  63994. Module["UCDN_BIDI_CLASS_R"] = 3;
  63995. Module["UCDN_BIDI_CLASS_AL"] = 4;
  63996. Module["UCDN_BIDI_CLASS_RLE"] = 5;
  63997. Module["UCDN_BIDI_CLASS_RLO"] = 6;
  63998. Module["UCDN_BIDI_CLASS_PDF"] = 7;
  63999. Module["UCDN_BIDI_CLASS_EN"] = 8;
  64000. Module["UCDN_BIDI_CLASS_ES"] = 9;
  64001. Module["UCDN_BIDI_CLASS_ET"] = 10;
  64002. Module["UCDN_BIDI_CLASS_AN"] = 11;
  64003. Module["UCDN_BIDI_CLASS_CS"] = 12;
  64004. Module["UCDN_BIDI_CLASS_NSM"] = 13;
  64005. Module["UCDN_BIDI_CLASS_BN"] = 14;
  64006. Module["UCDN_BIDI_CLASS_B"] = 15;
  64007. Module["UCDN_BIDI_CLASS_S"] = 16;
  64008. Module["UCDN_BIDI_CLASS_WS"] = 17;
  64009. Module["UCDN_BIDI_CLASS_ON"] = 18;
  64010. ;
  64011.     return Module; }).apply(this);
  64012.     if(this.raw['HEAP8']) this.heapName = "HEAP8"; else this.heapName = "HEAP";
  64013. };
  64014. $hxClasses["prezi.graphics.text.backend.HarfBuzzJs"] = prezi.graphics.text.backend.HarfBuzzJs;
  64015. $hxExpose(prezi.graphics.text.backend.HarfBuzzJs, "prezi.graphics.text.backend.HarfBuzzJs");
  64016. prezi.graphics.text.backend.HarfBuzzJs.__name__ = ["prezi","graphics","text","backend","HarfBuzzJs"];
  64017. prezi.graphics.text.backend.HarfBuzzJs.__interfaces__ = [prezi.graphics.text.backend.IHarfBuzz];
  64018. prezi.graphics.text.backend.HarfBuzzJs.prototype = {
  64019.     version: function() {
  64020.         return this.raw["version"] + " (built with emcc " + this.raw["emccVersion"] + ")";
  64021.     }
  64022.     ,createFont: function(fontId,fileData,overrideLineMetrics) {
  64023.         return new prezi.graphics.text.backend.HarfBuzzFontJs(this,fontId,fileData,overrideLineMetrics);
  64024.     }
  64025.     ,__class__: prezi.graphics.text.backend.HarfBuzzJs
  64026. }
  64027. prezi.remoting = {}
  64028. prezi.remoting.ExternalInvoker = function() { }
  64029. $hxClasses["prezi.remoting.ExternalInvoker"] = prezi.remoting.ExternalInvoker;
  64030. prezi.remoting.ExternalInvoker.__name__ = ["prezi","remoting","ExternalInvoker"];
  64031. prezi.remoting.ExternalInvoker.prototype = {
  64032.     __class__: prezi.remoting.ExternalInvoker
  64033. }
  64034. prezi.remoting.NotImplementedExternalInvoker = function() {
  64035. };
  64036. $hxClasses["prezi.remoting.NotImplementedExternalInvoker"] = prezi.remoting.NotImplementedExternalInvoker;
  64037. prezi.remoting.NotImplementedExternalInvoker.__name__ = ["prezi","remoting","NotImplementedExternalInvoker"];
  64038. prezi.remoting.NotImplementedExternalInvoker.__interfaces__ = [prezi.remoting.ExternalInvoker];
  64039. prezi.remoting.NotImplementedExternalInvoker.prototype = {
  64040.     invoke: function(dataName,path,params) {
  64041.         throw new prezi.core.errors.NotImplementedError(null,{ fileName : "NotImplementedExternalInvoker.hx", lineNumber : 9, className : "prezi.remoting.NotImplementedExternalInvoker", methodName : "invoke"});
  64042.         return null;
  64043.     }
  64044.     ,__class__: prezi.remoting.NotImplementedExternalInvoker
  64045. }
  64046. prezi.remoting.ExternalSerializer = function() { }
  64047. $hxClasses["prezi.remoting.ExternalSerializer"] = prezi.remoting.ExternalSerializer;
  64048. prezi.remoting.ExternalSerializer.__name__ = ["prezi","remoting","ExternalSerializer"];
  64049. prezi.remoting.ExternalSerializer.prototype = {
  64050.     __class__: prezi.remoting.ExternalSerializer
  64051. }
  64052. prezi.remoting.HaxeSerializer = function() {
  64053. };
  64054. $hxClasses["prezi.remoting.HaxeSerializer"] = prezi.remoting.HaxeSerializer;
  64055. prezi.remoting.HaxeSerializer.__name__ = ["prezi","remoting","HaxeSerializer"];
  64056. prezi.remoting.HaxeSerializer.__interfaces__ = [prezi.remoting.ExternalSerializer];
  64057. prezi.remoting.HaxeSerializer.prototype = {
  64058.     unserialize: function(data) {
  64059.         return data != null?new haxe.Unserializer(data).unserialize():null;
  64060.     }
  64061.     ,serializeException: function(ex) {
  64062.         var s = new haxe.Serializer();
  64063.         s.serializeException(ex);
  64064.         return s.toString();
  64065.     }
  64066.     ,serialize: function(data) {
  64067.         var s = new haxe.Serializer();
  64068.         s.serialize(data);
  64069.         return s.toString() + "#";
  64070.     }
  64071.     ,__class__: prezi.remoting.HaxeSerializer
  64072. }
  64073. prezi.jsmodules = {}
  64074. prezi.jsmodules.Globals = function() { }
  64075. $hxClasses["prezi.jsmodules.Globals"] = prezi.jsmodules.Globals;
  64076. prezi.jsmodules.Globals.__name__ = ["prezi","jsmodules","Globals"];
  64077. prezi.jsmodules.Globals.expose = function(objectToExpose,path) {
  64078.     var o = window;
  64079.     var parts = path.split(".");
  64080.     var _g1 = 0, _g = parts.length - 1;
  64081.     while(_g1 < _g) {
  64082.         var i = _g1++;
  64083.         var p = parts[i];
  64084.         if (typeof o[p] == 'undefined') o[p] = {};;
  64085.         o = o[p];
  64086.     }
  64087.     if (typeof o[parts[parts.length-1]] == 'undefined') o[parts[parts.length-1]] = objectToExpose;;
  64088. }
  64089. prezi.jsmodules.Globals.getExposedObject = function(path) {
  64090.     var o = window;
  64091.     var parts = path.split(".");
  64092.     var _g1 = 0, _g = parts.length;
  64093.     while(_g1 < _g) {
  64094.         var i = _g1++;
  64095.         var p = parts[i];
  64096.         var pType = typeof o[p];;
  64097.         if(pType == "undefined") throw new prezi.core.errors.ArgumentError("object " + p + " not exposed",{ fileName : "Globals.hx", lineNumber : 28, className : "prezi.jsmodules.Globals", methodName : "getExposedObject"});
  64098.         o = o[p];
  64099.     }
  64100.     return o;
  64101. }
  64102. prezi.remoting.RemoteConnection = function(data,path) {
  64103.     this._data = data;
  64104.     this._path = path;
  64105.     this.setInvoker(prezi.remoting.RemoteConnection._defaultInvoker);
  64106.     this.setSerializer(prezi.remoting.RemoteConnection.getDefaultSerializer());
  64107. };
  64108. $hxClasses["prezi.remoting.RemoteConnection"] = prezi.remoting.RemoteConnection;
  64109. prezi.remoting.RemoteConnection.__name__ = ["prezi","remoting","RemoteConnection"];
  64110. prezi.remoting.RemoteConnection.__interfaces__ = [haxe.remoting.Connection];
  64111. prezi.remoting.RemoteConnection.setDefaultSerializer = function(serializer) {
  64112.     prezi.remoting.RemoteConnection._defaultSerializer = serializer;
  64113. }
  64114. prezi.remoting.RemoteConnection.getDefaultSerializer = function() {
  64115.     return prezi.remoting.RemoteConnection._defaultSerializer;
  64116. }
  64117. prezi.remoting.RemoteConnection.setDefaultInvoker = function(invoker) {
  64118.     prezi.remoting.RemoteConnection._defaultInvoker = invoker;
  64119. }
  64120. prezi.remoting.RemoteConnection.getDefaultInvoker = function() {
  64121.     return prezi.remoting.RemoteConnection._defaultInvoker;
  64122. }
  64123. prezi.remoting.RemoteConnection.connect = function(name,ctx,invoker) {
  64124.     var cnx = new prezi.remoting.RemoteConnection({ name : name, ctx : ctx},[]);
  64125.     if(invoker != null) cnx.setInvoker(invoker);
  64126.     prezi.remoting.RemoteConnection.connections.set(name,cnx);
  64127.     return cnx;
  64128. }
  64129. prezi.remoting.RemoteConnection.receiveCall = function(name,path,params) {
  64130.     var cnx = prezi.remoting.RemoteConnection.connections.get(name);
  64131.     try {
  64132.         if(cnx == null) throw "Unknown connection : " + name;
  64133.         if(cnx._data.ctx == null) throw "No context shared for the connection " + name;
  64134.         var params1 = cnx._serializer.unserialize(params);
  64135.         var ret = cnx._data.ctx.call(path.split("."),params1);
  64136.         return cnx._serializer.serialize(ret);
  64137.     } catch( e ) {
  64138.         if(cnx != null) return cnx._serializer.serializeException(e); else return prezi.remoting.RemoteConnection._defaultSerializer.serializeException(e);
  64139.     }
  64140. }
  64141. prezi.remoting.RemoteConnection.escapeString = function(s) {
  64142.     return s;
  64143. }
  64144. prezi.remoting.RemoteConnection.prototype = {
  64145.     call: function(params) {
  64146.         var s = this._serializer.serialize(params);
  64147.         var params1 = s;
  64148.         var path = this._path.join(".");
  64149.         var data = this._externalInvoker.invoke(this._data.name,path,params1);
  64150.         return this._serializer.unserialize(data);
  64151.     }
  64152.     ,close: function() {
  64153.         prezi.remoting.RemoteConnection.connections.remove(this._data.name);
  64154.     }
  64155.     ,clone: function() {
  64156.         var other = new prezi.remoting.RemoteConnection(this._data,this._path.slice());
  64157.         other.setInvoker(this._externalInvoker);
  64158.         other.setSerializer(this._serializer);
  64159.         return other;
  64160.     }
  64161.     ,resolve: function(field) {
  64162.         var e = this.clone();
  64163.         e._path.push(field);
  64164.         return e;
  64165.     }
  64166.     ,setSerializer: function(serializer) {
  64167.         this._serializer = serializer;
  64168.     }
  64169.     ,setInvoker: function(invoker) {
  64170.         this._externalInvoker = invoker;
  64171.     }
  64172.     ,__class__: prezi.remoting.RemoteConnection
  64173. }
  64174. prezi.graphics.text.backend.JsServer = function() {
  64175.     this.harfbuzz = new prezi.graphics.text.backend.HarfBuzzJs();
  64176.     var remotingContext = new haxe.remoting.Context();
  64177.     remotingContext.addObject("server",this);
  64178.     this.flashInit = prezi.remoting.RemoteConnection.connect("font-init",remotingContext);
  64179.     null;
  64180. };
  64181. $hxClasses["prezi.graphics.text.backend.JsServer"] = prezi.graphics.text.backend.JsServer;
  64182. prezi.graphics.text.backend.JsServer.__name__ = ["prezi","graphics","text","backend","JsServer"];
  64183. prezi.graphics.text.backend.JsServer._fontInstalled = function(fontFaceId,url,attempt) {
  64184.     if(attempt == null) attempt = 0;
  64185.     prezi.graphics.text.backend.JsServer.instance.flash.resolve("client").resolve("fontInstalled").call([fontFaceId,url]);
  64186. }
  64187. prezi.graphics.text.backend.JsServer._fontInstallationFailed = function(fontFaceId,url,e) {
  64188.     prezi.graphics.text.backend.JsServer.instance.flash.resolve("client").resolve("fontInstallationFailed").call([fontFaceId,url,Std.string(e)]);
  64189. }
  64190. prezi.graphics.text.backend.JsServer.prototype = {
  64191.     initializeFontManagerBackend: function(invoker,defaultFontData) {
  64192.         try {
  64193.             if(this.flash != null) this.flash.close();
  64194.             var remotingContext = new haxe.remoting.Context();
  64195.             remotingContext.addObject("server",this);
  64196.             this.flash = prezi.remoting.RemoteConnection.connect("font",remotingContext,invoker);
  64197.             var fontManagerBackend = new prezi.graphics.text.backend.FontManagerBackend(this.harfbuzz,defaultFontData,prezi.graphics.text.backend.JsServer._fontInstalled,prezi.graphics.text.backend.JsServer._fontInstallationFailed);
  64198.             remotingContext.addObject("fontManagerBackend",fontManagerBackend);
  64199.         } catch( e ) {
  64200.             throw e;
  64201.         }
  64202.     }
  64203.     ,harfBuzzVersion: function() {
  64204.         return this.harfbuzz.version();
  64205.     }
  64206.     ,__class__: prezi.graphics.text.backend.JsServer
  64207. }
  64208. prezi.graphics.text.otf.CffDict = function(reader) {
  64209.     var _g2 = this;
  64210.     this.reader = reader;
  64211.     this.operatorEncoding = [];
  64212.     var _g1 = 0, _g = 22;
  64213.     while(_g1 < _g) {
  64214.         var i = _g1++;
  64215.         this.operatorEncoding[i] = function(b0) {
  64216.             _g2.doOperator(b0);
  64217.         };
  64218.     }
  64219.     var _g1 = 32, _g = 247;
  64220.     while(_g1 < _g) {
  64221.         var i = _g1++;
  64222.         this.operatorEncoding[i] = function(b0) {
  64223.             _g2.pushByte(b0);
  64224.         };
  64225.     }
  64226.     var _g1 = 247, _g = 251;
  64227.     while(_g1 < _g) {
  64228.         var i = _g1++;
  64229.         this.operatorEncoding[i] = function(b0) {
  64230.             _g2.pushSmallInt1(b0);
  64231.         };
  64232.     }
  64233.     var _g1 = 251, _g = 255;
  64234.     while(_g1 < _g) {
  64235.         var i = _g1++;
  64236.         this.operatorEncoding[i] = function(b0) {
  64237.             _g2.pushSmallInt2(b0);
  64238.         };
  64239.     }
  64240.     this.operatorEncoding[28] = function(b0) {
  64241.         _g2.pushShortInt(b0);
  64242.     };
  64243.     this.operatorEncoding[29] = function(b0) {
  64244.         _g2.pushLongInt(b0);
  64245.     };
  64246.     this.operatorEncoding[30] = function(b0) {
  64247.         _g2.pushReal(b0);
  64248.     };
  64249.     this.reset();
  64250. };
  64251. $hxClasses["prezi.graphics.text.otf.CffDict"] = prezi.graphics.text.otf.CffDict;
  64252. prezi.graphics.text.otf.CffDict.__name__ = ["prezi","graphics","text","otf","CffDict"];
  64253. prezi.graphics.text.otf.CffDict.prototype = {
  64254.     popall: function() {
  64255.         var stack = this.operandStack;
  64256.         this.operandStack = [];
  64257.         return stack;
  64258.     }
  64259.     ,pop: function() {
  64260.         return this.operandStack.pop();
  64261.     }
  64262.     ,push: function(value) {
  64263.         this.operandStack.push(value);
  64264.     }
  64265.     ,pushReal: function(b0) {
  64266.         var number = "";
  64267.         while(true) {
  64268.             var b = this.reader.readByte();
  64269.             var nibble0 = (b & 240) >> 4;
  64270.             var nibble1 = b & 15;
  64271.             if(nibble0 == 15) break;
  64272.             number += prezi.graphics.text.otf.CffDict.REAL_NIBBLES[nibble0];
  64273.             if(nibble1 == 15) break;
  64274.             number += prezi.graphics.text.otf.CffDict.REAL_NIBBLES[nibble1];
  64275.         }
  64276.         this.operandStack.push(Std.parseFloat(number));
  64277.     }
  64278.     ,pushFixed1616: function(b0) {
  64279.         this.operandStack.push(this.reader.readFixed());
  64280.     }
  64281.     ,pushLongInt: function(b0) {
  64282.         this.operandStack.push(this.reader.readLong());
  64283.     }
  64284.     ,pushShortInt: function(b0) {
  64285.         this.operandStack.push(this.reader.readShort());
  64286.     }
  64287.     ,pushSmallInt2: function(b0) {
  64288.         var b1 = this.reader.readByte();
  64289.         this.operandStack.push(-(b0 - 251) * 256 - b1 - 108);
  64290.     }
  64291.     ,pushSmallInt1: function(b0) {
  64292.         var b1 = this.reader.readByte();
  64293.         this.operandStack.push((b0 - 247) * 256 + b1 + 108);
  64294.     }
  64295.     ,pushByte: function(b0) {
  64296.         this.operandStack.push(b0 - 139);
  64297.     }
  64298.     ,getExtendedOperators: function() {
  64299.         return [];
  64300.     }
  64301.     ,getOperators: function() {
  64302.         return [];
  64303.     }
  64304.     ,doOperator: function(b0) {
  64305.         var operator;
  64306.         if(b0 == 12) {
  64307.             var opCode = this.reader.readByte();
  64308.             operator = this.getExtendedOperators()[opCode];
  64309.             if(operator == null) throw "Unknown extended opcode: " + b0 + "," + opCode + " at " + this.reader.position();
  64310.         } else {
  64311.             var opCode = b0;
  64312.             operator = this.getOperators()[opCode];
  64313.             if(operator == null) throw "Unknown opcode: " + opCode + " at " + this.reader.position();
  64314.         }
  64315.         operator();
  64316.     }
  64317.     ,processNextToken: function() {
  64318.         var opCode = this.reader.readByte();
  64319.         var operator = this.operatorEncoding[opCode];
  64320.         if(operator == null) throw "Unknown token " + opCode + " at " + this.reader.position();
  64321.         operator(opCode);
  64322.     }
  64323.     ,process: function(offset,length) {
  64324.         this.dictStartOffset = offset;
  64325.         var originalPosition = this.reader.position();
  64326.         this.reader.seek(offset);
  64327.         var end = offset + length;
  64328.         while(this.reader.position() < end) this.processNextToken();
  64329.         this.reader.seek(originalPosition);
  64330.         return null;
  64331.     }
  64332.     ,reset: function() {
  64333.         this.operandStack = [];
  64334.         this.dictStartOffset = 0;
  64335.     }
  64336.     ,__class__: prezi.graphics.text.otf.CffDict
  64337. }
  64338. prezi.graphics.text.otf.CffCharStringProcessor = function(reader,defaultWidthX,nominalWidthX,globalSubrs,localSubrs) {
  64339.     var _g2 = this;
  64340.     prezi.graphics.text.otf.CffDict.call(this,reader);
  64341.     this.defaultWidthX = defaultWidthX;
  64342.     this.nominalWidthX = nominalWidthX;
  64343.     this.globalSubrs = globalSubrs;
  64344.     this.localSubrs = localSubrs;
  64345.     this.globalSubrsBias = this.calcSubrBias(globalSubrs);
  64346.     this.localSubrsBias = this.calcSubrBias(localSubrs);
  64347.     this.operatorEncoding = [];
  64348.     var _g1 = 0, _g = 32;
  64349.     while(_g1 < _g) {
  64350.         var i = _g1++;
  64351.         this.operatorEncoding[i] = function(b0) {
  64352.             _g2.doOperator(b0);
  64353.         };
  64354.     }
  64355.     var _g1 = 32, _g = 247;
  64356.     while(_g1 < _g) {
  64357.         var i = _g1++;
  64358.         this.operatorEncoding[i] = function(b0) {
  64359.             _g2.pushByte(b0);
  64360.         };
  64361.     }
  64362.     var _g1 = 247, _g = 251;
  64363.     while(_g1 < _g) {
  64364.         var i = _g1++;
  64365.         this.operatorEncoding[i] = function(b0) {
  64366.             _g2.pushSmallInt1(b0);
  64367.         };
  64368.     }
  64369.     var _g1 = 251, _g = 255;
  64370.     while(_g1 < _g) {
  64371.         var i = _g1++;
  64372.         this.operatorEncoding[i] = function(b0) {
  64373.             _g2.pushSmallInt2(b0);
  64374.         };
  64375.     }
  64376.     this.operatorEncoding[28] = function(b0) {
  64377.         _g2.pushShortInt(b0);
  64378.     };
  64379.     this.operatorEncoding[255] = function(b0) {
  64380.         _g2.pushFixed1616(b0);
  64381.     };
  64382.     this.operators = [];
  64383.     this.operators[1] = function() {
  64384.         _g2.op_hstem();
  64385.     };
  64386.     this.operators[3] = function() {
  64387.         _g2.op_vstem();
  64388.     };
  64389.     this.operators[4] = function() {
  64390.         _g2.op_vmoveto();
  64391.     };
  64392.     this.operators[5] = function() {
  64393.         _g2.op_rlineto();
  64394.     };
  64395.     this.operators[6] = function() {
  64396.         _g2.op_hlineto();
  64397.     };
  64398.     this.operators[7] = function() {
  64399.         _g2.op_vlineto();
  64400.     };
  64401.     this.operators[8] = function() {
  64402.         _g2.op_rrcurveto();
  64403.     };
  64404.     this.operators[10] = function() {
  64405.         _g2.op_callsubr();
  64406.     };
  64407.     this.operators[11] = function() {
  64408.         _g2.op_return();
  64409.     };
  64410.     this.operators[14] = function() {
  64411.         _g2.op_endchar();
  64412.     };
  64413.     this.operators[16] = function() {
  64414.         _g2.op_blend();
  64415.     };
  64416.     this.operators[18] = function() {
  64417.         _g2.op_hstemhm();
  64418.     };
  64419.     this.operators[19] = function() {
  64420.         _g2.op_hintmask();
  64421.     };
  64422.     this.operators[20] = function() {
  64423.         _g2.op_cntrmask();
  64424.     };
  64425.     this.operators[21] = function() {
  64426.         _g2.op_rmoveto();
  64427.     };
  64428.     this.operators[22] = function() {
  64429.         _g2.op_hmoveto();
  64430.     };
  64431.     this.operators[23] = function() {
  64432.         _g2.op_vstemhm();
  64433.     };
  64434.     this.operators[24] = function() {
  64435.         _g2.op_rcurveline();
  64436.     };
  64437.     this.operators[25] = function() {
  64438.         _g2.op_rlinecurve();
  64439.     };
  64440.     this.operators[26] = function() {
  64441.         _g2.op_vvcurveto();
  64442.     };
  64443.     this.operators[27] = function() {
  64444.         _g2.op_hhcurveto();
  64445.     };
  64446.     this.operators[29] = function() {
  64447.         _g2.op_callgsubr();
  64448.     };
  64449.     this.operators[30] = function() {
  64450.         _g2.op_vhcurveto();
  64451.     };
  64452.     this.operators[31] = function() {
  64453.         _g2.op_hvcurveto();
  64454.     };
  64455.     this.extendedOperators = [];
  64456.     this.extendedOperators[0] = function() {
  64457.         _g2.op_dotsection();
  64458.     };
  64459.     this.extendedOperators[3] = function() {
  64460.         _g2.op_and();
  64461.     };
  64462.     this.extendedOperators[4] = function() {
  64463.         _g2.op_or();
  64464.     };
  64465.     this.extendedOperators[5] = function() {
  64466.         _g2.op_not();
  64467.     };
  64468.     this.extendedOperators[8] = function() {
  64469.         _g2.op_store();
  64470.     };
  64471.     this.extendedOperators[9] = function() {
  64472.         _g2.op_abs();
  64473.     };
  64474.     this.extendedOperators[10] = function() {
  64475.         _g2.op_add();
  64476.     };
  64477.     this.extendedOperators[11] = function() {
  64478.         _g2.op_sub();
  64479.     };
  64480.     this.extendedOperators[12] = function() {
  64481.         _g2.op_div();
  64482.     };
  64483.     this.extendedOperators[13] = function() {
  64484.         _g2.op_load();
  64485.     };
  64486.     this.extendedOperators[14] = function() {
  64487.         _g2.op_neg();
  64488.     };
  64489.     this.extendedOperators[15] = function() {
  64490.         _g2.op_eq();
  64491.     };
  64492.     this.extendedOperators[18] = function() {
  64493.         _g2.op_drop();
  64494.     };
  64495.     this.extendedOperators[20] = function() {
  64496.         _g2.op_put();
  64497.     };
  64498.     this.extendedOperators[21] = function() {
  64499.         _g2.op_get();
  64500.     };
  64501.     this.extendedOperators[22] = function() {
  64502.         _g2.op_ifelse();
  64503.     };
  64504.     this.extendedOperators[23] = function() {
  64505.         _g2.op_random();
  64506.     };
  64507.     this.extendedOperators[24] = function() {
  64508.         _g2.op_mul();
  64509.     };
  64510.     this.extendedOperators[26] = function() {
  64511.         _g2.op_sqrt();
  64512.     };
  64513.     this.extendedOperators[27] = function() {
  64514.         _g2.op_dup();
  64515.     };
  64516.     this.extendedOperators[28] = function() {
  64517.         _g2.op_exch();
  64518.     };
  64519.     this.extendedOperators[29] = function() {
  64520.         _g2.op_index();
  64521.     };
  64522.     this.extendedOperators[30] = function() {
  64523.         _g2.op_roll();
  64524.     };
  64525.     this.extendedOperators[34] = function() {
  64526.         _g2.op_hflex();
  64527.     };
  64528.     this.extendedOperators[35] = function() {
  64529.         _g2.op_flex();
  64530.     };
  64531.     this.extendedOperators[36] = function() {
  64532.         _g2.op_hflex1();
  64533.     };
  64534.     this.extendedOperators[37] = function() {
  64535.         _g2.op_flex1();
  64536.     };
  64537. };
  64538. $hxClasses["prezi.graphics.text.otf.CffCharStringProcessor"] = prezi.graphics.text.otf.CffCharStringProcessor;
  64539. prezi.graphics.text.otf.CffCharStringProcessor.__name__ = ["prezi","graphics","text","otf","CffCharStringProcessor"];
  64540. prezi.graphics.text.otf.CffCharStringProcessor.intPoint = function(x,y) {
  64541.     return { x : x | 0, y : y | 0};
  64542. }
  64543. prezi.graphics.text.otf.CffCharStringProcessor.__super__ = prezi.graphics.text.otf.CffDict;
  64544. prezi.graphics.text.otf.CffCharStringProcessor.prototype = $extend(prezi.graphics.text.otf.CffDict.prototype,{
  64545.     hcurveto: function(args) {
  64546.         var args2 = args.splice(0,4);
  64547.         var dxa = args2[0];
  64548.         var dxb = args2[1];
  64549.         var dyb = args2[2];
  64550.         var dyc = args2[3];
  64551.         var dxc;
  64552.         if(args.length == 1) {
  64553.             dxc = args[0];
  64554.             args = [];
  64555.         } else dxc = 0;
  64556.         this.pen.rCubicCurveTo({ x : dxa | 0, y : 0 | 0},{ x : dxb | 0, y : dyb | 0},{ x : dxc | 0, y : dyc | 0});
  64557.         return args;
  64558.     }
  64559.     ,vcurveto: function(args) {
  64560.         var args2 = args.splice(0,4);
  64561.         var dya = args2[0];
  64562.         var dxb = args2[1];
  64563.         var dyb = args2[2];
  64564.         var dxc = args2[3];
  64565.         var dyc;
  64566.         if(args.length == 1) {
  64567.             dyc = args[0];
  64568.             args = [];
  64569.         } else dyc = 0;
  64570.         this.pen.rCubicCurveTo({ x : 0 | 0, y : dya | 0},{ x : dxb | 0, y : dyb | 0},{ x : dxc | 0, y : dyc | 0});
  64571.         return args;
  64572.     }
  64573.     ,alternatingLineTo: function(isHorizontal) {
  64574.         var _g = 0, _g1 = this.popall();
  64575.         while(_g < _g1.length) {
  64576.             var arg = _g1[_g];
  64577.             ++_g;
  64578.             var delta;
  64579.             if(isHorizontal) delta = { x : arg | 0, y : 0 | 0}; else delta = { x : 0 | 0, y : arg | 0};
  64580.             this.pen.rLineTo(delta);
  64581.             isHorizontal = !isHorizontal;
  64582.         }
  64583.     }
  64584.     ,op_roll: function() {
  64585.         throw "NotImplemented";
  64586.     }
  64587.     ,op_index: function() {
  64588.         throw "NotImplemented";
  64589.     }
  64590.     ,op_exch: function() {
  64591.         throw "NotImplemented";
  64592.     }
  64593.     ,op_dup: function() {
  64594.         throw "NotImplemented";
  64595.     }
  64596.     ,op_sqrt: function() {
  64597.         throw "NotImplemented";
  64598.     }
  64599.     ,op_mul: function() {
  64600.         throw "NotImplemented";
  64601.     }
  64602.     ,op_random: function() {
  64603.         throw "NotImplemented";
  64604.     }
  64605.     ,op_ifelse: function() {
  64606.         throw "NotImplemented";
  64607.     }
  64608.     ,op_get: function() {
  64609.         throw "NotImplemented";
  64610.     }
  64611.     ,op_put: function() {
  64612.         throw "NotImplemented";
  64613.     }
  64614.     ,op_drop: function() {
  64615.         throw "NotImplemented";
  64616.     }
  64617.     ,op_eq: function() {
  64618.         throw "NotImplemented";
  64619.     }
  64620.     ,op_neg: function() {
  64621.         throw "NotImplemented";
  64622.     }
  64623.     ,op_load: function() {
  64624.         throw "NotImplemented";
  64625.     }
  64626.     ,op_div: function() {
  64627.         throw "NotImplemented";
  64628.     }
  64629.     ,op_sub: function() {
  64630.         throw "NotImplemented";
  64631.     }
  64632.     ,op_add: function() {
  64633.         throw "NotImplemented";
  64634.     }
  64635.     ,op_abs: function() {
  64636.         throw "NotImplemented";
  64637.     }
  64638.     ,op_store: function() {
  64639.         throw "NotImplemented";
  64640.     }
  64641.     ,op_not: function() {
  64642.         throw "NotImplemented";
  64643.     }
  64644.     ,op_or: function() {
  64645.         throw "NotImplemented";
  64646.     }
  64647.     ,op_and: function() {
  64648.         throw "NotImplemented";
  64649.     }
  64650.     ,op_blend: function() {
  64651.         this.popall();
  64652.     }
  64653.     ,op_flex1: function() {
  64654.         var args = this.popall();
  64655.         var dx1 = args[0];
  64656.         var dy1 = args[1];
  64657.         var dx2 = args[2];
  64658.         var dy2 = args[3];
  64659.         var dx3 = args[4];
  64660.         var dy3 = args[5];
  64661.         var dx4 = args[6];
  64662.         var dy4 = args[7];
  64663.         var dx5 = args[8];
  64664.         var dy5 = args[9];
  64665.         var d6 = args[10];
  64666.         var dx = dx1 + dx2 + dx3 + dx4 + dx5;
  64667.         var dy = dy1 + dy2 + dy3 + dy4 + dy5;
  64668.         var dx6;
  64669.         var dy6;
  64670.         if(Math.abs(dx) > Math.abs(dy)) {
  64671.             dx6 = d6;
  64672.             dy6 = -dy;
  64673.         } else {
  64674.             dx6 = -dx;
  64675.             dy6 = d6;
  64676.         }
  64677.         this.pen.rCubicCurveTo({ x : dx1 | 0, y : dy1 | 0},{ x : dx2 | 0, y : dy2 | 0},{ x : dx3 | 0, y : dy3 | 0});
  64678.         this.pen.rCubicCurveTo({ x : dx4 | 0, y : dy4 | 0},{ x : dx5 | 0, y : dy5 | 0},{ x : dx6 | 0, y : dy6 | 0});
  64679.     }
  64680.     ,op_hflex1: function() {
  64681.         var args = this.popall();
  64682.         var dx1 = args[0];
  64683.         var dy1 = args[1];
  64684.         var dx2 = args[2];
  64685.         var dy2 = args[3];
  64686.         var dx3 = args[4];
  64687.         var dy3 = 0;
  64688.         var dx4 = args[5];
  64689.         var dy4 = 0;
  64690.         var dx5 = args[6];
  64691.         var dy5 = args[7];
  64692.         var dx6 = args[8];
  64693.         var dy6 = -(dy1 + dy2 + dy3 + dy4 + dy5);
  64694.         this.pen.rCubicCurveTo({ x : dx1 | 0, y : dy1 | 0},{ x : dx2 | 0, y : dy2 | 0},{ x : dx3 | 0, y : dy3 | 0});
  64695.         this.pen.rCubicCurveTo({ x : dx4 | 0, y : dy4 | 0},{ x : dx5 | 0, y : dy5 | 0},{ x : dx6 | 0, y : dy6 | 0});
  64696.     }
  64697.     ,op_flex: function() {
  64698.         var args = this.popall();
  64699.         var dx1 = args[0];
  64700.         var dy1 = args[1];
  64701.         var dx2 = args[2];
  64702.         var dy2 = args[3];
  64703.         var dx3 = args[4];
  64704.         var dy3 = args[5];
  64705.         var dx4 = args[6];
  64706.         var dy4 = args[7];
  64707.         var dx5 = args[8];
  64708.         var dy5 = args[9];
  64709.         var dx6 = args[10];
  64710.         var dy6 = args[11];
  64711.         var fd = args[12];
  64712.         this.pen.rCubicCurveTo({ x : dx1 | 0, y : dy1 | 0},{ x : dx2 | 0, y : dy2 | 0},{ x : dx3 | 0, y : dy3 | 0});
  64713.         this.pen.rCubicCurveTo({ x : dx4 | 0, y : dy4 | 0},{ x : dx5 | 0, y : dy5 | 0},{ x : dx6 | 0, y : dy6 | 0});
  64714.     }
  64715.     ,op_hflex: function() {
  64716.         var args = this.popall();
  64717.         var dx1 = args[0];
  64718.         var dy1 = 0;
  64719.         var dx2 = args[1];
  64720.         var dy2 = args[2];
  64721.         var dx3 = args[3];
  64722.         var dy3 = 0;
  64723.         var dx4 = args[4];
  64724.         var dy4 = 0;
  64725.         var dx5 = args[5];
  64726.         var dy5 = -dy2;
  64727.         var dx6 = args[6];
  64728.         var dy6 = 0;
  64729.         this.pen.rCubicCurveTo({ x : dx1 | 0, y : dy1 | 0},{ x : dx2 | 0, y : dy2 | 0},{ x : dx3 | 0, y : dy3 | 0});
  64730.         this.pen.rCubicCurveTo({ x : dx4 | 0, y : dy4 | 0},{ x : dx5 | 0, y : dy5 | 0},{ x : dx6 | 0, y : dy6 | 0});
  64731.     }
  64732.     ,op_hvcurveto: function() {
  64733.         var args = this.popall();
  64734.         while(args.length > 0) {
  64735.             args = this.hcurveto(args);
  64736.             if(args.length > 0) args = this.vcurveto(args);
  64737.         }
  64738.     }
  64739.     ,op_vhcurveto: function() {
  64740.         var args = this.popall();
  64741.         while(args.length > 0) {
  64742.             args = this.vcurveto(args);
  64743.             if(args.length > 0) args = this.hcurveto(args);
  64744.         }
  64745.     }
  64746.     ,op_hhcurveto: function() {
  64747.         var args = this.popall();
  64748.         var dy1;
  64749.         if(args.length % 2 != 0) dy1 = args.shift(); else dy1 = 0;
  64750.         var i = 0;
  64751.         while(i < args.length) {
  64752.             var dxa = args[i];
  64753.             var dxb = args[i + 1];
  64754.             var dyb = args[i + 2];
  64755.             var dxc = args[i + 3];
  64756.             this.pen.rCubicCurveTo({ x : dxa | 0, y : dy1 | 0},{ x : dxb | 0, y : dyb | 0},{ x : dxc | 0, y : 0 | 0});
  64757.             dy1 = 0;
  64758.             i += 4;
  64759.         }
  64760.     }
  64761.     ,op_vvcurveto: function() {
  64762.         var args = this.popall();
  64763.         var dx1;
  64764.         if(args.length % 2 != 0) dx1 = args.shift(); else dx1 = 0;
  64765.         var i = 0;
  64766.         while(i < args.length) {
  64767.             var dya = args[i];
  64768.             var dxb = args[i + 1];
  64769.             var dyb = args[i + 2];
  64770.             var dyc = args[i + 3];
  64771.             this.pen.rCubicCurveTo({ x : dx1 | 0, y : dya | 0},{ x : dxb | 0, y : dyb | 0},{ x : 0 | 0, y : dyc | 0});
  64772.             dx1 = 0;
  64773.             i += 4;
  64774.         }
  64775.     }
  64776.     ,op_rlinecurve: function() {
  64777.         var args = this.popall();
  64778.         var i = 0;
  64779.         while(i < args.length - 6) {
  64780.             this.pen.rLineTo({ x : args[i] | 0, y : args[i + 1] | 0});
  64781.             i += 2;
  64782.         }
  64783.         var dxb = args[args.length - 6];
  64784.         var dyb = args[args.length - 5];
  64785.         var dxc = args[args.length - 4];
  64786.         var dyc = args[args.length - 3];
  64787.         var dxd = args[args.length - 2];
  64788.         var dyd = args[args.length - 1];
  64789.         this.pen.rCubicCurveTo({ x : dxb | 0, y : dyb | 0},{ x : dxc | 0, y : dyc | 0},{ x : dxd | 0, y : dyd | 0});
  64790.     }
  64791.     ,op_rcurveline: function() {
  64792.         var args = this.popall();
  64793.         var i = 0;
  64794.         while(i < args.length - 2) {
  64795.             var dxb = args[i];
  64796.             var dyb = args[i + 1];
  64797.             var dxc = args[i + 2];
  64798.             var dyc = args[i + 3];
  64799.             var dxd = args[i + 4];
  64800.             var dyd = args[i + 5];
  64801.             this.pen.rCubicCurveTo({ x : dxb | 0, y : dyb | 0},{ x : dxc | 0, y : dyc | 0},{ x : dxd | 0, y : dyd | 0});
  64802.             i += 6;
  64803.         }
  64804.         this.pen.rLineTo({ x : args[args.length - 2] | 0, y : args[args.length - 1] | 0});
  64805.     }
  64806.     ,op_rrcurveto: function() {
  64807.         var args = this.popall();
  64808.         var i = 0;
  64809.         while(i < args.length) {
  64810.             var dxa = args[i];
  64811.             var dya = args[i + 1];
  64812.             var dxb = args[i + 2];
  64813.             var dyb = args[i + 3];
  64814.             var dxc = args[i + 4];
  64815.             var dyc = args[i + 5];
  64816.             this.pen.rCubicCurveTo({ x : dxa | 0, y : dya | 0},{ x : dxb | 0, y : dyb | 0},{ x : dxc | 0, y : dyc | 0});
  64817.             i += 6;
  64818.         }
  64819.     }
  64820.     ,op_vlineto: function() {
  64821.         this.alternatingLineTo(false);
  64822.     }
  64823.     ,op_hlineto: function() {
  64824.         this.alternatingLineTo(true);
  64825.     }
  64826.     ,op_rlineto: function() {
  64827.         var args = this.popall();
  64828.         var i = 0;
  64829.         while(i < args.length) {
  64830.             this.pen.rLineTo({ x : args[i] | 0, y : args[i + 1] | 0});
  64831.             i += 2;
  64832.         }
  64833.     }
  64834.     ,op_vmoveto: function() {
  64835.         this.pen.closePath();
  64836.         var args = this.popallWidth(1);
  64837.         this.pen.rMoveTo({ x : 0 | 0, y : args[0] | 0});
  64838.     }
  64839.     ,op_hmoveto: function() {
  64840.         this.pen.closePath();
  64841.         var args = this.popallWidth(1);
  64842.         this.pen.rMoveTo({ x : args[0] | 0, y : 0 | 0});
  64843.     }
  64844.     ,op_rmoveto: function() {
  64845.         this.pen.closePath();
  64846.         var args = this.popallWidth();
  64847.         this.pen.rMoveTo({ x : args[0] | 0, y : args[1] | 0});
  64848.     }
  64849.     ,countHints: function() {
  64850.         var args = this.popallWidth();
  64851.         this.hintCount += args.length >> 1;
  64852.     }
  64853.     ,op_cntrmask: function() {
  64854.         this.op_hintmask();
  64855.     }
  64856.     ,op_hintmask: function() {
  64857.         if(this.hintMaskBytes == 0) {
  64858.             this.countHints();
  64859.             this.hintMaskBytes = this.hintCount + 7 >> 3;
  64860.         }
  64861.         this.reader.skip(this.hintMaskBytes);
  64862.     }
  64863.     ,op_vstemhm: function() {
  64864.         this.countHints();
  64865.     }
  64866.     ,op_hstemhm: function() {
  64867.         this.countHints();
  64868.     }
  64869.     ,op_vstem: function() {
  64870.         this.countHints();
  64871.     }
  64872.     ,op_hstem: function() {
  64873.         this.countHints();
  64874.     }
  64875.     ,op_callgsubr: function() {
  64876.         var subrIdx = this.operandStack.pop() | 0;
  64877.         var subr = this.globalSubrs.lookup(subrIdx + this.globalSubrsBias);
  64878.         this.callCharString(subr.offset,subr.length);
  64879.     }
  64880.     ,op_callsubr: function() {
  64881.         var subrIdx = this.operandStack.pop() | 0;
  64882.         var subr = this.localSubrs.lookup(subrIdx + this.localSubrsBias);
  64883.         this.callCharString(subr.offset,subr.length);
  64884.     }
  64885.     ,op_dotsection: function() {
  64886.     }
  64887.     ,op_endchar: function() {
  64888.         this.pen.closePath();
  64889.         this.popallWidth();
  64890.         this.finished = true;
  64891.     }
  64892.     ,op_return: function() {
  64893.         this.finished = true;
  64894.     }
  64895.     ,popallWidth: function(evenOdd) {
  64896.         if(evenOdd == null) evenOdd = 0;
  64897.         var args = this.popall();
  64898.         if(!this.gotWidth) {
  64899.             if((evenOdd ^ args.length % 2) != 0) this.width = this.nominalWidthX + args.shift(); else this.width = this.defaultWidthX;
  64900.             this.gotWidth = true;
  64901.         }
  64902.         return args;
  64903.     }
  64904.     ,callCharString: function(charStringOffset,length) {
  64905.         this.callingStack.push(this.reader.position());
  64906.         this.reader.seek(charStringOffset);
  64907.         var end = charStringOffset + length;
  64908.         while(!this.finished && this.reader.position() < end) this.processNextToken();
  64909.         this.finished = false;
  64910.         this.reader.seek(this.callingStack.pop());
  64911.     }
  64912.     ,process: function(charStringOffset,length) {
  64913.         this.reset();
  64914.         this.callCharString(charStringOffset,length);
  64915.         return this.pen.commands;
  64916.     }
  64917.     ,reset: function() {
  64918.         prezi.graphics.text.otf.CffDict.prototype.reset.call(this);
  64919.         this.callingStack = [];
  64920.         this.hintCount = 0;
  64921.         this.hintMaskBytes = 0;
  64922.         this.commands = [1];
  64923.         this.finished = false;
  64924.         this.pen = new prezi.graphics.text.otf.Pen(this.commands);
  64925.         this.gotWidth = false;
  64926.         this.width = 0;
  64927.     }
  64928.     ,calcSubrBias: function(subrs) {
  64929.         var nSubrs = subrs.count;
  64930.         var bias;
  64931.         if(nSubrs < 1240) bias = 107; else if(nSubrs < 33900) bias = 1131; else bias = 32768;
  64932.         return bias;
  64933.     }
  64934.     ,getExtendedOperators: function() {
  64935.         return this.extendedOperators;
  64936.     }
  64937.     ,getOperators: function() {
  64938.         return this.operators;
  64939.     }
  64940.     ,__class__: prezi.graphics.text.otf.CffCharStringProcessor
  64941. });
  64942. prezi.graphics.text.otf.ICffIndex = function() { }
  64943. $hxClasses["prezi.graphics.text.otf.ICffIndex"] = prezi.graphics.text.otf.ICffIndex;
  64944. prezi.graphics.text.otf.ICffIndex.__name__ = ["prezi","graphics","text","otf","ICffIndex"];
  64945. prezi.graphics.text.otf.ICffIndex.prototype = {
  64946.     __class__: prezi.graphics.text.otf.ICffIndex
  64947. }
  64948. prezi.graphics.text.otf.CffIndex = function(indexName,reader,indexOffset) {
  64949.     this.indexName = indexName;
  64950.     this.reader = reader;
  64951.     if(indexOffset != null) reader.seek(indexOffset);
  64952.     this.count = reader.readUShort();
  64953.     if(this.count > 0) {
  64954.         this.offSize = reader.readByte();
  64955.         this.offsetsOffset = reader.position();
  64956.         reader.skip(this.offSize * this.count);
  64957.         var endOffset = this.readOffset();
  64958.         this.dataOffset = reader.position() - 1;
  64959.         reader.seek(this.dataOffset + endOffset);
  64960.     }
  64961. };
  64962. $hxClasses["prezi.graphics.text.otf.CffIndex"] = prezi.graphics.text.otf.CffIndex;
  64963. prezi.graphics.text.otf.CffIndex.__name__ = ["prezi","graphics","text","otf","CffIndex"];
  64964. prezi.graphics.text.otf.CffIndex.__interfaces__ = [prezi.graphics.text.otf.ICffIndex];
  64965. prezi.graphics.text.otf.CffIndex.prototype = {
  64966.     readOffset: function() {
  64967.         var value = this.peekOffset(this.reader.position());
  64968.         this.reader.skip(this.offSize);
  64969.         return value;
  64970.     }
  64971.     ,peekOffset: function(offset) {
  64972.         var _g = this;
  64973.         switch(_g.offSize) {
  64974.         case 1:
  64975.             return this.reader.peekByte(offset);
  64976.         case 2:
  64977.             return this.reader.peekUShort(offset);
  64978.         case 3:
  64979.             return this.reader.peekUInt24(offset);
  64980.         case 4:
  64981.             return this.reader.peekULong(offset);
  64982.         default:
  64983.             throw "Invalid offset size: " + this.offSize;
  64984.         }
  64985.     }
  64986.     ,offsetOf: function(index) {
  64987.         var offsetOffset = this.offsetsOffset + index * this.offSize;
  64988.         var relativeDataOffset = this.peekOffset(offsetOffset);
  64989.         return this.dataOffset + relativeDataOffset;
  64990.     }
  64991.     ,lookup: function(index) {
  64992.         if(!(0 <= index && index < this.count)) throw "Cannot find element #{index} (we have #{@count} elements in #{@indexName} INDEX)";
  64993.         var dataOffset = this.offsetOf(index);
  64994.         var length = this.offsetOf(index + 1) - dataOffset;
  64995.         return { offset : dataOffset, length : length};
  64996.     }
  64997.     ,__class__: prezi.graphics.text.otf.CffIndex
  64998. }
  64999. prezi.graphics.text.otf.CffPrivateDict = function(reader) {
  65000.     var _g = this;
  65001.     prezi.graphics.text.otf.CffDict.call(this,reader);
  65002.     this.operators = [];
  65003.     this.operators[6] = function() {
  65004.         _g.popall();
  65005.     };
  65006.     this.operators[7] = function() {
  65007.         _g.popall();
  65008.     };
  65009.     this.operators[8] = function() {
  65010.         _g.popall();
  65011.     };
  65012.     this.operators[9] = function() {
  65013.         _g.popall();
  65014.     };
  65015.     this.operators[10] = function() {
  65016.         _g.operandStack.pop();
  65017.     };
  65018.     this.operators[11] = function() {
  65019.         _g.operandStack.pop();
  65020.     };
  65021.     this.operators[19] = function() {
  65022.         _g.localSubrsOffset = (_g.operandStack.pop() | 0) + _g.dictStartOffset;
  65023.     };
  65024.     this.operators[20] = function() {
  65025.         _g.defaultWidthX = _g.operandStack.pop();
  65026.     };
  65027.     this.operators[21] = function() {
  65028.         _g.nominalWidthX = _g.operandStack.pop();
  65029.     };
  65030.     this.extendedOperators = [];
  65031.     this.extendedOperators[9] = function() {
  65032.         _g.operandStack.pop();
  65033.     };
  65034.     this.extendedOperators[10] = function() {
  65035.         _g.operandStack.pop();
  65036.     };
  65037.     this.extendedOperators[11] = function() {
  65038.         _g.operandStack.pop();
  65039.     };
  65040.     this.extendedOperators[12] = function() {
  65041.         _g.popall();
  65042.     };
  65043.     this.extendedOperators[13] = function() {
  65044.         _g.popall();
  65045.     };
  65046.     this.extendedOperators[14] = function() {
  65047.         _g.operandStack.pop();
  65048.     };
  65049.     this.extendedOperators[15] = function() {
  65050.         _g.operandStack.pop();
  65051.     };
  65052.     this.extendedOperators[16] = function() {
  65053.         _g.operandStack.pop();
  65054.     };
  65055.     this.extendedOperators[17] = function() {
  65056.         _g.operandStack.pop();
  65057.     };
  65058.     this.extendedOperators[18] = function() {
  65059.         _g.operandStack.pop();
  65060.     };
  65061.     this.extendedOperators[19] = function() {
  65062.         _g.operandStack.pop();
  65063.     };
  65064. };
  65065. $hxClasses["prezi.graphics.text.otf.CffPrivateDict"] = prezi.graphics.text.otf.CffPrivateDict;
  65066. prezi.graphics.text.otf.CffPrivateDict.__name__ = ["prezi","graphics","text","otf","CffPrivateDict"];
  65067. prezi.graphics.text.otf.CffPrivateDict.__super__ = prezi.graphics.text.otf.CffDict;
  65068. prezi.graphics.text.otf.CffPrivateDict.prototype = $extend(prezi.graphics.text.otf.CffDict.prototype,{
  65069.     getExtendedOperators: function() {
  65070.         return this.extendedOperators;
  65071.     }
  65072.     ,getOperators: function() {
  65073.         return this.operators;
  65074.     }
  65075.     ,__class__: prezi.graphics.text.otf.CffPrivateDict
  65076. });
  65077. prezi.graphics.text.otf.IGlyphLookup = function() { }
  65078. $hxClasses["prezi.graphics.text.otf.IGlyphLookup"] = prezi.graphics.text.otf.IGlyphLookup;
  65079. prezi.graphics.text.otf.IGlyphLookup.__name__ = ["prezi","graphics","text","otf","IGlyphLookup"];
  65080. prezi.graphics.text.otf.IGlyphLookup.prototype = {
  65081.     __class__: prezi.graphics.text.otf.IGlyphLookup
  65082. }
  65083. prezi.graphics.text.otf.CffTable = function(reader,cffHeader) {
  65084.     reader.seek(cffHeader.offset);
  65085.     var major = reader.readByte();
  65086.     var minor = reader.readByte();
  65087.     if(major != 1 || minor != 0) throw "Unknown CFF format: " + major + "." + minor;
  65088.     var hdrSize = reader.readByte();
  65089.     reader.readByte();
  65090.     reader.seek(cffHeader.offset + hdrSize);
  65091.     var nameIndex = new prezi.graphics.text.otf.CffIndex("Name",reader);
  65092.     var topDictIndex = new prezi.graphics.text.otf.CffIndex("Top DICT",reader);
  65093.     var tringIndex = new prezi.graphics.text.otf.CffIndex("String",reader);
  65094.     var globalSubrIndex = new prezi.graphics.text.otf.CffIndex("Global Subr",reader);
  65095.     var topDict = new prezi.graphics.text.otf.CffTopDict(reader,cffHeader.offset);
  65096.     var topDictLocation = topDictIndex.lookup(0);
  65097.     topDict.process(topDictLocation.offset,topDictLocation.length);
  65098.     var privateDict = topDict.privateDict;
  65099.     this.charStringsIndex = new prezi.graphics.text.otf.CffIndex("CharStrings",reader,topDict.charStringsOffset);
  65100.     var localSubrsOffset = privateDict.localSubrsOffset;
  65101.     var localSubrIndex;
  65102.     if(localSubrsOffset != null) localSubrIndex = new prezi.graphics.text.otf.CffIndex("Local Subr",reader,localSubrsOffset); else localSubrIndex = new prezi.graphics.text.otf._CffTable.EmptyCffIndex();
  65103.     this.outlineProcessor = new prezi.graphics.text.otf.CffCharStringProcessor(reader,privateDict.defaultWidthX,privateDict.nominalWidthX,globalSubrIndex,localSubrIndex);
  65104. };
  65105. $hxClasses["prezi.graphics.text.otf.CffTable"] = prezi.graphics.text.otf.CffTable;
  65106. prezi.graphics.text.otf.CffTable.__name__ = ["prezi","graphics","text","otf","CffTable"];
  65107. prezi.graphics.text.otf.CffTable.__interfaces__ = [prezi.graphics.text.otf.IGlyphLookup];
  65108. prezi.graphics.text.otf.CffTable.prototype = {
  65109.     glyphOutline: function(glyphIndex) {
  65110.         var glyphLocation = this.charStringsIndex.lookup(glyphIndex);
  65111.         return this.outlineProcessor.process(glyphLocation.offset,glyphLocation.length);
  65112.     }
  65113.     ,__class__: prezi.graphics.text.otf.CffTable
  65114. }
  65115. prezi.graphics.text.otf._CffTable = {}
  65116. prezi.graphics.text.otf._CffTable.EmptyCffIndex = function() {
  65117.     this.count = 0;
  65118. };
  65119. $hxClasses["prezi.graphics.text.otf._CffTable.EmptyCffIndex"] = prezi.graphics.text.otf._CffTable.EmptyCffIndex;
  65120. prezi.graphics.text.otf._CffTable.EmptyCffIndex.__name__ = ["prezi","graphics","text","otf","_CffTable","EmptyCffIndex"];
  65121. prezi.graphics.text.otf._CffTable.EmptyCffIndex.__interfaces__ = [prezi.graphics.text.otf.ICffIndex];
  65122. prezi.graphics.text.otf._CffTable.EmptyCffIndex.prototype = {
  65123.     lookup: function(index) {
  65124.         return (function($this) {
  65125.             var $r;
  65126.             throw "No local subroutines, cannot look up index " + index;
  65127.             return $r;
  65128.         }(this));
  65129.     }
  65130.     ,__class__: prezi.graphics.text.otf._CffTable.EmptyCffIndex
  65131. }
  65132. prezi.graphics.text.otf.CffTopDict = function(reader,cffStartOffset) {
  65133.     var _g = this;
  65134.     prezi.graphics.text.otf.CffDict.call(this,reader);
  65135.     this.operators = [];
  65136.     this.operators[0] = function() {
  65137.         _g.operandStack.pop();
  65138.     };
  65139.     this.operators[1] = function() {
  65140.         _g.operandStack.pop();
  65141.     };
  65142.     this.operators[2] = function() {
  65143.         _g.operandStack.pop();
  65144.     };
  65145.     this.operators[3] = function() {
  65146.         _g.operandStack.pop();
  65147.     };
  65148.     this.operators[4] = function() {
  65149.         _g.operandStack.pop();
  65150.     };
  65151.     this.operators[5] = function() {
  65152.         _g.popall();
  65153.     };
  65154.     this.operators[13] = function() {
  65155.         _g.operandStack.pop();
  65156.     };
  65157.     this.operators[14] = function() {
  65158.         _g.popall();
  65159.     };
  65160.     this.operators[15] = function() {
  65161.         _g.operandStack.pop();
  65162.     };
  65163.     this.operators[16] = function() {
  65164.         _g.operandStack.pop();
  65165.     };
  65166.     this.operators[17] = function() {
  65167.         _g.charStringsOffset = (_g.operandStack.pop() | 0) + cffStartOffset;
  65168.     };
  65169.     this.operators[18] = function() {
  65170.         _g.privateDictOffset = (_g.operandStack.pop() | 0) + cffStartOffset;
  65171.         _g.privateDictLength = _g.operandStack.pop() | 0;
  65172.     };
  65173.     this.extendedOperators = [];
  65174.     this.extendedOperators[0] = function() {
  65175.         _g.operandStack.pop();
  65176.     };
  65177.     this.extendedOperators[1] = function() {
  65178.         _g.operandStack.pop();
  65179.     };
  65180.     this.extendedOperators[2] = function() {
  65181.         _g.operandStack.pop();
  65182.     };
  65183.     this.extendedOperators[3] = function() {
  65184.         _g.operandStack.pop();
  65185.     };
  65186.     this.extendedOperators[4] = function() {
  65187.         _g.operandStack.pop();
  65188.     };
  65189.     this.extendedOperators[5] = function() {
  65190.         _g.operandStack.pop();
  65191.     };
  65192.     this.extendedOperators[6] = function() {
  65193.         var charStringType = _g.operandStack.pop() | 0;
  65194.         if(charStringType != 2) throw "Unsupported charstring type " + charStringType;
  65195.     };
  65196.     this.extendedOperators[7] = function() {
  65197.         _g.popall();
  65198.     };
  65199.     this.extendedOperators[8] = function() {
  65200.         _g.operandStack.pop();
  65201.     };
  65202.     this.extendedOperators[20] = function() {
  65203.         _g.operandStack.pop();
  65204.     };
  65205.     this.extendedOperators[21] = function() {
  65206.         _g.operandStack.pop();
  65207.     };
  65208.     this.extendedOperators[22] = function() {
  65209.         _g.operandStack.pop();
  65210.     };
  65211.     this.extendedOperators[23] = function() {
  65212.         _g.popall();
  65213.     };
  65214.     this.extendedOperators[30] = function() {
  65215.         _g.operandStack.pop();
  65216.         _g.operandStack.pop();
  65217.         _g.operandStack.pop();
  65218.     };
  65219.     this.extendedOperators[31] = function() {
  65220.         _g.operandStack.pop();
  65221.     };
  65222.     this.extendedOperators[32] = function() {
  65223.         _g.operandStack.pop();
  65224.     };
  65225.     this.extendedOperators[33] = function() {
  65226.         _g.operandStack.pop();
  65227.     };
  65228.     this.extendedOperators[34] = function() {
  65229.         _g.operandStack.pop();
  65230.     };
  65231.     this.extendedOperators[35] = function() {
  65232.         _g.operandStack.pop();
  65233.     };
  65234.     this.extendedOperators[36] = function() {
  65235.         _g.operandStack.pop();
  65236.     };
  65237.     this.extendedOperators[37] = function() {
  65238.         _g.operandStack.pop();
  65239.     };
  65240.     this.extendedOperators[38] = function() {
  65241.         _g.operandStack.pop();
  65242.     };
  65243. };
  65244. $hxClasses["prezi.graphics.text.otf.CffTopDict"] = prezi.graphics.text.otf.CffTopDict;
  65245. prezi.graphics.text.otf.CffTopDict.__name__ = ["prezi","graphics","text","otf","CffTopDict"];
  65246. prezi.graphics.text.otf.CffTopDict.__super__ = prezi.graphics.text.otf.CffDict;
  65247. prezi.graphics.text.otf.CffTopDict.prototype = $extend(prezi.graphics.text.otf.CffDict.prototype,{
  65248.     getExtendedOperators: function() {
  65249.         return this.extendedOperators;
  65250.     }
  65251.     ,getOperators: function() {
  65252.         return this.operators;
  65253.     }
  65254.     ,process: function(offset,length) {
  65255.         prezi.graphics.text.otf.CffDict.prototype.process.call(this,offset,length);
  65256.         this.privateDict = new prezi.graphics.text.otf.CffPrivateDict(this.reader);
  65257.         return this.privateDict.process(this.privateDictOffset,this.privateDictLength);
  65258.     }
  65259.     ,__class__: prezi.graphics.text.otf.CffTopDict
  65260. });
  65261. prezi.graphics.text.otf.OtfCmap314 = function(reader) {
  65262.     this.reader = reader;
  65263.     reader.readUShort();
  65264.     reader.readUShort();
  65265.     var segCount = reader.readUShort() >> 1;
  65266.     reader.readUShort();
  65267.     reader.readUShort();
  65268.     reader.readUShort();
  65269.     this.endCount = new Array();
  65270.     var _g = 0;
  65271.     while(_g < segCount) {
  65272.         var i = _g++;
  65273.         this.endCount.push(reader.readUShort());
  65274.     }
  65275.     reader.readUShort();
  65276.     this.startCount = new Array();
  65277.     var _g = 0;
  65278.     while(_g < segCount) {
  65279.         var i = _g++;
  65280.         this.startCount.push(reader.readUShort());
  65281.     }
  65282.     this.idDelta = new Array();
  65283.     var _g = 0;
  65284.     while(_g < segCount) {
  65285.         var i = _g++;
  65286.         this.idDelta.push(reader.readShort());
  65287.     }
  65288.     this.idRangeOffsetPosition = reader.position();
  65289.     this.idRangeOffset = new Array();
  65290.     var _g = 0;
  65291.     while(_g < segCount) {
  65292.         var i = _g++;
  65293.         this.idRangeOffset.push(reader.readUShort());
  65294.     }
  65295. };
  65296. $hxClasses["prezi.graphics.text.otf.OtfCmap314"] = prezi.graphics.text.otf.OtfCmap314;
  65297. prezi.graphics.text.otf.OtfCmap314.__name__ = ["prezi","graphics","text","otf","OtfCmap314"];
  65298. prezi.graphics.text.otf.OtfCmap314.prototype = {
  65299.     unicodeToGlyphCode: function(unicode) {
  65300.         var idx = 0;
  65301.         while(idx < this.endCount.length) {
  65302.             if(this.endCount[idx] >= unicode) break;
  65303.             idx++;
  65304.         }
  65305.         if(this.startCount[idx] > unicode) return 0;
  65306.         var offset = this.idRangeOffset[idx];
  65307.         if(offset == 0) return (this.idDelta[idx] + unicode) % 65536; else {
  65308.             var glyphIdOffset = this.idRangeOffsetPosition + 2 * idx + offset + 2 * (unicode - this.startCount[idx]);
  65309.             return this.reader.peekUShort(glyphIdOffset);
  65310.         }
  65311.     }
  65312.     ,__class__: prezi.graphics.text.otf.OtfCmap314
  65313. }
  65314. prezi.graphics.text.otf.OtfCmapTable = function(reader,header) {
  65315.     reader.seek(header.offset);
  65316.     var cmap314 = null;
  65317.     reader.readUShort();
  65318.     var numCmapTables = reader.readUShort();
  65319.     var _g = 0;
  65320.     while(_g < numCmapTables) {
  65321.         var i = _g++;
  65322.         var platformId = reader.readUShort();
  65323.         var encodingId = reader.readUShort();
  65324.         var offset = reader.readULong();
  65325.         var pos = reader.position();
  65326.         reader.seek(header.offset + offset);
  65327.         var format = reader.readUShort();
  65328.         if(platformId == 3 && encodingId == 1 && format == 4) cmap314 = new prezi.graphics.text.otf.OtfCmap314(reader);
  65329.         reader.seek(pos);
  65330.         if(cmap314 != null) break;
  65331.     }
  65332.     if(cmap314 == null) throw "No suitable cmap found in font";
  65333.     this.cmap314 = cmap314;
  65334. };
  65335. $hxClasses["prezi.graphics.text.otf.OtfCmapTable"] = prezi.graphics.text.otf.OtfCmapTable;
  65336. prezi.graphics.text.otf.OtfCmapTable.__name__ = ["prezi","graphics","text","otf","OtfCmapTable"];
  65337. prezi.graphics.text.otf.OtfCmapTable.prototype = {
  65338.     unicodeToGlyphCode: function(unicode) {
  65339.         return this.cmap314.unicodeToGlyphCode(unicode);
  65340.     }
  65341.     ,__class__: prezi.graphics.text.otf.OtfCmapTable
  65342. }
  65343. prezi.graphics.text.otf.OtfFont = function(reader) {
  65344.     this.reader = reader;
  65345.     this.tag = reader.readULong();
  65346.     var numTables = reader.readUShort();
  65347.     reader.readUShort();
  65348.     reader.readUShort();
  65349.     reader.readUShort();
  65350.     this.tableHeaders = new haxe.ds.StringMap();
  65351.     var _g = 0;
  65352.     while(_g < numTables) {
  65353.         var tableIdx = _g++;
  65354.         var tableHeader = new prezi.graphics.text.otf.OtfTableHeader(reader);
  65355.         this.tableHeaders.set(prezi.graphics.text.otf.OtfFont.getTagName(tableHeader.tag),tableHeader);
  65356.     }
  65357.     this.ttfScale = this.tag == 65536?2:1;
  65358.     var head = new prezi.graphics.text.otf.OtfHeadTable(reader,this.tableHeaders.get("head"));
  65359.     var hhea = new prezi.graphics.text.otf.OtfHheaTable(reader,this.tableHeaders.get("hhea"));
  65360.     this.numberOfHMetrics = hhea.numberOfHMetrics;
  65361.     this.hmtx = new prezi.graphics.text.otf.OtfHmtxTable(reader,this.tableHeaders.get("hmtx"),this.numberOfHMetrics);
  65362.     this.cmap = new prezi.graphics.text.otf.OtfCmapTable(reader,this.tableHeaders.get("cmap"));
  65363.     var post = new prezi.graphics.text.otf.OtfPostTable(reader,this.tableHeaders.get("post"));
  65364.     var os2 = null;
  65365.     if(this.tableHeaders.get("OS/2") != null) os2 = new prezi.graphics.text.otf.OtfOs2Table(reader,this.tableHeaders.get("OS/2"));
  65366.     var _g = this;
  65367.     switch(_g.tag) {
  65368.     case 65536:
  65369.         var maxp = new prezi.graphics.text.otf.OtfMaxpTable(reader,this.tableHeaders.get("maxp"));
  65370.         this.glyphs = new prezi.graphics.text.otf.TtfGlyfTable(reader,head.indexToLocFormat,this.tableHeaders.get("loca"),this.tableHeaders.get("glyf"));
  65371.         this.numGlyphs = maxp.numGlyphs;
  65372.         break;
  65373.     case 1330926671:
  65374.         var glyphs = new prezi.graphics.text.otf.CffTable(reader,this.tableHeaders.get("CFF "));
  65375.         this.numGlyphs = glyphs.charStringsIndex.count;
  65376.         this.glyphs = glyphs;
  65377.         break;
  65378.     }
  65379.     this.unitsPerEm = head.unitsPerEm * this.ttfScale;
  65380.     var useTypoMetrics = os2 != null && (os2.fsSelection & 128) != 0;
  65381.     if(useTypoMetrics || hhea.ascent == 0) {
  65382.         this.ascent = os2.sTypoAscender * this.ttfScale;
  65383.         this.descent = os2.sTypoDescender * this.ttfScale;
  65384.         this.lineGap = os2.sTypoLineGap * this.ttfScale;
  65385.     } else {
  65386.         this.ascent = hhea.ascent * this.ttfScale;
  65387.         this.descent = hhea.descent * this.ttfScale;
  65388.         this.lineGap = hhea.lineGap * this.ttfScale;
  65389.     }
  65390.     this.lineHeight = this.ascent - this.descent + this.lineGap;
  65391.     this.italicAngle = post.italicAngle;
  65392.     this.underlinePosition = post.underlinePosition * this.ttfScale;
  65393.     if(this.underlinePosition == 0) this.underlinePosition = this.descent >> 1;
  65394.     this.underlineThickness = post.underlineThickness * this.ttfScale;
  65395.     if(this.underlineThickness == 0) this.underlineThickness = -this.descent >> 2;
  65396. };
  65397. $hxClasses["prezi.graphics.text.otf.OtfFont"] = prezi.graphics.text.otf.OtfFont;
  65398. $hxExpose(prezi.graphics.text.otf.OtfFont, "prezi.graphics.text.otf.OtfFont");
  65399. prezi.graphics.text.otf.OtfFont.__name__ = ["prezi","graphics","text","otf","OtfFont"];
  65400. prezi.graphics.text.otf.OtfFont.getTagName = function(code) {
  65401.     return String.fromCharCode(code >>> 24) + String.fromCharCode(code >>> 16 & 255) + String.fromCharCode(code >>> 8 & 255) + String.fromCharCode(code & 255);
  65402. }
  65403. prezi.graphics.text.otf.OtfFont.prototype = {
  65404.     glyphOutline: function(glyphCode) {
  65405.         return this.glyphs.glyphOutline(glyphCode);
  65406.     }
  65407.     ,unicodeToGlyphCode: function(unicode) {
  65408.         return this.cmap.cmap314.unicodeToGlyphCode(unicode);
  65409.     }
  65410.     ,advanceWidth: function(glyphCode) {
  65411.         return this.ttfScale * this.hmtx.advanceWidth(glyphCode);
  65412.     }
  65413.     ,__class__: prezi.graphics.text.otf.OtfFont
  65414. }
  65415. prezi.graphics.text.otf.OtfHeadTable = function(reader,header) {
  65416.     reader.seek(header.offset);
  65417.     reader.readFixed();
  65418.     reader.readFixed();
  65419.     reader.readULong();
  65420.     var magicNumber = reader.readULong();
  65421.     if(magicNumber != 1594834165) throw "Invalid font magic number: " + magicNumber;
  65422.     this.flags = reader.readUShort();
  65423.     this.unitsPerEm = reader.readUShort();
  65424.     reader.readLongDateTime();
  65425.     reader.readLongDateTime();
  65426.     this.xMin = reader.readShort();
  65427.     this.yMin = reader.readShort();
  65428.     this.xMax = reader.readShort();
  65429.     this.yMax = reader.readShort();
  65430.     this.macStyle = reader.readUShort();
  65431.     reader.readUShort();
  65432.     reader.readShort();
  65433.     this.indexToLocFormat = reader.readShort();
  65434.     reader.readShort();
  65435. };
  65436. $hxClasses["prezi.graphics.text.otf.OtfHeadTable"] = prezi.graphics.text.otf.OtfHeadTable;
  65437. prezi.graphics.text.otf.OtfHeadTable.__name__ = ["prezi","graphics","text","otf","OtfHeadTable"];
  65438. prezi.graphics.text.otf.OtfHeadTable.prototype = {
  65439.     __class__: prezi.graphics.text.otf.OtfHeadTable
  65440. }
  65441. prezi.graphics.text.otf.OtfHheaTable = function(reader,header) {
  65442.     reader.seek(header.offset);
  65443.     reader.readFixed();
  65444.     this.ascent = reader.readFWord();
  65445.     this.descent = reader.readFWord();
  65446.     this.lineGap = reader.readFWord();
  65447.     reader.readUFWord();
  65448.     reader.readFWord();
  65449.     reader.readFWord();
  65450.     reader.readFWord();
  65451.     reader.readShort();
  65452.     reader.readShort();
  65453.     reader.readShort();
  65454.     reader.readShort();
  65455.     reader.readShort();
  65456.     reader.readShort();
  65457.     reader.readShort();
  65458.     reader.readShort();
  65459.     this.numberOfHMetrics = reader.readUShort();
  65460. };
  65461. $hxClasses["prezi.graphics.text.otf.OtfHheaTable"] = prezi.graphics.text.otf.OtfHheaTable;
  65462. prezi.graphics.text.otf.OtfHheaTable.__name__ = ["prezi","graphics","text","otf","OtfHheaTable"];
  65463. prezi.graphics.text.otf.OtfHheaTable.prototype = {
  65464.     __class__: prezi.graphics.text.otf.OtfHheaTable
  65465. }
  65466. prezi.graphics.text.otf.OtfHmtxTable = function(reader,header,numberOfHMetrics) {
  65467.     this.reader = reader;
  65468.     this.numberOfHMetrics = numberOfHMetrics;
  65469.     this.headerOffset = header.offset;
  65470. };
  65471. $hxClasses["prezi.graphics.text.otf.OtfHmtxTable"] = prezi.graphics.text.otf.OtfHmtxTable;
  65472. prezi.graphics.text.otf.OtfHmtxTable.__name__ = ["prezi","graphics","text","otf","OtfHmtxTable"];
  65473. prezi.graphics.text.otf.OtfHmtxTable.prototype = {
  65474.     advanceWidth: function(glyphCode) {
  65475.         var glyphPos = glyphCode < this.numberOfHMetrics?glyphCode:this.numberOfHMetrics - 1;
  65476.         var offset = this.headerOffset + glyphPos * 4;
  65477.         return this.reader.peekUShort(offset);
  65478.     }
  65479.     ,__class__: prezi.graphics.text.otf.OtfHmtxTable
  65480. }
  65481. prezi.graphics.text.otf.OtfMaxpTable = function(reader,header) {
  65482.     reader.seek(header.offset);
  65483.     reader.readFixed();
  65484.     this.numGlyphs = reader.readUShort();
  65485. };
  65486. $hxClasses["prezi.graphics.text.otf.OtfMaxpTable"] = prezi.graphics.text.otf.OtfMaxpTable;
  65487. prezi.graphics.text.otf.OtfMaxpTable.__name__ = ["prezi","graphics","text","otf","OtfMaxpTable"];
  65488. prezi.graphics.text.otf.OtfMaxpTable.prototype = {
  65489.     __class__: prezi.graphics.text.otf.OtfMaxpTable
  65490. }
  65491. prezi.graphics.text.otf.OtfOs2Table = function(reader,header) {
  65492.     reader.seek(header.offset);
  65493.     reader.readUShort();
  65494.     reader.readShort();
  65495.     reader.readUShort();
  65496.     reader.readUShort();
  65497.     reader.readUShort();
  65498.     reader.readShort();
  65499.     reader.readShort();
  65500.     reader.readShort();
  65501.     reader.readShort();
  65502.     reader.readShort();
  65503.     reader.readShort();
  65504.     reader.readShort();
  65505.     reader.readShort();
  65506.     reader.readShort();
  65507.     reader.readShort();
  65508.     reader.readShort();
  65509.     reader.readByte();
  65510.     reader.readByte();
  65511.     reader.readByte();
  65512.     reader.readByte();
  65513.     reader.readByte();
  65514.     reader.readByte();
  65515.     reader.readByte();
  65516.     reader.readByte();
  65517.     reader.readByte();
  65518.     reader.readByte();
  65519.     reader.readULong();
  65520.     reader.readULong();
  65521.     reader.readULong();
  65522.     reader.readULong();
  65523.     reader.readByte();
  65524.     reader.readByte();
  65525.     reader.readByte();
  65526.     reader.readByte();
  65527.     this.fsSelection = reader.readUShort();
  65528.     reader.readUShort();
  65529.     reader.readUShort();
  65530.     this.sTypoAscender = reader.readShort();
  65531.     this.sTypoDescender = reader.readShort();
  65532.     this.sTypoLineGap = reader.readShort();
  65533.     this.usWinAscent = reader.readUShort();
  65534.     this.usWinDescent = reader.readUShort();
  65535. };
  65536. $hxClasses["prezi.graphics.text.otf.OtfOs2Table"] = prezi.graphics.text.otf.OtfOs2Table;
  65537. prezi.graphics.text.otf.OtfOs2Table.__name__ = ["prezi","graphics","text","otf","OtfOs2Table"];
  65538. prezi.graphics.text.otf.OtfOs2Table.prototype = {
  65539.     __class__: prezi.graphics.text.otf.OtfOs2Table
  65540. }
  65541. prezi.graphics.text.otf.OtfPostTable = function(reader,header) {
  65542.     reader.seek(header.offset);
  65543.     reader.readFixed();
  65544.     this.italicAngle = reader.readFixed();
  65545.     this.underlinePosition = reader.readFWord();
  65546.     this.underlineThickness = reader.readFWord();
  65547. };
  65548. $hxClasses["prezi.graphics.text.otf.OtfPostTable"] = prezi.graphics.text.otf.OtfPostTable;
  65549. prezi.graphics.text.otf.OtfPostTable.__name__ = ["prezi","graphics","text","otf","OtfPostTable"];
  65550. prezi.graphics.text.otf.OtfPostTable.prototype = {
  65551.     __class__: prezi.graphics.text.otf.OtfPostTable
  65552. }
  65553. prezi.graphics.text.otf.OtfTableHeader = function(reader) {
  65554.     this.tag = reader.readULong();
  65555.     this.checkSum = reader.readULong();
  65556.     this.offset = reader.readULong();
  65557.     this.length = reader.readULong();
  65558. };
  65559. $hxClasses["prezi.graphics.text.otf.OtfTableHeader"] = prezi.graphics.text.otf.OtfTableHeader;
  65560. prezi.graphics.text.otf.OtfTableHeader.__name__ = ["prezi","graphics","text","otf","OtfTableHeader"];
  65561. prezi.graphics.text.otf.OtfTableHeader.prototype = {
  65562.     __class__: prezi.graphics.text.otf.OtfTableHeader
  65563. }
  65564. prezi.graphics.text.otf.Pen = function(commands) {
  65565.     if(commands == null) commands = [];
  65566.     this.commands = commands;
  65567.     this.location = { x : 0, y : 0};
  65568. };
  65569. $hxClasses["prezi.graphics.text.otf.Pen"] = prezi.graphics.text.otf.Pen;
  65570. prezi.graphics.text.otf.Pen.__name__ = ["prezi","graphics","text","otf","Pen"];
  65571. prezi.graphics.text.otf.Pen.nextPoint = function(origin,delta) {
  65572.     return { x : origin.x + delta.x, y : origin.y + delta.y};
  65573. }
  65574. prezi.graphics.text.otf.Pen.append = function(commands,commandsToPush) {
  65575.     var _g = 0;
  65576.     while(_g < commandsToPush.length) {
  65577.         var command = commandsToPush[_g];
  65578.         ++_g;
  65579.         commands.push(command);
  65580.     }
  65581. }
  65582. prezi.graphics.text.otf.Pen.prototype = {
  65583.     startDrawingIfNeeded: function() {
  65584.         if(this.startPoint == null) this.moveTo({ x : 0, y : 0});
  65585.     }
  65586.     ,closePath: function() {
  65587.         this.startPoint = null;
  65588.     }
  65589.     ,rCubicCurveTo: function(control1Delta,control2Delta,anchorDelta) {
  65590.         var control1 = prezi.graphics.text.otf.Pen.nextPoint(this.location,control1Delta);
  65591.         var control2 = { x : control1.x + control2Delta.x, y : control1.y + control2Delta.y};
  65592.         var anchor = { x : control2.x + anchorDelta.x, y : control2.y + anchorDelta.y};
  65593.         this.cubicCurveTo(control1,control2,anchor);
  65594.     }
  65595.     ,cubicCurveTo: function(control1,control2,anchor) {
  65596.         if(this.startPoint == null) this.moveTo({ x : 0, y : 0});
  65597.         prezi.graphics.text.otf.Pen.append(this.commands,[4,control1.x,control1.y,control2.x,control2.y,anchor.x,anchor.y]);
  65598.         this.location = anchor;
  65599.     }
  65600.     ,rCurveTo: function(controlDelta,anchorDelta) {
  65601.         var control = prezi.graphics.text.otf.Pen.nextPoint(this.location,controlDelta);
  65602.         var anchor = { x : control.x + anchorDelta.x, y : control.y + anchorDelta.y};
  65603.         this.curveTo(control,anchor);
  65604.     }
  65605.     ,curveTo: function(control,anchor) {
  65606.         if(this.startPoint == null) this.moveTo({ x : 0, y : 0});
  65607.         prezi.graphics.text.otf.Pen.append(this.commands,[3,control.x,control.y,anchor.x,anchor.y]);
  65608.         this.location = anchor;
  65609.     }
  65610.     ,rLineTo: function(delta) {
  65611.         this.lineTo(prezi.graphics.text.otf.Pen.nextPoint(this.location,delta));
  65612.     }
  65613.     ,lineTo: function(anchor) {
  65614.         if(this.startPoint == null) this.moveTo({ x : 0, y : 0});
  65615.         prezi.graphics.text.otf.Pen.append(this.commands,[2,anchor.x,anchor.y]);
  65616.         this.location = anchor;
  65617.     }
  65618.     ,rMoveTo: function(delta) {
  65619.         this.moveTo(prezi.graphics.text.otf.Pen.nextPoint(this.location,delta));
  65620.     }
  65621.     ,moveTo: function(location) {
  65622.         this.location = location;
  65623.         this.startPoint = location;
  65624.         prezi.graphics.text.otf.Pen.append(this.commands,[1,location.x,location.y]);
  65625.     }
  65626.     ,__class__: prezi.graphics.text.otf.Pen
  65627. }
  65628. prezi.graphics.text.otf.TtfGlyfTable = function(reader,indexToLocFormat,locaHeader,glyfHeader) {
  65629.     this.reader = reader;
  65630.     this.indexToLocFormat = indexToLocFormat;
  65631.     this.locaHeader = locaHeader;
  65632.     this.glyfHeader = glyfHeader;
  65633. };
  65634. $hxClasses["prezi.graphics.text.otf.TtfGlyfTable"] = prezi.graphics.text.otf.TtfGlyfTable;
  65635. prezi.graphics.text.otf.TtfGlyfTable.__name__ = ["prezi","graphics","text","otf","TtfGlyfTable"];
  65636. prezi.graphics.text.otf.TtfGlyfTable.__interfaces__ = [prezi.graphics.text.otf.IGlyphLookup];
  65637. prezi.graphics.text.otf.TtfGlyfTable.midPoint = function(a,b) {
  65638.     return { x : a.x + b.x >> 1, y : a.y + b.y >> 1};
  65639. }
  65640. prezi.graphics.text.otf.TtfGlyfTable.prototype = {
  65641.     readCoords: function(flags,numberOfContours,shortVectorFlag,isSameFlag) {
  65642.         var nPoints = flags.length;
  65643.         var coords = new Array();
  65644.         var coord = 0;
  65645.         var _g = 0;
  65646.         while(_g < nPoints) {
  65647.             var i = _g++;
  65648.             var flag = flags[i];
  65649.             var d;
  65650.             if((flag & shortVectorFlag) != 0) {
  65651.                 d = this.reader.readByte();
  65652.                 if((flag & isSameFlag) == 0) d = -d;
  65653.             } else if((flag & isSameFlag) != 0) d = 0; else d = this.reader.readShort();
  65654.             coord += d;
  65655.             coords[i] = coord << 1;
  65656.         }
  65657.         return coords;
  65658.     }
  65659.     ,readFlags: function(nPoints) {
  65660.         var flags = new Array();
  65661.         var i = 0;
  65662.         while(i < nPoints) {
  65663.             var flag = this.reader.readByte();
  65664.             var count = 1;
  65665.             if((flag & 8) != 0) count += this.reader.readByte();
  65666.             var _g1 = 1, _g = count + 1;
  65667.             while(_g1 < _g) {
  65668.                 var c = _g1++;
  65669.                 flags[i++] = flag;
  65670.             }
  65671.         }
  65672.         return flags;
  65673.     }
  65674.     ,lookupGlyph: function(glyphCode) {
  65675.         var glyphIndex;
  65676.         var _g = this;
  65677.         switch(_g.indexToLocFormat) {
  65678.         case 0:
  65679.             glyphIndex = this.reader.peekUShort(this.locaHeader.offset + glyphCode * 2) * 2;
  65680.             break;
  65681.         case 1:
  65682.             glyphIndex = this.reader.peekULong(this.locaHeader.offset + glyphCode * 4);
  65683.             break;
  65684.         default:
  65685.             throw "Unknonw indexToLocFormat: " + this.indexToLocFormat;
  65686.         }
  65687.         return glyphIndex;
  65688.     }
  65689.     ,glyphOutline: function(glyphCode) {
  65690.         var relativeOffset = this.lookupGlyph(glyphCode);
  65691.         var length = this.lookupGlyph(glyphCode + 1) - relativeOffset;
  65692.         if(length == 0) return [1];
  65693.         this.reader.seek(this.glyfHeader.offset + relativeOffset);
  65694.         var numberOfContours = this.reader.readShort();
  65695.         this.reader.readShort();
  65696.         this.reader.readShort();
  65697.         this.reader.readShort();
  65698.         this.reader.readShort();
  65699.         var commands = new Array();
  65700.         if(numberOfContours != -1) {
  65701.             commands.push(1);
  65702.             var endPtsOfContours = new Array();
  65703.             var _g = 0;
  65704.             while(_g < numberOfContours) {
  65705.                 var i = _g++;
  65706.                 endPtsOfContours[i] = this.reader.readUShort();
  65707.             }
  65708.             var nPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;
  65709.             var instructionLength = this.reader.readUShort();
  65710.             this.reader.skip(instructionLength);
  65711.             var flags = this.readFlags(nPoints);
  65712.             var xCoords = this.readCoords(flags,numberOfContours,2,16);
  65713.             var yCoords = this.readCoords(flags,numberOfContours,4,32);
  65714.             var pen = new prezi.graphics.text.otf.Pen(commands);
  65715.             var contourStart = 0;
  65716.             var _g = 0;
  65717.             while(_g < endPtsOfContours.length) {
  65718.                 var contourEnd = endPtsOfContours[_g];
  65719.                 ++_g;
  65720.                 var previousControlPoint = null;
  65721.                 var _g2 = contourStart, _g1 = contourEnd + 1;
  65722.                 while(_g2 < _g1) {
  65723.                     var pointNo = _g2++;
  65724.                     var point = { x : xCoords[pointNo], y : yCoords[pointNo]};
  65725.                     var onCurve = (flags[pointNo] & 1) != 0;
  65726.                     if(pointNo == contourStart) {
  65727.                         if(onCurve) {
  65728.                             pen.moveTo(point);
  65729.                             continue;
  65730.                         } else {
  65731.                             var lastPoint = { x : xCoords[contourEnd], y : yCoords[contourEnd]};
  65732.                             var lastPointOnCurve = (flags[contourEnd] & 1) != 0;
  65733.                             if(lastPointOnCurve) pen.moveTo(lastPoint); else pen.moveTo({ x : lastPoint.x + point.x >> 1, y : lastPoint.y + point.y >> 1});
  65734.                         }
  65735.                     }
  65736.                     if(!onCurve) {
  65737.                         if(previousControlPoint != null) pen.curveTo(previousControlPoint,{ x : point.x + previousControlPoint.x >> 1, y : point.y + previousControlPoint.y >> 1});
  65738.                         previousControlPoint = point;
  65739.                     } else if(previousControlPoint != null) {
  65740.                         pen.curveTo(previousControlPoint,point);
  65741.                         previousControlPoint = null;
  65742.                     } else pen.lineTo(point);
  65743.                 }
  65744.                 if(previousControlPoint != null) pen.curveTo(previousControlPoint,pen.startPoint);
  65745.                 pen.closePath();
  65746.                 contourStart = contourEnd + 1;
  65747.             }
  65748.         } else {
  65749.             commands.push(16);
  65750.             while(true) {
  65751.                 var flags = this.reader.readUShort();
  65752.                 var glyphIndex = this.reader.readUShort();
  65753.                 commands.push(flags);
  65754.                 commands.push(glyphIndex);
  65755.                 if((flags & 1) != 0) {
  65756.                     var arg1;
  65757.                     var arg2;
  65758.                     if((flags & 2) != 0) {
  65759.                         arg1 = this.reader.readShort();
  65760.                         arg2 = this.reader.readShort();
  65761.                     } else {
  65762.                         arg1 = this.reader.readUShort();
  65763.                         arg2 = this.reader.readUShort();
  65764.                     }
  65765.                     commands.push(arg1);
  65766.                     commands.push(arg2);
  65767.                 } else {
  65768.                     var args = this.reader.readUShort();
  65769.                     commands.push(args);
  65770.                 }
  65771.                 if((flags & 8) != 0) {
  65772.                     var scale = this.reader.readUShort();
  65773.                     commands.push(scale);
  65774.                 } else if((flags & 64) != 0) {
  65775.                     var xscale = this.reader.readUShort();
  65776.                     var yscale = this.reader.readUShort();
  65777.                     commands.push(xscale);
  65778.                     commands.push(yscale);
  65779.                 } else if((flags & 128) != 0) {
  65780.                     var xscale = this.reader.readUShort();
  65781.                     var scale01 = this.reader.readUShort();
  65782.                     var scale10 = this.reader.readUShort();
  65783.                     var yscale = this.reader.readUShort();
  65784.                     commands.push(xscale);
  65785.                     commands.push(scale01);
  65786.                     commands.push(scale10);
  65787.                     commands.push(yscale);
  65788.                 }
  65789.                 if((flags & 32) == 0) break;
  65790.             }
  65791.         }
  65792.         return commands;
  65793.     }
  65794.     ,__class__: prezi.graphics.text.otf.TtfGlyfTable
  65795. }
  65796. prezi.net = {}
  65797. prezi.net.HttpRequest = function(url) {
  65798.     this._url = url;
  65799.     this._isPostMethod = true;
  65800. };
  65801. $hxClasses["prezi.net.HttpRequest"] = prezi.net.HttpRequest;
  65802. prezi.net.HttpRequest.__name__ = ["prezi","net","HttpRequest"];
  65803. prezi.net.HttpRequest.prototype = {
  65804.     handleStringResultToBinary: function(result) {
  65805.         var bbuffer = new haxe.io.BytesBuffer();
  65806.         var _g1 = 0, _g = result.length;
  65807.         while(_g1 < _g) {
  65808.             var i = _g1++;
  65809.             bbuffer.b.push(HxOverrides.cca(result,i) & 255);
  65810.         }
  65811.         this._onBinaryResult(bbuffer.getBytes().b);
  65812.     }
  65813.     ,handleError: function(e) {
  65814.         if(this._onError != null) this._onError(e); else {
  65815.             console.debug("unhandled_http_error: " + e);;
  65816.         }
  65817.     }
  65818.     ,handleLoadComplete: function() {
  65819.         if(!this._isXDomain && this._request.readyState != 4) {
  65820.             if(this._isLevel2) this._onError("http_error_invalid_status_after_load: " + Std.string(this._request.readyState));
  65821.             return;
  65822.         }
  65823.         var response = this._isLevel2?this._request.response:this._request.responseText;
  65824.         var status2xx = this._request.status >= 200 && this._request.status <= 299;
  65825.         var fileProtocolZero = this._request.status == 0 && js.Browser.window != null && js.Browser.window.location.protocol == "file:";
  65826.         if(!this._isXDomain && !status2xx && !fileProtocolZero) {
  65827.             this._onError("http_error_status_code_" + Std.string(this._request.status));
  65828.             return;
  65829.         }
  65830.         if(this._onBinaryResult != null) {
  65831.             if(typeof(Uint8Array) != "undefined" && !this._isXDomain && this._request.responseType == "arraybuffer") this._onBinaryResult(new Uint8Array(response)); else this.handleStringResultToBinary(response);
  65832.         } else if(this._onJsonResult != null) this._onJsonResult(haxe.Json.parse(response)); else if(this._onError != null) this._onError("http_error_received_data_format_not_supported");
  65833.     }
  65834.     ,addRequestHeaders: function() {
  65835.         if(this._requestHeaders != null) {
  65836.             var $it0 = this._requestHeaders.keys();
  65837.             while( $it0.hasNext() ) {
  65838.                 var key = $it0.next();
  65839.                 this._request.setRequestHeader(key,this._requestHeaders.get(key));
  65840.             }
  65841.         }
  65842.     }
  65843.     ,getParameterString: function() {
  65844.         if(this._requestParams == null) return null;
  65845.         var data = "";
  65846.         var $it0 = this._requestParams.keys();
  65847.         while( $it0.hasNext() ) {
  65848.             var key = $it0.next();
  65849.             var value = this._requestParams.get(key);
  65850.             data += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
  65851.         }
  65852.         if(data.length > 0) data = HxOverrides.substr(data,0,data.length - 1);
  65853.         return data;
  65854.     }
  65855.     ,getFormatAsString: function() {
  65856.         if(this._onBinaryResult != null) return "arraybuffer"; else if(this._onJsonResult != null) return "text"; else return "text";
  65857.     }
  65858.     ,getMethodAsString: function() {
  65859.         return this._isPostMethod?"POST":"GET";
  65860.     }
  65861.     ,abort: function() {
  65862.         if(this._request != null) this._request.abort();
  65863.     }
  65864.     ,load: function() {
  65865.         this._request = new XMLHttpRequest();
  65866.         this._isLevel2 = 'upload' in this._request;
  65867.         this._isXDomain = false;
  65868.         var parameterString = this.getParameterString();
  65869.         var urlParamString = "";
  65870.         var requestUrl = this._url;
  65871.         var hasQueryParams = false;
  65872.         if(parameterString != null && !this._isPostMethod) {
  65873.             requestUrl += "?" + parameterString;
  65874.             hasQueryParams = true;
  65875.         }
  65876.         try {
  65877.             this._request.open(this._isPostMethod?"POST":"GET",requestUrl,true);
  65878.         } catch( error ) {
  65879.             if(this.fallbackToXDomainRequest()) {
  65880.                 this._request = new XDomainRequest();
  65881.                 var currentProtocol = location.protocol;
  65882.                 var urlParts = requestUrl.split("/");
  65883.                 if(urlParts[0].substring(0,4) == "http") {
  65884.                     if(urlParts[0] != currentProtocol) {
  65885.                         urlParts[0] = currentProtocol;
  65886.                         requestUrl = urlParts.join("/");
  65887.                     }
  65888.                 }
  65889.                 this._isXDomain = true;
  65890.                 if(this._requestHeaders != null) {
  65891.                     var $it0 = this._requestHeaders.keys();
  65892.                     while( $it0.hasNext() ) {
  65893.                         var key = $it0.next();
  65894.                         var value = this._requestHeaders.get(key);
  65895.                         urlParamString += encodeURIComponent(key).toLowerCase() + '=' + encodeURIComponent(value) + '&';
  65896.                     }
  65897.                     if(urlParamString.length > 0) {
  65898.                         urlParamString = HxOverrides.substr(urlParamString,0,urlParamString.length - 1);
  65899.                         requestUrl += (hasQueryParams?"&":"?") + urlParamString;
  65900.                     }
  65901.                 }
  65902.                 this._request.open(this._isPostMethod?"POST":"GET",requestUrl);
  65903.             } else throw error;
  65904.         }
  65905.         this._request.responseType = this._onBinaryResult != null?"arraybuffer":this._onJsonResult != null?"text":"text";
  65906.         if(!this._isXDomain) this.addRequestHeaders();
  65907.         if(this._isLevel2 || this._isXDomain) {
  65908.             this._request.onload = $bind(this,this.handleLoadComplete);
  65909.             this._request.onerror = $bind(this,this.handleError);
  65910.         } else this._request.onreadystatechange = $bind(this,this.handleLoadComplete);
  65911.         if(parameterString != null && this._isPostMethod) {
  65912.             if(!this._isXDomain) this._request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  65913.             this._request.send(parameterString);
  65914.         } else this._request.send();
  65915.     }
  65916.     ,fallbackToXDomainRequest: function() {
  65917.         return typeof(this._request.withCredentials) == "undefined" && js.Browser.window != null && js.Browser.window.XDomainRequest != null;
  65918.     }
  65919.     ,getHeader: function(key) {
  65920.         if(this._requestHeaders == null) return null; else return this._requestHeaders.get(key);
  65921.     }
  65922.     ,setHeader: function(key,value) {
  65923.         if(this._requestHeaders == null) this._requestHeaders = new haxe.ds.StringMap();
  65924.         this._requestHeaders.set(key,value);
  65925.     }
  65926.     ,getParameter: function(key) {
  65927.         if(this._requestParams == null) return null; else return this._requestParams.get(key);
  65928.     }
  65929.     ,setParameter: function(key,value) {
  65930.         if(this._requestParams == null) this._requestParams = new haxe.ds.StringMap();
  65931.         this._requestParams.set(key,value);
  65932.     }
  65933.     ,isPostMethod: function() {
  65934.         return this._isPostMethod;
  65935.     }
  65936.     ,setPostMethod: function() {
  65937.         this._isPostMethod = true;
  65938.     }
  65939.     ,setGetMethod: function() {
  65940.         this._isPostMethod = false;
  65941.     }
  65942.     ,setErrorListener: function(listener) {
  65943.         this._onError = listener;
  65944.     }
  65945.     ,setJsonResultListener: function(listener) {
  65946.         this._onJsonResult = listener;
  65947.     }
  65948.     ,setBinaryResultListener: function(listener) {
  65949.         this._onBinaryResult = listener;
  65950.     }
  65951.     ,getUrl: function() {
  65952.         return this._url;
  65953.     }
  65954.     ,setUrl: function(url) {
  65955.         this._url = url;
  65956.     }
  65957.     ,__class__: prezi.net.HttpRequest
  65958. }
  65959. prezi.remoting.AirJSInvoker = function() {
  65960. };
  65961. $hxClasses["prezi.remoting.AirJSInvoker"] = prezi.remoting.AirJSInvoker;
  65962. prezi.remoting.AirJSInvoker.__name__ = ["prezi","remoting","AirJSInvoker"];
  65963. prezi.remoting.AirJSInvoker.__interfaces__ = [prezi.remoting.ExternalInvoker];
  65964. prezi.remoting.AirJSInvoker.prototype = {
  65965.     toString: function() {
  65966.         return "[AirJSInvoker]";
  65967.     }
  65968.     ,hxUnserialize: function(s) {
  65969.     }
  65970.     ,hxSerialize: function(s) {
  65971.     }
  65972.     ,invoke: function(dataName,path,params) {
  65973.         var data = null;
  65974.         try {
  65975.             data = window.externalCall(dataName,path,params);
  65976.         } catch( e ) {
  65977.             throw e;
  65978.         }
  65979.         return data;
  65980.     }
  65981.     ,__class__: prezi.remoting.AirJSInvoker
  65982. }
  65983. prezi.remoting.ExternalInterfaceInvoker = function(flashObjectId) {
  65984.     this._flashObjectId = flashObjectId;
  65985. };
  65986. $hxClasses["prezi.remoting.ExternalInterfaceInvoker"] = prezi.remoting.ExternalInterfaceInvoker;
  65987. prezi.remoting.ExternalInterfaceInvoker.__name__ = ["prezi","remoting","ExternalInterfaceInvoker"];
  65988. prezi.remoting.ExternalInterfaceInvoker.__interfaces__ = [prezi.remoting.ExternalInvoker];
  65989. prezi.remoting.ExternalInterfaceInvoker.prototype = {
  65990.     invoke: function(dataName,path,params) {
  65991.         var data = null;
  65992.         try {
  65993.             var fobj = window.document[this._flashObjectId];
  65994.             if(fobj == null) fobj = window.document.getElementById(this._flashObjectId);
  65995.             if(fobj == null) throw "Could not find flash object '" + this._flashObjectId + "'";
  65996.             data = fobj.externalCall(dataName,path,params);
  65997.         } catch( e ) {
  65998.             throw e;
  65999.         }
  66000.         return data;
  66001.     }
  66002.     ,__class__: prezi.remoting.ExternalInterfaceInvoker
  66003. }
  66004. prezi.remoting.NativeJSInvoker = function() {
  66005. };
  66006. $hxClasses["prezi.remoting.NativeJSInvoker"] = prezi.remoting.NativeJSInvoker;
  66007. prezi.remoting.NativeJSInvoker.__name__ = ["prezi","remoting","NativeJSInvoker"];
  66008. prezi.remoting.NativeJSInvoker.__interfaces__ = [prezi.remoting.ExternalInvoker];
  66009. prezi.remoting.NativeJSInvoker.prototype = {
  66010.     toString: function() {
  66011.         return "[NativeJSInvoker]";
  66012.     }
  66013.     ,hxUnserialize: function(s) {
  66014.     }
  66015.     ,hxSerialize: function(s) {
  66016.     }
  66017.     ,invoke: function(dataName,path,params) {
  66018.         return window.externalCall(dataName,path,params);
  66019.     }
  66020.     ,__class__: prezi.remoting.NativeJSInvoker
  66021. }
  66022. prezi.service = {}
  66023. prezi.service.HttpService = function() {
  66024. };
  66025. $hxClasses["prezi.service.HttpService"] = prezi.service.HttpService;
  66026. prezi.service.HttpService.__name__ = ["prezi","service","HttpService"];
  66027. prezi.service.HttpService.prototype = {
  66028.     newHttpRequest: function(url) {
  66029.         return new prezi.net.HttpRequest(url);
  66030.     }
  66031.     ,__class__: prezi.service.HttpService
  66032. }
  66033. var $_, $fid = 0;
  66034. function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $fid++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = function(){ return f.method.apply(f.scope, arguments); }; f.scope = o; f.method = m; o.hx__closures__[m.__id__] = f; } return f; };
  66035. Math.__name__ = ["Math"];
  66036. Math.NaN = Number.NaN;
  66037. Math.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY;
  66038. Math.POSITIVE_INFINITY = Number.POSITIVE_INFINITY;
  66039. $hxClasses.Math = Math;
  66040. Math.isFinite = function(i) {
  66041.     return isFinite(i);
  66042. };
  66043. Math.isNaN = function(i) {
  66044.     return isNaN(i);
  66045. };
  66046. String.prototype.__class__ = $hxClasses.String = String;
  66047. String.__name__ = ["String"];
  66048. Array.prototype.__class__ = $hxClasses.Array = Array;
  66049. Array.__name__ = ["Array"];
  66050. Date.prototype.__class__ = $hxClasses.Date = Date;
  66051. Date.__name__ = ["Date"];
  66052. var Int = $hxClasses.Int = { __name__ : ["Int"]};
  66053. var Dynamic = $hxClasses.Dynamic = { __name__ : ["Dynamic"]};
  66054. var Float = $hxClasses.Float = Number;
  66055. Float.__name__ = ["Float"];
  66056. var Bool = $hxClasses.Bool = Boolean;
  66057. Bool.__ename__ = ["Bool"];
  66058. var Class = $hxClasses.Class = { __name__ : ["Class"]};
  66059. var Enum = { };
  66060. if(typeof(JSON) != "undefined") haxe.Json = JSON;
  66061. prezi.remoting.RemoteConnection.connections = new haxe.ds.StringMap();
  66062. prezi.remoting.RemoteConnection.setDefaultInvoker(new prezi.remoting.NotImplementedExternalInvoker());
  66063. prezi.remoting.RemoteConnection.setDefaultSerializer(new prezi.remoting.HaxeSerializer());
  66064. prezi.jsmodules.Globals.expose(prezi.remoting.RemoteConnection,"prezi.remoting.RemoteConnection");
  66065. prezi.remoting.RemoteConnection.connections = prezi.jsmodules.Globals.getExposedObject("prezi.remoting.RemoteConnection.connections");
  66066. var isTypedArray = typeof(Uint8Array) != "undefined";
  66067. if(isTypedArray) Uint8Array.prototype.slice = Uint8Array.prototype.subarray;
  66068. events.EventObserver.BIT_ONCE = 1;
  66069. events.EventObserver.BIT_ENABLED = 2;
  66070. events.EventObserver.BIT_NO_ARG = 4;
  66071. haxe.Serializer.USE_CACHE = false;
  66072. haxe.Serializer.USE_ENUM_INDEX = false;
  66073. haxe.Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
  66074. haxe.Unserializer.DEFAULT_RESOLVER = Type;
  66075. haxe.Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
  66076. haxe.ds.ObjectMap.count = 0;
  66077. js.Browser.window = typeof window != "undefined" ? window : null;
  66078. prezi.graphics.text.FontFaceId.NORMAL = "normal";
  66079. prezi.graphics.text.FontFaceId.BOLD = "bold";
  66080. prezi.graphics.text.FontFaceId.ITALIC = "italic";
  66081. prezi.graphics.text.FontFaceId.interned = new haxe.ds.StringMap();
  66082. prezi.graphics.text.FontFaceId.DEFAULT = prezi.graphics.text.FontFaceId.get("default");
  66083. prezi.graphics.text.OtfConstants.MISSING_GLYPH_CODE = 0;
  66084. prezi.graphics.text.OtfConstants.GLYPH_TYPE_SIMPLE = 1;
  66085. prezi.graphics.text.OtfConstants.GLYPH_TYPE_COMPOSITE_TTF = 16;
  66086. prezi.graphics.text.OtfConstants.GLYPH_TYPE_COMPOSITE_CFF = 17;
  66087. prezi.graphics.text.OtfConstants.COMMAND_MOVE_TO = 1;
  66088. prezi.graphics.text.OtfConstants.COMMAND_LINE_TO = 2;
  66089. prezi.graphics.text.OtfConstants.COMMAND_CURVE_TO = 3;
  66090. prezi.graphics.text.OtfConstants.COMMAND_CUBIC_CURVE_TO = 4;
  66091. prezi.graphics.text.backend.AbstractHarfBuzzFont.KEG_HEADER = [239,187,191,240,159,141,186,240,159,141,187,240,159,141,186,10];
  66092. prezi.graphics.text.backend.AbstractHarfBuzzFont.UCDN_SCRIPT_COMMON = 0;
  66093. prezi.graphics.text.backend.AbstractHarfBuzzFont.UCDN_SCRIPT_INHERITED = 40;
  66094. prezi.graphics.text.backend.FontManagerBackend.MAX_RETRY_COUNT = 10;
  66095. prezi.graphics.text.backend.HarfBuzzFontJs.COPY_BLOCK_SIZE = 32768;
  66096. prezi.graphics.text.backend.JsServer.instance = new prezi.graphics.text.backend.JsServer();
  66097. prezi.graphics.text.otf.CffDict.REAL_NIBBLES = ["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];
  66098. prezi.graphics.text.otf.OtfFont.USE_TYPO_METRICS = 128;
  66099. prezi.graphics.text.otf.OtfFont.TAG_CODE_SFNT = 65536;
  66100. prezi.graphics.text.otf.OtfFont.TAG_CODE_OTTO = 1330926671;
  66101. prezi.graphics.text.otf.OtfHeadTable.MAGIC_NUMBER = 1594834165;
  66102. prezi.graphics.text.otf.TtfGlyfTable.INDEX_TO_LOC_SHORT = 0;
  66103. prezi.graphics.text.otf.TtfGlyfTable.INDEX_TO_LOC_LONG = 1;
  66104. prezi.graphics.text.otf.TtfGlyfTable.GLYF_FLAG_ON_CURVE = 1;
  66105. prezi.graphics.text.otf.TtfGlyfTable.GLYF_FLAG_X_SHORT_VECTOR = 2;
  66106. prezi.graphics.text.otf.TtfGlyfTable.GLYF_FLAG_Y_SHORT_VECTOR = 4;
  66107. prezi.graphics.text.otf.TtfGlyfTable.GLYF_FLAG_REPEAT = 8;
  66108. prezi.graphics.text.otf.TtfGlyfTable.GLYF_FLAG_X_IS_SAME = 16;
  66109. prezi.graphics.text.otf.TtfGlyfTable.GLYF_FLAG_Y_IS_SAME = 32;
  66110. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_ARG_1_AND_2_ARE_WORDS = 1;
  66111. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_ARGS_ARE_XY_VALUES = 2;
  66112. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_ROUND_XY_TO_GRID = 4;
  66113. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_WE_HAVE_A_SCALE = 8;
  66114. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_MORE_COMPONENTS = 32;
  66115. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_WE_HAVE_AN_X_AND_Y_SCALE = 64;
  66116. prezi.graphics.text.otf.TtfGlyfTable.GLYF_COMP_FLAG_WE_HAVE_A_TWO_BY_TWO = 128;
  66117. prezi.net.HttpRequest.STATE_UNSENT = 0;
  66118. prezi.net.HttpRequest.STATE_OPENED = 1;
  66119. prezi.net.HttpRequest.STATE_HEADERS_RECEIVED = 2;
  66120. prezi.net.HttpRequest.STATE_LOADING = 3;
  66121. prezi.net.HttpRequest.STATE_DONE = 4;
  66122. prezi.net.HttpRequest.RESPONSE_TYPE_ARRAYBUFFER = "arraybuffer";
  66123. prezi.net.HttpRequest.RESPONSE_TYPE_JSON = "json";
  66124. prezi.net.HttpRequest.RESPONSE_TYPE_TEXT = "text";
  66125. function $hxExpose(src, path) {
  66126.     var o = typeof window != "undefined" ? window : exports;
  66127.     var parts = path.split(".");
  66128.     for(var ii = 0; ii < parts.length-1; ++ii) {
  66129.         var p = parts[ii];
  66130.         if(typeof o[p] == "undefined") o[p] = {};
  66131.         o = o[p];
  66132.     }
  66133.     o[parts[parts.length-1]] = src;
  66134. }
  66135. })();
  66136.