homm3-parsers
Version:
Collection of binary parsers able to parse various file formats related to Heroes of Might and Magic III
2 lines • 147 kB
JavaScript
var hommParsers=function(e){"use strict";var a,t,r,i;!function(e){e[e.int8=0]="int8",e[e.uint8=1]="uint8",e[e.int16=2]="int16",e[e.uint16=3]="uint16",e[e.int32=4]="int32",e[e.uint32=5]="uint32",e[e.float32=6]="float32",e[e.float64=7]="float64"}(a||(a={})),function(e){e[e.BE=0]="BE",e[e.LE=1]="LE"}(t||(t={})),function(e){e[e.ascii=0]="ascii",e[e.utf8=1]="utf8",e[e.utf16be=2]="utf16be",e[e.utf16le=3]="utf16le"}(r||(r={})),function(e){e[e.error=0]="error",e[e.warn=1]="warn",e[e.info=2]="info",e[e.verbose=3]="verbose",e[e.debug=4]="debug",e[e.silly=5]="silly"}(i||(i={}));const n={[a.int8]:{read:(e,a)=>e.getInt8(a),write:(e,a,t)=>e.setInt8(a,t),size:Int8Array.BYTES_PER_ELEMENT},[a.uint8]:{read:(e,a)=>e.getUint8(a),write:(e,a,t)=>e.setUint8(a,t),size:Uint8Array.BYTES_PER_ELEMENT},[a.int16]:{read:(e,a,t)=>e.getInt16(a,t),write:(e,a,t,r)=>e.setInt16(a,t,r),size:Int16Array.BYTES_PER_ELEMENT},[a.uint16]:{read:(e,a,t)=>e.getUint16(a,t),write:(e,a,t,r)=>e.setUint16(a,t,r),size:Uint16Array.BYTES_PER_ELEMENT},[a.int32]:{read:(e,a,t)=>e.getInt32(a,t),write:(e,a,t,r)=>e.setInt32(a,t,r),size:Int32Array.BYTES_PER_ELEMENT},[a.uint32]:{read:(e,a,t)=>e.getUint32(a,t),write:(e,a,t,r)=>e.setUint32(a,t,r),size:Uint32Array.BYTES_PER_ELEMENT},[a.float32]:{read:(e,a,t)=>e.getFloat32(a,t),write:(e,a,t,r)=>e.setFloat32(a,t,r),size:Float32Array.BYTES_PER_ELEMENT},[a.float64]:{read:(e,a,t)=>e.getFloat64(a,t),write:(e,a,t,r)=>e.setFloat64(a,t,r),size:Float64Array.BYTES_PER_ELEMENT}};class s extends Error{}class l extends s{}class o extends s{}const c=256;class p{constructor(e){if(this.cursor=0,this.bitBuffer=null,this.bitCursor=1,e){let a=e;if(ArrayBuffer.isView(e)&&(a=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)),!(a instanceof ArrayBuffer))throw new l("Source must be an instance of ArrayBuffer");this.content=a}else this.content=new ArrayBuffer(256);this.view=new DataView(this.content)}get eof(){return this.cursor>=this.content.byteLength}ensureSize(e){if(this.content.byteLength>=e)return;const a=2*this.content.byteLength,t=new ArrayBuffer(a);new Uint8Array(t).set(new Uint8Array(this.content)),this.content=t,this.view=new DataView(this.content)}finalize(){return this.flushBitBuffer(),this.content=this.content.slice(0,this.cursor),this.content}read(e,a=t.BE){const r=n[e];if(!r)throw new l(`Unknown type ${e}`);this.resetBitBuffer();const i=this.cursor;return this.cursor+=r.size,r.read(this.view,i,a===t.LE),r.read(this.view,i,a===t.LE)}write(e,a,r=t.BE){const i=n[e];if(!i)throw new l(`Unknown type ${e}`);this.flushBitBuffer(),this.ensureSize(this.cursor+i.size);const s=this.cursor;this.cursor+=i.size,i.write(this.view,s,a,r===t.LE)}readBit(){null===this.bitBuffer&&(this.bitBuffer=this.read(a.uint8));const e=this.bitBuffer&this.bitCursor;return this.bitCursor*=2,this.bitCursor===c&&(this.bitBuffer=null,this.bitCursor=1),e?1:0}writeBit(e){null==this.bitBuffer&&(this.bitBuffer=0),e&&(this.bitBuffer|=this.bitCursor),this.bitCursor*=2,this.bitCursor===c&&this.flushBitBuffer()}tell(){return this.cursor}seek(e){this.cursor=e}skip(e){this.cursor+=e}resetBitBuffer(){this.bitCursor=1,this.bitBuffer=null}flushBitBuffer(){if(null!=this.bitBuffer){const e=this.bitBuffer;this.bitBuffer=null,this.write(a.uint8,e)}this.bitCursor=1}}const d="_endian_",u="_logger_",h="_encoding_";class f{error(...e){this.log(i.error,...e)}warn(...e){this.log(i.warn,...e)}info(...e){this.log(i.info,...e)}debug(...e){this.log(i.debug,...e)}log(e,...a){switch(e){case i.error:console.error(...a);break;case i.warn:console.warn(...a);break;case i.info:console.info(...a);break;case i.verbose:console.log("[VERBOSE]",...a);break;case i.debug:console.log("[DEBUG]",...a);break;default:console.log(...a)}}}class b{constructor(e){this.data=new Map,this.parent=e,e||this.set(u,new f)}get(e){const[a,...t]=e.split(".");let r,i=!1;if(this.data.has(a)&&(r=this.data.get(a),i=!0),!i&&this.parent&&(r=this.parent.get(a)),!t.length)return r;let n=0;for(;null!=r&&n<t.length;)r=r[t[n]],n+=1;return r}set(e,a){const[t,...r]=e.split(".");if(r.length){let e=this.data.get(t)||{};const i=e;let n=0;for(;n<r.length-1;)e[r[n]]=e[r[n]]||{},e=e[r[n]],n+=1;e[r[n]]=a,this.data.set(t,i)}else this.data.set(e,a)}fill(e){for(const[a,t]of Object.entries(e))this.data.set(a,t)}toJSON(){const e=this.parent?this.parent.toJSON():{},a={};return this.data.forEach((e,t)=>{t!==u&&(a[t]=e)}),Object.assign(Object.assign({},e),a)}}function y(e){return new b(e)}function m(e){return"function"==typeof e?e:()=>e}function g(e,a){return a.get(e)}var T;!function(e){e[e.eq=0]="eq",e[e.neq=1]="neq",e[e.lt=2]="lt",e[e.lte=3]="lte",e[e.gt=4]="gt",e[e.gte=5]="gte"}(T||(T={}));const O={[T.eq]:(e,a)=>e===a,[T.neq]:(e,a)=>e!==a,[T.lt]:(e,a)=>e<a,[T.lte]:(e,a)=>e<=a,[T.gt]:(e,a)=>e>a,[T.gte]:(e,a)=>e>=a};function S(e){return function(a,t){return function(r){const i=m(a),n=m(t);return O[e](i(r),n(r))}}}const w=S(T.eq),k=S(T.neq),M=S(T.lt),C=S(T.lte),_=S(T.gt),A=S(T.gte);function v([e]){const a=g.bind(null,e);return a.property=e,a.eq=w.bind(null,a),a.neq=k.bind(null,a),a.lt=M.bind(null,a),a.lte=C.bind(null,a),a.gt=_.bind(null,a),a.gte=A.bind(null,a),a}class I{constructor(){this.name=null}named(e){return this.name=e,this}}function j(e,...a){const t=Object.assign(t=>{let r;return"string"==typeof t?r=t:Array.isArray(t)&&t.raw&&([r]=t),{name:e.name.toLowerCase(),create:()=>new e(...a).named(r)}},{create:()=>new e(...a)});return Object.defineProperty(t,"name",{value:e.name.toLowerCase()}),t}function H(e){if(e instanceof I)return e;if(e&&e.create)return e.create();throw new Error}class B extends I{constructor(e){super(),this.tag=H(e)}parse(e,a){const t=this.tag.parse(e,a);return this.decode(t,a)}pack(e,a,t){const r=this.encode(a,t);this.tag.pack(e,r,t)}}function R(e,a,t){return j(class extends B{constructor(){super(e)}decode(e,t){return a(e,t)}encode(e,a){return t(e,a)}})}class D extends I{parse(e,a){const t=a.get(d);return e.read(this.type,t)}pack(e,a,t){const r=t.get(d);return e.write(this.type,a,r)}}class E extends D{get type(){return a.uint8}}class P extends D{get type(){return a.uint16}}class G extends D{get type(){return a.uint32}}class L extends D{get type(){return a.float32}}class F extends D{get type(){return a.float64}}const x=j(class extends D{get type(){return a.int8}}),W=j(E),z=j(class extends D{get type(){return a.int16}}),V=j(P),N=j(class extends D{get type(){return a.int32}}),U=j(G),K=(j(L),j(F),j(class extends E{})),Q=(j(class extends P{}),j(class extends G{}),j(class extends L{}),j(class extends F{}),R(j(class extends I{parse(e,r){const i=r.get(d),n=e.read(a.uint8),s=e.read(a.uint8),l=e.read(a.uint8);let o;return i===t.LE?(o=l<<16,o|=s<<8,o|=n):(o=n<<16,o|=s<<8,o|=l),o}pack(e,r,i){const n=(16711680&r)>>>16,s=(65280&r)>>>8,l=255&r;i.get(d)===t.LE?(e.write(a.uint8,l),e.write(a.uint8,s),e.write(a.uint8,n)):(e.write(a.uint8,n),e.write(a.uint8,s),e.write(a.uint8,l))}}),e=>8388608&e?-1*(16777215-e+1):e,e=>e>=0?e:16777215+e+1),{[r.ascii]:{encode:e=>e.split("").map(e=>e.charCodeAt(0)),decode:e=>String.fromCharCode(...e)},[r.utf8]:{encode:e=>{const a=[];for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);r<128?a.push(r):r<2048?a.push(r>>6|192,63&r|128):55296==(64512&r)&&t+1<e.length&&56320==(64512&e.charCodeAt(t+1))?(r=65536+((1023&r)<<10)+(1023&e.charCodeAt(++t)),a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)):a.push(r>>12|224,r>>6&63|128,63&r|128)}return a},decode:e=>{let a="",t=0;for(;t<e.length;){const r=e[t++];if(r<128)a+=String.fromCharCode(r);else if(r>191&&r<224){const i=e[t++];a+=String.fromCharCode((31&r)<<6|63&i)}else if(r>239&&r<365){const i=((7&r)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536;a+=String.fromCharCode(55296+(i>>10))+String.fromCharCode(56320+(1023&i))}else{const i=e[t++],n=e[t++];a+=String.fromCharCode((15&r)<<12|(63&i)<<6|63&n)}}return a}},[r.utf16be]:{encode:e=>{const a=e.split("").map(e=>e.charCodeAt(0)),t=new ArrayBuffer(2*a.length),r=new DataView(t);for(const[e,t]of a.entries())r.setUint16(2*e,t);return[...new Uint8Array(r.buffer)]},decode:e=>{const a=new Uint8Array(e).buffer,t=new DataView(a),r=[];for(let a=0;a<e.length;a+=2)r.push(t.getUint16(a));return String.fromCharCode(...r)}},[r.utf16le]:{encode:e=>{const a=e.split("").map(e=>e.charCodeAt(0)),t=new ArrayBuffer(2*a.length),r=new DataView(t);for(const[e,t]of a.entries())r.setUint16(2*e,t,!0);return[...new Uint8Array(r.buffer)]},decode:e=>{const a=new Uint8Array(e).buffer,t=new DataView(a),r=[];for(let a=0;a<e.length;a+=2)r.push(t.getUint16(a,!0));return String.fromCharCode(...r)}}});class Z extends B{constructor(e,a){super(e),this.encoding=a}getEncoding(e){return this.encoding?this.encoding:e.get(h)||r.ascii}decode(e,a){const t=this.getEncoding(a);return(0,Q[t].decode)(e)}encode(e,a){const t=this.getEncoding(a);return(0,Q[t].encode)(e)}}function q(e,a){return j(Z,e,a)}class Y extends I{constructor(e){super(),this.length=m(e)}parse(e,t){let r=this.length(t);const i=[];for(;r>0;)i.push(e.read(a.uint8)),r-=1;return i}pack(e,t,r){const i=this.length(r);let n=0;for(;n<i;)e.write(a.uint8,t[n]||0),n+=1}}class J extends I{constructor(e){super(),this.lengthTag=H(e)}parse(e,t){let r=this.lengthTag.parse(e,t);const i=[];for(;r>0;)i.push(e.read(a.uint8)),r-=1;return i}pack(e,t,r){this.lengthTag.pack(e,t.length,r);for(const r of t)e.write(a.uint8,r)}}const X=j(class extends I{parse(e){const t=[];for(;!e.eof;){const r=e.read(a.uint8);if(0===r)break;t.push(r)}return t}pack(e,t){for(const r of t)e.write(a.uint8,r);e.write(a.uint8,0)}});j(class extends I{parse(e){const t=[];for(;!e.eof;){const r=e.read(a.uint8);t.push(r)}return t}pack(e,t){for(const r of t)e.write(a.uint8,r)}});function $(e=r.ascii){return q(X,e)}class ee extends B{constructor(e,a){super(e),this.encodeMap=new Map,this.decodeMap=new Map;for(const[e,t]of Object.entries(a))this.encodeMap.set(e,t),this.decodeMap.set(t,e)}decode(e){const a=this.decodeMap.get(e);return null!=a?a:""}encode(e){return this.encodeMap.get(e)||0}}function ae(e,a){return j(ee,e,a)}function te(e){return Array.from({length:e},(e,a)=>a)}class re extends I{constructor(e,a){super(),this.tag=H(e),this.size=m(a)}parse(e,a){const t=this.size(a),r=y(a),i=[];for(const a of te(t)){r.set("index",a);const t=this.tag.parse(e,r);i.push(t)}return i}pack(e,a,t){const r=this.size(t),i=y(t);for(const t of te(r)){i.set("index",t);const r=a[t];this.tag.pack(e,r,i)}}}class ie extends I{constructor(e){super(),this.tag=H(e)}parse(e,a){const t=y(a),r=[];let i=0;for(;!e.eof;){t.set("index",i);try{const a=this.tag.parse(e,t);r.push(a)}catch(e){break}i+=1}return r}pack(e,a,t){const r=y(t);let i=0;for(const t of a)r.set("index",i),this.tag.pack(e,t,r),i+=1}}function ne(e,a){return j(re,e,a)}function se(e){return j(ie,e)}function le(e){return ne(K,e)}se(K);class oe extends I{constructor(...e){super(),this.subTags=e.map(H)}parse(e,a){const t=y(a),r={};for(const a of this.subTags){const i=a.parse(e,t);a.name&&(r[a.name]=i,t.set(a.name,i))}return r}pack(e,a,t){const r=y(t);for(const t of this.subTags)if(t.name){const i=a[t.name];r.set(t.name,i),t.pack(e,i,r)}else t.pack(e,null,r)}}function ce(...e){return j(oe,...e)}class pe extends I{constructor(e,a){super(),this.subTag=H(e),this.value=a}checkValue(e){return Array.isArray(this.value)?!!Array.isArray(e)&&e.length===this.value.length&&e.every((e,a)=>e===this.value[a]):e===this.value}parse(e,a){const t=this.subTag.parse(e,a);if(!this.checkValue(t))throw new o(`expected ${this.value} but got ${t}`);return t}pack(e,a,t){this.subTag.pack(e,this.value,t)}}const de=j(class extends I{parse(){return null}pack(){}});class ue extends I{constructor(e,a,t){super(),this.predicate=m(e),this.whenTag=H(a),this.elseTag=H(t)}parse(e,a){return this.predicate(a)?this.whenTag.parse(e,a):this.elseTag.parse(e,a)}pack(e,a,t){this.predicate(t)&&this.whenTag.pack(e,a,t),this.elseTag&&this.elseTag.pack(e,a,t)}}function he(e,a,t=de){return j(ue,e,a,t)}class fe extends I{constructor(e,a){super(),this.offset=m(e),this.subTag=H(a)}parse(e,a){const t=this.offset(a),r=e.tell();e.seek(t);const i=this.subTag.parse(e,a);return e.seek(r),i}pack(e,a,t){const r=this.offset(t),i=e.tell();e.seek(r),this.subTag.pack(e,a,t),e.seek(i)}}function be(e,a){return j(fe,e,a)}class ye extends I{constructor(e){super(),this.offset=m(e)}parse(e,a){const t=this.offset(a);return e.seek(t),null}pack(e,a,t){this.parse(e,t)}}function me(e){return j(ye,e)}class ge extends I{constructor(e){super(),this.offset=m(e)}parse(e,a){const t=this.offset(a);return e.skip(t),null}pack(e,a,t){this.parse(e,t)}}function Te(e){return j(ge,e)}class Oe extends I{constructor(e,a,t){super(),this.selector=m(e),this.cases=a,this.defaultTag=t}parse(e,a){const t=this.selector(a);let r=this.cases[t];return!r&&this.defaultTag&&(r=this.defaultTag),r?(r=H(r),r.parse(e,a)):null}pack(e,a,t){const r=this.selector(t);let i=this.cases[r];!i&&this.defaultTag&&(i=this.defaultTag),i&&(i=H(i),i.pack(e,a,t))}}function Se(e,a,t=de){return j(Oe,e,a,t)}class we extends I{constructor(e){super(),this.compute=m(e)}parse(e,a){const t=this.compute(a);return this.name&&a.set(this.name,t),t}pack(e,a,t){this.parse(e,t)}}function ke(e){return j(we,e)}class Me extends I{constructor(e,a){super(),this.subTag=H(e),this.predicate=a}parse(e,a){const t=y(a),r=[];let i=0;for(;!e.eof;){t.set("index",i);try{const n=e.tell(),s=this.subTag.parse(e,t);if(!this.predicate(a,s,i,r)){e.seek(n);break}r.push(s)}catch(e){break}i+=1}return r}pack(e,a,t){const r=y(t),i=[];let n=0;for(const s of a){if(r.set("index",n),!this.predicate(t,s,n,i))break;this.subTag.pack(e,s,r),i.push(s),n+=1}}}class Ce extends Me{}function _e(e,a){return j(Ce,e,a)}class Ae extends I{constructor(e){super(),this.endian=m(e)}parse(e,a){const t=this.endian(a);return a.set(d,t),t}pack(e,a,t){this.parse(e,t)}}function ve(e){return j(Ae,e)}const Ie=R(K,e=>0!==e,e=>e?1:0);R(j(class extends I{parse(e){return e.readBit()}pack(e,a){e.writeBit(a)}}),e=>0!==e,e=>e?1:0),j(class extends I{parse(e){const t=[];for(;;){const r=e.read(a.uint8);if(t.push(127&r),!(128&r))break}let r=0;for(const e of t.reverse())r=r<<7|e;return r}pack(e,t){if(t<0)throw new TypeError(`varint cannot build from negative number: ${t}`);let r=t;for(;r>127;)e.write(a.uint8,128|127&r),r>>=7;e.write(a.uint8,r)}});function je(e,a,t={}){const r=new p(a),i=function(e){const a=y();return e&&("function"==typeof e.toJSON?a.fill(e.toJSON()):a.fill(e)),a}(t);return H(e).parse(r,i)}var He,Be=(function(e,a){var t="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function r(e,a){return Object.prototype.hasOwnProperty.call(e,a)}a.assign=function(e){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var t=a.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(var i in t)r(t,i)&&(e[i]=t[i])}}return e},a.shrinkBuf=function(e,a){return e.length===a?e:e.subarray?e.subarray(0,a):(e.length=a,e)};var i={arraySet:function(e,a,t,r,i){if(a.subarray&&e.subarray)e.set(a.subarray(t,t+r),i);else for(var n=0;n<r;n++)e[i+n]=a[t+n]},flattenChunks:function(e){var a,t,r,i,n,s;for(r=0,a=0,t=e.length;a<t;a++)r+=e[a].length;for(s=new Uint8Array(r),i=0,a=0,t=e.length;a<t;a++)n=e[a],s.set(n,i),i+=n.length;return s}},n={arraySet:function(e,a,t,r,i){for(var n=0;n<r;n++)e[i+n]=a[t+n]},flattenChunks:function(e){return[].concat.apply([],e)}};a.setTyped=function(e){e?(a.Buf8=Uint8Array,a.Buf16=Uint16Array,a.Buf32=Int32Array,a.assign(a,i)):(a.Buf8=Array,a.Buf16=Array,a.Buf32=Array,a.assign(a,n))},a.setTyped(t)}(He={exports:{}},He.exports),He.exports),Re=(Be.assign,Be.shrinkBuf,Be.setTyped,Be.Buf8,Be.Buf16,Be.Buf32,4),De=0,Ee=1,Pe=2;function Ge(e){for(var a=e.length;--a>=0;)e[a]=0}var Le=0,Fe=1,xe=2,We=29,ze=256,Ve=ze+1+We,Ne=30,Ue=19,Ke=2*Ve+1,Qe=15,Ze=16,qe=7,Ye=256,Je=16,Xe=17,$e=18,ea=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ta=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ra=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ia=new Array(2*(Ve+2));Ge(ia);var na=new Array(2*Ne);Ge(na);var sa=new Array(512);Ge(sa);var la=new Array(256);Ge(la);var oa=new Array(We);Ge(oa);var ca,pa,da,ua=new Array(Ne);function ha(e,a,t,r,i){this.static_tree=e,this.extra_bits=a,this.extra_base=t,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}function fa(e,a){this.dyn_tree=e,this.max_code=0,this.stat_desc=a}function ba(e){return e<256?sa[e]:sa[256+(e>>>7)]}function ya(e,a){e.pending_buf[e.pending++]=255&a,e.pending_buf[e.pending++]=a>>>8&255}function ma(e,a,t){e.bi_valid>Ze-t?(e.bi_buf|=a<<e.bi_valid&65535,ya(e,e.bi_buf),e.bi_buf=a>>Ze-e.bi_valid,e.bi_valid+=t-Ze):(e.bi_buf|=a<<e.bi_valid&65535,e.bi_valid+=t)}function ga(e,a,t){ma(e,t[2*a],t[2*a+1])}function Ta(e,a){var t=0;do{t|=1&e,e>>>=1,t<<=1}while(--a>0);return t>>>1}function Oa(e,a,t){var r,i,n=new Array(Qe+1),s=0;for(r=1;r<=Qe;r++)n[r]=s=s+t[r-1]<<1;for(i=0;i<=a;i++){var l=e[2*i+1];0!==l&&(e[2*i]=Ta(n[l]++,l))}}function Sa(e){var a;for(a=0;a<Ve;a++)e.dyn_ltree[2*a]=0;for(a=0;a<Ne;a++)e.dyn_dtree[2*a]=0;for(a=0;a<Ue;a++)e.bl_tree[2*a]=0;e.dyn_ltree[2*Ye]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function wa(e){e.bi_valid>8?ya(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function ka(e,a,t,r){var i=2*a,n=2*t;return e[i]<e[n]||e[i]===e[n]&&r[a]<=r[t]}function Ma(e,a,t){for(var r=e.heap[t],i=t<<1;i<=e.heap_len&&(i<e.heap_len&&ka(a,e.heap[i+1],e.heap[i],e.depth)&&i++,!ka(a,r,e.heap[i],e.depth));)e.heap[t]=e.heap[i],t=i,i<<=1;e.heap[t]=r}function Ca(e,a,t){var r,i,n,s,l=0;if(0!==e.last_lit)do{r=e.pending_buf[e.d_buf+2*l]<<8|e.pending_buf[e.d_buf+2*l+1],i=e.pending_buf[e.l_buf+l],l++,0===r?ga(e,i,a):(ga(e,(n=la[i])+ze+1,a),0!==(s=ea[n])&&ma(e,i-=oa[n],s),ga(e,n=ba(--r),t),0!==(s=aa[n])&&ma(e,r-=ua[n],s))}while(l<e.last_lit);ga(e,Ye,a)}function _a(e,a){var t,r,i,n=a.dyn_tree,s=a.stat_desc.static_tree,l=a.stat_desc.has_stree,o=a.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=Ke,t=0;t<o;t++)0!==n[2*t]?(e.heap[++e.heap_len]=c=t,e.depth[t]=0):n[2*t+1]=0;for(;e.heap_len<2;)n[2*(i=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[i]=0,e.opt_len--,l&&(e.static_len-=s[2*i+1]);for(a.max_code=c,t=e.heap_len>>1;t>=1;t--)Ma(e,n,t);i=o;do{t=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ma(e,n,1),r=e.heap[1],e.heap[--e.heap_max]=t,e.heap[--e.heap_max]=r,n[2*i]=n[2*t]+n[2*r],e.depth[i]=(e.depth[t]>=e.depth[r]?e.depth[t]:e.depth[r])+1,n[2*t+1]=n[2*r+1]=i,e.heap[1]=i++,Ma(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,a){var t,r,i,n,s,l,o=a.dyn_tree,c=a.max_code,p=a.stat_desc.static_tree,d=a.stat_desc.has_stree,u=a.stat_desc.extra_bits,h=a.stat_desc.extra_base,f=a.stat_desc.max_length,b=0;for(n=0;n<=Qe;n++)e.bl_count[n]=0;for(o[2*e.heap[e.heap_max]+1]=0,t=e.heap_max+1;t<Ke;t++)(n=o[2*o[2*(r=e.heap[t])+1]+1]+1)>f&&(n=f,b++),o[2*r+1]=n,r>c||(e.bl_count[n]++,s=0,r>=h&&(s=u[r-h]),l=o[2*r],e.opt_len+=l*(n+s),d&&(e.static_len+=l*(p[2*r+1]+s)));if(0!==b){do{for(n=f-1;0===e.bl_count[n];)n--;e.bl_count[n]--,e.bl_count[n+1]+=2,e.bl_count[f]--,b-=2}while(b>0);for(n=f;0!==n;n--)for(r=e.bl_count[n];0!==r;)(i=e.heap[--t])>c||(o[2*i+1]!==n&&(e.opt_len+=(n-o[2*i+1])*o[2*i],o[2*i+1]=n),r--)}}(e,a),Oa(n,c,e.bl_count)}function Aa(e,a,t){var r,i,n=-1,s=a[1],l=0,o=7,c=4;for(0===s&&(o=138,c=3),a[2*(t+1)+1]=65535,r=0;r<=t;r++)i=s,s=a[2*(r+1)+1],++l<o&&i===s||(l<c?e.bl_tree[2*i]+=l:0!==i?(i!==n&&e.bl_tree[2*i]++,e.bl_tree[2*Je]++):l<=10?e.bl_tree[2*Xe]++:e.bl_tree[2*$e]++,l=0,n=i,0===s?(o=138,c=3):i===s?(o=6,c=3):(o=7,c=4))}function va(e,a,t){var r,i,n=-1,s=a[1],l=0,o=7,c=4;for(0===s&&(o=138,c=3),r=0;r<=t;r++)if(i=s,s=a[2*(r+1)+1],!(++l<o&&i===s)){if(l<c)do{ga(e,i,e.bl_tree)}while(0!=--l);else 0!==i?(i!==n&&(ga(e,i,e.bl_tree),l--),ga(e,Je,e.bl_tree),ma(e,l-3,2)):l<=10?(ga(e,Xe,e.bl_tree),ma(e,l-3,3)):(ga(e,$e,e.bl_tree),ma(e,l-11,7));l=0,n=i,0===s?(o=138,c=3):i===s?(o=6,c=3):(o=7,c=4)}}Ge(ua);var Ia=!1;function ja(e,a,t,r){ma(e,(Le<<1)+(r?1:0),3),function(e,a,t,r){wa(e),r&&(ya(e,t),ya(e,~t)),Be.arraySet(e.pending_buf,e.window,a,t,e.pending),e.pending+=t}(e,a,t,!0)}var Ha={_tr_init:function(e){Ia||(!function(){var e,a,t,r,i,n=new Array(Qe+1);for(t=0,r=0;r<We-1;r++)for(oa[r]=t,e=0;e<1<<ea[r];e++)la[t++]=r;for(la[t-1]=r,i=0,r=0;r<16;r++)for(ua[r]=i,e=0;e<1<<aa[r];e++)sa[i++]=r;for(i>>=7;r<Ne;r++)for(ua[r]=i<<7,e=0;e<1<<aa[r]-7;e++)sa[256+i++]=r;for(a=0;a<=Qe;a++)n[a]=0;for(e=0;e<=143;)ia[2*e+1]=8,e++,n[8]++;for(;e<=255;)ia[2*e+1]=9,e++,n[9]++;for(;e<=279;)ia[2*e+1]=7,e++,n[7]++;for(;e<=287;)ia[2*e+1]=8,e++,n[8]++;for(Oa(ia,Ve+1,n),e=0;e<Ne;e++)na[2*e+1]=5,na[2*e]=Ta(e,5);ca=new ha(ia,ea,ze+1,Ve,Qe),pa=new ha(na,aa,0,Ne,Qe),da=new ha(new Array(0),ta,0,Ue,qe)}(),Ia=!0),e.l_desc=new fa(e.dyn_ltree,ca),e.d_desc=new fa(e.dyn_dtree,pa),e.bl_desc=new fa(e.bl_tree,da),e.bi_buf=0,e.bi_valid=0,Sa(e)},_tr_stored_block:ja,_tr_flush_block:function(e,a,t,r){var i,n,s=0;e.level>0?(e.strm.data_type===Pe&&(e.strm.data_type=function(e){var a,t=4093624447;for(a=0;a<=31;a++,t>>>=1)if(1&t&&0!==e.dyn_ltree[2*a])return De;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return Ee;for(a=32;a<ze;a++)if(0!==e.dyn_ltree[2*a])return Ee;return De}(e)),_a(e,e.l_desc),_a(e,e.d_desc),s=function(e){var a;for(Aa(e,e.dyn_ltree,e.l_desc.max_code),Aa(e,e.dyn_dtree,e.d_desc.max_code),_a(e,e.bl_desc),a=Ue-1;a>=3&&0===e.bl_tree[2*ra[a]+1];a--);return e.opt_len+=3*(a+1)+5+5+4,a}(e),i=e.opt_len+3+7>>>3,(n=e.static_len+3+7>>>3)<=i&&(i=n)):i=n=t+5,t+4<=i&&-1!==a?ja(e,a,t,r):e.strategy===Re||n===i?(ma(e,(Fe<<1)+(r?1:0),3),Ca(e,ia,na)):(ma(e,(xe<<1)+(r?1:0),3),function(e,a,t,r){var i;for(ma(e,a-257,5),ma(e,t-1,5),ma(e,r-4,4),i=0;i<r;i++)ma(e,e.bl_tree[2*ra[i]+1],3);va(e,e.dyn_ltree,a-1),va(e,e.dyn_dtree,t-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Ca(e,e.dyn_ltree,e.dyn_dtree)),Sa(e),r&&wa(e)},_tr_tally:function(e,a,t){return e.pending_buf[e.d_buf+2*e.last_lit]=a>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&a,e.pending_buf[e.l_buf+e.last_lit]=255&t,e.last_lit++,0===a?e.dyn_ltree[2*t]++:(e.matches++,a--,e.dyn_ltree[2*(la[t]+ze+1)]++,e.dyn_dtree[2*ba(a)]++),e.last_lit===e.lit_bufsize-1},_tr_align:function(e){ma(e,Fe<<1,3),ga(e,Ye,ia),function(e){16===e.bi_valid?(ya(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}};var Ba=function(e,a,t,r){for(var i=65535&e|0,n=e>>>16&65535|0,s=0;0!==t;){t-=s=t>2e3?2e3:t;do{n=n+(i=i+a[r++]|0)|0}while(--s);i%=65521,n%=65521}return i|n<<16|0};var Ra=function(){for(var e,a=[],t=0;t<256;t++){e=t;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;a[t]=e}return a}();var Da,Ea=function(e,a,t,r){var i=Ra,n=r+t;e^=-1;for(var s=r;s<n;s++)e=e>>>8^i[255&(e^a[s])];return-1^e},Pa={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Ga=0,La=1,Fa=3,xa=4,Wa=5,za=0,Va=1,Na=-2,Ua=-3,Ka=-5,Qa=-1,Za=1,qa=2,Ya=3,Ja=4,Xa=0,$a=2,et=8,at=9,tt=15,rt=8,it=286,nt=30,st=19,lt=2*it+1,ot=15,ct=3,pt=258,dt=pt+ct+1,ut=32,ht=42,ft=69,bt=73,yt=91,mt=103,gt=113,Tt=666,Ot=1,St=2,wt=3,kt=4,Mt=3;function Ct(e,a){return e.msg=Pa[a],a}function _t(e){return(e<<1)-(e>4?9:0)}function At(e){for(var a=e.length;--a>=0;)e[a]=0}function vt(e){var a=e.state,t=a.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(Be.arraySet(e.output,a.pending_buf,a.pending_out,t,e.next_out),e.next_out+=t,a.pending_out+=t,e.total_out+=t,e.avail_out-=t,a.pending-=t,0===a.pending&&(a.pending_out=0))}function It(e,a){Ha._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,a),e.block_start=e.strstart,vt(e.strm)}function jt(e,a){e.pending_buf[e.pending++]=a}function Ht(e,a){e.pending_buf[e.pending++]=a>>>8&255,e.pending_buf[e.pending++]=255&a}function Bt(e,a){var t,r,i=e.max_chain_length,n=e.strstart,s=e.prev_length,l=e.nice_match,o=e.strstart>e.w_size-dt?e.strstart-(e.w_size-dt):0,c=e.window,p=e.w_mask,d=e.prev,u=e.strstart+pt,h=c[n+s-1],f=c[n+s];e.prev_length>=e.good_match&&(i>>=2),l>e.lookahead&&(l=e.lookahead);do{if(c[(t=a)+s]===f&&c[t+s-1]===h&&c[t]===c[n]&&c[++t]===c[n+1]){n+=2,t++;do{}while(c[++n]===c[++t]&&c[++n]===c[++t]&&c[++n]===c[++t]&&c[++n]===c[++t]&&c[++n]===c[++t]&&c[++n]===c[++t]&&c[++n]===c[++t]&&c[++n]===c[++t]&&n<u);if(r=pt-(u-n),n=u-pt,r>s){if(e.match_start=a,s=r,r>=l)break;h=c[n+s-1],f=c[n+s]}}}while((a=d[a&p])>o&&0!=--i);return s<=e.lookahead?s:e.lookahead}function Rt(e){var a,t,r,i,n,s,l,o,c,p,d=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=d+(d-dt)){Be.arraySet(e.window,e.window,d,d,0),e.match_start-=d,e.strstart-=d,e.block_start-=d,a=t=e.hash_size;do{r=e.head[--a],e.head[a]=r>=d?r-d:0}while(--t);a=t=d;do{r=e.prev[--a],e.prev[a]=r>=d?r-d:0}while(--t);i+=d}if(0===e.strm.avail_in)break;if(s=e.strm,l=e.window,o=e.strstart+e.lookahead,c=i,p=void 0,(p=s.avail_in)>c&&(p=c),t=0===p?0:(s.avail_in-=p,Be.arraySet(l,s.input,s.next_in,p,o),1===s.state.wrap?s.adler=Ba(s.adler,l,p,o):2===s.state.wrap&&(s.adler=Ea(s.adler,l,p,o)),s.next_in+=p,s.total_in+=p,p),e.lookahead+=t,e.lookahead+e.insert>=ct)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=(e.ins_h<<e.hash_shift^e.window[n+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[n+ct-1])&e.hash_mask,e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<ct)););}while(e.lookahead<dt&&0!==e.strm.avail_in)}function Dt(e,a){for(var t,r;;){if(e.lookahead<dt){if(Rt(e),e.lookahead<dt&&a===Ga)return Ot;if(0===e.lookahead)break}if(t=0,e.lookahead>=ct&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ct-1])&e.hash_mask,t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==t&&e.strstart-t<=e.w_size-dt&&(e.match_length=Bt(e,t)),e.match_length>=ct)if(r=Ha._tr_tally(e,e.strstart-e.match_start,e.match_length-ct),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=ct){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ct-1])&e.hash_mask,t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=Ha._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(It(e,!1),0===e.strm.avail_out))return Ot}return e.insert=e.strstart<ct-1?e.strstart:ct-1,a===xa?(It(e,!0),0===e.strm.avail_out?wt:kt):e.last_lit&&(It(e,!1),0===e.strm.avail_out)?Ot:St}function Et(e,a){for(var t,r,i;;){if(e.lookahead<dt){if(Rt(e),e.lookahead<dt&&a===Ga)return Ot;if(0===e.lookahead)break}if(t=0,e.lookahead>=ct&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ct-1])&e.hash_mask,t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=ct-1,0!==t&&e.prev_length<e.max_lazy_match&&e.strstart-t<=e.w_size-dt&&(e.match_length=Bt(e,t),e.match_length<=5&&(e.strategy===Za||e.match_length===ct&&e.strstart-e.match_start>4096)&&(e.match_length=ct-1)),e.prev_length>=ct&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-ct,r=Ha._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-ct),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+ct-1])&e.hash_mask,t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=ct-1,e.strstart++,r&&(It(e,!1),0===e.strm.avail_out))return Ot}else if(e.match_available){if((r=Ha._tr_tally(e,0,e.window[e.strstart-1]))&&It(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return Ot}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Ha._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<ct-1?e.strstart:ct-1,a===xa?(It(e,!0),0===e.strm.avail_out?wt:kt):e.last_lit&&(It(e,!1),0===e.strm.avail_out)?Ot:St}function Pt(e,a,t,r,i){this.good_length=e,this.max_lazy=a,this.nice_length=t,this.max_chain=r,this.func=i}function Gt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=et,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Be.Buf16(2*lt),this.dyn_dtree=new Be.Buf16(2*(2*nt+1)),this.bl_tree=new Be.Buf16(2*(2*st+1)),At(this.dyn_ltree),At(this.dyn_dtree),At(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Be.Buf16(ot+1),this.heap=new Be.Buf16(2*it+1),At(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Be.Buf16(2*it+1),At(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Lt(e){var a;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=$a,(a=e.state).pending=0,a.pending_out=0,a.wrap<0&&(a.wrap=-a.wrap),a.status=a.wrap?ht:gt,e.adler=2===a.wrap?0:1,a.last_flush=Ga,Ha._tr_init(a),za):Ct(e,Na)}function Ft(e){var a=Lt(e);return a===za&&function(e){e.window_size=2*e.w_size,At(e.head),e.max_lazy_match=Da[e.level].max_lazy,e.good_match=Da[e.level].good_length,e.nice_match=Da[e.level].nice_length,e.max_chain_length=Da[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=ct-1,e.match_available=0,e.ins_h=0}(e.state),a}function xt(e,a,t,r,i,n){if(!e)return Na;var s=1;if(a===Qa&&(a=6),r<0?(s=0,r=-r):r>15&&(s=2,r-=16),i<1||i>at||t!==et||r<8||r>15||a<0||a>9||n<0||n>Ja)return Ct(e,Na);8===r&&(r=9);var l=new Gt;return e.state=l,l.strm=e,l.wrap=s,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=i+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+ct-1)/ct),l.window=new Be.Buf8(2*l.w_size),l.head=new Be.Buf16(l.hash_size),l.prev=new Be.Buf16(l.w_size),l.lit_bufsize=1<<i+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new Be.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=a,l.strategy=n,l.method=t,Ft(e)}Da=[new Pt(0,0,0,0,(function(e,a){var t=65535;for(t>e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Rt(e),0===e.lookahead&&a===Ga)return Ot;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+t;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,It(e,!1),0===e.strm.avail_out))return Ot;if(e.strstart-e.block_start>=e.w_size-dt&&(It(e,!1),0===e.strm.avail_out))return Ot}return e.insert=0,a===xa?(It(e,!0),0===e.strm.avail_out?wt:kt):(e.strstart>e.block_start&&(It(e,!1),e.strm.avail_out),Ot)})),new Pt(4,4,8,4,Dt),new Pt(4,5,16,8,Dt),new Pt(4,6,32,32,Dt),new Pt(4,4,16,16,Et),new Pt(8,16,32,32,Et),new Pt(8,16,128,128,Et),new Pt(8,32,128,256,Et),new Pt(32,128,258,1024,Et),new Pt(32,258,258,4096,Et)];var Wt={deflateInit:function(e,a){return xt(e,a,et,tt,rt,Xa)},deflateInit2:xt,deflateReset:Ft,deflateResetKeep:Lt,deflateSetHeader:function(e,a){return e&&e.state?2!==e.state.wrap?Na:(e.state.gzhead=a,za):Na},deflate:function(e,a){var t,r,i,n;if(!e||!e.state||a>Wa||a<0)return e?Ct(e,Na):Na;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===Tt&&a!==xa)return Ct(e,0===e.avail_out?Ka:Na);if(r.strm=e,t=r.last_flush,r.last_flush=a,r.status===ht)if(2===r.wrap)e.adler=0,jt(r,31),jt(r,139),jt(r,8),r.gzhead?(jt(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),jt(r,255&r.gzhead.time),jt(r,r.gzhead.time>>8&255),jt(r,r.gzhead.time>>16&255),jt(r,r.gzhead.time>>24&255),jt(r,9===r.level?2:r.strategy>=qa||r.level<2?4:0),jt(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(jt(r,255&r.gzhead.extra.length),jt(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Ea(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=ft):(jt(r,0),jt(r,0),jt(r,0),jt(r,0),jt(r,0),jt(r,9===r.level?2:r.strategy>=qa||r.level<2?4:0),jt(r,Mt),r.status=gt);else{var s=et+(r.w_bits-8<<4)<<8;s|=(r.strategy>=qa||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(s|=ut),s+=31-s%31,r.status=gt,Ht(r,s),0!==r.strstart&&(Ht(r,e.adler>>>16),Ht(r,65535&e.adler)),e.adler=1}if(r.status===ft)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(e.adler=Ea(e.adler,r.pending_buf,r.pending-i,i)),vt(e),i=r.pending,r.pending!==r.pending_buf_size));)jt(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Ea(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=bt)}else r.status=bt;if(r.status===bt)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Ea(e.adler,r.pending_buf,r.pending-i,i)),vt(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0,jt(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(e.adler=Ea(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.gzindex=0,r.status=yt)}else r.status=yt;if(r.status===yt)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Ea(e.adler,r.pending_buf,r.pending-i,i)),vt(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0,jt(r,n)}while(0!==n);r.gzhead.hcrc&&r.pending>i&&(e.adler=Ea(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.status=mt)}else r.status=mt;if(r.status===mt&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&vt(e),r.pending+2<=r.pending_buf_size&&(jt(r,255&e.adler),jt(r,e.adler>>8&255),e.adler=0,r.status=gt)):r.status=gt),0!==r.pending){if(vt(e),0===e.avail_out)return r.last_flush=-1,za}else if(0===e.avail_in&&_t(a)<=_t(t)&&a!==xa)return Ct(e,Ka);if(r.status===Tt&&0!==e.avail_in)return Ct(e,Ka);if(0!==e.avail_in||0!==r.lookahead||a!==Ga&&r.status!==Tt){var l=r.strategy===qa?function(e,a){for(var t;;){if(0===e.lookahead&&(Rt(e),0===e.lookahead)){if(a===Ga)return Ot;break}if(e.match_length=0,t=Ha._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(It(e,!1),0===e.strm.avail_out))return Ot}return e.insert=0,a===xa?(It(e,!0),0===e.strm.avail_out?wt:kt):e.last_lit&&(It(e,!1),0===e.strm.avail_out)?Ot:St}(r,a):r.strategy===Ya?function(e,a){for(var t,r,i,n,s=e.window;;){if(e.lookahead<=pt){if(Rt(e),e.lookahead<=pt&&a===Ga)return Ot;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=ct&&e.strstart>0&&(r=s[i=e.strstart-1])===s[++i]&&r===s[++i]&&r===s[++i]){n=e.strstart+pt;do{}while(r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&r===s[++i]&&i<n);e.match_length=pt-(n-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=ct?(t=Ha._tr_tally(e,1,e.match_length-ct),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=Ha._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(It(e,!1),0===e.strm.avail_out))return Ot}return e.insert=0,a===xa?(It(e,!0),0===e.strm.avail_out?wt:kt):e.last_lit&&(It(e,!1),0===e.strm.avail_out)?Ot:St}(r,a):Da[r.level].func(r,a);if(l!==wt&&l!==kt||(r.status=Tt),l===Ot||l===wt)return 0===e.avail_out&&(r.last_flush=-1),za;if(l===St&&(a===La?Ha._tr_align(r):a!==Wa&&(Ha._tr_stored_block(r,0,0,!1),a===Fa&&(At(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),vt(e),0===e.avail_out))return r.last_flush=-1,za}return a!==xa?za:r.wrap<=0?Va:(2===r.wrap?(jt(r,255&e.adler),jt(r,e.adler>>8&255),jt(r,e.adler>>16&255),jt(r,e.adler>>24&255),jt(r,255&e.total_in),jt(r,e.total_in>>8&255),jt(r,e.total_in>>16&255),jt(r,e.total_in>>24&255)):(Ht(r,e.adler>>>16),Ht(r,65535&e.adler)),vt(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?za:Va)},deflateEnd:function(e){var a;return e&&e.state?(a=e.state.status)!==ht&&a!==ft&&a!==bt&&a!==yt&&a!==mt&&a!==gt&&a!==Tt?Ct(e,Na):(e.state=null,a===gt?Ct(e,Ua):za):Na},deflateSetDictionary:function(e,a){var t,r,i,n,s,l,o,c,p=a.length;if(!e||!e.state)return Na;if(2===(n=(t=e.state).wrap)||1===n&&t.status!==ht||t.lookahead)return Na;for(1===n&&(e.adler=Ba(e.adler,a,p,0)),t.wrap=0,p>=t.w_size&&(0===n&&(At(t.head),t.strstart=0,t.block_start=0,t.insert=0),c=new Be.Buf8(t.w_size),Be.arraySet(c,a,p-t.w_size,t.w_size,0),a=c,p=t.w_size),s=e.avail_in,l=e.next_in,o=e.input,e.avail_in=p,e.next_in=0,e.input=a,Rt(t);t.lookahead>=ct;){r=t.strstart,i=t.lookahead-(ct-1);do{t.ins_h=(t.ins_h<<t.hash_shift^t.window[r+ct-1])&t.hash_mask,t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++}while(--i);t.strstart=r,t.lookahead=ct-1,Rt(t)}return t.strstart+=t.lookahead,t.block_start=t.strstart,t.insert=t.lookahead,t.lookahead=0,t.match_length=t.prev_length=ct-1,t.match_available=0,e.next_in=l,e.input=o,e.avail_in=s,t.wrap=n,za},deflateInfo:"pako deflate (from Nodeca project)"},zt=!0,Vt=!0;try{String.fromCharCode.apply(null,[0])}catch(e){zt=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){Vt=!1}for(var Nt=new Be.Buf8(256),Ut=0;Ut<256;Ut++)Nt[Ut]=Ut>=252?6:Ut>=248?5:Ut>=240?4:Ut>=224?3:Ut>=192?2:1;Nt[254]=Nt[254]=1;function Kt(e,a){if(a<65534&&(e.subarray&&Vt||!e.subarray&&zt))return String.fromCharCode.apply(null,Be.shrinkBuf(e,a));for(var t="",r=0;r<a;r++)t+=String.fromCharCode(e[r]);return t}var Qt={string2buf:function(e){var a,t,r,i,n,s=e.length,l=0;for(i=0;i<s;i++)55296==(64512&(t=e.charCodeAt(i)))&&i+1<s&&56320==(64512&(r=e.charCodeAt(i+1)))&&(t=65536+(t-55296<<10)+(r-56320),i++),l+=t<128?1:t<2048?2:t<65536?3:4;for(a=new Be.Buf8(l),n=0,i=0;n<l;i++)55296==(64512&(t=e.charCodeAt(i)))&&i+1<s&&56320==(64512&(r=e.charCodeAt(i+1)))&&(t=65536+(t-55296<<10)+(r-56320),i++),t<128?a[n++]=t:t<2048?(a[n++]=192|t>>>6,a[n++]=128|63&t):t<65536?(a[n++]=224|t>>>12,a[n++]=128|t>>>6&63,a[n++]=128|63&t):(a[n++]=240|t>>>18,a[n++]=128|t>>>12&63,a[n++]=128|t>>>6&63,a[n++]=128|63&t);return a},buf2binstring:function(e){return Kt(e,e.length)},binstring2buf:function(e){for(var a=new Be.Buf8(e.length),t=0,r=a.length;t<r;t++)a[t]=e.charCodeAt(t);return a},buf2string:function(e,a){var t,r,i,n,s=a||e.length,l=new Array(2*s);for(r=0,t=0;t<s;)if((i=e[t++])<128)l[r++]=i;else if((n=Nt[i])>4)l[r++]=65533,t+=n-1;else{for(i&=2===n?31:3===n?15:7;n>1&&t<s;)i=i<<6|63&e[t++],n--;n>1?l[r++]=65533:i<65536?l[r++]=i:(i-=65536,l[r++]=55296|i>>10&1023,l[r++]=56320|1023&i)}return Kt(l,r)},utf8border:function(e,a){var t;for((a=a||e.length)>e.length&&(a=e.length),t=a-1;t>=0&&128==(192&e[t]);)t--;return t<0?a:0===t?a:t+Nt[e[t]]>a?t:a}};var Zt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},qt=Object.prototype.toString,Yt=0,Jt=-1,Xt=0,$t=8;function er(e){if(!(this instanceof er))return new er(e);this.options=Be.assign({level:Jt,method:$t,chunkSize:16384,windowBits:15,memLevel:8,strategy:Xt,to:""},e||{});var a=this.options;a.raw&&a.windowBits>0?a.windowBits=-a.windowBits:a.gzip&&a.windowBits>0&&a.windowBits<16&&(a.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zt,this.strm.avail_out=0;var t=Wt.deflateInit2(this.strm,a.level,a.method,a.windowBits,a.memLevel,a.strategy);if(t!==Yt)throw new Error(Pa[t]);if(a.header&&Wt.deflateSetHeader(this.strm,a.header),a.dictionary){var r;if(r="string"==typeof a.dictionary?Qt.string2buf(a.dictionary):"[object ArrayBuffer]"===qt.call(a.dictionary)?new Uint8Array(a.dictionary):a.dictionary,(t=Wt.deflateSetDictionary(this.strm,r))!==Yt)throw new Error(Pa[t]);this._dict_set=!0}}function ar(e,a){var t=new er(a);if(t.push(e,!0),t.err)throw t.msg||Pa[t.err];return t.result}er.prototype.push=function(e,a){var t,r,i=this.strm,n=this.options.chunkSize;if(this.ended)return!1;r=a===~~a?a:!0===a?4:0,"string"==typeof e?i.input=Qt.string2buf(e):"[object ArrayBuffer]"===qt.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new Be.Buf8(n),i.next_out=0,i.avail_out=n),1!==(t=Wt.deflate(i,r))&&t!==Yt)return this.onEnd(t),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==r&&2!==r)||("string"===this.options.to?this.onData(Qt.buf2binstring(Be.shrinkBuf(i.output,i.next_out))):this.onData(Be.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==t);return 4===r?(t=Wt.deflateEnd(this.strm),this.onEnd(t),this.ended=!0,t===Yt):2!==r||(this.onEnd(Yt),i.avail_out=0,!0)},er.prototype.onData=function(e){this.chunks.push(e)},er.prototype.onEnd=function(e){e===Yt&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Be.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var tr={Deflate:er,deflate:ar,deflateRaw:function(e,a){return(a=a||{}).raw=!0,ar(e,a)},gzip:function(e,a){return(a=a||{}).gzip=!0,ar(e,a)}},rr=function(e,a){var t,r,i,n,s,l,o,c,p,d,u,h,f,b,y,m,g,T,O,S,w,k,M,C,_;t=e.state,r=e.next_in,C=e.input,i=r+(e.avail_in-5),n=e.next_out,_=e.output,s=n-(a-e.avail_out),l=n+(e.avail_out-257),o=t.dmax,c=t.wsize,p=t.whave,d=t.wnext,u=t.window,h=t.hold,f=t.bits,b=t.lencode,y=t.distcode,m=(1<<t.lenbits)-1,g=(1<<t.distbits)-1;e:do{f<15&&(h+=C[r++]<<f,f+=8,h+=C[r++]<<f,f+=8),T=b[h&m];a:for(;;){if(h>>>=O=T>>>24,f-=O,0===(O=T>>>16&255))_[n++]=65535&T;else{if(!(16&O)){if(0==(64&O)){T=b[(65535&T)+(h&(1<<O)-1)];continue a}if(32&O){t.mode=12;break e}e.msg="invalid literal/length code",t.mode=30;break e}S=65535&T,(O&=15)&&(f<O&&(h+=C[r++]<<f,f+=8),S+=h&(1<<O)-1,h>>>=O,f-=O),f<15&&(h+=C[r++]<<f,f+=8,h+=C[r++]<<f,f+=8),T=y[h&g];t:for(;;){if(h>>>=O=T>>>24,f-=O,!(16&(O=T>>>16&255))){if(0==(64&O)){T=y[(65535&T)+(h&(1<<O)-1)];continue t}e.msg="invalid distance code",t.mode=30;break e}if(w=65535&T,f<(O&=15)&&(h+=C[r++]<<f,(f+=8)<O&&(h+=C[r++]<<f,f+=8)),(w+=h&(1<<O)-1)>o){e.msg="invalid distance too far back",t.mode=30;break e}if(h>>>=O,f-=O,w>(O=n-s)){if((O=w-O)>p&&t.sane){e.msg="invalid distance too far back",t.mode=30;break e}if(k=0,M=u,0===d){if(k+=c-O,O<S){S-=O;do{_[n++]=u[k++]}while(--O);k=n-w,M=_}}else if(d<O){if(k+=c+d-O,(O-=d)<S){S-=O;do{_[n++]=u[k++]}while(--O);if(k=0,d<S){S-=O=d;do{_[n++]=u[k++]}while(--O);k=n-w,M=_}}}else if(k+=d-O,O<S){S-=O;do{_[n++]=u[k++]}while(--O);k=n-w,M=_}for(;S>2;)_[n++]=M[k++],_[n++]=M[k++],_[n++]=M[k++],S-=3;S&&(_[n++]=M[k++],S>1&&(_[n++]=M[k++]))}else{k=n-w;do{_[n++]=_[k++],_[n++]=_[k++],_[n++]=_[k++],S-=3}while(S>2);S&&(_[n++]=_[k++],S>1&&(_[n++]=_[k++]))}break}}break}}while(r<i&&n<l);r-=S=f>>3,h&=(1<<(f-=S<<3))-1,e.next_in=r,e.next_out=n,e.avail_in=r<i?i-r+5:5-(r-i),e.avail_out=n<l?l-n+257:257-(n-l),t.hold=h,t.bits=f},ir=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],nr=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],sr=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],lr=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64],or=function(e,a,t,r,i,n,s,l){var o,c,p,d,u,h,f,b,y,m=l.bits,g=0,T=0,O=0,S=0,w=0,k=0,M=0,C=0,_=0,A=0,v=null,I=0,j=new Be.Buf16(16),H=new Be.Buf16(16),B=null,R=0;for(g=0;g<=15;g++)j[g]=0;for(T=0;T<r;T++)j[a[t+T]]++;for(w=m,S=15;S>=1&&0===j[S];S--);if(w>S&&(w=S),0===S)return i[n++]=20971520,i[n++]=20971520,l.bits=1,0;for(O=1;O<S&&0===j[O];O++);for(w<O&&(w=O),C=1,g=1;g<=15;g++)if(C<<=1,(C-=j[g])<0)return-1;if(C>0&&(0===e||1!==S))return-1;for(H[1]=0,g=1;g<15;g++)H[g+1]=H[g]+j[g];for(T=0;T<r;T++)0!==a[t+T]&&(s[H[a[t+T]]++]=T);if(0===e?(v=B=s,h=19):1===e?(v=ir,I-=257,B=nr,R-=257,h=256):(v=sr,B=lr,h=-1),A=0,T=0,g=O,u=n,k=w,M=0,p=-1,d=(_=1<<w)-1,1===e&&_>852||2===e&&_>592)return 1;for(;;){f=g-M,s[T]<h?(b=0,y=s[T]):s[T]>h?(b=B[R+s[T]],y=v[I+s[T]]):(b=96,y=0),o=1<<g-M,O=c=1<<k;do{i[u+(A>>M)+(c-=o)]=f<<24|b<<16|y|0}while(0!==c);for(o=1<<g-1;A&o;)o>>=1;if(0!==o?(A&=o-1,A+=o):A=0,T++,0==--j[g]){if(g===S)break;g=a[t+s[T]]}if(g>w&&(A&d)!==p){for(0===M&&(M=w),u+=O,C=1<<(k=g-M);k+M<S&&!((C-=j[k+M])<=0);)k++,C<<=1;if(_+=1<<k,1===e&&_>852||2===e&&_>592)return 1;i[p=A&d]=w<<24|k<<16|u-n|0}}return 0!==A&&(i[u+A]=g-M<<24|64<<16|0),l.bits=w,0},cr=0,pr=1,dr=2,ur=4,hr=5,fr=6,br=0,yr=1,mr=2,gr=-2,Tr=-3,Or=-4,Sr=-5,wr=8,kr=1,Mr=2,Cr=3,_r=4,Ar=5,vr=6,Ir=7,jr=8,Hr=9,Br=10,Rr=11,Dr=12,Er=13,Pr=14,Gr=15,Lr=16,Fr=17,xr=18,Wr=19,zr=20,Vr=21,Nr=22,Ur=23,Kr=24,Qr=25,Zr=26,qr=27,Yr=28,Jr=29,Xr=30,$r=31,ei=32,ai=852,ti=592,ri=15;function ii(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function ni(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Be.Buf16(320),this.work=new Be.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function si(e){var a;return e&&e.state?(a=e.state,e.total_in=e.total_out=a.total=0,e.msg="",a.wrap&&(e.adler=1&a.wrap),a.mode=kr,a.last=0,a.havedict=0,a.dmax=32768,a.head=null,a.hold=0,a.bits=0,a.lencode=a.lendyn=new Be.Buf32(ai),a.distcode=a.distdyn=new Be.Buf32(ti),a.sane=1,a.back=-1,br):gr}function li(e){var a;return e&&e.state?((a=e.state).wsize=0,a.whave=0,a.wnext=0,si(e)):gr}function oi(e,a){var t,r;return e&&e.state?(r=e.state,a<0?(t=0,a=-a):(t=1+(a>>4),a<48&&(a&=15)),a&&(a<8||a>15)?gr:(null!==r.window&&r.wbits!==a&&(r.window=null),r.wrap=t,r.wbits=a,li(e))):gr}function ci(e,a){var t,r;return e?(r=new ni,e.state=r,r.window=null,(t=oi(e,a))!==br&&(e.state=null),t):gr}var pi,di,ui=!0;function hi(e){if(ui){var a;for(pi=new Be.Buf32(512),di=new Be.Buf32(32),a=0;a<144;)e.lens[a++]=8;for(;a<256;)e.lens[a++]=9;for(;a<280;)e.lens[a++]=7;for(;a<288;)e.lens[a++]=8;for(or(pr,e.lens,0,288,pi,0,e.work,{bits:9}),a=0;a<32;)e.lens[a++]=5;or(dr,e.lens,0,32,di,0,e.work,{bits:5}),ui=!1}e.lencode=pi,e.lenbits=9,e.distcode=di,e.distbits=5}function fi(e,a,t,r){var i,n=e.state;return null===n.window&&(n.wsize=1<<n.wbits,n.wnext=0,n.whave=0,n.window=new Be.Buf8(n.wsize)),r>=n.wsize?(Be.arraySet(n.window,a,t-n.wsize,n.wsize,0),n.wnext=0,n.whave=n.wsize):((i=n.wsize-n.wnext)>r&&(i=r),Be.arraySet(n.window,a,t-r,i,n.wnext),(r-=i)?(Be.arraySet(n.window,a,t-r,r,0),n.wnext=r,n.whave=n.wsize):(n.wnext+=i,n.wnext===n.wsize&&(n.wnext=0),n.whave<n.wsize&&(n.whave+=i))),0}var bi={inflateReset:li,inflateReset2:oi,inflateResetKeep:si,inflateInit:function(e){return ci(e,ri)},inflateInit2:ci,inflate:function(e,a){var t,r,i,n,s,l,o,c,p,d,u,h,f,b,y,m,g,T,O,S,w,k,M,C,_=0,A=new Be.Buf8(4),v=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return gr;(t=e.state).mode===Dr&&(t.mode=Er),s=e.next_out,i=e.output,o=e.avail_out,n=e.next_in,r=e.input,l=e.avail_in,c=t.hold,p=t.bits,d=l,u=o,k=br;e:for(;;)switch(t.mode){case kr:if(0===t.wrap){t.mode=Er;break}for(;p<16;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(2&t.wrap&&35615===c){t.check=0,A[0]=255&c,A[1]=c>>>8&255,t.check=Ea(t.check,A,2,0),c=0,p=0,t.mode=Mr;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",t.mode=Xr;break}if((15&c)!==wr){e.msg="unknown compression method",t.mode=Xr;break}if(p-=4,w=8+(15&(c>>>=4)),0===t.wbits)t.wbits=w;else if(w>t.wbits){e.msg="invalid window size",t.mode=Xr;break}t.dmax=1<<w,e.adler=t.check=1,t.mode=512&c?Br:Dr,c=0,p=0;break;case Mr:for(;p<16;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(t.flags=c,(255&t.flags)!==wr){e.msg="unknown compression method",t.mode=Xr;break}if(57344&t.flags){e.msg="unknown header flags set",t.mode=Xr;break}t.head&&(t.head.text=c>>8&1),512&t.flags&&(A[0]=255&c,A[1]=c>>>8&255,t.check=Ea(t.check,A,2,0)),c=0,p=0,t.mode=Cr;case Cr:for(;p<32;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}t.head&&(t.head.time=c),512&t.flags&&(A[0]=255&c,A[1]=c>>>8&255,A[2]=c>>>16&255,A[3]=c>>>24&255,t.check=Ea(t.check,A,4,0)),c=0,p=0,t.mode=_r;case _r:for(;p<16;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}t.head&&(t.head.xflags=255&c,t.head.os=c>>8),512&t.flags&&(A[0]=255&c,A[1]=c>>>8&255,t.check=Ea(t.check,A,2,0)),c=0,p=0,t.mode=Ar;case Ar:if(1024&t.flags){for(;p<16;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}t.length=c,t.head&&(t.head.extra_len=c),512&t.flags&&(A[0]=255&c,A[1]=c>>>8&255,t.check=Ea(t.check,A,2,0)),c=0,p=0}else t.head&&(t.head.extra=null);t.mode=vr;case vr:if(1024&t.flags&&((h=t.length)>l&&(h=l),h&&(t.head&&(w=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Array(t.head.extra_len)),Be.arraySet(t.head.extra,r,n,h,w)),512&t.flags&&(t.check=Ea(t.check,r,h,n)),l-=h,n+=h,t.length-=h),t.length))break e;t.length=0,t.mode=Ir;case Ir:if(2048&t.flags){if(0===l)break e;h=0;do{w=r[n+h++],t.head&&w&&t.length<65536&&(t.head.name+=String.fromCharCode(w))}while(w&&h<l);if(512&t.flags&&(t.check=Ea(t.check,r,h,n)),l-=h,n+=h,w)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=jr;case jr:if(4096&t.flags){if(0===l)break e;h=0;do{w=r[n+h++],t.head&&w&&t.length<65536&&(t.head.comment+=String.fromCharCode(w))}while(w&&h<l);if(512&t.flags&&(t.check=Ea(t.check,r,h,n)),l-=h,n+=h,w)break e}else t.head&&(t.head.comment=null);t.mode=Hr;case Hr:if(512&t.flags){for(;p<16;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(c!==(65535&t.check)){e.msg="header crc mismatch",t.mode=Xr;break}c=0,p=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=Dr;break;case Br:for(;p<32;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}e.adler=t.check=ii(c),c=0,p=0,t.mode=Rr;case Rr:if(0===t.havedict)return e.next_out=s,e.avail_out=o,e.next_in=n,e.avail_in=l,t.hold=c,t.bits=p,mr;e.adler=t.check=1,t.mode=Dr;case Dr:if(a===hr||a===fr)break e;case Er:if(t.last){c>>>=7&p,p-=7&p,t.mode=qr;break}for(;p<3;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}switch(t.last=1&c,p-=1,3&(c>>>=1)){case 0:t.mode=Pr;break;case 1:if(hi(t),t.mode=zr,a===fr){c>>>=2,p-=2;break e}break;case 2:t.mode=Fr;break;case 3:e.msg="invalid block type",t.mode=Xr}c>>>=2,p-=2;break;case Pr:for(c>>>=7&p,p-=7&p;p<32;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",t.mode=Xr;break}if(t.length=65535&c,c=0,p=0,t.mode=Gr,a===fr)break e;case Gr:t.mode=Lr;case Lr:if(h=t.length){if(h>l&&(h=l),h>o&&(h=o),0===h)break e;Be.arraySet(i,r,n,h,s),l-=h,n+=h,o-=h,s+=h,t.length-=h;break}t.mode=Dr;break;case Fr:for(;p<14;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(t.nlen=257+(31&c),c>>>=5,p-=5,t.ndist=1+(31&c),c>>>=5,p-=5,t.ncode=4+(15&c),c>>>=4,p-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=Xr;break}t.have=0,t.mode=xr;case xr:for(;t.have<t.ncode;){for(;p<3;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}t.lens[v[t.have++]]=7&c,c>>>=3,p-=3}for(;t.have<19;)t.lens[v[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,M={bits:t.lenbits},k=or(cr,t.lens,0,19,t.lencode,0,t.work,M),t.lenbits=M.bits,k){e.msg="invalid code lengths set",t.mode=Xr;break}t.have=0,t.mode=Wr;case Wr:for(;t.have<t.nlen+t.ndist;){for(;m=(_=t.lencode[c&(1<<t.lenbits)-1])>>>16&255,g=65535&_,!((y=_>>>24)<=p);){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(g<16)c>>>=y,p-=y,t.lens[t.have++]=g;else{if(16===g){for(C=y+2;p<C;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(c>>>=y,p-=y,0===t.have){e.msg="invalid bit length repeat",t.mode=Xr;break}w=t.lens[t.have-1],h=3+(3&c),c>>>=2,p-=2}else if(17===g){for(C=y+3;p<C;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}p-=y,w=0,h=3+(7&(c>>>=y)),c>>>=3,p-=3}else{for(C=y+7;p<C;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}p-=y,w=0,h=11+(127&(c>>>=y)),c>>>=7,p-=7}if(t.have+h>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=Xr;break}for(;h--;)t.lens[t.have++]=w}}if(t.mode===Xr)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=Xr;break}if(t.lenbits=9,M={bits:t.lenbits},k=or(pr,t.lens,0,t.nlen,t.lencode,0,t.work,M),t.lenbits=M.bits,k){e.msg="invalid literal/lengths set",t.mode=Xr;break}if(t.distbits=6,t.distcode=t.distdyn,M={bits:t.distbits},k=or(dr,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,M),t.distbits=M.bits,k){e.msg="invalid distances set",t.mode=Xr;break}if(t.mode=zr,a===fr)break e;case zr:t.mode=Vr;case Vr:if(l>=6&&o>=258){e.next_out=s,e.avail_out=o,e.next_in=n,e.avail_in=l,t.hold=c,t.bits=p,rr(e,u),s=e.next_out,i=e.output,o=e.avail_out,n=e.next_in,r=e.input,l=e.avail_in,c=t.hold,p=t.bits,t.mode===Dr&&(t.back=-1);break}for(t.back=0;m=(_=t.lencode[c&(1<<t.lenbits)-1])>>>16&255,g=65535&_,!((y=_>>>24)<=p);){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(m&&0==(240&m)){for(T=y,O=m,S=g;m=(_=t.lencode[S+((c&(1<<T+O)-1)>>T)])>>>16&255,g=65535&_,!(T+(y=_>>>24)<=p);){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}c>>>=T,p-=T,t.back+=T}if(c>>>=y,p-=y,t.back+=y,t.length=g,0===m){t.mode=Zr;break}if(32&m){t.back=-1,t.mode=Dr;break}if(64&m){e.msg="invalid literal/length code",t.mode=Xr;break}t.extra=15&m,t.mode=Nr;case Nr:if(t.extra){for(C=t.extra;p<C;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}t.length+=c&(1<<t.extra)-1,c>>>=t.extra,p-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Ur;case Ur:for(;m=(_=t.distcode[c&(1<<t.distbits)-1])>>>16&255,g=65535&_,!((y=_>>>24)<=p);){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(0==(240&m)){for(T=y,O=m,S=g;m=(_=t.distcode[S+((c&(1<<T+O)-1)>>T)])>>>16&255,g=65535&_,!(T+(y=_>>>24)<=p);){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}c>>>=T,p-=T,t.back+=T}if(c>>>=y,p-=y,t.back+=y,64&m){e.msg="invalid distance code",t.mode=Xr;break}t.offset=g,t.extra=15&m,t.mode=Kr;case Kr:if(t.extra){for(C=t.extra;p<C;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}t.offset+=c&(1<<t.extra)-1,c>>>=t.extra,p-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=Xr;break}t.mode=Qr;case Qr:if(0===o)break e;if(h=u-o,t.offset>h){if((h=t.offset-h)>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=Xr;break}h>t.wnext?(h-=t.wnext,f=t.wsize-h):f=t.wnext-h,h>t.length&&(h=t.length),b=t.window}else b=i,f=s-t.offset,h=t.length;h>o&&(h=o),o-=h,t.length-=h;do{i[s++]=b[f++]}while(--h);0===t.length&&(t.mode=Vr);break;case Zr:if(0===o)break e;i[s++]=t.length,o--,t.mode=Vr;break;case qr:if(t.wrap){for(;p<32;){if(0===l)break e;l--,c|=r[n++]<<p,p+=8}if(u-=o,e.total_out+=u,t.total+=u,u&&(e.adler=t.check=t.flags?Ea(t.check,i,u,s-u):Ba(t.check,i,u,s-u)),u=o,(t.flags?c:ii(c))!==t.check){e.msg="incorrect data check",t.mode=Xr;break}c=0,p=0}t.mode=Yr;case Yr:if(t.wrap&&t.flags){for(;p<32;){if(0===l)break e;l--,c+=r[n++]<<p,p+=8}if(c!==(4294967295&t.total)){e.msg="incorrect length check",t.mode=Xr;break}c=0,p=0}t.mode=Jr;case Jr:k=yr;break e;case Xr:k=Tr;break e;case $r:return Or;case ei:default:return gr}return e.next_out=s,e.avail_out=o,e.next_in=n,e.avail_in=l,t.hold=c,t.bits=p,(t.wsize||u!==e.avail_out&&t.mode<Xr&&(t.mode<qr||a!==ur))&&fi(e,e.output,e.next_out,u-e.avail_out),d-=e.avail_in,u-=e.avail_out,e.total_in+=d,e.total_out+=u,t.total+=u,t.wrap&&u&&(e.adler=t.check=t.flags?Ea(t.check,i,u,e.next_out-u):Ba(t.check,i,u,e.next_out-u)),e.data_type=t.bits+(t.last?64:0)+(t.mode===Dr?128:0)+(t.mode===zr||t.mode===Gr?256:0),(0===d&&0===u||a===ur)&&k===br&&(k=Sr),k},inflateEnd:function(e){if(!e||!e.state)return gr;var a=e.state;return a.window&&(a.window=null),e.state=null,br},inflateGetHeader:function(e,a){var t;return e&&e.state?0==(2&(t=e.state).wrap)?gr:(t.head=a,a.done=!1,br):gr},inflateSetDictionary:function(e,a){var t,r=a.length;return e&&e.state?0!==(t=e.state).wrap&&t.mode!==Rr?gr:t.mode===Rr&&Ba(1,a,r,0)!==t.check?Tr:fi(e,a,r,r)?(t.mode=$r,Or):(t.havedict=1,br):gr},inflateInfo:"pako inflate (from Nodeca project)"},yi={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};var mi=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},gi=Object.prototype.toString;function Ti(e){if(!(this instanceof Ti))return new Ti(e);this.options=Be.assign({chunkSize:16384,windowBits:0,to:""},e||{});var a=this.options;a.raw&&a.windowBits>=0&&a.windowBits<16&&(a.windowBits=-a.windowBits,0===a.windowBits&&(a.windowBits=-15)),!(a.windowBits>=0&&a.windowBits<16)||e&&e.windowBits||(a.windowBits+=32),a.windowBits>15&&a.windowBits<48&&0==(15&a.windowBits)&&(a.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Zt,this.strm.avail_out=0;var t=bi.inflateInit2(this.strm,a.windowBits);if(t!==yi.Z_OK)throw new Error(Pa[t]);if(this.header=new mi,bi.inflateGetHeader(this.strm,this.header),a.dictionary&&("string"==typeof a.dictionary?a.dictionary=Qt.string2buf(a.dictionary):"[object ArrayBuffer]"===gi.call(a.dictionary)&&(a.dictionary=new Uint8Array(a.dictionary)),a.raw&&(t=bi.inflateSetDictionary(this.strm,a.dictionary))!==yi.Z_OK))throw new Error(Pa[t])}function Oi(e,a){var t=new Ti(a);if(t.push(e,!0),t.err)throw t.msg||Pa[t.err];return t.result}Ti.prototype.push=function(e,a){var t,r,i,n,s,l=this.strm,o=this.options.chunkSize,c=this.options.dictionary,p=!1;if(this.ended)return!1;r=a===~~a?a:!0===a?yi.Z_FINISH:yi.Z_NO_FLUSH,"string"==typeof e?l.input=Qt.binstring2buf(e):"[object ArrayBuffer]"===gi.call(e)?l.input=new Uint8Array(e):l.input=e,l.next_in=0,l.avail_in=l.input.length;do{if(0===l.avail_out&&(l.output=new Be.Buf8(o),l.next_out=0,l.avail_out=o),(t=bi.inflate(l,yi.Z_NO_FLUSH))===yi.Z_NEED_DICT&&c&&(t=bi.inflateSetDictionary(this.strm,c)),t===yi.Z_BUF_ERROR&&!0===p&&(t=yi.Z_OK,p=!1),t!==yi.Z_STREAM_END&&t!==yi.Z_OK)return this.onEnd(t),this.ended=!0,!1;l.next_out&&(0!==l.avail_out&&t!==yi.Z_STREAM_END&&(0!==l.avail_in||r!==yi.Z_FINISH&&r!==yi.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Qt.utf8border(l.output,l.next_out),n=l.next_out-i,s=Qt.buf2string(l.output,i),l.next_out=n,l.avail_out=o-n,n&&Be.arraySet(l.output,l.output,i,n,0),this.onData(s)):this.onData(Be.shrinkBuf(l.output,l.next_out)))),0===l.avail_in&&0===l.avail_out&&(p=!0)}while((l.avail_in>0||0===l.avail_out)&&t!==yi.Z_STREAM_END);return t===yi.Z_STREAM_END&&(r=yi.Z_FINISH),r===yi.Z_FINISH?(t=bi.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,t===yi.Z_OK):r!==yi.Z_SYNC_FLUSH||(this.onEnd(yi.Z_OK),l.avail_out=0,!0)},Ti.prototype.onData=function(e){this.chunks.push(e)},Ti.prototype.onEnd=function(e){e===yi.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Be.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Si={Inflate:Ti,inflate:Oi,inflateRaw:function(e,a){return(a=a||{}).raw=!0,Oi(e,a)},ungzip:Oi},wi={};(0,Be.assign)(wi,tr,Si,yi);var ki;(ki=e.MapFormat||(e.MapFormat={})).ROE="RoE",ki.AB="AB",ki.SOD="SoD",ki.CHR="Chr",ki.WOG="WoG";const Mi={[e.MapFormat.ROE]:14,[e.MapFormat.AB]:21,[e.MapFormat.SOD]:28,[e.MapFormat.CHR]:29,[e.MapFormat.WOG]:51};var Ci;(Ci=e.Difficulty||(e.Difficulty={})).Easy="Easy",Ci.Normal="Normal",Ci.Hard="Hard",Ci.Expert="Expert",Ci.Impossible="Impossible";const _i={[e.Difficulty.Easy]:0,[e.Difficulty.Normal]:1,[e.Difficulty.Hard]:2,[e.Difficulty.Expert]:3,[e.Difficulty.Impossible]:4};var Ai;(Ai=e.Behavior||(e.Behavior={})).Random="Random",Ai.Warrior="Warrior",Ai.Builder="Builder",Ai.Explorer="Explorer";const vi={[e.Behavior.Random]:0,[e.Behavior.Warrior]:1,[e.Behavior.Builder]:2,[e.Behavior.Explorer]:3};var Ii;(Ii=e.HallLevel||(e.HallLevel={})).Town="Town",Ii.City="City",Ii.Capitol="Capitol";const ji={[e.HallLevel.Town]:0,[e.HallLevel.City]:1,[e.HallLevel.Capitol]:2};var Hi;(Hi=e.CastleLevel||(e.CastleLevel={})).Fort="Fort",Hi.Citadel="Citadel",Hi.Castle="Castle";const Bi={[e.CastleLevel.Fort]:0,[e.CastleLevel.Citadel]:1,[e.CastleLevel.Castle]:2};var Ri;(Ri=e.Gender||(e.Gender={})).Default="Default",Ri.Male="Male",Ri.Female="Female";const Di={[e.Gender.Default]:255,[e.Gender.Male]:0,[e.Gender.Female]:1};var Ei;(Ei=e.Artifact||(e.Artifact={})).Spellbook="Spellbook",Ei.SpellScroll="SpellScroll",Ei.Grail="Grail",Ei.Catapult="Catapult",Ei.Ballista="Ballista",Ei.AmmoCart="AmmoCart",Ei.FirstAidTent="FirstAidTent",Ei.CentaurAxe="CentaurAxe",Ei.BlackshardOfTheDeadKnight="BlackshardOfTheDeadKnight",Ei.GreaterGnollsFlail="GreaterGnollsFlail",Ei.OgresClubOfHavoc="OgresClubOfHavoc",Ei.SwordOfHellfire="SwordOfHellfire",Ei.TitansGladius="TitansGladius",Ei.ShieldOfTheDwarvenLords="ShieldOfTheDwarvenLords",Ei.ShieldOfTheYawningDead="ShieldOfTheYawningDead",Ei.BucklerOfTheGnollKing="BucklerOfTheGnollKing",Ei.TargOfTheRampagingOgre="TargOfTheRampagingOgre",Ei.ShieldOfTheDamned="ShieldOfTheDamned",Ei.SentinelsShield="SentinelsShield",Ei.HelmOfTheAlabasterUnicorn="HelmOfTheAlabasterUnicorn",Ei.SkullHelmet="SkullHelmet",Ei.HelmOfChaos="HelmOfChaos",Ei.CrownOfTheSupremeMagi="CrownOfTheSupremeMagi",Ei.HellstormHelmet="HellstormHelmet",Ei.ThunderHelmet="ThunderHelmet",Ei.BreastplateOfPetrifiedWood="BreastplateOfPetrifiedWood",Ei.RibCage="RibCage",Ei.ScalesOfTheGreaterBasilisk="ScalesOfTheGreaterBasilisk",Ei.TunicOfTheCyclopsKing="TunicOfTheCyclopsKing",Ei.BreastplateOfBrimstone="BreastplateOfBrimstone",Ei.TitansCuirass="TitansCuirass",Ei.ArmorOfWonder="ArmorOfWonder",Ei.SandalsOfTheSaint="SandalsOfTheSaint",Ei.CelestialNecklaceOfBliss="CelestialNecklaceOfBliss",Ei.LionsShieldOfCourage="LionsShieldOfCourage",Ei.SwordOfJudgement="SwordOfJudgement",Ei.HelmOfHeavenlyEnlightenment="HelmOfHeavenlyEnlightenment",Ei.QuietEyeOfTheDragon="QuietEyeOfTheDragon",Ei.RedDragonFlameTongue="RedDragonFlameTongue",Ei.DragonScaleShield="DragonScaleShield",Ei.DragonScaleArmor="DragonScaleArmor",Ei.DragonboneGreaves="DragonboneGreaves",Ei.DragonWingTabard="DragonWingTabard",Ei.NecklaceOfDragonteeth="NecklaceOfDragonteeth",Ei.CrownOfDragontooth="CrownOfDragontooth",Ei.StillEyeOfTheDragon="StillEyeOfTheDragon",Ei.CloverOfFortune="CloverOfFortune",Ei.CardsOfProphecy="CardsOfProphecy",Ei.LadybirdOfLuck="LadybirdOfLuck",Ei.BadgeOfCourage="BadgeOfCourage",Ei.CrestOfValor="CrestOfValor",Ei.GlyphOfGallantry="GlyphOfGallantry",Ei.Speculum="Speculum",Ei.Spyglass="Spyglass",Ei.AmuletOfTheUndertaker="AmuletOfTheUndertaker",Ei.VampiresCowl="VampiresCowl",Ei.DeadMansBoots="DeadMansBoots",Ei.GarnitureOfInterference="GarnitureOfInterference",Ei.SurcoatOfCounterpoise="SurcoatOfCounterpoise",Ei.BootsOfPolarity="BootsOfPolarity",Ei.BowOfElvenCherrywood="BowOfElvenCherrywood",Ei.BowstringOfTheUnicornsMane="BowstringOfTheUnicornsMane",Ei.AngelFeatherArrows="AngelFeatherArrows",Ei.BirdOfPerception="BirdOfPerception",Ei.StoicWatchman="StoicWatchman",Ei.EmblemOfCognizance="EmblemOfCognizance",Ei.StatesmansMedal="StatesmansMedal",Ei.DiplomatsRing="DiplomatsRing",Ei.AmbassadorsSash="AmbassadorsSash",Ei.RingOfTheWayfarer="RingOfTheWayfarer",Ei.EquestriansGloves="EquestriansGloves",Ei.NecklaceOfOceanGuidance="NecklaceOfOceanGuidance",Ei.AngelWings="AngelWings",Ei.CharmOfMana="CharmOfMana",Ei.TalismanOfMana="TalismanOfMana",Ei.MysticOrbOfMana="MysticOrbOfMana",Ei.CollarOfConjuring="CollarOfConjuring",Ei.RingOfConjuring="RingOfConjuring",Ei.CapeOfConjuring="CapeOfConjuring",Ei.OrbOfTheFirmament="OrbOfTheFirmament",Ei.OrbOfSilt="OrbOfSilt",Ei.OrbOfTempestuousFire="OrbOfTempestuousFire",Ei.OrbOfDrivingRain="OrbOfDrivingRain",Ei.RecantersCloak="RecantersCloak",Ei.SpiritOfOppression="SpiritOfOppression",Ei.HourglassOfTheEvilHour="HourglassOfTheEvilHour",Ei.TomeOfFireMagic="TomeOfFireMagic",Ei.TomeOfAirMagic="TomeOfAirMagic",Ei.TomeOfWaterMagic="TomeOfWaterMagic",Ei.TomeOfEarthMagic="TomeOfEarthMagic",Ei.BootsOfLevitation="BootsOfLevitation",Ei.GoldenBow="GoldenBow",Ei.SphereOfPermanence="SphereOfPermanence",Ei.OrbOfVulnerability="OrbOfVulnerability",Ei.RingOfVitality="RingOfVitality",Ei.RingOfLife="RingOfLife",Ei.VialOfLifeblood="VialOfLifeblood",Ei.NecklaceOfSwiftness="NecklaceOfSwiftness",Ei.BootsOfSpeed="BootsOfSpeed",Ei.CapeOfVelocity="CapeOfVelocity",Ei.PendantOfDispassion="PendantOfDispassion",Ei.PendantOfSecondSight="PendantOfSecondSight",Ei.PendantOfHoliness="PendantOfHoliness",Ei.PendantOfLife="PendantOfLife",Ei.PendantOfDeath="PendantOfDeath",Ei.PendantOfFreeWill="PendantOfFreeWill",Ei.PendantOfNegativity="PendantOfNegativity",Ei.PendantOfTotalRecall="PendantOfTotalRecall",Ei.PendantOfCourage="PendantOfCourage",Ei.EverflowingCrystalCloak="EverflowingCrystalCloak",Ei.RingOfInfiniteGems="RingOfInfiniteGems",Ei.EverpouringVialOfMercury="EverpouringVialOfMercury",Ei.InexhaustibleCartOfOre="InexhaustibleCartOfOre",Ei.EversmokingRingOfSulfur="EversmokingRingOfSulfur",Ei.InexhaustibleCartOfLumber="InexhaustibleCartOfLumber",Ei.EndlessSackOfGold="EndlessSackOfGold",Ei.EndlessBagOfGold="EndlessBagOfGold",Ei.EndlessPurseOfGold="EndlessPurseOfGold",Ei.LegsOfLegion="LegsOfLegion",Ei.LoinsOfLegion="LoinsOfLegion",Ei.TorsoOfLegion="TorsoOfLegion",Ei.ArmsOfLegion="ArmsOfLegion",Ei.HeadOfLegion="HeadOfLegion",Ei.SeaCaptainsHat="SeaCaptainsHat",Ei.SpellbindersHat="SpellbindersHat",Ei.ShacklesOfWar="ShacklesOfWar",Ei.OrbOfInhibition="OrbOfInhibition",Ei.VialOfDragonBlood="VialOfDragonBlood",Ei.ArmageddonsBlade="ArmageddonsBlade",Ei.AngelicAlliance="AngelicAlliance",Ei.CloakOfTheUndeadKing="CloakOfTheUndeadKing",Ei.ElixirOfLife="ElixirOfLife",Ei.ArmorOfTheDamned="ArmorOfTheDamned",Ei.StatueOfLegion="StatueOfLegion",Ei.PowerOfTheDragonFather="PowerOfTheDragonFather",Ei.TitansThunder="TitansThunder",Ei.AdmiralsHat="AdmiralsHat",Ei.BowOfTheSharpshooter="BowOfTheSharpshooter",Ei.WizardsWell="WizardsWell",Ei.RingOfTheMagi="RingOfTheMagi",Ei.Cornucopia="Cornucopia",Ei.MagicWand="MagicWand",Ei.GoldTowerArrow="GoldTowerArrow",Ei.MonstersPower="MonstersPower",Ei.HighlightedSlot="HighlightedSlot",Ei.ArtifactLock="ArtifactLock",Ei.AxeOfSmashing="AxeOfSmashing",Ei.MithrilMail="MithrilMail",Ei.SwordOfSharpness="SwordOfSharpness",Ei.HelmOfImmortality="HelmOfImmortality",Ei.PendantOfSorcery="PendantOfSorcery",Ei.BootsOfHaste="BootsOfHaste",Ei.BowOfSeeking="BowOfSeeking",Ei.DragonEyeRing="DragonEyeRing",Ei.HardenedShield="HardenedShield",Ei.SlavasRingOfPower="SlavasRingOfPower",Ei.WarlordsBanner="WarlordsBanner",Ei.CrimsonShieldOfRetribution="CrimsonShieldOfRetribution",Ei.BarbarianLordsAxeOfFerocity="BarbarianLordsAxeOfFerocity",Ei.Dragonheart="Dragonheart",Ei.GateKey="GateKey",Ei.BlankHelmet="BlankHelmet",Ei.BlankSword="BlankSword",Ei.BlankShield="BlankShield",Ei.BlankHornedRing="BlankHornedRing",Ei.BlankGemmedRing="BlankGemmedRing",Ei.BlankNeckBroach="BlankNeckBroach",Ei.BlankArmor="BlankArmor",Ei.BlankSurcoat="BlankSurcoat",Ei.BlankBoots="BlankBoots",Ei.BlankHorn="BlankHorn";const Pi={[e.Artifact.Spellbook]:0,[e.Artifact.SpellScroll]:1,[e.Artifact.Grail]:2,[e.Artifact.Catapult]:3,[e.Artifact.Ballista]:4,[e.Artifact.AmmoCart]:5,[e.Artifact.FirstAidTent]:6,[e.Artifact.CentaurAxe]:7,[e.Artifact.BlackshardOfTheDeadKnight]:8,[e.Artifact.GreaterGnollsFlail]:9,[e.Artifact.OgresClubOfHavoc]:10,[e.Artifact.SwordOfHellfire]:11,[e.Artifact.TitansGladius]:12,[e.Artifact.ShieldOfTheDwarvenLords]:13,[e.Artifact.ShieldOfTheYawningDead]:14,[e.Artifact.BucklerOfTheGnollKing]:15,[e.Artifact.TargOfTheRampagingOgre]:16,[e.Artifact.ShieldOfTheDamned]:17,[e.Artifact.SentinelsShield]:18,[e.Artifact.HelmOfTheAlabasterUnicorn]:19,[e.Artifact.SkullHelmet]:20,[e.Artifact.HelmOfChaos]:21,[e.Artifact.CrownOfTheSupremeMagi]:22,[e.Artifact.HellstormHelmet]:23,[e.Artifact.ThunderHelmet]:24,[e.Artifact.BreastplateOfPetrifiedWood]:25,[e.Artifact.RibCage]:26,[e.Artifact.ScalesOfTheGreaterBasilisk]:27,[e.Artifact.TunicOfTheCyclopsKing]:28,[e.Artifact.BreastplateOfBrimstone]:29,[e.Artifact.TitansCuirass]:30,[e.Artifact.ArmorOfWonder]:31,[e.Artifact.SandalsOfTheSaint]:32,[e.Artifact.CelestialNecklaceOfBliss]:33,[e.Artifact.LionsShieldOfCourage]:34,[e.Artifact.SwordOfJudgement]:35,[e.Artifact.HelmOfHeavenlyEnlightenment]:36,[e.Artifact.QuietEyeOfTheDragon]:37,[e.Artifact.RedDragonFlameTongue]:38,[e.Artifact.DragonScaleShield]:39,[e.Artifact.DragonScaleArmor]:40,[e.Artifact.DragonboneGreaves]:41,[e.Artifact.DragonWingTabard]:42,[e.Artifact.NecklaceOfDragonteeth]:43,[e.Artifact.CrownOfDragontooth]:44,[e.Artifact.StillEyeOfTheDragon]:45,[e.Artifact.CloverOfFortune]:46,[e.Artifact.CardsOfProphecy]:47,[e.Artifact.LadybirdOfLuck]:48,[e.Artifact.BadgeOfCourage]:49,[e.Artifact.CrestOfValor]:50,[e.Artifact.GlyphOfGallantry]:51,[e.Artifact.Speculum]:52,[e.Artifact.Spyglass]:53,[e.Artifact.AmuletOfTheUndertaker]:54,[e.Artifact.VampiresCowl]:55,[e.Artifact.DeadMansBoots]:56,[e.Artifact.GarnitureOfInterference]:57,[e.Artifact.SurcoatOfCounterpoise]:58,[e.Artifact.BootsOfPolarity]:59,[e.Artifact.BowOfElvenCherrywood]:60,[e.Artifact.BowstringOfTheUnicornsMane]:61,[e.Artifact.AngelFeatherArrows]:62,[e.Artifact.BirdOfPerception]:63,[e.Artifact.StoicWatchman]:64,[e.Artifact.EmblemOfCognizance]:65,[e.Artifact.StatesmansMedal]:66,[e.Artifact.DiplomatsRing]:67,[e.Artifact.AmbassadorsSash]:68,[e.Artifact.RingOfTheWayfarer]:69,[e.Artifact.EquestriansGloves]:70,[e.Artifact.NecklaceOfOceanGuidance]:71,[e.Artifact.AngelWings]:72,[e.Artifact.CharmOfMana]:73,[e.Artifact.TalismanOfMana]:74,[e.Artifact.MysticOrbOfMana]:75,[e.Artifact.CollarOfConjuring]:76,[e.Artifact.RingOfConjuring]:77,[e.Artifact.CapeOfConjuring]:78,[e.Artifact.OrbOfTheFirmament]:79,[e.Artifact.OrbOfSilt]:80,[e.Artifact.OrbOfTempestuousFire]:81,[e.Artifact.OrbOfDrivingRain]:82,[e.Artifact.RecantersCloak]:83,[e.Artifact.SpiritOfOppression]:84,[e.Artifact.HourglassOfTheEvilHour]:85,[e.Artifact.TomeOfFireMagic]:86,[e.Artifact.TomeOfAirMagic]:87,[e.Artifact.TomeOfWaterMagic]:88,[e.Artifact.TomeOfEarthMagic]:89,[e.Artifact.BootsOfLevitation]:90,[e.Artifact.GoldenBow]:91,[e.Artifact.SphereOfPermanence]:92,[e.Artifact.OrbOfVulnerability]:93,[e.Artifact.RingOfVitality]:94,[e.Artifact.RingOfLife]:95,[e.Artifact.VialOfLifeblood]:96,[e.Artifact.NecklaceOfSwiftness]:97,[e.Artifact.BootsOfSpeed]:98,[e.Artifact.CapeOfVelocity]:99,[e.Artifact.PendantOfDispassion]:100,[e.Artifact.PendantOfSecondSight]:101,[e.Artifact.PendantOfHoliness]:102,[e.Artifact.PendantOfLife]:103,[e.Artifact.PendantOfDeath]:104,[e.Artifact.PendantOfFreeWill]:105,[e.Artifact.PendantOfNegativity]:106,[e.Artifact.PendantOfTotalRecall]:107,[e.Artifact.PendantOfCourage]:108,[e.Artifact.EverflowingCrystalCloak]:109,[e.Artifact.RingOfInfiniteGems]:110,[e.Artifact.EverpouringVialOfMercury]:111,[e.Artifact.InexhaustibleCartOfOre]:112,[e.Artifact.EversmokingRingOfSulfur]:113,[e.Artifact.InexhaustibleCartOfLumber]:114,[e.Artifact.EndlessSackOfGold]:115,[e.Artifact.EndlessBagOfGold]:116,[e.Artifact.EndlessPurseOfGold]:117,[e.Artifact.LegsOfLegion]:118,[e.Artifact.LoinsOfLegion]:119,[e.Artifact.TorsoOfLegion]:120,[e.Artifact.ArmsOfLegion]:121,[e.Artifact.HeadOfLegion]:122,[e.Artifact.SeaCaptainsHat]:123,[e.Artifact.SpellbindersHat]:124,[e.Artifact.ShacklesOfWar]:125,[e.Artifact.OrbOfInhibition]:126,[e.Artifact.VialOfDragonBlood]:127,[e.Artifact.ArmageddonsBlade]:128,[e.Artifact.AngelicAlliance]:129,[e.Artifact.CloakOfTheUndeadKing]:130,[e.Artifact.ElixirOfLife]:131,[e.Artifact.ArmorOfTheDamned]:132,[e.Artifact.StatueOfLegion]:133,[e.Artifact.PowerOfTheDragonFather]:134,[e.Artifact.TitansThunder]:135,[e.Artifact.AdmiralsHat]:136,[e.Artifact.BowOfTheSharpshooter]:137,[e.Artifact.WizardsWell]:138,[e.Artifact.RingOfTheMagi]:139,[e.Artifact.Cornucopia]:140,[e.Artifact.MagicWand]:141,[e.Artifact.GoldTowerArrow]:142,[e.Artifact.MonstersPower]:143,[e.Artifact.HighlightedSlot]:144,[e.Artifact.ArtifactLock]:145,[e.Artifact.AxeOfSmashing]:146,[e.Artifact.MithrilMail]:147,[e.Artifact.SwordOfSharpness]:148,[e.Artifact.HelmOfImmortality]:149,[e.Artifact.PendantOfSorcery]:150,[e.Artifact.BootsOfHaste]:151,[e.Artifact.BowOfSeeking]:152,[e.Artifact.DragonEyeRing]:153,[e.Artifact.HardenedShield]:154,[e.Artifact.SlavasRingOfPower]:155,[e.Artifact.WarlordsBanner]:156,[e.Artifact.CrimsonShieldOfRetribution]:157,[e.Artifact.BarbarianLordsAxeOfFerocity]:158,[e.Artifact.Dragonheart]:159,[e.Artifact.GateKey]:160,[e.Artifact.BlankHelmet]:161,[e.Artifact.BlankSword]:162,[e.Artifact.BlankShield]:163,[e.Artifact.BlankHornedRing]:164,[e.Artifact.BlankGemmedRing]:165,[e.Artifact.BlankNeckBroach]:166,[e.Artifact.BlankArmor]:167,[e.Artifact.BlankSurcoat]:168,[e.Artifact.BlankBoots]:169,[e.Artifact.BlankHorn]:170};var Gi;(Gi=e.Creature||(e.Creature={})).EMPTY="EMPTY",Gi.Pikeman="Pikeman",Gi.Halberdier="Halberdier",Gi.Archer="Archer",Gi.Marksman="Marksman",Gi.Griffin="Griffin",Gi.RoyalGriffin="RoyalGriffin",Gi.Swordsman="Swordsman",Gi.Crusader="Crusader",Gi.Monk="Monk",Gi.Zealot="Zealot",Gi.Cavalier="Cavalier",Gi.Champion="Champion",Gi.Angel="Angel",Gi.Archangel="Archangel",Gi.Centaur="Centaur",Gi.CentaurCaptain="CentaurCaptain",Gi.Dwarf="Dwarf",Gi.BattleDwarf="BattleDwarf",Gi.WoodElf="WoodElf",Gi.GrandElf="GrandElf",Gi.Pegasus="Pegasus",Gi.SilverPegasus="SilverPegasus",Gi.DendroidGuard="DendroidGuard",Gi.DendroidSoldier="DendroidSoldier",Gi.Unicorn="Unicorn",Gi.WarUnicorn="WarUnicorn",Gi.GreenDragon="GreenDragon",Gi.GoldDragon="GoldDragon",Gi.Gremlin="Gremlin",Gi.MasterGremlin="MasterGremlin",Gi.StoneGargoyle="StoneGargoyle",Gi.ObsidianGargoyle="ObsidianGargoyle",Gi.StoneGolem="StoneGolem",Gi.IronGolem="IronGolem",Gi.Mage="Mage",Gi.ArchMage="ArchMage",Gi.Genie="Genie",Gi.MasterGenie="MasterGenie",Gi.Naga="Naga",Gi.NagaQueen="NagaQueen",Gi.Giant="Giant",Gi.Titan="Titan",Gi.Imp="Imp",Gi.Familiar="Familiar",Gi.Gog="Gog",Gi.Magog="Magog",Gi.HellHound="HellHound",Gi.Cerberus="Cerberus",Gi.Demon="Demon",Gi.HornedDemon="HornedDemon",Gi.PitFiend="PitFiend",Gi.PitLord="PitLord",Gi.Efreeti="Efreeti",Gi.EfreetSultan="EfreetSultan",Gi.Devil="Devil",Gi.ArchDevil="ArchDevil",Gi.Skeleton="Skeleton",Gi.SkeletonWarrior="SkeletonWarrior",Gi.WalkingDead="WalkingDead",Gi.Zombie="Zombie",Gi.Wight="Wight",Gi.Wraith="Wraith",Gi.Vampire="Vampire",Gi.VampireLord="VampireLord",Gi.Lich="Lich",Gi.PowerLich="PowerLich",Gi.BlackKnight="BlackKnight",Gi.DreadKnight="DreadKnight",Gi.BoneDragon="BoneDragon",Gi.GhostDragon="GhostDragon",Gi.Troglodyte="Troglodyte",Gi.InfernalTroglodyte="InfernalTroglodyte",Gi.Harpy="Harpy",Gi.HarpyHag="HarpyHag",Gi.Beholder="Beholder",Gi.EvilEye="EvilEye",Gi.Medusa="Medusa",Gi.MedusaQueen="MedusaQueen",Gi.Minotaur="Minotaur",Gi.MinotaurKing="MinotaurKing",Gi.Manticore="Manticore",Gi.Scorpicore="Scorpicore",Gi.RedDragon="RedDragon",Gi.BlackDragon="BlackDragon",Gi.Goblin="Goblin",Gi.Hobgoblin="Hobgoblin",Gi.WolfRider="WolfRider",Gi.WolfRaider="WolfRaider",Gi.Orc="Orc",Gi.OrcChieftain="OrcChieftain",Gi.Ogre="Ogre",Gi.OgreMage="OgreMage",Gi.Roc="Roc",Gi.Thunderbird="Thunderbird",Gi.Cyclop="Cyclop",Gi.CyclopKing="CyclopKing",Gi.Behemoth="Behemoth",Gi.AncientBehemoth="AncientBehemoth",Gi.Gnoll="Gnoll",Gi.GnollMarauder="GnollMarauder",Gi.Lizardman="Lizardman",Gi.LizardWarrior="LizardWarrior",Gi.Gorgon="Gorgon",Gi.MightyGorgon="MightyGorgon",Gi.SerpentFly="SerpentFly",Gi.DragonFly="DragonFly",Gi.Basilisk="Basilisk",Gi.GreaterBasilisk="GreaterBasilisk",Gi.Wyvern="Wyvern",Gi.WyvernMonarch="WyvernMonarch",Gi.Hydra="Hydra",Gi.ChaosHydra="ChaosHydra",Gi.AirElemental="AirElemental",Gi.EarthElemental="EarthElemental",Gi.FireElemental="FireElemental",Gi.WaterElemental="WaterElemental",Gi.GoldGolem="GoldGolem",Gi.DiamondGolem="DiamondGolem",Gi.Pixie="Pixie",Gi.Sprite="Sprite",Gi.PsychicElemental="PsychicElemental",Gi.MagicElemental="MagicElemental",Gi.IceElemental="IceElemental",Gi.MagmaElemental="MagmaElemental",Gi.StormElemental="StormElemental",Gi.EnergyElemental="EnergyElemental",Gi.Firebird="Firebird",Gi.Phoenix="Phoenix",Gi.AzureDragon="AzureDragon",Gi.CrystalDragon="CrystalDragon",Gi.FaerieDragon="FaerieDragon",Gi.RustDragon="RustDragon",Gi.Enchanter="Enchanter",Gi.Sharpshooter="Sharpshooter",Gi.Halfling="Halfling",Gi.Peasant="Peasant",Gi.Boar="Boar",Gi.Mummy="Mummy",Gi.Nomad="Nomad",Gi.Rogue="Rogue",Gi.Troll="Troll";const Li={[e.Creature.EMPTY]:-1,[e.Creature.Pikeman]:0,[e.Creature.Halberdier]:1,[e.Creature.Archer]:2,[e.Creature.Marksman]:3,[e.Creature.Griffin]:4,[e.Creature.RoyalGriffin]:5,[e.Creature.Swordsman]:6,[e.Creature.Crusader]:7,[e.Creature.Monk]:8,[e.Creature.Zealot]:9,[e.Creature.Cavalier]:10,[e.Creature.Champion]:11,[e.Creature.Angel]:12,[e.Creature.Archangel]:13,[e.Creature.Centaur]:14,[e.Creature.CentaurCaptain]:15,[e.Creature.Dwarf]:16,[e.Creature.BattleDwarf]:17,[e.Creature.WoodElf]:18,[e.Creature.GrandElf]:19,[e.Creature.Pegasus]:20,[e.Creature.SilverPegasus]:21,[e.Creature.DendroidGuard]:22,[e.Creature.DendroidSoldier]:23,[e.Creature.Unicorn]:24,[e.Creature.WarUnicorn]:25,[e.Creature.GreenDragon]:26,[e.Creature.GoldDragon]:27,[e.Creature.Gremlin]:28,[e.Creature.MasterGremlin]:29,[e.Creature.StoneGargoyle]:30,[e.Creature.ObsidianGargoyle]:31,[e.Creature.StoneGolem]:32,[e.Creature.IronGolem]:33,[e.Creature.Mage]:34,[e.Creature.ArchMage]:35,[e.Creature.Genie]:36,[e.Creature.MasterGenie]:37,[e.Creature.Naga]:38,[e.Creature.NagaQueen]:39,[e.Creature.Giant]:40,[e.Creature.Titan]:41,[e.Creature.Imp]:42,[e.Creature.Familiar]:43,[e.Creature.Gog]:44,[e.Creature.Magog]:45,[e.Creature.HellHound]:46,[e.Creature.Cerberus]:47,[e.Creature.Demon]:48,[e.Creature.HornedDemon]:49,[e.Creature.PitFiend]:50,[e.Creature.PitLord]:51,[e.Creature.Efreeti]:52,[e.Creature.EfreetSultan]:53,[e.Creature.Devil]:54,[e.Creature.ArchDevil]:55,[e.Creature.Skeleton]:56,[e.Creature.SkeletonWarrior]:57,[e.Creature.WalkingDead]:58,[e.Creature.Zombie]:59,[e.Creature.Wight]:60,[e.Creature.Wraith]:61,[e.Creature.Vampire]:62,[e.Creature.VampireLord]:63,[e.Creature.Lich]:64,[e.Creature.PowerLich]:65,[e.Creature.BlackKnight]:66,[e.Creature.DreadKnight]:67,[e.Creature.BoneDragon]:68,[e.Creature.GhostDragon]:69,[e.Creature.Troglodyte]:70,[e.Creature.InfernalTroglodyte]:71,[e.Creature.Harpy]:72,[e.Creature.HarpyHag]:73,[e.Creature.Beholder]:74,[e.Creature.EvilEye]:75,[e.Creature.Medusa]:76,[e.Creature.MedusaQueen]:77,[e.Creature.Minotaur]:78,[e.Creature.MinotaurKing]:79,[e.Creature.Manticore]:80,[e.Creature.Scorpicore]:81,[e.Creature.RedDragon]:82,[e.Creature.BlackDragon]:83,[e.Creature.Goblin]:84,[e.Creature.Hobgoblin]:85,[e.Creature.WolfRider]:86,[e.Creature.WolfRaider]:87,[e.Creature.Orc]:88,[e.Creature.OrcChieftain]:89,[e.Creature.Ogre]:90,[e.Creature.OgreMage]:91,[e.Creature.Roc]:92,[e.Creature.Thunderbird]:93,[e.Creature.Cyclop]:94,[e.Creature.CyclopKing]:95,[e.Creature.Behemoth]:96,[e.Creature.AncientBehemoth]:97,[e.Creature.Gnoll]:98,[e.Creature.GnollMarauder]:99,[e.Creature.Lizardman]:100,[e.Creature.LizardWarrior]:101,[e.Creature.Gorgon]:102,[e.Creature.MightyGorgon]:103,[e.Creature.SerpentFly]:104,[e.Creature.DragonFly]:105,[e.Creature.Basilisk]:106,[e.Creature.GreaterBasilisk]:107,[e.Creature.Wyvern]:108,[e.Creature.WyvernMonarch]:109,[e.Creature.Hydra]:110,[e.Creature.ChaosHydra]:111,[e.Creature.AirElemental]:112,[e.Creature.EarthElemental]:113,[e.Creature.FireElemental]:114,[e.Creature.WaterElemental]:115,[e.Creature.GoldGolem]:116,[e.Creature.DiamondGolem]:117,[e.Creature.Pixie]:118,[e.Creature.Sprite]:119,[e.Creature.PsychicElemental]:120,[e.Creature.MagicElemental]:121,[e.Creature.IceElemental]:123,[e.Creature.MagmaElemental]:125,[e.Creature.StormElemental]:127,[e.Creature.EnergyElemental]:129,[e.Creature.Firebird]:130,[e.Creature.Phoenix]:131,[e.Creature.AzureDragon]:132,[e.Creature.CrystalDragon]:133,[e.Creature.FaerieDragon]:134,[e.Creature.RustDragon]:135,[e.Creature.Enchanter]:136,[e.Creature.Sharpshooter]:137,[e.Creature.Halfling]:138,[e.Creature.Peasant]:139,[e.Creature.Boar]:140,[e.Creature.Mummy]:141,[e.Creature.Nomad]:142,[e.Creature.Rogue]:143,[e.Creature.Troll]:144};var Fi,xi;(Fi=e.Hero||(e.Hero={})).NONE="NONE",Fi.Orrin="Orrin",Fi.Valeska="Valeska",Fi.Edric="Edric",Fi.Sylvia="Sylvia",Fi.LordHaart="LordHaart",Fi.Sorsha="Sorsha",Fi.Christian="Christian",Fi.Tyris="Tyris",Fi.Rion="Rion",Fi.Adela="Adela",Fi.Cuthbert="Cuthbert",Fi.Adelaide="Adelaide",Fi.Ingham="Ingham",Fi.Sanya="Sanya",Fi.Loynis="Loynis",Fi.Caitlin="Caitlin",Fi.Mephala="Mephala",Fi.Ufretin="Ufretin",Fi.Jenova="Jenova",Fi.Ryland="Ryland",Fi.Thorgrim="Thorgrim",Fi.Ivor="Ivor",Fi.Clancy="Clancy",Fi.Kyrre="Kyrre",Fi.Coronius="Coronius",Fi.Uland="Uland",Fi.Elleshar="Elleshar",Fi.Gem="Gem",Fi.Malcom="Malcom",Fi.Melodia="Melodia",Fi.Alagar="Alagar",Fi.Aeris="Aeris",Fi.Piquedram="Piquedram",Fi.Thane="Thane",Fi.Josephine="Josephine",Fi.Neela="Neela",Fi.Torosar="Torosar",Fi.Fafner="Fafner",Fi.Rissa="Rissa",Fi.Iona="Iona",Fi.Astral="Astral",Fi.Halon="Halon",Fi.Serena="Serena",Fi.Daremyth="Daremyth",Fi.Theodorus="Theodorus",Fi.Solmyr="Solmyr",Fi.Cyra="Cyra",Fi.Aine="Aine",Fi.Fiona="Fiona",Fi.Rashka="Rashka",Fi.Marius="Marius",Fi.Ignatius="Ignatius",Fi.Octavia="Octavia",Fi.Calh="Calh",Fi.Pyre="Pyre",Fi.Nymus="Nymus",Fi.Ayden="Ayden",Fi.Xyron="Xyron",Fi.Axsis="Axsis",Fi.Olema="Olema",Fi.Calid="Calid",Fi.Ash="Ash",Fi.Zydar="Zydar",Fi.Xarfax="Xarfax",Fi.Straker="Straker",Fi.Vokial="Vokial",Fi.Moandor="Moandor",Fi.Charna="Charna",Fi.Tamika="Tamika",Fi.Isra="Isra",Fi.Clavius="Clavius",Fi.Galthran="Galthran",Fi.Septienna="Septienna",Fi.Aislinn="Aislinn",Fi.Sandro="Sandro",Fi.Nimbus="Nimbus",Fi.Thant="Thant",Fi.Xsi="Xsi",Fi.Vidomina="Vidomina",Fi.Nagash="Nagash",Fi.Lorelei="Lorelei",Fi.Arlach="Arlach",Fi.Dace="Dace",Fi.Ajit="Ajit",Fi.Damacon="Damacon",Fi.Gunnar="Gunnar",Fi.Synca="Synca",Fi.Shakti="Shakti",Fi.Alamar="Alamar",Fi.Jaegar="Jaegar",Fi.Malekith="Malekith",Fi.Jeddite="Jeddite",Fi.Geon="Geon",Fi.Deemer="Deemer",Fi.Sephinroth="Sephinroth",Fi.Darkstorm="Darkstorm",Fi.Yog="Yog",Fi.Gurnisson="Gurnisson",Fi.Jabarkas="Jabarkas",Fi.Shiva="Shiva",Fi.Gretchin="Gretchin",Fi.Krellion="Krellion",Fi.CragHack="CragHack",Fi.Tyraxor="Tyraxor",Fi.Gird="Gird",Fi.Vey="Vey",Fi.Dessa="Dessa",Fi.Terek="Terek",Fi.Zubin="Zubin",Fi.Gundula="Gundula",Fi.Oris="Oris",Fi.Saurug="Saurug",Fi.Bron="Bron",Fi.Drakon="Drakon",Fi.Wystan="Wystan",Fi.Tazar="Tazar",Fi.Alkin="Alkin",Fi.Korbac="Korbac",Fi.Gerwulf="Gerwulf",Fi.Broghild="Broghild",Fi.Mirlanda="Mirlanda",Fi.Rosic="Rosic",Fi.Voy="Voy",Fi.Verdish="Verdish",Fi.Merist="Merist",Fi.Styg="Styg",Fi.Andra="Andra",Fi.Tiva="Tiva",Fi.Pasis="Pasis",Fi.Thunar="Thunar",Fi.Ignissa="Ignissa",Fi.Lacus="Lacus",Fi.Monere="Monere",Fi.Erdamon="Erdamon",Fi.Fiur="Fiur",Fi.Kalt="Kalt",Fi.Luna="Luna",Fi.Brissa="Brissa",Fi.Ciele="Ciele",Fi.Labetha="Labetha",Fi.Inteus="Inteus",Fi.Aenain="Aenain",Fi.Gelare="Gelare",Fi.Grindan="Grindan",Fi.SirMullich="SirMullich",Fi.Adrienne="Adrienne",Fi.Catherine="Catherine",Fi.Dracon="Dracon",Fi.Gelu="Gelu",Fi.Kilgor="Kilgor",Fi.UndeadLordHaart="UndeadLordHaart",Fi.Mutare="Mutare",Fi.Roland="Roland",Fi.MutareDrake="MutareDrake",Fi.Boragus="Boragus",Fi.Xeron="Xeron",(xi=e.HeroClass||(e.HeroClass={})).Knight="Knight",xi.Cleric="Cleric",xi.Ranger="Ranger",xi.Druid="Druid",xi.Alchemist="Alchemist",xi.Wizard="Wizard",xi.Demoniac="Demoniac",xi.Heretic="Heretic",xi.DeathKnignt="DeathKnignt",xi.Necromancer="Necromancer",xi.Overlord="Overlord",xi.Warlock="Warlock",xi.Barbarian="Barbarian",xi.BattleMage="BattleMage",xi.Beastmaster="Beastmaster",xi.Witch="Witch",xi.Planeswalker="Planeswalker",xi.Elementalist="Elementalist";const Wi={[e.Hero.Orrin]:0,[e.Hero.Valeska]:1,[e.Hero.Edric]:2,[e.Hero.Sylvia]:3,[e.Hero.LordHaart]:4,[e.Hero.Sorsha]:5,[e.Hero.Christian]:6,[e.Hero.Tyris]:7,[e.Hero.Rion]:8,[e.Hero.Adela]:9,[e.Hero.Cuthbert]:10,[e.Hero.Adelaide]:11,[e.Hero.Ingham]:12,[e.Hero.Sanya]:13,[e.Hero.Loynis]:14,[e.Hero.Caitlin]:15,[e.Hero.Mephala]:16,[e.Hero.Ufretin]:17,[e.Hero.Jenova]:18,[e.Hero.Ryland]:19,[e.Hero.Thorgrim]:20,[e.Hero.Ivor]:21,[e.Hero.Clancy]:22,[e.Hero.Kyrre]:23,[e.Hero.Coronius]:24,[e.Hero.Uland]:25,[e.Hero.Elleshar]:26,[e.Hero.Gem]:27,[e.Hero.Malcom]:28,[e.Hero.Melodia]:29,[e.Hero.Alagar]:30,[e.Hero.Aeris]:31,[e.Hero.Piquedram]:32,[e.Hero.Thane]:33,[e.Hero.Josephine]:34,[e.Hero.Neela]:35,[e.Hero.Torosar]:36,[e.Hero.Fafner]:37,[e.Hero.Rissa]:38,[e.Hero.Iona]:39,[e.Hero.Astral]:40,[e.Hero.Halon]:41,[e.Hero.Serena]:42,[e.Hero.Daremyth]:43,[e.Hero.Theodorus]:44,[e.Hero.Solmyr]:45,[e.Hero.Cyra]:46,[e.Hero.Aine]:47,[e.Hero.Fiona]:48,[e.Hero.Rashka]:49,[e.Hero.Marius]:50,[e.Hero.Ignatius]:51,[e.Hero.Octavia]:52,[e.Hero.Calh]:53,[e.Hero.Pyre]:54,[e.Hero.Nymus]:55,[e.Hero.Ayden]:56,[e.Hero.Xyron]:57,[e.Hero.Axsis]:58,[e.Hero.Olema]:59,[e.Hero.Calid]:60,[e.Hero.Ash]:61,[e.Hero.Zydar]:62,[e.Hero.Xarfax]:63,[e.Hero.Straker]:64,[e.Hero.Vokial]:65,[e.Hero.Moandor]:66,[e.Hero.Charna]:67,[e.Hero.Tamika]:68,[e.Hero.Isra]:69,[e.Hero.Clavius]:70,[e.Hero.Galthran]:71,[e.Hero.Septienna]:72,[e.Hero.Aislinn]:73,[e.Hero.Sandro]:74,[e.Hero.Nimbus]:75,[e.Hero.Thant]:76,[e.Hero.Xsi]:77,[e.Hero.Vidomina]:78,[e.Hero.Nagash]:79,[e.Hero.Lorelei]:80,[e.Hero.Arlach]:81,[e.Hero.Dace]:82,[e.Hero.Ajit]:83,[e.Hero.Damacon]:84,[e.Hero.Gunnar]:85,[e.Hero.Synca]:86,[e.Hero.Shakti]:87,[e.Hero.Alamar]:88,[e.Hero.Jaegar]:89,[e.Hero.Malekith]:90,[e.Hero.Jeddite]:91,[e.Hero.Geon]:92,[e.Hero.Deemer]:93,[e.Hero.Sephinroth]:94,[e.Hero.Darkstorm]:95,[e.Hero.Yog]:96,[e.Hero.Gurnisson]:97,[e.Hero.Jabarkas]:98,[e.Hero.Shiva]:99,[e.Hero.Gretchin]:100,[e.Hero.Krellion]:101,[e.Hero.CragHack]:102,[e.Hero.Tyraxor]:103,[e.Hero.Gird]:104,[e.Hero.Vey]:105,[e.Hero.Dessa]:106,[e.Hero.Terek]:107,[e.Hero.Zubin]:108,[e.Hero.Gundula]:109,[e.Hero.Oris]:110,[e.Hero.Saurug]:111,[e.Hero.Bron]:112,[e.Hero.Drakon]:113,[e.Hero.Wystan]:114,[e.Hero.Tazar]:115,[e.Hero.Alkin]:116,[e.Hero.Korbac]:117,[e.Hero.Gerwulf]:118,[e.Hero.Broghild]:119,[e.Hero.Mirlanda]:120,[e.Hero.Rosic]:121,[e.Hero.Voy]:122,[e.Hero.Verdish]:123,[e.Hero.Merist]:124,[e.Hero.Styg]:125,[e.Hero.Andra]:126,[e.Hero.Tiva]:127,[e.Hero.Pasis]:128,[e.Hero.Thunar]:129,[e.Hero.Ignissa]:130,[e.Hero.Lacus]:131,[e.Hero.Monere]:132,[e.Hero.Erdamon]:133,[e.Hero.Fiur]:134,[e.Hero.Kalt]:135,[e.Hero.Luna]:136,[e.Hero.Brissa]:137,[e.Hero.Ciele]:138,[e.Hero.Labetha]:139,[e.Hero.Inteus]:140,[e.Hero.Aenain]:141,[e.Hero.Gelare]:142,[e.Hero.Grindan]:143,[e.Hero.SirMullich]:144,[e.Hero.Adrienne]:145,[e.Hero.Catherine]:146,[e.Hero.Dracon]:147,[e.Hero.Gelu]:148,[e.Hero.Kilgor]:149,[e.Hero.UndeadLordHaart]:150,[e.Hero.Mutare]:151,[e.Hero.Roland]:152,[e.Hero.MutareDrake]:153,[e.Hero.Boragus]:154,[e.Hero.Xeron]:155,[e.Hero.NONE]:255},zi={[e.HeroClass.Knight]:0,[e.HeroClass.Cleric]:1,[e.HeroClass.Ranger]:2,[e.HeroClass.Druid]:3,[e.HeroClass.Alchemist]:4,[e.HeroClass.Wizard]:5,[e.HeroClass.Demoniac]:6,[e.HeroClass.Heretic]:7,[e.HeroClass.DeathKnignt]:8,[e.HeroClass.Necromancer]:9,[e.HeroClass.Overlord]:10,[e.HeroClass.Warlock]:11,[e.HeroClass.Barbarian]:12,[e.HeroClass.BattleMage]:13,[e.HeroClass.Beastmaster]:14,[e.HeroClass.Witch]:15,[e.HeroClass.Planeswalker]:16,[e.HeroClass.Elementalist]:17};var Vi,Ni;(Vi=e.MetaType||(e.MetaType={})).None="None",Vi.AbandonedMine="AbandonedMine",Vi.Artifact="Artifact",Vi.Dwelling="Dwelling",Vi.Event="Event",Vi.Garrison="Garrison",Vi.Boat="Boat",Vi.ImpassableTerrain="ImpassableTerrain",Vi.PassableTerrain="PassableTerrain",Vi.Treasure="Treasure",Vi.Visitable="Visitable",Vi.Grail="Grail",Vi.Hero="Hero",Vi.Lighthouse="Lighthouse",Vi.MonolithTwoWay="MonolithTwoWay",Vi.Creature="Creature",Vi.OceanBottle="OceanBottle",Vi.PandorasBox="PandorasBox",Vi.PlaceholderHero="PlaceholderHero",Vi.Prison="Prison",Vi.QuestGuard="QuestGuard",Vi.RandomDwelling="RandomDwelling",Vi.RandomDwellingAlignment="RandomDwellingAlignment",Vi.RandomDwellingLevel="RandomDwellingLevel",Vi.RandomHero="RandomHero",Vi.Resource="Resource",Vi.ResourceGenerator="ResourceGenerator",Vi.Scholar="Scholar",Vi.SeersHut="SeersHut",Vi.Shipyard="Shipyard",Vi.Shrine="Shrine",Vi.Sign="Sign",Vi.SpellScroll="SpellScroll",Vi.SubterraneanGate="SubterraneanGate",Vi.Town="Town",Vi.WitchHut="WitchHut",(Ni=e.ObjectType||(e.ObjectType={})).NoObj="NoObj",Ni.None0="None0",Ni.DecorativeTown="DecorativeTown",Ni.AltarOfSacrifice="AltarOfSacrifice",Ni.AnchorPoint="AnchorPoint",Ni.Arena="Arena",Ni.Artifact="Artifact",Ni.PandorasBox="PandorasBox",Ni.BlackMarket="BlackMarket",Ni.Boat="Boat",Ni.Borderguard="Borderguard",Ni.Keymaster="Keymaster",Ni.Buoy="Buoy",Ni.Campfire="Campfire",Ni.Cartographer="Cartographer",Ni.SwanPond="SwanPond",Ni.CoverOfDarkness="CoverOfDarkness",Ni.CreatureBank="CreatureBank",Ni.CreatureGenerator1="CreatureGenerator1",Ni.CreatureGenerator2="CreatureGenerator2",Ni.CreatureGenerator3="CreatureGenerator3",Ni.CreatureGenerator4="CreatureGenerator4",Ni.CursedGround1="CursedGround1",Ni.Corpse="Corpse",Ni.MarlettoTower="MarlettoTower",Ni.DerelictShip="DerelictShip",Ni.DragonUtopia="DragonUtopia",Ni.Event="Event",Ni.EyeOfMagi="EyeOfMagi",Ni.FaerieRing="FaerieRing",Ni.Flotsam="Flotsam",Ni.FountainOfFortune="FountainOfFortune",Ni.FountainOfYouth="FountainOfYouth",Ni.GardenOfRevelation="GardenOfRevelation",Ni.Garrison="Garrison",Ni.Hero="Hero",Ni.HillFort="HillFort",Ni.Grail="Grail",Ni.HutOfMagi="HutOfMagi",Ni.IdolOfFortune="IdolOfFortune",Ni.LeanTo="LeanTo",Ni.Blank40="Blank40",Ni.LibraryOfEnlightenment="LibraryOfEnlightenment",Ni.Lighthouse="Lighthouse",Ni.MonolithOneWayEntrance="MonolithOneWayEntrance",Ni.MonolithOneWayExit="MonolithOneWayExit",Ni.MonolithTwoWay="MonolithTwoWay",Ni.MagicPlains1="MagicPlains1",Ni.SchoolOfMagic="SchoolOfMagic",Ni.MagicSpring="MagicSpring",Ni.MagicWell="MagicWell",Ni.MarketOfTime="MarketOfTime",Ni.MercenaryCamp="MercenaryCamp",Ni.Mermaid="Mermaid",Ni.Mine="Mine",Ni.Creature="Creature",Ni.MysticalGarden="MysticalGarden",Ni.Oasis="Oasis",Ni.Obelisk="Obelisk",Ni.RedwoodObservatory="RedwoodObservatory",Ni.OceanBottle="OceanBottle",Ni.PillarOfFire="PillarOfFire",Ni.StarAxis="StarAxis",Ni.Prison="Prison",Ni.Pyramid="Pyramid",Ni.WogObject="WogObject",Ni.RallyFlag="RallyFlag",Ni.RandomArt="RandomArt",Ni.RandomTreasureArt="RandomTreasureArt",Ni.RandomMinorArt="RandomMinorArt",Ni.RandomMajorArt="RandomMajorArt",Ni.RandomRelicArt="RandomRelicArt",Ni.RandomHero="RandomHero",Ni.RandomCreature="RandomCreature",Ni.RandomCreatureL1="RandomCreatureL1",Ni.RandomCreatureL2="RandomCreatureL2",Ni.RandomCreatureL3="RandomCreatureL3",Ni.RandomCreatureL4="RandomCreatureL4",Ni.RandomResource="RandomResource",Ni.RandomTown="RandomTown",Ni.RefugeeCamp="RefugeeCamp",Ni.Resource="Resource",Ni.Sanctuary="Sanctuary",Ni.Scholar="Scholar",Ni.SeaChest="SeaChest",Ni.SeerHut="SeerHut",Ni.Crypt="Crypt",Ni.Shipwreck="Shipwreck",Ni.ShipwreckSurvivor="ShipwreckSurvivor",Ni.Shipyard="Shipyard",Ni.ShrineOfMagicIncantation="ShrineOfMagicIncantation",Ni.ShrineOfMagicGesture="ShrineOfMagicGesture",Ni.ShrineOfMagicThought="ShrineOfMagicThought",Ni.Sign="Sign",Ni.Sirens="Sirens",Ni.SpellScroll="SpellScroll",Ni.Stables="Stables",Ni.Tavern="Tavern",Ni.Temple="Temple",Ni.DenOfThieves="DenOfThieves",Ni.Town="Town",Ni.TradingPost="TradingPost",Ni.LearningStone="LearningStone",Ni.TreasureChest="TreasureChest",Ni.TreeOfKnowledge="TreeOfKnowledge",Ni.SubterraneanGate="SubterraneanGate",Ni.University="University",Ni.Wagon="Wagon",Ni.WarMachineFactory="WarMachineFactory",Ni.SchoolOfWar="SchoolOfWar",Ni.WarriorsTomb="WarriorsTomb",Ni.WaterWheel="WaterWheel",Ni.WateringHole="WateringHole",Ni.Whirlpool="Whirlpool",Ni.Windmill="Windmill",Ni.WitchHut="WitchHut",Ni.ImpassableBrush="ImpassableBrush",Ni.ImpassableBush="ImpassableBush",Ni.ImpassableCactus="ImpassableCactus",Ni.ImpassableCanyon="ImpassableCanyon",Ni.ImpassableCrater="ImpassableCrater",Ni.ImpassableDeadvegetation="ImpassableDeadvegetation",Ni.ImpassableFlowers="ImpassableFlowers",Ni.ImpassableFrozenlike="ImpassableFrozenlike",Ni.ImpassableHedge="ImpassableHedge",Ni.ImpassableHill="ImpassableHill",Ni.Hole="Hole",Ni.PassableKelp="PassableKelp",Ni.ImpassableLake="ImpassableLake",Ni.ImpassableLavaflow="ImpassableLavaflow",Ni.ImpassableLavalake="ImpassableLavalake",Ni.ImpassableMushrooms="ImpassableMushrooms",Ni.ImpassableLog="ImpassableLog",Ni.ImpassableMandrake="ImpassableMandrake",Ni.ImpassableMoss="ImpassableMoss",Ni.ImpassableMound="ImpassableMound",Ni.ImpassableMountain="ImpassableMountain",Ni.ImpassableOaktrees="ImpassableOaktrees",Ni.ImpassableOutcropping="ImpassableOutcropping",Ni.ImpassablePinetrees="ImpassablePinetrees",Ni.ImpassablePlant="ImpassablePlant",Ni.Passable139="Passable139",Ni.Passable140="Passable140",Ni.Passable141="Passable141",Ni.Passable142="Passable142",Ni.ImpassableRiverdelta="ImpassableRiverdelta",Ni.Passable144="Passable144",Ni.Passable145="Passable145",Ni.Passable146="Passable146",Ni.ImpassableRock="ImpassableRock",Ni.ImpassableSanddune="ImpassableSanddune",Ni.ImpassableSandpit="ImpassableSandpit",Ni.ImpassableShrub="ImpassableShrub",Ni.ImpassableSkull="ImpassableSkull",Ni.ImpassableStalagmite="ImpassableStalagmite",Ni.ImpassableStump="ImpassableStump",Ni.ImpassableTarpit="ImpassableTarpit",Ni.ImpassableTrees="ImpassableTrees",Ni.ImpassableVine="ImpassableVine",Ni.ImpassableVolcanicvent="ImpassableVolcanicvent",Ni.ImpassableVolcano="ImpassableVolcano",Ni.ImpassableWillowtrees="ImpassableWillowtrees",Ni.ImpassableYuccatrees="ImpassableYuccatrees",Ni.ImpassableReef="ImpassableReef",Ni.RandomCreatureL5="RandomCreatureL5",Ni.RandomCreatureL6="RandomCreatureL6",Ni.RandomCreatureL7="RandomCreatureL7",Ni.ImpassableBrush2="ImpassableBrush2",Ni.ImpassableBush2="ImpassableBush2",Ni.ImpassableCactus2="ImpassableCactus2",Ni.ImpassableCanyon2="ImpassableCanyon2",Ni.ImpassableCrater2="ImpassableCrater2",Ni.ImpassableDeadvegetation2="ImpassableDeadvegetation2",Ni.ImpassableFlowers2="ImpassableFlowers2",Ni.ImpassableFrozenlike2="ImpassableFrozenlike2",Ni.ImpassableHedge2="ImpassableHedge2",Ni.ImpassableHill2="ImpassableHill2",Ni.PassableHole2="PassableHole2",Ni.PassableKelp2="PassableKelp2",Ni.ImpassableLake2="ImpassableLake2",Ni.ImpassableLavaflow2="ImpassableLavaflow2",Ni.ImpassableLavalake2="ImpassableLavalake2",Ni.ImpassableMushrooms2="ImpassableMushrooms2",Ni.ImpassableLog2="ImpassableLog2",Ni.ImpassableMandrake2="ImpassableMandrake2",Ni.ImpassableMoss2="ImpassableMoss2",Ni.ImpassableMound2="ImpassableMound2",Ni.ImpassableMountain2="ImpassableMountain2",Ni.ImpassableOaktrees2="ImpassableOaktrees2",Ni.ImpassableOutcropping2="ImpassableOutcropping2",Ni.ImpassablePinetrees2="ImpassablePinetrees2",Ni.ImpassablePlant2="ImpassablePlant2",Ni.ImpassableRiverdelta2="ImpassableRiverdelta2",Ni.ImpassableRock2="ImpassableRock2",Ni.ImpassableSanddune2="ImpassableSanddune2",Ni.ImpassableSandpit2="ImpassableSandpit2",Ni.ImpassableShrub2="ImpassableShrub2",Ni.ImpassableSkull2="ImpassableSkull2",Ni.ImpassableStalagmite2="ImpassableStalagmite2",Ni.ImpassableStump2="ImpassableStump2",Ni.ImpassableTarpit2="ImpassableTarpit2",Ni.ImpassableTrees2="ImpassableTrees2",Ni.ImpassableVine2="ImpassableVine2",Ni.ImpassableVolcanicvent2="ImpassableVolcanicvent2",Ni.ImpassableVolcano2="ImpassableVolcano2",Ni.ImpassableWillowtrees2="ImpassableWillowtrees2",Ni.ImpassableYuccatrees2="ImpassableYuccatrees2",Ni.ImpassableReef2="ImpassableReef2",Ni.ImpassableDeserthills="ImpassableDeserthills",Ni.ImpassableDirthills="ImpassableDirthills",Ni.ImpassableGrasshills="ImpassableGrasshills",Ni.ImpassableRoughhills="ImpassableRoughhills",Ni.ImpassableSubterraneanrocks="ImpassableSubterraneanrocks",Ni.ImpassableSwampFoliage="ImpassableSwampFoliage",Ni.BorderGate="BorderGate",Ni.FreelancersGuild="FreelancersGuild",Ni.HeroPlaceholder="HeroPlaceholder",Ni.QuestGuard="QuestGuard",Ni.RandomDwelling="RandomDwelling",Ni.RandomDwellingLevel="RandomDwellingLevel",Ni.RandomDwellingAlignment="RandomDwellingAlignment",Ni.Garrison2="Garrison2",Ni.AbandonedMine="AbandonedMine",Ni.TradingPostSnow="TradingPostSnow",Ni.CloverField="CloverField",Ni.CursedGround2="CursedGround2",Ni.EvilFog="EvilFog",Ni.FavorableWinds="FavorableWinds",Ni.FieryFields="FieryFields",Ni.HolyGrounds="HolyGrounds",Ni.LucidPools="LucidPools",Ni.MagicClouds="MagicClouds",Ni.MagicPlains2="MagicPlains2",Ni.Rocklands="Rocklands";const Ui={[e.ObjectType.NoObj]:-1,[e.ObjectType.None0]:0,[e.ObjectType.DecorativeTown]:1,[e.ObjectType.AltarOfSacrifice]:2,[e.ObjectType.AnchorPoint]:3,[e.ObjectType.Arena]:4,[e.ObjectType.Artifact]:5,[e.ObjectType.PandorasBox]:6,[e.ObjectType.BlackMarket]:7,[e.ObjectType.Boat]:8,[e.ObjectType.Borderguard]:9,[e.ObjectType.Keymaster]:10,[e.ObjectType.Buoy]:11,[e.ObjectType.Campfire]:12,[e.ObjectType.Cartographer]:13,[e.ObjectType.SwanPond]:14,[e.ObjectType.CoverOfDarkness]:15,[e.ObjectType.CreatureBank]:16,[e.ObjectType.CreatureGenerator1]:17,[e.ObjectType.CreatureGenerator2]:18,[e.ObjectType.CreatureGenerator3]:19,[e.ObjectType.CreatureGenerator4]:20,[e.ObjectType.CursedGround1]:21,[e.ObjectType.Corpse]:22,[e.ObjectType.MarlettoTower]:23,[e.ObjectType.DerelictShip]:24,[e.ObjectType.DragonUtopia]:25,[e.ObjectType.Event]:26,[e.ObjectType.EyeOfMagi]:27,[e.ObjectType.FaerieRing]:28,[e.ObjectType.Flotsam]:29,[e.ObjectType.FountainOfFortune]:30,[e.ObjectType.FountainOfYouth]:31,[e.ObjectType.GardenOfRevelation]:32,[e.ObjectType.Garrison]:33,[e.ObjectType.Hero]:34,[e.ObjectType.HillFort]:35,[e.ObjectType.Grail]:36,[e.ObjectType.HutOfMagi]:37,[e.ObjectType.IdolOfFortune]:38,[e.ObjectType.LeanTo]:39,[e.ObjectType.Blank40]:40,[e.ObjectType.LibraryOfEnlightenment]:41,[e.ObjectType.Lighthouse]:42,[e.ObjectType.MonolithOneWayEntrance]:43,[e.ObjectType.MonolithOneWayExit]:44,[e.ObjectType.MonolithTwoWay]:45,[e.ObjectType.MagicPlains1]:46,[e.ObjectType.SchoolOfMagic]:47,[e.ObjectType.MagicSpring]:48,[e.ObjectType.MagicWell]:49,[e.ObjectType.MarketOfTime]:50,[e.ObjectType.MercenaryCamp]:51,[e.ObjectType.Mermaid]:52,[e.ObjectType.Mine]:53,[e.ObjectType.Creature]:54,[e.ObjectType.MysticalGarden]:55,[e.ObjectType.Oasis]:56,[e.ObjectType.Obelisk]:57,[e.ObjectType.RedwoodObservatory]:58,[e.ObjectType.OceanBottle]:59,[e.ObjectType.PillarOfFire]:60,[e.ObjectType.StarAxis]:61,[e.ObjectType.Prison]:62,[e.ObjectType.Pyramid]:63,[e.ObjectType.WogObject]:63,[e.ObjectType.RallyFlag]:64,[e.ObjectType.RandomArt]:65,[e.ObjectType.RandomTreasureArt]:66,[e.ObjectType.RandomMinorArt]:67,[e.ObjectType.RandomMajorArt]:68,[e.ObjectType.RandomRelicArt]:69,[e.ObjectType.RandomHero]:70,[e.ObjectType.RandomCreature]:71,[e.ObjectType.RandomCreatureL1]:72,[e.ObjectType.RandomCreatureL2]:73,[e.ObjectType.RandomCreatureL3]:74,[e.ObjectType.RandomCreatureL4]:75,[e.ObjectType.RandomResource]:76,[e.ObjectType.RandomTown]:77,[e.ObjectType.RefugeeCamp]:78,[e.ObjectType.Resource]:79,[e.ObjectType.Sanctuary]:80,[e.ObjectType.Scholar]:81,[e.ObjectType.SeaChest]:82,[e.ObjectType.SeerHut]:83,[e.ObjectType.Crypt]:84,[e.ObjectType.Shipwreck]:85,[e.ObjectType.ShipwreckSurvivor]:86,[e.ObjectType.Shipyard]:87,[e.ObjectType.ShrineOfMagicIncantation]:88,[e.ObjectType.ShrineOfMagicGesture]:89,[e.ObjectType.ShrineOfMagicThought]:90,[e.ObjectType.Sign]:91,[e.ObjectType.Sirens]:92,[e.ObjectType.SpellScroll]:93,[e.ObjectType.Stables]:94,[e.ObjectType.Tavern]:95,[e.ObjectType.Temple]:96,[e.ObjectType.DenOfThieves]:97,[e.ObjectType.Town]:98,[e.ObjectType.TradingPost]:99,[e.ObjectType.LearningStone]:100,[e.ObjectType.TreasureChest]:101,[e.ObjectType.TreeOfKnowledge]:102,[e.ObjectType.SubterraneanGate]:103,[e.ObjectType.University]:104,[e.ObjectType.Wagon]:105,[e.ObjectType.WarMachineFactory]:106,[e.ObjectType.SchoolOfWar]:107,[e.ObjectType.WarriorsTomb]:108,[e.ObjectType.WaterWheel]:109,[e.ObjectType.WateringHole]:110,[e.ObjectType.Whirlpool]:111,[e.ObjectType.Windmill]:112,[e.ObjectType.WitchHut]:113,[e.ObjectType.ImpassableBrush]:114,[e.ObjectType.ImpassableBush]:115,[e.ObjectType.ImpassableCactus]:116,[e.ObjectType.ImpassableCanyon]:117,[e.ObjectType.ImpassableCrater]:118,[e.ObjectType.ImpassableDeadvegetation]:119,[e.ObjectType.ImpassableFlowers]:120,[e.ObjectType.ImpassableFrozenlike]:121,[e.ObjectType.ImpassableHedge]:122,[e.ObjectType.ImpassableHill]:123,[e.ObjectType.Hole]:124,[e.ObjectType.PassableKelp]:125,[e.ObjectType.ImpassableLake]:126,[e.ObjectType.ImpassableLavaflow]:127,[e.ObjectType.ImpassableLavalake]:128,[e.ObjectType.ImpassableMushrooms]:129,[e.ObjectType.ImpassableLog]:130,[e.ObjectType.ImpassableMandrake]:131,[e.ObjectType.ImpassableMoss]:132,[e.ObjectType.ImpassableMound]:133,[e.ObjectType.ImpassableMountain]:134,[e.ObjectType.ImpassableOaktrees]:135,[e.ObjectType.ImpassableOutcropping]:136,[e.ObjectType.ImpassablePinetrees]:137,[e.ObjectType.ImpassablePlant]:138,[e.ObjectType.Passable139]:139,[e.ObjectType.Passable140]:140,[e.ObjectType.Passable141]:141,[e.ObjectType.Passable142]:142,[e.ObjectType.ImpassableRiverdelta]:143,[e.ObjectType.Passable144]:144,[e.ObjectType.Passable145]:145,[e.ObjectType.Passable146]:146,[e.ObjectType.ImpassableRock]:147,[e.ObjectType.ImpassableSanddune]:148,[e.ObjectType.ImpassableSandpit]:149,[e.ObjectType.ImpassableShrub]:150,[e.ObjectType.ImpassableSkull]:151,[e.ObjectType.ImpassableStalagmite]:152,[e.ObjectType.ImpassableStump]:153,[e.ObjectType.ImpassableTarpit]:154,[e.ObjectType.ImpassableTrees]:155,[e.ObjectType.ImpassableVine]:156,[e.ObjectType.ImpassableVolcanicvent]:157,[e.ObjectType.ImpassableVolcano]:158,[e.ObjectType.ImpassableWillowtrees]:159,[e.ObjectType.ImpassableYuccatrees]:160,[e.ObjectType.ImpassableReef]:161,[e.ObjectType.RandomCreatureL5]:162,[e.ObjectType.RandomCreatureL6]:163,[e.ObjectType.RandomCreatureL7]:164,[e.ObjectType.ImpassableBrush2]:165,[e.ObjectType.ImpassableBush2]:166,[e.ObjectType.ImpassableCactus2]:167,[e.ObjectType.ImpassableCanyon2]:168,[e.ObjectType.ImpassableCrater2]:169,[e.ObjectType.ImpassableDeadvegetation2]:170,[e.ObjectType.ImpassableFlowers2]:171,[e.ObjectType.ImpassableFrozenlike2]:172,[e.ObjectType.ImpassableHedge2]:173,[e.ObjectType.ImpassableHill2]:174,[e.ObjectType.PassableHole2]:175,[e.ObjectType.PassableKelp2]:176,[e.ObjectType.ImpassableLake2]:177,[e.ObjectType.ImpassableLavaflow2]:178,[e.ObjectType.ImpassableLavalake2]:179,[e.ObjectType.ImpassableMushrooms2]:180,[e.ObjectType.ImpassableLog2]:181,[e.ObjectType.ImpassableMandrake2]:182,[e.ObjectType.ImpassableMoss2]:183,[e.ObjectType.ImpassableMound2]:184,[e.ObjectType.ImpassableMountain2]:185,[e.ObjectType.ImpassableOaktrees2]:186,[e.ObjectType.ImpassableOutcropping2]:187,[e.ObjectType.ImpassablePinetrees2]:188,[e.ObjectType.ImpassablePlant2]:189,[e.ObjectType.ImpassableRiverdelta2]:190,[e.ObjectType.ImpassableRock2]:191,[e.ObjectType.ImpassableSanddune2]:192,[e.ObjectType.ImpassableSandpit2]:193,[e.ObjectType.ImpassableShrub2]:194,[e.ObjectType.ImpassableSkull2]:195,[e.ObjectType.ImpassableStalagmite2]:196,[e.ObjectType.ImpassableStump2]:197,[e.ObjectType.ImpassableTarpit2]:198,[e.ObjectType.ImpassableTrees2]:199,[e.ObjectType.ImpassableVine2]:200,[e.ObjectType.ImpassableVolcanicvent2]:201,[e.ObjectType.ImpassableVolcano2]:202,[e.ObjectType.ImpassableWillowtrees2]:203,[e.ObjectType.ImpassableYuccatrees2]:204,[e.ObjectType.ImpassableReef2]:205,[e.ObjectType.ImpassableDeserthills]:206,[e.ObjectType.ImpassableDirthills]:207,[e.ObjectType.ImpassableGrasshills]:208,[e.ObjectType.ImpassableRoughhills]:209,[e.ObjectType.ImpassableSubterraneanrocks]:210,[e.ObjectType.ImpassableSwampFoliage]:211,[e.ObjectType.BorderGate]:212,[e.ObjectType.FreelancersGuild]:213,[e.ObjectType.HeroPlaceholder]:214,[e.ObjectType.QuestGuard]:215,[e.ObjectType.RandomDwelling]:216,[e.ObjectType.RandomDwellingLevel]:217,[e.ObjectType.RandomDwellingAlignment]:218,[e.ObjectType.Garrison2]:219,[e.ObjectType.AbandonedMine]:220,[e.ObjectType.TradingPostSnow]:221,[e.ObjectType.CloverField]:222,[e.ObjectType.CursedGround2]:223,[e.ObjectType.EvilFog]:224,[e.ObjectType.FavorableWinds]:225,[e.ObjectType.FieryFields]:226,[e.ObjectType.HolyGrounds]:227,[e.ObjectType.LucidPools]:228,[e.ObjectType.MagicClouds]:229,[e.ObjectType.MagicPlains2]:230,[e.ObjectType.Rocklands]:231},Ki={[e.ObjectType.NoObj]:e.MetaType.None,[e.ObjectType.None0]:e.MetaType.ImpassableTerrain,[e.ObjectType.Blank40]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableBrush]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableBush]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableCactus]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableCanyon]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableCrater]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableDeadvegetation]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableFlowers]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableFrozenlike]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableHedge]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableHill]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLake]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLavaflow]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLavalake]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMushrooms]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLog]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMandrake]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMoss]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMound]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMountain]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableOaktrees]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableOutcropping]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassablePinetrees]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassablePlant]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableRiverdelta]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableRock]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSanddune]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSandpit]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableShrub]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSkull]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableStalagmite]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableStump]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableTarpit]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableTrees]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableVine]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableVolcanicvent]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableVolcano]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableWillowtrees]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableYuccatrees]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableReef]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableBrush2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableBush2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableCactus2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableCanyon2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableCrater2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableDeadvegetation2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableFlowers2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableFrozenlike2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableHedge2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableHill2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLake2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLavaflow2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLavalake2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMushrooms2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableLog2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMandrake2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMoss2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMound2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableMountain2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableOaktrees2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableOutcropping2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassablePinetrees2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassablePlant2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableRiverdelta2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableRock2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSanddune2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSandpit2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableShrub2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSkull2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableStalagmite2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableStump2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableTarpit2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableTrees2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableVine2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableVolcanicvent2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableVolcano2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableWillowtrees2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableYuccatrees2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableReef2]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableDeserthills]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableDirthills]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableGrasshills]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableRoughhills]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSubterraneanrocks]:e.MetaType.ImpassableTerrain,[e.ObjectType.ImpassableSwampFoliage]:e.MetaType.ImpassableTerrain,[e.ObjectType.AltarOfSacrifice]:e.MetaType.Visitable,[e.ObjectType.AnchorPoint]:e.MetaType.Visitable,[e.ObjectType.Arena]:e.MetaType.Visitable,[e.ObjectType.BlackMarket]:e.MetaType.Visitable,[e.ObjectType.Cartographer]:e.MetaType.Visitable,[e.ObjectType.Buoy]:e.MetaType.Visitable,[e.ObjectType.SwanPond]:e.MetaType.Visitable,[e.ObjectType.CoverOfDarkness]:e.MetaType.Visitable,[e.ObjectType.CreatureBank]:e.MetaType.Visitable,[e.ObjectType.Corpse]:e.MetaType.Visitable,[e.ObjectType.MarlettoTower]:e.MetaType.Visitable,[e.ObjectType.DerelictShip]:e.MetaType.Visitable,[e.ObjectType.DragonUtopia]:e.MetaType.Visitable,[e.ObjectType.EyeOfMagi]:e.MetaType.Visitable,[e.ObjectType.FaerieRing]:e.MetaType.Visitable,[e.ObjectType.FountainOfFortune]:e.MetaType.Visitable,[e.ObjectType.FountainOfYouth]:e.MetaType.Visitable,[e.ObjectType.GardenOfRevelation]:e.MetaType.Visitable,[e.ObjectType.HillFort]:e.MetaType.Visitable,[e.ObjectType.HutOfMagi]:e.MetaType.Visitable,[e.ObjectType.IdolOfFortune]:e.MetaType.Visitable,[e.ObjectType.LeanTo]:e.MetaType.Visitable,[e.ObjectType.LibraryOfEnlightenment]:e.MetaType.Visitable,[e.ObjectType.SchoolOfMagic]:e.MetaType.Visitable,[e.ObjectType.MagicSpring]:e.MetaType.Visitable,[e.ObjectType.MagicWell]:e.MetaType.Visitable,[e.ObjectType.MercenaryCamp]:e.MetaType.Visitable,[e.ObjectType.Mermaid]:e.MetaType.Visitable,[e.ObjectType.MysticalGarden]:e.MetaType.Visitable,[e.ObjectType.Oasis]:e.MetaType.Visitable,[e.ObjectType.Obelisk]:e.MetaType.Visitable,[e.ObjectType.RedwoodObservatory]:e.MetaType.Visitable,[e.ObjectType.PillarOfFire]:e.MetaType.Visitable,[e.ObjectType.StarAxis]:e.MetaType.Visitable,[e.ObjectType.RallyFlag]:e.MetaType.Visitable,[e.ObjectType.Borderguard]:e.MetaType.Visitable,[e.ObjectType.Keymaster]:e.MetaType.Visitable,[e.ObjectType.RefugeeCamp]:e.MetaType.Visitable,[e.ObjectType.Sanctuary]:e.MetaType.Visitable,[e.ObjectType.Crypt]:e.MetaType.Visitable,[e.ObjectType.Shipwreck]:e.MetaType.Visitable,[e.ObjectType.Sirens]:e.MetaType.Visitable,[e.ObjectType.Stables]:e.MetaType.Visitable,[e.ObjectType.Tavern]:e.MetaType.Visitable,[e.ObjectType.Temple]:e.MetaType.Visitable,[e.ObjectType.DenOfThieves]:e.MetaType.Visitable,[e.ObjectType.TradingPost]:e.MetaType.Visitable,[e.ObjectType.LearningStone]:e.MetaType.Visitable,[e.ObjectType.TreeOfKnowledge]:e.MetaType.Visitable,[e.ObjectType.University]:e.MetaType.Visitable,[e.ObjectType.Wagon]:e.MetaType.Visitable,[e.ObjectType.WarMachineFactory]:e.MetaType.Visitable,[e.ObjectType.SchoolOfWar]:e.MetaType.Visitable,[e.ObjectType.WarriorsTomb]:e.MetaType.Visitable,[e.ObjectType.WaterWheel]:e.MetaType.Visitable,[e.ObjectType.WateringHole]:e.MetaType.Visitable,[e.ObjectType.Whirlpool]:e.MetaType.Visitable,[e.ObjectType.Windmill]:e.MetaType.Visitable,[e.ObjectType.MarketOfTime]:e.MetaType.Visitable,[e.ObjectType.DecorativeTown]:e.MetaType.Visitable,[e.ObjectType.TradingPostSnow]:e.MetaType.Visitable,[e.ObjectType.Pyramid]:e.MetaType.Visitable,[e.ObjectType.BorderGate]:e.MetaType.Visitable,[e.ObjectType.FreelancersGuild]:e.MetaType.Visitable,[e.ObjectType.Artifact]:e.MetaType.Artifact,[e.ObjectType.RandomArt]:e.MetaType.Artifact,[e.ObjectType.RandomTreasureArt]:e.MetaType.Artifact,[e.ObjectType.RandomMinorArt]:e.MetaType.Artifact,[e.ObjectType.RandomMajorArt]:e.MetaType.Artifact,[e.ObjectType.RandomRelicArt]:e.MetaType.Artifact,[e.ObjectType.AbandonedMine]:e.MetaType.AbandonedMine,[e.ObjectType.CreatureGenerator1]:e.MetaType.Dwelling,[e.ObjectType.CreatureGenerator2]:e.MetaType.Dwelling,[e.ObjectType.CreatureGenerator3]:e.MetaType.Dwelling,[e.ObjectType.CreatureGenerator4]:e.MetaType.Dwelling,[e.ObjectType.Event]:e.MetaType.Event,[e.ObjectType.Garrison]:e.MetaType.Garrison,[e.ObjectType.Garrison2]:e.MetaType.Garrison,[e.ObjectType.Boat]:e.MetaType.Boat,[e.ObjectType.CloverField]:e.MetaType.PassableTerrain,[e.ObjectType.EvilFog]:e.MetaType.PassableTerrain,[e.ObjectType.FavorableWinds]:e.MetaType.PassableTerrain,[e.ObjectType.FieryFields]:e.MetaType.PassableTerrain,[e.ObjectType.HolyGrounds]:e.MetaType.PassableTerrain,[e.ObjectType.LucidPools]:e.MetaType.PassableTerrain,[e.ObjectType.MagicClouds]:e.MetaType.PassableTerrain,[e.ObjectType.Rocklands]:e.MetaType.PassableTerrain,[e.ObjectType.CursedGround2]:e.MetaType.PassableTerrain,[e.ObjectType.MagicPlains2]:e.MetaType.PassableTerrain,[e.ObjectType.Passable139]:e.MetaType.PassableTerrain,[e.ObjectType.Passable140]:e.MetaType.PassableTerrain,[e.ObjectType.Passable141]:e.MetaType.PassableTerrain,[e.ObjectType.Passable142]:e.MetaType.PassableTerrain,[e.ObjectType.Passable144]:e.MetaType.PassableTerrain,[e.ObjectType.Passable145]:e.MetaType.PassableTerrain,[e.ObjectType.Passable146]:e.MetaType.PassableTerrain,[e.ObjectType.Hole]:e.MetaType.PassableTerrain,[e.ObjectType.CursedGround1]:e.MetaType.PassableTerrain,[e.ObjectType.MagicPlains1]:e.MetaType.PassableTerrain,[e.ObjectType.PassableKelp]:e.MetaType.PassableTerrain,[e.ObjectType.PassableKelp2]:e.MetaType.PassableTerrain,[e.ObjectType.PassableHole2]:e.MetaType.PassableTerrain,[e.ObjectType.PandorasBox]:e.MetaType.PandorasBox,[e.ObjectType.Grail]:e.MetaType.Grail,[e.ObjectType.Hero]:e.MetaType.Hero,[e.ObjectType.Lighthouse]:e.MetaType.Lighthouse,[e.ObjectType.MonolithTwoWay]:e.MetaType.Visitable,[e.ObjectType.MonolithOneWayEntrance]:e.MetaType.Visitable,[e.ObjectType.MonolithOneWayExit]:e.MetaType.Visitable,[e.ObjectType.Creature]:e.MetaType.Creature,[e.ObjectType.RandomCreature]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL1]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL2]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL3]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL4]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL5]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL6]:e.MetaType.Creature,[e.ObjectType.RandomCreatureL7]:e.MetaType.Creature,[e.ObjectType.OceanBottle]:e.MetaType.OceanBottle,[e.ObjectType.Prison]:e.MetaType.Prison,[e.ObjectType.QuestGuard]:e.MetaType.QuestGuard,[e.ObjectType.RandomDwelling]:e.MetaType.RandomDwelling,[e.ObjectType.RandomDwellingLevel]:e.MetaType.RandomDwellingLevel,[e.ObjectType.RandomDwellingAlignment]:e.MetaType.RandomDwellingAlignment,[e.ObjectType.RandomHero]:e.MetaType.RandomHero,[e.ObjectType.HeroPlaceholder]:e.MetaType.PlaceholderHero,[e.ObjectType.Resource]:e.MetaType.Resource,[e.ObjectType.RandomResource]:e.MetaType.Resource,[e.ObjectType.Mine]:e.MetaType.ResourceGenerator,[e.ObjectType.Scholar]:e.MetaType.Scholar,[e.ObjectType.SeerHut]:e.MetaType.SeersHut,[e.ObjectType.Shipyard]:e.MetaType.Shipyard,[e.ObjectType.ShrineOfMagicIncantation]:e.MetaType.Shrine,[e.ObjectType.ShrineOfMagicGesture]:e.MetaType.Shrine,[e.ObjectType.ShrineOfMagicThought]:e.MetaType.Shrine,[e.ObjectType.Sign]:e.MetaType.Sign,[e.ObjectType.SpellScroll]:e.MetaType.SpellScroll,[e.ObjectType.SubterraneanGate]:e.MetaType.SubterraneanGate,[e.ObjectType.Town]:e.MetaType.Town,[e.ObjectType.RandomTown]:e.MetaType.Town,[e.ObjectType.WitchHut]:e.MetaType.WitchHut,[e.ObjectType.Campfire]:e.MetaType.Treasure,[e.ObjectType.Flotsam]:e.MetaType.Treasure,[e.ObjectType.SeaChest]:e.MetaType.Treasure,[e.ObjectType.ShipwreckSurvivor]:e.MetaType.Treasure,[e.ObjectType.TreasureChest]:e.MetaType.Treasure,[e.ObjectType.WogObject]:e.MetaType.None};var Qi;(Qi=e.ObjectGroup||(e.ObjectGroup={})).Towns="Towns",Qi.Creatures="Creatures",Qi.Heroes="Heroes",Qi.Artifacts="Artifacts",Qi.Treasure="Treasure";const Zi={[e.ObjectGroup.Towns]:1,[e.ObjectGroup.Creatures]:2,[e.ObjectGroup.Heroes]:3,[e.ObjectGroup.Artifacts]:4,[e.ObjectGroup.Treasure]:5};const qi=(e,a)=>R(e,e=>e.reduce((e,t,r)=>{const i=a[r];for(const[a,r]of i)t&a&&e.push(r);return e},[]),e=>a.map(a=>{let t=0;for(const[r,i]of a)e.includes(i)&&(t|=r);return t}));var Yi,Ji,Xi;(Yi=e.PrimarySkill||(e.PrimarySkill={})).Attack="Attack",Yi.Defence="Defence",Yi.SpellPower="SpellPower",Yi.Knowledge="Knowledge",(Ji=e.SecondarySkillType||(e.SecondarySkillType={})).Pathfinding="Pathfinding",Ji.Archery="Archery",Ji.Logistics="Logistics",Ji.Scouting="Scouting",Ji.Diplomacy="Diplomacy",Ji.Navigation="Navigation",Ji.Leadership="Leadership",Ji.Wisdom="Wisdom",Ji.Mysticism="Mysticism",Ji.Luck="Luck",Ji.Ballistics="Ballistics",Ji.EagleEye="EagleEye",Ji.Necromancy="Necromancy",Ji.Estates="Estates",Ji.FireMagic="FireMagic",Ji.AirMagic="AirMagic",Ji.WaterMagic="WaterMagic",Ji.EarthMagic="EarthMagic",Ji.Scholar="Scholar",Ji.Tactics="Tactics",Ji.Artillery="Artillery",Ji.Learning="Learning",Ji.Offense="Offense",Ji.Armorer="Armorer",Ji.Intelligence="Intelligence",Ji.Sorcery="Sorcery",Ji.Resistance="Resistance",Ji.FirstAid="FirstAid",(Xi=e.SecondarySkillMastery||(e.SecondarySkillMastery={})).Basic="Basic",Xi.Advanced="Advanced",Xi.Expert="Expert";const $i={[e.PrimarySkill.Attack]:0,[e.PrimarySkill.Defence]:1,[e.PrimarySkill.SpellPower]:2,[e.PrimarySkill.Knowledge]:3},en={[e.SecondarySkillType.Pathfinding]:0,[e.SecondarySkillType.Archery]:1,[e.SecondarySkillType.Logistics]:2,[e.SecondarySkillType.Scouting]:3,[e.SecondarySkillType.Diplomacy]:4,[e.SecondarySkillType.Navigation]:5,[e.SecondarySkillType.Leadership]:6,[e.SecondarySkillType.Wisdom]:7,[e.SecondarySkillType.Mysticism]:8,[e.SecondarySkillType.Luck]:9,[e.SecondarySkillType.Ballistics]:10,[e.SecondarySkillType.EagleEye]:11,[e.SecondarySkillType.Necromancy]:12,[e.SecondarySkillType.Estates]:13,[e.SecondarySkillType.FireMagic]:14,[e.SecondarySkillType.AirMagic]:15,[e.SecondarySkillType.WaterMagic]:16,[e.SecondarySkillType.EarthMagic]:17,[e.SecondarySkillType.Scholar]:18,[e.SecondarySkillType.Tactics]:19,[e.SecondarySkillType.Artillery]:20,[e.SecondarySkillType.Learning]:21,[e.SecondarySkillType.Offense]:22,[e.SecondarySkillType.Armorer]:23,[e.SecondarySkillType.Intelligence]:24,[e.SecondarySkillType.Sorcery]:25,[e.SecondarySkillType.Resistance]:26,[e.SecondarySkillType.FirstAid]:27},an=[[[1,e.SecondarySkillType.Pathfinding],[2,e.SecondarySkillType.Archery],[4,e.SecondarySkillType.Logistics],[8,e.SecondarySkillType.Scouting],[16,e.SecondarySkillType.Diplomacy],[32,e.SecondarySkillType.Navigation],[64,e.SecondarySkillType.Leadership],[128,e.SecondarySkillType.Wisdom]],[[1,e.SecondarySkillType.Mysticism],[2,e.SecondarySkillType.Luck],[4,e.SecondarySkillType.Ballistics],[8,e.SecondarySkillType.EagleEye],[16,e.SecondarySkillType.Necromancy],[32,e.SecondarySkillType.Estates],[64,e.SecondarySkillType.FireMagic],[128,e.SecondarySkillType.AirMagic]],[[1,e.SecondarySkillType.WaterMagic],[2,e.SecondarySkillType.EarthMagic],[4,e.SecondarySkillType.Scholar],[8,e.SecondarySkillType.Tactics],[16,e.SecondarySkillType.Artillery],[32,e.SecondarySkillType.Learning],[64,e.SecondarySkillType.Offense],[128,e.SecondarySkillType.Armorer]],[[1,e.SecondarySkillType.Intelligence],[2,e.SecondarySkillType.Sorcery],[4,e.SecondarySkillType.Resistance],[8,e.SecondarySkillType.FirstAid]]],tn=qi(le(4),an),rn={[e.SecondarySkillMastery.Basic]:1,[e.SecondarySkillMastery.Advanced]:2,[e.SecondarySkillMastery.Expert]:3};var nn;(nn=e.Spell||(e.Spell={})).SummonBoat="SummonBoat",nn.ScuttleBoat="ScuttleBoat",nn.Visions="Visions",nn.ViewEarth="ViewEarth",nn.Disguise="Disguise",nn.ViewAir="ViewAir",nn.Fly="Fly",nn.WaterWalk="WaterWalk",nn.DimensionDoor="DimensionDoor",nn.TownPortal="TownPortal",nn.QuickSand="QuickSand",nn.LandMine="LandMine",nn.ForceField="ForceField",nn.FireWall="FireWall",nn.Earthquake="Earthquake",nn.MagicArrow="MagicArrow",nn.IceBolt="IceBolt",nn.LightningBolt="LightningBolt",nn.Implosion="Implosion",nn.ChainLightning="ChainLightning",nn.FrostRing="FrostRing",nn.Fireball="Fireball",nn.Inferno="Inferno",nn.MeteorShower="MeteorShower",nn.DeathRipple="DeathRipple",nn.DestroyUndead="DestroyUndead",nn.Armageddon="Armageddon",nn.Shield="Shield",nn.AirShield="AirShield",nn.FireShield="FireShield",nn.ProtectionFromAir="ProtectionFromAir",nn.ProtectionFromFire="ProtectionFromFire",nn.ProtectionFromWater="ProtectionFromWater",nn.ProtectionFromEarth="ProtectionFromEarth",nn.AntiMagic="AntiMagic",nn.Dispel="Dispel",nn.MagicMirror="MagicMirror",nn.Cure="Cure",nn.Resurrection="Resurrection",nn.AnimateDead="AnimateDead",nn.Sacrifice="Sacrifice",nn.Bless="Bless",nn.Curse="Curse",nn.Bloodlust="Bloodlust",nn.Precision="Precision",nn.Weakness="Weakness",nn.StoneSkin="StoneSkin",nn.DisruptingRay="DisruptingRay",nn.Prayer="Prayer",nn.Mirth="Mirth",nn.Sorrow="Sorrow",nn.Fortune="Fortune",nn.Misfortune="Misfortune",nn.Haste="Haste",nn.Slow="Slow",nn.Slayer="Slayer",nn.Frenzy="Frenzy",nn.TitansLightningBolt="TitansLightningBolt",nn.Counterstrike="Counterstrike",nn.Berserk="Berserk",nn.Hypnotize="Hypnotize",nn.Forgetfulness="Forgetfulness",nn.Blind="Blind",nn.Teleport="Teleport",nn.RemoveObstacle="RemoveObstacle",nn.Clone="Clone",nn.FireElemental="FireElemental",nn.EarthElemental="EarthElemental",nn.WaterElemental="WaterElemental",nn.AirElemental="AirElemental",nn.Stone="Stone",nn.Poison="Poison",nn.Bind="Bind",nn.Disease="Disease",nn.Paralyze="Paralyze",nn.Aging="Aging",nn.DeathCloud="DeathCloud",nn.Thunderbolt="Thunderbolt",nn.DragonflyDispel="DragonflyDispel",nn.DeathStare="DeathStare",nn.AcidBreath="AcidBreath";const sn={[e.Spell.SummonBoat]:0,[e.Spell.ScuttleBoat]:1,[e.Spell.Visions]:2,[e.Spell.ViewEarth]:3,[e.Spell.Disguise]:4,[e.Spell.ViewAir]:5,[e.Spell.Fly]:6,[e.Spell.WaterWalk]:7,[e.Spell.DimensionDoor]:8,[e.Spell.TownPortal]:9,[e.Spell.QuickSand]:10,[e.Spell.LandMine]:11,[e.Spell.ForceField]:12,[e.Spell.FireWall]:13,[e.Spell.Earthquake]:14,[e.Spell.MagicArrow]:15,[e.Spell.IceBolt]:16,[e.Spell.LightningBolt]:17,[e.Spell.Implosion]:18,[e.Spell.ChainLightning]:19,[e.Spell.FrostRing]:20,[e.Spell.Fireball]:21,[e.Spell.Inferno]:22,[e.Spell.MeteorShower]:23,[e.Spell.DeathRipple]:24,[e.Spell.DestroyUndead]:25,[e.Spell.Armageddon]:26,[e.Spell.Shield]:27,[e.Spell.AirShield]:28,[e.Spell.FireShield]:29,[e.Spell.ProtectionFromAir]:30,[e.Spell.ProtectionFromFire]:31,[e.Spell.ProtectionFromWater]:32,[e.Spell.ProtectionFromEarth]:33,[e.Spell.AntiMagic]:34,[e.Spell.Dispel]:35,[e.Spell.MagicMirror]:36,[e.Spell.Cure]:37,[e.Spell.Resurrection]:38,[e.Spell.AnimateDead]:39,[e.Spell.Sacrifice]:40,[e.Spell.Bless]:41,[e.Spell.Curse]:42,[e.Spell.Bloodlust]:43,[e.Spell.Precision]:44,[e.Spell.Weakness]:45,[e.Spell.StoneSkin]:46,[e.Spell.DisruptingRay]:47,[e.Spell.Prayer]:48,[e.Spell.Mirth]:49,[e.Spell.Sorrow]:50,[e.Spell.Fortune]:51,[e.Spell.Misfortune]:52,[e.Spell.Haste]:53,[e.Spell.Slow]:54,[e.Spell.Slayer]:55,[e.Spell.Frenzy]:56,[e.Spell.TitansLightningBolt]:57,[e.Spell.Counterstrike]:58,[e.Spell.Berserk]:59,[e.Spell.Hypnotize]:60,[e.Spell.Forgetfulness]:61,[e.Spell.Blind]:62,[e.Spell.Teleport]:63,[e.Spell.RemoveObstacle]:64,[e.Spell.Clone]:65,[e.Spell.FireElemental]:66,[e.Spell.EarthElemental]:67,[e.Spell.WaterElemental]:68,[e.Spell.AirElemental]:69,[e.Spell.Stone]:70,[e.Spell.Poison]:71,[e.Spell.Bind]:72,[e.Spell.Disease]:73,[e.Spell.Paralyze]:74,[e.Spell.Aging]:75,[e.Spell.DeathCloud]:76,[e.Spell.Thunderbolt]:77,[e.Spell.DragonflyDispel]:78,[e.Spell.DeathStare]:79,[e.Spell.AcidBreath]:80},ln=[[[1,e.Spell.SummonBoat],[2,e.Spell.ScuttleBoat],[4,e.Spell.Visions],[8,e.Spell.ViewEarth],[16,e.Spell.Disguise],[32,e.Spell.ViewAir],[64,e.Spell.Fly],[128,e.Spell.WaterWalk]],[[1,e.Spell.DimensionDoor],[2,e.Spell.TownPortal],[4,e.Spell.QuickSand],[8,e.Spell.LandMine],[16,e.Spell.ForceField],[32,e.Spell.FireWall],[64,e.Spell.Earthquake],[128,e.Spell.MagicArrow]],[[1,e.Spell.IceBolt],[2,e.Spell.LightningBolt],[4,e.Spell.Implosion],[8,e.Spell.ChainLightning],[16,e.Spell.FrostRing],[32,e.Spell.Fireball],[64,e.Spell.Inferno],[128,e.Spell.MeteorShower]],[[1,e.Spell.DeathRipple],[2,e.Spell.DestroyUndead],[4,e.Spell.Armageddon],[8,e.Spell.Shield],[16,e.Spell.AirShield],[32,e.Spell.FireShield],[64,e.Spell.ProtectionFromAir],[128,e.Spell.ProtectionFromFire]],[[1,e.Spell.ProtectionFromWater],[2,e.Spell.ProtectionFromEarth],[4,e.Spell.AntiMagic],[8,e.Spell.Dispel],[16,e.Spell.MagicMirror],[32,e.Spell.Cure],[64,e.Spell.Resurrection],[128,e.Spell.AnimateDead]],[[1,e.Spell.Sacrifice],[2,e.Spell.Bless],[4,e.Spell.Curse],[8,e.Spell.Bloodlust],[16,e.Spell.Precision],[32,e.Spell.Weakness],[64,e.Spell.StoneSkin],[128,e.Spell.DisruptingRay]],[[1,e.Spell.Prayer],[2,e.Spell.Mirth],[4,e.Spell.Sorrow],[8,e.Spell.Fortune],[16,e.Spell.Misfortune],[32,e.Spell.Haste],[64,e.Spell.Slow],[128,e.Spell.Slayer]],[[1,e.Spell.Frenzy],[2,e.Spell.TitansLightningBolt],[4,e.Spell.Counterstrike],[8,e.Spell.Berserk],[16,e.Spell.Hypnotize],[32,e.Spell.Forgetfulness],[64,e.Spell.Blind],[128,e.Spell.Teleport]],[[1,e.Spell.RemoveObstacle],[2,e.Spell.Clone],[4,e.Spell.FireElemental],[8,e.Spell.EarthElemental],[16,e.Spell.WaterElemental],[32,e.Spell.AirElemental]]],on=qi(le(9),ln);var cn;(cn=e.Resource||(e.Resource={})).Wood="Wood",cn.Mercury="Mercury",cn.Ore="Ore",cn.Sulfur="Sulfur",cn.Crystal="Crystal",cn.Gems="Gems",cn.Gold="Gold";const pn={[e.Resource.Wood]:0,[e.Resource.Mercury]:1,[e.Resource.Ore]:2,[e.Resource.Sulfur]:3,[e.Resource.Crystal]:4,[e.Resource.Gems]:5,[e.Resource.Gold]:6};var dn;(dn=e.Player||(e.Player={})).Red="Red",dn.Blue="Blue",dn.Tan="Tan",dn.Green="Green",dn.Orange="Orange",dn.Purple="Purple",dn.Teal="Teal",dn.Pink="Pink",dn.Neutral="Neutral";const un={[e.Player.Red]:0,[e.Player.Blue]:1,[e.Player.Tan]:2,[e.Player.Green]:3,[e.Player.Orange]:4,[e.Player.Purple]:5,[e.Player.Teal]:6,[e.Player.Pink]:7,[e.Player.Neutral]:255},hn=a=>a.get("format")===e.MapFormat.ROE,fn=a=>a.get("format")===e.MapFormat.SOD,bn=a=>a.get("format")!==e.MapFormat.ROE,yn=function(e,a=r.ascii){return q(function(e){return j(J,e)}(e),a)}(U),mn=ce(W`attack`,W`defense`,W`spellPower`,W`knowledge`),gn=ce(ae(K,en)`type`,ae(W,rn)`level`),Tn=U,On=W,Sn=he(hn,W,V),wn=he(hn,x,z),kn=W,Mn=W,Cn=U,_n=ae(W,un),An=ae(Sn,Pi),vn=ae(wn,Li),In=ae(On,Wi),jn=ae(Mn,sn),Hn=ae(kn,pn),Bn=ce(vn`type`,V`quantity`),Rn=ne(Bn,7),Dn=ne(N,7),En=ce(An`headwear`,An`shoulders`,An`rightHand`,An`leftHand`,An`torso`,An`rightRing`,An`leftRing`,An`feet`,An`misc1`,An`misc2`,An`misc3`,An`misc4`,An`device1`,An`device2`,An`device3`,An`device4`,he(fn,V),An`spellbook`,An`misc5`),Pn=ce(V`count`,ne(An,v`count`)`artifacts`),Gn=ce(En`worn`,Pn`backpack`),Ln=ae(K,un),Fn=ce(Ie`hasHero`,U`mapSize`,Ie`hasTwoLevels`,yn`name`,yn`description`,ae(W,_i)`difficulty`,he(bn,W)`masteryCap`),xn=ce(he(bn,K)`createHero`,he(bn,K)`type`,K`x`,K`y`,K`z`),Wn=ce(Ie`isRandom`,In`hero`,he(v`hero`.neq(e.Hero.NONE),K)`face`,he(v`hero`.neq(e.Hero.NONE),yn)`name`),zn=ce(Ie`isRandom`,In`hero`,K`face`,yn`name`),Vn=he(hn,Wn,zn),Nn=ce(In`hero`,yn`name`),Un=ce(Te(1),U`heroesCount`,ne(Nn,v`heroesCount`)`heroes`),Kn=ce(Ie`canBeHuman`,Ie`canBeComputer`,ae(W,vi)`behavior`,he(fn,W)`allowedAlignments`,W`townTypes`,he(bn,W)`townConflux`,Ie`hasRandomTown`,Ie`hasMainTown`,he(v`hasMainTown`,xn)`mainTown`,Vn`startingHero`,he(a=>bn(a)&&a.get("startingHero").hero!==e.Hero.NONE,Un)`additionaInfo`);var Qn;(Qn=e.LoseCondition||(e.LoseCondition={})).LoseTown="LoseTown",Qn.LoseHero="LoseHero",Qn.Time="Time";const Zn={[e.LoseCondition.LoseTown]:0,[e.LoseCondition.LoseHero]:1,[e.LoseCondition.Time]:2},qn=ce(W`x`,W`y`,W`z`),Yn=ce(V`days`),Jn={[e.LoseCondition.LoseTown]:qn,[e.LoseCondition.LoseHero]:qn,[e.LoseCondition.Time]:Yn};var Xn;(Xn=e.WinCondition||(e.WinCondition={})).AcquireArtifact="AcquireArtifact",Xn.AccumulateCreatures="AccumulateCreatures",Xn.AccumulateResources="AccumulateResources",Xn.UpgradeTown="UpgradeTown",Xn.BuildGrail="BuildGrail",Xn.DefeatHero="DefeatHero",Xn.CaptureTown="CaptureTown",Xn.DefeatMonster="DefeatMonster",Xn.FlagDwellings="FlagDwellings",Xn.FlagMines="FlagMines",Xn.TransportArtifact="TransportArtifact";const $n={[e.WinCondition.AcquireArtifact]:0,[e.WinCondition.AccumulateCreatures]:1,[e.WinCondition.AccumulateResources]:2,[e.WinCondition.UpgradeTown]:3,[e.WinCondition.BuildGrail]:4,[e.WinCondition.DefeatHero]:5,[e.WinCondition.CaptureTown]:6,[e.WinCondition.DefeatMonster]:7,[e.WinCondition.FlagDwellings]:8,[e.WinCondition.FlagMines]:9,[e.WinCondition.TransportArtifact]:10},es=ce(Ie`allowNormalWin`,Ie`appliesToComputer`,An`type`),as=ce(Ie`allowNormalWin`,Ie`appliesToComputer`,vn`type`,U`amount`),ts=ce(Ie`allowNormalWin`,Ie`appliesToComputer`,Hn`resource`,U`amount`),rs=ce(Ie`allowNormalWin`,Ie`appliesToComputer`,W`x`,W`y`,W`z`,ae(W,ji)`hallLevel`,ae(W,Bi)`castleLevel`),is=ce(Ie`allowNormalWin`,Ie`appliesToComputer`,W`x`,W`y`,W`z`),ns=ce(Ie`allowNormalWin`,Ie`appliesToComputer`),ss=ce(Ie`allowNormalWin`,Ie`appliesToComputer`,W`type`,W`x`,W`y`,W`z`),ls={[e.WinCondition.AcquireArtifact]:es,[e.WinCondition.AccumulateCreatures]:as,[e.WinCondition.AccumulateResources]:ts,[e.WinCondition.UpgradeTown]:rs,[e.WinCondition.BuildGrail]:is,[e.WinCondition.DefeatHero]:is,[e.WinCondition.CaptureTown]:is,[e.WinCondition.DefeatHero]:is,[e.WinCondition.FlagDwellings]:ns,[e.WinCondition.FlagMines]:ns,[e.WinCondition.TransportArtifact]:ss},os=ce(yn`name`,yn`desciption`),cs=ce(In`hero`,W`face`,yn`name`,W`allowed_players`),ps=ce(U`count`,ne(gn,v`count`)`entries`),ds=ce(Ie`hasExperience`,he(v`hasExperience`,U)`experience`,Ie`hasSecondarySkills`,he(v`hasSecondarySkills`,ps)`secondarySkills`,Ie`hasArtifacts`,he(v`hasArtifacts`,Gn)`artifacts`,Ie`hasBiography`,he(v`hasBiography`,yn)`biography`,ae(W,Di)`gender`,Ie`hasSpells`,he(v`hasSpells`,on)`spells`,Ie`hasPrimarySkills`,he(v`hasPrimarySkills`,mn)`primarySkills`),us=ce(Ie`hasSettings`,he(v`hasSettings`,ds)`settings`),hs=ce(ae(W,$n)`winCondition`,Se(v`winCondition`,ls)`winConditionData`,ae(W,Zn)`loseCondition`,Se(v`loseCondition`,Jn)`loseConditionData`,W`teamsCount`,he(v`teamsCount`.gt(0),ne(K,8))`teams`,le(e=>hn(e)?16:20)`availableHeroes`,he(bn,U),he(fn,W)`customHeroesCount`,he(fn,ne(cs,v`customHeroesCount`))`customHeroes`,Te(31),he(bn,le(e=>fn(e)?18:17))`availableArtifacts`,he(fn,on)`availableSpells`,he(fn,tn)`availableSkills`,U`rumorsRount`,ne(os,v`rumorsRount`)`rumors`,he(fn,ne(us,156))`heroSettings`);var fs,bs,ys;(fs=e.Terrain||(e.Terrain={})).Dirt="Dirt",fs.Sand="Sand",fs.Grass="Grass",fs.Snow="Snow",fs.Swamp="Swamp",fs.Rough="Rough",fs.Sub="Sub",fs.Lava="Lava",fs.Water="Water",fs.Rock="Rock",(bs=e.River||(e.River={})).None="None",bs.Clear="Clear",bs.Icy="Icy",bs.Muddy="Muddy",bs.Lava="Lava",(ys=e.Road||(e.Road={})).None="None",ys.Dirt="Dirt",ys.Gravel="Gravel",ys.Cobble="Cobble";const ms={[e.Terrain.Dirt]:0,[e.Terrain.Sand]:1,[e.Terrain.Grass]:2,[e.Terrain.Snow]:3,[e.Terrain.Swamp]:4,[e.Terrain.Rough]:5,[e.Terrain.Sub]:6,[e.Terrain.Lava]:7,[e.Terrain.Water]:8,[e.Terrain.Rock]:9},gs={[e.River.None]:0,[e.River.Clear]:1,[e.River.Icy]:2,[e.River.Muddy]:3,[e.River.Lava]:4},Ts={[e.Road.None]:0,[e.Road.Dirt]:1,[e.Road.Gravel]:2,[e.Road.Cobble]:3};var Os;(Os=e.TileMirror||(e.TileMirror={})).TerrainVertical="TerrainVertical",Os.TerrainHorizontal="TerrainHorizontal",Os.RiverVertical="RiverVertical",Os.RiverHorizontal="RiverHorizontal",Os.RoadVertical="RoadVertical",Os.RoadHorizontal="RoadHorizontal";const Ss=[[[1,e.TileMirror.TerrainVertical],[2,e.TileMirror.TerrainHorizontal],[4,e.TileMirror.RiverVertical],[8,e.TileMirror.RiverHorizontal],[16,e.TileMirror.RoadVertical],[32,e.TileMirror.RoadHorizontal]]],ws=e=>ce(ae(K,e)`type`,K`sprite`),ks=ce(ws(ms)`terrain`,ws(gs)`river`,ws(Ts)`road`,qi(le(1),Ss)`mirror`);var Ms;(Ms=e.Alignment||(e.Alignment={})).Random="Random",Ms.Castle="Castle",Ms.Rampart="Rampart",Ms.Tower="Tower",Ms.Inferno="Inferno",Ms.Necropolis="Necropolis",Ms.Dungeon="Dungeon",Ms.Stronghold="Stronghold",Ms.Fortress="Fortress",Ms.Conflux="Conflux",Ms.Neutral="Neutral";const Cs={[e.Alignment.Random]:-1,[e.Alignment.Castle]:0,[e.Alignment.Rampart]:1,[e.Alignment.Tower]:2,[e.Alignment.Inferno]:3,[e.Alignment.Necropolis]:4,[e.Alignment.Dungeon]:5,[e.Alignment.Stronghold]:6,[e.Alignment.Fortress]:7,[e.Alignment.Conflux]:8},_s=Se(v`objectType`,{[e.ObjectType.Artifact]:ae(U,Pi),[e.ObjectType.Creature]:ae(U,Li),[e.ObjectType.RandomDwellingAlignment]:ae(U,Cs)},U),As=ce(yn`header`,le(6)`passable`,le(6)`active`,V`allowedLandscapes`,V`landscapeGroup`,ae(U,Ui)`objectType`,ke(a=>{return function(a){return a in Ki?Ki[a]:e.MetaType.None}(a.get("objectType"))})`metaType`,_s`objectSubType`,ae(W,Zi)`objectGroup`,W`above`,Te(16)),vs=ce(U`count`,ne(As,v`count`)`entries`);var Is,js;(Is=e.QuestType||(e.QuestType={})).NONE="NONE",Is.Experience="Experience",Is.PrimarySkills="PrimarySkills",Is.DefeatHero="DefeatHero",Is.DefeatMonster="DefeatMonster",Is.Artifacts="Artifacts",Is.Creatures="Creatures",Is.Resources="Resources",Is.BeHero="BeHero",Is.BePlayer="BePlayer",(js=e.QuestReward||(e.QuestReward={})).NONE="NONE",js.Experience="Experience",js.SpellPoints="SpellPoints",js.Morale="Morale",js.Luck="Luck",js.Resource="Resource",js.PrimarySkill="PrimarySkill",js.SecondarySkill="SecondarySkill",js.Artifact="Artifact",js.Spell="Spell",js.Creature="Creature";const Hs={[e.QuestType.NONE]:0,[e.QuestType.Experience]:1,[e.QuestType.PrimarySkills]:2,[e.QuestType.DefeatHero]:3,[e.QuestType.DefeatMonster]:4,[e.QuestType.Artifacts]:5,[e.QuestType.Creatures]:6,[e.QuestType.Resources]:7,[e.QuestType.BeHero]:8,[e.QuestType.BePlayer]:9},Bs={[e.QuestReward.NONE]:0,[e.QuestReward.Experience]:1,[e.QuestReward.SpellPoints]:2,[e.QuestReward.Morale]:3,[e.QuestReward.Luck]:4,[e.QuestReward.Resource]:5,[e.QuestReward.PrimarySkill]:6,[e.QuestReward.SecondarySkill]:7,[e.QuestReward.Artifact]:8,[e.QuestReward.Spell]:9,[e.QuestReward.Creature]:10},Rs={[e.QuestType.NONE]:de,[e.QuestType.Experience]:Tn,[e.QuestType.PrimarySkills]:mn,[e.QuestType.DefeatHero]:Cn,[e.QuestType.DefeatMonster]:Cn,[e.QuestType.Resources]:Dn,[e.QuestType.BeHero]:In,[e.QuestType.BePlayer]:_n,[e.QuestType.Creatures]:ce(K`count`,ne(Bn,v`count`)`creatures`),[e.QuestType.Artifacts]:ce(K`count`,ne(An,v`count`)`artifacts`)},Ds=ce(yn`proposalMessage`,yn`progressMessage`,yn`completionMessage`),Es=ce(ae(K,Hs)`questType`,Se(v`questType`,Rs)`objective`,he(v`questType`.neq(e.QuestType.NONE),N)`deadline`,he(v`questType`.neq(e.QuestType.NONE),Ds)`messages`),Ps={[e.QuestReward.NONE]:de,[e.QuestReward.Experience]:Tn,[e.QuestReward.SpellPoints]:U,[e.QuestReward.Artifact]:An,[e.QuestReward.Luck]:K,[e.QuestReward.Morale]:K,[e.QuestReward.Spell]:jn,[e.QuestReward.Resource]:ce(Hn`resource`,U`quantity`),[e.QuestReward.PrimarySkill]:ce(ae(K,$i)`skill`,K`bonus`),[e.QuestReward.SecondarySkill]:gn,[e.QuestReward.Creature]:Bn},Gs=ce(he(hn,An)`artifactType`,he(bn,Es)`quest`,ae(K,Bs)`rewardType`,Se(v`rewardType`,Ps)`reward`,Te(2));var Ls;(Ls=e.Building||(e.Building={})).VillageHall="VillageHall",Ls.TownHall="TownHall",Ls.CityHall="CityHall",Ls.Capitol="Capitol",Ls.Fort="Fort",Ls.Citadel="Citadel",Ls.Castle="Castle",Ls.Tavern="Tavern",Ls.Blacksmith="Blacksmith",Ls.Marketplace="Marketplace",Ls.ResourceSilo="ResourceSilo",Ls.ArtifactMerchants="ArtifactMerchants",Ls.MageGuild1="MageGuild1",Ls.MageGuild2="MageGuild2",Ls.MageGuild3="MageGuild3",Ls.MageGuild4="MageGuild4",Ls.MageGuild5="MageGuild5",Ls.Shipyard="Shipyard",Ls.Grail="Grail",Ls.Special1="Special1",Ls.Special2="Special2",Ls.Special3="Special3",Ls.Special4="Special4",Ls.Dwelling1="Dwelling1",Ls.Horde1="Horde1",Ls.DwellingUp1="DwellingUp1",Ls.Dwelling2="Dwelling2",Ls.Horde2="Horde2",Ls.DwellingUp2="DwellingUp2",Ls.Dwelling3="Dwelling3",Ls.Horde3="Horde3",Ls.DwellingUp3="DwellingUp3",Ls.Dwelling4="Dwelling4",Ls.Horde4="Horde4",Ls.DwellingUp4="DwellingUp4",Ls.Dwelling5="Dwelling5",Ls.Horde5="Horde5",Ls.DwellingUp5="DwellingUp5",Ls.Dwelling6="Dwelling6",Ls.DwellingUp6="DwellingUp6",Ls.Dwelling7="Dwelling7",Ls.DwellingUp7="DwellingUp7";const Fs=[[[1,e.Building.TownHall],[2,e.Building.CityHall],[4,e.Building.Capitol],[8,e.Building.Fort],[16,e.Building.Citadel],[32,e.Building.Castle],[64,e.Building.Tavern],[128,e.Building.Blacksmith]],[[1,e.Building.Marketplace],[2,e.Building.ResourceSilo],[4,e.Building.ArtifactMerchants],[8,e.Building.MageGuild1],[16,e.Building.MageGuild2],[32,e.Building.MageGuild3],[64,e.Building.MageGuild4],[128,e.Building.MageGuild5]],[[1,e.Building.Shipyard],[2,e.Building.Grail],[4,e.Building.Special1],[8,e.Building.Special2],[16,e.Building.Special3],[32,e.Building.Special4],[64,e.Building.Dwelling1],[128,e.Building.DwellingUp1]],[[1,e.Building.Horde1],[2,e.Building.Dwelling2],[4,e.Building.DwellingUp2],[8,e.Building.Horde2],[16,e.Building.Dwelling3],[32,e.Building.Dwelling4],[64,e.Building.Horde3],[128,e.Building.Dwelling4]],[[1,e.Building.DwellingUp4],[2,e.Building.Horde4],[4,e.Building.Dwelling5],[8,e.Building.DwellingUp5],[16,e.Building.Horde5],[32,e.Building.Dwelling6],[64,e.Building.DwellingUp6],[128,e.Building.Dwelling7]],[[1,e.Building.DwellingUp7]]],xs=qi(le(6),Fs),Ws=ce(yn`name`,yn`message`,Dn`resources`,Ie`appliesToPlayers`,he(fn,Ie)`appliesToHuman`,Ie`appliesToComputer`,V`firstOccurence`,K`subsequentOccurences`,Te(17),xs`buildings`,ne(V,7)`creatureQuantities`,Te(4)),zs=ce(he(bn,U)`absodId`,Ln`owner`,K`hasName`,he(v`hasName`,yn)`name`,K`hasGarrison`,he(v`hasGarrison`,Rn)`garrison`,K`formation`,Ie`buildingsCustomized`,he(v`buildingsCustomized`,ce(xs`built`,xs`disabled`))`buildings`,he(v`buildingsCustomized`.eq(!1),Ie)`hasFort`,he(bn,on)`mustHaveSpells`,on`mayHaveSpells`,U`eventCount`,ne(Ws,v`eventCount`)`events`,he(fn,K)`alignment`,Te(3));var Vs;(Vs=e.ScholarRaward||(e.ScholarRaward={})).Random="Random",Vs.PrimarySkill="PrimarySkill",Vs.SecondarySkill="SecondarySkill",Vs.Spell="Spell";const Ns={[e.ScholarRaward.Random]:-1,[e.ScholarRaward.PrimarySkill]:0,[e.ScholarRaward.SecondarySkill]:1,[e.ScholarRaward.Spell]:2},Us=ce(ae(x,Ns)`rewardType`,Se(v`rewardType`,{[e.ScholarRaward.PrimarySkill]:ae(W,$i),[e.ScholarRaward.SecondarySkill]:ae(W,en),[e.ScholarRaward.Spell]:ae(W,sn)},W)`rewardValue`,Te(6)),Ks=[[[1,e.Alignment.Castle],[2,e.Alignment.Rampart],[4,e.Alignment.Tower],[8,e.Alignment.Inferno],[16,e.Alignment.Necropolis],[32,e.Alignment.Dungeon],[64,e.Alignment.Stronghold],[128,e.Alignment.Fortress],[256,e.Alignment.Conflux]]],Qs=qi(ne(V,1),Ks),Zs=ce(ae(U,un)`owner`,ce(U`castleAbsodId`,he(v`castleAbsodId`.eq(0),Qs)`alignments`)`castle`,ce(W`min`,W`max`)`level`),qs=ce(ae(U,un)`owner`,ce(W`min`,W`max`)`level`),Ys=ce(ae(U,un)`owner`,ce(U`castleAbsodId`,he(v`castleAbsodId`.eq(0),Qs)`alignments`)`castle`),Js=ce(yn`message`,Ie`hasCreatures`,he(v`hasCreatures`,Rn)`creatures`,Te(4)),Xs=ce(U`experience`,N`spellPoints`,x`morale`,x`luck`,Dn`resources`,mn`primarySkills`,W`secondarySkillsCount`,ne(gn,v`secondarySkillsCount`)`secondarySkills`,W`artifactsCount`,ne(An,v`artifactsCount`)`artifacts`,W`spellsCount`,ne(jn,v`spellsCount`)`spells`,W`creaturesCount`,ne(Bn,v`creaturesCount`)`creatures`,Te(8));var $s;($s=e.Formation||(e.Formation={})).Spread="Spread",$s.Grouped="Grouped";const el={[e.Formation.Spread]:0,[e.Formation.Grouped]:1},al=ce(he(bn,U)`absodId`,Ln`owner`,In`hero`,Ie`hasName`,he(v`hasName`,yn)`name`,he(fn,Ie)`hasExperience`,Se(v`format`,{[e.MapFormat.ROE]:U,[e.MapFormat.AB]:U,[e.MapFormat.SOD]:he(v`hasExperience`,U)})`experience`,Ie`hasFace`,he(v`hasFace`,W)`face`,Ie`hasSecondarySkills`,he(v`hasSecondarySkills`,ce(U`count`,ne(gn,v`count`)`skills`))`secondarySkills`,Ie`hasCreatures`,he(v`hasCreatures`,Rn)`creatures`,ae(W,el)`formation`,Ie`hasArtifacts`,he(v`hasArtifacts`,Gn)`artifacts`,W`patrolRadius`,he(bn,ce(Ie`hasBiography`,he(v`hasBiography`,yn)`biography`))`biography`,he(bn,ae(W,Di))`gender`,he(fn,Ie)`hasSpells`,Se(v`format`,{[e.MapFormat.ROE]:de,[e.MapFormat.AB]:ae(W,sn),[e.MapFormat.SOD]:he(v`hasSpells`,on,de)})`spells`,he(fn,Ie)`hasPrimarySkills`,he(v`hasPrimarySkills`,mn)`primarySkills`,Te(16)),tl=ce(Ln`owner`,W`type`,he(v`type`.eq(255),W)`powerRating`),rl=ce(Ie`hasGuardians`,he(v`hasGuardians`,Js)`guardians`,Xs`contents`);var il;(il=e.Disposition||(e.Disposition={})).Compliant="Compliant",il.Friendly="Friendly",il.Aggressive="Aggressive",il.Hostile="Hostile",il.Savage="Savage";const nl={[e.Disposition.Compliant]:0,[e.Disposition.Friendly]:1,[e.Disposition.Aggressive]:2,[e.Disposition.Hostile]:3,[e.Disposition.Savage]:4},sl=ce(Dn`resources`,An`artifact`),ll=ce(yn`message`,sl`treasure`),ol=ce(he(bn,U)`absodId`,V`quantity`,ae(W,nl)`disposition`,Ie`hasMessageAndTreasure`,he(v`hasMessageAndTreasure`,ll)`messageAndTreasure`,Ie`neverFlees`,Ie`doesNotGrow`,Te(2)),cl=ce(Ie`hasGuardians`,he(v`hasGuardians`,Js)`guardians`,Xs`contents`,qi(le(1),[[[1,e.Player.Red],[2,e.Player.Blue],[4,e.Player.Tan],[8,e.Player.Green],[16,e.Player.Orange],[32,e.Player.Purple],[64,e.Player.Teal],[128,e.Player.Pink]]])`appliesToPlayers`,Ie`appliesToComputer`,Ie`cancelAfterVisit`,Te(4)),pl=ce(yn`message`,Te(4)),dl=ce(ae(U,un)`owner`,Rn`creatures`,he(bn,W)`removableUnits`,Te(8)),ul=ce(U`allowableRadius`),hl=ce(U`owner`),fl=ce(Ie`hasGuardians`,he(v`hasGuardians`,Js)`guardians`),bl=ce(U`spell`),yl=ce(Ie`hasGuardians`,he(v`hasGuardians`,Js)`guardians`,ae(U,sn)`spell`),ml=ce(Ie`hasGuardians`,he(v`hasGuardians`,Js)`hasGuardians`,U`quantity`,Te(4)),gl=ce(tn`potentialSkills`),Tl={[e.MetaType.PlaceholderHero]:tl,[e.MetaType.QuestGuard]:Es,[e.MetaType.PandorasBox]:rl,[e.MetaType.Sign]:pl,[e.MetaType.OceanBottle]:pl,[e.MetaType.Garrison]:dl,[e.MetaType.Event]:cl,[e.MetaType.Grail]:ul,[e.MetaType.Dwelling]:hl,[e.MetaType.Lighthouse]:hl,[e.MetaType.ResourceGenerator]:hl,[e.MetaType.Shipyard]:hl,[e.MetaType.AbandonedMine]:hl,[e.MetaType.Boat]:de,[e.MetaType.PassableTerrain]:de,[e.MetaType.ImpassableTerrain]:de,[e.MetaType.Visitable]:de,[e.MetaType.Treasure]:de,[e.MetaType.MonolithTwoWay]:de,[e.MetaType.SubterraneanGate]:de,[e.MetaType.Town]:zs,[e.MetaType.RandomDwelling]:Zs,[e.MetaType.RandomDwellingAlignment]:qs,[e.MetaType.RandomDwellingLevel]:Ys,[e.MetaType.Hero]:al,[e.MetaType.RandomHero]:al,[e.MetaType.Prison]:al,[e.MetaType.Creature]:ol,[e.MetaType.Artifact]:fl,[e.MetaType.Shrine]:bl,[e.MetaType.SpellScroll]:yl,[e.MetaType.Resource]:ml,[e.MetaType.WitchHut]:he(bn,gl),[e.MetaType.SeersHut]:Gs,[e.MetaType.Scholar]:Us},Ol=ce(ke(v`attributes.metaType`)`type`,Se(v`type`,Tl)`data`),Sl=ce(W`x`,W`y`,W`z`,U`oaIndex`,ke(e=>{const a=e.get("oaIndex");return e.get("objectAttributes").entries[a]})`attributes`,Te(5),Ol`body`),wl=ce(U`count`,ne(Sl,v`count`)`entries`),kl=ce(yn`name`,yn`message`,Dn`resources`,Ie`appliesToPlayers`,he(fn,Ie)`appliesToHuman`,Ie`appliesToComputer`,V`firstOccurence`,W`subsequentOccurences`,Te(17)),Ml=ce(U`count`,ne(kl,v`count`)`entries`),Cl=ce(ve(t.LE),ae(U,Mi)`format`,Fn`info`,ne(Kn,8)`players`,hs`additionalInfo`,ne(ks,(function(e){const a=e.get("info");return a.mapSize*a.mapSize*(a.hasTwoLevels?2:1)}))`tiles`,vs`objectAttributes`,wl`objectDetails`,Ml`events`),_l=ce($()`name`,Te(e=>16-(e.get("name").length+1)),U`offset`,U`size`,U,U`csize`,ke(v`csize`.neq(0))`compressed`,be(v`offset`,he(v`compressed`,le(v`csize`),le(v`size`)))`content`),Al=ce(ve(t.LE),function(e,a){return j(pe,e,a)}($(),"LOD"),me(8),U`count`,me(92),ne(_l,v`count`)`entries`),vl=le(3),Il=e=>{const a=e.get("index"),t=e.get("lineOffsets");return e.get("offset")+32+t[a]},jl=(e,a,t,r)=>r.reduce((e,a)=>e+a.content.length,0)<e.get("width"),Hl=ce(K`code`,K`length`,Se(v`code`,{255:le(e=>e.get("length")+1)},ke(e=>new Array(e.get("length")+1).fill(e.get("code"))))`content`),Bl=ce(K`segment`,ke(e=>e.get("segment")>>5)`code`,ke(e=>1+(31&e.get("segment")))`length`,Se(v`code`,{7:le(v`length`)},ke(e=>new Array(e.get("length")).fill(e.get("code"))))`content`),Rl=(e,a)=>e.concat(a.reduce((e,a)=>e.concat(a.content),[])),Dl=ce(U`size`,U`encoding`,U`fullWidth`,U`fullHeight`,U`width`,U`height`,N`left`,N`top`,Se(v`encoding`,{0:le(e=>e.get("width")*e.get("height")),1:ce(ne(U,v`height`)`lineOffsets`,ne(be(Il,_e(Hl,jl)),v`height`)`lines`),2:ce(ne(V,v`height`)`lineOffsets`,Te(2),ne(be(Il,_e(Bl,jl)),v`height`)`lines`),3:ce(ne(ne(V,e=>Math.ceil(e.get("width")/32)),v`height`)`lineOffsets`,ne(ne(_e(Bl,jl),e=>Math.ceil(e.get("width")/32))`line`,v`height`)`lines`)})`content`,Se(v`encoding`,{0:ke(v`content`),1:ke(e=>e.get("content.lines").reduce(Rl,[])),2:ke(e=>e.get("content.lines").reduce(Rl,[])),3:ke(e=>e.get("content.lines").reduce((e,a)=>e.concat(a.reduce(Rl,[])),[]))})`pixels`),El=ce(U`blockId`,U`entriesCount`,U`unknown`,U`unknown`,ne(function(e,a=r.ascii){return q(function(e){return j(Y,e)}(e),a)}(13),v`entriesCount`)`filenames`,ne(U,v`entriesCount`)`offsets`,ne(be(e=>{const a=e.get("index"),t=e.get("offsets");return e.set("offset",t[a]),t[a]},Dl),v`entriesCount`)`files`),Pl=ce(ve(t.LE),U`type`,U`width`,U`height`,U`blockCount`,ne(vl,256)`palette`,ne(El,v`blockCount`)`blocks`),Gl=le(3),Ll=ce(ve(t.LE),U`size`,U`width`,U`height`,ke(e=>e.get("size")===e.get("width")*e.get("height"))`hasPalette`,he(v`hasPalette`,ce(le(v`size`)`pixels`,ne(Gl,256)`palette`))`paletteData`,ke(e=>e.get("size")===e.get("width")*e.get("height")*3)`hasBgr`,he(v`hasBgr`,se(Gl))`bgr`);function Fl(e){return je(Cl,e)}return e.H3M_MAX_PLAYERS=8,e.alignmentEnum=Cs,e.artifactEnum=Pi,e.behaviorEnum=vi,e.castleLevelEnum=Bi,e.creatureEnum=Li,e.defFile=Pl,e.difficultyEnum=_i,e.dispositioEnum=nl,e.formatEnum=Mi,e.formationEnum=el,e.genderEnum=Di,e.hallLevelEnum=ji,e.heroClassEnum=zi,e.heroEnum=Wi,e.lodFile=Al,e.loseConditionsEnum=Zn,e.objectGroupEnum=Zi,e.objectTypeEnum=Ui,e.objectTypeToMeta=Ki,e.parseAsset=function(e,a){return je(e,a)},e.parseH3M=Fl,e.parseH3MFile=function(e){return Fl((void 0)(e).buffer)},e.pcxFile=Ll,e.playerEnum=un,e.primarySkillEnum=$i,e.questEnum=Hs,e.questRewardEnum=Bs,e.resourceEnum=pn,e.riversEnum=gs,e.roadsEnum=Ts,e.schoalrRewardEnum=Ns,e.secondarySkillEnum=en,e.secondarySkillMasteryEnum=rn,e.skillsMask=tn,e.spellEnum=sn,e.spellsMask=on,e.terrainsEnum=ms,e.winConditionsEnum=$n,e}({});