1 line
601 KiB
Plaintext
1 line
601 KiB
Plaintext
{"version":3,"file":"pdf.image_decoders.js","mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKA;;AAEA,MAAMA,kBAAkB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAxB;;AACA,MAAMC,uBAAuB,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,KAAd,EAAqB,CAArB,EAAwB,CAAxB,CAA7B;;AAIA,MAAMC,cAAc,IAApB;;AACA,MAAMC,sBAAsB,IAA5B;;AAcA,MAAMC,sBAAsB;EAC1BC,KAAK,IADqB;EAE1BC,SAAS,IAFiB;EAG1BC,OAAO,IAHmB;EAI1BC,mBAAmB,IAJO;EAK1BC,qBAAqB,IALK;EAM1BC,qBAAqB,IANK;EAO1BC,QAAQ;AAPkB,CAA5B;;AAUA,MAAMC,iBAAiB;EACrBC,SAAS,CADY;EAErBC,QAAQ,CAFa;EAGrBC,cAAc,CAHO;EAIrBC,gBAAgB;AAJK,CAAvB;;AAOA,MAAMC,yBAAyB,wBAA/B;;AAEA,MAAMC,uBAAuB;EAC3BL,SAAS,CAAC,CADiB;EAE3BM,MAAM,CAFqB;EAG3BC,UAAU,CAHiB;EAI3BC,KAAK;AAJsB,CAA7B;;AAOA,MAAMC,6BAA6B;EACjCC,eAAe,CADkB;EAEjCC,gBAAgB,CAFiB;EAGjCC,kBAAkB,CAHe;EAIjCC,WAAW,EAJsB;EAKjCC,eAAe,EALkB;EAMjCC,aAAa;AANoB,CAAnC;;AAUA,MAAMC,iBAAiB;EACrBtB,OAAO,IADc;EAErBuB,iBAAiB,IAFI;EAGrBC,MAAM,IAHe;EAIrBC,oBAAoB,IAJC;EAKrBC,wBAAwB,KALH;EAMrBC,wBAAwB,KANH;EAOrBC,UAAU,KAPW;EAQrBC,oBAAoB;AARC,CAAvB;;AAWA,MAAMC,oBAAoB;EACxBC,MAAM,CADkB;EAExBC,QAAQ,CAFgB;EAGxBC,aAAa,CAHW;EAIxBC,WAAW,CAJa;EAKxBC,kBAAkB,CALM;EAMxBC,oBAAoB,CANI;EAOxBC,yBAAyB,CAPD;EAQxBC,aAAa,CARW;EASxBC,kBAAkB,CATM;EAUxBC,kBAAkB;AAVM,CAA1B;;AAaA,MAAMC,YAAY;EAChBC,gBAAgB,CADA;EAEhBC,WAAW,CAFK;EAGhBC,YAAY;AAHI,CAAlB;;AAMA,MAAMC,iBAAiB;EACrBC,MAAM,CADe;EAErBC,MAAM,CAFe;EAGrBlC,UAAU,CAHW;EAIrBmC,MAAM,CAJe;EAKrBC,QAAQ,CALa;EAMrBC,QAAQ,CANa;EAOrBC,SAAS,CAPY;EAQrBC,UAAU,CARW;EASrBC,WAAW,CATU;EAUrBC,WAAW,EAVU;EAWrBC,UAAU,EAXW;EAYrBC,WAAW,EAZU;EAarBC,OAAO,EAbc;EAcrBC,OAAO,EAdc;EAerB5C,KAAK,EAfgB;EAgBrB6C,OAAO,EAhBc;EAiBrBC,gBAAgB,EAjBK;EAkBrBC,OAAO,EAlBc;EAmBrBC,OAAO,EAnBc;EAoBrBC,QAAQ,EApBa;EAqBrBC,QAAQ,EArBa;EAsBrBC,aAAa,EAtBQ;EAuBrBC,SAAS,EAvBY;EAwBrBC,WAAW,EAxBU;EAyBrBC,QAAQ,EAzBa;EA0BrBC,QAAQ;AA1Ba,CAAvB;;AA6BA,MAAMC,2BAA2B;EAC/BC,QAAQ,QADuB;EAE/BC,QAAQ;AAFuB,CAAjC;;AAKA,MAAMC,wBAAwB;EAC5BF,QAAQ,QADoB;EAE5BG,UAAU;AAFkB,CAA9B;;AAKA,MAAMC,wBAAwB;EAC5BC,UAAU,UADkB;EAE5BC,UAAU,UAFkB;EAG5BC,WAAW,WAHiB;EAI5BC,WAAW,WAJiB;EAK5BnE,MAAM;AALsB,CAA9B;;AAQA,MAAMoE,sBAAsB;EAC1BC,OAAO,OADmB;EAE1BC,OAAO;AAFmB,CAA5B;;AAKA,MAAMC,iBAAiB;EACrBjD,WAAW,IADU;EAErBkD,QAAQ,IAFa;EAGrBpF,OAAO,IAHc;EAIrBqF,QAAQ,IAJa;EAKrBC,UAAU,IALW;EAMrBC,QAAQ,IANa;EAOrBC,UAAU,IAPW;EAQrBC,QAAQ,IARa;EASrBC,cAAc,KATO;EAUrBC,gBAAgB;AAVK,CAAvB;;AAaA,MAAMC,sBAAsB;EAC1BJ,UAAU,SADgB;EAE1BK,UAAU,SAFgB;EAG1BC,UAAU,SAHgB;EAI1BC,WAAW,SAJe;EAK1BC,UAAU,SALgB;EAM1BC,eAAe,SANW;EAO1BC,OAAO,SAPmB;EAQ1BC,YAAY,SARc;EAS1BC,OAAO,SATmB;EAU1BC,MAAM,SAVoB;EAW1BC,MAAM,SAXoB;EAY1BC,YAAY,SAZc;EAa1BC,aAAa,SAba;EAc1BC,iBAAiB,SAdS;EAe1BC,aAAa,SAfa;EAgB1BC,MAAM,SAhBoB;EAiB1BC,UAAU,SAjBgB;EAkB1BC,gBAAgB,SAlBU;EAmB1BC,mBAAmB;AAnBO,CAA5B;;AAsBA,MAAMC,4BAA4B;EAChCC,OAAO,CADyB;EAEhCC,QAAQ,CAFwB;EAGhCC,SAAS,CAHuB;EAIhCC,OAAO,CAJyB;EAKhC7D,WAAW;AALqB,CAAlC;;AAQA,MAAM8D,4BAA4B;EAChCC,GAAG,aAD6B;EAEhCC,GAAG,YAF6B;EAGhCC,GAAG,YAH6B;EAIhCC,GAAG,UAJ6B;EAKhCC,IAAI,OAL4B;EAMhCC,IAAI,MAN4B;EAOhCC,IAAI,UAP4B;EAQhCC,IAAI,WAR4B;EAShCC,IAAI,aAT4B;EAUhCC,IAAI,eAV4B;EAWhCC,GAAG,WAX6B;EAYhCC,GAAG,QAZ6B;EAahCC,GAAG,UAb6B;EAchCC,GAAG;AAd6B,CAAlC;;AAiBA,MAAMC,0BAA0B;EAC9BC,IAAI,WAD0B;EAE9BC,IAAI,UAF0B;EAG9BC,IAAI,SAH0B;EAI9BC,IAAI,WAJ0B;EAK9BC,IAAI;AAL0B,CAAhC;;AAQA,MAAMC,sBAAsB;EAC1BC,GAAG,UADuB;EAE1BR,GAAG;AAFuB,CAA5B;;AAKA,MAAMS,aAAa;EACjBC,SAAS,SADQ;EAEjBC,OAAO,OAFU;EAGjBC,KAAK,KAHY;EAIjBC,KAAK,KAJY;EAKjBC,KAAK,KALY;EAMjBC,MAAM,MANW;EAOjBC,KAAK,KAPY;EAQjBC,KAAK,KARY;EASjBC,KAAK,KATY;EAUjBC,KAAK;AAVY,CAAnB;;AAaA,MAAMC,WAAW;EACfV,SAAS,SADM;EAEfW,OAAO,OAFQ;EAGfC,eAAe,eAHA;EAIfC,QAAQ,QAJO;EAKfC,cAAc,cALC;EAMfC,eAAe,eANA;EAOfC,UAAU,UAPK;EAQfC,cAAc,cARC;EASfC,OAAO,OATQ;EAUfC,UAAU,UAVK;EAWfC,OAAO,OAXQ;EAYfC,SAAS;AAZM,CAAjB;;AAeA,MAAMC,iBAAiB;EACrBC,QAAQ,CADa;EAErBC,UAAU,CAFW;EAGrBC,OAAO;AAHc,CAAvB;;AAMA,MAAMC,sBAAsB;EAC1B1J,MAAM,CADoB;EAE1B2J,QAAQ,CAFkB;EAG1BC,QAAQ;AAHkB,CAA5B;;AAOA,MAAMC,MAAM;EAGVC,YAAY,CAHF;EAIVC,cAAc,CAJJ;EAKVC,YAAY,CALF;EAMVC,aAAa,CANH;EAOVC,eAAe,CAPL;EAQVC,SAAS,CARC;EASVC,oBAAoB,CATV;EAUVC,aAAa,CAVH;EAWVC,WAAW,CAXD;EAYVC,MAAM,EAZI;EAaVC,SAAS,EAbC;EAcVC,WAAW,EAdD;EAeVC,QAAQ,EAfE;EAgBVC,QAAQ,EAhBE;EAiBVC,SAAS,EAjBC;EAkBVC,UAAU,EAlBA;EAmBVC,UAAU,EAnBA;EAoBVC,WAAW,EApBD;EAqBVC,WAAW,EArBD;EAsBVC,QAAQ,EAtBE;EAuBVC,aAAa,EAvBH;EAwBVC,MAAM,EAxBI;EAyBVC,QAAQ,EAzBE;EA0BVC,YAAY,EA1BF;EA2BVC,cAAc,EA3BJ;EA4BVC,iBAAiB,EA5BP;EA6BVC,mBAAmB,EA7BT;EA8BVC,SAAS,EA9BC;EA+BVC,MAAM,EA/BI;EAgCVC,QAAQ,EAhCE;EAiCVC,WAAW,EAjCD;EAkCVC,SAAS,EAlCC;EAmCVC,gBAAgB,EAnCN;EAoCVC,gBAAgB,EApCN;EAqCVC,WAAW,EArCD;EAsCVC,YAAY,EAtCF;EAuCVC,SAAS,EAvCC;EAwCVC,sBAAsB,EAxCZ;EAyCVC,aAAa,EAzCH;EA0CVC,UAAU,EA1CA;EA2CVC,oBAAoB,EA3CV;EA4CVC,eAAe,EA5CL;EA6CVC,UAAU,EA7CA;EA8CVC,UAAU,EA9CA;EA+CVC,gBAAgB,EA/CN;EAgDVC,kBAAkB,EAhDR;EAiDVC,4BAA4B,EAjDlB;EAkDVC,cAAc,EAlDJ;EAmDVC,uBAAuB,EAnDb;EAoDVC,qBAAqB,EApDX;EAqDVC,mBAAmB,EArDT;EAsDVC,gBAAgB,EAtDN;EAuDVC,iBAAiB,EAvDP;EAwDVC,cAAc,EAxDJ;EAyDVC,eAAe,EAzDL;EA0DVC,eAAe,EA1DL;EA2DVC,aAAa,EA3DH;EA4DVC,mBAAmB,EA5DT;EA6DVC,iBAAiB,EA7DP;EA8DVC,oBAAoB,EA9DV;EA+DVC,kBAAkB,EA/DR;EAgEVC,aAAa,EAhEH;EAiEVC,kBAAkB,EAjER;EAkEVC,gBAAgB,EAlEN;EAmEVC,gBAAgB,EAnEN;EAoEVC,cAAc,EApEJ;EAqEVC,WAAW,EArED;EAsEVC,gBAAgB,EAtEN;EAuEVC,oBAAoB,EAvEV;EAwEVC,yBAAyB,EAxEf;EAyEVC,kBAAkB,EAzER;EA0EVC,aAAa,EA1EH;EA2EVC,WAAW,EA3ED;EA4EVC,uBAAuB,EA5Eb;EA6EVC,qBAAqB,EA7EX;EA8EVC,YAAY,EA9EF;EA+EVC,UAAU,EA/EA;EAiFVC,kBAAkB,EAjFR;EAmFVC,gBAAgB,EAnFN;EAoFVC,iBAAiB,EApFP;EAqFVC,eAAe,EArFL;EAuFVC,kBAAkB,EAvFR;EAwFVC,uBAAuB,EAxFb;EAyFVC,4BAA4B,EAzFlB;EA0FVC,mBAAmB,EA1FT;EA2FVC,yBAAyB,EA3Ff;EA4FVC,8BAA8B,EA5FpB;EA6FVC,yBAAyB,EA7Ff;EA8FVC,6BAA6B,EA9FnB;EA+FVC,0BAA0B,EA/FhB;EAgGVC,eAAe;AAhGL,CAAZ;;AAmGA,MAAMC,uBAAuB;EAE3BC,SAAS,SAFkB;EAG3BC,OAAO,OAHoB;EAI3BC,YAAY,YAJe;EAK3BC,YAAY,YALe;EAM3BC,OAAO,OANoB;EAO3BC,gBAAgB,gBAPW;EAS3BC,MAAM,MATqB;EAU3BC,oBAAoB,oBAVO;EAW3BC,gBAAgB,gBAXW;EAY3BC,cAAc,cAZa;EAa3BC,oBAAoB,oBAbO;EAc3BC,gBAAgB,gBAdW;EAe3BC,kBAAkB,kBAfS;EAgB3BC,oBAAoB,oBAhBO;EAiB3BC,iBAAiB,iBAjBU;EAkB3BC,mBAAmB,mBAlBQ;EAmB3BC,oBAAoB,oBAnBO;EAoB3BC,qBAAqB,qBApBM;EAqB3BC,oBAAoB,oBArBO;EAsB3BC,kBAAkB,kBAtBS;EAuB3BC,oBAAoB,oBAvBO;EAwB3BC,uBAAuB;AAxBI,CAA7B;;AA2BA,MAAMC,oBAAoB;EACxBC,eAAe,CADS;EAExBC,oBAAoB;AAFI,CAA1B;;AAKA,IAAIC,YAAY7H,eAAeE,QAA/B;;AAEA,SAAS4H,iBAAT,CAA2BC,KAA3B,EAAkC;EAChC,IAAIC,OAAOC,SAAPD,CAAiBD,KAAjBC,CAAJ,EAA6B;IAC3BH,YAAYE,KAAZF;EAF8B;AAlZlC;;AAwZA,SAASK,iBAAT,GAA6B;EAC3B,OAAOL,SAAP;AAzZF;;AA+ZA,SAASM,IAAT,CAAcC,GAAd,EAAmB;EACjB,IAAIP,aAAa7H,eAAeG,KAAhC,EAAuC;IACrCkI,QAAQC,GAARD,CAAa,SAAQD,GAAT,EAAZC;EAFe;AA/ZnB;;AAsaA,SAASE,IAAT,CAAcH,GAAd,EAAmB;EACjB,IAAIP,aAAa7H,eAAeE,QAAhC,EAA0C;IACxCmI,QAAQC,GAARD,CAAa,YAAWD,GAAZ,EAAZC;EAFe;AAtanB;;AA4aA,SAASG,WAAT,CAAqBJ,GAArB,EAA0B;EACxB,MAAM,IAAIK,KAAJ,CAAUL,GAAV,CAAN;AA7aF;;AAgbA,SAASM,MAAT,CAAgBC,IAAhB,EAAsBP,GAAtB,EAA2B;EACzB,IAAI,CAACO,IAAL,EAAW;IACTH,YAAYJ,GAAZ;EAFuB;AAhb3B;;AAubA,SAASQ,gBAAT,CAA0BC,GAA1B,EAA+B;EAC7B,IAAI,CAACA,GAAL,EAAU;IACR,OAAO,KAAP;EAF2B;;EAI7B,QAAQA,IAAIC,QAAZ;IACE,KAAK,OAAL;IACA,KAAK,QAAL;IACA,KAAK,MAAL;IACA,KAAK,SAAL;IACA,KAAK,MAAL;MACE,OAAO,IAAP;;IACF;MACE,OAAO,KAAP;EARJ;AA3bF;;AA+cA,SAASC,sBAAT,CAAgCF,GAAhC,EAAqCG,UAAU,IAA/C,EAAqDC,UAAU,IAA/D,EAAqE;EACnE,IAAI,CAACJ,GAAL,EAAU;IACR,OAAO,IAAP;EAFiE;;EAInE,IAAI;IACF,IAAII,WAAW,OAAOJ,GAAP,KAAe,QAA9B,EAAwC;MAEtC,IAAII,QAAQC,kBAARD,IAA8BJ,IAAIM,UAAJN,CAAe,MAAfA,CAAlC,EAA0D;QACxD,MAAMO,OAAOP,IAAIQ,KAAJR,CAAU,KAAVA,CAAb;;QAGA,IAAIO,QAAQA,KAAKE,MAALF,IAAe,CAA3B,EAA8B;UAC5BP,MAAO,UAASA,GAAV,EAANA;QALsD;MAFpB;;MAatC,IAAII,QAAQM,kBAAZ,EAAgC;QAC9B,IAAI;UACFV,MAAMW,mBAAmBX,GAAnB,CAANA;QADF,EAEE,OAAOY,EAAP,EAAW,CAHiB;MAbM;IADtC;;IAqBF,MAAMC,cAAcV,UAAU,IAAIW,GAAJ,CAAQd,GAAR,EAAaG,OAAb,CAAV,GAAkC,IAAIW,GAAJ,CAAQd,GAAR,CAAtD;;IACA,IAAID,iBAAiBc,WAAjB,CAAJ,EAAmC;MACjC,OAAOA,WAAP;IAvBA;EAAJ,EAyBE,OAAOD,EAAP,EAAW,CA7BsD;;EAgCnE,OAAO,IAAP;AA/eF;;AAkfA,SAASG,MAAT,CAAgBC,GAAhB,EAAqBC,IAArB,EAA2BC,KAA3B,EAAkC;EAUhCC,OAAOC,cAAPD,CAAsBH,GAAtBG,EAA2BF,IAA3BE,EAAiC;IAC/BD,KAD+B;IAE/BG,YAAY,IAFmB;IAG/BC,cAAc,IAHiB;IAI/BC,UAAU;EAJqB,CAAjCJ;EAMA,OAAOD,KAAP;AAlgBF;;AAwgBA,MAAMM,gBAAiB,SAASC,oBAAT,GAAgC;EAErD,SAASD,aAAT,CAAuBE,OAAvB,EAAgCC,IAAhC,EAAsC;IACpC,IAAI,KAAKC,WAAL,KAAqBJ,aAAzB,EAAwC;MACtC7B,YAAY,kCAAZ;IAFkC;;IAIpC,KAAK+B,OAAL,GAAeA,OAAf;IACA,KAAKC,IAAL,GAAYA,IAAZ;EAPmD;;EASrDH,cAAcK,SAAdL,GAA0B,IAAI5B,KAAJ,EAA1B4B;EACAA,cAAcI,WAAdJ,GAA4BA,aAA5BA;EAEA,OAAOA,aAAP;AAZoB,CAAC,EAAvB;;;;AAeA,MAAMM,iBAAN,SAAgCN,aAAhC,CAA8C;EAC5CI,YAAYrC,GAAZ,EAAiBwC,IAAjB,EAAuB;IACrB,MAAMxC,GAAN,EAAW,mBAAX;IACA,KAAKwC,IAAL,GAAYA,IAAZ;EAH0C;;AAAA;;;;AAO9C,MAAMC,qBAAN,SAAoCR,aAApC,CAAkD;EAChDI,YAAYrC,GAAZ,EAAiB0C,OAAjB,EAA0B;IACxB,MAAM1C,GAAN,EAAW,uBAAX;IACA,KAAK0C,OAAL,GAAeA,OAAf;EAH8C;;AAAA;;;;AAOlD,MAAMC,mBAAN,SAAkCV,aAAlC,CAAgD;EAC9CI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,qBAAX;EAF4C;;AAAA;;;;AAMhD,MAAM4C,mBAAN,SAAkCX,aAAlC,CAAgD;EAC9CI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,qBAAX;EAF4C;;AAAA;;;;AAMhD,MAAM6C,2BAAN,SAA0CZ,aAA1C,CAAwD;EACtDI,YAAYrC,GAAZ,EAAiB8C,MAAjB,EAAyB;IACvB,MAAM9C,GAAN,EAAW,6BAAX;IACA,KAAK8C,MAAL,GAAcA,MAAd;EAHoD;;AAAA;;;;AAUxD,MAAMC,WAAN,SAA0Bd,aAA1B,CAAwC;EACtCI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,aAAX;EAFoC;;AAAA;;;;AASxC,MAAMgD,cAAN,SAA6Bf,aAA7B,CAA2C;EACzCI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,gBAAX;EAFuC;;AAAA;;;;AAM3C,SAASiD,aAAT,CAAuBC,KAAvB,EAA8B;EAC5B,IACE,OAAOA,KAAP,KAAiB,QAAjB,IACAA,UAAU,IADV,IAEAA,MAAMhC,MAANgC,KAAiBC,SAHnB,EAIE;IACA/C,YAAY,oCAAZ;EAN0B;;EAQ5B,MAAMc,SAASgC,MAAMhC,MAArB;EACA,MAAMkC,qBAAqB,IAA3B;;EACA,IAAIlC,SAASkC,kBAAb,EAAiC;IAC/B,OAAOC,OAAOC,YAAPD,CAAoBE,KAApBF,CAA0B,IAA1BA,EAAgCH,KAAhCG,CAAP;EAX0B;;EAa5B,MAAMG,SAAS,EAAf;;EACA,KAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIvC,MAApB,EAA4BuC,KAAKL,kBAAjC,EAAqD;IACnD,MAAMM,WAAWC,KAAKC,GAALD,CAASF,IAAIL,kBAAbO,EAAiCzC,MAAjCyC,CAAjB;IACA,MAAME,QAAQX,MAAMY,QAANZ,CAAeO,CAAfP,EAAkBQ,QAAlBR,CAAd;IACAM,OAAOO,IAAPP,CAAYH,OAAOC,YAAPD,CAAoBE,KAApBF,CAA0B,IAA1BA,EAAgCQ,KAAhCR,CAAZG;EAjB0B;;EAmB5B,OAAOA,OAAOQ,IAAPR,CAAY,EAAZA,CAAP;AA7lBF;;AAgmBA,SAASS,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;IAC3B9D,YAAY,oCAAZ;EAFwB;;EAI1B,MAAMc,SAASgD,IAAIhD,MAAnB;EACA,MAAMgC,QAAQ,IAAIiB,UAAJ,CAAejD,MAAf,CAAd;;EACA,KAAK,IAAIuC,IAAI,CAAb,EAAgBA,IAAIvC,MAApB,EAA4B,EAAEuC,CAA9B,EAAiC;IAC/BP,MAAMO,CAAN,IAAWS,IAAIE,UAAJF,CAAeT,CAAfS,IAAoB,IAA/BhB;EAPwB;;EAS1B,OAAOA,KAAP;AAzmBF;;AAknBA,SAASmB,eAAT,CAAyBC,GAAzB,EAA8B;EAC5B,IAAIA,IAAIpD,MAAJoD,KAAenB,SAAnB,EAA8B;IAC5B,OAAOmB,IAAIpD,MAAX;EAF0B;;EAI5B,IAAIoD,IAAIC,UAAJD,KAAmBnB,SAAvB,EAAkC;IAChC,OAAOmB,IAAIC,UAAX;EAL0B;;EAO5BnE,YAAY,sCAAZ;AAznBF;;AAkoBA,SAASoE,aAAT,CAAuBF,GAAvB,EAA4B;EAC1B,MAAMpD,SAASoD,IAAIpD,MAAnB;;EAEA,IAAIA,WAAW,CAAXA,IAAgBoD,IAAI,CAAJ,aAAkBH,UAAtC,EAAkD;IAChD,OAAOG,IAAI,CAAJ,CAAP;EAJwB;;EAM1B,IAAIG,eAAe,CAAnB;;EACA,KAAK,IAAIhB,IAAI,CAAb,EAAgBA,IAAIvC,MAApB,EAA4BuC,GAA5B,EAAiC;IAC/BgB,gBAAgBJ,gBAAgBC,IAAIb,CAAJ,CAAhB,CAAhBgB;EARwB;;EAU1B,IAAIC,MAAM,CAAV;EACA,MAAMC,OAAO,IAAIR,UAAJ,CAAeM,YAAf,CAAb;;EACA,KAAK,IAAIhB,IAAI,CAAb,EAAgBA,IAAIvC,MAApB,EAA4BuC,GAA5B,EAAiC;IAC/B,IAAImB,OAAON,IAAIb,CAAJ,CAAX;;IACA,IAAI,EAAEmB,gBAAgBT,UAAlB,CAAJ,EAAmC;MACjC,IAAI,OAAOS,IAAP,KAAgB,QAApB,EAA8B;QAC5BA,OAAOX,cAAcW,IAAd,CAAPA;MADF,OAEO;QACLA,OAAO,IAAIT,UAAJ,CAAeS,IAAf,CAAPA;MAJ+B;IAFJ;;IAS/B,MAAMC,aAAaD,KAAKL,UAAxB;IACAI,KAAKG,GAALH,CAASC,IAATD,EAAeD,GAAfC;IACAD,OAAOG,UAAPH;EAvBwB;;EAyB1B,OAAOC,IAAP;AA3pBF;;AA8pBA,SAASI,QAAT,CAAkBpD,KAAlB,EAAyB;EAUvB,OAAO0B,OAAOC,YAAPD,CACJ1B,SAAS,EAATA,GAAe,IADX0B,EAEJ1B,SAAS,EAATA,GAAe,IAFX0B,EAGJ1B,SAAS,CAATA,GAAc,IAHV0B,EAIL1B,QAAQ,IAJH0B,CAAP;AAxqBF;;AAgrBA,SAAS2B,UAAT,CAAoBvD,GAApB,EAAyB;EACvB,OAAOG,OAAOqD,IAAPrD,CAAYH,GAAZG,EAAiBV,MAAxB;AAjrBF;;AAsrBA,SAASgE,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,MAAM1D,MAAMG,OAAOwD,MAAPxD,CAAc,IAAdA,CAAZ;;EACA,WAAW,CAACyD,GAAD,EAAM1D,KAAN,CAAX,IAA2BwD,GAA3B,EAAgC;IAC9B1D,IAAI4D,GAAJ,IAAW1D,KAAXF;EAHwB;;EAK1B,OAAOA,GAAP;AA3rBF;;AA+rBA,SAAS6D,cAAT,GAA0B;EACxB,MAAMC,UAAU,IAAIpB,UAAJ,CAAe,CAAf,CAAhB;EACAoB,QAAQ,CAAR,IAAa,CAAbA;EACA,MAAMC,SAAS,IAAIC,WAAJ,CAAgBF,QAAQG,MAAxB,EAAgC,CAAhC,EAAmC,CAAnC,CAAf;EACA,OAAOF,OAAO,CAAP,MAAc,CAArB;AAnsBF;;AAusBA,SAASG,eAAT,GAA2B;EACzB,IAAI;IACF,IAAIC,QAAJ,CAAa,EAAb;IACA,OAAO,IAAP;EAFF,EAGE,OAAOC,CAAP,EAAU;IACV,OAAO,KAAP;EALuB;AAvsB3B;;AAgtBA,MAAMC,WAAN,CAAkB;EAChB,WAAWR,cAAX,GAA4B;IAC1B,OAAO9D,OAAO,IAAP,EAAa,gBAAb,EAA+B8D,gBAA/B,CAAP;EAFc;;EAKhB,WAAWK,eAAX,GAA6B;IAC3B,OAAOnE,OAAO,IAAP,EAAa,iBAAb,EAAgCmE,iBAAhC,CAAP;EANc;;EAShB,WAAWI,0BAAX,GAAwC;IACtC,OAAOvE,OACL,IADK,EAEL,4BAFK,EAGL,OAAOwE,eAAP,KAA2B,WAHtB,CAAP;EAVc;;AAAA;;;AAkBlB,MAAMC,aAAa,CAAC,GAAGC,MAAM,GAAN,EAAWjB,IAAXiB,EAAJ,EAAuBf,GAAvB,CAA2BgB,KAC5CA,EAAEC,QAAFD,CAAW,EAAXA,EAAeE,QAAfF,CAAwB,CAAxBA,EAA2B,GAA3BA,CADiB,CAAnB;;AAIA,MAAMG,IAAN,CAAW;EACT,OAAOC,YAAP,CAAoBC,CAApB,EAAuBC,CAAvB,EAA0BC,CAA1B,EAA6B;IAC3B,OAAQ,IAAGT,WAAWO,CAAX,CAAJ,GAAoBP,WAAWQ,CAAX,CAApB,GAAoCR,WAAWS,CAAX,CAApC,EAAP;EAFO;;EAQT,OAAOC,WAAP,CAAmB5N,SAAnB,EAA8B6N,MAA9B,EAAsC;IACpC,IAAIC,IAAJ;;IACA,IAAI9N,UAAU,CAAV,CAAJ,EAAkB;MAChB,IAAIA,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpB8N,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAJc;;MAMhBA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;MACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;;MAEA,IAAI7N,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpB8N,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAZc;;MAchBA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;MACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;IAfF,OAgBO;MACLC,OAAOD,OAAO,CAAP,CAAPC;MACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;MACAA,OAAO,CAAP,IAAYC,IAAZD;MACAC,OAAOD,OAAO,CAAP,CAAPC;MACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;MACAA,OAAO,CAAP,IAAYC,IAAZD;;MAEA,IAAI7N,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpB8N,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAXG;;MAaLA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;MACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;;MAEA,IAAI7N,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpB8N,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAnBG;;MAqBLA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;MACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;IAxCkC;;IA0CpCA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;IACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;IACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;IACAA,OAAO,CAAP,KAAa7N,UAAU,CAAV,CAAb6N;EArDO;;EAyDT,OAAO7N,SAAP,CAAiB+N,EAAjB,EAAqBC,EAArB,EAAyB;IACvB,OAAO,CACLD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CADnB,EAELD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAFnB,EAGLD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAHnB,EAILD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAJnB,EAKLD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAAxBD,GAAgCA,GAAG,CAAH,CAL3B,EAMLA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAAxBD,GAAgCA,GAAG,CAAH,CAN3B,CAAP;EA1DO;;EAqET,OAAOE,cAAP,CAAsBC,CAAtB,EAAyBC,CAAzB,EAA4B;IAC1B,MAAMC,KAAKF,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BC,EAAE,CAAF,CAAvC;IACA,MAAME,KAAKH,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BC,EAAE,CAAF,CAAvC;IACA,OAAO,CAACC,EAAD,EAAKC,EAAL,CAAP;EAxEO;;EA2ET,OAAOC,qBAAP,CAA6BJ,CAA7B,EAAgCC,CAAhC,EAAmC;IACjC,MAAMI,IAAIJ,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAA/B;IACA,MAAMC,KAAM,GAAE,CAAF,IAAOD,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BC,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAnCD,GAA0CC,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAjD,IAAyDI,CAArE;IACA,MAAMF,KAAM,EAACH,EAAE,CAAF,CAAD,GAAQC,EAAE,CAAF,CAAR,GAAeD,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAtB,GAA6BA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAApC,GAA2CA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAlD,IAA0DI,CAAtE;IACA,OAAO,CAACH,EAAD,EAAKC,EAAL,CAAP;EA/EO;;EAoFT,OAAOG,0BAAP,CAAkCf,CAAlC,EAAqCU,CAArC,EAAwC;IACtC,MAAMM,KAAKlB,KAAKU,cAALV,CAAoBE,CAApBF,EAAuBY,CAAvBZ,CAAX;IACA,MAAMmB,KAAKnB,KAAKU,cAALV,CAAoBE,EAAEkB,KAAFlB,CAAQ,CAARA,EAAW,CAAXA,CAApBF,EAAmCY,CAAnCZ,CAAX;IACA,MAAMqB,KAAKrB,KAAKU,cAALV,CAAoB,CAACE,EAAE,CAAF,CAAD,EAAOA,EAAE,CAAF,CAAP,CAApBF,EAAkCY,CAAlCZ,CAAX;IACA,MAAMsB,KAAKtB,KAAKU,cAALV,CAAoB,CAACE,EAAE,CAAF,CAAD,EAAOA,EAAE,CAAF,CAAP,CAApBF,EAAkCY,CAAlCZ,CAAX;IACA,OAAO,CACL3C,KAAKC,GAALD,CAAS6D,GAAG,CAAH,CAAT7D,EAAgB8D,GAAG,CAAH,CAAhB9D,EAAuBgE,GAAG,CAAH,CAAvBhE,EAA8BiE,GAAG,CAAH,CAA9BjE,CADK,EAELA,KAAKC,GAALD,CAAS6D,GAAG,CAAH,CAAT7D,EAAgB8D,GAAG,CAAH,CAAhB9D,EAAuBgE,GAAG,CAAH,CAAvBhE,EAA8BiE,GAAG,CAAH,CAA9BjE,CAFK,EAGLA,KAAKkE,GAALlE,CAAS6D,GAAG,CAAH,CAAT7D,EAAgB8D,GAAG,CAAH,CAAhB9D,EAAuBgE,GAAG,CAAH,CAAvBhE,EAA8BiE,GAAG,CAAH,CAA9BjE,CAHK,EAILA,KAAKkE,GAALlE,CAAS6D,GAAG,CAAH,CAAT7D,EAAgB8D,GAAG,CAAH,CAAhB9D,EAAuBgE,GAAG,CAAH,CAAvBhE,EAA8BiE,GAAG,CAAH,CAA9BjE,CAJK,CAAP;EAzFO;;EAiGT,OAAOmE,gBAAP,CAAwBZ,CAAxB,EAA2B;IACzB,MAAMI,IAAIJ,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAA/B;IACA,OAAO,CACLA,EAAE,CAAF,IAAOI,CADF,EAEL,CAACJ,EAAE,CAAF,CAAD,GAAQI,CAFH,EAGL,CAACJ,EAAE,CAAF,CAAD,GAAQI,CAHH,EAILJ,EAAE,CAAF,IAAOI,CAJF,EAKJ,GAAE,CAAF,IAAOJ,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAArB,IAA6BI,CALzB,EAMJ,GAAE,CAAF,IAAOJ,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAArB,IAA6BI,CANzB,CAAP;EAnGO;;EAmHT,OAAOS,gBAAP,CAAwBb,CAAxB,EAA2Bc,CAA3B,EAA8B;IAC5B,OAAO,CACLd,EAAE,CAAF,IAAOc,EAAE,CAAF,CAAPd,GAAcA,EAAE,CAAF,IAAOc,EAAE,CAAF,CAArBd,GAA4BA,EAAE,CAAF,IAAOc,EAAE,CAAF,CAD9B,EAELd,EAAE,CAAF,IAAOc,EAAE,CAAF,CAAPd,GAAcA,EAAE,CAAF,IAAOc,EAAE,CAAF,CAArBd,GAA4BA,EAAE,CAAF,IAAOc,EAAE,CAAF,CAF9B,EAGLd,EAAE,CAAF,IAAOc,EAAE,CAAF,CAAPd,GAAcA,EAAE,CAAF,IAAOc,EAAE,CAAF,CAArBd,GAA4BA,EAAE,CAAF,IAAOc,EAAE,CAAF,CAH9B,CAAP;EApHO;;EA8HT,OAAOC,6BAAP,CAAqCf,CAArC,EAAwC;IACtC,MAAMgB,YAAY,CAAChB,EAAE,CAAF,CAAD,EAAOA,EAAE,CAAF,CAAP,EAAaA,EAAE,CAAF,CAAb,EAAmBA,EAAE,CAAF,CAAnB,CAAlB;IAGA,MAAMiB,IAAIjB,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAPhB,GAAsBA,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAvC;IACA,MAAMxB,IAAIQ,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAPhB,GAAsBA,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAvC;IACA,MAAME,IAAIlB,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAPhB,GAAsBA,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAvC;IACA,MAAMZ,IAAIJ,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAPhB,GAAsBA,EAAE,CAAF,IAAOgB,UAAU,CAAV,CAAvC;IAGA,MAAMG,QAAS,KAAIf,CAAJ,IAAS,CAAxB;IACA,MAAMgB,SAAS3E,KAAK4E,IAAL5E,CAAW,KAAI2D,CAAJ,KAAU,CAAV,GAAc,KAAKa,IAAIb,CAAJa,GAAQC,IAAI1B,CAAjB,CAAzB/C,IAAgD,CAA/D;IACA,MAAM6E,KAAKH,QAAQC,MAARD,IAAkB,CAA7B;IACA,MAAMI,KAAKJ,QAAQC,MAARD,IAAkB,CAA7B;IAGA,OAAO,CAAC1E,KAAK4E,IAAL5E,CAAU6E,EAAV7E,CAAD,EAAgBA,KAAK4E,IAAL5E,CAAU8E,EAAV9E,CAAhB,CAAP;EA9IO;;EAqJT,OAAO+E,aAAP,CAAqBC,IAArB,EAA2B;IACzB,MAAMnC,IAAImC,KAAKjB,KAALiB,CAAW,CAAXA,CAAV;;IACA,IAAIA,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAd,EAAuB;MACrBnC,EAAE,CAAF,IAAOmC,KAAK,CAAL,CAAPnC;MACAA,EAAE,CAAF,IAAOmC,KAAK,CAAL,CAAPnC;IAJuB;;IAMzB,IAAImC,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAd,EAAuB;MACrBnC,EAAE,CAAF,IAAOmC,KAAK,CAAL,CAAPnC;MACAA,EAAE,CAAF,IAAOmC,KAAK,CAAL,CAAPnC;IARuB;;IAUzB,OAAOA,CAAP;EA/JO;;EAqKT,OAAOoC,SAAP,CAAiBC,KAAjB,EAAwBC,KAAxB,EAA+B;IAC7B,MAAMC,OAAOpF,KAAKkE,GAALlE,CACXA,KAAKC,GAALD,CAASkF,MAAM,CAAN,CAATlF,EAAmBkF,MAAM,CAAN,CAAnBlF,CADWA,EAEXA,KAAKC,GAALD,CAASmF,MAAM,CAAN,CAATnF,EAAmBmF,MAAM,CAAN,CAAnBnF,CAFWA,CAAb;IAIA,MAAMqF,QAAQrF,KAAKC,GAALD,CACZA,KAAKkE,GAALlE,CAASkF,MAAM,CAAN,CAATlF,EAAmBkF,MAAM,CAAN,CAAnBlF,CADYA,EAEZA,KAAKkE,GAALlE,CAASmF,MAAM,CAAN,CAATnF,EAAmBmF,MAAM,CAAN,CAAnBnF,CAFYA,CAAd;;IAIA,IAAIoF,OAAOC,KAAX,EAAkB;MAChB,OAAO,IAAP;IAV2B;;IAY7B,MAAMC,OAAOtF,KAAKkE,GAALlE,CACXA,KAAKC,GAALD,CAASkF,MAAM,CAAN,CAATlF,EAAmBkF,MAAM,CAAN,CAAnBlF,CADWA,EAEXA,KAAKC,GAALD,CAASmF,MAAM,CAAN,CAATnF,EAAmBmF,MAAM,CAAN,CAAnBnF,CAFWA,CAAb;IAIA,MAAMuF,QAAQvF,KAAKC,GAALD,CACZA,KAAKkE,GAALlE,CAASkF,MAAM,CAAN,CAATlF,EAAmBkF,MAAM,CAAN,CAAnBlF,CADYA,EAEZA,KAAKkE,GAALlE,CAASmF,MAAM,CAAN,CAATnF,EAAmBmF,MAAM,CAAN,CAAnBnF,CAFYA,CAAd;;IAIA,IAAIsF,OAAOC,KAAX,EAAkB;MAChB,OAAO,IAAP;IArB2B;;IAwB7B,OAAO,CAACH,IAAD,EAAOE,IAAP,EAAaD,KAAb,EAAoBE,KAApB,CAAP;EA7LO;;EAiMT,OAAOC,iBAAP,CAAyBC,EAAzB,EAA6BC,EAA7B,EAAiCC,EAAjC,EAAqCC,EAArC,EAAyCC,EAAzC,EAA6CC,EAA7C,EAAiDC,EAAjD,EAAqDC,EAArD,EAAyD;IACvD,MAAMC,UAAU,EAAhB;IAAA,MACEC,SAAS,CAAC,EAAD,EAAK,EAAL,CADX;IAEA,IAAI1B,CAAJ,EAAOzB,CAAP,EAAU0B,CAAV,EAAa0B,CAAb,EAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,IAAxB,EAA8BC,QAA9B;;IACA,KAAK,IAAIzG,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuB,EAAEA,CAAzB,EAA4B;MAC1B,IAAIA,MAAM,CAAV,EAAa;QACXiD,IAAI,IAAI0C,EAAJ,GAAS,KAAKE,EAAd,GAAmB,IAAIE,EAA3B9C;QACAyB,IAAI,CAAC,CAAD,GAAKiB,EAAL,GAAU,IAAIE,EAAd,GAAmB,IAAIE,EAAvB,GAA4B,IAAIE,EAApCvB;QACAC,IAAI,IAAIkB,EAAJ,GAAS,IAAIF,EAAjBhB;MAHF,OAIO;QACL1B,IAAI,IAAI2C,EAAJ,GAAS,KAAKE,EAAd,GAAmB,IAAIE,EAA3B/C;QACAyB,IAAI,CAAC,CAAD,GAAKkB,EAAL,GAAU,IAAIE,EAAd,GAAmB,IAAIE,EAAvB,GAA4B,IAAIE,EAApCxB;QACAC,IAAI,IAAImB,EAAJ,GAAS,IAAIF,EAAjBjB;MARwB;;MAU1B,IAAIzE,KAAKwG,GAALxG,CAASwE,CAATxE,IAAc,KAAlB,EAAyB;QACvB,IAAIA,KAAKwG,GAALxG,CAAS+C,CAAT/C,IAAc,KAAlB,EAAyB;UACvB;QAFqB;;QAIvBmG,IAAI,CAAC1B,CAAD,GAAK1B,CAAToD;;QACA,IAAI,IAAIA,CAAJ,IAASA,IAAI,CAAjB,EAAoB;UAClBF,QAAQ7F,IAAR6F,CAAaE,CAAbF;QANqB;;QAQvB;MAlBwB;;MAoB1BK,OAAOvD,IAAIA,CAAJA,GAAQ,IAAI0B,CAAJ,GAAQD,CAAvB8B;MACAC,WAAWvG,KAAK4E,IAAL5E,CAAUsG,IAAVtG,CAAXuG;;MACA,IAAID,OAAO,CAAX,EAAc;QACZ;MAvBwB;;MAyB1BF,KAAM,EAACrD,CAAD,GAAKwD,QAAL,KAAkB,IAAI/B,CAAtB,CAAN4B;;MACA,IAAI,IAAIA,EAAJ,IAAUA,KAAK,CAAnB,EAAsB;QACpBH,QAAQ7F,IAAR6F,CAAaG,EAAbH;MA3BwB;;MA6B1BI,KAAM,EAACtD,CAAD,GAAKwD,QAAL,KAAkB,IAAI/B,CAAtB,CAAN6B;;MACA,IAAI,IAAIA,EAAJ,IAAUA,KAAK,CAAnB,EAAsB;QACpBJ,QAAQ7F,IAAR6F,CAAaI,EAAbJ;MA/BwB;IAJ2B;;IAuCvD,IAAIQ,IAAIR,QAAQ1I,MAAhB;IAAA,IACEmJ,EADF;IAEA,MAAMC,OAAOF,CAAb;;IACA,OAAOA,GAAP,EAAY;MACVN,IAAIF,QAAQQ,CAAR,CAAJN;MACAO,KAAK,IAAIP,CAATO;MACAR,OAAO,CAAP,EAAUO,CAAVP,IACEQ,KAAKA,EAALA,GAAUA,EAAVA,GAAejB,EAAfiB,GACA,IAAIA,EAAJ,GAASA,EAAT,GAAcP,CAAd,GAAkBR,EADlBe,GAEA,IAAIA,EAAJ,GAASP,CAAT,GAAaA,CAAb,GAAiBN,EAFjBa,GAGAP,IAAIA,CAAJA,GAAQA,CAARA,GAAYJ,EAJdG;MAKAA,OAAO,CAAP,EAAUO,CAAVP,IACEQ,KAAKA,EAALA,GAAUA,EAAVA,GAAehB,EAAfgB,GACA,IAAIA,EAAJ,GAASA,EAAT,GAAcP,CAAd,GAAkBP,EADlBc,GAEA,IAAIA,EAAJ,GAASP,CAAT,GAAaA,CAAb,GAAiBL,EAFjBY,GAGAP,IAAIA,CAAJA,GAAQA,CAARA,GAAYH,EAJdE;IAlDqD;;IAyDvDA,OAAO,CAAP,EAAUS,IAAVT,IAAkBT,EAAlBS;IACAA,OAAO,CAAP,EAAUS,IAAVT,IAAkBR,EAAlBQ;IACAA,OAAO,CAAP,EAAUS,OAAO,CAAjBT,IAAsBH,EAAtBG;IACAA,OAAO,CAAP,EAAUS,OAAO,CAAjBT,IAAsBF,EAAtBE;IACAA,OAAO,CAAP,EAAU3I,MAAV2I,GAAmBA,OAAO,CAAP,EAAU3I,MAAV2I,GAAmBS,OAAO,CAA7CT;IAEA,OAAO,CACLlG,KAAKC,GAALD,CAAS,GAAGkG,OAAO,CAAP,CAAZlG,CADK,EAELA,KAAKC,GAALD,CAAS,GAAGkG,OAAO,CAAP,CAAZlG,CAFK,EAGLA,KAAKkE,GAALlE,CAAS,GAAGkG,OAAO,CAAP,CAAZlG,CAHK,EAILA,KAAKkE,GAALlE,CAAS,GAAGkG,OAAO,CAAP,CAAZlG,CAJK,CAAP;EAhQO;;AAAA;;;AAyQX,MAAM4G,0BAA0B,CAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EACiC,CADjC,EACoC,CADpC,EACuC,CADvC,EAC0C,KAD1C,EAE9B,KAF8B,EAEvB,KAFuB,EAEhB,KAFgB,EAET,KAFS,EAEF,KAFE,EAEK,KAFL,EAEY,KAFZ,EAEmB,CAFnB,EAEsB,CAFtB,EAEyB,CAFzB,EAE4B,CAF5B,EAE+B,CAF/B,EAEkC,CAFlC,EAEqC,CAFrC,EAEwC,CAFxC,EAE2C,CAF3C,EAE8C,CAF9C,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,EAGiC,CAHjC,EAGoC,CAHpC,EAGuC,CAHvC,EAG0C,CAH1C,EAG6C,CAH7C,EAI9B,CAJ8B,EAI3B,CAJ2B,EAIxB,CAJwB,EAIrB,CAJqB,EAIlB,CAJkB,EAIf,CAJe,EAIZ,CAJY,EAIT,CAJS,EAIN,CAJM,EAIH,CAJG,EAIA,CAJA,EAIG,CAJH,EAIM,CAJN,EAIS,CAJT,EAIY,CAJZ,EAIe,CAJf,EAIkB,CAJlB,EAIqB,CAJrB,EAIwB,CAJxB,EAI2B,CAJ3B,EAI8B,CAJ9B,EAIiC,CAJjC,EAIoC,CAJpC,EAIuC,CAJvC,EAI0C,CAJ1C,EAI6C,CAJ7C,EAK9B,CAL8B,EAK3B,CAL2B,EAKxB,CALwB,EAKrB,CALqB,EAKlB,CALkB,EAKf,CALe,EAKZ,CALY,EAKT,CALS,EAKN,CALM,EAKH,CALG,EAKA,CALA,EAKG,CALH,EAKM,CALN,EAKS,CALT,EAKY,CALZ,EAKe,CALf,EAKkB,CALlB,EAKqB,CALrB,EAKwB,CALxB,EAK2B,CAL3B,EAK8B,CAL9B,EAKiC,CALjC,EAKoC,CALpC,EAKuC,CALvC,EAK0C,CAL1C,EAK6C,CAL7C,EAM9B,CAN8B,EAM3B,CAN2B,EAMxB,CANwB,EAMrB,CANqB,EAMlB,CANkB,EAMf,CANe,EAMZ,CANY,EAMT,CANS,EAMN,MANM,EAME,MANF,EAMU,MANV,EAMkB,MANlB,EAM0B,MAN1B,EAMkC,MANlC,EAM0C,KAN1C,EAO9B,MAP8B,EAOtB,MAPsB,EAOd,MAPc,EAON,MAPM,EAOE,MAPF,EAOU,MAPV,EAOkB,MAPlB,EAO0B,MAP1B,EAOkC,MAPlC,EAQ9B,MAR8B,EAQtB,MARsB,EAQd,MARc,EAQN,MARM,EAQE,MARF,EAQU,KARV,EAQiB,KARjB,EAQwB,KARxB,EAQ+B,KAR/B,EAQsC,KARtC,EAS9B,KAT8B,EASvB,KATuB,EAShB,KATgB,EAST,KATS,EASF,KATE,EASK,CATL,EASQ,MATR,CAAhC;;AAYA,SAASC,iBAAT,CAA2BtG,GAA3B,EAAgC;EAC9B,IAAIA,IAAI,CAAJ,KAAU,MAAd,EAAsB;IACpB,IAAIuG,QAAJ;;IACA,IAAIvG,IAAI,CAAJ,MAAW,MAAXA,IAAqBA,IAAI,CAAJ,MAAW,MAApC,EAA4C;MAC1CuG,WAAW,UAAXA;IADF,OAEO,IAAIvG,IAAI,CAAJ,MAAW,MAAXA,IAAqBA,IAAI,CAAJ,MAAW,MAApC,EAA4C;MACjDuG,WAAW,UAAXA;IADK,OAEA,IAAIvG,IAAI,CAAJ,MAAW,MAAXA,IAAqBA,IAAI,CAAJ,MAAW,MAAhCA,IAA0CA,IAAI,CAAJ,MAAW,MAAzD,EAAiE;MACtEuG,WAAW,OAAXA;IAPkB;;IAUpB,IAAIA,QAAJ,EAAc;MACZ,IAAI;QACF,MAAMC,UAAU,IAAIC,WAAJ,CAAgBF,QAAhB,EAA0B;UAAEG,OAAO;QAAT,CAA1B,CAAhB;QACA,MAAMlF,SAASzB,cAAcC,GAAd,CAAf;QACA,OAAOwG,QAAQG,MAARH,CAAehF,MAAfgF,CAAP;MAHF,EAIE,OAAOrJ,EAAP,EAAW;QACXlB,KAAM,uBAAsBkB,EAAG,IAA/B;MANU;IAVM;EADQ;;EAsB9B,MAAMmC,SAAS,EAAf;;EACA,KAAK,IAAIC,IAAI,CAAR,EAAWqH,KAAK5G,IAAIhD,MAAzB,EAAiCuC,IAAIqH,EAArC,EAAyCrH,GAAzC,EAA8C;IAC5C,MAAMjB,OAAO+H,wBAAwBrG,IAAIE,UAAJF,CAAeT,CAAfS,CAAxB,CAAb;IACAV,OAAOO,IAAPP,CAAYhB,OAAOa,OAAOC,YAAPD,CAAoBb,IAApBa,CAAP,GAAmCa,IAAI6G,MAAJ7G,CAAWT,CAAXS,CAA/CV;EAzB4B;;EA2B9B,OAAOA,OAAOQ,IAAPR,CAAY,EAAZA,CAAP;AAthCF;;AAyhCA,SAASwH,YAAT,CAAsB9G,GAAtB,EAA2B;EAIzB,OAAOA,IAAI+G,OAAJ/G,CAAY,eAAZA,EAA6BjD,SAAS;IAC3C,IAAIA,UAAU,IAAd,EAAoB;MAClB,OAAO,KAAP;IADF,OAEO,IAAIA,UAAU,IAAd,EAAoB;MACzB,OAAO,KAAP;IAJyC;;IAM3C,OAAQ,KAAIA,KAAL,EAAP;EANK,EAAP;AA7hCF;;AAuiCA,SAASiK,OAAT,CAAiBhH,GAAjB,EAAsB;EACpB,OAAO,iBAAiBiH,IAAjB,CAAsBjH,GAAtB,CAAP;AAxiCF;;AA2iCA,SAASkH,qBAAT,CAA+BlH,GAA/B,EAAoC;EAClC,MAAMmH,MAAM,CAAC,UAAD,CAAZ;;EACA,KAAK,IAAI5H,IAAI,CAAR,EAAWqH,KAAK5G,IAAIhD,MAAzB,EAAiCuC,IAAIqH,EAArC,EAAyCrH,GAAzC,EAA8C;IAC5C,MAAM6H,OAAOpH,IAAIE,UAAJF,CAAeT,CAAfS,CAAb;IACAmH,IAAItH,IAAJsH,CACEhI,OAAOC,YAAPD,CAAqBiI,QAAQ,CAARA,GAAa,IAAlCjI,CADFgI,EAEEhI,OAAOC,YAAPD,CAAoBiI,OAAO,IAA3BjI,CAFFgI;EAJgC;;EASlC,OAAOA,IAAIrH,IAAJqH,CAAS,EAATA,CAAP;AApjCF;;AAujCA,SAASjK,kBAAT,CAA4B8C,GAA5B,EAAiC;EAC/B,OAAOqH,mBAAmBC,OAAOtH,GAAP,CAAnB,CAAP;AAxjCF;;AA2jCA,SAASuH,kBAAT,CAA4BvH,GAA5B,EAAiC;EAC/B,OAAOwH,SAASC,mBAAmBzH,GAAnB,CAAT,CAAP;AA5jCF;;AA+jCA,SAAS0H,aAAT,CAAuB5D,CAAvB,EAA0B;EACxB,OAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBA,MAAM,IAA/B,IAAuCA,EAAEzD,UAAFyD,KAAiB7E,SAA/D;AAhkCF;;AAmkCA,SAAS0I,YAAT,CAAsBC,IAAtB,EAA4BC,IAA5B,EAAkC;EAChC,IAAID,KAAK5K,MAAL4K,KAAgBC,KAAK7K,MAAzB,EAAiC;IAC/B,OAAO,KAAP;EAF8B;;EAIhC,KAAK,IAAIuC,IAAI,CAAR,EAAWqH,KAAKgB,KAAK5K,MAA1B,EAAkCuC,IAAIqH,EAAtC,EAA0CrH,GAA1C,EAA+C;IAC7C,IAAIqI,KAAKrI,CAAL,MAAYsI,KAAKtI,CAAL,CAAhB,EAAyB;MACvB,OAAO,KAAP;IAF2C;EAJf;;EAShC,OAAO,IAAP;AA5kCF;;AA+kCA,SAASuI,mBAAT,CAA6BC,OAAO,IAAIC,IAAJ,EAApC,EAAgD;EAC9C,MAAMxG,SAAS,CACbuG,KAAKE,cAALF,GAAsB7F,QAAtB6F,EADa,EAEZ,MAAKG,WAALH,KAAqB,CAArB,EAAwB7F,QAAxB,GAAmCC,QAAnC,CAA4C,CAA5C,EAA+C,GAA/C,CAFY,EAGb4F,KAAKI,UAALJ,GAAkB7F,QAAlB6F,GAA6B5F,QAA7B4F,CAAsC,CAAtCA,EAAyC,GAAzCA,CAHa,EAIbA,KAAKK,WAALL,GAAmB7F,QAAnB6F,GAA8B5F,QAA9B4F,CAAuC,CAAvCA,EAA0C,GAA1CA,CAJa,EAKbA,KAAKM,aAALN,GAAqB7F,QAArB6F,GAAgC5F,QAAhC4F,CAAyC,CAAzCA,EAA4C,GAA5CA,CALa,EAMbA,KAAKO,aAALP,GAAqB7F,QAArB6F,GAAgC5F,QAAhC4F,CAAyC,CAAzCA,EAA4C,GAA5CA,CANa,CAAf;EASA,OAAOvG,OAAO1B,IAAP0B,CAAY,EAAZA,CAAP;AAzlCF;;AA4mCA,SAAS+G,uBAAT,GAAmC;EACjC,MAAMC,aAAa9K,OAAOwD,MAAPxD,CAAc,IAAdA,CAAnB;EACA,IAAI+K,YAAY,KAAhB;EAEA/K,OAAOC,cAAPD,CAAsB8K,UAAtB9K,EAAkC,SAAlCA,EAA6C;IAC3CgL,MAAM;MACJ,OAAOD,SAAP;IAFyC;;EAAA,CAA7C/K;EAKA8K,WAAWG,OAAXH,GAAqB,IAAII,OAAJ,CAAY,UAAUC,OAAV,EAAmBC,MAAnB,EAA2B;IAC1DN,WAAWK,OAAXL,GAAqB,UAAU/H,IAAV,EAAgB;MACnCgI,YAAY,IAAZA;MACAI,QAAQpI,IAAR;IAFF;;IAIA+H,WAAWM,MAAXN,GAAoB,UAAUO,MAAV,EAAkB;MACpCN,YAAY,IAAZA;MACAK,OAAOC,MAAP;IAFF;EALmB,EAArBP;EAUA,OAAOA,UAAP;AA/nCF;;;;;;;;ACgBA;;AAGA;;;;;;;;;;;;ACCA,MAAMQ,WAEJ,OAAOC,OAAP,KAAmB,QAAnB,IACAA,UAAU,EAAVA,KAAiB,kBADjB,IAEA,CAACA,QAAQC,QAARD,CAAiBE,EAFlB,IAGA,EAAEF,QAAQC,QAARD,CAAiBG,QAAjBH,IAA6BA,QAAQI,IAArCJ,IAA6CA,QAAQI,IAARJ,KAAiB,SAAhE,CALF;;;;;;;;;;;;;;ACLA;;AACA;;AACA;;AACA;;AAEA,MAAMK,UAAN,SAAyBvL,mBAAzB,CAAuC;EACrCI,YAAYrC,GAAZ,EAAiB;IACf,MAAO,gBAAeA,GAAhB,EAAN,EAA6B,YAA7B;EAFmC;;AAAA;;AAOvC,MAAMyN,YAAN,CAAmB;EACjBC,YAAYC,EAAZ,EAAgB;IACd,IAAIA,MAAM,IAAV,EAAgB;MACd,OAAO,KAAKA,EAAL,CAAP;IAFY;;IAId,OAAQ,KAAKA,EAAL,IAAW,IAAIC,SAAJ,CAAc,KAAK,EAAnB,CAAnB;EALe;;AAAA;;AASnB,MAAMC,eAAN,CAAsB;EACpBxL,YAAYsC,IAAZ,EAAkBmJ,KAAlB,EAAyBC,GAAzB,EAA8B;IAC5B,KAAKpJ,IAAL,GAAYA,IAAZ;IACA,KAAKmJ,KAAL,GAAaA,KAAb;IACA,KAAKC,GAAL,GAAWA,GAAX;EAJkB;;EAOpB,IAAIrD,OAAJ,GAAc;IACZ,MAAMA,UAAU,IAAIsD,qCAAJ,CAAsB,KAAKrJ,IAA3B,EAAiC,KAAKmJ,KAAtC,EAA6C,KAAKC,GAAlD,CAAhB;IACA,OAAOvM,kBAAO,IAAPA,EAAa,SAAbA,EAAwBkJ,OAAxBlJ,CAAP;EATkB;;EAYpB,IAAIyM,YAAJ,GAAmB;IACjB,MAAMC,QAAQ,IAAIT,YAAJ,EAAd;IACA,OAAOjM,kBAAO,IAAPA,EAAa,cAAbA,EAA6B0M,KAA7B1M,CAAP;EAdkB;;AAAA;;AAoBtB,SAAS2M,aAAT,CAAuBF,YAAvB,EAAqCG,SAArC,EAAgD1D,OAAhD,EAAyD;EACvD,MAAM2D,WAAWJ,aAAaP,WAAbO,CAAyBG,SAAzBH,CAAjB;EACA,IAAIK,OAAO,CAAX;;EAEA,SAASC,QAAT,CAAkBrN,MAAlB,EAA0B;IACxB,IAAI8G,IAAI,CAAR;;IACA,KAAK,IAAIvE,IAAI,CAAb,EAAgBA,IAAIvC,MAApB,EAA4BuC,GAA5B,EAAiC;MAC/B,MAAM+K,MAAM9D,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0B4D,IAA1B5D,CAAZ;MACA4D,OAAOA,OAAO,GAAPA,GAAcA,QAAQ,CAARA,GAAaE,GAA3BF,GAAmC,CAACA,QAAQ,CAARA,GAAaE,GAAd,IAAqB,GAArB,GAA4B,GAAtEF;MACAtG,IAAKA,KAAK,CAALA,GAAUwG,GAAfxG;IALsB;;IAOxB,OAAOA,MAAM,CAAb;EAXqD;;EAcvD,MAAM0G,OAAOH,SAAS,CAAT,CAAb;EAGA,MAAM5M,QAAQ4M,SAAS,CAAT,IACGA,SAAS,CAAT,IACEA,SAAS,CAAT,IACEA,SAAS,CAAT,IACEA,SAAS,CAAT,IACEA,SAAS,EAAT,IAAe,IADjBA,GAEDA,SAAS,EAAT,IAAe,GAHhBA,GAIDA,SAAS,CAAT,IAAc,EALfA,GAMDA,SAAS,CAAT,IAAc,EAPfA,GAQDA,SAAS,CAAT,IAAc,CAThBA,GAUAA,SAAS,CAAT,CAVd;;EAYA,IAAIG,SAAS,CAAb,EAAgB;IACd,OAAO/M,KAAP;EADF,OAEO,IAAIA,QAAQ,CAAZ,EAAe;IACpB,OAAO,CAACA,KAAR;EAhCqD;;EAkCvD,OAAO,IAAP;AA1FF;;AA8FA,SAASgN,UAAT,CAAoBV,YAApB,EAAkCvD,OAAlC,EAA2CkE,UAA3C,EAAuD;EACrD,MAAMP,WAAWJ,aAAaP,WAAbO,CAAyB,MAAzBA,CAAjB;EAEA,IAAIK,OAAO,CAAX;;EACA,KAAK,IAAI7K,IAAI,CAAb,EAAgBA,IAAImL,UAApB,EAAgCnL,GAAhC,EAAqC;IACnC,MAAM+K,MAAM9D,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0B4D,IAA1B5D,CAAZ;IACA4D,OAAQA,QAAQ,CAARA,GAAaE,GAArBF;EANmD;;EAQrD,IAAIM,aAAa,EAAjB,EAAqB;IACnB,OAAON,OAAS,MAAKM,UAAL,IAAmB,CAAnC;EATmD;;EAWrD,OAAON,OAAO,UAAd;AAzGF;;AA6GA,MAAMO,eAAe,CACnB,kBADmB,EAEnB,IAFmB,EAGnB,IAHmB,EAInB,IAJmB,EAKnB,wBALmB,EAMnB,IANmB,EAOnB,qBAPmB,EAQnB,6BARmB,EASnB,IATmB,EAUnB,IAVmB,EAWnB,IAXmB,EAYnB,IAZmB,EAanB,IAbmB,EAcnB,IAdmB,EAenB,IAfmB,EAgBnB,IAhBmB,EAiBnB,mBAjBmB,EAkBnB,IAlBmB,EAmBnB,IAnBmB,EAoBnB,IApBmB,EAqBnB,4BArBmB,EAsBnB,IAtBmB,EAuBnB,yBAvBmB,EAwBnB,iCAxBmB,EAyBnB,IAzBmB,EA0BnB,IA1BmB,EA2BnB,IA3BmB,EA4BnB,IA5BmB,EA6BnB,IA7BmB,EA8BnB,IA9BmB,EA+BnB,IA/BmB,EAgCnB,IAhCmB,EAiCnB,IAjCmB,EAkCnB,IAlCmB,EAmCnB,IAnCmB,EAoCnB,IApCmB,EAqCnB,2BArCmB,EAsCnB,IAtCmB,EAuCnB,wBAvCmB,EAwCnB,gCAxCmB,EAyCnB,qCAzCmB,EA0CnB,IA1CmB,EA2CnB,kCA3CmB,EA4CnB,0CA5CmB,EA6CnB,IA7CmB,EA8CnB,IA9CmB,EA+CnB,IA/CmB,EAgDnB,IAhDmB,EAiDnB,iBAjDmB,EAkDnB,WAlDmB,EAmDnB,aAnDmB,EAoDnB,WApDmB,EAqDnB,UArDmB,EAsDnB,QAtDmB,EAuDnB,IAvDmB,EAwDnB,IAxDmB,EAyDnB,IAzDmB,EA0DnB,IA1DmB,EA2DnB,IA3DmB,EA4DnB,IA5DmB,EA6DnB,IA7DmB,EA8DnB,IA9DmB,EA+DnB,WA/DmB,CAArB;AAkEA,MAAMC,kBAAkB,CACtB,CACE;EAAEC,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CADF,EAEE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAFF,EAGE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAHF,EAIE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CAJF,EAKE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CALF,EAME;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CANF,EAOE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAPF,EAQE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CARF,EASE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CATF,EAUE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAVF,EAWE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAXF,EAYE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAZF,CADsB,EAetB,CACE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CADF,EAEE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAFF,EAGE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAHF,EAIE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAJF,EAKE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CALF,EAME;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CANF,EAOE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAPF,EAQE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CARF,EASE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CATF,EAUE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAVF,EAWE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAXF,EAYE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAZF,CAfsB,EA6BtB,CACE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CADF,EAEE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAFF,EAGE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAHF,EAIE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CAJF,EAKE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CALF,EAME;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CANF,EAOE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAPF,EAQE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CARF,EASE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CATF,CA7BsB,EAwCtB,CACE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CADF,EAEE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CAFF,EAGE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG,CAAC;AAAb,CAHF,EAIE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CAJF,EAKE;EAAED,GAAG,CAAL;EAAQC,GAAG,CAAC;AAAZ,CALF,EAME;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CANF,EAOE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CAPF,EAQE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CARF,EASE;EAAED,GAAG,CAAC,CAAN;EAASC,GAAG;AAAZ,CATF,CAxCsB,CAAxB;AAqDA,MAAMC,sBAAsB,CAC1B;EACEC,QAAQ,CACN;IAAEH,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CADM,EAEN;IAAED,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CAFM,EAGN;IAAED,GAAG,CAAC,CAAN;IAASC,GAAG;EAAZ,CAHM,CADV;EAMEG,WAAW,CACT;IAAEJ,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CADS,EAET;IAAED,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CAFS,EAGT;IAAED,GAAG,CAAC,CAAN;IAASC,GAAG;EAAZ,CAHS,EAIT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CAJS,EAKT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CALS,EAMT;IAAED,GAAG,CAAC,CAAN;IAASC,GAAG;EAAZ,CANS,EAOT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CAPS,EAQT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CARS;AANb,CAD0B,EAkB1B;EACEE,QAAQ,CACN;IAAEH,GAAG,CAAC,CAAN;IAASC,GAAG,CAAC;EAAb,CADM,EAEN;IAAED,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CAFM,EAGN;IAAED,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CAHM,EAIN;IAAED,GAAG,CAAC,CAAN;IAASC,GAAG;EAAZ,CAJM,CADV;EAOEG,WAAW,CACT;IAAEJ,GAAG,CAAL;IAAQC,GAAG,CAAC;EAAZ,CADS,EAET;IAAED,GAAG,CAAC,CAAN;IAASC,GAAG;EAAZ,CAFS,EAGT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CAHS,EAIT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CAJS,EAKT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CALS,EAMT;IAAED,GAAG,CAAL;IAAQC,GAAG;EAAX,CANS;AAPb,CAlB0B,CAA5B;AAqCA,MAAMI,iBAAiB,CACrB,MADqB,EAErB,MAFqB,EAGrB,MAHqB,EAIrB,MAJqB,CAAvB;AAOA,MAAMC,2BAA2B,CAC/B,MAD+B,EAE/B,MAF+B,CAAjC;;AAKA,SAASC,qBAAT,CAA+BC,KAA/B,EAAsCC,MAAtC,EAA8CC,eAA9C,EAA+D;EAC7D,MAAM/E,UAAU+E,gBAAgB/E,OAAhC;EACA,MAAM2D,WAAWoB,gBAAgBxB,YAAhBwB,CAA6B/B,WAA7B+B,CAAyC,IAAzCA,CAAjB;EACA,MAAMC,SAAS,EAAf;EACA,IAAIC,YAAJ,EAAkBlM,CAAlB,EAAqB2G,CAArB,EAAwBwF,KAAxB,EAA+BC,GAA/B,EAAoCC,IAApC,EAA0CC,IAA1C;EAKA,MAAMC,iBAAiB,MAAvB;;EAEA,KAAKvM,IAAI,CAAT,EAAYA,IAAI+L,MAAhB,EAAwB/L,GAAxB,EAA6B;IAC3BoM,MAAMH,OAAOjM,CAAP,IAAY,IAAIU,UAAJ,CAAeoL,KAAf,CAAlBM;IACAC,OAAOrM,IAAI,CAAJA,GAAQoM,GAARpM,GAAciM,OAAOjM,IAAI,CAAX,CAArBqM;IACAC,OAAOtM,IAAI,CAAJA,GAAQoM,GAARpM,GAAciM,OAAOjM,IAAI,CAAX,CAArBsM;IAIAJ,eACGI,KAAK,CAAL,KAAW,EAAXA,GACAA,KAAK,CAAL,KAAW,EADXA,GAEAA,KAAK,CAAL,KAAW,EAFXA,GAGAD,KAAK,CAAL,KAAW,CAHXC,GAIAD,KAAK,CAAL,KAAW,CAJXC,GAKAD,KAAK,CAAL,KAAW,CALXC,GAMAD,KAAK,CAAL,KAAW,CAPdH;;IASA,KAAKvF,IAAI,CAAT,EAAYA,IAAImF,KAAhB,EAAuBnF,GAAvB,EAA4B;MAC1ByF,IAAIzF,CAAJ,IAASwF,QAAQlF,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BiF,YAA1BjF,CAAjBmF;MAIAF,eACI,gBAAeK,cAAf,KAAkC,CAAlC,IACD5F,IAAI,CAAJA,GAAQmF,KAARnF,GAAgB2F,KAAK3F,IAAI,CAAT,KAAe,EAA/BA,GAAoC,CADnC,KAEDA,IAAI,CAAJA,GAAQmF,KAARnF,GAAgB0F,KAAK1F,IAAI,CAAT,KAAe,CAA/BA,GAAmC,CAFlC,IAGFwF,KAJFD;IArByB;EAXgC;;EAwC7D,OAAOD,MAAP;AA7TF;;AAiUA,SAASO,YAAT,CACEC,GADF,EAEEX,KAFF,EAGEC,MAHF,EAIEW,aAJF,EAKEC,UALF,EAMEC,IANF,EAOEC,EAPF,EAQEb,eARF,EASE;EACA,IAAIS,GAAJ,EAAS;IACP,MAAMK,QAAQ,IAAIC,MAAJ,CACZf,gBAAgB9K,IADJ,EAEZ8K,gBAAgB3B,KAFJ,EAGZ2B,gBAAgB1B,GAHJ,CAAd;IAKA,OAAO0C,gBAAgBF,KAAhB,EAAuBhB,KAAvB,EAA8BC,MAA9B,EAAsC,KAAtC,CAAP;EAPF;;EAWA,IACEW,kBAAkB,CAAlBA,IACA,CAACE,IADDF,IAEA,CAACC,UAFDD,IAGAG,GAAGpP,MAAHoP,KAAc,CAHdH,IAIAG,GAAG,CAAH,EAAMvB,CAANuB,KAAY,CAJZH,IAKAG,GAAG,CAAH,EAAMtB,CAANsB,KAAY,CAAC,CALbH,IAMAG,GAAG,CAAH,EAAMvB,CAANuB,KAAY,CAAC,CANbH,IAOAG,GAAG,CAAH,EAAMtB,CAANsB,KAAY,CAAC,CAPbH,IAQAG,GAAG,CAAH,EAAMvB,CAANuB,KAAY,CARZH,IASAG,GAAG,CAAH,EAAMtB,CAANsB,KAAY,CAAC,CATbH,IAUAG,GAAG,CAAH,EAAMvB,CAANuB,KAAY,CAAC,CAVbH,IAWAG,GAAG,CAAH,EAAMtB,CAANsB,KAAY,CAAC,CAZf,EAaE;IACA,OAAOhB,sBAAsBC,KAAtB,EAA6BC,MAA7B,EAAqCC,eAArC,CAAP;EAzBF;;EA4BA,MAAMiB,UAAU,CAAC,CAACL,IAAlB;EACA,MAAMM,WAAW7B,gBAAgBqB,aAAhB,EAA+BS,MAA/B9B,CAAsCwB,EAAtCxB,CAAjB;EAKA6B,SAASE,IAATF,CAAc,UAAUxI,CAAV,EAAazB,CAAb,EAAgB;IAC5B,OAAOyB,EAAE6G,CAAF7G,GAAMzB,EAAEsI,CAAR7G,IAAaA,EAAE4G,CAAF5G,GAAMzB,EAAEqI,CAA5B;EADF;EAIA,MAAM+B,iBAAiBH,SAASzP,MAAhC;EACA,MAAM6P,YAAY,IAAInD,SAAJ,CAAckD,cAAd,CAAlB;EACA,MAAME,YAAY,IAAIpD,SAAJ,CAAckD,cAAd,CAAlB;EACA,MAAMG,0BAA0B,EAAhC;EACA,IAAIC,YAAY,CAAhB;EAAA,IACEC,OAAO,CADT;EAAA,IAEEC,OAAO,CAFT;EAAA,IAGEC,OAAO,CAHT;EAIA,IAAIjJ,CAAJ,EAAOkJ,CAAP;;EAEA,KAAKA,IAAI,CAAT,EAAYA,IAAIR,cAAhB,EAAgCQ,GAAhC,EAAqC;IACnCP,UAAUO,CAAV,IAAeX,SAASW,CAAT,EAAYvC,CAA3BgC;IACAC,UAAUM,CAAV,IAAeX,SAASW,CAAT,EAAYtC,CAA3BgC;IACAG,OAAOxN,KAAKC,GAALD,CAASwN,IAATxN,EAAegN,SAASW,CAAT,EAAYvC,CAA3BpL,CAAPwN;IACAC,OAAOzN,KAAKkE,GAALlE,CAASyN,IAATzN,EAAegN,SAASW,CAAT,EAAYvC,CAA3BpL,CAAPyN;IACAC,OAAO1N,KAAKC,GAALD,CAAS0N,IAAT1N,EAAegN,SAASW,CAAT,EAAYtC,CAA3BrL,CAAP0N;;IAIA,IACEC,IAAIR,iBAAiB,CAArBQ,IACAX,SAASW,CAAT,EAAYtC,CAAZ2B,KAAkBA,SAASW,IAAI,CAAb,EAAgBtC,CADlCsC,IAEAX,SAASW,CAAT,EAAYvC,CAAZ4B,KAAkBA,SAASW,IAAI,CAAb,EAAgBvC,CAAhB4B,GAAoB,CAHxC,EAIE;MACAO,aAAa,KAAMJ,iBAAiB,CAAjBA,GAAqBQ,CAAxCJ;IALF,OAMO;MACLD,wBAAwBlN,IAAxBkN,CAA6BK,CAA7BL;IAhBiC;EAhDrC;;EAmEA,MAAMM,wBAAwBN,wBAAwB/P,MAAtD;EAEA,MAAMsQ,oBAAoB,IAAI5D,SAAJ,CAAc2D,qBAAd,CAA1B;EACA,MAAME,oBAAoB,IAAI7D,SAAJ,CAAc2D,qBAAd,CAA1B;EACA,MAAMG,sBAAsB,IAAIC,WAAJ,CAAgBJ,qBAAhB,CAA5B;;EACA,KAAKnJ,IAAI,CAAT,EAAYA,IAAImJ,qBAAhB,EAAuCnJ,GAAvC,EAA4C;IAC1CkJ,IAAIL,wBAAwB7I,CAAxB,CAAJkJ;IACAE,kBAAkBpJ,CAAlB,IAAuBuI,SAASW,CAAT,EAAYvC,CAAnCyC;IACAC,kBAAkBrJ,CAAlB,IAAuBuI,SAASW,CAAT,EAAYtC,CAAnCyC;IACAC,oBAAoBtJ,CAApB,IAAyB,KAAM0I,iBAAiB,CAAjBA,GAAqBQ,CAApDI;EA5EF;;EAgFA,MAAME,WAAW,CAACT,IAAlB;EACA,MAAMU,UAAU,CAACR,IAAjB;EACA,MAAMS,YAAYvC,QAAQ6B,IAA1B;EAEA,MAAMW,qBAAqB3C,eAAee,aAAf,CAA3B;EACA,IAAIN,MAAM,IAAI1L,UAAJ,CAAeoL,KAAf,CAAV;EACA,MAAMG,SAAS,EAAf;EAEA,MAAMhF,UAAU+E,gBAAgB/E,OAAhC;EACA,MAAM2D,WAAWoB,gBAAgBxB,YAAhBwB,CAA6B/B,WAA7B+B,CAAyC,IAAzCA,CAAjB;EAEA,IAAIuC,MAAM,CAAV;EAAA,IACE5H,CADF;EAAA,IAEE6H,EAFF;EAAA,IAGEC,EAHF;EAAA,IAIEvC,eAAe,CAJjB;EAAA,IAKEnB,GALF;EAAA,IAME2D,KANF;;EAOA,KAAK,IAAI1O,IAAI,CAAb,EAAgBA,IAAI+L,MAApB,EAA4B/L,GAA5B,EAAiC;IAC/B,IAAI2M,UAAJ,EAAgB;MACd,MAAMgC,OAAO1H,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqH,kBAA1BrH,CAAb;MACAsH,OAAOI,IAAPJ;;MACA,IAAIA,GAAJ,EAAS;QACPtC,OAAO3L,IAAP2L,CAAYG,GAAZH;QACA;MALY;IADe;;IAS/BG,MAAM,IAAI1L,UAAJ,CAAe0L,GAAf,CAANA;IACAH,OAAO3L,IAAP2L,CAAYG,GAAZH;;IACA,KAAKtF,IAAI,CAAT,EAAYA,IAAImF,KAAhB,EAAuBnF,GAAvB,EAA4B;MAC1B,IAAIsG,WAAWL,KAAK5M,CAAL,EAAQ2G,CAARiG,CAAf,EAA2B;QACzBR,IAAIzF,CAAJ,IAAS,CAATyF;QACA;MAHwB;;MAO1B,IAAIzF,KAAKwH,QAALxH,IAAiBA,IAAI0H,SAArB1H,IAAkC3G,KAAKoO,OAA3C,EAAoD;QAGlDlC,eAAgBA,gBAAgB,CAAhBA,GAAqBuB,SAArCvB;;QACA,KAAK2B,IAAI,CAAT,EAAYA,IAAIC,qBAAhB,EAAuCD,GAAvC,EAA4C;UAC1CW,KAAKxO,IAAIgO,kBAAkBH,CAAlB,CAATW;UACAC,KAAK9H,IAAIoH,kBAAkBF,CAAlB,CAATY;UACA1D,MAAMkB,OAAOuC,EAAP,EAAWC,EAAXxC,CAANlB;;UACA,IAAIA,GAAJ,EAAS;YACPA,MAAMkD,oBAAoBJ,CAApB,CAAN9C;YACAmB,gBAAgBnB,GAAhBmB;UANwC;QAJM;MAApD,OAaO;QAELA,eAAe,CAAfA;QACAwC,QAAQrB,iBAAiB,CAAzBqB;;QACA,KAAKb,IAAI,CAAT,EAAYA,IAAIR,cAAhB,EAAgCQ,KAAKa,OAArC,EAA8C;UAC5CD,KAAK9H,IAAI2G,UAAUO,CAAV,CAATY;;UACA,IAAIA,MAAM,CAANA,IAAWA,KAAK3C,KAApB,EAA2B;YACzB0C,KAAKxO,IAAIuN,UAAUM,CAAV,CAATW;;YACA,IAAIA,MAAM,CAAV,EAAa;cACXzD,MAAMkB,OAAOuC,EAAP,EAAWC,EAAXxC,CAANlB;;cACA,IAAIA,GAAJ,EAAS;gBACPmB,gBAAgBnB,OAAO2D,KAAvBxC;cAHS;YAFY;UAFiB;QAJzC;MApBmB;;MAqC1B,MAAMC,QAAQlF,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BiF,YAA1BjF,CAAd;MACAmF,IAAIzF,CAAJ,IAASwF,KAATC;IAjD6B;EAlGjC;;EAsJA,OAAOH,MAAP;AAheF;;AAoeA,SAAS2C,gBAAT,CACE9C,KADF,EAEEC,MAFF,EAGEW,aAHF,EAIEmC,eAJF,EAKEC,OALF,EAMEC,OANF,EAOEpC,UAPF,EAQEE,EARF,EASEb,eATF,EAUE;EACA,IAAIgD,iBAAiBxD,oBAAoBkB,aAApB,EAAmCjB,MAAxD;;EACA,IAAIiB,kBAAkB,CAAtB,EAAyB;IACvBsC,iBAAiBA,eAAe7B,MAAf6B,CAAsB,CAACnC,GAAG,CAAH,CAAD,CAAtBmC,CAAjBA;EAHF;;EAKA,MAAMC,uBAAuBD,eAAevR,MAA5C;EACA,MAAMyR,kBAAkB,IAAIC,UAAJ,CAAeF,oBAAf,CAAxB;EACA,MAAMG,kBAAkB,IAAID,UAAJ,CAAeF,oBAAf,CAAxB;EACA,IAAIpB,CAAJ;;EACA,KAAKA,IAAI,CAAT,EAAYA,IAAIoB,oBAAhB,EAAsCpB,GAAtC,EAA2C;IACzCqB,gBAAgBrB,CAAhB,IAAqBmB,eAAenB,CAAf,EAAkBvC,CAAvC4D;IACAE,gBAAgBvB,CAAhB,IAAqBmB,eAAenB,CAAf,EAAkBtC,CAAvC6D;EAXF;;EAcA,IAAIC,oBAAoB7D,oBAAoBkB,aAApB,EAAmChB,SAA3D;;EACA,IAAIgB,kBAAkB,CAAtB,EAAyB;IACvB2C,oBAAoBA,kBAAkBlC,MAAlBkC,CAAyB,CAACxC,GAAG,CAAH,CAAD,CAAzBwC,CAApBA;EAhBF;;EAkBA,MAAMC,0BAA0BD,kBAAkB5R,MAAlD;EACA,MAAM8R,qBAAqB,IAAIJ,UAAJ,CAAeG,uBAAf,CAA3B;EACA,MAAME,qBAAqB,IAAIL,UAAJ,CAAeG,uBAAf,CAA3B;;EACA,KAAKzB,IAAI,CAAT,EAAYA,IAAIyB,uBAAhB,EAAyCzB,GAAzC,EAA8C;IAC5C0B,mBAAmB1B,CAAnB,IAAwBwB,kBAAkBxB,CAAlB,EAAqBvC,CAA7CiE;IACAC,mBAAmB3B,CAAnB,IAAwBwB,kBAAkBxB,CAAlB,EAAqBtC,CAA7CiE;EAvBF;;EAyBA,MAAMC,iBAAiBZ,gBAAgB,CAAhB,EAAmBpR,MAA1C;EACA,MAAMiS,kBAAkBb,gBAAgBpR,MAAxC;EAEA,MAAM6Q,qBAAqB1C,yBAAyBc,aAAzB,CAA3B;EACA,MAAMT,SAAS,EAAf;EAEA,MAAMhF,UAAU+E,gBAAgB/E,OAAhC;EACA,MAAM2D,WAAWoB,gBAAgBxB,YAAhBwB,CAA6B/B,WAA7B+B,CAAyC,IAAzCA,CAAjB;EAEA,IAAIuC,MAAM,CAAV;;EACA,KAAK,IAAIvO,IAAI,CAAb,EAAgBA,IAAI+L,MAApB,EAA4B/L,GAA5B,EAAiC;IAC/B,IAAI2M,UAAJ,EAAgB;MACd,MAAMgC,OAAO1H,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqH,kBAA1BrH,CAAb;MACAsH,OAAOI,IAAPJ;;MACA,IAAIA,GAAJ,EAAS;QACP,MAAM,IAAIxE,UAAJ,CAAe,6BAAf,CAAN;MAJY;IADe;;IAQ/B,MAAMqC,MAAM,IAAI1L,UAAJ,CAAeoL,KAAf,CAAZ;IACAG,OAAO3L,IAAP2L,CAAYG,GAAZH;;IACA,KAAK,IAAItF,IAAI,CAAb,EAAgBA,IAAImF,KAApB,EAA2BnF,GAA3B,EAAgC;MAC9B,IAAI6H,EAAJ,EAAQC,EAAR;MACA,IAAIvC,eAAe,CAAnB;;MACA,KAAK2B,IAAI,CAAT,EAAYA,IAAIoB,oBAAhB,EAAsCpB,GAAtC,EAA2C;QACzCW,KAAKxO,IAAIoP,gBAAgBvB,CAAhB,CAATW;QACAC,KAAK9H,IAAIuI,gBAAgBrB,CAAhB,CAATY;;QACA,IAAID,KAAK,CAALA,IAAUC,KAAK,CAAfD,IAAoBC,MAAM3C,KAA9B,EAAqC;UACnCI,iBAAiB,CAAjBA;QADF,OAEO;UACLA,eAAgBA,gBAAgB,CAAhBA,GAAqBD,OAAOuC,EAAP,EAAWC,EAAXxC,CAArCC;QANuC;MAHb;;MAY9B,KAAK2B,IAAI,CAAT,EAAYA,IAAIyB,uBAAhB,EAAyCzB,GAAzC,EAA8C;QAC5CW,KAAKxO,IAAIwP,mBAAmB3B,CAAnB,CAAJ7N,GAA4B+O,OAAjCP;QACAC,KAAK9H,IAAI4I,mBAAmB1B,CAAnB,CAAJlH,GAA4BmI,OAAjCL;;QACA,IAAID,KAAK,CAALA,IAAUA,MAAMkB,eAAhBlB,IAAmCC,KAAK,CAAxCD,IAA6CC,MAAMgB,cAAvD,EAAuE;UACrEvD,iBAAiB,CAAjBA;QADF,OAEO;UACLA,eAAgBA,gBAAgB,CAAhBA,GAAqB2C,gBAAgBL,EAAhB,EAAoBC,EAApBI,CAArC3C;QAN0C;MAZhB;;MAqB9B,MAAMC,QAAQlF,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BiF,YAA1BjF,CAAd;MACAmF,IAAIzF,CAAJ,IAASwF,KAATC;IAhC6B;EAnCjC;;EAuEA,OAAOH,MAAP;AArjBF;;AAyjBA,SAAS0D,sBAAT,CACEC,OADF,EAEEC,UAFF,EAGEC,OAHF,EAIEC,kBAJF,EAKEC,uBALF,EAMEC,aANF,EAOEvD,aAPF,EAQEG,EARF,EASEqD,uBATF,EAUEC,YAVF,EAWEnE,eAXF,EAYEoE,YAZF,EAaE;EACA,IAAIR,WAAWC,UAAf,EAA2B;IACzB,MAAM,IAAI9F,UAAJ,CAAe,iDAAf,CAAN;EAFF;;EAKA,MAAMsG,aAAa,EAAnB;EACA,IAAIC,gBAAgB,CAApB;EACA,IAAIC,mBAAmBC,sBAAKV,QAAQrS,MAARqS,GAAiBC,kBAAtBS,CAAvB;EAEA,MAAMvJ,UAAU+E,gBAAgB/E,OAAhC;EACA,MAAMuD,eAAewB,gBAAgBxB,YAArC;EACA,IAAIiG,OAAJ,EAAaC,YAAb;;EACA,IAAId,OAAJ,EAAa;IACXa,UAAUE,iBAAiB,CAAjB,CAAVF;IACAC,eAAe,EAAfA;IACAH,mBAAmBrQ,KAAKkE,GAALlE,CAASqQ,gBAATrQ,EAA2B,CAA3BA,CAAnBqQ;EAfF;;EAkBA,OAAOF,WAAW5S,MAAX4S,GAAoBN,kBAA3B,EAA+C;IAC7C,MAAMa,cAAchB,UAChBK,cAAcY,gBAAdZ,CAA+B7I,MAA/B6I,CAAsCG,YAAtCH,CADgB,GAEhBvF,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ;IAGAqJ,iBAAiBM,WAAjBN;IACA,IAAIQ,eAAe,CAAnB;IAAA,IACEC,aAAa,CADf;IAEA,MAAMC,cAAcpB,UAAUc,aAAajT,MAAvB,GAAgC,CAApD;;IACA,OAAO,IAAP,EAAa;MACX,MAAMwT,aAAarB,UACfK,cAAciB,eAAdjB,CAA8B7I,MAA9B6I,CAAqCG,YAArCH,CADe,GAEfvF,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ;;MAGA,IAAIgK,eAAe,IAAnB,EAAyB;QACvB;MALS;;MAOXH,gBAAgBG,UAAhBH;MACAC,cAAcD,YAAdC;MACA,IAAI9E,MAAJ;;MACA,IAAI4D,UAAJ,EAAgB;QAEd,MAAMsB,oBAAoBzG,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAA1B;;QACA,IAAIkK,oBAAoB,CAAxB,EAA2B;UACzBlF,SAASmF,iBACPxB,OADO,EAEPC,UAFO,EAGPiB,YAHO,EAIPR,aAJO,EAKP,CALO,EAMPa,iBANO,EAOP,CAPO,EAQPrB,QAAQ3C,MAAR2C,CAAeO,UAAfP,CARO,EASPS,gBATO,EAUP,CAVO,EAWP,CAXO,EAYP,CAZO,EAaP,CAbO,EAcPN,aAdO,EAePC,uBAfO,EAgBPC,YAhBO,EAiBPnE,eAjBO,EAkBP,CAlBO,EAmBPoE,YAnBO,CAATnE;QADF,OAsBO;UACL,MAAMoF,WAAWnG,WAAWV,YAAX,EAAyBvD,OAAzB,EAAkCsJ,gBAAlC,CAAjB;UACA,MAAMe,MAAM5G,cAAcF,YAAd,EAA4B,OAA5B,EAAqCvD,OAArC,CAAZ;UACA,MAAMsK,MAAM7G,cAAcF,YAAd,EAA4B,OAA5B,EAAqCvD,OAArC,CAAZ;UACA,MAAMuK,SACJH,WAAWvB,QAAQrS,MAAnB4T,GACIvB,QAAQuB,QAAR,CADJA,GAEIhB,WAAWgB,WAAWvB,QAAQrS,MAA9B,CAHN;UAIAwO,SAAS2C,iBACPkC,YADO,EAEPR,aAFO,EAGPJ,uBAHO,EAIPsB,MAJO,EAKPF,GALO,EAMPC,GANO,EAOP,KAPO,EAQPpB,YARO,EASPnE,eATO,CAATC;QAjCY;;QA6CdoE,WAAW/P,IAAX+P,CAAgBpE,MAAhBoE;MA7CF,OA8CO,IAAIT,OAAJ,EAAa;QAGlBc,aAAapQ,IAAboQ,CAAkBI,YAAlBJ;MAHK,OAIA;QAELzE,SAASO,aACP,KADO,EAEPsE,YAFO,EAGPR,aAHO,EAIP5D,aAJO,EAKP,KALO,EAMP,IANO,EAOPG,EAPO,EAQPb,eARO,CAATC;QAUAoE,WAAW/P,IAAX+P,CAAgBpE,MAAhBoE;MAxES;IARgC;;IAmF7C,IAAIT,WAAW,CAACC,UAAhB,EAA4B;MAE1B,MAAM4B,aAAaxB,cAAcyB,eAAdzB,CAA8B7I,MAA9B6I,CAAqCG,YAArCH,CAAnB;MACAG,aAAauB,SAAbvB;MACA,IAAIwB,gBAAJ;;MACA,IAAIH,eAAe,CAAnB,EAAsB;QAEpBG,mBAAmBC,uBACjBzB,YADiB,EAEjBW,UAFiB,EAGjBT,aAHiB,CAAnBsB;MAFF,OAOO;QAEL,MAAME,cAAc1B,aAAa9F,GAAjC;QACA,MAAMyH,YAAY3B,aAAa4B,QAAb5B,GAAwBqB,UAA1C;QACArB,aAAa9F,GAAb8F,GAAmB2B,SAAnB3B;QACAwB,mBAAmB5E,gBACjBoD,YADiB,EAEjBW,UAFiB,EAGjBT,aAHiB,EAIjB,KAJiB,CAAnBsB;QAMAxB,aAAa9F,GAAb8F,GAAmB0B,WAAnB1B;QACAA,aAAa4B,QAAb5B,GAAwB2B,SAAxB3B;MAxBwB;;MA0B1B,MAAM6B,yBAAyBvB,aAAajT,MAA5C;;MACA,IAAIuT,gBAAgBiB,yBAAyB,CAA7C,EAAgD;QAE9C5B,WAAW/P,IAAX+P,CAAgBuB,gBAAhBvB;MAFF,OAGO;QAEL,IAAIrQ,CAAJ;QAAA,IACEuL,CADF;QAAA,IAEE2G,OAAO,CAFT;QAAA,IAGEC,IAHF;QAAA,IAIEC,WAJF;QAAA,IAKEC,YALF;;QAMA,KAAKrS,IAAIgR,WAAT,EAAsBhR,IAAIiS,sBAA1B,EAAkDjS,GAAlD,EAAuD;UACrDoS,cAAc1B,aAAa1Q,CAAb,CAAdoS;UACAD,OAAOD,OAAOE,WAAdD;UACAE,eAAe,EAAfA;;UACA,KAAK9G,IAAI,CAAT,EAAYA,IAAI+E,aAAhB,EAA+B/E,GAA/B,EAAoC;YAClC8G,aAAa/R,IAAb+R,CAAkBT,iBAAiBrG,CAAjB,EAAoBlL,QAApBuR,CAA6BM,IAA7BN,EAAmCO,IAAnCP,CAAlBS;UALmD;;UAOrDhC,WAAW/P,IAAX+P,CAAgBgC,YAAhBhC;UACA6B,OAAOC,IAAPD;QAhBG;MA9BmB;IAnFiB;EAlB/C;;EA0JA,MAAMI,kBAAkB,EAAxB;EAAA,MACEC,QAAQ,EADV;EAEA,IAAIC,cAAc,KAAlB;EAAA,IACExS,CADF;EAAA,IAEEqH,EAFF;EAGA,MAAMoL,qBAAqB3C,QAAQrS,MAARqS,GAAiBC,kBAA5C;;EACA,OAAOwC,MAAM9U,MAAN8U,GAAeE,kBAAtB,EAA0C;IACxC,IAAIC,YAAY9C,UACZa,QAAQrJ,MAARqJ,CAAeL,YAAfK,CADY,GAEZ/F,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ;;IAGA,OAAOyL,WAAP,EAAoB;MAClBH,MAAMjS,IAANiS,CAAWC,WAAXD;IALsC;;IAOxCC,cAAc,CAACA,WAAfA;EAvKF;;EAyKA,KAAKxS,IAAI,CAAJA,EAAOqH,KAAKyI,QAAQrS,MAAzB,EAAiCuC,IAAIqH,EAArC,EAAyCrH,GAAzC,EAA8C;IAC5C,IAAIuS,MAAMvS,CAAN,CAAJ,EAAc;MACZsS,gBAAgBhS,IAAhBgS,CAAqBxC,QAAQ9P,CAAR,CAArBsS;IAF0C;EAzK9C;;EA8KA,KAAK,IAAI3L,IAAI,CAAb,EAAgBA,IAAIoJ,kBAApB,EAAwC/P,KAAK2G,GAA7C,EAAkD;IAChD,IAAI4L,MAAMvS,CAAN,CAAJ,EAAc;MACZsS,gBAAgBhS,IAAhBgS,CAAqBjC,WAAW1J,CAAX,CAArB2L;IAF8C;EA9KlD;;EAmLA,OAAOA,eAAP;AAzvBF;;AA4vBA,SAASlB,gBAAT,CACExB,OADF,EAEEC,UAFF,EAGE/D,KAHF,EAIEC,MAJF,EAKE4G,iBALF,EAMEC,uBANF,EAOEC,SAPF,EAQEC,YARF,EASEvC,gBATF,EAUEwC,UAVF,EAWEC,QAXF,EAYEC,eAZF,EAaEC,mBAbF,EAcEjD,aAdF,EAeEC,uBAfF,EAgBEC,YAhBF,EAiBEnE,eAjBF,EAkBEmH,YAlBF,EAmBE/C,YAnBF,EAoBE;EACA,IAAIR,WAAWC,UAAf,EAA2B;IACzB,MAAM,IAAI9F,UAAJ,CAAe,0CAAf,CAAN;EAFF;;EAMA,MAAMkC,SAAS,EAAf;EACA,IAAIjM,CAAJ,EAAOoM,GAAP;;EACA,KAAKpM,IAAI,CAAT,EAAYA,IAAI+L,MAAhB,EAAwB/L,GAAxB,EAA6B;IAC3BoM,MAAM,IAAI1L,UAAJ,CAAeoL,KAAf,CAANM;;IACA,IAAIuG,iBAAJ,EAAuB;MACrB,KAAK,IAAIhM,IAAI,CAAb,EAAgBA,IAAImF,KAApB,EAA2BnF,GAA3B,EAAgC;QAC9ByF,IAAIzF,CAAJ,IAASgM,iBAATvG;MAFmB;IAFI;;IAO3BH,OAAO3L,IAAP2L,CAAYG,GAAZH;EAfF;;EAkBA,MAAMhF,UAAU+E,gBAAgB/E,OAAhC;EACA,MAAMuD,eAAewB,gBAAgBxB,YAArC;EAEA,IAAI4I,SAASxD,UACT,CAACK,cAAcoD,WAAdpD,CAA0B7I,MAA1B6I,CAAiCG,YAAjCH,CADQ,GAET,CAACvF,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFL;EAGA,IAAIqM,SAAS,CAAb;EACAtT,IAAI,CAAJA;;EACA,OAAOA,IAAI4S,uBAAX,EAAoC;IAClC,MAAMW,SAAS3D,UACXK,cAAcoD,WAAdpD,CAA0B7I,MAA1B6I,CAAiCG,YAAjCH,CADW,GAEXvF,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ;IAGAmM,UAAUG,MAAVH;IAEA,MAAMI,cAAc5D,UAChBK,cAAcwD,WAAdxD,CAA0B7I,MAA1B6I,CAAiCG,YAAjCH,CADgB,GAEhBvF,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ;IAGAqM,UAAUE,WAAVF;IACA,IAAII,WAAWJ,MAAf;;IACA,GAAG;MACD,IAAIK,WAAW,CAAf;;MACA,IAAId,YAAY,CAAhB,EAAmB;QACjBc,WAAW/D,UACPQ,aAAatF,QAAbsF,CAAsB+C,YAAtB/C,CADO,GAEP1F,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ0M;MAHD;;MAOD,MAAMtN,IAAIwM,YAAYO,MAAZP,GAAqBc,QAA/B;MACA,MAAMtC,WAAWzB,UACbK,cAAc2D,aAAd3D,CAA4B7I,MAA5B6I,CAAmCG,YAAnCH,CADa,GAEb/E,WAAWV,YAAX,EAAyBvD,OAAzB,EAAkCsJ,gBAAlC,CAFJ;MAGA,MAAMsD,kBACJhE,eACCD,UACGQ,aAAapF,OAAboF,EADH,GAEG1F,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAHJ,CADF;MAKA,IAAIoL,eAAeS,aAAazB,QAAb,CAAnB;MACA,IAAIyC,cAAczB,aAAa,CAAb,EAAgB5U,MAAlC;MACA,IAAIsW,eAAe1B,aAAa5U,MAAhC;;MACA,IAAIoW,eAAJ,EAAqB;QACnB,MAAMG,MAAMtJ,cAAcF,YAAd,EAA4B,OAA5B,EAAqCvD,OAArC,CAAZ;QACA,MAAMgN,MAAMvJ,cAAcF,YAAd,EAA4B,OAA5B,EAAqCvD,OAArC,CAAZ;QACA,MAAMqK,MAAM5G,cAAcF,YAAd,EAA4B,OAA5B,EAAqCvD,OAArC,CAAZ;QACA,MAAMsK,MAAM7G,cAAcF,YAAd,EAA4B,OAA5B,EAAqCvD,OAArC,CAAZ;QACA6M,eAAeE,GAAfF;QACAC,gBAAgBE,GAAhBF;QACA1B,eAAezD,iBACbkF,WADa,EAEbC,YAFa,EAGb7D,uBAHa,EAIbmC,YAJa,EAKZ,QAAO,CAAP,IAAYf,GALA,EAMZ,QAAO,CAAP,IAAYC,GANA,EAOb,KAPa,EAQbpB,YARa,EASbnE,eATa,CAAfqG;MA1BD;;MAsCD,MAAM6B,UAAU7N,KAAK4M,kBAAkB,CAAlBA,GAAsB,CAAtBA,GAA0Bc,eAAe,CAA9C,CAAhB;MACA,MAAMI,UAAUT,YAAYT,kBAAkB,CAAlBA,GAAsBa,cAAc,CAApCb,GAAwC,CAApD,CAAhB;MACA,IAAImB,EAAJ,EAAQ7N,EAAR,EAAY8N,SAAZ;;MACA,IAAItB,UAAJ,EAAgB;QAEd,KAAKqB,KAAK,CAAV,EAAaA,KAAKL,YAAlB,EAAgCK,IAAhC,EAAsC;UACpChI,MAAMH,OAAOkI,UAAUC,EAAjB,CAANhI;;UACA,IAAI,CAACA,GAAL,EAAU;YACR;UAHkC;;UAKpCiI,YAAYhC,aAAa+B,EAAb,CAAZC;UAGA,MAAMC,WAAWpU,KAAKC,GAALD,CAAS4L,QAAQoI,OAAjBhU,EAA0B4T,WAA1B5T,CAAjB;;UACA,QAAQgT,mBAAR;YACE,KAAK,CAAL;cACE,KAAK3M,KAAK,CAAV,EAAaA,KAAK+N,QAAlB,EAA4B/N,IAA5B,EAAkC;gBAChC6F,IAAI8H,UAAU3N,EAAd,KAAqB8N,UAAU9N,EAAV,CAArB6F;cAFJ;;cAIE;;YACF,KAAK,CAAL;cACE,KAAK7F,KAAK,CAAV,EAAaA,KAAK+N,QAAlB,EAA4B/N,IAA5B,EAAkC;gBAChC6F,IAAI8H,UAAU3N,EAAd,KAAqB8N,UAAU9N,EAAV,CAArB6F;cAFJ;;cAIE;;YACF;cACE,MAAM,IAAIrC,UAAJ,CACH,YAAWmJ,mBAAoB,mBAD5B,CAAN;UAZJ;QAXY;;QA4BdQ,YAAYK,eAAe,CAA3BL;MA5BF,OA6BO;QACL,KAAKnN,KAAK,CAAV,EAAaA,KAAKwN,YAAlB,EAAgCxN,IAAhC,EAAsC;UACpC6F,MAAMH,OAAOiI,UAAU3N,EAAjB,CAAN6F;;UACA,IAAI,CAACA,GAAL,EAAU;YACR;UAHkC;;UAKpCiI,YAAYhC,aAAa9L,EAAb,CAAZ8N;;UACA,QAAQnB,mBAAR;YACE,KAAK,CAAL;cACE,KAAKkB,KAAK,CAAV,EAAaA,KAAKN,WAAlB,EAA+BM,IAA/B,EAAqC;gBACnChI,IAAI+H,UAAUC,EAAd,KAAqBC,UAAUD,EAAV,CAArBhI;cAFJ;;cAIE;;YACF,KAAK,CAAL;cACE,KAAKgI,KAAK,CAAV,EAAaA,KAAKN,WAAlB,EAA+BM,IAA/B,EAAqC;gBACnChI,IAAI+H,UAAUC,EAAd,KAAqBC,UAAUD,EAAV,CAArBhI;cAFJ;;cAIE;;YACF;cACE,MAAM,IAAIrC,UAAJ,CACH,YAAWmJ,mBAAoB,mBAD5B,CAAN;UAZJ;QAPG;;QAwBLQ,YAAYI,cAAc,CAA1BJ;MA9FD;;MAgGD1T;MACA,MAAMuU,SAAS3E,UACXK,cAAcuE,WAAdvE,CAA0B7I,MAA1B6I,CAAiCG,YAAjCH,CADW,GAEXvF,cAAcF,YAAd,EAA4B,MAA5B,EAAoCvD,OAApC,CAFJ;;MAGA,IAAIsN,WAAW,IAAf,EAAqB;QACnB;MArGD;;MAuGDb,YAAYa,SAASvB,QAArBU;IAvGF,SAwGS,IAxGT;EArCF;;EA+IA,OAAOzH,MAAP;AA/5BF;;AAk6BA,SAASwI,uBAAT,CACEhI,GADF,EAEEiI,YAFF,EAGEC,aAHF,EAIEC,eAJF,EAKE1H,QALF,EAMElB,eANF,EAOE;EACA,MAAMa,KAAK,EAAX;;EACA,IAAI,CAACJ,GAAL,EAAU;IACRI,GAAGvM,IAAHuM,CAAQ;MACNvB,GAAG,CAACoJ,YADE;MAENnJ,GAAG;IAFG,CAARsB;;IAIA,IAAIK,aAAa,CAAjB,EAAoB;MAClBL,GAAGvM,IAAHuM,CACE;QACEvB,GAAG,CAAC,CADN;QAEEC,GAAG,CAAC;MAFN,CADFsB,EAKE;QACEvB,GAAG,CADL;QAEEC,GAAG,CAAC;MAFN,CALFsB,EASE;QACEvB,GAAG,CAAC,CADN;QAEEC,GAAG,CAAC;MAFN,CATFsB;IANM;EAFV;;EAwBA,MAAMgI,kBAAmB,mBAAkB,CAAlB,IAAuBH,YAAhD;EACA,MAAM9C,mBAAmBpF,aACvBC,GADuB,EAEvBoI,eAFuB,EAGvBF,aAHuB,EAIvBzH,QAJuB,EAKvB,KALuB,EAMvB,IANuB,EAOvBL,EAPuB,EAQvBb,eARuB,CAAzB;EAWA,MAAM8I,WAAW,EAAjB;;EACA,KAAK,IAAI9U,IAAI,CAAb,EAAgBA,KAAK4U,eAArB,EAAsC5U,GAAtC,EAA2C;IACzC,MAAM+U,gBAAgB,EAAtB;IACA,MAAM7C,OAAOwC,eAAe1U,CAA5B;IACA,MAAMmS,OAAOD,OAAOwC,YAApB;;IACA,KAAK,IAAInJ,IAAI,CAAb,EAAgBA,IAAIoJ,aAApB,EAAmCpJ,GAAnC,EAAwC;MACtCwJ,cAAczU,IAAdyU,CAAmBnD,iBAAiBrG,CAAjB,EAAoBlL,QAApBuR,CAA6BM,IAA7BN,EAAmCO,IAAnCP,CAAnBmD;IALuC;;IAOzCD,SAASxU,IAATwU,CAAcC,aAAdD;EA5CF;;EA8CA,OAAOA,QAAP;AAv9BF;;AA09BA,SAASE,oBAAT,CACEvI,GADF,EAEEqI,QAFF,EAGE5H,QAHF,EAIE+H,WAJF,EAKEC,YALF,EAMEvC,iBANF,EAOEwC,UAPF,EAQEjC,mBARF,EASEkC,SATF,EAUEC,UAVF,EAWEC,WAXF,EAYEC,WAZF,EAaEC,WAbF,EAcEC,WAdF,EAeEzJ,eAfF,EAgBE;EACA,MAAMY,OAAO,IAAb;;EACA,IAAIuI,UAAJ,EAAgB;IACd,MAAM,IAAIpL,UAAJ,CAAe,uBAAf,CAAN;EAHF;;EAKA,IAAImJ,wBAAwB,CAA5B,EAA+B;IAC7B,MAAM,IAAInJ,UAAJ,CACH,aAAYmJ,mBAAoB,uCAD7B,CAAN;EANF;;EAYA,MAAMwC,eAAe,EAArB;EACA,IAAI1V,CAAJ,EAAO2G,CAAP,EAAUyF,GAAV;;EACA,KAAKpM,IAAI,CAAT,EAAYA,IAAIkV,YAAhB,EAA8BlV,GAA9B,EAAmC;IACjCoM,MAAM,IAAI1L,UAAJ,CAAeuU,WAAf,CAAN7I;;IACA,IAAIuG,iBAAJ,EAAuB;MACrB,KAAKhM,IAAI,CAAT,EAAYA,IAAIsO,WAAhB,EAA6BtO,GAA7B,EAAkC;QAChCyF,IAAIzF,CAAJ,IAASgM,iBAATvG;MAFmB;IAFU;;IAOjCsJ,aAAapV,IAAboV,CAAkBtJ,GAAlBsJ;EArBF;;EAwBA,MAAMC,mBAAmBb,SAASrX,MAAlC;EACA,MAAMmY,WAAWd,SAAS,CAAT,CAAjB;EACA,MAAMJ,eAAekB,SAAS,CAAT,EAAYnY,MAAjC;EAAA,MACEkX,gBAAgBiB,SAASnY,MAD3B;EAEA,MAAMoY,eAAerF,sBAAKmF,gBAALnF,CAArB;EACA,MAAM3D,KAAK,EAAX;;EACA,IAAI,CAACJ,GAAL,EAAU;IACRI,GAAGvM,IAAHuM,CAAQ;MACNvB,GAAG4B,YAAY,CAAZA,GAAgB,CAAhBA,GAAoB,CADjB;MAEN3B,GAAG,CAAC;IAFE,CAARsB;;IAIA,IAAIK,aAAa,CAAjB,EAAoB;MAClBL,GAAGvM,IAAHuM,CACE;QACEvB,GAAG,CAAC,CADN;QAEEC,GAAG,CAAC;MAFN,CADFsB,EAKE;QACEvB,GAAG,CADL;QAEEC,GAAG,CAAC;MAFN,CALFsB,EASE;QACEvB,GAAG,CAAC,CADN;QAEEC,GAAG,CAAC;MAFN,CATFsB;IANM;EA9BV;;EAqDA,MAAMiJ,qBAAqB,EAA3B;EACA,IAAIC,QAAJ,EAAc9J,MAAd;;EACA,IAAIQ,GAAJ,EAAS;IAGPsJ,WAAW,IAAIhJ,MAAJ,CACTf,gBAAgB9K,IADP,EAET8K,gBAAgB3B,KAFP,EAGT2B,gBAAgB1B,GAHP,CAAXyL;EA1DF;;EAgEA,KAAK/V,IAAI6V,eAAe,CAAxB,EAA2B7V,KAAK,CAAhC,EAAmCA,GAAnC,EAAwC;IACtC,IAAIyM,GAAJ,EAAS;MACPR,SAASe,gBAAgB+I,QAAhB,EAA0BX,SAA1B,EAAqCC,UAArC,EAAiD,IAAjD,CAATpJ;IADF,OAEO;MACLA,SAASO,aACP,KADO,EAEP4I,SAFO,EAGPC,UAHO,EAIPnI,QAJO,EAKP,KALO,EAMPN,IANO,EAOPC,EAPO,EAQPb,eARO,CAATC;IAJoC;;IAetC6J,mBAAmB9V,CAAnB,IAAwBiM,MAAxB6J;EA/EF;;EAkFA,IAAIE,EAAJ,EAAQC,EAAR,EAAYlL,GAAZ,EAAiBmL,YAAjB,EAA+BnB,aAA/B,EAA8CzJ,CAA9C,EAAiDC,CAAjD,EAAoD4K,UAApD,EAAgEC,SAAhE;;EACA,KAAKJ,KAAK,CAAV,EAAaA,KAAKX,UAAlB,EAA8BW,IAA9B,EAAoC;IAClC,KAAKC,KAAK,CAAV,EAAaA,KAAKb,SAAlB,EAA6Ba,IAA7B,EAAmC;MACjClL,MAAM,CAANA;MACAmL,eAAe,CAAfA;;MACA,KAAKvP,IAAIkP,eAAe,CAAxB,EAA2BlP,KAAK,CAAhC,EAAmCA,GAAnC,EAAwC;QACtCoE,OAAO+K,mBAAmBnP,CAAnB,EAAsBqP,EAAtBF,EAA0BG,EAA1BH,CAAP/K;QACAmL,gBAAgBnL,OAAOpE,CAAvBuP;MAL+B;;MAOjCnB,gBAAgBD,SAASoB,YAAT,CAAhBnB;MACAzJ,IAAKgK,cAAcU,KAAKP,WAAnBH,GAAiCW,KAAKT,WAAtCF,IAAsD,CAA3DhK;MACAC,IAAKgK,cAAcS,KAAKR,WAAnBD,GAAiCU,KAAKR,WAAtCF,IAAsD,CAA3DhK;;MAEA,IACED,KAAK,CAALA,IACAA,IAAIoJ,YAAJpJ,IAAoB2J,WADpB3J,IAEAC,KAAK,CAFLD,IAGAC,IAAIoJ,aAAJpJ,IAAqB2J,YAJvB,EAKE;QACA,KAAKlV,IAAI,CAAT,EAAYA,IAAI2U,aAAhB,EAA+B3U,GAA/B,EAAoC;UAClCoW,YAAYV,aAAanK,IAAIvL,CAAjB,CAAZoW;UACAD,aAAapB,cAAc/U,CAAd,CAAbmW;;UACA,KAAKxP,IAAI,CAAT,EAAYA,IAAI+N,YAAhB,EAA8B/N,GAA9B,EAAmC;YACjCyP,UAAU9K,IAAI3E,CAAd,KAAoBwP,WAAWxP,CAAX,CAApByP;UAJgC;QADpC;MALF,OAaO;QACL,IAAIC,OAAJ,EAAaC,OAAb;;QACA,KAAKtW,IAAI,CAAT,EAAYA,IAAI2U,aAAhB,EAA+B3U,GAA/B,EAAoC;UAClCsW,UAAU/K,IAAIvL,CAAdsW;;UACA,IAAIA,UAAU,CAAVA,IAAeA,WAAWpB,YAA9B,EAA4C;YAC1C;UAHgC;;UAKlCkB,YAAYV,aAAaY,OAAb,CAAZF;UACAD,aAAapB,cAAc/U,CAAd,CAAbmW;;UACA,KAAKxP,IAAI,CAAT,EAAYA,IAAI+N,YAAhB,EAA8B/N,GAA9B,EAAmC;YACjC0P,UAAU/K,IAAI3E,CAAd0P;;YACA,IAAIA,WAAW,CAAXA,IAAgBA,UAAUpB,WAA9B,EAA2C;cACzCmB,UAAUC,OAAV,KAAsBF,WAAWxP,CAAX,CAAtByP;YAH+B;UAPD;QAF/B;MAxB0B;IADD;EAnFpC;;EA+HA,OAAOV,YAAP;AAzmCF;;AA4mCA,SAASa,iBAAT,CAA2BrV,IAA3B,EAAiCmJ,KAAjC,EAAwC;EACtC,MAAMmM,gBAAgB,EAAtB;EACAA,cAAcC,MAAdD,GAAuBE,4BAAWxV,IAAXwV,EAAiBrM,KAAjBqM,CAAvBF;EACA,MAAMjE,QAAQrR,KAAKmJ,QAAQ,CAAb,CAAd;EACA,MAAMsM,cAAcpE,QAAQ,IAA5B;;EACA,IAAI,CAACnH,aAAauL,WAAb,CAAL,EAAgC;IAC9B,MAAM,IAAI5M,UAAJ,CAAe,2BAA2B4M,WAA1C,CAAN;EANoC;;EAQtCH,cAAc1M,IAAd0M,GAAqBG,WAArBH;EACAA,cAAcI,QAAdJ,GAAyBpL,aAAauL,WAAb,CAAzBH;EACAA,cAAcK,iBAAdL,GAAkC,CAAC,EAAEjE,QAAQ,IAAV,CAAnCiE;EAEA,MAAMM,2BAA2B,CAAC,EAAEvE,QAAQ,IAAV,CAAlC;EACA,MAAMwE,gBAAgB7V,KAAKmJ,QAAQ,CAAb,CAAtB;EACA,IAAI2M,kBAAmBD,iBAAiB,CAAjBA,GAAsB,CAA7C;EACA,MAAME,aAAa,CAACF,gBAAgB,EAAjB,CAAnB;EACA,IAAI/E,WAAW3H,QAAQ,CAAvB;;EACA,IAAI0M,kBAAkB,CAAtB,EAAyB;IACvBC,kBAAkBN,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,IAAiC,UAAnDM;IACAhF,YAAY,CAAZA;IACA,IAAIvS,QAASuX,kBAAkB,CAAlBA,IAAwB,CAArC;IACAC,WAAW,CAAX,IAAgB/V,KAAK8Q,UAAL,CAAhBiF;;IACA,OAAO,EAAExX,KAAF,GAAU,CAAjB,EAAoB;MAClBwX,WAAW3W,IAAX2W,CAAgB/V,KAAK8Q,UAAL,CAAhBiF;IANqB;EAAzB,OAQO,IAAIF,kBAAkB,CAAlBA,IAAuBA,kBAAkB,CAA7C,EAAgD;IACrD,MAAM,IAAIhN,UAAJ,CAAe,2BAAf,CAAN;EA1BoC;;EA6BtCyM,cAAcS,UAAdT,GAA2BS,UAA3BT;EAEA,IAAIU,8BAA8B,CAAlC;;EACA,IAAIV,cAAcC,MAAdD,IAAwB,GAA5B,EAAiC;IAC/BU,8BAA8B,CAA9BA;EADF,OAEO,IAAIV,cAAcC,MAAdD,IAAwB,KAA5B,EAAmC;IACxCU,8BAA8B,CAA9BA;EAnCoC;;EAqCtC,MAAMC,aAAa,EAAnB;EACA,IAAInX,CAAJ,EAAOqH,EAAP;;EACA,KAAKrH,IAAI,CAAT,EAAYA,IAAIgX,eAAhB,EAAiChX,GAAjC,EAAsC;IACpC,IAAIyW,MAAJ;;IACA,IAAIS,gCAAgC,CAApC,EAAuC;MACrCT,SAASvV,KAAK8Q,QAAL,CAATyE;IADF,OAEO,IAAIS,gCAAgC,CAApC,EAAuC;MAC5CT,SAASW,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAATX;IADK,OAEA;MACLA,SAASC,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAATD;IAPkC;;IASpCU,WAAW7W,IAAX6W,CAAgBV,MAAhBU;IACAnF,YAAYkF,2BAAZlF;EAjDoC;;EAmDtCwE,cAAcW,UAAdX,GAA2BW,UAA3BX;;EACA,IAAI,CAACM,wBAAL,EAA+B;IAC7BN,cAAca,eAAdb,GAAgCtV,KAAK8Q,UAAL,CAAhCwE;EADF,OAEO;IACLA,cAAca,eAAdb,GAAgCE,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAAhCF;IACAxE,YAAY,CAAZA;EAxDoC;;EA0DtCwE,cAAc/Y,MAAd+Y,GAAuBE,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAAvBF;EACAxE,YAAY,CAAZA;;EAEA,IAAIwE,cAAc/Y,MAAd+Y,KAAyB,UAA7B,EAAyC;IAEvC,IAAIG,gBAAgB,EAApB,EAAwB;MAEtB,MAAMW,oBAAoBC,6BAA6BrW,IAA7B,EAAmC8Q,QAAnC,CAA1B;MACA,MAAMwF,4BACJtW,KAAK8Q,WAAWyF,mCAAhB,CADF;MAEA,MAAMC,mBAAmB,CAAC,EAAEF,4BAA4B,CAA9B,CAA1B;MAEA,MAAMG,sBAAsB,CAA5B;MACA,MAAMC,gBAAgB,IAAIlX,UAAJ,CAAeiX,mBAAf,CAAtB;;MACA,IAAI,CAACD,gBAAL,EAAuB;QACrBE,cAAc,CAAd,IAAmB,IAAnBA;QACAA,cAAc,CAAd,IAAmB,IAAnBA;MAXoB;;MAatBA,cAAc,CAAd,IAAoBN,kBAAkBvL,MAAlBuL,KAA6B,EAA7BA,GAAmC,IAAvDM;MACAA,cAAc,CAAd,IAAoBN,kBAAkBvL,MAAlBuL,IAA4B,EAA5BA,GAAkC,IAAtDM;MACAA,cAAc,CAAd,IAAoBN,kBAAkBvL,MAAlBuL,IAA4B,CAA5BA,GAAiC,IAArDM;MACAA,cAAc,CAAd,IAAmBN,kBAAkBvL,MAAlBuL,GAA2B,IAA9CM;;MACA,KAAK5X,IAAIgS,QAAJhS,EAAcqH,KAAKnG,KAAKzD,MAA7B,EAAqCuC,IAAIqH,EAAzC,EAA6CrH,GAA7C,EAAkD;QAChD,IAAI2G,IAAI,CAAR;;QACA,OAAOA,IAAIgR,mBAAJhR,IAA2BiR,cAAcjR,CAAd,MAAqBzF,KAAKlB,IAAI2G,CAAT,CAAvD,EAAoE;UAClEA;QAH8C;;QAKhD,IAAIA,MAAMgR,mBAAV,EAA+B;UAC7BnB,cAAc/Y,MAAd+Y,GAAuBxW,IAAI2X,mBAA3BnB;UACA;QAP8C;MAjB5B;;MA2BtB,IAAIA,cAAc/Y,MAAd+Y,KAAyB,UAA7B,EAAyC;QACvC,MAAM,IAAIzM,UAAJ,CAAe,2BAAf,CAAN;MA5BoB;IAAxB,OA8BO;MACL,MAAM,IAAIA,UAAJ,CAAe,gCAAf,CAAN;IAjCqC;EA7DH;;EAiGtCyM,cAAcqB,SAAdrB,GAA0BxE,QAA1BwE;EACA,OAAOA,aAAP;AA9sCF;;AAitCA,SAASsB,YAAT,CAAsBC,MAAtB,EAA8B7W,IAA9B,EAAoCmJ,KAApC,EAA2CC,GAA3C,EAAgD;EAC9C,MAAM0N,WAAW,EAAjB;EACA,IAAIhG,WAAW3H,KAAf;;EACA,OAAO2H,WAAW1H,GAAlB,EAAuB;IACrB,MAAMkM,gBAAgBD,kBAAkBrV,IAAlB,EAAwB8Q,QAAxB,CAAtB;IACAA,WAAWwE,cAAcqB,SAAzB7F;IACA,MAAMiG,UAAU;MACdF,QAAQvB,aADM;MAEdtV;IAFc,CAAhB;;IAIA,IAAI,CAAC6W,OAAOG,YAAZ,EAA0B;MACxBD,QAAQ5N,KAAR4N,GAAgBjG,QAAhBiG;MACAjG,YAAYwE,cAAc/Y,MAA1BuU;MACAiG,QAAQ3N,GAAR2N,GAAcjG,QAAdiG;IAVmB;;IAYrBD,SAAS1X,IAAT0X,CAAcC,OAAdD;;IACA,IAAIxB,cAAc1M,IAAd0M,KAAuB,EAA3B,EAA+B;MAC7B;IAdmB;EAHuB;;EAoB9C,IAAIuB,OAAOG,YAAX,EAAyB;IACvB,KAAK,IAAIlY,IAAI,CAAR,EAAWqH,KAAK2Q,SAASva,MAA9B,EAAsCuC,IAAIqH,EAA1C,EAA8CrH,GAA9C,EAAmD;MACjDgY,SAAShY,CAAT,EAAYqK,KAAZ2N,GAAoBhG,QAApBgG;MACAhG,YAAYgG,SAAShY,CAAT,EAAY+X,MAAZC,CAAmBva,MAA/BuU;MACAgG,SAAShY,CAAT,EAAYsK,GAAZ0N,GAAkBhG,QAAlBgG;IAJqB;EApBqB;;EA2B9C,OAAOA,QAAP;AA5uCF;;AAgvCA,SAAST,4BAAT,CAAsCrW,IAAtC,EAA4CmJ,KAA5C,EAAmD;EACjD,OAAO;IACLyB,OAAO4K,4BAAWxV,IAAXwV,EAAiBrM,KAAjBqM,CADF;IAEL3K,QAAQ2K,4BAAWxV,IAAXwV,EAAiBrM,QAAQ,CAAzBqM,CAFH;IAGLpL,GAAGoL,4BAAWxV,IAAXwV,EAAiBrM,QAAQ,CAAzBqM,CAHE;IAILnL,GAAGmL,4BAAWxV,IAAXwV,EAAiBrM,QAAQ,EAAzBqM,CAJE;IAKLxD,qBAAqBhS,KAAKmJ,QAAQ,EAAb,IAAmB;EALnC,CAAP;AAjvCF;;AAyvCA,MAAMoN,sCAAsC,EAA5C;;AAEA,SAASU,cAAT,CAAwBF,OAAxB,EAAiCG,OAAjC,EAA0C;EACxC,MAAML,SAASE,QAAQF,MAAvB;EAEA,MAAM7W,OAAO+W,QAAQ/W,IAArB;EAAA,MACEoJ,MAAM2N,QAAQ3N,GADhB;EAEA,IAAI0H,WAAWiG,QAAQ5N,KAAvB;EACA,IAAIgO,IAAJ,EAAUxL,EAAV,EAAc7M,CAAd,EAAiBsY,QAAjB;;EACA,QAAQP,OAAOjO,IAAf;IACE,KAAK,CAAL;MAEE,MAAMyO,aAAa,EAAnB;MACA,MAAMC,kBAAkBpB,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAxB;MACAmB,WAAW3I,OAAX2I,GAAqB,CAAC,EAAEC,kBAAkB,CAApB,CAAtBD;MACAA,WAAW1I,UAAX0I,GAAwB,CAAC,EAAEC,kBAAkB,CAApB,CAAzBD;MACAA,WAAWE,iBAAXF,GAAgCC,mBAAmB,CAAnBA,GAAwB,CAAxDD;MACAA,WAAWG,iBAAXH,GAAgCC,mBAAmB,CAAnBA,GAAwB,CAAxDD;MACAA,WAAWI,kBAAXJ,GAAiCC,mBAAmB,CAAnBA,GAAwB,CAAzDD;MACAA,WAAWK,4BAAXL,GAA2CC,mBAAmB,CAAnBA,GAAwB,CAAnED;MACAA,WAAWM,uBAAXN,GAAqC,CAAC,EAAEC,kBAAkB,GAApB,CAAtCD;MACAA,WAAWO,2BAAXP,GAAyC,CAAC,EAAEC,kBAAkB,GAApB,CAA1CD;MACAA,WAAWrL,QAAXqL,GAAuBC,mBAAmB,EAAnBA,GAAyB,CAAhDD;MACAA,WAAWQ,kBAAXR,GAAiCC,mBAAmB,EAAnBA,GAAyB,CAA1DD;MACAvG,YAAY,CAAZA;;MACA,IAAI,CAACuG,WAAW3I,OAAhB,EAAyB;QACvB0I,WAAWC,WAAWrL,QAAXqL,KAAwB,CAAxBA,GAA4B,CAA5BA,GAAgC,CAA3CD;QACAzL,KAAK,EAALA;;QACA,KAAK7M,IAAI,CAAT,EAAYA,IAAIsY,QAAhB,EAA0BtY,GAA1B,EAA+B;UAC7B6M,GAAGvM,IAAHuM,CAAQ;YACNvB,GAAG0N,0BAAS9X,IAAT8X,EAAehH,QAAfgH,CADG;YAENzN,GAAGyN,0BAAS9X,IAAT8X,EAAehH,WAAW,CAA1BgH;UAFG,CAARnM;UAIAmF,YAAY,CAAZA;QARqB;;QAUvBuG,WAAW1L,EAAX0L,GAAgB1L,EAAhB0L;MAzBJ;;MA2BE,IAAIA,WAAW1I,UAAX0I,IAAyB,CAACA,WAAWQ,kBAAzC,EAA6D;QAC3DlM,KAAK,EAALA;;QACA,KAAK7M,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmBA,GAAnB,EAAwB;UACtB6M,GAAGvM,IAAHuM,CAAQ;YACNvB,GAAG0N,0BAAS9X,IAAT8X,EAAehH,QAAfgH,CADG;YAENzN,GAAGyN,0BAAS9X,IAAT8X,EAAehH,WAAW,CAA1BgH;UAFG,CAARnM;UAIAmF,YAAY,CAAZA;QAPyD;;QAS3DuG,WAAWpI,YAAXoI,GAA0B1L,EAA1B0L;MApCJ;;MAsCEA,WAAWvI,uBAAXuI,GAAqC7B,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAArC6B;MACAvG,YAAY,CAAZA;MACAuG,WAAWxI,kBAAXwI,GAAgC7B,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAAhC6B;MACAvG,YAAY,CAAZA;MACAqG,OAAO,CACLE,UADK,EAELR,OAAOtB,MAFF,EAGLsB,OAAOZ,UAHF,EAILjW,IAJK,EAKL8Q,QALK,EAML1H,GANK,CAAP+N;MAQA;;IACF,KAAK,CAAL;IACA,KAAK,CAAL;MACE,MAAMY,aAAa,EAAnB;MACAA,WAAW3c,IAAX2c,GAAkB1B,6BAA6BrW,IAA7B,EAAmC8Q,QAAnC,CAAlBiH;MACAjH,YAAYyF,mCAAZzF;MACA,MAAMkH,yBAAyB9B,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAA/B;MACApF,YAAY,CAAZA;MACAiH,WAAWrJ,OAAXqJ,GAAqB,CAAC,EAAEC,yBAAyB,CAA3B,CAAtBD;MACAA,WAAWpJ,UAAXoJ,GAAwB,CAAC,EAAEC,yBAAyB,CAA3B,CAAzBD;MACAA,WAAW9F,YAAX8F,GAA2BC,0BAA0B,CAA1BA,GAA+B,CAA1DD;MACAA,WAAWpG,SAAXoG,GAAuB,KAAKA,WAAW9F,YAAvC8F;MACAA,WAAWhG,eAAXgG,GAA8BC,0BAA0B,CAA1BA,GAA+B,CAA7DD;MACAA,WAAWlG,UAAXkG,GAAwB,CAAC,EAAEC,yBAAyB,EAA3B,CAAzBD;MACAA,WAAW/F,mBAAX+F,GAAkCC,0BAA0B,CAA1BA,GAA+B,CAAjED;MACAA,WAAWtG,iBAAXsG,GAAgCC,0BAA0B,CAA1BA,GAA+B,CAA/DD;MACAA,WAAWjG,QAAXiG,GAAuBC,0BAA0B,EAA1BA,IAAiC,EAAxDD;MACAA,WAAWF,kBAAXE,GAAiCC,0BAA0B,EAA1BA,GAAgC,CAAjED;;MACA,IAAIA,WAAWrJ,OAAf,EAAwB;QACtB,MAAMuJ,yBAAyB/B,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAA/B;QACApF,YAAY,CAAZA;QACAiH,WAAWG,SAAXH,GAAuBE,yBAAyB,CAAhDF;QACAA,WAAWI,SAAXJ,GAAwBE,0BAA0B,CAA1BA,GAA+B,CAAvDF;QACAA,WAAWK,SAAXL,GAAwBE,0BAA0B,CAA1BA,GAA+B,CAAvDF;QACAA,WAAWM,mBAAXN,GAAkCE,0BAA0B,CAA1BA,GAA+B,CAAjEF;QACAA,WAAWO,mBAAXP,GAAkCE,0BAA0B,CAA1BA,GAA+B,CAAjEF;QACAA,WAAWQ,mBAAXR,GAAkCE,0BAA0B,EAA1BA,GAAgC,CAAlEF;QACAA,WAAWS,mBAAXT,GAAkCE,0BAA0B,EAA1BA,GAAgC,CAAlEF;QACAA,WAAWU,6BAAXV,GAA2C,CAAC,EAC1CE,yBAAyB,MADiB,CAA5CF;MA1BJ;;MA8BE,IAAIA,WAAWpJ,UAAXoJ,IAAyB,CAACA,WAAWF,kBAAzC,EAA6D;QAC3DlM,KAAK,EAALA;;QACA,KAAK7M,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmBA,GAAnB,EAAwB;UACtB6M,GAAGvM,IAAHuM,CAAQ;YACNvB,GAAG0N,0BAAS9X,IAAT8X,EAAehH,QAAfgH,CADG;YAENzN,GAAGyN,0BAAS9X,IAAT8X,EAAehH,WAAW,CAA1BgH;UAFG,CAARnM;UAIAmF,YAAY,CAAZA;QAPyD;;QAS3DiH,WAAW9I,YAAX8I,GAA0BpM,EAA1BoM;MAvCJ;;MAyCEA,WAAWrG,uBAAXqG,GAAqCvC,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAArCuC;MACAjH,YAAY,CAAZA;MACAqG,OAAO,CAACY,UAAD,EAAalB,OAAOZ,UAApB,EAAgCjW,IAAhC,EAAsC8Q,QAAtC,EAAgD1H,GAAhD,CAAP+N;MACA;;IACF,KAAK,EAAL;MAEE,MAAMuB,oBAAoB,EAA1B;MACA,MAAMC,yBAAyB3Y,KAAK8Q,UAAL,CAA/B;MACA4H,kBAAkBnN,GAAlBmN,GAAwB,CAAC,EAAEC,yBAAyB,CAA3B,CAAzBD;MACAA,kBAAkB1M,QAAlB0M,GAA8BC,0BAA0B,CAA1BA,GAA+B,CAA7DD;MACAA,kBAAkBlF,YAAlBkF,GAAiC1Y,KAAK8Q,UAAL,CAAjC4H;MACAA,kBAAkBjF,aAAlBiF,GAAkC1Y,KAAK8Q,UAAL,CAAlC4H;MACAA,kBAAkBhF,eAAlBgF,GAAoClD,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAApCkD;MACA5H,YAAY,CAAZA;MACAqG,OAAO,CAACuB,iBAAD,EAAoB7B,OAAOtB,MAA3B,EAAmCvV,IAAnC,EAAyC8Q,QAAzC,EAAmD1H,GAAnD,CAAP+N;MACA;;IACF,KAAK,EAAL;IACA,KAAK,EAAL;MAEE,MAAMyB,iBAAiB,EAAvB;MACAA,eAAexd,IAAfwd,GAAsBvC,6BAA6BrW,IAA7B,EAAmC8Q,QAAnC,CAAtB8H;MACA9H,YAAYyF,mCAAZzF;MACA,MAAM+H,sBAAsB7Y,KAAK8Q,UAAL,CAA5B;MACA8H,eAAerN,GAAfqN,GAAqB,CAAC,EAAEC,sBAAsB,CAAxB,CAAtBD;MACAA,eAAe5M,QAAf4M,GAA2BC,uBAAuB,CAAvBA,GAA4B,CAAvDD;MACAA,eAAe3E,UAAf2E,GAA4B,CAAC,EAAEC,sBAAsB,CAAxB,CAA7BD;MACAA,eAAe5G,mBAAf4G,GAAsCC,uBAAuB,CAAvBA,GAA4B,CAAlED;MACAA,eAAenH,iBAAfmH,GAAoCC,uBAAuB,CAAvBA,GAA4B,CAAhED;MACAA,eAAe1E,SAAf0E,GAA2BpD,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAA3BoD;MACA9H,YAAY,CAAZA;MACA8H,eAAezE,UAAfyE,GAA4BpD,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAA5BoD;MACA9H,YAAY,CAAZA;MACA8H,eAAexE,WAAfwE,GAA6BpD,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,IAA6B,UAA1DoD;MACA9H,YAAY,CAAZA;MACA8H,eAAevE,WAAfuE,GAA6BpD,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,IAA6B,UAA1DoD;MACA9H,YAAY,CAAZA;MACA8H,eAAetE,WAAfsE,GAA6B1C,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAA7B0C;MACA9H,YAAY,CAAZA;MACA8H,eAAerE,WAAfqE,GAA6B1C,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAA7B0C;MACA9H,YAAY,CAAZA;MACAqG,OAAO,CAACyB,cAAD,EAAiB/B,OAAOZ,UAAxB,EAAoCjW,IAApC,EAA0C8Q,QAA1C,EAAoD1H,GAApD,CAAP+N;MACA;;IACF,KAAK,EAAL;IACA,KAAK,EAAL;MACE,MAAM2B,gBAAgB,EAAtB;MACAA,cAAc1d,IAAd0d,GAAqBzC,6BAA6BrW,IAA7B,EAAmC8Q,QAAnC,CAArBgI;MACAhI,YAAYyF,mCAAZzF;MACA,MAAMwF,4BAA4BtW,KAAK8Q,UAAL,CAAlC;MACAgI,cAAcvN,GAAduN,GAAoB,CAAC,EAAExC,4BAA4B,CAA9B,CAArBwC;MACAA,cAAc9M,QAAd8M,GAA0BxC,6BAA6B,CAA7BA,GAAkC,CAA5DwC;MACAA,cAAcrN,UAAdqN,GAA2B,CAAC,EAAExC,4BAA4B,CAA9B,CAA5BwC;;MACA,IAAI,CAACA,cAAcvN,GAAnB,EAAwB;QACtB6L,WAAW0B,cAAc9M,QAAd8M,KAA2B,CAA3BA,GAA+B,CAA/BA,GAAmC,CAA9C1B;QACAzL,KAAK,EAALA;;QACA,KAAK7M,IAAI,CAAT,EAAYA,IAAIsY,QAAhB,EAA0BtY,GAA1B,EAA+B;UAC7B6M,GAAGvM,IAAHuM,CAAQ;YACNvB,GAAG0N,0BAAS9X,IAAT8X,EAAehH,QAAfgH,CADG;YAENzN,GAAGyN,0BAAS9X,IAAT8X,EAAehH,WAAW,CAA1BgH;UAFG,CAARnM;UAIAmF,YAAY,CAAZA;QARoB;;QAUtBgI,cAAcnN,EAAdmN,GAAmBnN,EAAnBmN;MAlBJ;;MAoBE3B,OAAO,CAAC2B,aAAD,EAAgB9Y,IAAhB,EAAsB8Q,QAAtB,EAAgC1H,GAAhC,CAAP+N;MACA;;IACF,KAAK,EAAL;MACE,MAAM4B,WAAW;QACfnO,OAAO4K,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CADQ;QAEf3K,QAAQ2K,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAFO;QAGfwD,aAAaxD,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAHE;QAIfyD,aAAazD,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E;MAJE,CAAjB;;MAMA,IAAIuD,SAASlO,MAATkO,KAAoB,UAAxB,EAAoC;QAClC,OAAOA,SAASlO,MAAhB;MARJ;;MAUE,MAAMqO,mBAAmBlZ,KAAK8Q,WAAW,EAAhB,CAAzB;MACAoF,4BAAWlW,IAAXkW,EAAiBpF,WAAW,EAA5BoF;MACA6C,SAASI,QAATJ,GAAoB,CAAC,EAAEG,mBAAmB,CAArB,CAArBH;MACAA,SAASpK,UAAToK,GAAsB,CAAC,EAAEG,mBAAmB,CAArB,CAAvBH;MACAA,SAAStH,iBAATsH,GAA8BG,oBAAoB,CAApBA,GAAyB,CAAvDH;MACAA,SAAS/G,mBAAT+G,GAAgCG,oBAAoB,CAApBA,GAAyB,CAAzDH;MACAA,SAASK,cAATL,GAA0B,CAAC,EAAEG,mBAAmB,EAArB,CAA3BH;MACAA,SAASM,2BAATN,GAAuC,CAAC,EAAEG,mBAAmB,EAArB,CAAxCH;MACA5B,OAAO,CAAC4B,QAAD,CAAP5B;MACA;;IACF,KAAK,EAAL;MACE;;IACF,KAAK,EAAL;MACE;;IACF,KAAK,EAAL;MACE;;IACF,KAAK,EAAL;MACEA,OAAO,CAACN,OAAOtB,MAAR,EAAgBvV,IAAhB,EAAsB8Q,QAAtB,EAAgC1H,GAAhC,CAAP+N;MACA;;IACF,KAAK,EAAL;MAEE;;IACF;MACE,MAAM,IAAItO,UAAJ,CACH,gBAAegO,OAAOnB,QAAS,IAAGmB,OAAOjO,IAAK,sBAD3C,CAAN;EAhMJ;;EAoMA,MAAM0Q,eAAe,OAAOzC,OAAOnB,QAAnC;;EACA,IAAI4D,gBAAgBpC,OAApB,EAA6B;IAE3BA,QAAQoC,YAAR,EAAsB1a,KAAtBsY,CAA4BA,OAA5BA,EAAqCC,IAArCD;EA9MsC;AA3vC1C;;AA68CA,SAASqC,eAAT,CAAyBzC,QAAzB,EAAmCI,OAAnC,EAA4C;EAC1C,KAAK,IAAIpY,IAAI,CAAR,EAAWqH,KAAK2Q,SAASva,MAA9B,EAAsCuC,IAAIqH,EAA1C,EAA8CrH,GAA9C,EAAmD;IACjDmY,eAAeH,SAAShY,CAAT,CAAf,EAA4BoY,OAA5B;EAFwC;AA78C5C;;AAm9CA,SAASsC,gBAAT,CAA0BC,MAA1B,EAAkC;EAChC,MAAMvC,UAAU,IAAIwC,oBAAJ,EAAhB;;EACA,KAAK,IAAI5a,IAAI,CAAR,EAAWqH,KAAKsT,OAAOld,MAA5B,EAAoCuC,IAAIqH,EAAxC,EAA4CrH,GAA5C,EAAiD;IAC/C,MAAMI,QAAQua,OAAO3a,CAAP,CAAd;IACA,MAAMgY,WAAWF,aAAa,EAAb,EAAiB1X,MAAMc,IAAvB,EAA6Bd,MAAMiK,KAAnC,EAA0CjK,MAAMkK,GAAhD,CAAjB;IACAmQ,gBAAgBzC,QAAhB,EAA0BI,OAA1B;EAL8B;;EAOhC,OAAOA,QAAQnW,MAAf;AA19CF;;AA69CA,SAAS4Y,UAAT,CAAoB3Z,IAApB,EAA0B;EAIxB,MAAMoJ,MAAMpJ,KAAKzD,MAAjB;EACA,IAAIuU,WAAW,CAAf;;EAEA,IACE9Q,KAAK8Q,QAAL,MAAmB,IAAnB9Q,IACAA,KAAK8Q,WAAW,CAAhB,MAAuB,IADvB9Q,IAEAA,KAAK8Q,WAAW,CAAhB,MAAuB,IAFvB9Q,IAGAA,KAAK8Q,WAAW,CAAhB,MAAuB,IAHvB9Q,IAIAA,KAAK8Q,WAAW,CAAhB,MAAuB,IAJvB9Q,IAKAA,KAAK8Q,WAAW,CAAhB,MAAuB,IALvB9Q,IAMAA,KAAK8Q,WAAW,CAAhB,MAAuB,IANvB9Q,IAOAA,KAAK8Q,WAAW,CAAhB,MAAuB,IARzB,EASE;IACA,MAAM,IAAIjI,UAAJ,CAAe,8BAAf,CAAN;EAjBsB;;EAoBxB,MAAMgO,SAAS5Z,OAAOwD,MAAPxD,CAAc,IAAdA,CAAf;EACA6T,YAAY,CAAZA;EACA,MAAMO,QAAQrR,KAAK8Q,UAAL,CAAd;EACA+F,OAAOG,YAAPH,GAAsB,EAAExF,QAAQ,CAAV,CAAtBwF;;EACA,IAAI,EAAExF,QAAQ,CAAV,CAAJ,EAAkB;IAChBwF,OAAO+C,aAAP/C,GAAuBrB,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAAvBqB;IACA/F,YAAY,CAAZA;EA1BsB;;EA6BxB,MAAMgG,WAAWF,aAAaC,MAAb,EAAqB7W,IAArB,EAA2B8Q,QAA3B,EAAqC1H,GAArC,CAAjB;EACA,MAAM8N,UAAU,IAAIwC,oBAAJ,EAAhB;EACAH,gBAAgBzC,QAAhB,EAA0BI,OAA1B;EAEA,MAAM;IAAEtM,KAAF;IAASC;EAAT,IAAoBqM,QAAQ2C,eAAlC;EACA,MAAMC,YAAY5C,QAAQnW,MAA1B;EACA,MAAMgZ,UAAU,IAAIC,iBAAJ,CAAsBpP,QAAQC,MAA9B,CAAhB;EACA,IAAIoP,IAAI,CAAR;EAAA,IACEtN,IAAI,CADN;;EAEA,KAAK,IAAI7N,IAAI,CAAb,EAAgBA,IAAI+L,MAApB,EAA4B/L,GAA5B,EAAiC;IAC/B,IAAIob,OAAO,CAAX;IAAA,IACEnZ,MADF;;IAEA,KAAK,IAAI0E,IAAI,CAAb,EAAgBA,IAAImF,KAApB,EAA2BnF,GAA3B,EAAgC;MAC9B,IAAI,CAACyU,IAAL,EAAW;QACTA,OAAO,GAAPA;QACAnZ,SAAS+Y,UAAUnN,GAAV,CAAT5L;MAH4B;;MAK9BgZ,QAAQE,GAAR,IAAelZ,SAASmZ,IAATnZ,GAAgB,CAAhBA,GAAoB,GAAnCgZ;MACAG,SAAS,CAATA;IAT6B;EAtCT;;EAmDxB,OAAO;IAAEH,OAAF;IAAWnP,KAAX;IAAkBC;EAAlB,CAAP;AAhhDF;;AAmhDA,MAAM6O,oBAAN,CAA2B;EACzBS,kBAAkB/e,IAAlB,EAAwB;IACtB,KAAKye,eAAL,GAAuBze,IAAvB;IACA,MAAMgf,UAAWhf,KAAKwP,KAALxP,GAAa,CAAbA,IAAmB,CAApC;IACA,MAAM2F,SAAS,IAAIiZ,iBAAJ,CAAsBI,UAAUhf,KAAKyP,MAArC,CAAf;;IAGA,IAAIzP,KAAKqW,iBAAT,EAA4B;MAC1B1Q,OAAOjM,IAAPiM,CAAY,IAAZA;IAPoB;;IAStB,KAAKA,MAAL,GAAcA,MAAd;EAVuB;;EAazBsZ,WAAWC,UAAX,EAAuBvP,MAAvB,EAA+B;IAC7B,MAAMgO,WAAW,KAAKc,eAAtB;IACA,MAAMjP,QAAQ0P,WAAW1P,KAAzB;IAAA,MACEC,SAASyP,WAAWzP,MADtB;IAEA,MAAMuP,UAAWrB,SAASnO,KAATmO,GAAiB,CAAjBA,IAAuB,CAAxC;IACA,MAAM/G,sBAAsB+G,SAASM,2BAATN,GACxBuB,WAAWtI,mBADa+G,GAExBA,SAAS/G,mBAFb;IAGA,MAAMjR,SAAS,KAAKA,MAApB;IACA,MAAMwZ,QAAQ,QAAQD,WAAWlQ,CAAXkQ,GAAe,CAAvB,CAAd;IACA,IAAIE,UAAUF,WAAWjQ,CAAXiQ,GAAeF,OAAfE,IAA0BA,WAAWlQ,CAAXkQ,IAAgB,CAA1CA,CAAd;IACA,IAAIxb,CAAJ,EAAO2G,CAAP,EAAUyU,IAAV,EAAgBO,MAAhB;;IACA,QAAQzI,mBAAR;MACE,KAAK,CAAL;QACE,KAAKlT,IAAI,CAAT,EAAYA,IAAI+L,MAAhB,EAAwB/L,GAAxB,EAA6B;UAC3Bob,OAAOK,KAAPL;UACAO,SAASD,OAATC;;UACA,KAAKhV,IAAI,CAAT,EAAYA,IAAImF,KAAhB,EAAuBnF,GAAvB,EAA4B;YAC1B,IAAIsF,OAAOjM,CAAP,EAAU2G,CAAVsF,CAAJ,EAAkB;cAChBhK,OAAO0Z,MAAP,KAAkBP,IAAlBnZ;YAFwB;;YAI1BmZ,SAAS,CAATA;;YACA,IAAI,CAACA,IAAL,EAAW;cACTA,OAAO,GAAPA;cACAO;YAPwB;UAHD;;UAa3BD,WAAWJ,OAAXI;QAdJ;;QAgBE;;MACF,KAAK,CAAL;QACE,KAAK1b,IAAI,CAAT,EAAYA,IAAI+L,MAAhB,EAAwB/L,GAAxB,EAA6B;UAC3Bob,OAAOK,KAAPL;UACAO,SAASD,OAATC;;UACA,KAAKhV,IAAI,CAAT,EAAYA,IAAImF,KAAhB,EAAuBnF,GAAvB,EAA4B;YAC1B,IAAIsF,OAAOjM,CAAP,EAAU2G,CAAVsF,CAAJ,EAAkB;cAChBhK,OAAO0Z,MAAP,KAAkBP,IAAlBnZ;YAFwB;;YAI1BmZ,SAAS,CAATA;;YACA,IAAI,CAACA,IAAL,EAAW;cACTA,OAAO,GAAPA;cACAO;YAPwB;UAHD;;UAa3BD,WAAWJ,OAAXI;QAdJ;;QAgBE;;MACF;QACE,MAAM,IAAI3R,UAAJ,CACH,YAAWmJ,mBAAoB,mBAD5B,CAAN;IApCJ;EAzBuB;;EAmEzB0I,yBAAyBC,MAAzB,EAAiC3a,IAAjC,EAAuCmJ,KAAvC,EAA8CC,GAA9C,EAAmD;IACjD,MAAMkR,aAAaK,OAAOvf,IAA1B;IACA,MAAM0P,kBAAkB,IAAI5B,eAAJ,CAAoBlJ,IAApB,EAA0BmJ,KAA1B,EAAiCC,GAAjC,CAAxB;IACA,MAAM2B,SAASO,aACbqP,OAAOpP,GADM,EAEb+O,WAAW1P,KAFE,EAGb0P,WAAWzP,MAHE,EAIb8P,OAAO3O,QAJM,EAKb2O,OAAOlP,UALM,EAMb,IANa,EAObkP,OAAOhP,EAPM,EAQbb,eARa,CAAf;IAUA,KAAKuP,UAAL,CAAgBC,UAAhB,EAA4BvP,MAA5B;EAhFuB;;EAmFzB6P,mCAAmC;IACjC,KAAKF,wBAAL,CAA8B,GAAGG,SAAjC;EApFuB;;EAuFzBC,mBACEzD,UADF,EAEE0D,cAFF,EAGEC,gBAHF,EAIEhb,IAJF,EAKEmJ,KALF,EAMEC,GANF,EAOE;IACA,IAAI2F,aAAJ,EAAmBG,YAAnB;;IACA,IAAImI,WAAW3I,OAAf,EAAwB;MACtBK,gBAAgBkM,iCACd5D,UADc,EAEd2D,gBAFc,EAGd,KAAKE,YAHS,CAAhBnM;MAKAG,eAAe,IAAIrD,MAAJ,CAAW7L,IAAX,EAAiBmJ,KAAjB,EAAwBC,GAAxB,CAAf8F;IARF;;IAYA,IAAIN,UAAU,KAAKA,OAAnB;;IACA,IAAI,CAACA,OAAL,EAAc;MACZ,KAAKA,OAAL,GAAeA,UAAU,EAAzB;IAdF;;IAiBA,MAAMgD,eAAe,EAArB;;IACA,WAAWuJ,eAAX,IAA8BH,gBAA9B,EAAgD;MAC9C,MAAMI,kBAAkBxM,QAAQuM,eAAR,CAAxB;;MAGA,IAAIC,eAAJ,EAAqB;QACnBxJ,aAAaxS,IAAbwS,CAAkB,GAAGwJ,eAArBxJ;MAL4C;IAlBhD;;IA2BA,MAAM9G,kBAAkB,IAAI5B,eAAJ,CAAoBlJ,IAApB,EAA0BmJ,KAA1B,EAAiCC,GAAjC,CAAxB;IACAwF,QAAQmM,cAAR,IAA0BtM,uBACxB4I,WAAW3I,OADa,EAExB2I,WAAW1I,UAFa,EAGxBiD,YAHwB,EAIxByF,WAAWxI,kBAJa,EAKxBwI,WAAWvI,uBALa,EAMxBC,aANwB,EAOxBsI,WAAWrL,QAPa,EAQxBqL,WAAW1L,EARa,EASxB0L,WAAWQ,kBATa,EAUxBR,WAAWpI,YAVa,EAWxBnE,eAXwB,EAYxBoE,YAZwB,CAA1BN;EA1HuB;;EA0IzByM,sBAAsBV,MAAtB,EAA8BK,gBAA9B,EAAgDhb,IAAhD,EAAsDmJ,KAAtD,EAA6DC,GAA7D,EAAkE;IAChE,MAAMkR,aAAaK,OAAOvf,IAA1B;IACA,IAAI2T,aAAJ,EAAmBG,YAAnB;IAGA,MAAMN,UAAU,KAAKA,OAArB;IACA,MAAMgD,eAAe,EAArB;;IACA,WAAWuJ,eAAX,IAA8BH,gBAA9B,EAAgD;MAC9C,MAAMI,kBAAkBxM,QAAQuM,eAAR,CAAxB;;MAGA,IAAIC,eAAJ,EAAqB;QACnBxJ,aAAaxS,IAAbwS,CAAkB,GAAGwJ,eAArBxJ;MAL4C;IAPgB;;IAehE,MAAMvC,mBAAmBC,sBAAKsC,aAAarV,MAAlB+S,CAAzB;;IACA,IAAIqL,OAAOjM,OAAX,EAAoB;MAClBQ,eAAe,IAAIrD,MAAJ,CAAW7L,IAAX,EAAiBmJ,KAAjB,EAAwBC,GAAxB,CAAf8F;MACAH,gBAAgBuM,2BACdX,MADc,EAEdK,gBAFc,EAGd,KAAKE,YAHS,EAIdtJ,aAAarV,MAJC,EAKd2S,YALc,CAAhBH;IAlB8D;;IA2BhE,MAAMjE,kBAAkB,IAAI5B,eAAJ,CAAoBlJ,IAApB,EAA0BmJ,KAA1B,EAAiCC,GAAjC,CAAxB;IACA,MAAM2B,SAASmF,iBACbyK,OAAOjM,OADM,EAEbiM,OAAOhM,UAFM,EAGb2L,WAAW1P,KAHE,EAIb0P,WAAWzP,MAJE,EAKb8P,OAAOlJ,iBALM,EAMbkJ,OAAOjJ,uBANM,EAObiJ,OAAOhJ,SAPM,EAQbC,YARa,EASbvC,gBATa,EAUbsL,OAAO9I,UAVM,EAWb8I,OAAO7I,QAXM,EAYb6I,OAAO5I,eAZM,EAab4I,OAAO3I,mBAbM,EAcbjD,aAda,EAeb4L,OAAO9C,kBAfM,EAgBb8C,OAAO1L,YAhBM,EAiBbnE,eAjBa,EAkBb6P,OAAO1I,YAlBM,EAmBb/C,YAnBa,CAAf;IAqBA,KAAKmL,UAAL,CAAgBC,UAAhB,EAA4BvP,MAA5B;EA3LuB;;EA8LzBwQ,gCAAgC;IAC9B,KAAKF,qBAAL,CAA2B,GAAGR,SAA9B;EA/LuB;;EAkMzBW,oBAAoBnE,UAApB,EAAgC0D,cAAhC,EAAgD/a,IAAhD,EAAsDmJ,KAAtD,EAA6DC,GAA7D,EAAkE;IAChE,IAAIwK,WAAW,KAAKA,QAApB;;IACA,IAAI,CAACA,QAAL,EAAe;MACb,KAAKA,QAAL,GAAgBA,WAAW,EAA3B;IAH8D;;IAKhE,MAAM9I,kBAAkB,IAAI5B,eAAJ,CAAoBlJ,IAApB,EAA0BmJ,KAA1B,EAAiCC,GAAjC,CAAxB;IACAwK,SAASmH,cAAT,IAA2BxH,wBACzB8D,WAAW9L,GADc,EAEzB8L,WAAW7D,YAFc,EAGzB6D,WAAW5D,aAHc,EAIzB4D,WAAW3D,eAJc,EAKzB2D,WAAWrL,QALc,EAMzBlB,eANyB,CAA3B8I;EAxMuB;;EAkNzB6H,0BAA0Bd,MAA1B,EAAkCK,gBAAlC,EAAoDhb,IAApD,EAA0DmJ,KAA1D,EAAiEC,GAAjE,EAAsE;IAEpE,MAAMwK,WAAW,KAAKA,QAAL,CAAcoH,iBAAiB,CAAjB,CAAd,CAAjB;IACA,MAAMV,aAAaK,OAAOvf,IAA1B;IACA,MAAM0P,kBAAkB,IAAI5B,eAAJ,CAAoBlJ,IAApB,EAA0BmJ,KAA1B,EAAiCC,GAAjC,CAAxB;IACA,MAAM2B,SAAS+I,qBACb6G,OAAOpP,GADM,EAEbqI,QAFa,EAGb+G,OAAO3O,QAHM,EAIbsO,WAAW1P,KAJE,EAKb0P,WAAWzP,MALE,EAMb8P,OAAOlJ,iBANM,EAObkJ,OAAO1G,UAPM,EAQb0G,OAAO3I,mBARM,EASb2I,OAAOzG,SATM,EAUbyG,OAAOxG,UAVM,EAWbwG,OAAOvG,WAXM,EAYbuG,OAAOtG,WAZM,EAabsG,OAAOrG,WAbM,EAcbqG,OAAOpG,WAdM,EAebzJ,eAfa,CAAf;IAiBA,KAAKuP,UAAL,CAAgBC,UAAhB,EAA4BvP,MAA5B;EAxOuB;;EA2OzB2Q,oCAAoC;IAClC,KAAKD,yBAAL,CAA+B,GAAGZ,SAAlC;EA5OuB;;EA+OzBc,SAASZ,cAAT,EAAyB/a,IAAzB,EAA+BmJ,KAA/B,EAAsCC,GAAtC,EAA2C;IACzC,IAAI8R,eAAe,KAAKA,YAAxB;;IACA,IAAI,CAACA,YAAL,EAAmB;MACjB,KAAKA,YAAL,GAAoBA,eAAe,EAAnC;IAHuC;;IAKzCA,aAAaH,cAAb,IAA+Ba,oBAAoB5b,IAApB,EAA0BmJ,KAA1B,EAAiCC,GAAjC,CAA/B8R;EApPuB;;AAAA;;AAwP3B,MAAMW,WAAN,CAAkB;EAChBne,YAAYoe,QAAZ,EAAsB;IACpB,IAAIA,SAASvf,MAATuf,KAAoB,CAAxB,EAA2B;MAEzB,KAAKC,KAAL,GAAa,IAAb;MACA,KAAKC,QAAL,GAAgB,CAAhB;MACA,KAAKC,YAAL,GAAoBH,SAAS,CAAT,CAApB;MACA,KAAKI,WAAL,GAAmB,CAAnB;MACA,KAAKC,UAAL,GAAkBL,SAAS,CAAT,CAAlB;MACA,KAAKM,YAAL,GAAoB,KAApB;IAPF,OAQO;MAGL,KAAKL,KAAL,GAAa,KAAb;MACA,KAAKC,QAAL,GAAgBF,SAAS,CAAT,CAAhB;MACA,KAAKG,YAAL,GAAoBH,SAAS,CAAT,CAApB;MACA,KAAKI,WAAL,GAAmBJ,SAAS,CAAT,CAAnB;MACA,KAAKK,UAAL,GAAkBL,SAAS,CAAT,CAAlB;MACA,KAAKM,YAAL,GAAoBN,SAAS,CAAT,MAAgB,OAApC;IAjBkB;EADN;;AAAA;;AAuBlB,MAAMO,eAAN,CAAsB;EACpB3e,YAAY4e,IAAZ,EAAkB;IAChB,KAAKC,QAAL,GAAgB,EAAhB;;IACA,IAAID,IAAJ,EAAU;MAER,KAAKE,MAAL,GAAc,IAAd;MACA,KAAKN,WAAL,GAAmBI,KAAKJ,WAAxB;MACA,KAAKF,QAAL,GAAgBM,KAAKN,QAArB;MACA,KAAKI,YAAL,GAAoBE,KAAKF,YAAzB;MACA,KAAKL,KAAL,GAAaO,KAAKP,KAAlB;IANF,OAOO;MAEL,KAAKS,MAAL,GAAc,KAAd;IAXc;EADE;;EAgBpBC,UAAUH,IAAV,EAAgB9O,KAAhB,EAAuB;IACrB,MAAM3D,MAAOyS,KAAKH,UAALG,IAAmB9O,KAAnB8O,GAA4B,CAAzC;;IACA,IAAI9O,SAAS,CAAb,EAAgB;MAEd,KAAK+O,QAAL,CAAc1S,GAAd,IAAqB,IAAIwS,eAAJ,CAAoBC,IAApB,CAArB;IAFF,OAGO;MAEL,IAAII,OAAO,KAAKH,QAAL,CAAc1S,GAAd,CAAX;;MACA,IAAI,CAAC6S,IAAL,EAAW;QACT,KAAKH,QAAL,CAAc1S,GAAd,IAAqB6S,OAAO,IAAIL,eAAJ,CAAoB,IAApB,CAA5B;MAJG;;MAMLK,KAAKD,SAALC,CAAeJ,IAAfI,EAAqBlP,QAAQ,CAA7BkP;IAXmB;EAhBH;;EA+BpBC,WAAWC,MAAX,EAAmB;IACjB,IAAI,KAAKJ,MAAT,EAAiB;MACf,IAAI,KAAKT,KAAT,EAAgB;QACd,OAAO,IAAP;MAFa;;MAIf,MAAMc,WAAWD,OAAOhT,QAAPgT,CAAgB,KAAKV,WAArBU,CAAjB;MACA,OAAO,KAAKZ,QAAL,IAAiB,KAAKI,YAAL,GAAoB,CAACS,QAArB,GAAgCA,QAAjD,CAAP;IANe;;IAQjB,MAAMH,OAAO,KAAKH,QAAL,CAAcK,OAAO9S,OAAP8S,EAAd,CAAb;;IACA,IAAI,CAACF,IAAL,EAAW;MACT,MAAM,IAAI7T,UAAJ,CAAe,sBAAf,CAAN;IAVe;;IAYjB,OAAO6T,KAAKC,UAALD,CAAgBE,MAAhBF,CAAP;EA3CkB;;AAAA;;AA+CtB,MAAMI,YAAN,CAAmB;EACjBpf,YAAYqf,KAAZ,EAAmBC,eAAnB,EAAoC;IAClC,IAAI,CAACA,eAAL,EAAsB;MACpB,KAAKC,iBAAL,CAAuBF,KAAvB;IAFgC;;IAKlC,KAAKG,QAAL,GAAgB,IAAIb,eAAJ,CAAoB,IAApB,CAAhB;;IACA,KAAK,IAAIvd,IAAI,CAAR,EAAWqH,KAAK4W,MAAMxgB,MAA3B,EAAmCuC,IAAIqH,EAAvC,EAA2CrH,GAA3C,EAAgD;MAC9C,MAAMwd,OAAOS,MAAMje,CAAN,CAAb;;MACA,IAAIwd,KAAKL,YAALK,GAAoB,CAAxB,EAA2B;QACzB,KAAKY,QAAL,CAAcT,SAAd,CAAwBH,IAAxB,EAA8BA,KAAKL,YAALK,GAAoB,CAAlD;MAH4C;IANd;EADnB;;EAejBpW,OAAO0W,MAAP,EAAe;IACb,OAAO,KAAKM,QAAL,CAAcP,UAAd,CAAyBC,MAAzB,CAAP;EAhBe;;EAmBjBK,kBAAkBF,KAAlB,EAAyB;IAEvB,MAAMI,cAAcJ,MAAMxgB,MAA1B;IACA,IAAI6gB,kBAAkB,CAAtB;;IACA,KAAK,IAAIte,IAAI,CAAb,EAAgBA,IAAIqe,WAApB,EAAiCre,GAAjC,EAAsC;MACpCse,kBAAkBpe,KAAKkE,GAALlE,CAASoe,eAATpe,EAA0B+d,MAAMje,CAAN,EAASmd,YAAnCjd,CAAlBoe;IALqB;;IAQvB,MAAMC,YAAY,IAAIvc,WAAJ,CAAgBsc,kBAAkB,CAAlC,CAAlB;;IACA,KAAK,IAAIte,IAAI,CAAb,EAAgBA,IAAIqe,WAApB,EAAiCre,GAAjC,EAAsC;MACpCue,UAAUN,MAAMje,CAAN,EAASmd,YAAnB;IAVqB;;IAYvB,IAAIqB,gBAAgB,CAApB;IAAA,IACEC,YAAY,CADd;IAAA,IAEEC,WAFF;IAAA,IAGEC,WAHF;IAAA,IAIEnB,IAJF;IAKAe,UAAU,CAAV,IAAe,CAAfA;;IAEA,OAAOC,iBAAiBF,eAAxB,EAAyC;MACvCG,YAAaA,YAAYF,UAAUC,gBAAgB,CAA1B,CAAZC,IAA6C,CAA1DA;MACAC,cAAcD,SAAdC;MACAC,cAAc,CAAdA;;MACA,OAAOA,cAAcN,WAArB,EAAkC;QAChCb,OAAOS,MAAMU,WAAN,CAAPnB;;QACA,IAAIA,KAAKL,YAALK,KAAsBgB,aAA1B,EAAyC;UACvChB,KAAKH,UAALG,GAAkBkB,WAAlBlB;UACAkB;QAJ8B;;QAMhCC;MAVqC;;MAYvCH;IA/BqB;EAnBR;;AAAA;;AAuDnB,SAAS1B,mBAAT,CAA6B5b,IAA7B,EAAmCmJ,KAAnC,EAA0CC,GAA1C,EAA+C;EAG7C,MAAMiI,QAAQrR,KAAKmJ,KAAL,CAAd;EACA,MAAMuU,cAAclI,4BAAWxV,IAAXwV,EAAiBrM,QAAQ,CAAzBqM,IAA8B,UAAlD;EACA,MAAMmI,eAAenI,4BAAWxV,IAAXwV,EAAiBrM,QAAQ,CAAzBqM,IAA8B,UAAnD;EACA,MAAMoH,SAAS,IAAI/Q,MAAJ,CAAW7L,IAAX,EAAiBmJ,QAAQ,CAAzB,EAA4BC,GAA5B,CAAf;EAEA,MAAMwU,iBAAkB,CAACvM,SAAS,CAATA,GAAc,CAAf,IAAoB,CAA5C;EACA,MAAMwM,gBAAiB,CAACxM,SAAS,CAATA,GAAc,CAAf,IAAoB,CAA3C;EACA,MAAM0L,QAAQ,EAAd;EACA,IAAId,YAAJ;EAAA,IACEC,WADF;EAAA,IAEE4B,kBAAkBJ,WAFpB;;EAKA,GAAG;IACDzB,eAAeW,OAAOhT,QAAPgT,CAAgBgB,cAAhBhB,CAAfX;IACAC,cAAcU,OAAOhT,QAAPgT,CAAgBiB,aAAhBjB,CAAdV;IACAa,MAAM3d,IAAN2d,CACE,IAAIlB,WAAJ,CAAgB,CAACiC,eAAD,EAAkB7B,YAAlB,EAAgCC,WAAhC,EAA6C,CAA7C,CAAhB,CADFa;IAGAe,mBAAmB,KAAK5B,WAAxB4B;EANF,SAOSA,kBAAkBH,YAP3B;;EAUA1B,eAAeW,OAAOhT,QAAPgT,CAAgBgB,cAAhBhB,CAAfX;EACAc,MAAM3d,IAAN2d,CAAW,IAAIlB,WAAJ,CAAgB,CAAC6B,cAAc,CAAf,EAAkBzB,YAAlB,EAAgC,EAAhC,EAAoC,CAApC,EAAuC,OAAvC,CAAhB,CAAXc;EAGAd,eAAeW,OAAOhT,QAAPgT,CAAgBgB,cAAhBhB,CAAfX;EACAc,MAAM3d,IAAN2d,CAAW,IAAIlB,WAAJ,CAAgB,CAAC8B,YAAD,EAAe1B,YAAf,EAA6B,EAA7B,EAAiC,CAAjC,CAAhB,CAAXc;;EAEA,IAAI1L,QAAQ,CAAZ,EAAe;IAEb4K,eAAeW,OAAOhT,QAAPgT,CAAgBgB,cAAhBhB,CAAfX;IACAc,MAAM3d,IAAN2d,CAAW,IAAIlB,WAAJ,CAAgB,CAACI,YAAD,EAAe,CAAf,CAAhB,CAAXc;EApC2C;;EAuC7C,OAAO,IAAID,YAAJ,CAAiBC,KAAjB,EAAwB,KAAxB,CAAP;AA/6DF;;AAk7DA,MAAMgB,sBAAsB,EAA5B;;AAEA,SAAStO,gBAAT,CAA0B8F,MAA1B,EAAkC;EAEhC,IAAIyI,QAAQD,oBAAoBxI,MAApB,CAAZ;;EACA,IAAIyI,KAAJ,EAAW;IACT,OAAOA,KAAP;EAJ8B;;EAMhC,IAAIjB,KAAJ;;EACA,QAAQxH,MAAR;IACE,KAAK,CAAL;MACEwH,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAFM,EAGN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,GAAb,CAHM,EAIN,CAAC,KAAD,EAAQ,CAAR,EAAW,EAAX,EAAe,GAAf,CAJM,CAARA;MAMA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CANM,EAON,CAAC,CAAD,EAAI,IAAJ,CAPM,CAARA;MASA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CANM,EAON,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,EAAoB,OAApB,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CARM,EASN,CAAC,CAAD,EAAI,IAAJ,CATM,CAARA;MAWA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CANM,CAARA;MAQA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CANM,EAON,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,EAAoB,OAApB,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CARM,CAARA;MAUA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,EAAX,EAAe,IAAf,CADM,EAEN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,CAAX,EAAc,GAAd,CAFM,EAGN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAHM,EAIN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAJM,EAKN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CALM,EAMN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CANM,EAON,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CARM,EASN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CATM,EAUN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAVM,EAWN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAXM,EAYN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,GAAd,CAZM,EAaN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,EAAX,EAAe,IAAf,EAAqB,OAArB,CAbM,EAcN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAdM,CAARA;MAgBA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,CAAX,EAAc,GAAd,CADM,EAEN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAFM,EAGN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAHM,EAIN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CAJM,EAKN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CALM,EAMN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAVM,EAWN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAXM,EAYN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAZM,EAaN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,GAAd,CAbM,EAcN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,EAAX,EAAe,IAAf,EAAqB,OAArB,CAdM,EAeN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAfM,CAARA;MAiBA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,KAAX,CAFM,EAGN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,KAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAbM,EAcN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAdM,EAeN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAfM,EAgBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAhBM,EAiBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAjBM,EAkBN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,CAlBM,EAmBN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,KAAb,EAAoB,OAApB,CAnBM,EAoBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,KAAd,CApBM,EAqBN,CAAC,CAAD,EAAI,GAAJ,CArBM,CAARA;MAuBA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,KAAZ,CAFM,EAGN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,KAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CANM,EAON,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAVM,EAWN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAbM,EAcN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAdM,EAeN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAfM,EAgBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAhBM,EAiBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAjBM,EAkBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAlBM,EAmBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAnBM,EAoBN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,KAAb,EAAoB,OAApB,CApBM,EAqBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,KAAd,CArBM,EAsBN,CAAC,CAAD,EAAI,GAAJ,CAtBM,CAARA;MAwBA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAFM,EAGN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAZM,EAaN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAbM,EAcN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAdM,EAeN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAfM,EAgBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAhBM,EAiBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAjBM,EAkBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAlBM,EAmBN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,EAAmB,OAAnB,CAnBM,EAoBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CApBM,EAqBN,CAAC,CAAD,EAAI,GAAJ,CArBM,CAARA;MAuBA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CANM,EAON,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,CAbM,CAARA;MAeA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CANM,EAON,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CAbM,CAARA;MAeA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CANM,EAON,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,CAbM,CAARA;MAeA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,CAARA;MAOA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAFM,EAGN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAVM,EAWN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAXM,EAYN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,EAAmB,OAAnB,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CAbM,CAARA;MAeA;;IACF;MACE,MAAM,IAAIlU,UAAJ,CAAgB,oBAAmB0M,MAAO,iBAA1C,CAAN;EAtPJ;;EAyPA,KAAK,IAAIzW,IAAI,CAAR,EAAWqH,KAAK4W,MAAMxgB,MAA3B,EAAmCuC,IAAIqH,EAAvC,EAA2CrH,GAA3C,EAAgD;IAC9Cie,MAAMje,CAAN,IAAW,IAAI+c,WAAJ,CAAgBkB,MAAMje,CAAN,CAAhB,CAAXie;EAjQ8B;;EAmQhCiB,QAAQ,IAAIlB,YAAJ,CAAiBC,KAAjB,EAAwB,IAAxB,CAARiB;EACAD,oBAAoBxI,MAApB,IAA8ByI,KAA9BD;EACA,OAAOC,KAAP;AAzrEF;;AA4rEA,MAAMnS,MAAN,CAAa;EACXnO,YAAYsC,IAAZ,EAAkBmJ,KAAlB,EAAyBC,GAAzB,EAA8B;IAC5B,KAAKpJ,IAAL,GAAYA,IAAZ;IACA,KAAKmJ,KAAL,GAAaA,KAAb;IACA,KAAKC,GAAL,GAAWA,GAAX;IACA,KAAK0H,QAAL,GAAgB3H,KAAhB;IACA,KAAKqE,KAAL,GAAa,CAAC,CAAd;IACA,KAAKyQ,WAAL,GAAmB,CAAnB;EAPS;;EAUXnU,UAAU;IACR,IAAI,KAAK0D,KAAL,GAAa,CAAjB,EAAoB;MAClB,IAAI,KAAKsD,QAAL,IAAiB,KAAK1H,GAA1B,EAA+B;QAC7B,MAAM,IAAIP,UAAJ,CAAe,+BAAf,CAAN;MAFgB;;MAIlB,KAAKoV,WAAL,GAAmB,KAAKje,IAAL,CAAU,KAAK8Q,QAAL,EAAV,CAAnB;MACA,KAAKtD,KAAL,GAAa,CAAb;IANM;;IAQR,MAAM3D,MAAO,KAAKoU,WAAL,IAAoB,KAAKzQ,KAAzB,GAAkC,CAA/C;IACA,KAAKA,KAAL;IACA,OAAO3D,GAAP;EApBS;;EAuBXD,SAASsU,OAAT,EAAkB;IAChB,IAAIC,SAAS,CAAb;IAAA,IACErf,CADF;;IAEA,KAAKA,IAAIof,UAAU,CAAnB,EAAsBpf,KAAK,CAA3B,EAA8BA,GAA9B,EAAmC;MACjCqf,UAAU,KAAKrU,OAAL,MAAkBhL,CAA5Bqf;IAJc;;IAMhB,OAAOA,MAAP;EA7BS;;EAgCX1N,YAAY;IACV,KAAKjD,KAAL,GAAa,CAAC,CAAd;EAjCS;;EAoCX4Q,OAAO;IACL,IAAI,KAAKtN,QAAL,IAAiB,KAAK1H,GAA1B,EAA+B;MAC7B,OAAO,CAAC,CAAR;IAFG;;IAIL,OAAO,KAAKpJ,IAAL,CAAU,KAAK8Q,QAAL,EAAV,CAAP;EAxCS;;AAAA;;AA4Cb,SAASuN,qBAAT,CAA+BC,KAA/B,EAAsCrI,UAAtC,EAAkDiF,YAAlD,EAAgE;EAG9D,IAAIqD,eAAe,CAAnB;;EACA,KAAK,IAAIzf,IAAI,CAAR,EAAWqH,KAAK8P,WAAW1Z,MAAhC,EAAwCuC,IAAIqH,EAA5C,EAAgDrH,GAAhD,EAAqD;IACnD,MAAMkf,QAAQ9C,aAAajF,WAAWnX,CAAX,CAAb,CAAd;;IACA,IAAIkf,KAAJ,EAAW;MACT,IAAIM,UAAUC,YAAd,EAA4B;QAC1B,OAAOP,KAAP;MAFO;;MAITO;IANiD;EAJS;;EAa9D,MAAM,IAAI1V,UAAJ,CAAe,iCAAf,CAAN;AArvEF;;AAwvEA,SAASyS,0BAAT,CACEvD,UADF,EAEE9B,UAFF,EAGEiF,YAHF,EAIEsD,eAJF,EAKE5B,MALF,EAME;EAIA,MAAM6B,QAAQ,EAAd;;EACA,KAAK,IAAI3f,IAAI,CAAb,EAAgBA,KAAK,EAArB,EAAyBA,GAAzB,EAA8B;IAC5B,MAAMmL,aAAa2S,OAAOhT,QAAPgT,CAAgB,CAAhBA,CAAnB;IACA6B,MAAMrf,IAANqf,CAAW,IAAI5C,WAAJ,CAAgB,CAAC/c,CAAD,EAAImL,UAAJ,EAAgB,CAAhB,EAAmB,CAAnB,CAAhB,CAAXwU;EAPF;;EAUA,MAAMC,gBAAgB,IAAI5B,YAAJ,CAAiB2B,KAAjB,EAAwB,KAAxB,CAAtB;EAIAA,MAAMliB,MAANkiB,GAAe,CAAfA;;EACA,KAAK,IAAI3f,IAAI,CAAb,EAAgBA,IAAI0f,eAApB,GAAuC;IACrC,MAAMvU,aAAayU,cAAcxY,MAAdwY,CAAqB9B,MAArB8B,CAAnB;;IACA,IAAIzU,cAAc,EAAlB,EAAsB;MACpB,IAAI0U,cAAJ,EAAoBC,eAApB,EAAqCnZ,CAArC;;MACA,QAAQwE,UAAR;QACE,KAAK,EAAL;UACE,IAAInL,MAAM,CAAV,EAAa;YACX,MAAM,IAAI+J,UAAJ,CAAe,sCAAf,CAAN;UAFJ;;UAIE+V,kBAAkBhC,OAAOhT,QAAPgT,CAAgB,CAAhBA,IAAqB,CAAvCgC;UACAD,iBAAiBF,MAAM3f,IAAI,CAAV,EAAamd,YAA9B0C;UACA;;QACF,KAAK,EAAL;UACEC,kBAAkBhC,OAAOhT,QAAPgT,CAAgB,CAAhBA,IAAqB,CAAvCgC;UACAD,iBAAiB,CAAjBA;UACA;;QACF,KAAK,EAAL;UACEC,kBAAkBhC,OAAOhT,QAAPgT,CAAgB,CAAhBA,IAAqB,EAAvCgC;UACAD,iBAAiB,CAAjBA;UACA;;QACF;UACE,MAAM,IAAI9V,UAAJ,CAAe,wCAAf,CAAN;MAjBJ;;MAmBA,KAAKpD,IAAI,CAAT,EAAYA,IAAImZ,eAAhB,EAAiCnZ,GAAjC,EAAsC;QACpCgZ,MAAMrf,IAANqf,CAAW,IAAI5C,WAAJ,CAAgB,CAAC/c,CAAD,EAAI6f,cAAJ,EAAoB,CAApB,EAAuB,CAAvB,CAAhB,CAAXF;QACA3f;MAvBkB;IAAtB,OAyBO;MACL2f,MAAMrf,IAANqf,CAAW,IAAI5C,WAAJ,CAAgB,CAAC/c,CAAD,EAAImL,UAAJ,EAAgB,CAAhB,EAAmB,CAAnB,CAAhB,CAAXwU;MACA3f;IA7BmC;EAfvC;;EA+CA8d,OAAOnM,SAAPmM;EACA,MAAMlK,gBAAgB,IAAIoK,YAAJ,CAAiB2B,KAAjB,EAAwB,KAAxB,CAAtB;EAIA,IAAII,cAAc,CAAlB;EAAA,IACEtM,WADF;EAAA,IAEEe,WAFF;EAAA,IAGEnB,WAHF;;EAKA,QAAQ4F,WAAWG,SAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;MACE3F,cAAc9C,iBAAiBsI,WAAWG,SAAXH,GAAuB,CAAxC,CAAdxF;MACA;;IACF,KAAK,CAAL;MACEA,cAAc8L,sBACZQ,WADY,EAEZ5I,UAFY,EAGZiF,YAHY,CAAd3I;MAKAsM;MACA;;IACF;MACE,MAAM,IAAIhW,UAAJ,CAAe,6BAAf,CAAN;EAdJ;;EAiBA,QAAQkP,WAAWI,SAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;IACA,KAAK,CAAL;MACE7E,cAAc7D,iBAAiBsI,WAAWI,SAAXJ,GAAuB,CAAxC,CAAdzE;MACA;;IACF,KAAK,CAAL;MACEA,cAAc+K,sBACZQ,WADY,EAEZ5I,UAFY,EAGZiF,YAHY,CAAd5H;MAKAuL;MACA;;IACF;MACE,MAAM,IAAIhW,UAAJ,CAAe,6BAAf,CAAN;EAfJ;;EAkBA,QAAQkP,WAAWK,SAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;IACA,KAAK,CAAL;MACEjG,cAAc1C,iBAAiBsI,WAAWK,SAAXL,GAAuB,EAAxC,CAAd5F;MACA;;IACF,KAAK,CAAL;MACEA,cAAckM,sBACZQ,WADY,EAEZ5I,UAFY,EAGZiF,YAHY,CAAd/I;MAKA0M;MACA;;IACF;MACE,MAAM,IAAIhW,UAAJ,CAAe,6BAAf,CAAN;EAfJ;;EAkBA,IAAIkP,WAAWpJ,UAAf,EAA2B;IAEzB,MAAM,IAAI9F,UAAJ,CAAe,0CAAf,CAAN;EAhHF;;EAmHA,OAAO;IACL6J,aADK;IAELH,WAFK;IAGLe,WAHK;IAILnB;EAJK,CAAP;AAj3EF;;AAy3EA,SAAS8I,gCAAT,CACE5D,UADF,EAEEpB,UAFF,EAGEiF,YAHF,EAIE;EAGA,IAAI2D,cAAc,CAAlB;EAAA,IACElP,gBADF;EAAA,IAEEK,eAFF;;EAGA,QAAQqH,WAAWE,iBAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;MACE5H,mBAAmBF,iBAAiB4H,WAAWE,iBAAXF,GAA+B,CAAhD,CAAnB1H;MACA;;IACF,KAAK,CAAL;MACEA,mBAAmB0O,sBACjBQ,WADiB,EAEjB5I,UAFiB,EAGjBiF,YAHiB,CAAnBvL;MAKAkP;MACA;;IACF;MACE,MAAM,IAAIhW,UAAJ,CAAe,6BAAf,CAAN;EAdJ;;EAiBA,QAAQwO,WAAWG,iBAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;MACExH,kBAAkBP,iBAAiB4H,WAAWG,iBAAXH,GAA+B,CAAhD,CAAlBrH;MACA;;IACF,KAAK,CAAL;MACEA,kBAAkBqO,sBAChBQ,WADgB,EAEhB5I,UAFgB,EAGhBiF,YAHgB,CAAlBlL;MAKA6O;MACA;;IACF;MACE,MAAM,IAAIhW,UAAJ,CAAe,6BAAf,CAAN;EAdJ;;EAiBA,IAAI2H,eAAJ,EAAqBsO,uBAArB;;EACA,IAAIzH,WAAWI,kBAAf,EAAmC;IACjCjH,kBAAkB6N,sBAChBQ,WADgB,EAEhB5I,UAFgB,EAGhBiF,YAHgB,CAAlB1K;IAKAqO;EANF,OAOO;IACLrO,kBAAkBf,iBAAiB,CAAjB,CAAlBe;EAjDF;;EAoDA,IAAI6G,WAAWK,4BAAf,EAA6C;IAC3CoH,0BAA0BT,sBACxBQ,WADwB,EAExB5I,UAFwB,EAGxBiF,YAHwB,CAA1B4D;EADF,OAMO;IACLA,0BAA0BrP,iBAAiB,CAAjB,CAA1BqP;EA3DF;;EA8DA,OAAO;IACLnP,gBADK;IAELK,eAFK;IAGLQ,eAHK;IAILsO;EAJK,CAAP;AA37EF;;AAm8EA,SAASnO,sBAAT,CAAgCiM,MAAhC,EAAwChS,KAAxC,EAA+CC,MAA/C,EAAuD;EACrD,MAAME,SAAS,EAAf;;EACA,KAAK,IAAIV,IAAI,CAAb,EAAgBA,IAAIQ,MAApB,EAA4BR,GAA5B,EAAiC;IAC/B,MAAMa,MAAM,IAAI1L,UAAJ,CAAeoL,KAAf,CAAZ;IACAG,OAAO3L,IAAP2L,CAAYG,GAAZH;;IACA,KAAK,IAAIX,IAAI,CAAb,EAAgBA,IAAIQ,KAApB,EAA2BR,GAA3B,EAAgC;MAC9Bc,IAAId,CAAJ,IAASwS,OAAO9S,OAAP8S,EAAT1R;IAJ6B;;IAM/B0R,OAAOnM,SAAPmM;EARmD;;EAUrD,OAAO7R,MAAP;AA78EF;;AAg9EA,SAASe,eAAT,CAAyBF,KAAzB,EAAgChB,KAAhC,EAAuCC,MAAvC,EAA+CkU,UAA/C,EAA2D;EAGzD,MAAMC,SAAS;IACbluB,GAAG,CAAC,CADS;IAEbmuB,SAASrU,KAFI;IAGbsU,MAAMrU,MAHO;IAIbsU,UAAU,IAJG;IAKbC,YAAYL;EALC,CAAf;EAOA,MAAMhZ,UAAU,IAAIsZ,sBAAJ,CAAoBzT,KAApB,EAA2BoT,MAA3B,CAAhB;EACA,MAAMjU,SAAS,EAAf;EACA,IAAIkT,WAAJ;EAAA,IACEqB,MAAM,KADR;;EAGA,KAAK,IAAIjV,IAAI,CAAb,EAAgBA,IAAIQ,MAApB,EAA4BR,GAA5B,EAAiC;IAC/B,MAAMa,MAAM,IAAI1L,UAAJ,CAAeoL,KAAf,CAAZ;IACAG,OAAO3L,IAAP2L,CAAYG,GAAZH;IACA,IAAIyC,QAAQ,CAAC,CAAb;;IACA,KAAK,IAAIpD,IAAI,CAAb,EAAgBA,IAAIQ,KAApB,EAA2BR,GAA3B,EAAgC;MAC9B,IAAIoD,QAAQ,CAAZ,EAAe;QACbyQ,cAAclY,QAAQwZ,YAARxZ,EAAdkY;;QACA,IAAIA,gBAAgB,CAAC,CAArB,EAAwB;UAEtBA,cAAc,CAAdA;UACAqB,MAAM,IAANA;QALW;;QAOb9R,QAAQ,CAARA;MAR4B;;MAU9BtC,IAAId,CAAJ,IAAU6T,eAAezQ,KAAfyQ,GAAwB,CAAlC/S;MACAsC;IAf6B;EAfwB;;EAkCzD,IAAIuR,cAAc,CAACO,GAAnB,EAAwB;IAEtB,MAAME,kBAAkB,CAAxB;;IACA,KAAK,IAAI1gB,IAAI,CAAb,EAAgBA,IAAI0gB,eAApB,EAAqC1gB,GAArC,EAA0C;MACxC,IAAIiH,QAAQwZ,YAARxZ,OAA2B,CAAC,CAAhC,EAAmC;QACjC;MAFsC;IAHpB;EAlCiC;;EA4CzD,OAAOgF,MAAP;AA5/EF;;AA+/EA,MAAM0U,UAAN,CAAiB;EACfC,YAAYjG,MAAZ,EAAoB;IAClB,OAAOD,iBAAiBC,MAAjB,CAAP;EAFa;;EAKfkG,MAAM3f,IAAN,EAAY;IAIV,MAAM;MAAE+Z,OAAF;MAAWnP,KAAX;MAAkBC;IAAlB,IAA6B8O,WAAW3Z,IAAX,CAAnC;IACA,KAAK4K,KAAL,GAAaA,KAAb;IACA,KAAKC,MAAL,GAAcA,MAAd;IACA,OAAOkP,OAAP;EAZa;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACh/EjB;;AAUA;;AACA;;AAEA,SAAS6F,qBAAT,CAA+BC,WAA/B,EAA4C;EAC1C,IAAIC,MAAJ;EACA,OAAO,YAAY;IACjB,IAAID,WAAJ,EAAiB;MACfC,SAAS7iB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAT6iB;MACAD,YAAYC,MAAZ;MACAD,cAAc,IAAdA;IAJe;;IAMjB,OAAOC,MAAP;EANF;AA9BF;;AAwCA,SAASC,0BAAT,CAAoCF,WAApC,EAAiD;EAC/C,IAAIC,MAAJ;EACA,OAAO,YAAY;IACjB,IAAID,WAAJ,EAAiB;MACf,IAAIlgB,MAAMkgB,aAAV;MACAA,cAAc,IAAdA;MACAC,SAAS7iB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAT6iB;;MACA,KAAK,IAAIhhB,IAAI,CAAR,EAAWqH,KAAKxG,IAAIpD,MAAzB,EAAiCuC,IAAIqH,EAArC,EAAyCrH,KAAK,CAA9C,EAAiD;QAC/CghB,OAAOngB,IAAIb,CAAJ,CAAP,IAAiBa,IAAIb,IAAI,CAAR,CAAjBghB;MALa;;MAOfngB,MAAM,IAANA;IARe;;IAUjB,OAAOmgB,MAAP;EAVF;AA1CF;;AAwDA,MAAME,oBAAN,SAAmC1iB,mBAAnC,CAAiD;EAC/CI,YAAYuiB,KAAZ,EAAmB7W,GAAnB,EAAwB;IACtB,MAAO,iBAAgB6W,KAAM,KAAI7W,GAAI,GAArC,EAAyC,sBAAzC;IACA,KAAK6W,KAAL,GAAaA,KAAb;IACA,KAAK7W,GAAL,GAAWA,GAAX;EAJ6C;;AAAA;;;;AAQjD,MAAM8W,kBAAN,SAAiC5iB,mBAAjC,CAA+C;EAC7CI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,oBAAX;EAF2C;;AAAA;;;;AAM/C,MAAM8kB,kBAAN,SAAiC7iB,mBAAjC,CAA+C;EAC7CI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,oBAAX;EAF2C;;AAAA;;;;AAM/C,MAAM+kB,kBAAN,SAAiC9iB,mBAAjC,CAA+C;EAC7CI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,oBAAX;EAF2C;;AAAA;;;;AAM/C,MAAMglB,QAAN,CAAe;EACb3iB,YAAY4iB,OAAZ,EAAqB;IACnB,KAAKC,QAAL,GAAgBD,OAAhB;IAEA,KAAKE,YAAL,GAAoB,IAAIC,GAAJ,EAApB;IACA,KAAKC,UAAL,GAAkB,IAAID,GAAJ,EAAlB;EALW;;EAQbE,QAAQ;IACN,MAAMC,cAAc3jB,OAAOwD,MAAPxD,CAAc,IAAdA,CAApB;IAAA,MACE4jB,YAAY5jB,OAAOwD,MAAPxD,CAAc,IAAdA,CADd;;IAEA,WAAW2L,IAAX,IAAmB,KAAK4X,YAAxB,EAAsC;MACpCI,YAAYhY,IAAZ,IAAoB,IAApBgY;IAJI;;IAMN,WAAWhY,IAAX,IAAmB,KAAK8X,UAAxB,EAAoC;MAClCG,UAAUjY,IAAV,IAAkB,IAAlBiY;IAPI;;IASN,KAAKN,QAAL,CAAcO,IAAd,CAAmB,UAAnB,EAA+B;MAAEF,WAAF;MAAeC;IAAf,CAA/B;EAjBW;;EAoBbE,cAAcnY,IAAd,EAAoB;IAOlB,IAAI,KAAK4X,YAAL,CAAkBQ,GAAlB,CAAsBpY,IAAtB,CAAJ,EAAiC;MAC/B;IARgB;;IAUlB,KAAK4X,YAAL,CAAkBS,GAAlB,CAAsBrY,IAAtB;;IACA,KAAK+X,KAAL;EA/BW;;EAkCbO,YAAYtY,IAAZ,EAAkB;IAOhB,IAAI,KAAK8X,UAAL,CAAgBM,GAAhB,CAAoBpY,IAApB,CAAJ,EAA+B;MAC7B;IARc;;IAUhB,KAAK8X,UAAL,CAAgBO,GAAhB,CAAoBrY,IAApB;;IACA,KAAK+X,KAAL;EA7CW;;AAAA;;;;AAqEf,SAASQ,sBAAT,CAAgC;EAC9BC,IAD8B;EAE9B1gB,GAF8B;EAG9B2gB,WAAW,KAHmB;EAI9BC,gBAAgB;AAJc,CAAhC,EAKG;EACD,IAAIC,MAAJ;EACA,MAAMC,UAAU,IAAIC,kBAAJ,EAAhB;;EAEA,OAAOL,gBAAgBM,gBAAhBN,IAAwB,EAAEA,KAAKO,KAALP,IAAcI,QAAQR,GAARQ,CAAYJ,KAAKO,KAAjBH,CAAhB,CAA/B,EAAyE;IACvE,IAAIJ,KAAKO,KAAT,EAAgB;MACdH,QAAQI,GAARJ,CAAYJ,KAAKO,KAAjBH;IAFqE;;IAIvE,MAAMxkB,QAAQqkB,WAAWD,KAAKC,QAALD,CAAc1gB,GAAd0gB,CAAX,GAAgCA,KAAKnZ,GAALmZ,CAAS1gB,GAAT0gB,CAA9C;;IACA,IAAIpkB,UAAUwB,SAAd,EAAyB;MACvB,IAAI8iB,aAAJ,EAAmB;QACjB,OAAOtkB,KAAP;MAFqB;;MAIvB,IAAI,CAACukB,MAAL,EAAa;QACXA,SAAS,EAATA;MALqB;;MAOvBA,OAAOniB,IAAPmiB,CAAYvkB,KAAZukB;IAZqE;;IAcvEH,OAAOA,KAAKnZ,GAALmZ,CAAS,QAATA,CAAPA;EAlBD;;EAoBD,OAAOG,MAAP;AAhLF;;AAoLA,MAAMM,mBAAmB,CACvB,EADuB,EACnB,GADmB,EACd,IADc,EACR,KADQ,EACD,IADC,EACK,GADL,EACU,IADV,EACgB,KADhB,EACuB,MADvB,EAC+B,IAD/B,EAEvB,EAFuB,EAEnB,GAFmB,EAEd,IAFc,EAER,KAFQ,EAED,IAFC,EAEK,GAFL,EAEU,IAFV,EAEgB,KAFhB,EAEuB,MAFvB,EAE+B,IAF/B,EAGvB,EAHuB,EAGnB,GAHmB,EAGd,IAHc,EAGR,KAHQ,EAGD,IAHC,EAGK,GAHL,EAGU,IAHV,EAGgB,KAHhB,EAGuB,MAHvB,EAG+B,IAH/B,CAAzB;;AAaA,SAASC,eAAT,CAAyBvM,MAAzB,EAAiCwM,YAAY,KAA7C,EAAoD;EAClDpmB,kBACEV,OAAOC,SAAPD,CAAiBsa,MAAjBta,KAA4Bsa,SAAS,CADvC5Z,EAEE,0CAFFA;EAIA,MAAMqmB,WAAW,EAAjB;EACA,IAAIjiB,GAAJ;;EAEA,OAAOwV,UAAU,IAAjB,EAAuB;IACrBA,UAAU,IAAVA;IACAyM,SAAS5iB,IAAT4iB,CAAc,GAAdA;EAVgD;;EAalDjiB,MAAOwV,SAAS,GAATA,GAAgB,CAAvBxV;EACAwV,UAAU,GAAVA;EACAyM,SAAS5iB,IAAT4iB,CAAcH,iBAAiB9hB,GAAjB,CAAdiiB;EAEAjiB,MAAOwV,SAAS,EAATA,GAAe,CAAtBxV;EACAwV,UAAU,EAAVA;EACAyM,SAAS5iB,IAAT4iB,CAAcH,iBAAiB,KAAK9hB,GAAtB,CAAdiiB;EAEAA,SAAS5iB,IAAT4iB,CAAcH,iBAAiB,KAAKtM,MAAtB,CAAdyM;EAEA,MAAMC,WAAWD,SAAS3iB,IAAT2iB,CAAc,EAAdA,CAAjB;EACA,OAAOD,YAAYE,SAASC,WAATD,EAAZ,GAAqCA,QAA5C;AAzNF;;AA+NA,SAAS3S,IAAT,CAAclF,CAAd,EAAiB;EACf,IAAIA,KAAK,CAAT,EAAY;IACV,OAAO,CAAP;EAFa;;EAIf,OAAOpL,KAAKmjB,IAALnjB,CAAUA,KAAKsQ,IAALtQ,CAAUoL,CAAVpL,CAAVA,CAAP;AAnOF;;AAsOA,SAAS8Y,QAAT,CAAkB9X,IAAlB,EAAwBya,MAAxB,EAAgC;EAC9B,OAAQza,KAAKya,MAAL,KAAgB,EAAhBza,IAAuB,EAA/B;AAvOF;;AA0OA,SAASkW,UAAT,CAAoBlW,IAApB,EAA0Bya,MAA1B,EAAkC;EAChC,OAAQza,KAAKya,MAAL,KAAgB,CAAhBza,GAAqBA,KAAKya,SAAS,CAAd,CAA7B;AA3OF;;AA8OA,SAASjF,UAAT,CAAoBxV,IAApB,EAA0Bya,MAA1B,EAAkC;EAChC,OACG,CAACza,KAAKya,MAAL,KAAgB,EAAhBza,GACCA,KAAKya,SAAS,CAAd,KAAoB,EADrBza,GAECA,KAAKya,SAAS,CAAd,KAAoB,CAFrBza,GAGAA,KAAKya,SAAS,CAAd,CAHD,MAID,CALF;AA/OF;;AAyPA,SAAS2H,YAAT,CAAsBC,EAAtB,EAA0B;EACxB,OAAOA,OAAO,IAAPA,IAAeA,OAAO,IAAtBA,IAA8BA,OAAO,IAArCA,IAA6CA,OAAO,IAA3D;AA1PF;;AAsQA,SAASC,YAAT,CAAsBC,IAAtB,EAA4B;EAC1B,MAAMC,kBAAkB,gBAAxB;EACA,OAAOD,KAAKE,KAALF,CAAW,GAAXA,EAAgB/hB,GAAhB+hB,CAAoBG,aAAa;IACtC,MAAMngB,IAAImgB,UAAUpmB,KAAVomB,CAAgBF,eAAhBE,CAAV;;IACA,IAAIngB,CAAJ,EAAO;MACL,OAAO;QAAE9E,MAAM8E,EAAE,CAAF,CAAR;QAAcxC,KAAK4iB,SAASpgB,EAAE,CAAF,CAAT,EAAe,EAAf;MAAnB,CAAP;IAHoC;;IAKtC,OAAO;MAAE9E,MAAMilB,SAAR;MAAmB3iB,KAAK;IAAxB,CAAP;EALK,EAAP;AAxQF;;AAiRA,SAAS6iB,aAAT,CAAuBrjB,GAAvB,EAA4B;EAC1B,MAAMwB,SAAS,EAAf;EACA,IAAIoI,QAAQ,CAAZ;;EACA,KAAK,IAAIrK,IAAI,CAAR,EAAWqH,KAAK5G,IAAIhD,MAAzB,EAAiCuC,IAAIqH,EAArC,EAAyCrH,GAAzC,EAA8C;IAC5C,MAAM6H,OAAOpH,IAAIE,UAAJF,CAAeT,CAAfS,CAAb;;IAEA,IACEoH,OAAO,IAAPA,IACAA,OAAO,IADPA,IAEAA,SAAS,IAFTA,IAGAA,SAAS,IAHTA,IAIAA,SAAS,IAJTA,IAKAA,SAAS,IALTA,IAMAA,SAAS,IANTA,IAOAA,SAAS,IAPTA,IAQAA,SAAS,IARTA,IASAA,SAAS,IATTA,IAUAA,SAAS,IAVTA,IAWAA,SAAS,IAXTA,IAYAA,SAAS,IAbX,EAcE;MACA,IAAIwC,QAAQrK,CAAZ,EAAe;QACbiC,OAAO3B,IAAP2B,CAAYxB,IAAIsjB,SAAJtjB,CAAc4J,KAAd5J,EAAqBT,CAArBS,CAAZwB;MAFF;;MAIAA,OAAO3B,IAAP2B,CAAa,IAAG4F,KAAKlF,QAALkF,CAAc,EAAdA,CAAJ,EAAZ5F;MACAoI,QAAQrK,IAAI,CAAZqK;IAtB0C;EAHpB;;EA6B1B,IAAIpI,OAAOxE,MAAPwE,KAAkB,CAAtB,EAAyB;IACvB,OAAOxB,GAAP;EA9BwB;;EAiC1B,IAAI4J,QAAQ5J,IAAIhD,MAAhB,EAAwB;IACtBwE,OAAO3B,IAAP2B,CAAYxB,IAAIsjB,SAAJtjB,CAAc4J,KAAd5J,EAAqBA,IAAIhD,MAAzBgD,CAAZwB;EAlCwB;;EAqC1B,OAAOA,OAAO1B,IAAP0B,CAAY,EAAZA,CAAP;AAtTF;;AAyTA,SAAS+hB,UAAT,CAAoBC,KAApB,EAA2BC,IAA3B,EAAiCC,IAAjC,EAAuCC,OAAvC,EAAgD;EAC9C,IAAI,CAACH,KAAL,EAAY;IACV;EAF4C;;EAK9C,IAAII,SAAS,IAAb;;EACA,IAAIJ,iBAAiBK,eAArB,EAA0B;IACxB,IAAIF,QAAQlC,GAARkC,CAAYH,KAAZG,CAAJ,EAAwB;MAEtB;IAHsB;;IAKxBC,SAASJ,KAATI;IACAD,QAAQtB,GAARsB,CAAYC,MAAZD;IACAH,QAAQC,KAAKK,KAALL,CAAWD,KAAXC,CAARD;EAb4C;;EAe9C,IAAIxhB,MAAM+hB,OAAN/hB,CAAcwhB,KAAdxhB,CAAJ,EAA0B;IACxB,WAAWgiB,OAAX,IAAsBR,KAAtB,EAA6B;MAC3BD,WAAWS,OAAX,EAAoBP,IAApB,EAA0BC,IAA1B,EAAgCC,OAAhC;IAFsB;EAA1B,OAIO,IAAIH,iBAAiBrB,gBAArB,EAA2B;IAChC,IAAI8B,wBAAOT,MAAM9a,GAAN8a,CAAU,GAAVA,CAAPS,EAAuB,YAAvBA,CAAJ,EAA0C;MACxC,MAAMC,KAAKV,MAAM9a,GAAN8a,CAAU,IAAVA,CAAX;MACA,IAAIllB,IAAJ;;MACA,IAAI4lB,cAAcC,uBAAlB,EAA8B;QAC5B7lB,OAAO4lB,GAAGE,SAAHF,EAAP5lB;MADF,OAEO,IAAI,OAAO4lB,EAAP,KAAc,QAAlB,EAA4B;QACjC5lB,OAAO4lB,EAAP5lB;MANsC;;MAQxCA,OAAOA,QAAQgI,6BAAkBhI,IAAlBgI,EAAwBS,OAAxBT,CAAgC,SAAhCA,EAA2C,EAA3CA,CAAfhI;;MACA,IAAIA,IAAJ,EAAU;QACRolB,KAAK7jB,IAAL6jB,CAAUplB,IAAVolB;MAVsC;IADV;;IAchCH,WAAWC,MAAMa,MAANb,CAAa,MAAbA,CAAX,EAAiCC,IAAjC,EAAuCC,IAAvC,EAA6CC,OAA7C;EAjC4C;;EAoC9C,IAAIC,MAAJ,EAAY;IACVD,QAAQW,MAARX,CAAeC,MAAfD;EArC4C;AAzThD;;AAkWA,SAASY,cAAT,CAAwBd,IAAxB,EAA8B5B,IAA9B,EAAoC2C,SAApC,EAA+C;EAC7C,MAAMC,UAAU/mB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAhB;EACA,MAAMgnB,yBAAyB9C,uBAAuB;IACpDC,IADoD;IAEpD1gB,KAAK,IAF+C;IAGpD4gB,eAAe;EAHqC,CAAvB,CAA/B;;EAKA,IAAI2C,sBAAJ,EAA4B;IAM1B,KAAK,IAAInlB,IAAImlB,uBAAuB1nB,MAAvB0nB,GAAgC,CAA7C,EAAgDnlB,KAAK,CAArD,EAAwDA,GAAxD,EAA6D;MAC3D,MAAMolB,oBAAoBD,uBAAuBnlB,CAAvB,CAA1B;;MACA,IAAI,EAAEolB,6BAA6BxC,gBAA/B,CAAJ,EAA0C;QACxC;MAHyD;;MAK3D,WAAWhhB,GAAX,IAAkBwjB,kBAAkBC,OAAlBD,EAAlB,EAA+C;QAC7C,MAAME,SAASL,UAAUrjB,GAAV,CAAf;;QACA,IAAI,CAAC0jB,MAAL,EAAa;UACX;QAH2C;;QAK7C,MAAMC,aAAaH,kBAAkBN,MAAlBM,CAAyBxjB,GAAzBwjB,CAAnB;QACA,MAAMhB,UAAU,IAAIzB,kBAAJ,EAAhB;QACA,MAAMwB,OAAO,EAAb;;QACAH,WAAWuB,UAAX,EAAuBrB,IAAvB,EAA6BC,IAA7B,EAAmCC,OAAnC;;QACA,IAAID,KAAK1mB,MAAL0mB,GAAc,CAAlB,EAAqB;UACnBe,QAAQI,MAAR,IAAkBnB,IAAlBe;QAV2C;MALY;IANnC;EAPiB;;EAkC7C,IAAI5C,KAAKJ,GAALI,CAAS,GAATA,CAAJ,EAAmB;IACjB,MAAMiD,aAAajD,KAAKnZ,GAALmZ,CAAS,GAATA,CAAnB;IACA,MAAM8B,UAAU,IAAIzB,kBAAJ,EAAhB;IACA,MAAMwB,OAAO,EAAb;;IACAH,WAAWuB,UAAX,EAAuBrB,IAAvB,EAA6BC,IAA7B,EAAmCC,OAAnC;;IACA,IAAID,KAAK1mB,MAAL0mB,GAAc,CAAlB,EAAqB;MACnBe,QAAQM,MAARN,GAAiBf,IAAjBe;IANe;EAlC0B;;EA2C7C,OAAO3jB,sBAAW2jB,OAAX3jB,IAAsB,CAAtBA,GAA0B2jB,OAA1B3jB,GAAoC,IAA3C;AA7YF;;AAgZA,MAAMkkB,cAAc;EACV,MAAM,MADI;EAEV,MAAM,MAFI;EAGV,MAAM,OAHI;EAIV,MAAM,QAJI;EAKV,MAAM;AALI,CAApB;;AAQA,SAASC,iBAAT,CAA2BjlB,GAA3B,EAAgC;EAC9B,MAAMwB,SAAS,EAAf;EACA,IAAIoI,QAAQ,CAAZ;;EACA,KAAK,IAAIrK,IAAI,CAAR,EAAWqH,KAAK5G,IAAIhD,MAAzB,EAAiCuC,IAAIqH,EAArC,EAAyCrH,GAAzC,EAA8C;IAC5C,MAAM6H,OAAOpH,IAAIklB,WAAJllB,CAAgBT,CAAhBS,CAAb;;IACA,IAAI,QAAQoH,IAAR,IAAgBA,QAAQ,IAA5B,EAAkC;MAEhC,MAAM+d,SAASH,YAAY5d,IAAZ,CAAf;;MACA,IAAI+d,MAAJ,EAAY;QACV,IAAIvb,QAAQrK,CAAZ,EAAe;UACbiC,OAAO3B,IAAP2B,CAAYxB,IAAIsjB,SAAJtjB,CAAc4J,KAAd5J,EAAqBT,CAArBS,CAAZwB;QAFQ;;QAIVA,OAAO3B,IAAP2B,CAAY2jB,MAAZ3jB;QACAoI,QAAQrK,IAAI,CAAZqK;MAR8B;IAAlC,OAUO;MACL,IAAIA,QAAQrK,CAAZ,EAAe;QACbiC,OAAO3B,IAAP2B,CAAYxB,IAAIsjB,SAAJtjB,CAAc4J,KAAd5J,EAAqBT,CAArBS,CAAZwB;MAFG;;MAILA,OAAO3B,IAAP2B,CAAa,MAAK4F,KAAKlF,QAALkF,CAAc,EAAdA,EAAkBge,WAAlBhe,EAAgC,GAAlD5F;;MACA,IAAI4F,OAAO,MAAPA,KAAkBA,OAAO,MAAPA,IAAiBA,OAAO,MAA1CA,CAAJ,EAAuD;QAErD7H;MAPG;;MASLqK,QAAQrK,IAAI,CAAZqK;IArB0C;EAHhB;;EA4B9B,IAAIpI,OAAOxE,MAAPwE,KAAkB,CAAtB,EAAyB;IACvB,OAAOxB,GAAP;EA7B4B;;EA+B9B,IAAI4J,QAAQ5J,IAAIhD,MAAhB,EAAwB;IACtBwE,OAAO3B,IAAP2B,CAAYxB,IAAIsjB,SAAJtjB,CAAc4J,KAAd5J,EAAqBA,IAAIhD,MAAzBgD,CAAZwB;EAhC4B;;EAkC9B,OAAOA,OAAO1B,IAAP0B,CAAY,EAAZA,CAAP;AA1bF;;AA6bA,SAAS6jB,eAAT,CAAyBC,WAAzB,EAAsC;EAEpC,MAAMC,2BAA2B,IAAjC;EAEA,MAAMC,0BAA0B,KAAhC;EACA,MAAMC,yBAAyB,IAAIvE,GAAJ,CAAQ,CACrC,KADqC,EAErC,KAFqC,EAGrC,KAHqC,EAIrC,KAJqC,EAKrC,KALqC,EAMrC,KANqC,EAOrC,KAPqC,EAQrC,KARqC,EASrC,KATqC,EAUrC,MAVqC,EAWrC,QAXqC,EAYrC,MAZqC,EAarC,QAbqC,EAcrC,SAdqC,CAAR,CAA/B;EAiBA,MAAM;IAAEwE,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAA0CN,WAAhD;;EAGA,IAAI,SAASre,IAAT,CAAcye,UAAd,CAAJ,EAA+B;IAC7B,IAAI,SAASze,IAAT,CAAcye,WAAWliB,KAAXkiB,CAAiB,CAAjBA,EAAoBA,WAAW1oB,MAAX0oB,GAAoB,CAAxCA,CAAd,CAAJ,EAA+D;MAC7DzpB,gBAAM,+CAA8CypB,UAAW,GAA/DzpB;MACA,OAAO,KAAP;IAH2B;EAA/B,OAKO,IAAI,SAASgL,IAAT,CAAcye,UAAd,CAAJ,EAA+B;IACpC,IAAI,SAASze,IAAT,CAAcye,WAAWliB,KAAXkiB,CAAiB,CAAjBA,EAAoBA,WAAW1oB,MAAX0oB,GAAoB,CAAxCA,CAAd,CAAJ,EAA+D;MAC7DzpB,gBAAM,+CAA8CypB,UAAW,GAA/DzpB;MACA,OAAO,KAAP;IAHkC;EAA/B,OAKA;IAEL,WAAW4pB,KAAX,IAAoBH,WAAWxC,KAAXwC,CAAiB,QAAjBA,CAApB,EAAgD;MAC9C,IAAI,kBAAkBze,IAAlB,CAAuB4e,KAAvB,KAAiC,CAAC,aAAa5e,IAAb,CAAkB4e,KAAlB,CAAtC,EAAgE;QAC9D5pB,gBACG,0DAAyDypB,UAAW,GADvEzpB;QAGA,OAAO,KAAP;MAL4C;IAF3C;EAnC6B;;EA+CpC,MAAM6pB,SAASH,aAAaA,WAAWzjB,QAAXyjB,EAAb,GAAqC,EAApD;EACAL,YAAYK,UAAZL,GAAyBG,uBAAuBhE,GAAvBgE,CAA2BK,MAA3BL,IACrBK,MADqBL,GAErBD,uBAFJF;EAIA,MAAMS,QAAQC,WAAWJ,WAAX,CAAd;EACAN,YAAYM,WAAZN,GACEW,MAAMF,KAAN,KAAgBA,QAAQ,CAAC,EAAzBE,IAA+BF,QAAQ,EAAvCE,GACIV,wBADJU,GAEIL,YAAY1jB,QAAZ0jB,EAHNN;EAKA,OAAO,IAAP;AAvfF;;AA0fA,SAASY,YAAT,CAAsBlmB,GAAtB,EAA2B;EAMzB,MAAMmmB,mBAAmB,CAAC,eAAD,EAAkB,aAAlB,EAAiC,kBAAjC,CAAzB;EACA,MAAMC,QAAQ,IAAIC,MAAJ,CACZ,WACEF,iBAAiBrmB,IAAjBqmB,CAAsB,GAAtBA,EAA2BjD,KAA3BiD,CAAiC,GAAjCA,EAAsCrmB,IAAtCqmB,CAA2C,KAA3CA,CADF,GAEE,qDAHU,EAIZ,GAJY,CAAd;EAOA,MAAMG,QAAQF,MAAMG,IAANH,CAAWpmB,GAAXomB,CAAd;;EACA,IAAIE,SAASA,MAAM,CAAN,CAAb,EAAuB;IACrB,MAAM/pB,MAAM+pB,MAAM,CAAN,CAAZ;IACA,IAAIE,YAAY,KAAhB;;IAEA,IAAIF,MAAM,CAAN,MAAa,MAAbA,IAAuBA,MAAM,CAAN,MAAa,eAAxC,EAAyD;MACvDE,YAAY,IAAZA;IALmB;;IAOrB,OAAO;MAAEjqB,GAAF;MAAOiqB;IAAP,CAAP;EAtBuB;;EAyBzB,OAAO,IAAP;AAnhBF;;AAshBA,SAASC,cAAT,CAAwBhpB,KAAxB,EAA+B;EAC7B,IAAI/B,OAAOC,SAAPD,CAAiB+B,KAAjB/B,CAAJ,EAA6B;IAC3B,OAAO+B,MAAMyE,QAANzE,EAAP;EAF2B;;EAK7B,MAAMipB,eAAejnB,KAAKknB,KAALlnB,CAAWhC,QAAQ,GAAnBgC,CAArB;;EACA,IAAIinB,eAAe,GAAfA,KAAuB,CAA3B,EAA8B;IAC5B,OAAQ,gBAAe,GAAf,EAAoBxkB,QAApB,EAAR;EAP2B;;EAU7B,IAAIwkB,eAAe,EAAfA,KAAsB,CAA1B,EAA6B;IAC3B,OAAOjpB,MAAMmpB,OAANnpB,CAAc,CAAdA,CAAP;EAX2B;;EAc7B,OAAOA,MAAMmpB,OAANnpB,CAAc,CAAdA,CAAP;AApiBF;;AAuiBA,SAASopB,oBAAT,CAA8BC,iBAA9B,EAAiD;EAC/C,IAAI,CAACA,iBAAL,EAAwB;IACtB,OAAO,IAAP;EAF6C;;EAI/C,MAAMC,uBAAuB,IAAIC,GAAJ,EAA7B;;EAGA,WAAW,CAAC7lB,GAAD,EAAM1D,KAAN,CAAX,IAA2BqpB,iBAA3B,EAA8C;IAC5C,IAAI,CAAC3lB,IAAItE,UAAJsE,CAAejX,4BAAfiX,CAAL,EAA6C;MAC3C;IAF0C;;IAI5C,IAAI8lB,cAAcF,qBAAqBre,GAArBqe,CAAyBtpB,MAAMypB,SAA/BH,CAAlB;;IACA,IAAI,CAACE,WAAL,EAAkB;MAChBA,cAAc,EAAdA;MACAF,qBAAqBnmB,GAArBmmB,CAAyBtpB,MAAMypB,SAA/BH,EAA0CE,WAA1CF;IAP0C;;IAS5CE,YAAYpnB,IAAZonB,CAAiBxpB,KAAjBwpB;EAhB6C;;EAkB/C,OAAOF,qBAAqBI,IAArBJ,GAA4B,CAA5BA,GAAgCA,oBAAhCA,GAAuD,IAA9D;AAzjBF;;;;;;;;;;;;;;;;;;ACeA;;AAEA,MAAMK,eAAeC,OAAO,cAAP,CAArB;;AACA,MAAMC,MAAMD,OAAO,KAAP,CAAZ;;;AAEA,MAAME,OAAQ,SAASC,WAAT,GAAuB;EACnC,IAAIC,YAAY/pB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAhB;;EAGA,MAAM6pB,IAAN,CAAW;IACTppB,YAAYD,IAAZ,EAAkB;MAQhB,KAAKA,IAAL,GAAYA,IAAZ;IATO;;IAYT,OAAOwK,GAAP,CAAWxK,IAAX,EAAiB;MAEf,OAAOupB,UAAUvpB,IAAV,MAAoBupB,UAAUvpB,IAAV,IAAkB,IAAIqpB,IAAJ,CAASrpB,IAAT,CAAtCupB,CAAP;IAdO;;IAiBT,OAAOC,WAAP,GAAqB;MACnBD,YAAY/pB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAZ+pB;IAlBO;;EAAA;;EAsBX,OAAOF,IAAP;AA1BW,CAAC,EAAd;;;;AA6BA,MAAMI,MAAO,SAASC,UAAT,GAAsB;EACjC,IAAIC,WAAWnqB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAf;;EAGA,MAAMiqB,GAAN,CAAU;IACRxpB,YAAY2pB,GAAZ,EAAiB;MAQf,KAAKA,GAAL,GAAWA,GAAX;IATM;;IAYR,OAAOpf,GAAP,CAAWof,GAAX,EAAgB;MAEd,OAAOD,SAASC,GAAT,MAAkBD,SAASC,GAAT,IAAgB,IAAIH,GAAJ,CAAQG,GAAR,CAAlCD,CAAP;IAdM;;IAiBR,OAAOH,WAAP,GAAqB;MACnBG,WAAWnqB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAXmqB;IAlBM;;EAAA;;EAsBV,OAAOF,GAAP;AA1BU,CAAC,EAAb;;;;AA6BA,MAAMI,kBAAkB,SAASC,sBAAT,GAAkC;EACxD,OAAOD,eAAP;AADF;;AAIA,MAAM5F,IAAN,CAAW;EACThkB,YAAYslB,OAAO,IAAnB,EAAyB;IAEvB,KAAKwE,IAAL,GAAYvqB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAZ;IACA,KAAK+lB,IAAL,GAAYA,IAAZ;IACA,KAAKrB,KAAL,GAAa,IAAb;IACA,KAAK8F,kBAAL,GAA0B,KAA1B;IACA,KAAKC,mBAAL,GAA2BJ,eAA3B;EAPO;;EAUTK,WAAWC,OAAX,EAAoB;IAClB,KAAK5E,IAAL,GAAY4E,OAAZ;EAXO;;EAcT,IAAIlB,IAAJ,GAAW;IACT,OAAOzpB,OAAOqD,IAAPrD,CAAY,KAAKuqB,IAAjBvqB,EAAuBV,MAA9B;EAfO;;EAmBT0L,IAAI4f,IAAJ,EAAUC,IAAV,EAAgBC,IAAhB,EAAsB;IACpB,IAAI/qB,QAAQ,KAAKwqB,IAAL,CAAUK,IAAV,CAAZ;;IACA,IAAI7qB,UAAUwB,SAAVxB,IAAuB8qB,SAAStpB,SAApC,EAA+C;MAQ7CxB,QAAQ,KAAKwqB,IAAL,CAAUM,IAAV,CAAR9qB;;MACA,IAAIA,UAAUwB,SAAVxB,IAAuB+qB,SAASvpB,SAApC,EAA+C;QAQ7CxB,QAAQ,KAAKwqB,IAAL,CAAUO,IAAV,CAAR/qB;MAjB2C;IAF3B;;IAsBpB,IAAIA,iBAAiBomB,GAAjBpmB,IAAwB,KAAKgmB,IAAjC,EAAuC;MACrC,OAAO,KAAKA,IAAL,CAAUK,KAAV,CAAgBrmB,KAAhB,EAAuB,KAAKyqB,kBAA5B,CAAP;IAvBkB;;IAyBpB,OAAOzqB,KAAP;EA5CO;;EAgDT,MAAMgrB,QAAN,CAAeH,IAAf,EAAqBC,IAArB,EAA2BC,IAA3B,EAAiC;IAC/B,IAAI/qB,QAAQ,KAAKwqB,IAAL,CAAUK,IAAV,CAAZ;;IACA,IAAI7qB,UAAUwB,SAAVxB,IAAuB8qB,SAAStpB,SAApC,EAA+C;MAQ7CxB,QAAQ,KAAKwqB,IAAL,CAAUM,IAAV,CAAR9qB;;MACA,IAAIA,UAAUwB,SAAVxB,IAAuB+qB,SAASvpB,SAApC,EAA+C;QAQ7CxB,QAAQ,KAAKwqB,IAAL,CAAUO,IAAV,CAAR/qB;MAjB2C;IAFhB;;IAsB/B,IAAIA,iBAAiBomB,GAAjBpmB,IAAwB,KAAKgmB,IAAjC,EAAuC;MACrC,OAAO,KAAKA,IAAL,CAAUiF,UAAV,CAAqBjrB,KAArB,EAA4B,KAAKyqB,kBAAjC,CAAP;IAvB6B;;IAyB/B,OAAOzqB,KAAP;EAzEO;;EA6ETqkB,SAASwG,IAAT,EAAeC,IAAf,EAAqBC,IAArB,EAA2B;IACzB,IAAI/qB,QAAQ,KAAKwqB,IAAL,CAAUK,IAAV,CAAZ;;IACA,IAAI7qB,UAAUwB,SAAVxB,IAAuB8qB,SAAStpB,SAApC,EAA+C;MAQ7CxB,QAAQ,KAAKwqB,IAAL,CAAUM,IAAV,CAAR9qB;;MACA,IAAIA,UAAUwB,SAAVxB,IAAuB+qB,SAASvpB,SAApC,EAA+C;QAQ7CxB,QAAQ,KAAKwqB,IAAL,CAAUO,IAAV,CAAR/qB;MAjB2C;IAFtB;;IAsBzB,IAAIA,iBAAiBomB,GAAjBpmB,IAAwB,KAAKgmB,IAAjC,EAAuC;MACrChmB,QAAQ,KAAKgmB,IAAL,CAAUK,KAAV,CAAgBrmB,KAAhB,EAAuB,KAAKyqB,kBAA5B,CAARzqB;IAvBuB;;IA0BzB,IAAIuE,MAAM+hB,OAAN/hB,CAAcvE,KAAduE,CAAJ,EAA0B;MACxBvE,QAAQA,MAAM+F,KAAN/F,EAARA;;MACA,KAAK,IAAI8B,IAAI,CAAR,EAAWqH,KAAKnJ,MAAMT,MAA3B,EAAmCuC,IAAIqH,EAAvC,EAA2CrH,GAA3C,EAAgD;QAC9C,IAAI9B,MAAM8B,CAAN,aAAoBskB,GAApBpmB,IAA2B,KAAKgmB,IAApC,EAA0C;UACxChmB,MAAM8B,CAAN,IAAW,KAAKkkB,IAAL,CAAUK,KAAV,CAAgBrmB,MAAM8B,CAAN,CAAhB,EAA0B,KAAK2oB,kBAA/B,CAAXzqB;QAF4C;MAFxB;IA1BD;;IAkCzB,OAAOA,KAAP;EA/GO;;EAmHT4mB,OAAOljB,GAAP,EAAY;IACV,OAAO,KAAK8mB,IAAL,CAAU9mB,GAAV,CAAP;EApHO;;EAuHTyjB,UAAU;IACR,OAAOlnB,OAAOqD,IAAPrD,CAAY,KAAKuqB,IAAjBvqB,CAAP;EAxHO;;EA4HTirB,eAAe;IACb,OAAOjrB,OAAOskB,MAAPtkB,CAAc,KAAKuqB,IAAnBvqB,CAAP;EA7HO;;EAgITkD,IAAIO,GAAJ,EAAS1D,KAAT,EAAgB;IAWd,KAAKwqB,IAAL,CAAU9mB,GAAV,IAAiB1D,KAAjB;EA3IO;;EA8ITgkB,IAAItgB,GAAJ,EAAS;IACP,OAAO,KAAK8mB,IAAL,CAAU9mB,GAAV,MAAmBlC,SAA1B;EA/IO;;EAkJT2pB,QAAQC,QAAR,EAAkB;IAChB,WAAW1nB,GAAX,IAAkB,KAAK8mB,IAAvB,EAA6B;MAC3BY,SAAS1nB,GAAT,EAAc,KAAKuH,GAAL,CAASvH,GAAT,CAAd;IAFc;EAlJT;;EAwJT,WAAW2nB,KAAX,GAAmB;IACjB,MAAMC,YAAY,IAAI5G,IAAJ,CAAS,IAAT,CAAlB;;IAEA4G,UAAUnoB,GAAVmoB,GAAgB,CAAC5nB,GAAD,EAAM1D,KAAN,KAAgB;MAC9BvB,uBAAY,gDAAZA;IADF;;IAGA,OAAOoB,kBAAO,IAAPA,EAAa,OAAbA,EAAsByrB,SAAtBzrB,CAAP;EA9JO;;EAiKT,OAAO0rB,KAAP,CAAa;IAAEvF,IAAF;IAAQwF,SAAR;IAAmBC,gBAAgB;EAAnC,CAAb,EAAyD;IACvD,MAAMC,aAAa,IAAIhH,IAAJ,CAASsB,IAAT,CAAnB;IAAA,MACE2F,aAAa,IAAIpC,GAAJ,EADf;;IAGA,WAAWnF,IAAX,IAAmBoH,SAAnB,EAA8B;MAC5B,IAAI,EAAEpH,gBAAgBM,IAAlB,CAAJ,EAA6B;QAC3B;MAF0B;;MAI5B,WAAW,CAAChhB,GAAD,EAAM1D,KAAN,CAAX,IAA2BC,OAAO2rB,OAAP3rB,CAAemkB,KAAKoG,IAApBvqB,CAA3B,EAAsD;QACpD,IAAI4rB,WAAWF,WAAW1gB,GAAX0gB,CAAejoB,GAAfioB,CAAf;;QACA,IAAIE,aAAarqB,SAAjB,EAA4B;UAC1BqqB,WAAW,EAAXA;UACAF,WAAWxoB,GAAXwoB,CAAejoB,GAAfioB,EAAoBE,QAApBF;QAFF,OAGO,IAAI,CAACF,aAAD,IAAkB,EAAEzrB,iBAAiB0kB,IAAnB,CAAtB,EAAgD;UAIrD;QATkD;;QAWpDmH,SAASzpB,IAATypB,CAAc7rB,KAAd6rB;MAf0B;IAJyB;;IAsBvD,WAAW,CAACprB,IAAD,EAAO8jB,MAAP,CAAX,IAA6BoH,UAA7B,EAAyC;MACvC,IAAIpH,OAAOhlB,MAAPglB,KAAkB,CAAlBA,IAAuB,EAAEA,OAAO,CAAP,aAAqBG,IAAvB,CAA3B,EAAyD;QACvDgH,WAAWlB,IAAXkB,CAAgBjrB,IAAhBirB,IAAwBnH,OAAO,CAAP,CAAxBmH;QACA;MAHqC;;MAKvC,MAAMI,UAAU,IAAIpH,IAAJ,CAASsB,IAAT,CAAhB;;MAEA,WAAW5B,IAAX,IAAmBG,MAAnB,EAA2B;QACzB,WAAW,CAAC7gB,GAAD,EAAM1D,KAAN,CAAX,IAA2BC,OAAO2rB,OAAP3rB,CAAemkB,KAAKoG,IAApBvqB,CAA3B,EAAsD;UACpD,IAAI6rB,QAAQtB,IAARsB,CAAapoB,GAAbooB,MAAsBtqB,SAA1B,EAAqC;YACnCsqB,QAAQtB,IAARsB,CAAapoB,GAAbooB,IAAoB9rB,KAApB8rB;UAFkD;QAD7B;MAPY;;MAcvC,IAAIA,QAAQpC,IAARoC,GAAe,CAAnB,EAAsB;QACpBJ,WAAWlB,IAAXkB,CAAgBjrB,IAAhBirB,IAAwBI,OAAxBJ;MAfqC;IAtBc;;IAwCvDC,WAAWI,KAAXJ;IAEA,OAAOD,WAAWhC,IAAXgC,GAAkB,CAAlBA,GAAsBA,UAAtBA,GAAmChH,KAAK2G,KAA/C;EA3MO;;AAAA;;;;AA+MX,MAAMjF,MAAO,SAAS4F,UAAT,GAAsB;EACjC,IAAIC,WAAWhsB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAf;;EAGA,MAAMmmB,GAAN,CAAU;IACR1lB,YAAYwrB,GAAZ,EAAiBC,GAAjB,EAAsB;MACpB,KAAKD,GAAL,GAAWA,GAAX;MACA,KAAKC,GAAL,GAAWA,GAAX;IAHM;;IAMR1nB,WAAW;MAGT,IAAI,KAAK0nB,GAAL,KAAa,CAAjB,EAAoB;QAClB,OAAO,GAAG,KAAKD,GAAI,GAAnB;MAJO;;MAMT,OAAO,GAAG,KAAKA,GAAI,IAAG,KAAKC,GAApB,EAAP;IAZM;;IAeR,OAAOlhB,GAAP,CAAWihB,GAAX,EAAgBC,GAAhB,EAAqB;MACnB,MAAMzoB,MAAMyoB,QAAQ,CAARA,GAAY,GAAGD,GAAI,GAAnBC,GAAwB,GAAGD,GAAI,IAAGC,GAAV,EAApC;MAEA,OAAOF,SAASvoB,GAAT,MAAkBuoB,SAASvoB,GAAT,IAAgB,IAAI0iB,GAAJ,CAAQ8F,GAAR,EAAaC,GAAb,CAAlCF,CAAP;IAlBM;;IAqBR,OAAOhC,WAAP,GAAqB;MACnBgC,WAAWhsB,OAAOwD,MAAPxD,CAAc,IAAdA,CAAXgsB;IAtBM;;EAAA;;EA0BV,OAAO7F,GAAP;AA9BU,CAAC,EAAb;;;;AAmCA,MAAM3B,MAAN,CAAa;EACX/jB,YAAYylB,SAAS,IAArB,EAA2B;IASzB,KAAKiG,IAAL,GAAY,IAAI3I,GAAJ,CAAQ0C,UAAUA,OAAOiG,IAAzB,CAAZ;EAVS;;EAaXpI,IAAIqI,GAAJ,EAAS;IACP,OAAO,KAAKD,IAAL,CAAUpI,GAAV,CAAcqI,IAAI5nB,QAAJ4nB,EAAd,CAAP;EAdS;;EAiBXzH,IAAIyH,GAAJ,EAAS;IACP,KAAKD,IAAL,CAAUnI,GAAV,CAAcoI,IAAI5nB,QAAJ4nB,EAAd;EAlBS;;EAqBXxF,OAAOwF,GAAP,EAAY;IACV,KAAKD,IAAL,CAAUE,MAAV,CAAiBD,IAAI5nB,QAAJ4nB,EAAjB;EAtBS;;EAyBX,CAACzC,OAAO2C,QAAR,IAAoB;IAClB,OAAO,KAAKH,IAAL,CAAU7H,MAAV,EAAP;EA1BS;;EA6BXwH,QAAQ;IACN,KAAKK,IAAL,CAAUL,KAAV;EA9BS;;AAAA;;;;AAkCb,MAAMS,WAAN,CAAkB;EAChB9rB,cAAc;IACZ,KAAK8pB,IAAL,GAAY,IAAIjB,GAAJ,EAAZ;EAFc;;EAKhB,IAAIG,IAAJ,GAAW;IACT,OAAO,KAAKc,IAAL,CAAUd,IAAjB;EANc;;EAShBze,IAAIohB,GAAJ,EAAS;IACP,OAAO,KAAK7B,IAAL,CAAUvf,GAAV,CAAcohB,IAAI5nB,QAAJ4nB,EAAd,CAAP;EAVc;;EAahBrI,IAAIqI,GAAJ,EAAS;IACP,OAAO,KAAK7B,IAAL,CAAUxG,GAAV,CAAcqI,IAAI5nB,QAAJ4nB,EAAd,CAAP;EAdc;;EAiBhBzH,IAAIyH,GAAJ,EAASvsB,GAAT,EAAc;IACZ,KAAK0qB,IAAL,CAAUrnB,GAAV,CAAckpB,IAAI5nB,QAAJ4nB,EAAd,EAA8BvsB,GAA9B;EAlBc;;EAqBhB2sB,SAASJ,GAAT,EAAcK,QAAd,EAAwB;IACtB,KAAKlC,IAAL,CAAUrnB,GAAV,CAAckpB,IAAI5nB,QAAJ4nB,EAAd,EAA8B,KAAKphB,GAAL,CAASyhB,QAAT,CAA9B;EAtBc;;EAyBhB,CAAC9C,OAAO2C,QAAR,IAAoB;IAClB,OAAO,KAAK/B,IAAL,CAAUjG,MAAV,EAAP;EA1Bc;;EA6BhBwH,QAAQ;IACN,KAAKvB,IAAL,CAAUuB,KAAV;EA9Bc;;AAAA;;;;AAkClB,SAASvF,MAAT,CAAgBngB,CAAhB,EAAmB5F,IAAnB,EAAyB;EACvB,OAAO4F,aAAayjB,IAAbzjB,KAAsB5F,SAASe,SAATf,IAAsB4F,EAAE5F,IAAF4F,KAAW5F,IAAvD4F,CAAP;AAzYF;;AA4YA,SAASsmB,KAAT,CAAetmB,CAAf,EAAkBgkB,GAAlB,EAAuB;EACrB,OAAOhkB,aAAa6jB,GAAb7jB,KAAqBgkB,QAAQ7oB,SAAR6oB,IAAqBhkB,EAAEgkB,GAAFhkB,KAAUgkB,GAApDhkB,CAAP;AA7YF;;AAgZA,SAASumB,MAAT,CAAgBvmB,CAAhB,EAAmBuF,IAAnB,EAAyB;EACvB,OACEvF,aAAaqe,IAAbre,KAAsBuF,SAASpK,SAAToK,IAAsB4a,OAAOngB,EAAE4E,GAAF5E,CAAM,MAANA,CAAP,EAAsBuF,IAAtB,CAA5CvF,CADF;AAjZF;;AAsZA,SAASwmB,WAAT,CAAqBC,EAArB,EAAyBC,EAAzB,EAA6B;EAU3B,OAAOD,GAAGZ,GAAHY,KAAWC,GAAGb,GAAdY,IAAqBA,GAAGX,GAAHW,KAAWC,GAAGZ,GAA1C;AAhaF;;AAmaA,SAASa,oBAAT,GAAgC;EAC9B9C,IAAID,WAAJC;;EACAJ,KAAKG,WAALH;;EACA1D,IAAI6D,WAAJ7D;AAtaF;;;;;;;;;;;;;ACeA;;AAEA,MAAMM,UAAN,CAAiB;EACfhmB,cAAc;IACZ,IAAI,KAAKA,WAAL,KAAqBgmB,UAAzB,EAAqC;MACnCjoB,uBAAY,+BAAZA;IAFU;EADC;;EAQf,IAAIc,MAAJ,GAAa;IACXd,uBAAY,mCAAZA;EATa;;EAaf,IAAIwuB,OAAJ,GAAc;IACZxuB,uBAAY,oCAAZA;EAda;;EAiBf,IAAIyuB,YAAJ,GAAmB;IACjB,OAAOrtB,kBAAO,IAAPA,EAAa,cAAbA,EAA6B,IAA7BA,CAAP;EAlBa;;EAqBfstB,UAAU;IACR1uB,uBAAY,kCAAZA;EAtBa;;EAyBf2uB,SAAS7tB,MAAT,EAAiB;IACfd,uBAAY,mCAAZA;EA1Ba;;EA6Bf4uB,WAAW;IACT,MAAMC,aAAa,KAAKH,OAAL,EAAnB;;IACA,IAAIG,eAAe,CAAC,CAApB,EAAuB;MACrB,KAAKvqB,GAAL;IAHO;;IAKT,OAAOuqB,UAAP;EAlCa;;EAqCfC,UAAUhuB,MAAV,EAAkB;IAChB,MAAMgC,QAAQ,KAAK6rB,QAAL,CAAc7tB,MAAd,CAAd;IACA,KAAKwD,GAAL,IAAYxB,MAAMhC,MAAlB;IACA,OAAOgC,KAAP;EAxCa;;EA2CfisB,YAAY;IACV,MAAMC,KAAK,KAAKN,OAAL,EAAX;IACA,MAAMO,KAAK,KAAKP,OAAL,EAAX;;IACA,IAAIM,OAAO,CAAC,CAARA,IAAaC,OAAO,CAAC,CAAzB,EAA4B;MAC1B,OAAO,CAAC,CAAR;IAJQ;;IAMV,OAAQ,OAAM,CAAN,IAAWA,EAAnB;EAjDa;;EAoDfC,WAAW;IACT,MAAMF,KAAK,KAAKN,OAAL,EAAX;IACA,MAAMO,KAAK,KAAKP,OAAL,EAAX;IACA,MAAMS,KAAK,KAAKT,OAAL,EAAX;IACA,MAAMU,KAAK,KAAKV,OAAL,EAAX;IACA,OAAQ,OAAM,EAAN,KAAaO,MAAM,EAAnB,KAA0BE,MAAM,CAAhC,IAAqCC,EAA7C;EAzDa;;EA4DfC,aAAa7K,KAAb,EAAoB7W,GAApB,EAAyB;IACvB3N,uBAAY,uCAAZA;EA7Da;;EAgEfkoB,UAAUpnB,MAAV,EAAkB;IAChB,OAAO+B,yBAAc,KAAK8rB,QAAL,CAAc7tB,MAAd,CAAd+B,CAAP;EAjEa;;EAoEfoN,KAAKlK,CAAL,EAAQ;IACN,KAAKzB,GAAL,IAAYyB,KAAK,CAAjB;EArEa;;EAwEfupB,QAAQ;IACNtvB,uBAAY,gCAAZA;EAzEa;;EA4EfuvB,YAAY;IACVvvB,uBAAY,oCAAZA;EA7Ea;;EAgFfwvB,cAAc9hB,KAAd,EAAqB5M,MAArB,EAA6B6kB,OAAO,IAApC,EAA0C;IACxC3lB,uBAAY,wCAAZA;EAjFa;;EAuFfyvB,iBAAiB;IACf,OAAO,IAAP;EAxFa;;AAAA;;;;;;;;;;;;;;ACDjB,MAAMC,UAAU,CACd;EAAEC,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CADc,EAEd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CAFc,EAGd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CAHc,EAId;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CAJc,EAKd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CALc,EAMd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CANc,EAOd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CAPc,EAQd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CARc,EASd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CATc,EAUd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAVc,EAWd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAXc,EAYd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAZc,EAad;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAbc,EAcd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAdc,EAed;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAfc,EAgBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAhBc,EAiBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAjBc,EAkBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAlBc,EAmBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAnBc,EAoBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CApBc,EAqBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CArBc,EAsBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAtBc,EAuBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAvBc,EAwBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAxBc,EAyBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAzBc,EA0Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA1Bc,EA2Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA3Bc,EA4Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA5Bc,EA6Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA7Bc,EA8Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA9Bc,EA+Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA/Bc,EAgCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAhCc,EAiCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAjCc,EAkCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAlCc,EAmCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAnCc,EAoCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CApCc,EAqCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CArCc,EAsCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAtCc,EAuCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAvCc,EAwCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAxCc,EAyCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAzCc,EA0Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA1Cc,EA2Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA3Cc,EA4Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA5Cc,EA6Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA7Cc,EA8Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA9Cc,EA+Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA/Cc,CAAhB;;AA2DA,MAAMliB,iBAAN,CAAwB;EAEtB3L,YAAYsC,IAAZ,EAAkBmJ,KAAlB,EAAyBC,GAAzB,EAA8B;IAC5B,KAAKpJ,IAAL,GAAYA,IAAZ;IACA,KAAKwrB,EAAL,GAAUriB,KAAV;IACA,KAAKsiB,OAAL,GAAeriB,GAAf;IAEA,KAAKsiB,KAAL,GAAa1rB,KAAKmJ,KAAL,CAAb;IACA,KAAKwiB,IAAL,GAAY,CAAZ;IAEA,KAAKC,MAAL;IAEA,KAAKF,KAAL,GAAe,KAAKA,KAAL,IAAc,CAAd,GAAmB,MAAnB,GAA+B,KAAKC,IAAL,IAAa,CAAb,GAAkB,IAAhE;IACA,KAAKA,IAAL,GAAa,KAAKA,IAAL,IAAa,CAAb,GAAkB,MAA/B;IACA,KAAKE,EAAL,IAAW,CAAX;IACA,KAAKroB,CAAL,GAAS,MAAT;EAfoB;;EAmBtBooB,SAAS;IACP,MAAM5rB,OAAO,KAAKA,IAAlB;IACA,IAAIwrB,KAAK,KAAKA,EAAd;;IAEA,IAAIxrB,KAAKwrB,EAAL,MAAa,IAAjB,EAAuB;MACrB,IAAIxrB,KAAKwrB,KAAK,CAAV,IAAe,IAAnB,EAAyB;QACvB,KAAKG,IAAL,IAAa,MAAb;QACA,KAAKE,EAAL,GAAU,CAAV;MAFF,OAGO;QACLL;QACA,KAAKG,IAAL,IAAa3rB,KAAKwrB,EAAL,KAAY,CAAzB;QACA,KAAKK,EAAL,GAAU,CAAV;QACA,KAAKL,EAAL,GAAUA,EAAV;MARmB;IAAvB,OAUO;MACLA;MACA,KAAKG,IAAL,IAAaH,KAAK,KAAKC,OAAVD,GAAoBxrB,KAAKwrB,EAAL,KAAY,CAAhCA,GAAoC,MAAjD;MACA,KAAKK,EAAL,GAAU,CAAV;MACA,KAAKL,EAAL,GAAUA,EAAV;IAlBK;;IAoBP,IAAI,KAAKG,IAAL,GAAY,MAAhB,EAAwB;MACtB,KAAKD,KAAL,IAAc,KAAKC,IAAL,IAAa,EAA3B;MACA,KAAKA,IAAL,IAAa,MAAb;IAtBK;EAnBa;;EA8CtB7hB,QAAQJ,QAAR,EAAkB3J,GAAlB,EAAuB;IAGrB,IAAI+rB,WAAWpiB,SAAS3J,GAAT,KAAiB,CAAhC;IAAA,IACEgsB,SAASriB,SAAS3J,GAAT,IAAgB,CAD3B;IAEA,MAAMisB,aAAab,QAAQW,QAAR,CAAnB;IACA,MAAMG,QAAQD,WAAWZ,EAAzB;IACA,IAAIzoB,CAAJ;IACA,IAAIa,IAAI,KAAKA,CAAL,GAASyoB,KAAjB;;IAEA,IAAI,KAAKP,KAAL,GAAaO,KAAjB,EAAwB;MAEtB,IAAIzoB,IAAIyoB,KAAR,EAAe;QACbzoB,IAAIyoB,KAAJzoB;QACAb,IAAIopB,MAAJppB;QACAmpB,WAAWE,WAAWX,IAAtBS;MAHF,OAIO;QACLtoB,IAAIyoB,KAAJzoB;QACAb,IAAI,IAAIopB,MAARppB;;QACA,IAAIqpB,WAAWT,UAAXS,KAA0B,CAA9B,EAAiC;UAC/BD,SAASppB,CAATopB;QAJG;;QAMLD,WAAWE,WAAWV,IAAtBQ;MAZoB;IAAxB,OAcO;MACL,KAAKJ,KAAL,IAAcO,KAAd;;MACA,IAAK,KAAI,MAAJ,MAAgB,CAArB,EAAwB;QACtB,KAAKzoB,CAAL,GAASA,CAAT;QACA,OAAOuoB,MAAP;MAJG;;MAOL,IAAIvoB,IAAIyoB,KAAR,EAAe;QACbtpB,IAAI,IAAIopB,MAARppB;;QACA,IAAIqpB,WAAWT,UAAXS,KAA0B,CAA9B,EAAiC;UAC/BD,SAASppB,CAATopB;QAHW;;QAKbD,WAAWE,WAAWV,IAAtBQ;MALF,OAMO;QACLnpB,IAAIopB,MAAJppB;QACAmpB,WAAWE,WAAWX,IAAtBS;MAfG;IAxBc;;IA2CrB,GAAG;MACD,IAAI,KAAKD,EAAL,KAAY,CAAhB,EAAmB;QACjB,KAAKD,MAAL;MAFD;;MAKDpoB,MAAM,CAANA;MACA,KAAKkoB,KAAL,GAAe,KAAKA,KAAL,IAAc,CAAd,GAAmB,MAAnB,GAA+B,KAAKC,IAAL,IAAa,EAAb,GAAmB,CAAjE;MACA,KAAKA,IAAL,GAAa,KAAKA,IAAL,IAAa,CAAb,GAAkB,MAA/B;MACA,KAAKE,EAAL;IARF,SASU,KAAI,MAAJ,MAAgB,CAT1B;;IAUA,KAAKroB,CAAL,GAASA,CAAT;IAEAkG,SAAS3J,GAAT,IAAiB+rB,YAAY,CAAZA,GAAiBC,MAAlCriB;IACA,OAAO/G,CAAP;EAtGoB;;AAAA;;;;;;;;;;;;;;;ACtDxB;;AAQA,MAAMupB,WAAW,CAAC,CAAlB;AACA,MAAMC,WAAW,CAAC,CAAlB;AACA,MAAMC,aAAa,CAAnB;AACA,MAAMC,cAAc,CAApB;AACA,MAAMC,cAAc,CAApB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AAGA,MAAMC,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EAElB,CAAC,CAAD,EAAID,YAAJ,CAFkB,EAGlB,CAAC,CAAD,EAAID,YAAJ,CAHkB,EAIlB,CAAC,CAAD,EAAID,YAAJ,CAJkB,EAIC,CAAC,CAAD,EAAIA,YAAJ,CAJD,EAKlB,CAAC,CAAD,EAAID,YAAJ,CALkB,EAKC,CAAC,CAAD,EAAIA,YAAJ,CALD,EAMlB,CAAC,CAAD,EAAIL,UAAJ,CANkB,EAMD,CAAC,CAAD,EAAIA,UAAJ,CANC,EAOlB,CAAC,CAAD,EAAIA,UAAJ,CAPkB,EAOD,CAAC,CAAD,EAAIA,UAAJ,CAPC,EAQlB,CAAC,CAAD,EAAIA,UAAJ,CARkB,EAQD,CAAC,CAAD,EAAIA,UAAJ,CARC,EASlB,CAAC,CAAD,EAAIA,UAAJ,CATkB,EASD,CAAC,CAAD,EAAIA,UAAJ,CATC,EAUlB,CAAC,CAAD,EAAIC,WAAJ,CAVkB,EAUA,CAAC,CAAD,EAAIA,WAAJ,CAVA,EAWlB,CAAC,CAAD,EAAIA,WAAJ,CAXkB,EAWA,CAAC,CAAD,EAAIA,WAAJ,CAXA,EAYlB,CAAC,CAAD,EAAIA,WAAJ,CAZkB,EAYA,CAAC,CAAD,EAAIA,WAAJ,CAZA,EAalB,CAAC,CAAD,EAAIA,WAAJ,CAbkB,EAaA,CAAC,CAAD,EAAIA,WAAJ,CAbA,EAclB,CAAC,CAAD,EAAIA,WAAJ,CAdkB,EAcA,CAAC,CAAD,EAAIA,WAAJ,CAdA,EAelB,CAAC,CAAD,EAAIA,WAAJ,CAfkB,EAeA,CAAC,CAAD,EAAIA,WAAJ,CAfA,EAgBlB,CAAC,CAAD,EAAIA,WAAJ,CAhBkB,EAgBA,CAAC,CAAD,EAAIA,WAAJ,CAhBA,EAiBlB,CAAC,CAAD,EAAIA,WAAJ,CAjBkB,EAiBA,CAAC,CAAD,EAAIA,WAAJ,CAjBA,EAkBlB,CAAC,CAAD,EAAIG,YAAJ,CAlBkB,EAkBC,CAAC,CAAD,EAAIA,YAAJ,CAlBD,EAmBlB,CAAC,CAAD,EAAIA,YAAJ,CAnBkB,EAmBC,CAAC,CAAD,EAAIA,YAAJ,CAnBD,EAoBlB,CAAC,CAAD,EAAIA,YAAJ,CApBkB,EAoBC,CAAC,CAAD,EAAIA,YAAJ,CApBD,EAqBlB,CAAC,CAAD,EAAIA,YAAJ,CArBkB,EAqBC,CAAC,CAAD,EAAIA,YAAJ,CArBD,EAsBlB,CAAC,CAAD,EAAIA,YAAJ,CAtBkB,EAsBC,CAAC,CAAD,EAAIA,YAAJ,CAtBD,EAuBlB,CAAC,CAAD,EAAIA,YAAJ,CAvBkB,EAuBC,CAAC,CAAD,EAAIA,YAAJ,CAvBD,EAwBlB,CAAC,CAAD,EAAIA,YAAJ,CAxBkB,EAwBC,CAAC,CAAD,EAAIA,YAAJ,CAxBD,EAyBlB,CAAC,CAAD,EAAIA,YAAJ,CAzBkB,EAyBC,CAAC,CAAD,EAAIA,YAAJ,CAzBD,EA0BlB,CAAC,CAAD,EAAID,YAAJ,CA1BkB,EA0BC,CAAC,CAAD,EAAIA,YAAJ,CA1BD,EA2BlB,CAAC,CAAD,EAAIA,YAAJ,CA3BkB,EA2BC,CAAC,CAAD,EAAIA,YAAJ,CA3BD,EA4BlB,CAAC,CAAD,EAAIA,YAAJ,CA5BkB,EA4BC,CAAC,CAAD,EAAIA,YAAJ,CA5BD,EA6BlB,CAAC,CAAD,EAAIA,YAAJ,CA7BkB,EA6BC,CAAC,CAAD,EAAIA,YAAJ,CA7BD,EA8BlB,CAAC,CAAD,EAAIA,YAAJ,CA9BkB,EA8BC,CAAC,CAAD,EAAIA,YAAJ,CA9BD,EA+BlB,CAAC,CAAD,EAAIA,YAAJ,CA/BkB,EA+BC,CAAC,CAAD,EAAIA,YAAJ,CA/BD,EAgClB,CAAC,CAAD,EAAIA,YAAJ,CAhCkB,EAgCC,CAAC,CAAD,EAAIA,YAAJ,CAhCD,EAiClB,CAAC,CAAD,EAAIA,YAAJ,CAjCkB,EAiCC,CAAC,CAAD,EAAIA,YAAJ,CAjCD,EAkClB,CAAC,CAAD,EAAID,WAAJ,CAlCkB,EAkCA,CAAC,CAAD,EAAIA,WAAJ,CAlCA,EAmClB,CAAC,CAAD,EAAIA,WAAJ,CAnCkB,EAmCA,CAAC,CAAD,EAAIA,WAAJ,CAnCA,EAoClB,CAAC,CAAD,EAAIA,WAAJ,CApCkB,EAoCA,CAAC,CAAD,EAAIA,WAAJ,CApCA,EAqClB,CAAC,CAAD,EAAIA,WAAJ,CArCkB,EAqCA,CAAC,CAAD,EAAIA,WAAJ,CArCA,EAsClB,CAAC,CAAD,EAAIA,WAAJ,CAtCkB,EAsCA,CAAC,CAAD,EAAIA,WAAJ,CAtCA,EAuClB,CAAC,CAAD,EAAIA,WAAJ,CAvCkB,EAuCA,CAAC,CAAD,EAAIA,WAAJ,CAvCA,EAwClB,CAAC,CAAD,EAAIA,WAAJ,CAxCkB,EAwCA,CAAC,CAAD,EAAIA,WAAJ,CAxCA,EAyClB,CAAC,CAAD,EAAIA,WAAJ,CAzCkB,EAyCA,CAAC,CAAD,EAAIA,WAAJ,CAzCA,EA0ClB,CAAC,CAAD,EAAIA,WAAJ,CA1CkB,EA0CA,CAAC,CAAD,EAAIA,WAAJ,CA1CA,EA2ClB,CAAC,CAAD,EAAIA,WAAJ,CA3CkB,EA2CA,CAAC,CAAD,EAAIA,WAAJ,CA3CA,EA4ClB,CAAC,CAAD,EAAIA,WAAJ,CA5CkB,EA4CA,CAAC,CAAD,EAAIA,WAAJ,CA5CA,EA6ClB,CAAC,CAAD,EAAIA,WAAJ,CA7CkB,EA6CA,CAAC,CAAD,EAAIA,WAAJ,CA7CA,EA8ClB,CAAC,CAAD,EAAIA,WAAJ,CA9CkB,EA8CA,CAAC,CAAD,EAAIA,WAAJ,CA9CA,EA+ClB,CAAC,CAAD,EAAIA,WAAJ,CA/CkB,EA+CA,CAAC,CAAD,EAAIA,WAAJ,CA/CA,EAgDlB,CAAC,CAAD,EAAIA,WAAJ,CAhDkB,EAgDA,CAAC,CAAD,EAAIA,WAAJ,CAhDA,EAiDlB,CAAC,CAAD,EAAIA,WAAJ,CAjDkB,EAiDA,CAAC,CAAD,EAAIA,WAAJ,CAjDA,EAkDlB,CAAC,CAAD,EAAIA,WAAJ,CAlDkB,EAkDA,CAAC,CAAD,EAAIA,WAAJ,CAlDA,EAmDlB,CAAC,CAAD,EAAIA,WAAJ,CAnDkB,EAmDA,CAAC,CAAD,EAAIA,WAAJ,CAnDA,EAoDlB,CAAC,CAAD,EAAIA,WAAJ,CApDkB,EAoDA,CAAC,CAAD,EAAIA,WAAJ,CApDA,EAqDlB,CAAC,CAAD,EAAIA,WAAJ,CArDkB,EAqDA,CAAC,CAAD,EAAIA,WAAJ,CArDA,EAsDlB,CAAC,CAAD,EAAIA,WAAJ,CAtDkB,EAsDA,CAAC,CAAD,EAAIA,WAAJ,CAtDA,EAuDlB,CAAC,CAAD,EAAIA,WAAJ,CAvDkB,EAuDA,CAAC,CAAD,EAAIA,WAAJ,CAvDA,EAwDlB,CAAC,CAAD,EAAIA,WAAJ,CAxDkB,EAwDA,CAAC,CAAD,EAAIA,WAAJ,CAxDA,EAyDlB,CAAC,CAAD,EAAIA,WAAJ,CAzDkB,EAyDA,CAAC,CAAD,EAAIA,WAAJ,CAzDA,EA0DlB,CAAC,CAAD,EAAIA,WAAJ,CA1DkB,EA0DA,CAAC,CAAD,EAAIA,WAAJ,CA1DA,EA2DlB,CAAC,CAAD,EAAIA,WAAJ,CA3DkB,EA2DA,CAAC,CAAD,EAAIA,WAAJ,CA3DA,EA4DlB,CAAC,CAAD,EAAIA,WAAJ,CA5DkB,EA4DA,CAAC,CAAD,EAAIA,WAAJ,CA5DA,EA6DlB,CAAC,CAAD,EAAIA,WAAJ,CA7DkB,EA6DA,CAAC,CAAD,EAAIA,WAAJ,CA7DA,EA8DlB,CAAC,CAAD,EAAIA,WAAJ,CA9DkB,EA8DA,CAAC,CAAD,EAAIA,WAAJ,CA9DA,EA+DlB,CAAC,CAAD,EAAIA,WAAJ,CA/DkB,EA+DA,CAAC,CAAD,EAAIA,WAAJ,CA/DA,EAgElB,CAAC,CAAD,EAAIA,WAAJ,CAhEkB,EAgEA,CAAC,CAAD,EAAIA,WAAJ,CAhEA,EAiElB,CAAC,CAAD,EAAIA,WAAJ,CAjEkB,EAiEA,CAAC,CAAD,EAAIA,WAAJ,CAjEA,CAApB;AAqEA,MAAMQ,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EAElB,CAAC,EAAD,EAAKZ,QAAL,CAFkB,EAGlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHkB,EAGR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHQ,EAIlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJkB,EAIR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJQ,EAIE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJF,EAIY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJZ,EAKlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALkB,EAKR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALQ,EAKE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALF,EAKY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALZ,EAMlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANkB,EAMR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANQ,EAME,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANF,EAMY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANZ,EAOlB,CAAC,EAAD,EAAK,IAAL,CAPkB,EAON,CAAC,EAAD,EAAK,IAAL,CAPM,EAQlB,CAAC,EAAD,EAAK,IAAL,CARkB,EASlB,CAAC,EAAD,EAAK,IAAL,CATkB,EAUlB,CAAC,EAAD,EAAK,IAAL,CAVkB,EAWlB,CAAC,EAAD,EAAK,IAAL,CAXkB,EAYlB,CAAC,EAAD,EAAK,IAAL,CAZkB,EAalB,CAAC,EAAD,EAAK,IAAL,CAbkB,EAclB,CAAC,EAAD,EAAK,IAAL,CAdkB,EAcN,CAAC,EAAD,EAAK,IAAL,CAdM,EAelB,CAAC,EAAD,EAAK,IAAL,CAfkB,EAeN,CAAC,EAAD,EAAK,IAAL,CAfM,EAgBlB,CAAC,EAAD,EAAK,IAAL,CAhBkB,EAiBlB,CAAC,EAAD,EAAK,IAAL,CAjBkB,EAkBlB,CAAC,EAAD,EAAK,IAAL,CAlBkB,EAmBlB,CAAC,EAAD,EAAK,IAAL,CAnBkB,CAApB;AAuBA,MAAMa,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EACE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADF,EACY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADZ,EAElB,CAAC,CAAD,EAAI,EAAJ,CAFkB,EAET,CAAC,CAAD,EAAI,EAAJ,CAFS,EAGlB,CAAC,CAAD,EAAI,EAAJ,CAHkB,EAGT,CAAC,CAAD,EAAI,EAAJ,CAHS,EAIlB,CAAC,CAAD,EAAI,EAAJ,CAJkB,EAIT,CAAC,CAAD,EAAI,EAAJ,CAJS,EAKlB,CAAC,CAAD,EAAI,EAAJ,CALkB,EAKT,CAAC,CAAD,EAAI,EAAJ,CALS,EAMlB,CAAC,CAAD,EAAI,EAAJ,CANkB,EAMT,CAAC,CAAD,EAAI,EAAJ,CANS,EAMA,CAAC,CAAD,EAAI,EAAJ,CANA,EAMS,CAAC,CAAD,EAAI,EAAJ,CANT,EAOlB,CAAC,CAAD,EAAI,EAAJ,CAPkB,EAOT,CAAC,CAAD,EAAI,EAAJ,CAPS,EAOA,CAAC,CAAD,EAAI,EAAJ,CAPA,EAOS,CAAC,CAAD,EAAI,EAAJ,CAPT,EAQlB,CAAC,CAAD,EAAI,EAAJ,CARkB,EAQT,CAAC,CAAD,EAAI,EAAJ,CARS,EASlB,CAAC,CAAD,EAAI,EAAJ,CATkB,EAST,CAAC,CAAD,EAAI,EAAJ,CATS,EAUlB,CAAC,CAAD,EAAI,EAAJ,CAVkB,EAUT,CAAC,CAAD,EAAI,EAAJ,CAVS,EAUA,CAAC,CAAD,EAAI,EAAJ,CAVA,EAUS,CAAC,CAAD,EAAI,EAAJ,CAVT,EAWlB,CAAC,CAAD,EAAI,EAAJ,CAXkB,EAWT,CAAC,CAAD,EAAI,EAAJ,CAXS,EAWA,CAAC,CAAD,EAAI,EAAJ,CAXA,EAWS,CAAC,CAAD,EAAI,EAAJ,CAXT,EAYlB,CAAC,CAAD,EAAI,EAAJ,CAZkB,EAYT,CAAC,CAAD,EAAI,EAAJ,CAZS,EAYA,CAAC,CAAD,EAAI,EAAJ,CAZA,EAYS,CAAC,CAAD,EAAI,EAAJ,CAZT,EAalB,CAAC,CAAD,EAAI,EAAJ,CAbkB,EAaT,CAAC,CAAD,EAAI,EAAJ,CAbS,EAclB,CAAC,CAAD,EAAI,EAAJ,CAdkB,EAcT,CAAC,CAAD,EAAI,EAAJ,CAdS,EAelB,CAAC,CAAD,EAAI,EAAJ,CAfkB,EAeT,CAAC,CAAD,EAAI,EAAJ,CAfS,EAgBlB,CAAC,CAAD,EAAI,EAAJ,CAhBkB,EAgBT,CAAC,CAAD,EAAI,EAAJ,CAhBS,EAiBlB,CAAC,CAAD,EAAI,EAAJ,CAjBkB,EAiBT,CAAC,CAAD,EAAI,EAAJ,CAjBS,EAkBlB,CAAC,CAAD,EAAI,EAAJ,CAlBkB,EAkBT,CAAC,CAAD,EAAI,EAAJ,CAlBS,EAmBlB,CAAC,CAAD,EAAI,EAAJ,CAnBkB,EAmBT,CAAC,CAAD,EAAI,EAAJ,CAnBS,EAmBA,CAAC,CAAD,EAAI,EAAJ,CAnBA,EAmBS,CAAC,CAAD,EAAI,EAAJ,CAnBT,EAoBlB,CAAC,CAAD,EAAI,EAAJ,CApBkB,EAoBT,CAAC,CAAD,EAAI,EAAJ,CApBS,EAqBlB,CAAC,CAAD,EAAI,EAAJ,CArBkB,EAqBT,CAAC,CAAD,EAAI,EAAJ,CArBS,EAsBlB,CAAC,CAAD,EAAI,CAAJ,CAtBkB,EAsBV,CAAC,CAAD,EAAI,CAAJ,CAtBU,EAsBF,CAAC,CAAD,EAAI,CAAJ,CAtBE,EAsBM,CAAC,CAAD,EAAI,CAAJ,CAtBN,EAuBlB,CAAC,CAAD,EAAI,CAAJ,CAvBkB,EAuBV,CAAC,CAAD,EAAI,CAAJ,CAvBU,EAuBF,CAAC,CAAD,EAAI,CAAJ,CAvBE,EAuBM,CAAC,CAAD,EAAI,CAAJ,CAvBN,EAwBlB,CAAC,CAAD,EAAI,EAAJ,CAxBkB,EAwBT,CAAC,CAAD,EAAI,EAAJ,CAxBS,EAwBA,CAAC,CAAD,EAAI,EAAJ,CAxBA,EAwBS,CAAC,CAAD,EAAI,EAAJ,CAxBT,EAyBlB,CAAC,CAAD,EAAI,EAAJ,CAzBkB,EAyBT,CAAC,CAAD,EAAI,EAAJ,CAzBS,EAyBA,CAAC,CAAD,EAAI,EAAJ,CAzBA,EAyBS,CAAC,CAAD,EAAI,EAAJ,CAzBT,EA0BlB,CAAC,CAAD,EAAI,EAAJ,CA1BkB,EA0BT,CAAC,CAAD,EAAI,EAAJ,CA1BS,EA2BlB,CAAC,CAAD,EAAI,EAAJ,CA3BkB,EA2BT,CAAC,CAAD,EAAI,EAAJ,CA3BS,EA4BlB,CAAC,CAAD,EAAI,EAAJ,CA5BkB,EA4BT,CAAC,CAAD,EAAI,EAAJ,CA5BS,EA4BA,CAAC,CAAD,EAAI,EAAJ,CA5BA,EA4BS,CAAC,CAAD,EAAI,EAAJ,CA5BT,EA6BlB,CAAC,CAAD,EAAI,EAAJ,CA7BkB,EA6BT,CAAC,CAAD,EAAI,EAAJ,CA7BS,EA8BlB,CAAC,CAAD,EAAI,EAAJ,CA9BkB,EA8BT,CAAC,CAAD,EAAI,EAAJ,CA9BS,EA+BlB,CAAC,CAAD,EAAI,EAAJ,CA/BkB,EA+BT,CAAC,CAAD,EAAI,EAAJ,CA/BS,EAgClB,CAAC,CAAD,EAAI,EAAJ,CAhCkB,EAgCT,CAAC,CAAD,EAAI,EAAJ,CAhCS,EAiClB,CAAC,CAAD,EAAI,EAAJ,CAjCkB,EAiCT,CAAC,CAAD,EAAI,EAAJ,CAjCS,EAkClB,CAAC,CAAD,EAAI,EAAJ,CAlCkB,EAkCT,CAAC,CAAD,EAAI,EAAJ,CAlCS,EAmClB,CAAC,CAAD,EAAI,EAAJ,CAnCkB,EAmCT,CAAC,CAAD,EAAI,EAAJ,CAnCS,EAmCA,CAAC,CAAD,EAAI,EAAJ,CAnCA,EAmCS,CAAC,CAAD,EAAI,EAAJ,CAnCT,EAoClB,CAAC,CAAD,EAAI,EAAJ,CApCkB,EAoCT,CAAC,CAAD,EAAI,EAAJ,CApCS,EAoCA,CAAC,CAAD,EAAI,EAAJ,CApCA,EAoCS,CAAC,CAAD,EAAI,EAAJ,CApCT,EAqClB,CAAC,CAAD,EAAI,EAAJ,CArCkB,EAqCT,CAAC,CAAD,EAAI,EAAJ,CArCS,EAsClB,CAAC,CAAD,EAAI,EAAJ,CAtCkB,EAsCT,CAAC,CAAD,EAAI,EAAJ,CAtCS,EAuClB,CAAC,CAAD,EAAI,EAAJ,CAvCkB,EAuCT,CAAC,CAAD,EAAI,EAAJ,CAvCS,EAwClB,CAAC,CAAD,EAAI,CAAJ,CAxCkB,EAwCV,CAAC,CAAD,EAAI,CAAJ,CAxCU,EAyClB,CAAC,CAAD,EAAI,GAAJ,CAzCkB,EAyCR,CAAC,CAAD,EAAI,GAAJ,CAzCQ,EA0ClB,CAAC,CAAD,EAAI,GAAJ,CA1CkB,EA0CR,CAAC,CAAD,EAAI,GAAJ,CA1CQ,EA2ClB,CAAC,CAAD,EAAI,EAAJ,CA3CkB,EA2CT,CAAC,CAAD,EAAI,EAAJ,CA3CS,EA2CA,CAAC,CAAD,EAAI,EAAJ,CA3CA,EA2CS,CAAC,CAAD,EAAI,EAAJ,CA3CT,EA4ClB,CAAC,CAAD,EAAI,EAAJ,CA5CkB,EA4CT,CAAC,CAAD,EAAI,EAAJ,CA5CS,EA4CA,CAAC,CAAD,EAAI,EAAJ,CA5CA,EA4CS,CAAC,CAAD,EAAI,EAAJ,CA5CT,EA6ClB,CAAC,CAAD,EAAI,EAAJ,CA7CkB,EA6CT,CAAC,CAAD,EAAI,EAAJ,CA7CS,EA6CA,CAAC,CAAD,EAAI,EAAJ,CA7CA,EA6CS,CAAC,CAAD,EAAI,EAAJ,CA7CT,EA8ClB,CAAC,CAAD,EAAI,EAAJ,CA9CkB,EA8CT,CAAC,CAAD,EAAI,EAAJ,CA9CS,EA8CA,CAAC,CAAD,EAAI,EAAJ,CA9CA,EA8CS,CAAC,CAAD,EAAI,EAAJ,CA9CT,EA+ClB,CAAC,CAAD,EAAI,EAAJ,CA/CkB,EA+CT,CAAC,CAAD,EAAI,EAAJ,CA/CS,EA+CA,CAAC,CAAD,EAAI,EAAJ,CA/CA,EA+CS,CAAC,CAAD,EAAI,EAAJ,CA/CT,EAgDlB,CAAC,CAAD,EAAI,EAAJ,CAhDkB,EAgDT,CAAC,CAAD,EAAI,EAAJ,CAhDS,EAgDA,CAAC,CAAD,EAAI,EAAJ,CAhDA,EAgDS,CAAC,CAAD,EAAI,EAAJ,CAhDT,EAiDlB,CAAC,CAAD,EAAI,EAAJ,CAjDkB,EAiDT,CAAC,CAAD,EAAI,EAAJ,CAjDS,EAiDA,CAAC,CAAD,EAAI,EAAJ,CAjDA,EAiDS,CAAC,CAAD,EAAI,EAAJ,CAjDT,EAkDlB,CAAC,CAAD,EAAI,EAAJ,CAlDkB,EAkDT,CAAC,CAAD,EAAI,EAAJ,CAlDS,EAkDA,CAAC,CAAD,EAAI,EAAJ,CAlDA,EAkDS,CAAC,CAAD,EAAI,EAAJ,CAlDT,EAmDlB,CAAC,CAAD,EAAI,EAAJ,CAnDkB,EAmDT,CAAC,CAAD,EAAI,EAAJ,CAnDS,EAmDA,CAAC,CAAD,EAAI,EAAJ,CAnDA,EAmDS,CAAC,CAAD,EAAI,EAAJ,CAnDT,EAoDlB,CAAC,CAAD,EAAI,EAAJ,CApDkB,EAoDT,CAAC,CAAD,EAAI,EAAJ,CApDS,EAqDlB,CAAC,CAAD,EAAI,EAAJ,CArDkB,EAqDT,CAAC,CAAD,EAAI,EAAJ,CArDS,EAsDlB,CAAC,CAAD,EAAI,IAAJ,CAtDkB,EAuDlB,CAAC,CAAD,EAAI,IAAJ,CAvDkB,EAwDlB,CAAC,CAAD,EAAI,IAAJ,CAxDkB,EAyDlB,CAAC,CAAD,EAAI,IAAJ,CAzDkB,EA0DlB,CAAC,CAAD,EAAI,EAAJ,CA1DkB,EA0DT,CAAC,CAAD,EAAI,EAAJ,CA1DS,EA0DA,CAAC,CAAD,EAAI,EAAJ,CA1DA,EA0DS,CAAC,CAAD,EAAI,EAAJ,CA1DT,EA2DlB,CAAC,CAAD,EAAI,EAAJ,CA3DkB,EA2DT,CAAC,CAAD,EAAI,EAAJ,CA3DS,EA2DA,CAAC,CAAD,EAAI,EAAJ,CA3DA,EA2DS,CAAC,CAAD,EAAI,EAAJ,CA3DT,EA4DlB,CAAC,CAAD,EAAI,EAAJ,CA5DkB,EA4DT,CAAC,CAAD,EAAI,EAAJ,CA5DS,EA6DlB,CAAC,CAAD,EAAI,EAAJ,CA7DkB,EA6DT,CAAC,CAAD,EAAI,EAAJ,CA7DS,EA8DlB,CAAC,CAAD,EAAI,EAAJ,CA9DkB,EA8DT,CAAC,CAAD,EAAI,EAAJ,CA9DS,EA+DlB,CAAC,CAAD,EAAI,EAAJ,CA/DkB,EA+DT,CAAC,CAAD,EAAI,EAAJ,CA/DS,EAgElB,CAAC,CAAD,EAAI,EAAJ,CAhEkB,EAgET,CAAC,CAAD,EAAI,EAAJ,CAhES,EAgEA,CAAC,CAAD,EAAI,EAAJ,CAhEA,EAgES,CAAC,CAAD,EAAI,EAAJ,CAhET,EAiElB,CAAC,CAAD,EAAI,EAAJ,CAjEkB,EAiET,CAAC,CAAD,EAAI,EAAJ,CAjES,EAkElB,CAAC,CAAD,EAAI,EAAJ,CAlEkB,EAkET,CAAC,CAAD,EAAI,EAAJ,CAlES,EAmElB,CAAC,CAAD,EAAI,EAAJ,CAnEkB,EAmET,CAAC,CAAD,EAAI,EAAJ,CAnES,EAoElB,CAAC,CAAD,EAAI,EAAJ,CApEkB,EAoET,CAAC,CAAD,EAAI,EAAJ,CApES,EAqElB,CAAC,CAAD,EAAI,GAAJ,CArEkB,EAqER,CAAC,CAAD,EAAI,GAAJ,CArEQ,EAqEE,CAAC,CAAD,EAAI,GAAJ,CArEF,EAqEY,CAAC,CAAD,EAAI,GAAJ,CArEZ,EAsElB,CAAC,CAAD,EAAI,GAAJ,CAtEkB,EAsER,CAAC,CAAD,EAAI,GAAJ,CAtEQ,EAsEE,CAAC,CAAD,EAAI,GAAJ,CAtEF,EAsEY,CAAC,CAAD,EAAI,GAAJ,CAtEZ,EAuElB,CAAC,CAAD,EAAI,IAAJ,CAvEkB,EAuEP,CAAC,CAAD,EAAI,IAAJ,CAvEO,EAuEI,CAAC,CAAD,EAAI,IAAJ,CAvEJ,EAuEe,CAAC,CAAD,EAAI,IAAJ,CAvEf,EAwElB,CAAC,CAAD,EAAI,IAAJ,CAxEkB,EAwEP,CAAC,CAAD,EAAI,IAAJ,CAxEO,EAwEI,CAAC,CAAD,EAAI,IAAJ,CAxEJ,EAwEe,CAAC,CAAD,EAAI,IAAJ,CAxEf,EAyElB,CAAC,CAAD,EAAI,GAAJ,CAzEkB,EAyER,CAAC,CAAD,EAAI,GAAJ,CAzEQ,EA0ElB,CAAC,CAAD,EAAI,GAAJ,CA1EkB,EA0ER,CAAC,CAAD,EAAI,GAAJ,CA1EQ,EA2ElB,CAAC,CAAD,EAAI,GAAJ,CA3EkB,EA4ElB,CAAC,CAAD,EAAI,GAAJ,CA5EkB,EA6ElB,CAAC,CAAD,EAAI,GAAJ,CA7EkB,EA6ER,CAAC,CAAD,EAAI,GAAJ,CA7EQ,EA8ElB,CAAC,CAAD,EAAI,GAAJ,CA9EkB,EA8ER,CAAC,CAAD,EAAI,GAAJ,CA9EQ,EA+ElB,CAAC,CAAD,EAAI,GAAJ,CA/EkB,EAgFlB,CAAC,CAAD,EAAI,GAAJ,CAhFkB,EAiFlB,CAAC,CAAD,EAAI,GAAJ,CAjFkB,EAkFlB,CAAC,CAAD,EAAI,IAAJ,CAlFkB,EAmFlB,CAAC,CAAD,EAAI,IAAJ,CAnFkB,EAoFlB,CAAC,CAAD,EAAI,IAAJ,CApFkB,EAqFlB,CAAC,CAAD,EAAI,IAAJ,CArFkB,EAsFlB,CAAC,CAAD,EAAI,IAAJ,CAtFkB,EAuFlB,CAAC,CAAD,EAAI,IAAJ,CAvFkB,EAwFlB,CAAC,CAAD,EAAI,IAAJ,CAxFkB,EAyFlB,CAAC,CAAD,EAAI,GAAJ,CAzFkB,EAyFR,CAAC,CAAD,EAAI,GAAJ,CAzFQ,EAyFE,CAAC,CAAD,EAAI,GAAJ,CAzFF,EAyFY,CAAC,CAAD,EAAI,GAAJ,CAzFZ,EA0FlB,CAAC,CAAD,EAAI,CAAJ,CA1FkB,EA0FV,CAAC,CAAD,EAAI,CAAJ,CA1FU,EA0FF,CAAC,CAAD,EAAI,CAAJ,CA1FE,EA0FM,CAAC,CAAD,EAAI,CAAJ,CA1FN,EA2FlB,CAAC,CAAD,EAAI,CAAJ,CA3FkB,EA2FV,CAAC,CAAD,EAAI,CAAJ,CA3FU,EA2FF,CAAC,CAAD,EAAI,CAAJ,CA3FE,EA2FM,CAAC,CAAD,EAAI,CAAJ,CA3FN,EA4FlB,CAAC,CAAD,EAAI,CAAJ,CA5FkB,EA4FV,CAAC,CAAD,EAAI,CAAJ,CA5FU,EA4FF,CAAC,CAAD,EAAI,CAAJ,CA5FE,EA4FM,CAAC,CAAD,EAAI,CAAJ,CA5FN,EA6FlB,CAAC,CAAD,EAAI,CAAJ,CA7FkB,EA6FV,CAAC,CAAD,EAAI,CAAJ,CA7FU,EA6FF,CAAC,CAAD,EAAI,CAAJ,CA7FE,EA6FM,CAAC,CAAD,EAAI,CAAJ,CA7FN,EA8FlB,CAAC,CAAD,EAAI,CAAJ,CA9FkB,EA8FV,CAAC,CAAD,EAAI,CAAJ,CA9FU,EA8FF,CAAC,CAAD,EAAI,CAAJ,CA9FE,EA8FM,CAAC,CAAD,EAAI,CAAJ,CA9FN,EA+FlB,CAAC,CAAD,EAAI,CAAJ,CA/FkB,EA+FV,CAAC,CAAD,EAAI,CAAJ,CA/FU,EA+FF,CAAC,CAAD,EAAI,CAAJ,CA/FE,EA+FM,CAAC,CAAD,EAAI,CAAJ,CA/FN,EAgGlB,CAAC,CAAD,EAAI,CAAJ,CAhGkB,EAgGV,CAAC,CAAD,EAAI,CAAJ,CAhGU,EAgGF,CAAC,CAAD,EAAI,CAAJ,CAhGE,EAgGM,CAAC,CAAD,EAAI,CAAJ,CAhGN,EAiGlB,CAAC,CAAD,EAAI,CAAJ,CAjGkB,EAiGV,CAAC,CAAD,EAAI,CAAJ,CAjGU,EAiGF,CAAC,CAAD,EAAI,CAAJ,CAjGE,EAiGM,CAAC,CAAD,EAAI,CAAJ,CAjGN,EAkGlB,CAAC,CAAD,EAAI,CAAJ,CAlGkB,EAkGV,CAAC,CAAD,EAAI,CAAJ,CAlGU,EAkGF,CAAC,CAAD,EAAI,CAAJ,CAlGE,EAkGM,CAAC,CAAD,EAAI,CAAJ,CAlGN,EAmGlB,CAAC,CAAD,EAAI,CAAJ,CAnGkB,EAmGV,CAAC,CAAD,EAAI,CAAJ,CAnGU,EAmGF,CAAC,CAAD,EAAI,CAAJ,CAnGE,EAmGM,CAAC,CAAD,EAAI,CAAJ,CAnGN,EAoGlB,CAAC,CAAD,EAAI,CAAJ,CApGkB,EAoGV,CAAC,CAAD,EAAI,CAAJ,CApGU,EAoGF,CAAC,CAAD,EAAI,CAAJ,CApGE,EAoGM,CAAC,CAAD,EAAI,CAAJ,CApGN,EAqGlB,CAAC,CAAD,EAAI,CAAJ,CArGkB,EAqGV,CAAC,CAAD,EAAI,CAAJ,CArGU,EAqGF,CAAC,CAAD,EAAI,CAAJ,CArGE,EAqGM,CAAC,CAAD,EAAI,CAAJ,CArGN,EAsGlB,CAAC,CAAD,EAAI,CAAJ,CAtGkB,EAsGV,CAAC,CAAD,EAAI,CAAJ,CAtGU,EAsGF,CAAC,CAAD,EAAI,CAAJ,CAtGE,EAsGM,CAAC,CAAD,EAAI,CAAJ,CAtGN,EAuGlB,CAAC,CAAD,EAAI,CAAJ,CAvGkB,EAuGV,CAAC,CAAD,EAAI,CAAJ,CAvGU,EAuGF,CAAC,CAAD,EAAI,CAAJ,CAvGE,EAuGM,CAAC,CAAD,EAAI,CAAJ,CAvGN,EAwGlB,CAAC,CAAD,EAAI,CAAJ,CAxGkB,EAwGV,CAAC,CAAD,EAAI,CAAJ,CAxGU,EAwGF,CAAC,CAAD,EAAI,CAAJ,CAxGE,EAwGM,CAAC,CAAD,EAAI,CAAJ,CAxGN,EAyGlB,CAAC,CAAD,EAAI,CAAJ,CAzGkB,EAyGV,CAAC,CAAD,EAAI,CAAJ,CAzGU,EAyGF,CAAC,CAAD,EAAI,CAAJ,CAzGE,EAyGM,CAAC,CAAD,EAAI,CAAJ,CAzGN,EA0GlB,CAAC,CAAD,EAAI,GAAJ,CA1GkB,EA0GR,CAAC,CAAD,EAAI,GAAJ,CA1GQ,EA0GE,CAAC,CAAD,EAAI,GAAJ,CA1GF,EA0GY,CAAC,CAAD,EAAI,GAAJ,CA1GZ,EA2GlB,CAAC,CAAD,EAAI,GAAJ,CA3GkB,EA2GR,CAAC,CAAD,EAAI,GAAJ,CA3GQ,EA2GE,CAAC,CAAD,EAAI,GAAJ,CA3GF,EA2GY,CAAC,CAAD,EAAI,GAAJ,CA3GZ,EA4GlB,CAAC,CAAD,EAAI,GAAJ,CA5GkB,EA4GR,CAAC,CAAD,EAAI,GAAJ,CA5GQ,EA4GE,CAAC,CAAD,EAAI,GAAJ,CA5GF,EA4GY,CAAC,CAAD,EAAI,GAAJ,CA5GZ,EA6GlB,CAAC,CAAD,EAAI,GAAJ,CA7GkB,EA6GR,CAAC,CAAD,EAAI,GAAJ,CA7GQ,EA6GE,CAAC,CAAD,EAAI,GAAJ,CA7GF,EA6GY,CAAC,CAAD,EAAI,GAAJ,CA7GZ,EA8GlB,CAAC,CAAD,EAAI,CAAJ,CA9GkB,EA8GV,CAAC,CAAD,EAAI,CAAJ,CA9GU,EA8GF,CAAC,CAAD,EAAI,CAAJ,CA9GE,EA8GM,CAAC,CAAD,EAAI,CAAJ,CA9GN,EA+GlB,CAAC,CAAD,EAAI,CAAJ,CA/GkB,EA+GV,CAAC,CAAD,EAAI,CAAJ,CA/GU,EA+GF,CAAC,CAAD,EAAI,CAAJ,CA/GE,EA+GM,CAAC,CAAD,EAAI,CAAJ,CA/GN,EAgHlB,CAAC,CAAD,EAAI,CAAJ,CAhHkB,EAgHV,CAAC,CAAD,EAAI,CAAJ,CAhHU,EAgHF,CAAC,CAAD,EAAI,CAAJ,CAhHE,EAgHM,CAAC,CAAD,EAAI,CAAJ,CAhHN,EAiHlB,CAAC,CAAD,EAAI,CAAJ,CAjHkB,EAiHV,CAAC,CAAD,EAAI,CAAJ,CAjHU,EAiHF,CAAC,CAAD,EAAI,CAAJ,CAjHE,EAiHM,CAAC,CAAD,EAAI,CAAJ,CAjHN,EAkHlB,CAAC,CAAD,EAAI,CAAJ,CAlHkB,EAkHV,CAAC,CAAD,EAAI,CAAJ,CAlHU,EAkHF,CAAC,CAAD,EAAI,CAAJ,CAlHE,EAkHM,CAAC,CAAD,EAAI,CAAJ,CAlHN,EAmHlB,CAAC,CAAD,EAAI,CAAJ,CAnHkB,EAmHV,CAAC,CAAD,EAAI,CAAJ,CAnHU,EAmHF,CAAC,CAAD,EAAI,CAAJ,CAnHE,EAmHM,CAAC,CAAD,EAAI,CAAJ,CAnHN,EAoHlB,CAAC,CAAD,EAAI,CAAJ,CApHkB,EAoHV,CAAC,CAAD,EAAI,CAAJ,CApHU,EAoHF,CAAC,CAAD,EAAI,CAAJ,CApHE,EAoHM,CAAC,CAAD,EAAI,CAAJ,CApHN,EAqHlB,CAAC,CAAD,EAAI,CAAJ,CArHkB,EAqHV,CAAC,CAAD,EAAI,CAAJ,CArHU,EAqHF,CAAC,CAAD,EAAI,CAAJ,CArHE,EAqHM,CAAC,CAAD,EAAI,CAAJ,CArHN,EAsHlB,CAAC,CAAD,EAAI,EAAJ,CAtHkB,EAsHT,CAAC,CAAD,EAAI,EAAJ,CAtHS,EAsHA,CAAC,CAAD,EAAI,EAAJ,CAtHA,EAsHS,CAAC,CAAD,EAAI,EAAJ,CAtHT,EAuHlB,CAAC,CAAD,EAAI,EAAJ,CAvHkB,EAuHT,CAAC,CAAD,EAAI,EAAJ,CAvHS,EAuHA,CAAC,CAAD,EAAI,EAAJ,CAvHA,EAuHS,CAAC,CAAD,EAAI,EAAJ,CAvHT,EAwHlB,CAAC,CAAD,EAAI,EAAJ,CAxHkB,EAwHT,CAAC,CAAD,EAAI,EAAJ,CAxHS,EAwHA,CAAC,CAAD,EAAI,EAAJ,CAxHA,EAwHS,CAAC,CAAD,EAAI,EAAJ,CAxHT,EAyHlB,CAAC,CAAD,EAAI,EAAJ,CAzHkB,EAyHT,CAAC,CAAD,EAAI,EAAJ,CAzHS,EAyHA,CAAC,CAAD,EAAI,EAAJ,CAzHA,EAyHS,CAAC,CAAD,EAAI,EAAJ,CAzHT,EA0HlB,CAAC,CAAD,EAAI,CAAJ,CA1HkB,EA0HV,CAAC,CAAD,EAAI,CAAJ,CA1HU,EA0HF,CAAC,CAAD,EAAI,CAAJ,CA1HE,EA0HM,CAAC,CAAD,EAAI,CAAJ,CA1HN,EA2HlB,CAAC,CAAD,EAAI,CAAJ,CA3HkB,EA2HV,CAAC,CAAD,EAAI,CAAJ,CA3HU,EA2HF,CAAC,CAAD,EAAI,CAAJ,CA3HE,EA2HM,CAAC,CAAD,EAAI,CAAJ,CA3HN,EA4HlB,CAAC,CAAD,EAAI,CAAJ,CA5HkB,EA4HV,CAAC,CAAD,EAAI,CAAJ,CA5HU,EA4HF,CAAC,CAAD,EAAI,CAAJ,CA5HE,EA4HM,CAAC,CAAD,EAAI,CAAJ,CA5HN,EA6HlB,CAAC,CAAD,EAAI,CAAJ,CA7HkB,EA6HV,CAAC,CAAD,EAAI,CAAJ,CA7HU,EA6HF,CAAC,CAAD,EAAI,CAAJ,CA7HE,EA6HM,CAAC,CAAD,EAAI,CAAJ,CA7HN,EA8HlB,CAAC,CAAD,EAAI,CAAJ,CA9HkB,EA8HV,CAAC,CAAD,EAAI,CAAJ,CA9HU,EA8HF,CAAC,CAAD,EAAI,CAAJ,CA9HE,EA8HM,CAAC,CAAD,EAAI,CAAJ,CA9HN,EA+HlB,CAAC,CAAD,EAAI,CAAJ,CA/HkB,EA+HV,CAAC,CAAD,EAAI,CAAJ,CA/HU,EA+HF,CAAC,CAAD,EAAI,CAAJ,CA/HE,EA+HM,CAAC,CAAD,EAAI,CAAJ,CA/HN,EAgIlB,CAAC,CAAD,EAAI,CAAJ,CAhIkB,EAgIV,CAAC,CAAD,EAAI,CAAJ,CAhIU,EAgIF,CAAC,CAAD,EAAI,CAAJ,CAhIE,EAgIM,CAAC,CAAD,EAAI,CAAJ,CAhIN,EAiIlB,CAAC,CAAD,EAAI,CAAJ,CAjIkB,EAiIV,CAAC,CAAD,EAAI,CAAJ,CAjIU,EAiIF,CAAC,CAAD,EAAI,CAAJ,CAjIE,EAiIM,CAAC,CAAD,EAAI,CAAJ,CAjIN,EAkIlB,CAAC,CAAD,EAAI,CAAJ,CAlIkB,EAkIV,CAAC,CAAD,EAAI,CAAJ,CAlIU,EAkIF,CAAC,CAAD,EAAI,CAAJ,CAlIE,EAkIM,CAAC,CAAD,EAAI,CAAJ,CAlIN,EAmIlB,CAAC,CAAD,EAAI,CAAJ,CAnIkB,EAmIV,CAAC,CAAD,EAAI,CAAJ,CAnIU,EAmIF,CAAC,CAAD,EAAI,CAAJ,CAnIE,EAmIM,CAAC,CAAD,EAAI,CAAJ,CAnIN,EAoIlB,CAAC,CAAD,EAAI,CAAJ,CApIkB,EAoIV,CAAC,CAAD,EAAI,CAAJ,CApIU,EAoIF,CAAC,CAAD,EAAI,CAAJ,CApIE,EAoIM,CAAC,CAAD,EAAI,CAAJ,CApIN,EAqIlB,CAAC,CAAD,EAAI,CAAJ,CArIkB,EAqIV,CAAC,CAAD,EAAI,CAAJ,CArIU,EAqIF,CAAC,CAAD,EAAI,CAAJ,CArIE,EAqIM,CAAC,CAAD,EAAI,CAAJ,CArIN,EAsIlB,CAAC,CAAD,EAAI,CAAJ,CAtIkB,EAsIV,CAAC,CAAD,EAAI,CAAJ,CAtIU,EAsIF,CAAC,CAAD,EAAI,CAAJ,CAtIE,EAsIM,CAAC,CAAD,EAAI,CAAJ,CAtIN,EAuIlB,CAAC,CAAD,EAAI,CAAJ,CAvIkB,EAuIV,CAAC,CAAD,EAAI,CAAJ,CAvIU,EAuIF,CAAC,CAAD,EAAI,CAAJ,CAvIE,EAuIM,CAAC,CAAD,EAAI,CAAJ,CAvIN,EAwIlB,CAAC,CAAD,EAAI,CAAJ,CAxIkB,EAwIV,CAAC,CAAD,EAAI,CAAJ,CAxIU,EAwIF,CAAC,CAAD,EAAI,CAAJ,CAxIE,EAwIM,CAAC,CAAD,EAAI,CAAJ,CAxIN,EAyIlB,CAAC,CAAD,EAAI,CAAJ,CAzIkB,EAyIV,CAAC,CAAD,EAAI,CAAJ,CAzIU,EAyIF,CAAC,CAAD,EAAI,CAAJ,CAzIE,EAyIM,CAAC,CAAD,EAAI,CAAJ,CAzIN,EA0IlB,CAAC,CAAD,EAAI,EAAJ,CA1IkB,EA0IT,CAAC,CAAD,EAAI,EAAJ,CA1IS,EA0IA,CAAC,CAAD,EAAI,EAAJ,CA1IA,EA0IS,CAAC,CAAD,EAAI,EAAJ,CA1IT,EA2IlB,CAAC,CAAD,EAAI,EAAJ,CA3IkB,EA2IT,CAAC,CAAD,EAAI,EAAJ,CA3IS,EA2IA,CAAC,CAAD,EAAI,EAAJ,CA3IA,EA2IS,CAAC,CAAD,EAAI,EAAJ,CA3IT,EA4IlB,CAAC,CAAD,EAAI,EAAJ,CA5IkB,EA4IT,CAAC,CAAD,EAAI,EAAJ,CA5IS,EA4IA,CAAC,CAAD,EAAI,EAAJ,CA5IA,EA4IS,CAAC,CAAD,EAAI,EAAJ,CA5IT,EA6IlB,CAAC,CAAD,EAAI,EAAJ,CA7IkB,EA6IT,CAAC,CAAD,EAAI,EAAJ,CA7IS,EA6IA,CAAC,CAAD,EAAI,EAAJ,CA7IA,EA6IS,CAAC,CAAD,EAAI,EAAJ,CA7IT,EA8IlB,CAAC,CAAD,EAAI,EAAJ,CA9IkB,EA8IT,CAAC,CAAD,EAAI,EAAJ,CA9IS,EA8IA,CAAC,CAAD,EAAI,EAAJ,CA9IA,EA8IS,CAAC,CAAD,EAAI,EAAJ,CA9IT,EA+IlB,CAAC,CAAD,EAAI,EAAJ,CA/IkB,EA+IT,CAAC,CAAD,EAAI,EAAJ,CA/IS,EA+IA,CAAC,CAAD,EAAI,EAAJ,CA/IA,EA+IS,CAAC,CAAD,EAAI,EAAJ,CA/IT,EAgJlB,CAAC,CAAD,EAAI,EAAJ,CAhJkB,EAgJT,CAAC,CAAD,EAAI,EAAJ,CAhJS,EAgJA,CAAC,CAAD,EAAI,EAAJ,CAhJA,EAgJS,CAAC,CAAD,EAAI,EAAJ,CAhJT,EAiJlB,CAAC,CAAD,EAAI,EAAJ,CAjJkB,EAiJT,CAAC,CAAD,EAAI,EAAJ,CAjJS,EAiJA,CAAC,CAAD,EAAI,EAAJ,CAjJA,EAiJS,CAAC,CAAD,EAAI,EAAJ,CAjJT,EAkJlB,CAAC,CAAD,EAAI,CAAJ,CAlJkB,EAkJV,CAAC,CAAD,EAAI,CAAJ,CAlJU,EAkJF,CAAC,CAAD,EAAI,CAAJ,CAlJE,EAkJM,CAAC,CAAD,EAAI,CAAJ,CAlJN,EAmJlB,CAAC,CAAD,EAAI,CAAJ,CAnJkB,EAmJV,CAAC,CAAD,EAAI,CAAJ,CAnJU,EAmJF,CAAC,CAAD,EAAI,CAAJ,CAnJE,EAmJM,CAAC,CAAD,EAAI,CAAJ,CAnJN,EAoJlB,CAAC,CAAD,EAAI,CAAJ,CApJkB,EAoJV,CAAC,CAAD,EAAI,CAAJ,CApJU,EAoJF,CAAC,CAAD,EAAI,CAAJ,CApJE,EAoJM,CAAC,CAAD,EAAI,CAAJ,CApJN,EAqJlB,CAAC,CAAD,EAAI,CAAJ,CArJkB,EAqJV,CAAC,CAAD,EAAI,CAAJ,CArJU,EAqJF,CAAC,CAAD,EAAI,CAAJ,CArJE,EAqJM,CAAC,CAAD,EAAI,CAAJ,CArJN,EAsJlB,CAAC,CAAD,EAAI,CAAJ,CAtJkB,EAsJV,CAAC,CAAD,EAAI,CAAJ,CAtJU,EAsJF,CAAC,CAAD,EAAI,CAAJ,CAtJE,EAsJM,CAAC,CAAD,EAAI,CAAJ,CAtJN,EAuJlB,CAAC,CAAD,EAAI,CAAJ,CAvJkB,EAuJV,CAAC,CAAD,EAAI,CAAJ,CAvJU,EAuJF,CAAC,CAAD,EAAI,CAAJ,CAvJE,EAuJM,CAAC,CAAD,EAAI,CAAJ,CAvJN,EAwJlB,CAAC,CAAD,EAAI,CAAJ,CAxJkB,EAwJV,CAAC,CAAD,EAAI,CAAJ,CAxJU,EAwJF,CAAC,CAAD,EAAI,CAAJ,CAxJE,EAwJM,CAAC,CAAD,EAAI,CAAJ,CAxJN,EAyJlB,CAAC,CAAD,EAAI,CAAJ,CAzJkB,EAyJV,CAAC,CAAD,EAAI,CAAJ,CAzJU,EAyJF,CAAC,CAAD,EAAI,CAAJ,CAzJE,EAyJM,CAAC,CAAD,EAAI,CAAJ,CAzJN,EA0JlB,CAAC,CAAD,EAAI,CAAJ,CA1JkB,EA0JV,CAAC,CAAD,EAAI,CAAJ,CA1JU,EA0JF,CAAC,CAAD,EAAI,CAAJ,CA1JE,EA0JM,CAAC,CAAD,EAAI,CAAJ,CA1JN,EA2JlB,CAAC,CAAD,EAAI,CAAJ,CA3JkB,EA2JV,CAAC,CAAD,EAAI,CAAJ,CA3JU,EA2JF,CAAC,CAAD,EAAI,CAAJ,CA3JE,EA2JM,CAAC,CAAD,EAAI,CAAJ,CA3JN,EA4JlB,CAAC,CAAD,EAAI,CAAJ,CA5JkB,EA4JV,CAAC,CAAD,EAAI,CAAJ,CA5JU,EA4JF,CAAC,CAAD,EAAI,CAAJ,CA5JE,EA4JM,CAAC,CAAD,EAAI,CAAJ,CA5JN,EA6JlB,CAAC,CAAD,EAAI,CAAJ,CA7JkB,EA6JV,CAAC,CAAD,EAAI,CAAJ,CA7JU,EA6JF,CAAC,CAAD,EAAI,CAAJ,CA7JE,EA6JM,CAAC,CAAD,EAAI,CAAJ,CA7JN,EA8JlB,CAAC,CAAD,EAAI,CAAJ,CA9JkB,EA8JV,CAAC,CAAD,EAAI,CAAJ,CA9JU,EA8JF,CAAC,CAAD,EAAI,CAAJ,CA9JE,EA8JM,CAAC,CAAD,EAAI,CAAJ,CA9JN,EA+JlB,CAAC,CAAD,EAAI,CAAJ,CA/JkB,EA+JV,CAAC,CAAD,EAAI,CAAJ,CA/JU,EA+JF,CAAC,CAAD,EAAI,CAAJ,CA/JE,EA+JM,CAAC,CAAD,EAAI,CAAJ,CA/JN,EAgKlB,CAAC,CAAD,EAAI,CAAJ,CAhKkB,EAgKV,CAAC,CAAD,EAAI,CAAJ,CAhKU,EAgKF,CAAC,CAAD,EAAI,CAAJ,CAhKE,EAgKM,CAAC,CAAD,EAAI,CAAJ,CAhKN,EAiKlB,CAAC,CAAD,EAAI,CAAJ,CAjKkB,EAiKV,CAAC,CAAD,EAAI,CAAJ,CAjKU,EAiKF,CAAC,CAAD,EAAI,CAAJ,CAjKE,EAiKM,CAAC,CAAD,EAAI,CAAJ,CAjKN,CAApB;AAqKA,MAAMC,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EAElB,CAAC,EAAD,EAAKd,QAAL,CAFkB,EAEF,CAAC,EAAD,EAAKA,QAAL,CAFE,EAGlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHkB,EAGR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHQ,EAGE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHF,EAGY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHZ,EAIlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJkB,EAIR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJQ,EAIE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJF,EAIY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJZ,EAKlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALkB,EAKR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALQ,EAKE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALF,EAKY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALZ,EAMlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANkB,EAMR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANQ,EAME,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANF,EAMY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANZ,EAOlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPkB,EAOR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPQ,EAOE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPF,EAOY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPZ,EAQlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARkB,EAQR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARQ,EAQE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARF,EAQY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARZ,EASlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATkB,EASR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATQ,EASE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATF,EASY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATZ,EAUlB,CAAC,EAAD,EAAK,IAAL,CAVkB,EAUN,CAAC,EAAD,EAAK,IAAL,CAVM,EAUM,CAAC,EAAD,EAAK,IAAL,CAVN,EAUkB,CAAC,EAAD,EAAK,IAAL,CAVlB,EAWlB,CAAC,EAAD,EAAK,IAAL,CAXkB,EAWN,CAAC,EAAD,EAAK,IAAL,CAXM,EAYlB,CAAC,EAAD,EAAK,IAAL,CAZkB,EAYN,CAAC,EAAD,EAAK,IAAL,CAZM,EAalB,CAAC,EAAD,EAAK,IAAL,CAbkB,EAaN,CAAC,EAAD,EAAK,IAAL,CAbM,EAclB,CAAC,EAAD,EAAK,IAAL,CAdkB,EAcN,CAAC,EAAD,EAAK,IAAL,CAdM,EAelB,CAAC,EAAD,EAAK,IAAL,CAfkB,EAeN,CAAC,EAAD,EAAK,IAAL,CAfM,EAgBlB,CAAC,EAAD,EAAK,IAAL,CAhBkB,EAgBN,CAAC,EAAD,EAAK,IAAL,CAhBM,EAiBlB,CAAC,EAAD,EAAK,IAAL,CAjBkB,EAiBN,CAAC,EAAD,EAAK,IAAL,CAjBM,EAiBM,CAAC,EAAD,EAAK,IAAL,CAjBN,EAiBkB,CAAC,EAAD,EAAK,IAAL,CAjBlB,EAkBlB,CAAC,EAAD,EAAK,IAAL,CAlBkB,EAkBN,CAAC,EAAD,EAAK,IAAL,CAlBM,EAkBM,CAAC,EAAD,EAAK,IAAL,CAlBN,EAkBkB,CAAC,EAAD,EAAK,IAAL,CAlBlB,EAmBlB,CAAC,EAAD,EAAK,IAAL,CAnBkB,EAmBN,CAAC,EAAD,EAAK,IAAL,CAnBM,EAoBlB,CAAC,EAAD,EAAK,IAAL,CApBkB,EAoBN,CAAC,EAAD,EAAK,IAAL,CApBM,EAqBlB,CAAC,EAAD,EAAK,IAAL,CArBkB,EAqBN,CAAC,EAAD,EAAK,IAAL,CArBM,EAsBlB,CAAC,EAAD,EAAK,IAAL,CAtBkB,EAsBN,CAAC,EAAD,EAAK,IAAL,CAtBM,EAuBlB,CAAC,EAAD,EAAK,EAAL,CAvBkB,EAuBR,CAAC,EAAD,EAAK,EAAL,CAvBQ,EAuBE,CAAC,EAAD,EAAK,EAAL,CAvBF,EAuBY,CAAC,EAAD,EAAK,EAAL,CAvBZ,EAwBlB,CAAC,EAAD,EAAK,EAAL,CAxBkB,EAwBR,CAAC,EAAD,EAAK,EAAL,CAxBQ,EAwBE,CAAC,EAAD,EAAK,EAAL,CAxBF,EAwBY,CAAC,EAAD,EAAK,EAAL,CAxBZ,EAyBlB,CAAC,EAAD,EAAK,EAAL,CAzBkB,EAyBR,CAAC,EAAD,EAAK,EAAL,CAzBQ,EA0BlB,CAAC,EAAD,EAAK,GAAL,CA1BkB,EA2BlB,CAAC,EAAD,EAAK,GAAL,CA3BkB,EA4BlB,CAAC,EAAD,EAAK,GAAL,CA5BkB,EA6BlB,CAAC,EAAD,EAAK,GAAL,CA7BkB,EA8BlB,CAAC,EAAD,EAAK,EAAL,CA9BkB,EA8BR,CAAC,EAAD,EAAK,EAAL,CA9BQ,EA+BlB,CAAC,EAAD,EAAK,EAAL,CA/BkB,EA+BR,CAAC,EAAD,EAAK,EAAL,CA/BQ,EAgClB,CAAC,EAAD,EAAK,IAAL,CAhCkB,EAiClB,CAAC,EAAD,EAAK,IAAL,CAjCkB,EAkClB,CAAC,EAAD,EAAK,IAAL,CAlCkB,EAmClB,CAAC,EAAD,EAAK,IAAL,CAnCkB,EAoClB,CAAC,EAAD,EAAK,EAAL,CApCkB,EAoCR,CAAC,EAAD,EAAK,EAAL,CApCQ,EAqClB,CAAC,EAAD,EAAK,EAAL,CArCkB,EAqCR,CAAC,EAAD,EAAK,EAAL,CArCQ,EAsClB,CAAC,EAAD,EAAK,IAAL,CAtCkB,EAuClB,CAAC,EAAD,EAAK,IAAL,CAvCkB,EAwClB,CAAC,EAAD,EAAK,EAAL,CAxCkB,EAwCR,CAAC,EAAD,EAAK,EAAL,CAxCQ,EAwCE,CAAC,EAAD,EAAK,EAAL,CAxCF,EAwCY,CAAC,EAAD,EAAK,EAAL,CAxCZ,EAyClB,CAAC,EAAD,EAAK,EAAL,CAzCkB,EAyCR,CAAC,EAAD,EAAK,EAAL,CAzCQ,EAyCE,CAAC,EAAD,EAAK,EAAL,CAzCF,EAyCY,CAAC,EAAD,EAAK,EAAL,CAzCZ,EA0ClB,CAAC,EAAD,EAAK,IAAL,CA1CkB,EA2ClB,CAAC,EAAD,EAAK,IAAL,CA3CkB,EA4ClB,CAAC,EAAD,EAAK,GAAL,CA5CkB,EA4CP,CAAC,EAAD,EAAK,GAAL,CA5CO,EA6ClB,CAAC,EAAD,EAAK,GAAL,CA7CkB,EA6CP,CAAC,EAAD,EAAK,GAAL,CA7CO,EA8ClB,CAAC,EAAD,EAAK,GAAL,CA9CkB,EA8CP,CAAC,EAAD,EAAK,GAAL,CA9CO,EA+ClB,CAAC,EAAD,EAAK,GAAL,CA/CkB,EAgDlB,CAAC,EAAD,EAAK,GAAL,CAhDkB,EAiDlB,CAAC,EAAD,EAAK,EAAL,CAjDkB,EAiDR,CAAC,EAAD,EAAK,EAAL,CAjDQ,EAkDlB,CAAC,EAAD,EAAK,EAAL,CAlDkB,EAkDR,CAAC,EAAD,EAAK,EAAL,CAlDQ,EAmDlB,CAAC,EAAD,EAAK,GAAL,CAnDkB,EAoDlB,CAAC,EAAD,EAAK,GAAL,CApDkB,EAqDlB,CAAC,EAAD,EAAK,IAAL,CArDkB,EAsDlB,CAAC,EAAD,EAAK,IAAL,CAtDkB,EAuDlB,CAAC,EAAD,EAAK,IAAL,CAvDkB,EAwDlB,CAAC,EAAD,EAAK,IAAL,CAxDkB,EAyDlB,CAAC,EAAD,EAAK,EAAL,CAzDkB,EAyDR,CAAC,EAAD,EAAK,EAAL,CAzDQ,EAyDE,CAAC,EAAD,EAAK,EAAL,CAzDF,EAyDY,CAAC,EAAD,EAAK,EAAL,CAzDZ,EA0DlB,CAAC,EAAD,EAAK,EAAL,CA1DkB,EA0DR,CAAC,EAAD,EAAK,EAAL,CA1DQ,EA0DE,CAAC,EAAD,EAAK,EAAL,CA1DF,EA0DY,CAAC,EAAD,EAAK,EAAL,CA1DZ,CAApB;AA8DA,MAAMe,cAAc,CAClB,CAAC,CAAD,EAAI,EAAJ,CADkB,EACT,CAAC,CAAD,EAAI,EAAJ,CADS,EACA,CAAC,CAAD,EAAI,EAAJ,CADA,EACS,CAAC,CAAD,EAAI,EAAJ,CADT,EAElB,CAAC,CAAD,EAAI,EAAJ,CAFkB,EAET,CAAC,CAAD,EAAI,EAAJ,CAFS,EAEA,CAAC,CAAD,EAAI,EAAJ,CAFA,EAES,CAAC,CAAD,EAAI,EAAJ,CAFT,EAGlB,CAAC,CAAD,EAAI,EAAJ,CAHkB,EAGT,CAAC,CAAD,EAAI,EAAJ,CAHS,EAGA,CAAC,CAAD,EAAI,EAAJ,CAHA,EAGS,CAAC,CAAD,EAAI,EAAJ,CAHT,EAIlB,CAAC,CAAD,EAAI,EAAJ,CAJkB,EAIT,CAAC,CAAD,EAAI,EAAJ,CAJS,EAIA,CAAC,CAAD,EAAI,EAAJ,CAJA,EAIS,CAAC,CAAD,EAAI,EAAJ,CAJT,EAKlB,CAAC,EAAD,EAAK,EAAL,CALkB,EAKR,CAAC,EAAD,EAAK,EAAL,CALQ,EAMlB,CAAC,EAAD,EAAK,EAAL,CANkB,EAOlB,CAAC,EAAD,EAAK,EAAL,CAPkB,EAQlB,CAAC,EAAD,EAAK,EAAL,CARkB,EASlB,CAAC,EAAD,EAAK,EAAL,CATkB,EAUlB,CAAC,EAAD,EAAK,EAAL,CAVkB,EAWlB,CAAC,EAAD,EAAK,EAAL,CAXkB,EAYlB,CAAC,EAAD,EAAK,EAAL,CAZkB,EAalB,CAAC,EAAD,EAAK,EAAL,CAbkB,EAclB,CAAC,EAAD,EAAK,EAAL,CAdkB,EAelB,CAAC,EAAD,EAAK,GAAL,CAfkB,EAgBlB,CAAC,EAAD,EAAK,EAAL,CAhBkB,EAgBR,CAAC,EAAD,EAAK,EAAL,CAhBQ,EAgBE,CAAC,EAAD,EAAK,EAAL,CAhBF,EAgBY,CAAC,EAAD,EAAK,EAAL,CAhBZ,EAiBlB,CAAC,EAAD,EAAK,EAAL,CAjBkB,EAiBR,CAAC,EAAD,EAAK,EAAL,CAjBQ,EAiBE,CAAC,EAAD,EAAK,EAAL,CAjBF,EAiBY,CAAC,EAAD,EAAK,EAAL,CAjBZ,EAkBlB,CAAC,EAAD,EAAK,EAAL,CAlBkB,EAmBlB,CAAC,EAAD,EAAK,EAAL,CAnBkB,EAoBlB,CAAC,EAAD,EAAK,EAAL,CApBkB,EAqBlB,CAAC,EAAD,EAAK,EAAL,CArBkB,EAsBlB,CAAC,EAAD,EAAK,EAAL,CAtBkB,EAuBlB,CAAC,EAAD,EAAK,EAAL,CAvBkB,EAwBlB,CAAC,EAAD,EAAK,EAAL,CAxBkB,EAyBlB,CAAC,EAAD,EAAK,EAAL,CAzBkB,EA0BlB,CAAC,EAAD,EAAK,EAAL,CA1BkB,EA2BlB,CAAC,EAAD,EAAK,EAAL,CA3BkB,EA4BlB,CAAC,EAAD,EAAK,EAAL,CA5BkB,EA4BR,CAAC,EAAD,EAAK,EAAL,CA5BQ,EA6BlB,CAAC,CAAD,EAAI,EAAJ,CA7BkB,EA6BT,CAAC,CAAD,EAAI,EAAJ,CA7BS,EA6BA,CAAC,CAAD,EAAI,EAAJ,CA7BA,EA6BS,CAAC,CAAD,EAAI,EAAJ,CA7BT,EA8BlB,CAAC,CAAD,EAAI,EAAJ,CA9BkB,EA8BT,CAAC,CAAD,EAAI,EAAJ,CA9BS,EA8BA,CAAC,CAAD,EAAI,EAAJ,CA9BA,EA8BS,CAAC,CAAD,EAAI,EAAJ,CA9BT,EA+BlB,CAAC,CAAD,EAAI,EAAJ,CA/BkB,EA+BT,CAAC,CAAD,EAAI,EAAJ,CA/BS,EA+BA,CAAC,CAAD,EAAI,EAAJ,CA/BA,EA+BS,CAAC,CAAD,EAAI,EAAJ,CA/BT,EAgClB,CAAC,CAAD,EAAI,EAAJ,CAhCkB,EAgCT,CAAC,CAAD,EAAI,EAAJ,CAhCS,EAgCA,CAAC,CAAD,EAAI,EAAJ,CAhCA,EAgCS,CAAC,CAAD,EAAI,EAAJ,CAhCT,EAiClB,CAAC,CAAD,EAAI,EAAJ,CAjCkB,EAiCT,CAAC,CAAD,EAAI,EAAJ,CAjCS,EAiCA,CAAC,CAAD,EAAI,EAAJ,CAjCA,EAiCS,CAAC,CAAD,EAAI,EAAJ,CAjCT,EAkClB,CAAC,CAAD,EAAI,EAAJ,CAlCkB,EAkCT,CAAC,CAAD,EAAI,EAAJ,CAlCS,EAkCA,CAAC,CAAD,EAAI,EAAJ,CAlCA,EAkCS,CAAC,CAAD,EAAI,EAAJ,CAlCT,EAmClB,CAAC,CAAD,EAAI,EAAJ,CAnCkB,EAmCT,CAAC,CAAD,EAAI,EAAJ,CAnCS,EAmCA,CAAC,CAAD,EAAI,EAAJ,CAnCA,EAmCS,CAAC,CAAD,EAAI,EAAJ,CAnCT,EAoClB,CAAC,CAAD,EAAI,EAAJ,CApCkB,EAoCT,CAAC,CAAD,EAAI,EAAJ,CApCS,EAoCA,CAAC,CAAD,EAAI,EAAJ,CApCA,EAoCS,CAAC,CAAD,EAAI,EAAJ,CApCT,EAqClB,CAAC,CAAD,EAAI,EAAJ,CArCkB,EAqCT,CAAC,CAAD,EAAI,EAAJ,CArCS,EAqCA,CAAC,CAAD,EAAI,EAAJ,CArCA,EAqCS,CAAC,CAAD,EAAI,EAAJ,CArCT,EAsClB,CAAC,CAAD,EAAI,EAAJ,CAtCkB,EAsCT,CAAC,CAAD,EAAI,EAAJ,CAtCS,EAsCA,CAAC,CAAD,EAAI,EAAJ,CAtCA,EAsCS,CAAC,CAAD,EAAI,EAAJ,CAtCT,EAuClB,CAAC,CAAD,EAAI,EAAJ,CAvCkB,EAuCT,CAAC,CAAD,EAAI,EAAJ,CAvCS,EAuCA,CAAC,CAAD,EAAI,EAAJ,CAvCA,EAuCS,CAAC,CAAD,EAAI,EAAJ,CAvCT,EAwClB,CAAC,CAAD,EAAI,EAAJ,CAxCkB,EAwCT,CAAC,CAAD,EAAI,EAAJ,CAxCS,EAwCA,CAAC,CAAD,EAAI,EAAJ,CAxCA,EAwCS,CAAC,CAAD,EAAI,EAAJ,CAxCT,EAyClB,CAAC,CAAD,EAAI,EAAJ,CAzCkB,EAyCT,CAAC,CAAD,EAAI,EAAJ,CAzCS,EAyCA,CAAC,CAAD,EAAI,EAAJ,CAzCA,EAyCS,CAAC,CAAD,EAAI,EAAJ,CAzCT,EA0ClB,CAAC,CAAD,EAAI,EAAJ,CA1CkB,EA0CT,CAAC,CAAD,EAAI,EAAJ,CA1CS,EA0CA,CAAC,CAAD,EAAI,EAAJ,CA1CA,EA0CS,CAAC,CAAD,EAAI,EAAJ,CA1CT,EA2ClB,CAAC,CAAD,EAAI,EAAJ,CA3CkB,EA2CT,CAAC,CAAD,EAAI,EAAJ,CA3CS,EA2CA,CAAC,CAAD,EAAI,EAAJ,CA3CA,EA2CS,CAAC,CAAD,EAAI,EAAJ,CA3CT,EA4ClB,CAAC,CAAD,EAAI,EAAJ,CA5CkB,EA4CT,CAAC,CAAD,EAAI,EAAJ,CA5CS,EA4CA,CAAC,CAAD,EAAI,EAAJ,CA5CA,EA4CS,CAAC,CAAD,EAAI,EAAJ,CA5CT,EA6ClB,CAAC,CAAD,EAAI,EAAJ,CA7CkB,EA6CT,CAAC,CAAD,EAAI,EAAJ,CA7CS,EA6CA,CAAC,CAAD,EAAI,EAAJ,CA7CA,EA6CS,CAAC,CAAD,EAAI,EAAJ,CA7CT,EA8ClB,CAAC,CAAD,EAAI,EAAJ,CA9CkB,EA8CT,CAAC,CAAD,EAAI,EAAJ,CA9CS,EA8CA,CAAC,CAAD,EAAI,EAAJ,CA9CA,EA8CS,CAAC,CAAD,EAAI,EAAJ,CA9CT,EA+ClB,CAAC,CAAD,EAAI,EAAJ,CA/CkB,EA+CT,CAAC,CAAD,EAAI,EAAJ,CA/CS,EA+CA,CAAC,CAAD,EAAI,EAAJ,CA/CA,EA+CS,CAAC,CAAD,EAAI,EAAJ,CA/CT,EAgDlB,CAAC,CAAD,EAAI,EAAJ,CAhDkB,EAgDT,CAAC,CAAD,EAAI,EAAJ,CAhDS,EAgDA,CAAC,CAAD,EAAI,EAAJ,CAhDA,EAgDS,CAAC,CAAD,EAAI,EAAJ,CAhDT,EAiDlB,CAAC,CAAD,EAAI,EAAJ,CAjDkB,EAiDT,CAAC,CAAD,EAAI,EAAJ,CAjDS,EAiDA,CAAC,CAAD,EAAI,EAAJ,CAjDA,EAiDS,CAAC,CAAD,EAAI,EAAJ,CAjDT,EAkDlB,CAAC,CAAD,EAAI,EAAJ,CAlDkB,EAkDT,CAAC,CAAD,EAAI,EAAJ,CAlDS,EAkDA,CAAC,CAAD,EAAI,EAAJ,CAlDA,EAkDS,CAAC,CAAD,EAAI,EAAJ,CAlDT,EAmDlB,CAAC,EAAD,EAAK,GAAL,CAnDkB,EAoDlB,CAAC,EAAD,EAAK,GAAL,CApDkB,EAqDlB,CAAC,EAAD,EAAK,EAAL,CArDkB,EAsDlB,CAAC,EAAD,EAAK,EAAL,CAtDkB,EAuDlB,CAAC,EAAD,EAAK,EAAL,CAvDkB,EAwDlB,CAAC,EAAD,EAAK,EAAL,CAxDkB,EAyDlB,CAAC,EAAD,EAAK,EAAL,CAzDkB,EAyDR,CAAC,EAAD,EAAK,EAAL,CAzDQ,EA0DlB,CAAC,EAAD,EAAK,EAAL,CA1DkB,EA0DR,CAAC,EAAD,EAAK,EAAL,CA1DQ,EA2DlB,CAAC,EAAD,EAAK,EAAL,CA3DkB,EA4DlB,CAAC,EAAD,EAAK,EAAL,CA5DkB,EA6DlB,CAAC,EAAD,EAAK,EAAL,CA7DkB,EA8DlB,CAAC,EAAD,EAAK,EAAL,CA9DkB,EA+DlB,CAAC,EAAD,EAAK,EAAL,CA/DkB,EAgElB,CAAC,EAAD,EAAK,EAAL,CAhEkB,EAiElB,CAAC,EAAD,EAAK,EAAL,CAjEkB,EAiER,CAAC,EAAD,EAAK,EAAL,CAjEQ,EAkElB,CAAC,EAAD,EAAK,EAAL,CAlEkB,EAmElB,CAAC,EAAD,EAAK,EAAL,CAnEkB,EAoElB,CAAC,EAAD,EAAK,CAAL,CApEkB,EAoET,CAAC,EAAD,EAAK,CAAL,CApES,EAoEA,CAAC,EAAD,EAAK,CAAL,CApEA,EAoES,CAAC,EAAD,EAAK,CAAL,CApET,EAqElB,CAAC,CAAD,EAAI,EAAJ,CArEkB,EAqET,CAAC,CAAD,EAAI,EAAJ,CArES,EAqEA,CAAC,CAAD,EAAI,EAAJ,CArEA,EAqES,CAAC,CAAD,EAAI,EAAJ,CArET,EAsElB,CAAC,CAAD,EAAI,EAAJ,CAtEkB,EAsET,CAAC,CAAD,EAAI,EAAJ,CAtES,EAsEA,CAAC,CAAD,EAAI,EAAJ,CAtEA,EAsES,CAAC,CAAD,EAAI,EAAJ,CAtET,EAuElB,CAAC,CAAD,EAAI,EAAJ,CAvEkB,EAuET,CAAC,CAAD,EAAI,EAAJ,CAvES,EAuEA,CAAC,CAAD,EAAI,EAAJ,CAvEA,EAuES,CAAC,CAAD,EAAI,EAAJ,CAvET,EAwElB,CAAC,CAAD,EAAI,EAAJ,CAxEkB,EAwET,CAAC,CAAD,EAAI,EAAJ,CAxES,EAwEA,CAAC,CAAD,EAAI,EAAJ,CAxEA,EAwES,CAAC,CAAD,EAAI,EAAJ,CAxET,EAyElB,CAAC,CAAD,EAAI,EAAJ,CAzEkB,EAyET,CAAC,CAAD,EAAI,EAAJ,CAzES,EAyEA,CAAC,CAAD,EAAI,EAAJ,CAzEA,EAyES,CAAC,CAAD,EAAI,EAAJ,CAzET,EA0ElB,CAAC,CAAD,EAAI,EAAJ,CA1EkB,EA0ET,CAAC,CAAD,EAAI,EAAJ,CA1ES,EA0EA,CAAC,CAAD,EAAI,EAAJ,CA1EA,EA0ES,CAAC,CAAD,EAAI,EAAJ,CA1ET,EA2ElB,CAAC,CAAD,EAAI,EAAJ,CA3EkB,EA2ET,CAAC,CAAD,EAAI,EAAJ,CA3ES,EA2EA,CAAC,CAAD,EAAI,EAAJ,CA3EA,EA2ES,CAAC,CAAD,EAAI,EAAJ,CA3ET,EA4ElB,CAAC,CAAD,EAAI,EAAJ,CA5EkB,EA4ET,CAAC,CAAD,EAAI,EAAJ,CA5ES,EA4EA,CAAC,CAAD,EAAI,EAAJ,CA5EA,EA4ES,CAAC,CAAD,EAAI,EAAJ,CA5ET,CAApB;AAgFA,MAAMC,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EACE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADF,EACY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADZ,EAElB,CAAC,CAAD,EAAI,CAAJ,CAFkB,EAGlB,CAAC,CAAD,EAAI,CAAJ,CAHkB,EAIlB,CAAC,CAAD,EAAI,CAAJ,CAJkB,EAIV,CAAC,CAAD,EAAI,CAAJ,CAJU,EAKlB,CAAC,CAAD,EAAI,CAAJ,CALkB,EAKV,CAAC,CAAD,EAAI,CAAJ,CALU,EAKF,CAAC,CAAD,EAAI,CAAJ,CALE,EAKM,CAAC,CAAD,EAAI,CAAJ,CALN,EAMlB,CAAC,CAAD,EAAI,CAAJ,CANkB,EAMV,CAAC,CAAD,EAAI,CAAJ,CANU,EAMF,CAAC,CAAD,EAAI,CAAJ,CANE,EAMM,CAAC,CAAD,EAAI,CAAJ,CANN,EAOlB,CAAC,CAAD,EAAI,CAAJ,CAPkB,EAOV,CAAC,CAAD,EAAI,CAAJ,CAPU,EAOF,CAAC,CAAD,EAAI,CAAJ,CAPE,EAOM,CAAC,CAAD,EAAI,CAAJ,CAPN,EAQlB,CAAC,CAAD,EAAI,CAAJ,CARkB,EAQV,CAAC,CAAD,EAAI,CAAJ,CARU,EAQF,CAAC,CAAD,EAAI,CAAJ,CARE,EAQM,CAAC,CAAD,EAAI,CAAJ,CARN,EASlB,CAAC,CAAD,EAAI,CAAJ,CATkB,EASV,CAAC,CAAD,EAAI,CAAJ,CATU,EASF,CAAC,CAAD,EAAI,CAAJ,CATE,EASM,CAAC,CAAD,EAAI,CAAJ,CATN,EAUlB,CAAC,CAAD,EAAI,CAAJ,CAVkB,EAUV,CAAC,CAAD,EAAI,CAAJ,CAVU,EAUF,CAAC,CAAD,EAAI,CAAJ,CAVE,EAUM,CAAC,CAAD,EAAI,CAAJ,CAVN,EAWlB,CAAC,CAAD,EAAI,CAAJ,CAXkB,EAWV,CAAC,CAAD,EAAI,CAAJ,CAXU,EAWF,CAAC,CAAD,EAAI,CAAJ,CAXE,EAWM,CAAC,CAAD,EAAI,CAAJ,CAXN,EAYlB,CAAC,CAAD,EAAI,CAAJ,CAZkB,EAYV,CAAC,CAAD,EAAI,CAAJ,CAZU,EAYF,CAAC,CAAD,EAAI,CAAJ,CAZE,EAYM,CAAC,CAAD,EAAI,CAAJ,CAZN,EAalB,CAAC,CAAD,EAAI,CAAJ,CAbkB,EAaV,CAAC,CAAD,EAAI,CAAJ,CAbU,EAaF,CAAC,CAAD,EAAI,CAAJ,CAbE,EAaM,CAAC,CAAD,EAAI,CAAJ,CAbN,EAclB,CAAC,CAAD,EAAI,CAAJ,CAdkB,EAcV,CAAC,CAAD,EAAI,CAAJ,CAdU,EAcF,CAAC,CAAD,EAAI,CAAJ,CAdE,EAcM,CAAC,CAAD,EAAI,CAAJ,CAdN,EAelB,CAAC,CAAD,EAAI,CAAJ,CAfkB,EAeV,CAAC,CAAD,EAAI,CAAJ,CAfU,EAeF,CAAC,CAAD,EAAI,CAAJ,CAfE,EAeM,CAAC,CAAD,EAAI,CAAJ,CAfN,EAgBlB,CAAC,CAAD,EAAI,CAAJ,CAhBkB,EAgBV,CAAC,CAAD,EAAI,CAAJ,CAhBU,EAgBF,CAAC,CAAD,EAAI,CAAJ,CAhBE,EAgBM,CAAC,CAAD,EAAI,CAAJ,CAhBN,EAiBlB,CAAC,CAAD,EAAI,CAAJ,CAjBkB,EAiBV,CAAC,CAAD,EAAI,CAAJ,CAjBU,EAiBF,CAAC,CAAD,EAAI,CAAJ,CAjBE,EAiBM,CAAC,CAAD,EAAI,CAAJ,CAjBN,EAkBlB,CAAC,CAAD,EAAI,CAAJ,CAlBkB,EAkBV,CAAC,CAAD,EAAI,CAAJ,CAlBU,EAkBF,CAAC,CAAD,EAAI,CAAJ,CAlBE,EAkBM,CAAC,CAAD,EAAI,CAAJ,CAlBN,CAApB;;AAyBA,MAAM7N,eAAN,CAAsB;EACpB3hB,YAAYyvB,MAAZ,EAAoBjxB,UAAU,EAA9B,EAAkC;IAChC,IAAI,CAACixB,MAAD,IAAW,OAAOA,OAAO/O,IAAd,KAAuB,UAAtC,EAAkD;MAChD,MAAM,IAAI1iB,KAAJ,CAAU,+CAAV,CAAN;IAF8B;;IAIhC,KAAKyxB,MAAL,GAAcA,MAAd;IACA,KAAK7N,GAAL,GAAW,KAAX;IAEA,KAAKxZ,QAAL,GAAgB5J,QAAQpL,CAARoL,IAAa,CAA7B;IACA,KAAKkxB,MAAL,GAAclxB,QAAQmxB,SAARnxB,IAAqB,KAAnC;IACA,KAAKuU,SAAL,GAAiBvU,QAAQoxB,gBAARpxB,IAA4B,KAA7C;IACA,KAAKqxB,OAAL,GAAerxB,QAAQ+iB,OAAR/iB,IAAmB,IAAlC;IACA,KAAKsxB,IAAL,GAAYtxB,QAAQgjB,IAARhjB,IAAgB,CAA5B;IACA,IAAIuxB,UAAUvxB,QAAQkjB,UAAtB;;IACA,IAAIqO,YAAY,IAAZA,IAAoBA,YAAYjvB,SAApC,EAA+C;MAC7CivB,UAAU,IAAVA;IAd8B;;IAgBhC,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKC,KAAL,GAAaxxB,QAAQijB,QAARjjB,IAAoB,KAAjC;IAEA,KAAKyxB,UAAL,GAAkB,IAAI7sB,WAAJ,CAAgB,KAAKysB,OAAL,GAAe,CAA/B,CAAlB;IACA,KAAKK,OAAL,GAAe,IAAI9sB,WAAJ,CAAgB,KAAKysB,OAAL,GAAe,CAA/B,CAAf;IAEA,KAAKI,UAAL,CAAgB,CAAhB,IAAqB,KAAKJ,OAA1B;IACA,KAAKM,SAAL,GAAiB,CAAjB;IAEA,KAAK3iB,GAAL,GAAW,CAAX;IACA,KAAK4iB,UAAL,GAAkB,KAAKhoB,QAAL,GAAgB,CAAlC;IACA,KAAKioB,SAAL,GAAiB,CAAjB;IACA,KAAKC,QAAL,GAAgB,CAAhB;IACA,KAAKC,UAAL,GAAkB,CAAlB;IACA,KAAKC,QAAL,GAAgB,KAAhB;IAEA,IAAIC,KAAJ;;IACA,OAAQ,SAAQ,KAAKC,SAAL,CAAe,EAAf,CAAR,MAAgC,CAAxC,EAA2C;MACzC,KAAKC,QAAL,CAAc,CAAd;IAlC8B;;IAoChC,IAAIF,UAAU,CAAd,EAAiB;MACf,KAAKE,QAAL,CAAc,EAAd;IArC8B;;IAuChC,IAAI,KAAKvoB,QAAL,GAAgB,CAApB,EAAuB;MACrB,KAAKgoB,UAAL,GAAkB,CAAC,KAAKM,SAAL,CAAe,CAAf,CAAnB;;MACA,KAAKC,QAAL,CAAc,CAAd;IAzC8B;EADd;;EA8CpB9O,eAAe;IACb,IAAI,KAAKD,GAAT,EAAc;MACZ,OAAO,CAAC,CAAR;IAFW;;IAIb,MAAMsO,UAAU,KAAKA,OAArB;IACA,MAAMD,aAAa,KAAKA,UAAxB;IACA,MAAMJ,UAAU,KAAKA,OAArB;IAEA,IAAIe,MAAJ,EAAYC,WAAZ,EAAyBC,IAAzB,EAA+B1vB,CAA/B;;IAEA,IAAI,KAAKmvB,UAAL,KAAoB,CAAxB,EAA2B;MACzB,IAAI,KAAKC,QAAT,EAAmB;QACjB,KAAK5O,GAAL,GAAW,IAAX;MAFuB;;MAIzB,IAAI,KAAKA,GAAT,EAAc;QACZ,OAAO,CAAC,CAAR;MALuB;;MAOzB,KAAKmP,GAAL,GAAW,KAAX;MAEA,IAAIN,KAAJ,EAAWO,KAAX,EAAkBC,KAAlB;;MACA,IAAI,KAAKb,UAAT,EAAqB;QACnB,KAAKhvB,IAAI,CAAT,EAAY6uB,WAAW7uB,CAAX,IAAgByuB,OAA5B,EAAqC,EAAEzuB,CAAvC,EAA0C;UACxC8uB,QAAQ9uB,CAAR,IAAa6uB,WAAW7uB,CAAX,CAAb8uB;QAFiB;;QAInBA,QAAQ9uB,GAAR,IAAeyuB,OAAfK;QACAA,QAAQ9uB,CAAR,IAAayuB,OAAbK;QACAD,WAAW,CAAX,IAAgB,CAAhBA;QACA,KAAKE,SAAL,GAAiB,CAAjB;QACAS,SAAS,CAATA;QACAC,cAAc,CAAdA;;QAEA,OAAOZ,WAAW,KAAKE,SAAhB,IAA6BN,OAApC,EAA6C;UAC3CY,QAAQ,KAAKS,cAAL,EAART;;UACA,QAAQA,KAAR;YACE,KAAK/B,UAAL;cACE,KAAKyC,UAAL,CAAgBjB,QAAQU,SAAS,CAAjB,CAAhB,EAAqCC,WAArC;;cACA,IAAIX,QAAQU,SAAS,CAAjB,IAAsBf,OAA1B,EAAmC;gBACjCe,UAAU,CAAVA;cAHJ;;cAKE;;YACF,KAAKjC,WAAL;cACE8B,QAAQO,QAAQ,CAAhBP;;cACA,IAAII,WAAJ,EAAiB;gBACf,GAAG;kBACDJ,SAASQ,QAAQ,KAAKG,aAAL,EAAjBX;gBADF,SAESQ,SAAS,EAFlB;;gBAGA,GAAG;kBACDD,SAASC,QAAQ,KAAKI,aAAL,EAAjBL;gBADF,SAESC,SAAS,EAFlB;cAJF,OAOO;gBACL,GAAG;kBACDR,SAASQ,QAAQ,KAAKI,aAAL,EAAjBZ;gBADF,SAESQ,SAAS,EAFlB;;gBAGA,GAAG;kBACDD,SAASC,QAAQ,KAAKG,aAAL,EAAjBJ;gBADF,SAESC,SAAS,EAFlB;cAbJ;;cAiBE,KAAKE,UAAL,CAAgBlB,WAAW,KAAKE,SAAhB,IAA6BM,KAA7C,EAAoDI,WAApD;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,KAAKsB,UAAL,CACElB,WAAW,KAAKE,SAAhB,IAA6Ba,KAD/B,EAEEH,cAAc,CAFhB;cAnBJ;;cAwBE,OACEX,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;gBACAe,UAAU,CAAVA;cA5BJ;;cA8BE;;YACF,KAAK3B,YAAL;cACE,KAAKkC,UAAL,CAAgBjB,QAAQU,MAAR,IAAkB,CAAlC,EAAqCC,WAArC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEe,MAAF;;gBACA,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAK7B,YAAL;cACE,KAAKoC,UAAL,CAAgBjB,QAAQU,MAAR,IAAkB,CAAlC,EAAqCC,WAArC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEe,MAAF;;gBACA,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAK/B,YAAL;cACE,KAAKsC,UAAL,CAAgBjB,QAAQU,MAAR,IAAkB,CAAlC,EAAqCC,WAArC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEe,MAAF;;gBACA,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAKhC,WAAL;cACE,KAAKuC,UAAL,CAAgBjB,QAAQU,MAAR,CAAhB,EAAiCC,WAAjC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEe,MAAF;;gBACA,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAK1B,YAAL;cACE,KAAKoC,aAAL,CAAmBpB,QAAQU,MAAR,IAAkB,CAArC,EAAwCC,WAAxC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,IAAIe,SAAS,CAAb,EAAgB;kBACd,EAAEA,MAAF;gBADF,OAEO;kBACL,EAAEA,MAAF;gBAJsC;;gBAMxC,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBAVsC;cAH5C;;cAgBE;;YACF,KAAK5B,YAAL;cACE,KAAKsC,aAAL,CAAmBpB,QAAQU,MAAR,IAAkB,CAArC,EAAwCC,WAAxC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,IAAIe,SAAS,CAAb,EAAgB;kBACd,EAAEA,MAAF;gBADF,OAEO;kBACL,EAAEA,MAAF;gBAJsC;;gBAMxC,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBAVsC;cAH5C;;cAgBE;;YACF,KAAK9B,YAAL;cACE,KAAKwC,aAAL,CAAmBpB,QAAQU,MAAR,IAAkB,CAArC,EAAwCC,WAAxC;;cACAA,eAAe,CAAfA;;cACA,IAAIZ,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,IAAIe,SAAS,CAAb,EAAgB;kBACd,EAAEA,MAAF;gBADF,OAEO;kBACL,EAAEA,MAAF;gBAJsC;;gBAMxC,OACEV,QAAQU,MAAR,KAAmBX,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQU,MAAR,IAAkBf,OAFpB,EAGE;kBACAe,UAAU,CAAVA;gBAVsC;cAH5C;;cAgBE;;YACF,KAAKnC,QAAL;cACE,KAAK0C,UAAL,CAAgBtB,OAAhB,EAAyB,CAAzB;;cACA,KAAKjO,GAAL,GAAW,IAAX;cACA;;YACF;cACElkB,gBAAK,aAALA;;cACA,KAAKyzB,UAAL,CAAgBtB,OAAhB,EAAyB,CAAzB;;cACA,KAAKkB,GAAL,GAAW,IAAX;UApJJ;QAbiB;MAArB,OAoKO;QACLd,WAAW,CAAX,IAAgB,CAAhBA;QACA,KAAKE,SAAL,GAAiB,CAAjB;QACAU,cAAc,CAAdA;;QACA,OAAOZ,WAAW,KAAKE,SAAhB,IAA6BN,OAApC,EAA6C;UAC3CY,QAAQ,CAARA;;UACA,IAAII,WAAJ,EAAiB;YACf,GAAG;cACDJ,SAASQ,QAAQ,KAAKG,aAAL,EAAjBX;YADF,SAESQ,SAAS,EAFlB;UADF,OAIO;YACL,GAAG;cACDR,SAASQ,QAAQ,KAAKI,aAAL,EAAjBZ;YADF,SAESQ,SAAS,EAFlB;UAPyC;;UAW3C,KAAKE,UAAL,CAAgBlB,WAAW,KAAKE,SAAhB,IAA6BM,KAA7C,EAAoDI,WAApD;;UACAA,eAAe,CAAfA;QAhBG;MA9KkB;;MAkMzB,IAAIU,SAAS,KAAb;;MAEA,IAAI,KAAKxe,SAAT,EAAoB;QAClB,KAAKsd,SAAL,IAAkB,CAAC,CAAnB;MArMuB;;MAwMzB,IAAI,CAAC,KAAKN,OAAN,IAAiB,KAAKviB,GAAL,KAAa,KAAKsiB,IAAL,GAAY,CAA9C,EAAiD;QAC/C,KAAKU,QAAL,GAAgB,IAAhB;MADF,OAEO;QACLC,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;QACA,IAAI,KAAKf,MAAT,EAAiB;UACf,OAAOe,UAAUhC,QAAVgC,IAAsBA,UAAU,CAAvC,EAA0C;YACxC,KAAKE,QAAL,CAAc,CAAd;;YACAF,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;UAHa;QAAjB,OAKO;UACL,OAAOA,UAAU,CAAjB,EAAoB;YAClB,KAAKE,QAAL,CAAc,CAAd;;YACAF,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;UAHG;QAPF;;QAaL,IAAIA,UAAU,CAAd,EAAiB;UACf,KAAKE,QAAL,CAAc,EAAd;;UACAY,SAAS,IAATA;QAFF,OAGO,IAAId,UAAUhC,QAAd,EAAwB;UAC7B,KAAK7M,GAAL,GAAW,IAAX;QAjBG;MA1MkB;;MA+NzB,IAAI,CAAC,KAAKA,GAAN,IAAa,KAAKxZ,QAAL,GAAgB,CAA7B,IAAkC,CAAC,KAAKooB,QAA5C,EAAsD;QACpD,KAAKJ,UAAL,GAAkB,CAAC,KAAKM,SAAL,CAAe,CAAf,CAAnB;;QACA,KAAKC,QAAL,CAAc,CAAd;MAjOuB;;MAoOzB,IAAI,KAAKZ,OAAL,IAAgBwB,MAAhB,IAA0B,KAAKxe,SAAnC,EAA8C;QAC5C0d,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;QACA,IAAIA,UAAU,CAAd,EAAiB;UACf,KAAKE,QAAL,CAAc,EAAd;;UACA,IAAI,KAAKvoB,QAAL,GAAgB,CAApB,EAAuB;YACrB,KAAKsoB,SAAL,CAAe,CAAf;;YACA,KAAKC,QAAL,CAAc,CAAd;UAJa;;UAMf,IAAI,KAAKvoB,QAAL,IAAiB,CAArB,EAAwB;YACtB,KAAKhH,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmB,EAAEA,CAArB,EAAwB;cACtBqvB,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;cACA,IAAIA,UAAU,CAAd,EAAiB;gBACf/yB,gBAAK,mBAAmB+yB,KAAxB/yB;cAHoB;;cAKtB,KAAKizB,QAAL,CAAc,EAAd;;cACA,IAAI,KAAKvoB,QAAL,GAAgB,CAApB,EAAuB;gBACrB,KAAKsoB,SAAL,CAAe,CAAf;;gBACA,KAAKC,QAAL,CAAc,CAAd;cARoB;YADF;UANT;;UAmBf,KAAK/O,GAAL,GAAW,IAAX;QArB0C;MAA9C,OAuBO,IAAI,KAAKmP,GAAL,IAAY,KAAKrB,MAArB,EAA6B;QAClC,OAAO,IAAP,EAAa;UACXe,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;UACA,IAAIA,UAAUhC,QAAd,EAAwB;YACtB,KAAK7M,GAAL,GAAW,IAAX;YACA,OAAO,CAAC,CAAR;UAJS;;UAMX,IAAI6O,SAAS,CAATA,KAAe,CAAnB,EAAsB;YACpB;UAPS;;UASX,KAAKE,QAAL,CAAc,CAAd;QAVgC;;QAYlC,KAAKA,QAAL,CAAc,EAAd;;QACA,IAAI,KAAKvoB,QAAL,GAAgB,CAApB,EAAuB;UACrB,KAAKuoB,QAAL,CAAc,CAAd;;UACA,KAAKP,UAAL,GAAkB,EAAEK,QAAQ,CAAV,CAAlB;QAfgC;MA3PX;;MA8QzB,IAAIR,WAAW,CAAX,IAAgB,CAApB,EAAuB;QACrB,KAAKM,UAAL,GAAkBN,WAAY,KAAKE,SAAL,GAAiB,CAA7B,CAAlB;MADF,OAEO;QACL,KAAKI,UAAL,GAAkBN,WAAY,KAAKE,SAAL,GAAiB,CAA7B,CAAlB;MAjRuB;;MAmRzB,KAAK3iB,GAAL;IA7RW;;IAgSb,IAAIzH,CAAJ;;IACA,IAAI,KAAKwqB,UAAL,IAAmB,CAAvB,EAA0B;MACxBxqB,IAAI,KAAKoqB,SAAL,GAAiB,CAAjB,GAAqB,CAArB,GAAyB,IAA7BpqB;MACA,KAAKwqB,UAAL,IAAmB,CAAnB;;MACA,IAAI,KAAKA,UAAL,KAAoB,CAApB,IAAyBN,WAAW,KAAKE,SAAhB,IAA6BN,OAA1D,EAAmE;QACjE,KAAKM,SAAL;QACA,KAAKI,UAAL,GACEN,WAAW,KAAKE,SAAhB,IAA6BF,WAAW,KAAKE,SAAL,GAAiB,CAA5B,CAD/B;MALsB;IAA1B,OAQO;MACLW,OAAO,CAAPA;MACA/qB,IAAI,CAAJA;;MACA,GAAG;QACD,IAAI,OAAO,KAAKwqB,UAAZ,KAA2B,QAA/B,EAAyC;UACvC,MAAM,IAAI7vB,iBAAJ,CACJ,8DADI,CAAN;QAFD;;QAOD,IAAI,KAAK6vB,UAAL,GAAkBO,IAAtB,EAA4B;UAC1B/qB,MAAM+qB,IAAN/qB;;UACA,IAAI,EAAE,KAAKoqB,SAAL,GAAiB,CAAnB,CAAJ,EAA2B;YACzBpqB,KAAK,QAAS,IAAI+qB,IAAlB/qB;UAHwB;;UAK1B,KAAKwqB,UAAL,IAAmBO,IAAnB;UACAA,OAAO,CAAPA;QANF,OAOO;UACL/qB,MAAM,KAAKwqB,UAAXxqB;;UACA,IAAI,EAAE,KAAKoqB,SAAL,GAAiB,CAAnB,CAAJ,EAA2B;YACzBpqB,KAAK,QAAS,IAAI,KAAKwqB,UAAvBxqB;UAHG;;UAKL+qB,QAAQ,KAAKP,UAAbO;UACA,KAAKP,UAAL,GAAkB,CAAlB;;UACA,IAAIN,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;YACxC,KAAKM,SAAL;YACA,KAAKI,UAAL,GACEN,WAAW,KAAKE,SAAhB,IAA6BF,WAAW,KAAKE,SAAL,GAAiB,CAA5B,CAD/B;UAFF,OAIO,IAAIW,OAAO,CAAX,EAAc;YACnB/qB,MAAM+qB,IAAN/qB;YACA+qB,OAAO,CAAPA;UAbG;QAdN;MAAH,SA8BSA,IA9BT;IA5SW;;IA4Ub,IAAI,KAAKd,KAAT,EAAgB;MACdjqB,KAAK,IAALA;IA7UW;;IA+Ub,OAAOA,CAAP;EA7XkB;;EAmYpBorB,WAAWK,EAAX,EAAeX,WAAf,EAA4B;IAC1B,MAAMZ,aAAa,KAAKA,UAAxB;IACA,IAAIE,YAAY,KAAKA,SAArB;;IAEA,IAAIqB,KAAKvB,WAAWE,SAAX,CAAT,EAAgC;MAC9B,IAAIqB,KAAK,KAAK3B,OAAd,EAAuB;QACrBnyB,gBAAK,qBAALA;QACA,KAAKqzB,GAAL,GAAW,IAAX;QACAS,KAAK,KAAK3B,OAAV2B;MAJ4B;;MAM9B,IAAKrB,YAAY,CAAZA,GAAiBU,WAAtB,EAAmC;QACjC,EAAEV,SAAF;MAP4B;;MAU9BF,WAAWE,SAAX,IAAwBqB,EAAxBvB;IAdwB;;IAgB1B,KAAKE,SAAL,GAAiBA,SAAjB;EAnZkB;;EAyZpBmB,cAAcE,EAAd,EAAkBX,WAAlB,EAA+B;IAC7B,MAAMZ,aAAa,KAAKA,UAAxB;IACA,IAAIE,YAAY,KAAKA,SAArB;;IAEA,IAAIqB,KAAKvB,WAAWE,SAAX,CAAT,EAAgC;MAC9B,IAAIqB,KAAK,KAAK3B,OAAd,EAAuB;QACrBnyB,gBAAK,qBAALA;QACA,KAAKqzB,GAAL,GAAW,IAAX;QACAS,KAAK,KAAK3B,OAAV2B;MAJ4B;;MAM9B,IAAKrB,YAAY,CAAZA,GAAiBU,WAAtB,EAAmC;QACjC,EAAEV,SAAF;MAP4B;;MAU9BF,WAAWE,SAAX,IAAwBqB,EAAxBvB;IAVF,OAWO,IAAIuB,KAAKvB,WAAWE,SAAX,CAAT,EAAgC;MACrC,IAAIqB,KAAK,CAAT,EAAY;QACV9zB,gBAAK,cAALA;QACA,KAAKqzB,GAAL,GAAW,IAAX;QACAS,KAAK,CAALA;MAJmC;;MAMrC,OAAOrB,YAAY,CAAZA,IAAiBqB,KAAKvB,WAAWE,YAAY,CAAvB,CAA7B,EAAwD;QACtD,EAAEA,SAAF;MAPmC;;MASrCF,WAAWE,SAAX,IAAwBqB,EAAxBvB;IAxB2B;;IA2B7B,KAAKE,SAAL,GAAiBA,SAAjB;EApbkB;;EAgcpBsB,eAAehmB,KAAf,EAAsBC,GAAtB,EAA2B4U,KAA3B,EAAkCoR,KAAlC,EAAyC;IACvC,MAAMC,aAAaD,SAAS,CAA5B;;IACA,KAAK,IAAItwB,IAAIqK,KAAb,EAAoBrK,KAAKsK,GAAzB,EAA8B,EAAEtK,CAAhC,EAAmC;MACjC,IAAIjB,OAAO,KAAKuwB,SAAL,CAAetvB,CAAf,CAAX;;MACA,IAAIjB,SAASsuB,QAAb,EAAuB;QACrB,OAAO,CAAC,IAAD,EAAO,CAAP,EAAU,KAAV,CAAP;MAH+B;;MAKjC,IAAIrtB,IAAIsK,GAAR,EAAa;QACXvL,SAASuL,MAAMtK,CAAfjB;MAN+B;;MAQjC,IAAI,CAACwxB,UAAD,IAAexxB,QAAQwxB,UAA3B,EAAuC;QACrC,MAAM/sB,IAAI0b,MAAMngB,OAAOwxB,UAAb,CAAV;;QACA,IAAI/sB,EAAE,CAAF,MAASxD,CAAb,EAAgB;UACd,KAAKuvB,QAAL,CAAcvvB,CAAd;;UACA,OAAO,CAAC,IAAD,EAAOwD,EAAE,CAAF,CAAP,EAAa,IAAb,CAAP;QAJmC;MARN;IAFI;;IAkBvC,OAAO,CAAC,KAAD,EAAQ,CAAR,EAAW,KAAX,CAAP;EAldkB;;EAwdpBssB,iBAAiB;IACf,IAAI/wB,OAAO,CAAX;IACA,IAAIyE,CAAJ;;IACA,IAAI,KAAKmrB,OAAT,EAAkB;MAChB5vB,OAAO,KAAKuwB,SAAL,CAAe,CAAf,CAAPvwB;MACAyE,IAAIuqB,YAAYhvB,IAAZ,CAAJyE;;MACA,IAAIA,KAAKA,EAAE,CAAF,IAAO,CAAhB,EAAmB;QACjB,KAAK+rB,QAAL,CAAc/rB,EAAE,CAAF,CAAd;;QACA,OAAOA,EAAE,CAAF,CAAP;MALc;IAAlB,OAOO;MACL,MAAM6b,SAAS,KAAKgR,cAAL,CAAoB,CAApB,EAAuB,CAAvB,EAA0BtC,WAA1B,CAAf;;MACA,IAAI1O,OAAO,CAAP,KAAaA,OAAO,CAAP,CAAjB,EAA4B;QAC1B,OAAOA,OAAO,CAAP,CAAP;MAHG;IAVQ;;IAgBf/iB,gBAAK,kBAALA;IACA,OAAO+wB,QAAP;EAzekB;;EA+epB4C,gBAAgB;IACd,IAAIlxB,OAAO,CAAX;IACA,IAAIyE,CAAJ;;IACA,IAAI,KAAKmrB,OAAT,EAAkB;MAChB5vB,OAAO,KAAKuwB,SAAL,CAAe,EAAf,CAAPvwB;;MACA,IAAIA,SAASsuB,QAAb,EAAuB;QACrB,OAAO,CAAP;MAHc;;MAMhB,IAAItuB,QAAQ,CAARA,KAAc,CAAlB,EAAqB;QACnByE,IAAIwqB,YAAYjvB,IAAZ,CAAJyE;MADF,OAEO;QACLA,IAAIyqB,YAAYlvB,QAAQ,CAApB,CAAJyE;MATc;;MAYhB,IAAIA,EAAE,CAAF,IAAO,CAAX,EAAc;QACZ,KAAK+rB,QAAL,CAAc/rB,EAAE,CAAF,CAAd;;QACA,OAAOA,EAAE,CAAF,CAAP;MAdc;IAAlB,OAgBO;MACL,IAAI6b,SAAS,KAAKgR,cAAL,CAAoB,CAApB,EAAuB,CAAvB,EAA0BpC,WAA1B,CAAb;;MACA,IAAI5O,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MAHG;;MAMLA,SAAS,KAAKgR,cAAL,CAAoB,EAApB,EAAwB,EAAxB,EAA4BrC,WAA5B,CAAT3O;;MACA,IAAIA,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MARG;IAnBO;;IA8Bd/iB,gBAAK,gBAALA;;IACA,KAAKizB,QAAL,CAAc,CAAd;;IACA,OAAO,CAAP;EA/gBkB;;EAqhBpBS,gBAAgB;IACd,IAAIjxB,IAAJ,EAAUyE,CAAV;;IACA,IAAI,KAAKmrB,OAAT,EAAkB;MAChB5vB,OAAO,KAAKuwB,SAAL,CAAe,EAAf,CAAPvwB;;MACA,IAAIA,SAASsuB,QAAb,EAAuB;QACrB,OAAO,CAAP;MAHc;;MAKhB,IAAItuB,QAAQ,CAARA,KAAc,CAAlB,EAAqB;QACnByE,IAAI0qB,YAAYnvB,IAAZ,CAAJyE;MADF,OAEO,IAAIzE,QAAQ,CAARA,KAAc,CAAdA,IAAmBA,QAAQ,CAARA,KAAc,CAArC,EAAwC;QAC7CyE,IAAI2qB,YAAa,SAAQ,CAAR,IAAa,EAA1B,CAAJ3qB;MADK,OAEA;QACLA,IAAI4qB,YAAYrvB,QAAQ,CAApB,CAAJyE;MAVc;;MAahB,IAAIA,EAAE,CAAF,IAAO,CAAX,EAAc;QACZ,KAAK+rB,QAAL,CAAc/rB,EAAE,CAAF,CAAd;;QACA,OAAOA,EAAE,CAAF,CAAP;MAfc;IAAlB,OAiBO;MACL,IAAI6b,SAAS,KAAKgR,cAAL,CAAoB,CAApB,EAAuB,CAAvB,EAA0BjC,WAA1B,CAAb;;MACA,IAAI/O,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MAHG;;MAMLA,SAAS,KAAKgR,cAAL,CAAoB,CAApB,EAAuB,EAAvB,EAA2BlC,WAA3B,EAAwC,EAAxC,CAAT9O;;MACA,IAAIA,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MARG;;MAWLA,SAAS,KAAKgR,cAAL,CAAoB,EAApB,EAAwB,EAAxB,EAA4BnC,WAA5B,CAAT7O;;MACA,IAAIA,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MAbG;IAnBO;;IAmCd/iB,gBAAK,gBAALA;;IACA,KAAKizB,QAAL,CAAc,CAAd;;IACA,OAAO,CAAP;EA1jBkB;;EAgkBpBD,UAAU5sB,CAAV,EAAa;IACX,IAAIiC,CAAJ;;IACA,OAAO,KAAKsqB,SAAL,GAAiBvsB,CAAxB,EAA2B;MACzB,IAAK,KAAI,KAAK2rB,MAAL,CAAY/O,IAAZ,EAAJ,MAA4B,CAAC,CAAlC,EAAqC;QACnC,IAAI,KAAK2P,SAAL,KAAmB,CAAvB,EAA0B;UACxB,OAAO5B,QAAP;QAFiC;;QAInC,OAAQ,KAAK6B,QAAL,IAAkBxsB,IAAI,KAAKusB,SAA3B,GAA0C,UAAW,KAAKvsB,CAAlE;MALuB;;MAOzB,KAAKwsB,QAAL,GAAiB,KAAKA,QAAL,IAAiB,CAAjB,GAAsBvqB,CAAvC;MACA,KAAKsqB,SAAL,IAAkB,CAAlB;IAVS;;IAYX,OAAQ,KAAKC,QAAL,IAAkB,KAAKD,SAAL,GAAiBvsB,CAAnC,GAA0C,UAAW,KAAKA,CAAlE;EA5kBkB;;EAklBpB6sB,SAAS7sB,CAAT,EAAY;IACV,IAAK,MAAKusB,SAAL,IAAkBvsB,CAAlB,IAAuB,CAA5B,EAA+B;MAC7B,KAAKusB,SAAL,GAAiB,CAAjB;IAFQ;EAllBQ;;AAAA;;;;;;;;;;;;;;;ACnctB;;AACA;;AAEA,MAAMuB,SAAN,SAAwBhyB,mBAAxB,CAAsC;EACpCI,YAAYrC,GAAZ,EAAiB;IACf,MAAO,eAAcA,GAAf,EAAN,EAA4B,WAA5B;EAFkC;;AAAA;;AAMtC,MAAMk0B,cAAN,SAA6BjyB,mBAA7B,CAA2C;EACzCI,YAAYF,OAAZ,EAAqBgyB,SAArB,EAAgC;IAC9B,MAAMhyB,OAAN,EAAe,gBAAf;IACA,KAAKgyB,SAAL,GAAiBA,SAAjB;EAHuC;;AAAA;;AAO3C,MAAMC,cAAN,SAA6BnyB,mBAA7B,CAA2C;EACzCI,YAAYrC,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,gBAAX;EAFuC;;AAAA;;AAoB3C,MAAMq0B,YAAY,IAAIlwB,UAAJ,CAAe,CAC9B,CAD8B,EAE9B,CAF8B,EAE1B,CAF0B,EAG/B,EAH+B,EAG1B,CAH0B,EAGtB,CAHsB,EAI9B,CAJ8B,EAI3B,EAJ2B,EAIvB,EAJuB,EAInB,EAJmB,EAK/B,EAL+B,EAK3B,EAL2B,EAKvB,EALuB,EAKnB,EALmB,EAKf,CALe,EAM9B,CAN8B,EAM3B,EAN2B,EAMvB,EANuB,EAMnB,EANmB,EAMf,EANe,EAMX,EANW,EAO/B,EAP+B,EAO3B,EAP2B,EAOvB,EAPuB,EAOnB,EAPmB,EAOf,EAPe,EAOX,EAPW,EAON,CAPM,EAQ9B,CAR8B,EAQ3B,EAR2B,EAQvB,EARuB,EAQnB,EARmB,EAQf,EARe,EAQX,EARW,EAQP,EARO,EAQH,EARG,EAS/B,EAT+B,EAS3B,EAT2B,EASvB,EATuB,EASnB,EATmB,EASf,EATe,EASX,EATW,EASP,EATO,EAU/B,EAV+B,EAU3B,EAV2B,EAUvB,EAVuB,EAUnB,EAVmB,EAUf,EAVe,EAUX,EAVW,EAW/B,EAX+B,EAW3B,EAX2B,EAWvB,EAXuB,EAWnB,EAXmB,EAWf,EAXe,EAY/B,EAZ+B,EAY3B,EAZ2B,EAYvB,EAZuB,EAYnB,EAZmB,EAa/B,EAb+B,EAa3B,EAb2B,EAavB,EAbuB,EAc/B,EAd+B,EAc3B,EAd2B,EAe/B,EAf+B,CAAf,CAAlB;AAkBA,MAAMmwB,UAAU,IAAhB;AACA,MAAMC,UAAU,GAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,WAAW,IAAjB;AACA,MAAMC,aAAa,IAAnB;;AAEA,SAASC,iBAAT,CAA2BC,WAA3B,EAAwC7O,MAAxC,EAAgD;EAC9C,IAAI5U,IAAI,CAAR;EAAA,IACE7N,CADF;EAAA,IAEE2G,CAFF;EAAA,IAGElJ,SAAS,EAHX;;EAIA,OAAOA,SAAS,CAATA,IAAc,CAAC6zB,YAAY7zB,SAAS,CAArB,CAAtB,EAA+C;IAC7CA;EAN4C;;EAQ9C,MAAMsB,OAAO,CAAC;IAAE0e,UAAU,EAAZ;IAAgB+B,OAAO;EAAvB,CAAD,CAAb;EACA,IAAIhc,IAAIzE,KAAK,CAAL,CAAR;EAAA,IACEoc,CADF;;EAEA,KAAKnb,IAAI,CAAT,EAAYA,IAAIvC,MAAhB,EAAwBuC,GAAxB,EAA6B;IAC3B,KAAK2G,IAAI,CAAT,EAAYA,IAAI2qB,YAAYtxB,CAAZ,CAAhB,EAAgC2G,GAAhC,EAAqC;MACnCnD,IAAIzE,KAAKwyB,GAALxyB,EAAJyE;MACAA,EAAEia,QAAFja,CAAWA,EAAEgc,KAAbhc,IAAsBif,OAAO5U,CAAP,CAAtBrK;;MACA,OAAOA,EAAEgc,KAAFhc,GAAU,CAAjB,EAAoB;QAClBA,IAAIzE,KAAKwyB,GAALxyB,EAAJyE;MAJiC;;MAMnCA,EAAEgc,KAAFhc;MACAzE,KAAKuB,IAALvB,CAAUyE,CAAVzE;;MACA,OAAOA,KAAKtB,MAALsB,IAAeiB,CAAtB,EAAyB;QACvBjB,KAAKuB,IAALvB,CAAWoc,IAAI;UAAEsC,UAAU,EAAZ;UAAgB+B,OAAO;QAAvB,CAAfzgB;QACAyE,EAAEia,QAAFja,CAAWA,EAAEgc,KAAbhc,IAAsB2X,EAAEsC,QAAxBja;QACAA,IAAI2X,CAAJ3X;MAXiC;;MAanCqK;IAdyB;;IAgB3B,IAAI7N,IAAI,CAAJA,GAAQvC,MAAZ,EAAoB;MAElBsB,KAAKuB,IAALvB,CAAWoc,IAAI;QAAEsC,UAAU,EAAZ;QAAgB+B,OAAO;MAAvB,CAAfzgB;MACAyE,EAAEia,QAAFja,CAAWA,EAAEgc,KAAbhc,IAAsB2X,EAAEsC,QAAxBja;MACAA,IAAI2X,CAAJ3X;IApByB;EAXiB;;EAkC9C,OAAOzE,KAAK,CAAL,EAAQ0e,QAAf;AAhHF;;AAmHA,SAAS+T,oBAAT,CAA8B5N,SAA9B,EAAyCxX,GAAzC,EAA8CqlB,GAA9C,EAAmD;EACjD,OAAO,MAAO,WAAUC,aAAV9N,GAA0B,CAA1B,IAA+BxX,GAA/B,GAAqCqlB,GAA5C,CAAP;AApHF;;AAuHA,SAASE,UAAT,CACEzwB,IADF,EAEEya,MAFF,EAGEiW,KAHF,EAIEC,UAJF,EAKEC,aALF,EAMEC,aANF,EAOEC,WAPF,EAQEC,cARF,EASEC,UATF,EAUEC,iBAAiB,KAVnB,EAWE;EACA,MAAMC,cAAcR,MAAMQ,WAA1B;EACA,MAAMC,cAAcT,MAAMS,WAA1B;EAEA,MAAMC,cAAc3W,MAApB;EACA,IAAI4W,WAAW,CAAf;EAAA,IACEC,YAAY,CADd;;EAGA,SAASxnB,OAAT,GAAmB;IACjB,IAAIwnB,YAAY,CAAhB,EAAmB;MACjBA;MACA,OAAQD,YAAYC,SAAZD,GAAyB,CAAjC;IAHe;;IAKjBA,WAAWrxB,KAAKya,QAAL,CAAX4W;;IACA,IAAIA,aAAa,IAAjB,EAAuB;MACrB,MAAME,WAAWvxB,KAAKya,QAAL,CAAjB;;MACA,IAAI8W,QAAJ,EAAc;QACZ,IAAIA,aAAyB,IAAzBA,IAAiCN,cAArC,EAAqD;UACnDxW,UAAU,CAAVA;UAEA,MAAM+U,YAAYtZ,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAlB;UACAuE,UAAU,CAAVA;;UACA,IAAI+U,YAAY,CAAZA,IAAiBA,cAAckB,MAAMlB,SAAzC,EAAoD;YAClD,MAAM,IAAID,cAAJ,CACJ,mDADI,EAEJC,SAFI,CAAN;UANiD;QAArD,OAWO,IAAI+B,aAAyB,IAA7B,EAAmC;UACxC,IAAIN,cAAJ,EAAoB;YAElB,MAAMO,iBAAiBC,YAAYf,MAAMgB,SAANhB,KAAoB,CAApBA,GAAwB,CAAxBA,GAA4B,CAAxC,CAAvB;;YAMA,IACEc,iBAAiB,CAAjBA,IACAxyB,KAAKknB,KAALlnB,CAAW0xB,MAAMlB,SAANkB,GAAkBc,cAA7BxyB,KAAgD,EAFlD,EAGE;cACA,MAAM,IAAIuwB,cAAJ,CACJ,wDACE,oDAFE,EAGJiC,cAHI,CAAN;YAZgB;UADoB;;UAoBxC,MAAM,IAAI/B,cAAJ,CACJ,mDADI,CAAN;QAhCU;;QAoCZ,MAAM,IAAIH,SAAJ,CACH,qBAAqB,CAAC+B,YAAY,CAAZA,GAAiBE,QAAlB,EAA4B9vB,QAA5B,CAAqC,EAArC,CAAtB,EADI,CAAN;MAtCmB;IANN;;IAkDjB6vB,YAAY,CAAZA;IACA,OAAOD,aAAa,CAApB;EA3DF;;EA8DA,SAASM,aAAT,CAAuBC,IAAvB,EAA6B;IAC3B,IAAIlV,OAAOkV,IAAX;;IACA,OAAO,IAAP,EAAa;MACXlV,OAAOA,KAAK5S,SAAL,CAAP4S;;MACA,QAAQ,OAAOA,IAAf;QACE,KAAK,QAAL;UACE,OAAOA,IAAP;;QACF,KAAK,QAAL;UACE;MAJJ;;MAMA,MAAM,IAAI4S,SAAJ,CAAc,0BAAd,CAAN;IAVyB;EA9D7B;;EA4EA,SAASuC,OAAT,CAAiBt1B,MAAjB,EAAyB;IACvB,IAAIiF,IAAI,CAAR;;IACA,OAAOjF,SAAS,CAAhB,EAAmB;MACjBiF,IAAKA,KAAK,CAALA,GAAUsI,SAAftI;MACAjF;IAJqB;;IAMvB,OAAOiF,CAAP;EAlFF;;EAqFA,SAASswB,gBAAT,CAA0Bv1B,MAA1B,EAAkC;IAChC,IAAIA,WAAW,CAAf,EAAkB;MAChB,OAAOuN,cAAc,CAAdA,GAAkB,CAAlBA,GAAsB,CAAC,CAA9B;IAF8B;;IAIhC,MAAMtI,IAAIqwB,QAAQt1B,MAAR,CAAV;;IACA,IAAIiF,KAAK,KAAMjF,SAAS,CAAxB,EAA4B;MAC1B,OAAOiF,CAAP;IAN8B;;IAQhC,OAAOA,KAAK,CAAC,CAAD,IAAMjF,MAAX,IAAqB,CAA5B;EA7FF;;EAgGA,SAASw1B,cAAT,CAAwBrP,SAAxB,EAAmCsP,WAAnC,EAAgD;IAC9C,MAAM7sB,IAAIwsB,cAAcjP,UAAUuP,cAAxB,CAAV;IACA,MAAMC,OAAO/sB,MAAM,CAANA,GAAU,CAAVA,GAAc2sB,iBAAiB3sB,CAAjB,CAA3B;IACAud,UAAUyP,SAAVzP,CAAoBsP,WAApBtP,IAAmCA,UAAU0P,IAAV1P,IAAkBwP,IAArDxP;IACA,IAAI/V,IAAI,CAAR;;IACA,OAAOA,IAAI,EAAX,EAAe;MACb,MAAM0lB,KAAKV,cAAcjP,UAAU4P,cAAxB,CAAX;MACA,MAAMC,IAAIF,KAAK,EAAf;MAAA,MACExwB,IAAIwwB,MAAM,CADZ;;MAEA,IAAIE,MAAM,CAAV,EAAa;QACX,IAAI1wB,IAAI,EAAR,EAAY;UACV;QAFS;;QAIX8K,KAAK,EAALA;QACA;MATW;;MAWbA,KAAK9K,CAAL8K;MACA,MAAM6lB,IAAI9C,UAAU/iB,CAAV,CAAV;MACA+V,UAAUyP,SAAVzP,CAAoBsP,cAAcQ,CAAlC9P,IAAuCoP,iBAAiBS,CAAjB,CAAvC7P;MACA/V;IAnB4C;EAhGhD;;EAuHA,SAAS8lB,aAAT,CAAuB/P,SAAvB,EAAkCsP,WAAlC,EAA+C;IAC7C,MAAM7sB,IAAIwsB,cAAcjP,UAAUuP,cAAxB,CAAV;IACA,MAAMC,OAAO/sB,MAAM,CAANA,GAAU,CAAVA,GAAc2sB,iBAAiB3sB,CAAjB,KAAuB6rB,UAAlD;IACAtO,UAAUyP,SAAVzP,CAAoBsP,WAApBtP,IAAmCA,UAAU0P,IAAV1P,IAAkBwP,IAArDxP;EA1HF;;EA6HA,SAASgQ,kBAAT,CAA4BhQ,SAA5B,EAAuCsP,WAAvC,EAAoD;IAClDtP,UAAUyP,SAAVzP,CAAoBsP,WAApBtP,KAAoC5Y,aAAaknB,UAAjDtO;EA9HF;;EAiIA,IAAIiQ,SAAS,CAAb;;EACA,SAASC,aAAT,CAAuBlQ,SAAvB,EAAkCsP,WAAlC,EAA+C;IAC7C,IAAIW,SAAS,CAAb,EAAgB;MACdA;MACA;IAH2C;;IAK7C,IAAIhmB,IAAIkkB,aAAR;IACA,MAAM3vB,IAAI4vB,WAAV;;IACA,OAAOnkB,KAAKzL,CAAZ,EAAe;MACb,MAAMmxB,KAAKV,cAAcjP,UAAU4P,cAAxB,CAAX;MACA,MAAMC,IAAIF,KAAK,EAAf;MAAA,MACExwB,IAAIwwB,MAAM,CADZ;;MAEA,IAAIE,MAAM,CAAV,EAAa;QACX,IAAI1wB,IAAI,EAAR,EAAY;UACV8wB,SAASd,QAAQhwB,CAAR,KAAc,KAAKA,CAAnBgwB,IAAwB,CAAjCc;UACA;QAHS;;QAKXhmB,KAAK,EAALA;QACA;MAVW;;MAYbA,KAAK9K,CAAL8K;MACA,MAAM6lB,IAAI9C,UAAU/iB,CAAV,CAAV;MACA+V,UAAUyP,SAAVzP,CAAoBsP,cAAcQ,CAAlC9P,IACEoP,iBAAiBS,CAAjB,KAAuB,KAAKvB,UAA5Bc,CADFpP;MAEA/V;IAvB2C;EAlI/C;;EA6JA,IAAIkmB,oBAAoB,CAAxB;EAAA,IACEC,qBADF;;EAEA,SAASC,kBAAT,CAA4BrQ,SAA5B,EAAuCsP,WAAvC,EAAoD;IAClD,IAAIrlB,IAAIkkB,aAAR;IACA,MAAM3vB,IAAI4vB,WAAV;IACA,IAAIjvB,IAAI,CAAR;IACA,IAAI0wB,CAAJ;IACA,IAAIF,EAAJ;;IACA,OAAO1lB,KAAKzL,CAAZ,EAAe;MACb,MAAM8xB,UAAUhB,cAActC,UAAU/iB,CAAV,CAA9B;MACA,MAAM5C,OAAO2Y,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,IAA+B,CAA/BA,GAAmC,CAAC,CAApCA,GAAwC,CAArD;;MACA,QAAQmQ,iBAAR;QACE,KAAK,CAAL;UACER,KAAKV,cAAcjP,UAAU4P,cAAxB,CAALD;UACAE,IAAIF,KAAK,EAATE;UACA1wB,IAAIwwB,MAAM,CAAVxwB;;UACA,IAAI0wB,MAAM,CAAV,EAAa;YACX,IAAI1wB,IAAI,EAAR,EAAY;cACV8wB,SAASd,QAAQhwB,CAAR,KAAc,KAAKA,CAAnBgwB,CAATc;cACAE,oBAAoB,CAApBA;YAFF,OAGO;cACLhxB,IAAI,EAAJA;cACAgxB,oBAAoB,CAApBA;YANS;UAAb,OAQO;YACL,IAAIN,MAAM,CAAV,EAAa;cACX,MAAM,IAAIjD,SAAJ,CAAc,sBAAd,CAAN;YAFG;;YAILwD,wBAAwBhB,iBAAiBS,CAAjB,CAAxBO;YACAD,oBAAoBhxB,IAAI,CAAJ,GAAQ,CAA5BgxB;UAjBJ;;UAmBE;;QACF,KAAK,CAAL;QACA,KAAK,CAAL;UACE,IAAInQ,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,CAAJ,EAAkC;YAChCA,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,KAAgC3Y,QAAQD,aAAaknB,UAArB,CAAhCtO;UADF,OAEO;YACL7gB;;YACA,IAAIA,MAAM,CAAV,EAAa;cACXgxB,oBAAoBA,sBAAsB,CAAtBA,GAA0B,CAA1BA,GAA8B,CAAlDA;YAHG;UAHT;;UASE;;QACF,KAAK,CAAL;UACE,IAAInQ,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,CAAJ,EAAkC;YAChCA,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,KAAgC3Y,QAAQD,aAAaknB,UAArB,CAAhCtO;UADF,OAEO;YACLA,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,IAA+BoQ,yBAAyB9B,UAAxDtO;YACAmQ,oBAAoB,CAApBA;UALJ;;UAOE;;QACF,KAAK,CAAL;UACE,IAAInQ,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,CAAJ,EAAkC;YAChCA,UAAUyP,SAAVzP,CAAoBsQ,OAApBtQ,KAAgC3Y,QAAQD,aAAaknB,UAArB,CAAhCtO;UAFJ;;UAIE;MA5CJ;;MA8CA/V;IAvDgD;;IAyDlD,IAAIkmB,sBAAsB,CAA1B,EAA6B;MAC3BF;;MACA,IAAIA,WAAW,CAAf,EAAkB;QAChBE,oBAAoB,CAApBA;MAHyB;IAzDqB;EA/JpD;;EAgOA,IAAIpB,WAAW,CAAf;;EACA,SAASwB,SAAT,CAAmBvQ,SAAnB,EAA8Bxc,MAA9B,EAAsCgtB,GAAtC,EAA2ChoB,GAA3C,EAAgDqlB,GAAhD,EAAqD;IACnD,MAAM4C,SAAUD,MAAMhC,WAANgC,GAAqB,CAArC;IACA,MAAME,SAASF,MAAMhC,WAArB;IACAO,WAAW0B,SAASzQ,UAAUrf,CAAnB8vB,GAAuBjoB,GAAlCumB;IACA,MAAM4B,WAAWD,SAAS1Q,UAAU4Q,CAAnBF,GAAuB7C,GAAxC;IACA,MAAMyB,cAAc1B,qBAAqB5N,SAArB,EAAgC+O,QAAhC,EAA0C4B,QAA1C,CAApB;IACAntB,OAAOwc,SAAP,EAAkBsP,WAAlB;EAvOF;;EA0OA,SAASuB,WAAT,CAAqB7Q,SAArB,EAAgCxc,MAAhC,EAAwCgtB,GAAxC,EAA6C;IAC3CzB,WAAYyB,MAAMxQ,UAAU8N,aAAhB0C,GAAiC,CAA7CzB;IACA,MAAM4B,WAAWH,MAAMxQ,UAAU8N,aAAjC;IACA,MAAMwB,cAAc1B,qBAAqB5N,SAArB,EAAgC+O,QAAhC,EAA0C4B,QAA1C,CAApB;IACAntB,OAAOwc,SAAP,EAAkBsP,WAAlB;EA9OF;;EAiPA,MAAMwB,mBAAmB7C,WAAWp0B,MAApC;EACA,IAAImmB,SAAJ,EAAe5jB,CAAf,EAAkB2G,CAAlB,EAAqBkH,CAArB,EAAwBnL,CAAxB;EACA,IAAIiyB,QAAJ;;EACA,IAAItC,WAAJ,EAAiB;IACf,IAAIN,kBAAkB,CAAtB,EAAyB;MACvB4C,WAAW1C,mBAAmB,CAAnBA,GAAuB0B,aAAvB1B,GAAuC2B,kBAAlDe;IADF,OAEO;MACLA,WAAW1C,mBAAmB,CAAnBA,GAAuB6B,aAAvB7B,GAAuCgC,kBAAlDU;IAJa;EAAjB,OAMO;IACLA,WAAW1B,cAAX0B;EA3PF;;EA8PA,IAAIP,MAAM,CAAV;EAAA,IACEQ,UADF;EAEA,IAAIC,WAAJ;;EACA,IAAIH,qBAAqB,CAAzB,EAA4B;IAC1BG,cAAchD,WAAW,CAAX,EAAcH,aAAdG,GAA8BA,WAAW,CAAX,EAAciD,eAA1DD;EADF,OAEO;IACLA,cAAczC,cAAcR,MAAMmD,aAAlCF;EApQF;;EAuQA,IAAIL,CAAJ,EAAOjwB,CAAP;;EACA,OAAO6vB,OAAOS,WAAd,EAA2B;IAEzB,MAAMG,YAAYlD,gBACd5xB,KAAKC,GAALD,CAAS20B,cAAcT,GAAvBl0B,EAA4B4xB,aAA5B5xB,CADc,GAEd20B,WAFJ;;IAQA,IAAIG,YAAY,CAAhB,EAAmB;MACjB,KAAKh1B,IAAI,CAAT,EAAYA,IAAI00B,gBAAhB,EAAkC10B,GAAlC,EAAuC;QACrC6xB,WAAW7xB,CAAX,EAAcszB,IAAdzB,GAAqB,CAArBA;MAFe;;MAIjBgC,SAAS,CAATA;;MAEA,IAAIa,qBAAqB,CAAzB,EAA4B;QAC1B9Q,YAAYiO,WAAW,CAAX,CAAZjO;;QACA,KAAKlhB,IAAI,CAAT,EAAYA,IAAIsyB,SAAhB,EAA2BtyB,GAA3B,EAAgC;UAC9B+xB,YAAY7Q,SAAZ,EAAuB+Q,QAAvB,EAAiCP,GAAjC;UACAA;QAJwB;MAA5B,OAMO;QACL,KAAK1xB,IAAI,CAAT,EAAYA,IAAIsyB,SAAhB,EAA2BtyB,GAA3B,EAAgC;UAC9B,KAAK1C,IAAI,CAAT,EAAYA,IAAI00B,gBAAhB,EAAkC10B,GAAlC,EAAuC;YACrC4jB,YAAYiO,WAAW7xB,CAAX,CAAZ4jB;YACA4Q,IAAI5Q,UAAU4Q,CAAdA;YACAjwB,IAAIqf,UAAUrf,CAAdA;;YACA,KAAKoC,IAAI,CAAT,EAAYA,IAAIpC,CAAhB,EAAmBoC,GAAnB,EAAwB;cACtB,KAAKkH,IAAI,CAAT,EAAYA,IAAI2mB,CAAhB,EAAmB3mB,GAAnB,EAAwB;gBACtBsmB,UAAUvQ,SAAV,EAAqB+Q,QAArB,EAA+BP,GAA/B,EAAoCztB,CAApC,EAAuCkH,CAAvC;cAFoB;YAJa;UADT;;UAW9BumB;QAZG;MAZU;IAVM;;IAwCzB5B,YAAY,CAAZA;IACAoC,aAAaK,mBAAmB/zB,IAAnB,EAAyBya,MAAzB,CAAbiZ;;IACA,IAAI,CAACA,UAAL,EAAiB;MACf;IA3CuB;;IA6CzB,IAAIA,WAAWM,OAAf,EAAwB;MAGtB,MAAMC,aAAaH,YAAY,CAAZA,GAAgB,YAAhBA,GAA+B,WAAlD;MACAt4B,gBACG,gBAAey4B,UAAW,iCAAgCP,WAAWM,OAAtE,EADFx4B;MAGAif,SAASiZ,WAAWjZ,MAApBA;IApDuB;;IAsDzB,IAAIiZ,WAAWQ,MAAXR,IAAqB,MAArBA,IAA+BA,WAAWQ,MAAXR,IAAqB,MAAxD,EAAgE;MAE9DjZ,UAAU,CAAVA;IAFF,OAGO;MACL;IA1DuB;EAxQ3B;;EAsUA,OAAOA,SAAS2W,WAAhB;AAxcF;;AAgdA,SAAS+C,kBAAT,CAA4BzR,SAA5B,EAAuC0R,iBAAvC,EAA0D9xB,CAA1D,EAA6D;EAC3D,MAAM+xB,KAAK3R,UAAU4R,iBAArB;EAAA,MACEnC,YAAYzP,UAAUyP,SADxB;EAEA,IAAIoC,EAAJ,EAAQzK,EAAR,EAAYC,EAAZ,EAAgByK,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC;EACA,IAAIC,EAAJ,EAAQhyB,EAAR,EAAYC,EAAZ,EAAgBE,EAAhB,EAAoBC,EAApB,EAAwB6xB,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC;EACA,IAAI7vB,CAAJ;;EAEA,IAAI,CAACkvB,EAAL,EAAS;IACP,MAAM,IAAI/E,SAAJ,CAAc,sCAAd,CAAN;EARyD;;EAY3D,KAAK,IAAIpkB,MAAM,CAAf,EAAkBA,MAAM,EAAxB,EAA4BA,OAAO,CAAnC,EAAsC;IAEpC2pB,KAAK1C,UAAUiC,oBAAoBlpB,GAA9B,CAAL2pB;IACAhyB,KAAKsvB,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALvxB;IACAC,KAAKqvB,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALtxB;IACAE,KAAKmvB,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALpxB;IACAC,KAAKkvB,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALnxB;IACA6xB,KAAK3C,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALU;IACAC,KAAK5C,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALW;IACAC,KAAK7C,UAAUiC,oBAAoBlpB,GAApBkpB,GAA0B,CAApC,CAALY;IAGAH,MAAMR,GAAGnpB,GAAH,CAAN2pB;;IAGA,IAAK,MAAK/xB,EAALD,GAAUG,EAAVH,GAAeI,EAAfJ,GAAoBiyB,EAApBjyB,GAAyBkyB,EAAzBlyB,GAA8BmyB,EAA9B,MAAsC,CAA3C,EAA8C;MAC5C7vB,IAAK8qB,WAAW4E,EAAX5E,GAAgB,GAAhBA,IAAwB,EAA7B9qB;MACA7C,EAAE4I,GAAF,IAAS/F,CAAT7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACAA,EAAE4I,MAAM,CAAR,IAAa/F,CAAb7C;MACA;IAzBkC;;IA4BpCO,MAAMwxB,GAAGnpB,MAAM,CAAT,CAANrI;IACAC,MAAMuxB,GAAGnpB,MAAM,CAAT,CAANpI;IACAE,MAAMqxB,GAAGnpB,MAAM,CAAT,CAANlI;IACAC,MAAMoxB,GAAGnpB,MAAM,CAAT,CAANjI;IACA6xB,MAAMT,GAAGnpB,MAAM,CAAT,CAAN4pB;IACAC,MAAMV,GAAGnpB,MAAM,CAAT,CAAN6pB;IACAC,MAAMX,GAAGnpB,MAAM,CAAT,CAAN8pB;IAGAT,KAAMtE,WAAW4E,EAAX5E,GAAgB,GAAhBA,IAAwB,CAA9BsE;IACAzK,KAAMmG,WAAWhtB,EAAXgtB,GAAgB,GAAhBA,IAAwB,CAA9BnG;IACAC,KAAKjnB,EAALinB;IACAyK,KAAKO,EAALP;IACAC,KAAMvE,cAAcrtB,KAAKmyB,EAAnB,IAAyB,GAAzB9E,IAAiC,CAAvCuE;IACAG,KAAM1E,cAAcrtB,KAAKmyB,EAAnB,IAAyB,GAAzB9E,IAAiC,CAAvC0E;IACAF,KAAK1xB,MAAM,CAAX0xB;IACAC,KAAKG,MAAM,CAAXH;IAGAJ,KAAMA,KAAKzK,EAALyK,GAAU,CAAVA,IAAgB,CAAtBA;IACAzK,KAAKyK,KAAKzK,EAAVA;IACA3kB,IAAK4kB,KAAKiG,OAALjG,GAAeyK,KAAKzE,OAApBhG,GAA8B,GAA9BA,IAAsC,CAA3C5kB;IACA4kB,KAAMA,KAAKgG,OAALhG,GAAeyK,KAAKxE,OAApBjG,GAA8B,GAA9BA,IAAsC,CAA5CA;IACAyK,KAAKrvB,CAALqvB;IACAC,KAAMA,KAAKE,EAALF,GAAU,CAAVA,IAAgB,CAAtBA;IACAE,KAAKF,KAAKE,EAAVA;IACAC,KAAMA,KAAKF,EAALE,GAAU,CAAVA,IAAgB,CAAtBA;IACAF,KAAKE,KAAKF,EAAVA;IAGAH,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACA1K,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACA5kB,IAAKsvB,KAAK3E,OAAL2E,GAAeG,KAAK/E,OAApB4E,GAA8B,IAA9BA,IAAuC,EAA5CtvB;IACAsvB,KAAMA,KAAK5E,OAAL4E,GAAeG,KAAK9E,OAApB2E,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAG,KAAKzvB,CAALyvB;IACAzvB,IAAKuvB,KAAK9E,OAAL8E,GAAeC,KAAKhF,OAApB+E,GAA8B,IAA9BA,IAAuC,EAA5CvvB;IACAuvB,KAAMA,KAAK/E,OAAL+E,GAAeC,KAAK/E,OAApB8E,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAC,KAAKxvB,CAALwvB;IAGAryB,EAAE4I,GAAF,IAASqpB,KAAKK,EAAdtyB;IACAA,EAAE4I,MAAM,CAAR,IAAaqpB,KAAKK,EAAlBtyB;IACAA,EAAE4I,MAAM,CAAR,IAAa4e,KAAK6K,EAAlBryB;IACAA,EAAE4I,MAAM,CAAR,IAAa4e,KAAK6K,EAAlBryB;IACAA,EAAE4I,MAAM,CAAR,IAAa6e,KAAK2K,EAAlBpyB;IACAA,EAAE4I,MAAM,CAAR,IAAa6e,KAAK2K,EAAlBpyB;IACAA,EAAE4I,MAAM,CAAR,IAAaspB,KAAKC,EAAlBnyB;IACAA,EAAE4I,MAAM,CAAR,IAAaspB,KAAKC,EAAlBnyB;EAzFyD;;EA6F3D,KAAK,IAAIiuB,MAAM,CAAf,EAAkBA,MAAM,CAAxB,EAA2B,EAAEA,GAA7B,EAAkC;IAChCsE,KAAKvyB,EAAEiuB,GAAF,CAALsE;IACAhyB,KAAKP,EAAEiuB,MAAM,CAAR,CAAL1tB;IACAC,KAAKR,EAAEiuB,MAAM,EAAR,CAALztB;IACAE,KAAKV,EAAEiuB,MAAM,EAAR,CAALvtB;IACAC,KAAKX,EAAEiuB,MAAM,EAAR,CAALttB;IACA6xB,KAAKxyB,EAAEiuB,MAAM,EAAR,CAALuE;IACAC,KAAKzyB,EAAEiuB,MAAM,EAAR,CAALwE;IACAC,KAAK1yB,EAAEiuB,MAAM,EAAR,CAALyE;;IAGA,IAAK,MAAKlyB,EAALD,GAAUG,EAAVH,GAAeI,EAAfJ,GAAoBiyB,EAApBjyB,GAAyBkyB,EAAzBlyB,GAA8BmyB,EAA9B,MAAsC,CAA3C,EAA8C;MAC5C7vB,IAAK8qB,WAAW4E,EAAX5E,GAAgB,IAAhBA,IAAyB,EAA9B9qB;;MAEA,IAAIA,IAAI,CAAC,IAAT,EAAe;QACbA,IAAI,CAAJA;MADF,OAEO,IAAIA,KAAK,IAAT,EAAe;QACpBA,IAAI,GAAJA;MADK,OAEA;QACLA,IAAKA,IAAI,IAAJA,IAAa,CAAlBA;MAR0C;;MAU5CgtB,UAAUiC,oBAAoB7D,GAA9B,IAAqCprB,CAArCgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,CAApC,IAAyCjvB,CAAzCgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CjvB,CAA1CgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CjvB,CAA1CgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CjvB,CAA1CgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CjvB,CAA1CgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CjvB,CAA1CgtB;MACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CjvB,CAA1CgtB;MACA;IA7B8B;;IAiChCoC,KAAMtE,WAAW4E,EAAX5E,GAAgB,IAAhBA,IAAyB,EAA/BsE;IACAzK,KAAMmG,WAAWhtB,EAAXgtB,GAAgB,IAAhBA,IAAyB,EAA/BnG;IACAC,KAAKjnB,EAALinB;IACAyK,KAAKO,EAALP;IACAC,KAAMvE,cAAcrtB,KAAKmyB,EAAnB,IAAyB,IAAzB9E,IAAkC,EAAxCuE;IACAG,KAAM1E,cAAcrtB,KAAKmyB,EAAnB,IAAyB,IAAzB9E,IAAkC,EAAxC0E;IACAF,KAAK1xB,EAAL0xB;IACAC,KAAKG,EAALH;IAKAJ,KAAM,CAACA,KAAKzK,EAALyK,GAAU,CAAVA,IAAgB,CAAjB,IAAsB,IAA5BA;IACAzK,KAAKyK,KAAKzK,EAAVA;IACA3kB,IAAK4kB,KAAKiG,OAALjG,GAAeyK,KAAKzE,OAApBhG,GAA8B,IAA9BA,IAAuC,EAA5C5kB;IACA4kB,KAAMA,KAAKgG,OAALhG,GAAeyK,KAAKxE,OAApBjG,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAyK,KAAKrvB,CAALqvB;IACAC,KAAMA,KAAKE,EAALF,GAAU,CAAVA,IAAgB,CAAtBA;IACAE,KAAKF,KAAKE,EAAVA;IACAC,KAAMA,KAAKF,EAALE,GAAU,CAAVA,IAAgB,CAAtBA;IACAF,KAAKE,KAAKF,EAAVA;IAGAH,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACA1K,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACA5kB,IAAKsvB,KAAK3E,OAAL2E,GAAeG,KAAK/E,OAApB4E,GAA8B,IAA9BA,IAAuC,EAA5CtvB;IACAsvB,KAAMA,KAAK5E,OAAL4E,GAAeG,KAAK9E,OAApB2E,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAG,KAAKzvB,CAALyvB;IACAzvB,IAAKuvB,KAAK9E,OAAL8E,GAAeC,KAAKhF,OAApB+E,GAA8B,IAA9BA,IAAuC,EAA5CvvB;IACAuvB,KAAMA,KAAK/E,OAAL+E,GAAeC,KAAK/E,OAApB8E,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAC,KAAKxvB,CAALwvB;IAGAE,KAAKN,KAAKK,EAAVC;IACAG,KAAKT,KAAKK,EAAVI;IACAnyB,KAAKinB,KAAK6K,EAAV9xB;IACAkyB,KAAKjL,KAAK6K,EAAVI;IACAjyB,KAAKinB,KAAK2K,EAAV5xB;IACAgyB,KAAK/K,KAAK2K,EAAVI;IACA9xB,KAAKwxB,KAAKC,EAAVzxB;IACAC,KAAKuxB,KAAKC,EAAVxxB;;IAGA,IAAI4xB,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAnF8B;;IAqFhC,IAAIhyB,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IA1F8B;;IA4FhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAjG8B;;IAmGhC,IAAIE,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAxG8B;;IA0GhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IA/G8B;;IAiHhC,IAAI6xB,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAtH8B;;IAwHhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IA7H8B;;IA+HhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IApI8B;;IAwIhC7C,UAAUiC,oBAAoB7D,GAA9B,IAAqCsE,EAArC1C;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,CAApC,IAAyCvxB,EAAzCsvB;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CtxB,EAA1CqvB;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CpxB,EAA1CmvB;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CnxB,EAA1CkvB;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CU,EAA1C3C;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CW,EAA1C5C;IACAA,UAAUiC,oBAAoB7D,GAApB6D,GAA0B,EAApC,IAA0CY,EAA1C7C;EA5OyD;AAhd7D;;AAgsBA,SAAS8C,kBAAT,CAA4BvE,KAA5B,EAAmChO,SAAnC,EAA8C;EAC5C,MAAM8N,gBAAgB9N,UAAU8N,aAAhC;EACA,MAAMoD,kBAAkBlR,UAAUkR,eAAlC;EACA,MAAMsB,oBAAoB,IAAIC,UAAJ,CAAe,EAAf,CAA1B;;EAEA,KAAK,IAAI1D,WAAW,CAApB,EAAuBA,WAAWmC,eAAlC,EAAmDnC,UAAnD,EAA+D;IAC7D,KAAK,IAAI4B,WAAW,CAApB,EAAuBA,WAAW7C,aAAlC,EAAiD6C,UAAjD,EAA6D;MAC3D,MAAM5Y,SAAS6V,qBAAqB5N,SAArB,EAAgC+O,QAAhC,EAA0C4B,QAA1C,CAAf;MACAc,mBAAmBzR,SAAnB,EAA8BjI,MAA9B,EAAsCya,iBAAtC;IAH2D;EALnB;;EAW5C,OAAOxS,UAAUyP,SAAjB;AA3sBF;;AA8sBA,SAAS4B,kBAAT,CAA4B/zB,IAA5B,EAAkCo1B,UAAlC,EAA8CC,WAAWD,UAAzD,EAAqE;EACnE,MAAME,SAASt1B,KAAKzD,MAALyD,GAAc,CAA7B;EACA,IAAIu1B,SAASF,WAAWD,UAAXC,GAAwBA,QAAxBA,GAAmCD,UAAhD;;EAEA,IAAIA,cAAcE,MAAlB,EAA0B;IACxB,OAAO,IAAP;EALiE;;EAOnE,MAAME,gBAAgBtf,4BAAWlW,IAAXkW,EAAiBkf,UAAjBlf,CAAtB;;EACA,IAAIsf,iBAAiB,MAAjBA,IAA2BA,iBAAiB,MAAhD,EAAwD;IACtD,OAAO;MACLxB,SAAS,IADJ;MAELE,QAAQsB,aAFH;MAGL/a,QAAQ2a;IAHH,CAAP;EATiE;;EAenE,IAAIK,YAAYvf,4BAAWlW,IAAXkW,EAAiBqf,MAAjBrf,CAAhB;;EACA,OAAO,EAAEuf,aAAa,MAAbA,IAAuBA,aAAa,MAAtC,CAAP,EAAsD;IACpD,IAAI,EAAEF,MAAF,IAAYD,MAAhB,EAAwB;MACtB,OAAO,IAAP;IAFkD;;IAIpDG,YAAYvf,4BAAWlW,IAAXkW,EAAiBqf,MAAjBrf,CAAZuf;EApBiE;;EAsBnE,OAAO;IACLzB,SAASwB,cAAc/zB,QAAd+zB,CAAuB,EAAvBA,CADJ;IAELtB,QAAQuB,SAFH;IAGLhb,QAAQ8a;EAHH,CAAP;AApuBF;;AA2uBA,MAAMG,SAAN,CAAgB;EACdh4B,YAAY;IAAEi4B,kBAAkB,IAApB;IAA0BC,iBAAiB,CAAC;EAA5C,IAAkD,EAA9D,EAAkE;IAChE,KAAKC,gBAAL,GAAwBF,eAAxB;IACA,KAAKG,eAAL,GAAuBF,cAAvB;EAHY;;EAMdjW,MAAM3f,IAAN,EAAY;IAAE+1B,eAAe;EAAjB,IAA0B,EAAtC,EAA0C;IACxC,SAASC,aAAT,GAAyB;MACvB,MAAMz5B,SAAS2Z,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAf;MACAuE,UAAU,CAAVA;MACA,IAAIwb,YAAYxb,SAASle,MAATke,GAAkB,CAAlC;MAEA,MAAMiZ,aAAaK,mBAAmB/zB,IAAnB,EAAyBi2B,SAAzB,EAAoCxb,MAApC,CAAnB;;MACA,IAAIiZ,cAAcA,WAAWM,OAA7B,EAAsC;QACpCx4B,gBACE,0DACEk4B,WAAWM,OAFfx4B;QAIAy6B,YAAYvC,WAAWjZ,MAAvBwb;MAXqB;;MAcvB,MAAMC,QAAQl2B,KAAKb,QAALa,CAAcya,MAAdza,EAAsBi2B,SAAtBj2B,CAAd;MACAya,UAAUyb,MAAM35B,MAAhBke;MACA,OAAOyb,KAAP;IAjBsC;;IAoBxC,SAASC,iBAAT,CAA2BzF,KAA3B,EAAkC;MAChC,MAAMQ,cAAclyB,KAAKmjB,IAALnjB,CAAU0xB,MAAM0F,cAAN1F,GAAuB,CAAvBA,GAA2BA,MAAM2F,IAA3Cr3B,CAApB;MACA,MAAM60B,gBAAgB70B,KAAKmjB,IAALnjB,CAAU0xB,MAAMlB,SAANkB,GAAkB,CAAlBA,GAAsBA,MAAM4F,IAAtCt3B,CAAtB;;MACA,KAAK,IAAIF,IAAI,CAAR,EAAWqH,KAAKuqB,MAAMC,UAAND,CAAiBn0B,MAAtC,EAA8CuC,IAAIqH,EAAlD,EAAsDrH,GAAtD,EAA2D;QACzD,MAAM4jB,YAAYgO,MAAMC,UAAND,CAAiB5xB,CAAjB4xB,CAAlB;QACA,MAAMF,gBAAgBxxB,KAAKmjB,IAALnjB,CACnBA,KAAKmjB,IAALnjB,CAAU0xB,MAAM0F,cAAN1F,GAAuB,CAAjC1xB,IAAsC0jB,UAAU4Q,CAAhDt0B,GAAqD0xB,MAAM2F,IADxCr3B,CAAtB;QAGA,MAAM40B,kBAAkB50B,KAAKmjB,IAALnjB,CACrBA,KAAKmjB,IAALnjB,CAAU0xB,MAAMlB,SAANkB,GAAkB,CAA5B1xB,IAAiC0jB,UAAUrf,CAA3CrE,GAAgD0xB,MAAM4F,IADjCt3B,CAAxB;QAGA,MAAMu3B,sBAAsBrF,cAAcxO,UAAU4Q,CAApD;QACA,MAAMkD,wBAAwB3C,gBAAgBnR,UAAUrf,CAAxD;QAEA,MAAMozB,mBACJ,KAAKD,qBAAL,IAA8BD,sBAAsB,CAApD,CADF;QAEA7T,UAAUyP,SAAVzP,GAAsB,IAAIyS,UAAJ,CAAesB,gBAAf,CAAtB/T;QACAA,UAAU8N,aAAV9N,GAA0B8N,aAA1B9N;QACAA,UAAUkR,eAAVlR,GAA4BkR,eAA5BlR;MAlB8B;;MAoBhCgO,MAAMQ,WAANR,GAAoBQ,WAApBR;MACAA,MAAMmD,aAANnD,GAAsBmD,aAAtBnD;IAzCsC;;IA4CxC,IAAIjW,SAAS,CAAb;IACA,IAAIic,OAAO,IAAX;IACA,IAAIC,QAAQ,IAAZ;IACA,IAAIjG,KAAJ,EAAWE,aAAX;IACA,IAAIgG,gBAAgB,CAApB;IACA,MAAMC,qBAAqB,EAA3B;IACA,MAAMC,kBAAkB,EAAxB;IAAA,MACEC,kBAAkB,EADpB;IAGA,IAAIrD,aAAaxd,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAjB;IACAuE,UAAU,CAAVA;;IACA,IAAIiZ,eAA4C,MAAhD,EAAwD;MACtD,MAAM,IAAIpE,SAAJ,CAAc,eAAd,CAAN;IAxDsC;;IA0DxCoE,aAAaxd,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAbwd;IACAjZ,UAAU,CAAVA;;IAEAuc,YAAY,OAAOtD,eAA0C,MAAjD,EAAyD;MACnE,IAAI50B,CAAJ,EAAO2G,CAAP,EAAUwxB,CAAV;;MACA,QAAQvD,UAAR;QACE,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;UACE,MAAMwD,UAAUlB,eAAhB;;UAEA,IAAItC,eAAe,MAAnB,EAA2B;YAEzB,IACEwD,QAAQ,CAAR,MAAe,IAAfA,IACAA,QAAQ,CAAR,MAAe,IADfA,IAEAA,QAAQ,CAAR,MAAe,IAFfA,IAGAA,QAAQ,CAAR,MAAe,IAHfA,IAIAA,QAAQ,CAAR,MAAe,CALjB,EAME;cACAR,OAAO;gBACLS,SAAS;kBAAEC,OAAOF,QAAQ,CAAR,CAAT;kBAAqBG,OAAOH,QAAQ,CAAR;gBAA5B,CADJ;gBAELI,cAAcJ,QAAQ,CAAR,CAFT;gBAGLK,UAAWL,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,CAAR,CAHzB;gBAILM,UAAWN,QAAQ,EAAR,KAAe,CAAfA,GAAoBA,QAAQ,EAAR,CAJ1B;gBAKLO,YAAYP,QAAQ,EAAR,CALP;gBAMLQ,aAAaR,QAAQ,EAAR,CANR;gBAOLS,WAAWT,QAAQ/3B,QAAR+3B,CACT,EADSA,EAET,KAAK,IAAIA,QAAQ,EAAR,CAAJ,GAAkBA,QAAQ,EAAR,CAFdA;cAPN,CAAPR;YATuB;UAH7B;;UA2BE,IAAIhD,eAAe,MAAnB,EAA2B;YAEzB,IACEwD,QAAQ,CAAR,MAAe,IAAfA,IACAA,QAAQ,CAAR,MAAe,IADfA,IAEAA,QAAQ,CAAR,MAAe,IAFfA,IAGAA,QAAQ,CAAR,MAAe,IAHfA,IAIAA,QAAQ,CAAR,MAAe,IALjB,EAME;cACAP,QAAQ;gBACNQ,SAAUD,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,CAAR,CADvB;gBAENU,QAASV,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,CAAR,CAFtB;gBAGNW,QAASX,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,EAAR,CAHtB;gBAINY,eAAeZ,QAAQ,EAAR;cAJT,CAARP;YATuB;UA3B7B;;UA4CE;;QAEF,KAAK,MAAL;UACE,MAAMoB,2BAA2B7hB,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAjC;UACAuE,UAAU,CAAVA;UACA,MAAMud,wBAAwBD,2BAA2Btd,MAA3Bsd,GAAoC,CAAlE;UACA,IAAIvF,CAAJ;;UACA,OAAO/X,SAASud,qBAAhB,EAAuC;YACrC,MAAMC,wBAAwBj4B,KAAKya,QAAL,CAA9B;YACA,MAAMyd,YAAY,IAAIlrB,WAAJ,CAAgB,EAAhB,CAAlB;;YACA,IAAIirB,yBAAyB,CAAzBA,KAA+B,CAAnC,EAAsC;cAEpC,KAAKxyB,IAAI,CAAT,EAAYA,IAAI,EAAhB,EAAoBA,GAApB,EAAyB;gBACvB+sB,IAAI9C,UAAUjqB,CAAV,CAAJ+sB;gBACA0F,UAAU1F,CAAV,IAAexyB,KAAKya,QAAL,CAAfyd;cAJkC;YAAtC,OAMO,IAAID,yBAAyB,CAAzBA,KAA+B,CAAnC,EAAsC;cAE3C,KAAKxyB,IAAI,CAAT,EAAYA,IAAI,EAAhB,EAAoBA,GAApB,EAAyB;gBACvB+sB,IAAI9C,UAAUjqB,CAAV,CAAJ+sB;gBACA0F,UAAU1F,CAAV,IAAetc,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAfgiB;gBACAzd,UAAU,CAAVA;cALyC;YAAtC,OAOA;cACL,MAAM,IAAI6U,SAAJ,CAAc,0BAAd,CAAN;YAjBmC;;YAmBrCuH,mBAAmBoB,wBAAwB,EAA3C,IAAiDC,SAAjDrB;UAxBJ;;UA0BE;;QAEF,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;UACE,IAAInG,KAAJ,EAAW;YACT,MAAM,IAAIpB,SAAJ,CAAc,mCAAd,CAAN;UAFJ;;UAIE7U,UAAU,CAAVA;UAEAiW,QAAQ,EAARA;UACAA,MAAMyH,QAANzH,GAAiBgD,eAAe,MAAhChD;UACAA,MAAMS,WAANT,GAAoBgD,eAAe,MAAnChD;UACAA,MAAMgB,SAANhB,GAAkB1wB,KAAKya,QAAL,CAAlBiW;UACA,MAAM0H,eAAeliB,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAArB;UACAuE,UAAU,CAAVA;UACAiW,MAAMlB,SAANkB,GAAkBqF,gBAAgBqC,YAAlC1H;UACAA,MAAM0F,cAAN1F,GAAuBxa,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAvBwa;UACAjW,UAAU,CAAVA;UACAiW,MAAMC,UAAND,GAAmB,EAAnBA;UACAA,MAAM2H,YAAN3H,GAAqB,EAArBA;UACA,MAAM4H,kBAAkBt4B,KAAKya,QAAL,CAAxB;UACA,IAAI4b,OAAO,CAAX;UAAA,IACEC,OAAO,CADT;;UAEA,KAAKx3B,IAAI,CAAT,EAAYA,IAAIw5B,eAAhB,EAAiCx5B,GAAjC,EAAsC;YACpC,MAAMy5B,cAAcv4B,KAAKya,MAAL,CAApB;YACA,MAAM6Y,IAAItzB,KAAKya,SAAS,CAAd,KAAoB,CAA9B;YACA,MAAMpX,IAAIrD,KAAKya,SAAS,CAAd,IAAmB,EAA7B;;YACA,IAAI4b,OAAO/C,CAAX,EAAc;cACZ+C,OAAO/C,CAAP+C;YALkC;;YAOpC,IAAIC,OAAOjzB,CAAX,EAAc;cACZizB,OAAOjzB,CAAPizB;YARkC;;YAUpC,MAAMkC,MAAMx4B,KAAKya,SAAS,CAAd,CAAZ;YACAwc,IAAIvG,MAAMC,UAAND,CAAiBtxB,IAAjBsxB,CAAsB;cACxB4C,CADwB;cAExBjwB,CAFwB;cAGxBo1B,gBAAgBD,GAHQ;cAIxBlE,mBAAmB;YAJK,CAAtB5D,CAAJuG;YAMAvG,MAAM2H,YAAN3H,CAAmB6H,WAAnB7H,IAAkCuG,IAAI,CAAtCvG;YACAjW,UAAU,CAAVA;UAtCJ;;UAwCEiW,MAAM2F,IAAN3F,GAAa2F,IAAb3F;UACAA,MAAM4F,IAAN5F,GAAa4F,IAAb5F;UACAyF,kBAAkBzF,KAAlB;UACA;;QAEF,KAAK,MAAL;UACE,MAAMgI,gBAAgBxiB,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAtB;UACAuE,UAAU,CAAVA;;UACA,KAAK3b,IAAI,CAAT,EAAYA,IAAI45B,aAAhB,GAAiC;YAC/B,MAAMC,mBAAmB34B,KAAKya,QAAL,CAAzB;YACA,MAAM2V,cAAc,IAAI5wB,UAAJ,CAAe,EAAf,CAApB;YACA,IAAIo5B,gBAAgB,CAApB;;YACA,KAAKnzB,IAAI,CAAT,EAAYA,IAAI,EAAhB,EAAoBA,KAAKgV,QAAzB,EAAmC;cACjCme,iBAAiBxI,YAAY3qB,CAAZ,IAAiBzF,KAAKya,MAAL,CAAlCme;YAL6B;;YAO/B,MAAMC,gBAAgB,IAAIr5B,UAAJ,CAAeo5B,aAAf,CAAtB;;YACA,KAAKnzB,IAAI,CAAT,EAAYA,IAAImzB,aAAhB,EAA+BnzB,KAAKgV,QAApC,EAA8C;cAC5Coe,cAAcpzB,CAAd,IAAmBzF,KAAKya,MAAL,CAAnBoe;YAT6B;;YAW/B/5B,KAAK,KAAK85B,aAAV95B;YAEC,qBAAoB,CAApB65B,KAA0B,CAA1BA,GAA8B5B,eAA9B4B,GAAgD7B,eAAhD,EACC6B,mBAAmB,EADpB,IAEGxI,kBAAkBC,WAAlB,EAA+ByI,aAA/B,CAFH;UAhBL;;UAoBE;;QAEF,KAAK,MAAL;UACEpe,UAAU,CAAVA;UAEAmW,gBAAgB1a,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAhB0a;UACAnW,UAAU,CAAVA;UACA;;QAEF,KAAK,MAAL;UAKE,MAAMwW,iBAAiB,EAAE2F,aAAF,KAAoB,CAApB,IAAyB,CAACb,YAAjD;UAEAtb,UAAU,CAAVA;UAEA,MAAMqe,iBAAiB94B,KAAKya,QAAL,CAAvB;UAAA,MACEkW,aAAa,EADf;;UAEA,KAAK7xB,IAAI,CAAT,EAAYA,IAAIg6B,cAAhB,EAAgCh6B,GAAhC,EAAqC;YACnC,MAAMwf,QAAQte,KAAKya,QAAL,CAAd;YACA,MAAMse,iBAAiBrI,MAAM2H,YAAN3H,CAAmBpS,KAAnBoS,CAAvB;YACA,MAAMhO,YAAYgO,MAAMC,UAAND,CAAiBqI,cAAjBrI,CAAlB;YACAhO,UAAUpE,KAAVoE,GAAkBpE,KAAlBoE;YACA,MAAMsW,YAAYh5B,KAAKya,QAAL,CAAlB;YACAiI,UAAUuP,cAAVvP,GAA2BqU,gBAAgBiC,aAAa,CAA7B,CAA3BtW;YACAA,UAAU4P,cAAV5P,GAA2BoU,gBAAgBkC,YAAY,EAA5B,CAA3BtW;YACAiO,WAAWvxB,IAAXuxB,CAAgBjO,SAAhBiO;UAnBJ;;UAqBE,MAAME,gBAAgB7wB,KAAKya,QAAL,CAAtB;UAAA,MACEqW,cAAc9wB,KAAKya,QAAL,CADhB;UAAA,MAEEwe,0BAA0Bj5B,KAAKya,QAAL,CAF5B;;UAGA,IAAI;YACF,MAAMye,YAAYzI,WAChBzwB,IADgB,EAEhBya,MAFgB,EAGhBiW,KAHgB,EAIhBC,UAJgB,EAKhBC,aALgB,EAMhBC,aANgB,EAOhBC,WAPgB,EAQhBmI,2BAA2B,CARX,EAShBA,0BAA0B,EATV,EAUhBhI,cAVgB,CAAlB;YAYAxW,UAAUye,SAAVze;UAbF,EAcE,OAAO/d,EAAP,EAAW;YACX,IAAIA,cAAc6yB,cAAlB,EAAkC;cAChC/zB,gBAAK,GAAGkB,GAAGc,OAAQ,4CAAnBhC;cACA,OAAO,KAAKmkB,KAAL,CAAW3f,IAAX,EAAiB;gBAAE+1B,cAAcr5B,GAAG8yB;cAAnB,CAAjB,CAAP;YAFF,OAGO,IAAI9yB,cAAc+yB,cAAlB,EAAkC;cACvCj0B,gBAAK,GAAGkB,GAAGc,OAAQ,0CAAnBhC;cACA;YANS;;YAQX,MAAMkB,EAAN;UA9CJ;;UAgDE;;QAEF,KAAK,MAAL;UAEE+d,UAAU,CAAVA;UACA;;QAEF,KAAK,MAAL;UACE,IAAIza,KAAKya,MAAL,MAAiB,IAArB,EAA2B;YAEzBA;UAHJ;;UAKE;;QAEF;UAIE,MAAM0e,iBAAiBpF,mBACrB/zB,IADqB,EAEFya,SAAS,CAFP,EAGJA,SAAS,CAHL,CAAvB;;UAKA,IAAI0e,kBAAkBA,eAAenF,OAArC,EAA8C;YAC5Cx4B,gBACE,2DACE29B,eAAenF,OAFnBx4B;YAIAif,SAAS0e,eAAe1e,MAAxBA;YACA;UAfJ;;UAiBE,IAAI,CAAC0e,cAAD,IAAmB1e,UAAUza,KAAKzD,MAALyD,GAAc,CAA/C,EAAkD;YAChDxE,gBACE,yDACE,yCAFJA;YAIA;UAtBJ;;UAwBE,MAAM,IAAI8zB,SAAJ,CACJ,uCAAuCoE,WAAWjyB,QAAXiyB,CAAoB,EAApBA,CADnC,CAAN;MA7PJ;;MAiQAA,aAAaxd,4BAAWlW,IAAXkW,EAAiBuE,MAAjBvE,CAAbwd;MACAjZ,UAAU,CAAVA;IAjUsC;;IAoUxC,KAAK7P,KAAL,GAAa8lB,MAAM0F,cAAnB;IACA,KAAKvrB,MAAL,GAAc6lB,MAAMlB,SAApB;IACA,KAAKkH,IAAL,GAAYA,IAAZ;IACA,KAAKC,KAAL,GAAaA,KAAb;IACA,KAAKhG,UAAL,GAAkB,EAAlB;;IACA,KAAK,IAAI7xB,IAAI,CAAR,EAAWqH,KAAKuqB,MAAMC,UAAND,CAAiBn0B,MAAtC,EAA8CuC,IAAIqH,EAAlD,EAAsDrH,GAAtD,EAA2D;MACzD,MAAM4jB,YAAYgO,MAAMC,UAAND,CAAiB5xB,CAAjB4xB,CAAlB;MAKA,MAAM4D,oBAAoBuC,mBAAmBnU,UAAU+V,cAA7B,CAA1B;;MACA,IAAInE,iBAAJ,EAAuB;QACrB5R,UAAU4R,iBAAV5R,GAA8B4R,iBAA9B5R;MARuD;;MAWzD,KAAKiO,UAAL,CAAgBvxB,IAAhB,CAAqB;QACnBkf,OAAOoE,UAAUpE,KADE;QAEnB8a,QAAQnE,mBAAmBvE,KAAnB,EAA0BhO,SAA1B,CAFW;QAGnB2W,QAAQ3W,UAAU4Q,CAAV5Q,GAAcgO,MAAM2F,IAHT;QAInBiD,QAAQ5W,UAAUrf,CAAVqf,GAAcgO,MAAM4F,IAJT;QAKnB9F,eAAe9N,UAAU8N,aALN;QAMnBoD,iBAAiBlR,UAAUkR;MANR,CAArB;IApVsC;;IA6VxC,KAAK2F,aAAL,GAAqB,KAAK5I,UAAL,CAAgBp0B,MAArC;IACA,OAAOiC,SAAP;EApWY;;EAuWdg7B,wBAAwB5uB,KAAxB,EAA+BC,MAA/B,EAAuC4uB,cAAc,KAArD,EAA4D;IAC1D,MAAMJ,SAAS,KAAKzuB,KAAL,GAAaA,KAA5B;IAAA,MACE0uB,SAAS,KAAKzuB,MAAL,GAAcA,MADzB;IAGA,IAAI6X,SAAJ,EAAegX,eAAf,EAAgCC,eAAhC,EAAiDC,iBAAjD;IACA,IAAIxvB,CAAJ,EAAOC,CAAP,EAAUvL,CAAV,EAAa2G,CAAb,EAAgBkH,CAAhB;IACA,IAAI2R,KAAJ;IACA,IAAI7D,SAAS,CAAb;IACA,IAAI2e,MAAJ;IACA,MAAMG,gBAAgB,KAAK5I,UAAL,CAAgBp0B,MAAtC;IACA,MAAMs9B,aAAajvB,QAAQC,MAARD,GAAiB2uB,aAApC;IACA,MAAMv5B,OAAO,IAAIga,iBAAJ,CAAsB6f,UAAtB,CAAb;IACA,MAAMC,oBAAoB,IAAIh5B,WAAJ,CAAgB8J,KAAhB,CAA1B;IACA,MAAMmvB,WAAW,UAAjB;IACA,IAAIC,mBAAJ;;IAEA,KAAKl7B,IAAI,CAAT,EAAYA,IAAIy6B,aAAhB,EAA+Bz6B,GAA/B,EAAoC;MAClC4jB,YAAY,KAAKiO,UAAL,CAAgB7xB,CAAhB,CAAZ4jB;MACAgX,kBAAkBhX,UAAU2W,MAAV3W,GAAmB2W,MAArCK;MACAC,kBAAkBjX,UAAU4W,MAAV5W,GAAmB4W,MAArCK;MACAlf,SAAS3b,CAAT2b;MACA2e,SAAS1W,UAAU0W,MAAnBA;MACAQ,oBAAqBlX,UAAU8N,aAAV9N,GAA0B,CAA1BA,IAAgC,CAArDkX;;MAGA,IAAIF,oBAAoBM,mBAAxB,EAA6C;QAC3C,KAAK5vB,IAAI,CAAT,EAAYA,IAAIQ,KAAhB,EAAuBR,GAAvB,EAA4B;UAC1B3E,IAAI,IAAK2E,IAAIsvB,eAAbj0B;UACAq0B,kBAAkB1vB,CAAlB,IAAyB,KAAI2vB,QAAJ,KAAiB,CAAjB,GAAuBt0B,IAAI,CAApDq0B;QAHyC;;QAK3CE,sBAAsBN,eAAtBM;MAdgC;;MAiBlC,KAAK3vB,IAAI,CAAT,EAAYA,IAAIQ,MAAhB,EAAwBR,GAAxB,EAA6B;QAC3B5E,IAAI,IAAK4E,IAAIsvB,eAAbl0B;QACA6Y,QAASsb,qBAAqBn0B,IAAIs0B,QAAzB,IAAwC,KAAI,CAAJ,KAAU,CAA3Dzb;;QACA,KAAKlU,IAAI,CAAT,EAAYA,IAAIQ,KAAhB,EAAuBR,GAAvB,EAA4B;UAC1BpK,KAAKya,MAAL,IAAe2e,OAAO9a,QAAQwb,kBAAkB1vB,CAAlB,CAAf,CAAfpK;UACAya,UAAU8e,aAAV9e;QALyB;MAjBK;IAhBsB;;IA4C1D,IAAIrmB,YAAY,KAAKyhC,gBAArB;;IAaA,IAAI,CAAC4D,WAAD,IAAgBF,kBAAkB,CAAlC,IAAuC,CAACnlC,SAA5C,EAAuD;MACrDA,YAAY,IAAI6Z,UAAJ,CAAe,CAAC,CAAC,GAAF,EAAO,GAAP,EAAY,CAAC,GAAb,EAAkB,GAAlB,EAAuB,CAAC,GAAxB,EAA6B,GAA7B,EAAkC,CAAC,GAAnC,EAAwC,GAAxC,CAAf,CAAZ7Z;IA1DwD;;IA6D1D,IAAIA,SAAJ,EAAe;MACb,KAAK0K,IAAI,CAAT,EAAYA,IAAI+6B,UAAhB,GAA8B;QAC5B,KAAKp0B,IAAI,CAAJA,EAAOkH,IAAI,CAAhB,EAAmBlH,IAAI8zB,aAAvB,EAAsC9zB,KAAK3G,GAAL,EAAU6N,KAAK,CAArD,EAAwD;UACtD3M,KAAKlB,CAAL,IAAW,CAACkB,KAAKlB,CAAL,IAAU1K,UAAUuY,CAAV,CAAV3M,IAA2B,CAA5B,IAAiC5L,UAAUuY,IAAI,CAAd,CAA5C3M;QAF0B;MADjB;IA7D2C;;IAoE1D,OAAOA,IAAP;EA3aY;;EA8ad,IAAIi6B,wBAAJ,GAA+B;IAC7B,IAAI,KAAKtD,KAAT,EAAgB;MAEd,OAAO,CAAC,CAAC,KAAKA,KAAL,CAAWmB,aAApB;IAH2B;;IAK7B,IAAI,KAAKyB,aAAL,KAAuB,CAA3B,EAA8B;MAC5B,IAAI,KAAKzD,eAAL,KAAyB,CAA7B,EAAgC;QAI9B,OAAO,KAAP;MAJF,OAKO,IACL,KAAKnF,UAAL,CAAgB,CAAhB,EAAmBrS,KAAnB,KAAyC,IAAzC,IACA,KAAKqS,UAAL,CAAgB,CAAhB,EAAmBrS,KAAnB,KAAyC,IADzC,IAEA,KAAKqS,UAAL,CAAgB,CAAhB,EAAmBrS,KAAnB,KAAyC,IAHpC,EAIL;QAGA,OAAO,KAAP;MAb0B;;MAe5B,OAAO,IAAP;IApB2B;;IAuB7B,IAAI,KAAKwX,eAAL,KAAyB,CAA7B,EAAgC;MAI9B,OAAO,IAAP;IA3B2B;;IA6B7B,OAAO,KAAP;EA3cY;;EA8cdoE,iBAAiBl6B,IAAjB,EAAuB;IACrB,IAAIm6B,CAAJ,EAAOC,EAAP,EAAWC,EAAX;;IACA,KAAK,IAAIv7B,IAAI,CAAR,EAAWvC,SAASyD,KAAKzD,MAA9B,EAAsCuC,IAAIvC,MAA1C,EAAkDuC,KAAK,CAAvD,EAA0D;MACxDq7B,IAAIn6B,KAAKlB,CAAL,CAAJq7B;MACAC,KAAKp6B,KAAKlB,IAAI,CAAT,CAALs7B;MACAC,KAAKr6B,KAAKlB,IAAI,CAAT,CAALu7B;MACAr6B,KAAKlB,CAAL,IAAUq7B,IAAI,OAAJA,GAAc,QAAQE,EAAhCr6B;MACAA,KAAKlB,IAAI,CAAT,IAAcq7B,IAAI,OAAJA,GAAc,QAAQC,EAAtBD,GAA2B,QAAQE,EAAjDr6B;MACAA,KAAKlB,IAAI,CAAT,IAAcq7B,IAAI,OAAJA,GAAc,QAAQC,EAApCp6B;IARmB;;IAUrB,OAAOA,IAAP;EAxdY;;EA2dds6B,kBAAkBt6B,IAAlB,EAAwB;IACtB,IAAIm6B,CAAJ,EAAOC,EAAP,EAAWC,EAAX,EAAe1tB,CAAf;IACA,IAAI8N,SAAS,CAAb;;IACA,KAAK,IAAI3b,IAAI,CAAR,EAAWvC,SAASyD,KAAKzD,MAA9B,EAAsCuC,IAAIvC,MAA1C,EAAkDuC,KAAK,CAAvD,EAA0D;MACxDq7B,IAAIn6B,KAAKlB,CAAL,CAAJq7B;MACAC,KAAKp6B,KAAKlB,IAAI,CAAT,CAALs7B;MACAC,KAAKr6B,KAAKlB,IAAI,CAAT,CAALu7B;MACA1tB,IAAI3M,KAAKlB,IAAI,CAAT,CAAJ6N;MAEA3M,KAAKya,QAAL,IACE,CAAC,eAAD,GACA2f,MACG,CAAC,mBAAD,GAAuBA,EAAvB,GACC,uBAAuBC,EADxB,GAEC,qBAAqBF,CAFtB,GAGC,sBAAsBxtB,CAHvB,GAIC,iBALJ,CADA,GAOA0tB,MACG,CAAC,oBAAD,GAAwBA,EAAxB,GACC,uBAAuBF,CADxB,GAEC,sBAAsBxtB,CAFvB,GAGC,gBAJJ,CAPA,GAYAwtB,KACG,uBAAuBA,CAAvB,GACC,sBAAsBxtB,CADvB,GAEC,gBAHJ,CAZA,GAgBAA,KAAK,CAAC,oBAAD,GAAwBA,CAAxB,GAA4B,iBAAjC,CAjBF3M;MAmBAA,KAAKya,QAAL,IACE,mBACA2f,MACG,sBAAsBA,EAAtB,GACC,uBAAuBC,EADxB,GAEC,uBAAuBF,CAFxB,GAGC,uBAAuBxtB,CAHxB,GAIC,iBALJ,CADA,GAOA0tB,MACG,CAAC,oBAAD,GAAwBA,EAAxB,GACC,sBAAsBF,CADvB,GAEC,uBAAuBxtB,CAFxB,GAGC,iBAJJ,CAPA,GAYAwtB,KACG,sBAAsBA,CAAtB,GACC,sBAAsBxtB,CADvB,GAEC,gBAHJ,CAZA,GAgBAA,KAAK,CAAC,oBAAD,GAAwBA,CAAxB,GAA4B,iBAAjC,CAjBF3M;MAmBAA,KAAKya,QAAL,IACE,CAAC,eAAD,GACA2f,MACG,CAAC,oBAAD,GAAwBA,EAAxB,GACC,sBAAsBC,EADvB,GAEC,qBAAqBF,CAFtB,GAGC,sBAAsBxtB,CAHvB,GAIC,iBALJ,CADA,GAOA0tB,MACG,CAAC,mBAAD,GAAuBA,EAAvB,GACC,uBAAuBF,CADxB,GAEC,uBAAuBxtB,CAFxB,GAGC,iBAJJ,CAPA,GAYAwtB,KACG,sBAAsBA,CAAtB,GACC,sBAAsBxtB,CADvB,GAEC,iBAHJ,CAZA,GAgBAA,KAAK,CAAC,oBAAD,GAAwBA,CAAxB,GAA4B,gBAAjC,CAjBF3M;IA/CoB;;IAmEtB,OAAOA,KAAKb,QAALa,CAAc,CAAdA,EAAiBya,MAAjBza,CAAP;EA9hBY;;EAiiBdu6B,mBAAmBv6B,IAAnB,EAAyB;IACvB,IAAIm6B,CAAJ,EAAOC,EAAP,EAAWC,EAAX;;IACA,KAAK,IAAIv7B,IAAI,CAAR,EAAWvC,SAASyD,KAAKzD,MAA9B,EAAsCuC,IAAIvC,MAA1C,EAAkDuC,KAAK,CAAvD,EAA0D;MACxDq7B,IAAIn6B,KAAKlB,CAAL,CAAJq7B;MACAC,KAAKp6B,KAAKlB,IAAI,CAAT,CAALs7B;MACAC,KAAKr6B,KAAKlB,IAAI,CAAT,CAALu7B;MACAr6B,KAAKlB,CAAL,IAAU,UAAUq7B,CAAV,GAAc,QAAQE,EAAhCr6B;MACAA,KAAKlB,IAAI,CAAT,IAAc,UAAUq7B,CAAV,GAAc,QAAQC,EAAtB,GAA2B,QAAQC,EAAjDr6B;MACAA,KAAKlB,IAAI,CAAT,IAAc,UAAUq7B,CAAV,GAAc,QAAQC,EAApCp6B;IARqB;;IAWvB,OAAOA,IAAP;EA5iBY;;EA+iBdw6B,kBAAkBx6B,IAAlB,EAAwB;IACtB,IAAIyD,CAAJ,EAAOlB,CAAP,EAAU8H,CAAV,EAAasC,CAAb;IACA,IAAI8N,SAAS,CAAb;;IACA,KAAK,IAAI3b,IAAI,CAAR,EAAWvC,SAASyD,KAAKzD,MAA9B,EAAsCuC,IAAIvC,MAA1C,EAAkDuC,KAAK,CAAvD,EAA0D;MACxD2E,IAAIzD,KAAKlB,CAAL,CAAJ2E;MACAlB,IAAIvC,KAAKlB,IAAI,CAAT,CAAJyD;MACA8H,IAAIrK,KAAKlB,IAAI,CAAT,CAAJuL;MACAsC,IAAI3M,KAAKlB,IAAI,CAAT,CAAJ6N;MAEA3M,KAAKya,QAAL,IACE,MACAhX,KACG,CAAC,sBAAD,GAA0BA,CAA1B,GACC,wBAAwBlB,CADzB,GAEC,wBAAwB8H,CAFzB,GAGC,uBAAuBsC,CAHxB,GAIC,kBALJ,CADA,GAOApK,KACG,0BAA0BA,CAA1B,GACC,yBAAyB8H,CAD1B,GAEC,wBAAwBsC,CAFzB,GAGC,mBAJJ,CAPA,GAYAtC,KACG,CAAC,sBAAD,GAA0BA,CAA1B,GACC,wBAAwBsC,CADzB,GAEC,kBAHJ,CAZA,GAgBAA,KAAK,wBAAwBA,CAAxB,GAA4B,kBAAjC,CAjBF3M;MAmBAA,KAAKya,QAAL,IACE,MACAhX,KACG,yBAAyBA,CAAzB,GACC,uBAAuBlB,CADxB,GAEC,yBAAyB8H,CAF1B,GAGC,wBAAwBsC,CAHzB,GAIC,kBALJ,CADA,GAOApK,KACG,CAAC,sBAAD,GAA0BA,CAA1B,GACC,wBAAwB8H,CADzB,GAEC,wBAAwBsC,CAFzB,GAGC,kBAJJ,CAPA,GAYAtC,KACG,yBAAyBA,CAAzB,GACC,yBAAyBsC,CAD1B,GAEC,mBAHJ,CAZA,GAgBAA,KAAK,wBAAwBA,CAAxB,GAA4B,kBAAjC,CAjBF3M;MAmBAA,KAAKya,QAAL,IACE,MACAhX,KACG,0BAA0BA,CAA1B,GACC,yBAAyBlB,CAD1B,GAEC,wBAAwB8H,CAFzB,GAGC,2BAA2BsC,CAH5B,GAIC,mBALJ,CADA,GAOApK,KACG,yBAAyBA,CAAzB,GACC,wBAAwB8H,CADzB,GAEC,wBAAwBsC,CAFzB,GAGC,mBAJJ,CAPA,GAYAtC,KACG,uBAAuBA,CAAvB,GACC,wBAAwBsC,CADzB,GAEC,kBAHJ,CAZA,GAgBAA,KAAK,wBAAwBA,CAAxB,GAA4B,kBAAjC,CAjBF3M;IA/CoB;;IAmEtB,OAAOA,KAAKb,QAALa,CAAc,CAAdA,EAAiBya,MAAjBza,CAAP;EAlnBY;;EAqnBdy6B,QAAQ;IAAE7vB,KAAF;IAASC,MAAT;IAAiB6vB,WAAW,KAA5B;IAAmCjB,cAAc;EAAjD,CAAR,EAAkE;IAUhE,IAAI,KAAKF,aAAL,GAAqB,CAAzB,EAA4B;MAC1B,MAAM,IAAIjK,SAAJ,CAAc,wBAAd,CAAN;IAX8D;;IAchE,MAAMtvB,OAAO,KAAKw5B,uBAAL,CAA6B5uB,KAA7B,EAAoCC,MAApC,EAA4C4uB,WAA5C,CAAb;;IAEA,IAAI,KAAKF,aAAL,KAAuB,CAAvB,IAA4BmB,QAAhC,EAA0C;MACxC,MAAMb,aAAa75B,KAAKzD,MAAxB;MACA,MAAMo+B,UAAU,IAAI3gB,iBAAJ,CAAsB6f,aAAa,CAAnC,CAAhB;MACA,IAAIpf,SAAS,CAAb;;MACA,KAAK,IAAI3b,IAAI,CAAb,EAAgBA,IAAI+6B,UAApB,EAAgC/6B,GAAhC,EAAqC;QACnC,MAAM87B,YAAY56B,KAAKlB,CAAL,CAAlB;QACA67B,QAAQlgB,QAAR,IAAoBmgB,SAApBD;QACAA,QAAQlgB,QAAR,IAAoBmgB,SAApBD;QACAA,QAAQlgB,QAAR,IAAoBmgB,SAApBD;MARsC;;MAUxC,OAAOA,OAAP;IAVF,OAWO,IAAI,KAAKpB,aAAL,KAAuB,CAAvB,IAA4B,KAAKU,wBAArC,EAA+D;MACpE,OAAO,KAAKC,gBAAL,CAAsBl6B,IAAtB,CAAP;IADK,OAEA,IAAI,KAAKu5B,aAAL,KAAuB,CAA3B,EAA8B;MACnC,IAAI,KAAKU,wBAAT,EAAmC;QACjC,IAAIS,QAAJ,EAAc;UACZ,OAAO,KAAKJ,iBAAL,CAAuBt6B,IAAvB,CAAP;QAF+B;;QAIjC,OAAO,KAAKu6B,kBAAL,CAAwBv6B,IAAxB,CAAP;MAJF,OAKO,IAAI06B,QAAJ,EAAc;QACnB,OAAO,KAAKF,iBAAL,CAAuBx6B,IAAvB,CAAP;MAPiC;IA7B2B;;IAuChE,OAAOA,IAAP;EA5pBY;;AAAA;;;;;;;;;;;;;;;AC5tBhB;;AACA;;AACA;;AAEA,MAAM66B,QAAN,SAAuBv9B,mBAAvB,CAAqC;EACnCI,YAAYrC,GAAZ,EAAiB;IACf,MAAO,cAAaA,GAAd,EAAN,EAA2B,UAA3B;EAFiC;;AAAA;;AAOrC,MAAMy/B,mBAAmB;EACvBC,IAAI,CADmB;EAEvBC,IAAI,CAFmB;EAGvBC,IAAI,CAHmB;EAIvBC,IAAI;AAJmB,CAAzB;;AAOA,MAAMC,QAAN,CAAe;EACbz9B,cAAc;IACZ,KAAK09B,oBAAL,GAA4B,KAA5B;EAFW;;EAKbzb,MAAM3f,IAAN,EAAY;IACV,MAAMq7B,OAAOnlB,4BAAWlW,IAAXkW,EAAiB,CAAjBA,CAAb;;IAEA,IAAImlB,SAAS,MAAb,EAAqB;MACnB,KAAKC,eAAL,CAAqBt7B,IAArB,EAA2B,CAA3B,EAA8BA,KAAKzD,MAAnC;MACA;IALQ;;IAQV,MAAMA,SAASyD,KAAKzD,MAApB;IACA,IAAIuU,WAAW,CAAf;;IACA,OAAOA,WAAWvU,MAAlB,EAA0B;MACxB,IAAIg/B,aAAa,CAAjB;MACA,IAAIC,OAAOhmB,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,CAAX;MACA,MAAMimB,OAAOjmB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAAb;MACA1E,YAAYyqB,UAAZzqB;;MACA,IAAI0qB,SAAS,CAAb,EAAgB;QAGdA,OACEhmB,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,IAA6B,UAA7BA,GACAA,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAFFgmB;QAGA1qB,YAAY,CAAZA;QACAyqB,cAAc,CAAdA;MAZsB;;MAcxB,IAAIC,SAAS,CAAb,EAAgB;QACdA,OAAOj/B,SAASuU,QAATvU,GAAoBg/B,UAA3BC;MAfsB;;MAiBxB,IAAIA,OAAOD,UAAX,EAAuB;QACrB,MAAM,IAAIV,QAAJ,CAAa,wBAAb,CAAN;MAlBsB;;MAoBxB,MAAMhB,aAAa2B,OAAOD,UAA1B;MACA,IAAIG,iBAAiB,IAArB;;MACA,QAAQD,IAAR;QACE,KAAK,UAAL;UACEC,iBAAiB,KAAjBA;UACA;;QACF,KAAK,UAAL;UAEE,MAAMC,SAAS37B,KAAK8Q,QAAL,CAAf;;UACA,IAAI6qB,WAAW,CAAf,EAAkB;YAEhB,MAAMC,aAAapmB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAAnB;;YACA,QAAQomB,UAAR;cACE,KAAK,EAAL;cACA,KAAK,EAAL;cACA,KAAK,EAAL;gBACE;;cACF;gBACEpgC,gBAAK,wBAAwBogC,UAA7BpgC;gBACA;YAPJ;UAHF,OAYO,IAAImgC,WAAW,CAAf,EAAkB;YACvBvgC,gBAAK,2BAALA;UAhBJ;;UAkBE;;QACF,KAAK,UAAL;UACE,KAAKkgC,eAAL,CAAqBt7B,IAArB,EAA2B8Q,QAA3B,EAAqCA,WAAW+oB,UAAhD;UACA;;QACF,KAAK,UAAL;UACE,IAAIrkB,4BAAWxV,IAAXwV,EAAiB1E,QAAjB0E,MAA+B,UAAnC,EAA+C;YAC7Cha,gBAAK,uBAALA;UAFJ;;UAIE;;QAEF,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,UAAL;UACE;;QACF;UACE,MAAMqgC,aAAan9B,OAAOC,YAAPD,CAChB+8B,QAAQ,EAARA,GAAc,IADE/8B,EAEhB+8B,QAAQ,EAARA,GAAc,IAFE/8B,EAGhB+8B,QAAQ,CAARA,GAAa,IAHG/8B,EAIjB+8B,OAAO,IAJU/8B,CAAnB;UAMAlD,gBAAM,2BAA0BigC,IAAK,KAAII,UAAW,IAApDrgC;UACA;MA9CJ;;MAgDA,IAAIkgC,cAAJ,EAAoB;QAClB5qB,YAAY+oB,UAAZ/oB;MAvEsB;IAVhB;EALC;;EA2FbgrB,qBAAqBC,MAArB,EAA6B;IAC3B,IAAIC,UAAUD,OAAO5R,OAAP4R,EAAd;;IACA,OAAOC,WAAW,CAAlB,EAAqB;MACnB,MAAMC,UAAUD,OAAhB;MACAA,UAAUD,OAAO5R,OAAP4R,EAAVC;MACA,MAAMn+B,OAAQo+B,WAAW,CAAXA,GAAgBD,OAA9B;;MAEA,IAAIn+B,SAAS,MAAb,EAAqB;QACnBk+B,OAAOrwB,IAAPqwB,CAAY,CAAZA;QACA,MAAMG,OAAOH,OAAOpR,QAAPoR,OAAsB,CAAnC;QACA,MAAMI,OAAOJ,OAAOpR,QAAPoR,OAAsB,CAAnC;QACA,MAAMK,QAAQL,OAAOpR,QAAPoR,OAAsB,CAApC;QACA,MAAMM,QAAQN,OAAOpR,QAAPoR,OAAsB,CAApC;QACAA,OAAOrwB,IAAPqwB,CAAY,EAAZA;QACA,MAAMO,OAAOP,OAAOvR,SAAPuR,EAAb;QACA,KAAKnxB,KAAL,GAAasxB,OAAOE,KAApB;QACA,KAAKvxB,MAAL,GAAcsxB,OAAOE,KAArB;QACA,KAAK/D,eAAL,GAAuBgE,IAAvB;QAEA,KAAKC,gBAAL,GAAwB,CAAxB;QACA;MAlBiB;IAFM;;IAuB3B,MAAM,IAAI1B,QAAJ,CAAa,oCAAb,CAAN;EAlHW;;EAqHbS,gBAAgBt7B,IAAhB,EAAsBmJ,KAAtB,EAA6BC,GAA7B,EAAkC;IAChC,MAAMozB,UAAU,EAAhB;IACA,IAAIC,eAAe,KAAnB;;IACA,IAAI;MACF,IAAI3rB,WAAW3H,KAAf;;MACA,OAAO2H,WAAW,CAAXA,GAAe1H,GAAtB,EAA2B;QACzB,MAAMvL,OAAOqY,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAb;QACApF,YAAY,CAAZA;QAEA,IAAIvU,SAAS,CAAb;QAAA,IACEkJ,CADF;QAAA,IAEEi3B,IAFF;QAAA,IAGEC,MAHF;QAAA,IAIEC,SAJF;QAAA,IAKEC,eALF;QAAA,IAMEC,IANF;;QAOA,QAAQj/B,IAAR;UACE,KAAK,MAAL;YACE2+B,QAAQO,UAARP,GAAqB,IAArBA;YACA;;UACF,KAAK,MAAL;YACE;;UACF,KAAK,MAAL;YACEjgC,SAAS2Z,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAT3Z;YACA,MAAMygC,MAAM,EAAZ;YACAA,IAAId,IAAJc,GAAWxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAAXwnB;YACAA,IAAIb,IAAJa,GAAWxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAAXwnB;YACAA,IAAIZ,KAAJY,GAAYxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E,CAAZwnB;YACAA,IAAIX,KAAJW,GAAYxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E,CAAZwnB;YACAA,IAAIC,KAAJD,GAAYxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E,CAAZwnB;YACAA,IAAIE,KAAJF,GAAYxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E,CAAZwnB;YACAA,IAAIG,MAAJH,GAAaxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E,CAAbwnB;YACAA,IAAII,MAAJJ,GAAaxnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,EAA5B0E,CAAbwnB;YACA,MAAM1E,kBAAkBpiB,4BAAWlW,IAAXkW,EAAiBpF,WAAW,EAA5BoF,CAAxB;YACA8mB,IAAIV,IAAJU,GAAW1E,eAAX0E;YACA,MAAMrM,aAAa,EAAnB;YACAlrB,IAAIqL,WAAW,EAAfrL;;YACA,KAAK,IAAI3G,IAAI,CAAb,EAAgBA,IAAIw5B,eAApB,EAAqCx5B,GAArC,EAA0C;cACxC,MAAM4jB,YAAY;gBAChBgP,WAAY,MAAKjsB,CAAL,IAAU,IAAV,IAAkB,CADd;gBAEhB43B,UAAU,CAAC,EAAEr9B,KAAKyF,CAAL,IAAU,IAAZ,CAFK;gBAGhB63B,OAAOt9B,KAAKyF,IAAI,CAAT,CAHS;gBAIhB83B,OAAOv9B,KAAKyF,IAAI,CAAT;cAJS,CAAlB;cAMAA,KAAK,CAALA;cACA+3B,6BAA6B9a,SAA7B,EAAwCsa,GAAxC;cACArM,WAAWvxB,IAAXuxB,CAAgBjO,SAAhBiO;YAxBJ;;YA0BE6L,QAAQiB,GAARjB,GAAcQ,GAAdR;YACAA,QAAQ7L,UAAR6L,GAAqB7L,UAArB6L;YACAkB,mBAAmBlB,OAAnB,EAA4B7L,UAA5B;YACA6L,QAAQmB,GAARnB,GAAc,EAAdA;YACAA,QAAQoB,GAARpB,GAAc,EAAdA;YACA;;UACF,KAAK,MAAL;YACEjgC,SAAS2Z,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAT3Z;YACA,MAAMshC,MAAM,EAAZ;YACAp4B,IAAIqL,WAAW,CAAfrL;YACAi3B,OAAO18B,KAAKyF,GAAL,CAAPi3B;;YACA,QAAQA,OAAO,IAAf;cACE,KAAK,CAAL;gBACEE,YAAY,CAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,KAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF;gBACE,MAAM,IAAInhC,KAAJ,CAAU,wBAAwBghC,IAAlC,CAAN;YAdJ;;YAgBAmB,IAAIC,cAAJD,GAAqBjB,cAAc,CAAnCiB;YACAA,IAAIhB,eAAJgB,GAAsBhB,eAAtBgB;YACAA,IAAIE,SAAJF,GAAgBnB,QAAQ,CAAxBmB;YACAlB,SAAS,EAATA;;YACA,OAAOl3B,IAAIlJ,SAASuU,QAApB,EAA8B;cAC5B,MAAMktB,QAAQ,EAAd;;cACA,IAAIpB,cAAc,CAAlB,EAAqB;gBACnBoB,MAAMC,OAAND,GAAgBh+B,KAAKyF,GAAL,KAAa,CAA7Bu4B;gBACAA,MAAME,EAANF,GAAW,CAAXA;cAFF,OAGO;gBACLA,MAAMC,OAAND,GAAgBh+B,KAAKyF,CAAL,KAAW,CAA3Bu4B;gBACAA,MAAME,EAANF,GAAa,MAAKv4B,CAAL,IAAU,GAAV,KAAkB,CAAlB,GAAuBzF,KAAKyF,IAAI,CAAT,CAApCu4B;gBACAv4B,KAAK,CAALA;cAR0B;;cAU5Bk3B,OAAOv9B,IAAPu9B,CAAYqB,KAAZrB;YAnCJ;;YAqCEkB,IAAIM,MAAJN,GAAalB,MAAbkB;;YACA,IAAIrB,QAAQO,UAAZ,EAAwB;cACtBP,QAAQ4B,GAAR5B,GAAcqB,GAAdrB;YADF,OAEO;cACLA,QAAQ6B,WAAR7B,CAAoB4B,GAApB5B,GAA0BqB,GAA1BrB;cACAA,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,GAA0B,EAA1BA;YA1CJ;;YA4CE;;UACF,KAAK,MAAL;YACEjgC,SAAS2Z,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAT3Z;YACA,MAAM+hC,MAAM,EAAZ;YACA74B,IAAIqL,WAAW,CAAfrL;YACA,IAAI84B,IAAJ;;YACA,IAAI/B,QAAQiB,GAARjB,CAAYF,IAAZE,GAAmB,GAAvB,EAA4B;cAC1B+B,OAAOv+B,KAAKyF,GAAL,CAAP84B;YADF,OAEO;cACLA,OAAOroB,4BAAWlW,IAAXkW,EAAiBzQ,CAAjByQ,CAAPqoB;cACA94B,KAAK,CAALA;YATJ;;YAWEi3B,OAAO18B,KAAKyF,GAAL,CAAPi3B;;YACA,QAAQA,OAAO,IAAf;cACE,KAAK,CAAL;gBACEE,YAAY,CAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,KAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF;gBACE,MAAM,IAAInhC,KAAJ,CAAU,wBAAwBghC,IAAlC,CAAN;YAdJ;;YAgBA4B,IAAIR,cAAJQ,GAAqB1B,cAAc,CAAnC0B;YACAA,IAAIzB,eAAJyB,GAAsBzB,eAAtByB;YACAA,IAAIP,SAAJO,GAAgB5B,QAAQ,CAAxB4B;YACA3B,SAAS,EAATA;;YACA,OAAOl3B,IAAIlJ,SAASuU,QAApB,EAA8B;cAC5B,MAAMktB,QAAQ,EAAd;;cACA,IAAIpB,cAAc,CAAlB,EAAqB;gBACnBoB,MAAMC,OAAND,GAAgBh+B,KAAKyF,GAAL,KAAa,CAA7Bu4B;gBACAA,MAAME,EAANF,GAAW,CAAXA;cAFF,OAGO;gBACLA,MAAMC,OAAND,GAAgBh+B,KAAKyF,CAAL,KAAW,CAA3Bu4B;gBACAA,MAAME,EAANF,GAAa,MAAKv4B,CAAL,IAAU,GAAV,KAAkB,CAAlB,GAAuBzF,KAAKyF,IAAI,CAAT,CAApCu4B;gBACAv4B,KAAK,CAALA;cAR0B;;cAU5Bk3B,OAAOv9B,IAAPu9B,CAAYqB,KAAZrB;YA1CJ;;YA4CE2B,IAAIH,MAAJG,GAAa3B,MAAb2B;;YACA,IAAI9B,QAAQO,UAAZ,EAAwB;cACtBP,QAAQmB,GAARnB,CAAY+B,IAAZ/B,IAAoB8B,GAApB9B;YADF,OAEO;cACLA,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,CAAwB+B,IAAxB/B,IAAgC8B,GAAhC9B;YAhDJ;;YAkDE;;UACF,KAAK,MAAL;YACEjgC,SAAS2Z,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAT3Z;YACA,MAAMiiC,MAAM,EAAZ;YACA/4B,IAAIqL,WAAW,CAAfrL;YACA,MAAMg5B,OAAOz+B,KAAKyF,GAAL,CAAb;YACA+4B,IAAIE,+BAAJF,GAAsC,CAAC,EAAEC,OAAO,CAAT,CAAvCD;YACAA,IAAIG,aAAJH,GAAoB,CAAC,EAAEC,OAAO,CAAT,CAArBD;YACAA,IAAII,aAAJJ,GAAoB,CAAC,EAAEC,OAAO,CAAT,CAArBD;YACAA,IAAIK,gBAAJL,GAAuBx+B,KAAKyF,GAAL,CAAvB+4B;YACAA,IAAIM,WAAJN,GAAkBtoB,4BAAWlW,IAAXkW,EAAiBzQ,CAAjByQ,CAAlBsoB;YACA/4B,KAAK,CAALA;YACA+4B,IAAIO,0BAAJP,GAAiCx+B,KAAKyF,GAAL,CAAjC+4B;YAEAA,IAAIQ,wBAAJR,GAA+Bx+B,KAAKyF,GAAL,CAA/B+4B;YACAA,IAAIS,GAAJT,GAAW,MAAK/4B,GAAL,IAAY,GAAZ,IAAmB,CAA9B+4B;YACAA,IAAIU,GAAJV,GAAW,MAAK/4B,GAAL,IAAY,GAAZ,IAAmB,CAA9B+4B;YACA,MAAMW,aAAan/B,KAAKyF,GAAL,CAAnB;YACA+4B,IAAIY,+BAAJZ,GAAsC,CAAC,EAAEW,aAAa,CAAf,CAAvCX;YACAA,IAAIa,yBAAJb,GAAgC,CAAC,EAAEW,aAAa,CAAf,CAAjCX;YACAA,IAAIc,2BAAJd,GAAkC,CAAC,EAAEW,aAAa,CAAf,CAAnCX;YACAA,IAAIe,gBAAJf,GAAuB,CAAC,EAAEW,aAAa,CAAf,CAAxBX;YACAA,IAAIgB,sBAAJhB,GAA6B,CAAC,EAAEW,aAAa,EAAf,CAA9BX;YACAA,IAAIiB,sBAAJjB,GAA6B,CAAC,EAAEW,aAAa,EAAf,CAA9BX;YACAA,IAAIkB,wBAAJlB,GAA+Bx+B,KAAKyF,GAAL,CAA/B+4B;;YACA,IAAIA,IAAIE,+BAAR,EAAyC;cACvC,MAAMiB,iBAAiB,EAAvB;;cACA,OAAOl6B,IAAIlJ,SAASuU,QAApB,EAA8B;gBAC5B,MAAM8uB,gBAAgB5/B,KAAKyF,GAAL,CAAtB;gBACAk6B,eAAevgC,IAAfugC,CAAoB;kBAClBE,KAAKD,gBAAgB,GADH;kBAElBE,KAAKF,iBAAiB;gBAFJ,CAApBD;cAJqC;;cASvCnB,IAAImB,cAAJnB,GAAqBmB,cAArBnB;YAjCJ;;YAmCE,MAAMuB,cAAc,EAApB;;YACA,IAAIvB,IAAIY,+BAAR,EAAyC;cACvCW,YAAY3gC,IAAZ2gC,CAAiB,iCAAjBA;YArCJ;;YAuCE,IAAIvB,IAAIc,2BAAR,EAAqC;cACnCS,YAAY3gC,IAAZ2gC,CAAiB,6BAAjBA;YAxCJ;;YA0CE,IAAIvB,IAAIe,gBAAR,EAA0B;cACxBQ,YAAY3gC,IAAZ2gC,CAAiB,kBAAjBA;YA3CJ;;YA6CE,IAAIvB,IAAIgB,sBAAR,EAAgC;cAC9BO,YAAY3gC,IAAZ2gC,CAAiB,wBAAjBA;YA9CJ;;YAgDE,IAAIA,YAAYxjC,MAAZwjC,GAAqB,CAAzB,EAA4B;cAC1BtD,eAAe,IAAfA;cACAjhC,gBAAM,iCAAgCukC,YAAY1gC,IAAZ0gC,CAAiB,IAAjBA,CAAuB,IAA7DvkC;YAlDJ;;YAoDE,IAAIghC,QAAQO,UAAZ,EAAwB;cACtBP,QAAQwD,GAARxD,GAAcgC,GAAdhC;YADF,OAEO;cACLA,QAAQ6B,WAAR7B,CAAoBwD,GAApBxD,GAA0BgC,GAA1BhC;cACAA,QAAQ6B,WAAR7B,CAAoBoB,GAApBpB,GAA0B,EAA1BA;YAxDJ;;YA0DE;;UACF,KAAK,MAAL;YACEjgC,SAAS2Z,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAT3Z;YACAugC,OAAO,EAAPA;YACAA,KAAKxe,KAALwe,GAAa5mB,4BAAWlW,IAAXkW,EAAiBpF,WAAW,CAA5BoF,CAAb4mB;YACAA,KAAKvgC,MAALugC,GAActnB,4BAAWxV,IAAXwV,EAAiB1E,WAAW,CAA5B0E,CAAdsnB;YACAA,KAAKrR,OAALqR,GAAeA,KAAKvgC,MAALugC,GAAchsB,QAAdgsB,GAAyB,CAAxCA;YACAA,KAAKmD,SAALnD,GAAiB98B,KAAK8Q,WAAW,CAAhB,CAAjBgsB;YACAA,KAAKoD,UAALpD,GAAkB98B,KAAK8Q,WAAW,CAAhB,CAAlBgsB;YAEAN,QAAQO,UAARP,GAAqB,KAArBA;;YACA,IAAIM,KAAKmD,SAALnD,KAAmB,CAAvB,EAA0B;cAExBA,KAAKkD,GAALlD,GAAWN,QAAQwD,GAAnBlD;cACAA,KAAKc,GAALd,GAAWN,QAAQoB,GAARpB,CAAYz5B,KAAZy5B,CAAkB,CAAlBA,CAAXM;cACAA,KAAKsB,GAALtB,GAAWN,QAAQ4B,GAAnBtB;cACAA,KAAKa,GAALb,GAAWN,QAAQmB,GAARnB,CAAYz5B,KAAZy5B,CAAkB,CAAlBA,CAAXM;YAfJ;;YAiBEN,QAAQ6B,WAAR7B,GAAsBM,IAAtBN;YACA;;UACF,KAAK,MAAL;YACEM,OAAON,QAAQ6B,WAAfvB;;YACA,IAAIA,KAAKmD,SAALnD,KAAmB,CAAvB,EAA0B;cACxBqD,eAAe3D,OAAf,EAAwBM,KAAKxe,KAA7B;cACA8hB,aAAa5D,OAAb;YAJJ;;YAQEjgC,SAASugC,KAAKrR,OAALqR,GAAehsB,QAAxBvU;YACA8jC,iBAAiB7D,OAAjB,EAA0Bx8B,IAA1B,EAAgC8Q,QAAhC,EAA0CvU,MAA1C;YACA;;UACF,KAAK,MAAL;YACEf,gBAAK,uDAALA;;UAEF,KAAK,MAAL;UACA,KAAK,MAAL;UACA,KAAK,MAAL;UACA,KAAK,MAAL;YACEe,SAAS2Z,4BAAWlW,IAAXkW,EAAiBpF,QAAjBoF,CAAT3Z;YAEA;;UACF;YACE,MAAM,IAAIb,KAAJ,CAAU,8BAA8BmC,KAAK4D,QAAL5D,CAAc,EAAdA,CAAxC,CAAN;QA1OJ;;QA4OAiT,YAAYvU,MAAZuU;MAzPA;IAAJ,EA2PE,OAAO5P,CAAP,EAAU;MACV,IAAIu7B,gBAAgB,KAAKrB,oBAAzB,EAA+C;QAC7C,MAAM,IAAIP,QAAJ,CAAa35B,EAAE1D,OAAf,CAAN;MADF,OAEO;QACLhC,gBAAM,iCAAgC0F,EAAE1D,OAAQ,IAAhDhC;MAJQ;IA9PoB;;IAqQhC,KAAK8kC,KAAL,GAAaC,oBAAoB/D,OAApB,CAAb;IACA,KAAK5xB,KAAL,GAAa4xB,QAAQiB,GAARjB,CAAYN,IAAZM,GAAmBA,QAAQiB,GAARjB,CAAYJ,KAA5C;IACA,KAAKvxB,MAAL,GAAc2xB,QAAQiB,GAARjB,CAAYL,IAAZK,GAAmBA,QAAQiB,GAARjB,CAAYH,KAA7C;IACA,KAAK/D,eAAL,GAAuBkE,QAAQiB,GAARjB,CAAYF,IAAnC;EA7XW;;AAAA;;;;AAiYf,SAASkB,4BAAT,CAAsC9a,SAAtC,EAAiDsa,GAAjD,EAAsD;EAEpDta,UAAUje,EAAVie,GAAe1jB,KAAKmjB,IAALnjB,CAAUg+B,IAAIZ,KAAJY,GAAYta,UAAU4a,KAAhCt+B,CAAf0jB;EACAA,UAAU/d,EAAV+d,GAAe1jB,KAAKmjB,IAALnjB,CAAUg+B,IAAId,IAAJc,GAAWta,UAAU4a,KAA/Bt+B,CAAf0jB;EACAA,UAAUhe,EAAVge,GAAe1jB,KAAKmjB,IAALnjB,CAAUg+B,IAAIX,KAAJW,GAAYta,UAAU6a,KAAhCv+B,CAAf0jB;EACAA,UAAU9d,EAAV8d,GAAe1jB,KAAKmjB,IAALnjB,CAAUg+B,IAAIb,IAAJa,GAAWta,UAAU6a,KAA/Bv+B,CAAf0jB;EACAA,UAAU9X,KAAV8X,GAAkBA,UAAU/d,EAAV+d,GAAeA,UAAUje,EAA3Cie;EACAA,UAAU7X,MAAV6X,GAAmBA,UAAU9d,EAAV8d,GAAeA,UAAUhe,EAA5Cge;AAzaF;;AA2aA,SAASgb,kBAAT,CAA4BlB,OAA5B,EAAqC7L,UAArC,EAAiD;EAC/C,MAAMqM,MAAMR,QAAQiB,GAApB;EAEA,MAAM6C,QAAQ,EAAd;EACA,IAAIxD,IAAJ;EACA,MAAM0D,YAAYxhC,KAAKmjB,IAALnjB,CAAW,KAAIk9B,IAAJc,GAAWA,IAAIG,MAAf,IAAyBH,IAAIC,KAAxCj+B,CAAlB;EACA,MAAMyhC,YAAYzhC,KAAKmjB,IAALnjB,CAAW,KAAIm9B,IAAJa,GAAWA,IAAII,MAAf,IAAyBJ,IAAIE,KAAxCl+B,CAAlB;;EACA,KAAK,IAAIib,IAAI,CAAb,EAAgBA,IAAIwmB,SAApB,EAA+BxmB,GAA/B,EAAoC;IAClC,KAAK,IAAI3X,IAAI,CAAb,EAAgBA,IAAIk+B,SAApB,EAA+Bl+B,GAA/B,EAAoC;MAClCw6B,OAAO,EAAPA;MACAA,KAAK4D,GAAL5D,GAAW99B,KAAKkE,GAALlE,CAASg+B,IAAIG,MAAJH,GAAa16B,IAAI06B,IAAIC,KAA9Bj+B,EAAqCg+B,IAAIZ,KAAzCp9B,CAAX89B;MACAA,KAAK6D,GAAL7D,GAAW99B,KAAKkE,GAALlE,CAASg+B,IAAII,MAAJJ,GAAa/iB,IAAI+iB,IAAIE,KAA9Bl+B,EAAqCg+B,IAAIX,KAAzCr9B,CAAX89B;MACAA,KAAK8D,GAAL9D,GAAW99B,KAAKC,GAALD,CAASg+B,IAAIG,MAAJH,GAAc,KAAI,CAAJ,IAASA,IAAIC,KAApCj+B,EAA2Cg+B,IAAId,IAA/Cl9B,CAAX89B;MACAA,KAAK+D,GAAL/D,GAAW99B,KAAKC,GAALD,CAASg+B,IAAII,MAAJJ,GAAc,KAAI,CAAJ,IAASA,IAAIE,KAApCl+B,EAA2Cg+B,IAAIb,IAA/Cn9B,CAAX89B;MACAA,KAAKlyB,KAALkyB,GAAaA,KAAK8D,GAAL9D,GAAWA,KAAK4D,GAA7B5D;MACAA,KAAKjyB,MAALiyB,GAAcA,KAAK+D,GAAL/D,GAAWA,KAAK6D,GAA9B7D;MACAA,KAAKnM,UAALmM,GAAkB,EAAlBA;MACAwD,MAAMlhC,IAANkhC,CAAWxD,IAAXwD;IAVgC;EAPW;;EAoB/C9D,QAAQ8D,KAAR9D,GAAgB8D,KAAhB9D;EAEA,MAAMlE,kBAAkB0E,IAAIV,IAA5B;;EACA,KAAK,IAAIx9B,IAAI,CAAR,EAAWqH,KAAKmyB,eAArB,EAAsCx5B,IAAIqH,EAA1C,EAA8CrH,GAA9C,EAAmD;IACjD,MAAM4jB,YAAYiO,WAAW7xB,CAAX,CAAlB;;IACA,KAAK,IAAI2G,IAAI,CAAR,EAAWq7B,KAAKR,MAAM/jC,MAA3B,EAAmCkJ,IAAIq7B,EAAvC,EAA2Cr7B,GAA3C,EAAgD;MAC9C,MAAMs7B,gBAAgB,EAAtB;MACAjE,OAAOwD,MAAM76B,CAAN,CAAPq3B;MACAiE,cAAcC,IAAdD,GAAqB/hC,KAAKmjB,IAALnjB,CAAU89B,KAAK4D,GAAL5D,GAAWpa,UAAU4a,KAA/Bt+B,CAArB+hC;MACAA,cAAcE,IAAdF,GAAqB/hC,KAAKmjB,IAALnjB,CAAU89B,KAAK6D,GAAL7D,GAAWpa,UAAU6a,KAA/Bv+B,CAArB+hC;MACAA,cAAcG,IAAdH,GAAqB/hC,KAAKmjB,IAALnjB,CAAU89B,KAAK8D,GAAL9D,GAAWpa,UAAU4a,KAA/Bt+B,CAArB+hC;MACAA,cAAcI,IAAdJ,GAAqB/hC,KAAKmjB,IAALnjB,CAAU89B,KAAK+D,GAAL/D,GAAWpa,UAAU6a,KAA/Bv+B,CAArB+hC;MACAA,cAAcn2B,KAAdm2B,GAAsBA,cAAcG,IAAdH,GAAqBA,cAAcC,IAAzDD;MACAA,cAAcl2B,MAAdk2B,GAAuBA,cAAcI,IAAdJ,GAAqBA,cAAcE,IAA1DF;MACAjE,KAAKnM,UAALmM,CAAgBh+B,CAAhBg+B,IAAqBiE,aAArBjE;IAX+C;EAvBJ;AA3ajD;;AAidA,SAASsE,mBAAT,CAA6B5E,OAA7B,EAAsC9Z,SAAtC,EAAiD7gB,CAAjD,EAAoD;EAClD,MAAMw/B,WAAW3e,UAAU4e,qBAA3B;EACA,MAAMnjB,SAAS,EAAf;;EACA,IAAI,CAACkjB,SAAS3C,+BAAd,EAA+C;IAC7CvgB,OAAO0hB,GAAP1hB,GAAa,EAAbA;IACAA,OAAO2hB,GAAP3hB,GAAa,EAAbA;EAFF,OAGO;IACLA,OAAO0hB,GAAP1hB,GAAakjB,SAAS1B,cAAT0B,CAAwBx/B,CAAxBw/B,EAA2BxB,GAAxC1hB;IACAA,OAAO2hB,GAAP3hB,GAAakjB,SAAS1B,cAAT0B,CAAwBx/B,CAAxBw/B,EAA2BvB,GAAxC3hB;EARgD;;EAWlDA,OAAOojB,IAAPpjB,GACEtc,IAAI,CAAJA,GACI7C,KAAKC,GAALD,CAASqiC,SAASpC,GAAlBjgC,EAAuBmf,OAAO0hB,GAAP1hB,GAAa,CAApCnf,CADJ6C,GAEI7C,KAAKC,GAALD,CAASqiC,SAASpC,GAAlBjgC,EAAuBmf,OAAO0hB,GAA9B7gC,CAHNmf;EAIAA,OAAOqjB,IAAPrjB,GACEtc,IAAI,CAAJA,GACI7C,KAAKC,GAALD,CAASqiC,SAASnC,GAAlBlgC,EAAuBmf,OAAO2hB,GAAP3hB,GAAa,CAApCnf,CADJ6C,GAEI7C,KAAKC,GAALD,CAASqiC,SAASnC,GAAlBlgC,EAAuBmf,OAAO2hB,GAA9B9gC,CAHNmf;EAIA,OAAOA,MAAP;AApeF;;AAseA,SAASsjB,cAAT,CAAwBjF,OAAxB,EAAiCkF,UAAjC,EAA6CC,UAA7C,EAAyD;EAEvD,MAAMC,gBAAgB,KAAKD,WAAW9B,GAAtC;EACA,MAAMgC,iBAAiB,KAAKF,WAAW7B,GAAvC;EAeA,MAAMgC,YAAYJ,WAAWK,QAAXL,KAAwB,CAA1C;EACA,MAAMM,yBAAyB,KAAML,WAAW9B,GAAX8B,IAAkBG,YAAY,CAAZ,GAAgB,CAAC,CAAnCH,CAArC;EACA,MAAMM,0BAA0B,KAAMN,WAAW7B,GAAX6B,IAAkBG,YAAY,CAAZ,GAAgB,CAAC,CAAnCH,CAAtC;EACA,MAAMO,mBACJR,WAAWS,IAAXT,GAAkBA,WAAWU,IAA7BV,GACI1iC,KAAKmjB,IAALnjB,CAAU0iC,WAAWS,IAAXT,GAAkBE,aAA5B5iC,IACAA,KAAKqjC,KAALrjC,CAAW0iC,WAAWU,IAAXV,GAAkBE,aAA7B5iC,CAFJ0iC,GAGI,CAJN;EAKA,MAAMY,mBACJZ,WAAWa,IAAXb,GAAkBA,WAAWc,IAA7Bd,GACI1iC,KAAKmjB,IAALnjB,CAAU0iC,WAAWa,IAAXb,GAAkBG,cAA5B7iC,IACAA,KAAKqjC,KAALrjC,CAAW0iC,WAAWc,IAAXd,GAAkBG,cAA7B7iC,CAFJ0iC,GAGI,CAJN;EAKA,MAAMe,eAAeP,mBAAmBI,gBAAxC;EAEAZ,WAAWgB,kBAAXhB,GAAgC;IAC9BE,aAD8B;IAE9BC,cAF8B;IAG9BK,gBAH8B;IAI9BI,gBAJ8B;IAK9BG,YAL8B;IAM9BT,sBAN8B;IAO9BC;EAP8B,CAAhCP;AAvgBF;;AAihBA,SAASiB,eAAT,CAAyBnG,OAAzB,EAAkCoG,OAAlC,EAA2CjB,UAA3C,EAAuD;EAErD,MAAMJ,OAAOI,WAAWJ,IAAxB;EACA,MAAMC,OAAOG,WAAWH,IAAxB;EACA,MAAMqB,iBAAiB,KAAKtB,IAA5B;EACA,MAAMuB,kBAAkB,KAAKtB,IAA7B;EACA,MAAMuB,OAAOH,QAAQI,IAARJ,IAAgBrB,IAA7B;EACA,MAAM0B,OAAOL,QAAQM,IAARN,IAAgBpB,IAA7B;EACA,MAAM2B,OAAQP,QAAQQ,IAARR,GAAeC,cAAfD,GAAgC,CAAhCA,IAAsCrB,IAApD;EACA,MAAM8B,OAAQT,QAAQU,IAARV,GAAeE,eAAfF,GAAiC,CAAjCA,IAAuCpB,IAArD;EACA,MAAMkB,qBAAqBE,QAAQlB,UAARkB,CAAmBF,kBAA9C;EACA,MAAMa,aAAa,EAAnB;EACA,MAAMC,YAAY,EAAlB;EACA,IAAI1kC,CAAJ,EAAO2G,CAAP,EAAUg+B,SAAV,EAAqBC,cAArB;;EACA,KAAKj+B,IAAIw9B,IAAT,EAAex9B,IAAI49B,IAAnB,EAAyB59B,GAAzB,EAA8B;IAC5B,KAAK3G,IAAIikC,IAAT,EAAejkC,IAAIqkC,IAAnB,EAAyBrkC,GAAzB,EAA8B;MAC5B2kC,YAAY;QACVE,KAAK7kC,CADK;QAEV8kC,KAAKn+B,CAFK;QAGVu9B,MAAMH,iBAAiB/jC,CAHb;QAIVokC,MAAMJ,kBAAkBr9B,CAJd;QAKV29B,MAAMP,kBAAkB/jC,IAAI,CAAtB,CALI;QAMVwkC,MAAMR,mBAAmBr9B,IAAI,CAAvB;MANI,CAAZg+B;MASAA,UAAUI,KAAVJ,GAAkBzkC,KAAKkE,GAALlE,CAAS4jC,QAAQI,IAAjBhkC,EAAuBykC,UAAUT,IAAjChkC,CAAlBykC;MACAA,UAAUK,KAAVL,GAAkBzkC,KAAKkE,GAALlE,CAAS4jC,QAAQM,IAAjBlkC,EAAuBykC,UAAUP,IAAjClkC,CAAlBykC;MACAA,UAAUM,KAAVN,GAAkBzkC,KAAKC,GAALD,CAAS4jC,QAAQQ,IAAjBpkC,EAAuBykC,UAAUL,IAAjCpkC,CAAlBykC;MACAA,UAAUO,KAAVP,GAAkBzkC,KAAKC,GAALD,CAAS4jC,QAAQU,IAAjBtkC,EAAuBykC,UAAUH,IAAjCtkC,CAAlBykC;MAKA,MAAMQ,KAAKjlC,KAAKqjC,KAALrjC,CACR,WAAU6kC,KAAVJ,GAAkBb,QAAQI,IAA1B,IACCN,mBAAmBV,sBAFZhjC,CAAX;MAIA,MAAMklC,KAAKllC,KAAKqjC,KAALrjC,CACR,WAAU8kC,KAAVL,GAAkBb,QAAQM,IAA1B,IACCR,mBAAmBT,uBAFZjjC,CAAX;MAIA0kC,iBAAiBO,KAAKC,KAAKxB,mBAAmBR,gBAA9CwB;MAEAD,UAAUC,cAAVD,GAA2BC,cAA3BD;MACAA,UAAUU,WAAVV,GAAwBb,QAAQh6B,IAAhC66B;MACAA,UAAUW,MAAVX,GAAmB,CAAnBA;;MAEA,IACEA,UAAUM,KAAVN,IAAmBA,UAAUI,KAA7BJ,IACAA,UAAUO,KAAVP,IAAmBA,UAAUK,KAF/B,EAGE;QACA;MApC0B;;MAsC5BP,WAAWnkC,IAAXmkC,CAAgBE,SAAhBF;MAEA,IAAIc,WAAWb,UAAUE,cAAV,CAAf;;MACA,IAAIW,aAAa7lC,SAAjB,EAA4B;QAC1B,IAAIM,IAAIulC,SAASC,MAAjB,EAAyB;UACvBD,SAASC,MAATD,GAAkBvlC,CAAlBulC;QADF,OAEO,IAAIvlC,IAAIulC,SAASE,MAAjB,EAAyB;UAC9BF,SAASE,MAATF,GAAkBvlC,CAAlBulC;QAJwB;;QAM1B,IAAI5+B,IAAI4+B,SAASG,MAAjB,EAAyB;UACvBH,SAASC,MAATD,GAAkB5+B,CAAlB4+B;QADF,OAEO,IAAI5+B,IAAI4+B,SAASI,MAAjB,EAAyB;UAC9BJ,SAASI,MAATJ,GAAkB5+B,CAAlB4+B;QATwB;MAA5B,OAWO;QACLb,UAAUE,cAAV,IAA4BW,WAAW;UACrCC,QAAQxlC,CAD6B;UAErC0lC,QAAQ/+B,CAF6B;UAGrC8+B,QAAQzlC,CAH6B;UAIrC2lC,QAAQh/B;QAJ6B,CAAvC+9B;MArD0B;;MA4D5BC,UAAUY,QAAVZ,GAAqBY,QAArBZ;IA7D0B;EAduB;;EA8ErDb,QAAQ8B,mBAAR9B,GAA8B;IAC5BC,gBAAgBtB,IADY;IAE5BuB,iBAAiBtB,IAFW;IAG5BmD,kBAAkBxB,OAAOJ,IAAPI,GAAc,CAHJ;IAI5ByB,kBAAkBvB,OAAOJ,IAAPI,GAAc;EAJJ,CAA9BT;EAMAA,QAAQW,UAARX,GAAqBW,UAArBX;EACAA,QAAQY,SAARZ,GAAoBY,SAApBZ;AAtmBF;;AAwmBA,SAASiC,YAAT,CAAsBnD,UAAtB,EAAkCgC,cAAlC,EAAkDoB,WAAlD,EAA+D;EAC7D,MAAMC,qBAAqB,EAA3B;EAEA,MAAMC,WAAWtD,WAAWsD,QAA5B;;EAEA,KAAK,IAAIlmC,IAAI,CAAR,EAAWqH,KAAK6+B,SAASzoC,MAA9B,EAAsCuC,IAAIqH,EAA1C,EAA8CrH,GAA9C,EAAmD;IACjD,MAAM8jC,UAAUoC,SAASlmC,CAAT,CAAhB;IACA,MAAMykC,aAAaX,QAAQW,UAA3B;;IACA,KAAK,IAAI99B,IAAI,CAAR,EAAWq7B,KAAKyC,WAAWhnC,MAAhC,EAAwCkJ,IAAIq7B,EAA5C,EAAgDr7B,GAAhD,EAAqD;MACnD,MAAMg+B,YAAYF,WAAW99B,CAAX,CAAlB;;MACA,IAAIg+B,UAAUC,cAAVD,KAA6BC,cAAjC,EAAiD;QAC/C;MAHiD;;MAKnDqB,mBAAmB3lC,IAAnB2lC,CAAwBtB,SAAxBsB;IAR+C;EALU;;EAgB7D,OAAO;IACLD,WADK;IAELvB,YAAYwB;EAFP,CAAP;AAxnBF;;AA6nBA,SAASE,wCAAT,CAAkDzI,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMyH,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMsC,cAAchC,KAAKqI,4BAALrI,CAAkCgC,WAAtD;EACA,MAAMxG,kBAAkB0E,IAAIV,IAA5B;EACA,IAAI8I,8BAA8B,CAAlC;;EACA,KAAK,IAAInrB,IAAI,CAAb,EAAgBA,IAAIqe,eAApB,EAAqCre,GAArC,EAA0C;IACxCmrB,8BAA8BpmC,KAAKkE,GAALlE,CAC5BomC,2BAD4BpmC,EAE5B89B,KAAKnM,UAALmM,CAAgB7iB,CAAhB6iB,EAAmBwE,qBAAnBxE,CAAyCkC,wBAFbhgC,CAA9BomC;EARuD;;EAczD,IAAInO,IAAI,CAAR;EAAA,IACEp1B,IAAI,CADN;EAAA,IAEE/C,IAAI,CAFN;EAAA,IAGE6N,IAAI,CAHN;;EAKA,KAAK04B,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOrO,IAAI6H,WAAX,EAAwB7H,GAAxB,EAA6B;MAC3B,OAAOp1B,KAAKujC,2BAAZ,EAAyCvjC,GAAzC,EAA8C;QAC5C,OAAO/C,IAAIw5B,eAAX,EAA4Bx5B,GAA5B,EAAiC;UAC/B,MAAM4jB,YAAYoa,KAAKnM,UAALmM,CAAgBh+B,CAAhBg+B,CAAlB;;UACA,IAAIj7B,IAAI6gB,UAAU4e,qBAAV5e,CAAgCsc,wBAAxC,EAAkE;YAChE;UAH6B;;UAM/B,MAAM0C,aAAahf,UAAU6iB,WAAV7iB,CAAsB7gB,CAAtB6gB,CAAnB;UACA,MAAM+f,eAAef,WAAWgB,kBAAXhB,CAA8Be,YAAnD;;UACA,OAAO91B,IAAI81B,YAAX,GAA2B;YACzB,MAAM+C,SAASX,aAAanD,UAAb,EAAyB/0B,CAAzB,EAA4BsqB,CAA5B,CAAf;YACAtqB;YACA,OAAO64B,MAAP;UAX6B;;UAa/B74B,IAAI,CAAJA;QAd0C;;QAgB5C7N,IAAI,CAAJA;MAjByB;;MAmB3B+C,IAAI,CAAJA;IArB6C;;IAuB/C,MAAM,IAAIg5B,QAAJ,CAAa,gBAAb,CAAN;EAvBF;AAhpBF;;AA0qBA,SAAS4K,wCAAT,CAAkDjJ,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMyH,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMsC,cAAchC,KAAKqI,4BAALrI,CAAkCgC,WAAtD;EACA,MAAMxG,kBAAkB0E,IAAIV,IAA5B;EACA,IAAI8I,8BAA8B,CAAlC;;EACA,KAAK,IAAInrB,IAAI,CAAb,EAAgBA,IAAIqe,eAApB,EAAqCre,GAArC,EAA0C;IACxCmrB,8BAA8BpmC,KAAKkE,GAALlE,CAC5BomC,2BAD4BpmC,EAE5B89B,KAAKnM,UAALmM,CAAgB7iB,CAAhB6iB,EAAmBwE,qBAAnBxE,CAAyCkC,wBAFbhgC,CAA9BomC;EARuD;;EAczD,IAAIvjC,IAAI,CAAR;EAAA,IACEo1B,IAAI,CADN;EAAA,IAEEn4B,IAAI,CAFN;EAAA,IAGE6N,IAAI,CAHN;;EAKA,KAAK04B,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOzjC,KAAKujC,2BAAZ,EAAyCvjC,GAAzC,EAA8C;MAC5C,OAAOo1B,IAAI6H,WAAX,EAAwB7H,GAAxB,EAA6B;QAC3B,OAAOn4B,IAAIw5B,eAAX,EAA4Bx5B,GAA5B,EAAiC;UAC/B,MAAM4jB,YAAYoa,KAAKnM,UAALmM,CAAgBh+B,CAAhBg+B,CAAlB;;UACA,IAAIj7B,IAAI6gB,UAAU4e,qBAAV5e,CAAgCsc,wBAAxC,EAAkE;YAChE;UAH6B;;UAM/B,MAAM0C,aAAahf,UAAU6iB,WAAV7iB,CAAsB7gB,CAAtB6gB,CAAnB;UACA,MAAM+f,eAAef,WAAWgB,kBAAXhB,CAA8Be,YAAnD;;UACA,OAAO91B,IAAI81B,YAAX,GAA2B;YACzB,MAAM+C,SAASX,aAAanD,UAAb,EAAyB/0B,CAAzB,EAA4BsqB,CAA5B,CAAf;YACAtqB;YACA,OAAO64B,MAAP;UAX6B;;UAa/B74B,IAAI,CAAJA;QAdyB;;QAgB3B7N,IAAI,CAAJA;MAjB0C;;MAmB5Cm4B,IAAI,CAAJA;IArB6C;;IAuB/C,MAAM,IAAI4D,QAAJ,CAAa,gBAAb,CAAN;EAvBF;AA7rBF;;AAutBA,SAAS6K,wCAAT,CAAkDlJ,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMyH,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMsC,cAAchC,KAAKqI,4BAALrI,CAAkCgC,WAAtD;EACA,MAAMxG,kBAAkB0E,IAAIV,IAA5B;EACA,IAAIrF,CAAJ,EAAOp1B,CAAP,EAAU4B,CAAV,EAAanB,CAAb;EACA,IAAI8iC,8BAA8B,CAAlC;;EACA,KAAK3hC,IAAI,CAAT,EAAYA,IAAI60B,eAAhB,EAAiC70B,GAAjC,EAAsC;IACpC,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;IACAsI,8BAA8BpmC,KAAKkE,GAALlE,CAC5BomC,2BAD4BpmC,EAE5B0jB,UAAU4e,qBAAV5e,CAAgCsc,wBAFJhgC,CAA9BomC;EAVuD;;EAezD,MAAMO,yBAAyB,IAAI13B,UAAJ,CAC7Bm3B,8BAA8B,CADD,CAA/B;;EAGA,KAAKvjC,IAAI,CAAT,EAAYA,KAAKujC,2BAAjB,EAA8C,EAAEvjC,CAAhD,EAAmD;IACjD,IAAI+jC,kBAAkB,CAAtB;;IACA,KAAKniC,IAAI,CAAT,EAAYA,IAAI60B,eAAhB,EAAiC,EAAE70B,CAAnC,EAAsC;MACpC,MAAM8hC,cAAczI,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,EAAmByI,WAAvC;;MACA,IAAI1jC,IAAI0jC,YAAYhpC,MAApB,EAA4B;QAC1BqpC,kBAAkB5mC,KAAKkE,GAALlE,CAChB4mC,eADgB5mC,EAEhBumC,YAAY1jC,CAAZ,EAAe6gC,kBAAf6C,CAAkC9C,YAFlBzjC,CAAlB4mC;MAHkC;IAFW;;IAWjDD,uBAAuB9jC,CAAvB,IAA4B+jC,eAA5BD;EA7BuD;;EA+BzD1O,IAAI,CAAJA;EACAp1B,IAAI,CAAJA;EACA4B,IAAI,CAAJA;EACAnB,IAAI,CAAJA;;EAEA,KAAK+iC,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOzjC,KAAKujC,2BAAZ,EAAyCvjC,GAAzC,EAA8C;MAC5C,OAAOS,IAAIqjC,uBAAuB9jC,CAAvB,CAAX,EAAsCS,GAAtC,EAA2C;QACzC,OAAOmB,IAAI60B,eAAX,EAA4B70B,GAA5B,EAAiC;UAC/B,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;;UACA,IAAIj7B,IAAI6gB,UAAU4e,qBAAV5e,CAAgCsc,wBAAxC,EAAkE;YAChE;UAH6B;;UAK/B,MAAM0C,aAAahf,UAAU6iB,WAAV7iB,CAAsB7gB,CAAtB6gB,CAAnB;UACA,MAAM+f,eAAef,WAAWgB,kBAAXhB,CAA8Be,YAAnD;;UACA,IAAIngC,KAAKmgC,YAAT,EAAuB;YACrB;UAR6B;;UAU/B,OAAOxL,IAAI6H,WAAX,GAA0B;YACxB,MAAM0G,SAASX,aAAanD,UAAb,EAAyBp/B,CAAzB,EAA4B20B,CAA5B,CAAf;YACAA;YACA,OAAOuO,MAAP;UAb6B;;UAe/BvO,IAAI,CAAJA;QAhBuC;;QAkBzCxzB,IAAI,CAAJA;MAnB0C;;MAqB5CnB,IAAI,CAAJA;IAvB6C;;IAyB/C,MAAM,IAAIu4B,QAAJ,CAAa,gBAAb,CAAN;EAzBF;AA3vBF;;AAuxBA,SAASgL,wCAAT,CAAkDrJ,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMyH,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMsC,cAAchC,KAAKqI,4BAALrI,CAAkCgC,WAAtD;EACA,MAAMxG,kBAAkB0E,IAAIV,IAA5B;EACA,MAAMqD,iBAAiBmG,6BAA6BhJ,IAA7B,CAAvB;EACA,MAAMiJ,0BAA0BpG,cAAhC;EACA,IAAI1I,IAAI,CAAR;EAAA,IACEp1B,IAAI,CADN;EAAA,IAEE4B,IAAI,CAFN;EAAA,IAGEuiC,KAAK,CAHP;EAAA,IAIEC,KAAK,CAJP;;EAMA,KAAKZ,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOW,KAAKF,wBAAwBG,UAApC,EAAgDD,IAAhD,EAAsD;MACpD,OAAOD,KAAKD,wBAAwBI,UAApC,EAAgDH,IAAhD,EAAsD;QACpD,OAAOviC,IAAI60B,eAAX,EAA4B70B,GAA5B,EAAiC;UAC/B,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;UACA,MAAMkC,2BACJtc,UAAU4e,qBAAV5e,CAAgCsc,wBADlC;;UAEA,OAAOn9B,KAAKm9B,wBAAZ,EAAsCn9B,GAAtC,EAA2C;YACzC,MAAM6/B,aAAahf,UAAU6iB,WAAV7iB,CAAsB7gB,CAAtB6gB,CAAnB;YACA,MAAM0jB,mBACJzG,eAAehP,UAAfgP,CAA0Bl8B,CAA1Bk8B,EAA6B4F,WAA7B5F,CAAyC99B,CAAzC89B,CADF;YAEA,MAAMhzB,IAAI05B,wBACRL,EADQ,EAERC,EAFQ,EAGRG,gBAHQ,EAIRL,uBAJQ,EAKRrE,UALQ,CAAV;;YAOA,IAAI/0B,MAAM,IAAV,EAAgB;cACd;YAZuC;;YAczC,OAAOsqB,IAAI6H,WAAX,GAA0B;cACxB,MAAM0G,SAASX,aAAanD,UAAb,EAAyB/0B,CAAzB,EAA4BsqB,CAA5B,CAAf;cACAA;cACA,OAAOuO,MAAP;YAjBuC;;YAmBzCvO,IAAI,CAAJA;UAvB6B;;UAyB/Bp1B,IAAI,CAAJA;QA1BkD;;QA4BpD4B,IAAI,CAAJA;MA7BkD;;MA+BpDuiC,KAAK,CAALA;IAjC6C;;IAmC/C,MAAM,IAAInL,QAAJ,CAAa,gBAAb,CAAN;EAnCF;AAryBF;;AA20BA,SAASyL,wCAAT,CAAkD9J,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMyH,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMsC,cAAchC,KAAKqI,4BAALrI,CAAkCgC,WAAtD;EACA,MAAMxG,kBAAkB0E,IAAIV,IAA5B;EACA,MAAMqD,iBAAiBmG,6BAA6BhJ,IAA7B,CAAvB;EACA,IAAI7F,IAAI,CAAR;EAAA,IACEp1B,IAAI,CADN;EAAA,IAEE4B,IAAI,CAFN;EAAA,IAGEuiC,KAAK,CAHP;EAAA,IAIEC,KAAK,CAJP;;EAMA,KAAKZ,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAO7hC,IAAI60B,eAAX,EAA4B,EAAE70B,CAA9B,EAAiC;MAC/B,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;MACA,MAAMiJ,0BAA0BpG,eAAehP,UAAfgP,CAA0Bl8B,CAA1Bk8B,CAAhC;MACA,MAAMX,2BACJtc,UAAU4e,qBAAV5e,CAAgCsc,wBADlC;;MAEA,OAAOiH,KAAKF,wBAAwBG,UAApC,EAAgDD,IAAhD,EAAsD;QACpD,OAAOD,KAAKD,wBAAwBI,UAApC,EAAgDH,IAAhD,EAAsD;UACpD,OAAOnkC,KAAKm9B,wBAAZ,EAAsCn9B,GAAtC,EAA2C;YACzC,MAAM6/B,aAAahf,UAAU6iB,WAAV7iB,CAAsB7gB,CAAtB6gB,CAAnB;YACA,MAAM0jB,mBAAmBL,wBAAwBR,WAAxBQ,CAAoClkC,CAApCkkC,CAAzB;YACA,MAAMp5B,IAAI05B,wBACRL,EADQ,EAERC,EAFQ,EAGRG,gBAHQ,EAIRL,uBAJQ,EAKRrE,UALQ,CAAV;;YAOA,IAAI/0B,MAAM,IAAV,EAAgB;cACd;YAXuC;;YAazC,OAAOsqB,IAAI6H,WAAX,GAA0B;cACxB,MAAM0G,SAASX,aAAanD,UAAb,EAAyB/0B,CAAzB,EAA4BsqB,CAA5B,CAAf;cACAA;cACA,OAAOuO,MAAP;YAhBuC;;YAkBzCvO,IAAI,CAAJA;UAnBkD;;UAqBpDp1B,IAAI,CAAJA;QAtBkD;;QAwBpDmkC,KAAK,CAALA;MA7B6B;;MA+B/BC,KAAK,CAALA;IAjC6C;;IAmC/C,MAAM,IAAIpL,QAAJ,CAAa,gBAAb,CAAN;EAnCF;AAx1BF;;AA83BA,SAASwL,uBAAT,CACEE,OADF,EAEEC,OAFF,EAGEJ,gBAHF,EAIEK,sBAJF,EAKE/E,UALF,EAME;EACA,MAAMgF,OAAOH,UAAUE,uBAAuBE,QAA9C;EACA,MAAMC,OAAOJ,UAAUC,uBAAuBI,SAA9C;;EACA,IACEH,OAAON,iBAAiBx7B,KAAxB87B,KAAkC,CAAlCA,IACAE,OAAOR,iBAAiBv7B,MAAxB+7B,KAAmC,CAFrC,EAGE;IACA,OAAO,IAAP;EAPF;;EASA,MAAME,wBACHF,OAAOR,iBAAiBx7B,KAAxBg8B,GACDlF,WAAWgB,kBAAXhB,CAA8BQ,gBAFhC;EAGA,OAAOwE,OAAON,iBAAiBv7B,MAAxB67B,GAAiCI,qBAAxC;AAh5BF;;AAk5BA,SAAShB,4BAAT,CAAsChJ,IAAtC,EAA4C;EAC1C,MAAMxE,kBAAkBwE,KAAKnM,UAALmM,CAAgBvgC,MAAxC;EACA,IAAIoqC,WAAW1rC,OAAO8rC,SAAtB;EACA,IAAIF,YAAY5rC,OAAO8rC,SAAvB;EACA,IAAIZ,aAAa,CAAjB;EACA,IAAID,aAAa,CAAjB;EACA,MAAMc,mBAAmB,IAAIzlC,KAAJ,CAAU+2B,eAAV,CAAzB;;EACA,KAAK,IAAI70B,IAAI,CAAb,EAAgBA,IAAI60B,eAApB,EAAqC70B,GAArC,EAA0C;IACxC,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;IACA,MAAMkC,2BACJtc,UAAU4e,qBAAV5e,CAAgCsc,wBADlC;IAEA,MAAMiI,oBAAoB,IAAI1lC,KAAJ,CAAUy9B,2BAA2B,CAArC,CAA1B;IACA,IAAIkI,2BAA2BjsC,OAAO8rC,SAAtC;IACA,IAAII,4BAA4BlsC,OAAO8rC,SAAvC;IACA,IAAIK,6BAA6B,CAAjC;IACA,IAAIC,6BAA6B,CAAjC;IACA,IAAIC,QAAQ,CAAZ;;IACA,KAAK,IAAIzlC,IAAIm9B,wBAAb,EAAuCn9B,KAAK,CAA5C,EAA+C,EAAEA,CAAjD,EAAoD;MAClD,MAAM6/B,aAAahf,UAAU6iB,WAAV7iB,CAAsB7gB,CAAtB6gB,CAAnB;MACA,MAAM6kB,yBACJD,QAAQ5F,WAAWgB,kBAAXhB,CAA8BE,aADxC;MAEA,MAAM4F,0BACJF,QAAQ5F,WAAWgB,kBAAXhB,CAA8BG,cADxC;MAEAqF,2BAA2BloC,KAAKC,GAALD,CACzBkoC,wBADyBloC,EAEzBuoC,sBAFyBvoC,CAA3BkoC;MAIAC,4BAA4BnoC,KAAKC,GAALD,CAC1BmoC,yBAD0BnoC,EAE1BwoC,uBAF0BxoC,CAA5BmoC;MAIAC,6BAA6BpoC,KAAKkE,GAALlE,CAC3BooC,0BAD2BpoC,EAE3B0iC,WAAWgB,kBAAXhB,CAA8BQ,gBAFHljC,CAA7BooC;MAIAC,6BAA6BroC,KAAKkE,GAALlE,CAC3BqoC,0BAD2BroC,EAE3B0iC,WAAWgB,kBAAXhB,CAA8BY,gBAFHtjC,CAA7BqoC;MAIAJ,kBAAkBplC,CAAlB,IAAuB;QACrB+I,OAAO28B,sBADc;QAErB18B,QAAQ28B;MAFa,CAAvBP;MAIAK,UAAU,CAAVA;IApCsC;;IAsCxCX,WAAW3nC,KAAKC,GAALD,CAAS2nC,QAAT3nC,EAAmBkoC,wBAAnBloC,CAAX2nC;IACAE,YAAY7nC,KAAKC,GAALD,CAAS6nC,SAAT7nC,EAAoBmoC,yBAApBnoC,CAAZ6nC;IACAV,aAAannC,KAAKkE,GAALlE,CAASmnC,UAATnnC,EAAqBooC,0BAArBpoC,CAAbmnC;IACAD,aAAalnC,KAAKkE,GAALlE,CAASknC,UAATlnC,EAAqBqoC,0BAArBroC,CAAbknC;IACAc,iBAAiBvjC,CAAjB,IAAsB;MACpB8hC,aAAa0B,iBADO;MAEpBN,UAAUO,wBAFU;MAGpBL,WAAWM,yBAHS;MAIpBhB,YAAYiB,0BAJQ;MAKpBlB,YAAYmB;IALQ,CAAtBL;EAjDwC;;EAyD1C,OAAO;IACLrW,YAAYqW,gBADP;IAELL,QAFK;IAGLE,SAHK;IAILV,UAJK;IAKLD;EALK,CAAP;AA38BF;;AAm9BA,SAAS9F,YAAT,CAAsB5D,OAAtB,EAA+B;EAC7B,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMyH,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMlE,kBAAkB0E,IAAIV,IAA5B;;EAEA,KAAK,IAAI74B,IAAI,CAAb,EAAgBA,IAAI60B,eAApB,EAAqC70B,GAArC,EAA0C;IACxC,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;IACA,MAAMkC,2BACJtc,UAAU4e,qBAAV5e,CAAgCsc,wBADlC;IAGA,MAAMuG,cAAc,EAApB;IACA,MAAMP,WAAW,EAAjB;;IACA,KAAK,IAAInjC,IAAI,CAAb,EAAgBA,KAAKm9B,wBAArB,EAA+Cn9B,GAA/C,EAAoD;MAClD,MAAM4lC,mBAAmBrG,oBAAoB5E,OAApB,EAA6B9Z,SAA7B,EAAwC7gB,CAAxC,CAAzB;MACA,MAAM6/B,aAAa,EAAnB;MACA,MAAM4F,QAAQ,KAAMtI,2BAA2Bn9B,CAA/C;MACA6/B,WAAWU,IAAXV,GAAkB1iC,KAAKmjB,IAALnjB,CAAU0jB,UAAUse,IAAVte,GAAiB4kB,KAA3BtoC,CAAlB0iC;MACAA,WAAWc,IAAXd,GAAkB1iC,KAAKmjB,IAALnjB,CAAU0jB,UAAUue,IAAVve,GAAiB4kB,KAA3BtoC,CAAlB0iC;MACAA,WAAWS,IAAXT,GAAkB1iC,KAAKmjB,IAALnjB,CAAU0jB,UAAUwe,IAAVxe,GAAiB4kB,KAA3BtoC,CAAlB0iC;MACAA,WAAWa,IAAXb,GAAkB1iC,KAAKmjB,IAALnjB,CAAU0jB,UAAUye,IAAVze,GAAiB4kB,KAA3BtoC,CAAlB0iC;MACAA,WAAWK,QAAXL,GAAsB7/B,CAAtB6/B;MACAD,eAAejF,OAAf,EAAwBkF,UAAxB,EAAoC+F,gBAApC;MACAlC,YAAYnmC,IAAZmmC,CAAiB7D,UAAjB6D;MAEA,IAAI3C,OAAJ;;MACA,IAAI/gC,MAAM,CAAV,EAAa;QAEX+gC,UAAU,EAAVA;QACAA,QAAQh6B,IAARg6B,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUse,IAAVte,GAAiB4kB,KAA3BtoC,CAAf4jC;QACAA,QAAQM,IAARN,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUue,IAAVve,GAAiB4kB,KAA3BtoC,CAAf4jC;QACAA,QAAQQ,IAARR,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUwe,IAAVxe,GAAiB4kB,KAA3BtoC,CAAf4jC;QACAA,QAAQU,IAARV,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUye,IAAVze,GAAiB4kB,KAA3BtoC,CAAf4jC;QACAA,QAAQlB,UAARkB,GAAqBlB,UAArBkB;QACAD,gBAAgBnG,OAAhB,EAAyBoG,OAAzB,EAAkC6E,gBAAlC;QACAzC,SAAS5lC,IAAT4lC,CAAcpC,OAAdoC;QACAtD,WAAWsD,QAAXtD,GAAsB,CAACkB,OAAD,CAAtBlB;MAXF,OAYO;QACL,MAAMgG,SAAS,KAAM1I,2BAA2Bn9B,CAA3Bm9B,GAA+B,CAApD;QACA,MAAM2I,qBAAqB,EAA3B;QAEA/E,UAAU,EAAVA;QACAA,QAAQh6B,IAARg6B,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUse,IAAVte,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQM,IAARN,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUue,IAAVve,GAAiBglB,MAA3B1oC,CAAf4jC;QACAA,QAAQQ,IAARR,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUwe,IAAVxe,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQU,IAARV,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUye,IAAVze,GAAiBglB,MAA3B1oC,CAAf4jC;QACAA,QAAQlB,UAARkB,GAAqBlB,UAArBkB;QACAD,gBAAgBnG,OAAhB,EAAyBoG,OAAzB,EAAkC6E,gBAAlC;QACAzC,SAAS5lC,IAAT4lC,CAAcpC,OAAdoC;QACA2C,mBAAmBvoC,IAAnBuoC,CAAwB/E,OAAxB+E;QAEA/E,UAAU,EAAVA;QACAA,QAAQh6B,IAARg6B,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUse,IAAVte,GAAiBglB,MAA3B1oC,CAAf4jC;QACAA,QAAQM,IAARN,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUue,IAAVve,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQQ,IAARR,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUwe,IAAVxe,GAAiBglB,MAA3B1oC,CAAf4jC;QACAA,QAAQU,IAARV,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUye,IAAVze,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQlB,UAARkB,GAAqBlB,UAArBkB;QACAD,gBAAgBnG,OAAhB,EAAyBoG,OAAzB,EAAkC6E,gBAAlC;QACAzC,SAAS5lC,IAAT4lC,CAAcpC,OAAdoC;QACA2C,mBAAmBvoC,IAAnBuoC,CAAwB/E,OAAxB+E;QAEA/E,UAAU,EAAVA;QACAA,QAAQh6B,IAARg6B,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUse,IAAVte,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQM,IAARN,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUue,IAAVve,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQQ,IAARR,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUwe,IAAVxe,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQU,IAARV,GAAe5jC,KAAKmjB,IAALnjB,CAAU0jB,UAAUye,IAAVze,GAAiBglB,MAAjBhlB,GAA0B,GAApC1jB,CAAf4jC;QACAA,QAAQlB,UAARkB,GAAqBlB,UAArBkB;QACAD,gBAAgBnG,OAAhB,EAAyBoG,OAAzB,EAAkC6E,gBAAlC;QACAzC,SAAS5lC,IAAT4lC,CAAcpC,OAAdoC;QACA2C,mBAAmBvoC,IAAnBuoC,CAAwB/E,OAAxB+E;QAEAjG,WAAWsD,QAAXtD,GAAsBiG,kBAAtBjG;MA9DgD;IAPZ;;IAwExChf,UAAU6iB,WAAV7iB,GAAwB6iB,WAAxB7iB;IACAA,UAAUsiB,QAAVtiB,GAAqBsiB,QAArBtiB;EA/E2B;;EAkF7B,MAAMmc,mBAAmB/B,KAAKqI,4BAALrI,CAAkC+B,gBAA3D;;EACA,QAAQA,gBAAR;IACE,KAAK,CAAL;MACE/B,KAAK8K,eAAL9K,GAAuB,IAAImI,wCAAJ,CACrBzI,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAK8K,eAAL9K,GAAuB,IAAI2I,wCAAJ,CACrBjJ,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAK8K,eAAL9K,GAAuB,IAAI4I,wCAAJ,CACrBlJ,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAK8K,eAAL9K,GAAuB,IAAI+I,wCAAJ,CACrBrJ,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAK8K,eAAL9K,GAAuB,IAAIwJ,wCAAJ,CACrB9J,OADqB,CAAvBM;MAGA;;IACF;MACE,MAAM,IAAIjC,QAAJ,CAAc,iCAAgCgE,gBAAjC,EAAb,CAAN;EA3BJ;AAtiCF;;AAokCA,SAASwB,gBAAT,CAA0B7D,OAA1B,EAAmCx8B,IAAnC,EAAyCya,MAAzC,EAAiDof,UAAjD,EAA6D;EAC3D,IAAI/oB,WAAW,CAAf;EACA,IAAI/P,MAAJ;EAAA,IACE8mC,aAAa,CADf;EAAA,IAEEC,cAAc,KAFhB;;EAGA,SAASl+B,QAAT,CAAkBm+B,KAAlB,EAAyB;IACvB,OAAOF,aAAaE,KAApB,EAA2B;MACzB,MAAMhmC,IAAI/B,KAAKya,SAAS3J,QAAd,CAAV;MACAA;;MACA,IAAIg3B,WAAJ,EAAiB;QACf/mC,SAAUA,UAAU,CAAVA,GAAegB,CAAzBhB;QACA8mC,cAAc,CAAdA;QACAC,cAAc,KAAdA;MAHF,OAIO;QACL/mC,SAAUA,UAAU,CAAVA,GAAegB,CAAzBhB;QACA8mC,cAAc,CAAdA;MATuB;;MAWzB,IAAI9lC,MAAM,IAAV,EAAgB;QACd+lC,cAAc,IAAdA;MAZuB;IADJ;;IAgBvBD,cAAcE,KAAdF;IACA,OAAQ9mC,WAAW8mC,UAAX9mC,GAA2B,MAAKgnC,KAAL,IAAc,CAAjD;EAtByD;;EAwB3D,SAASC,iBAAT,CAA2BhrC,KAA3B,EAAkC;IAChC,IACEgD,KAAKya,SAAS3J,QAAT2J,GAAoB,CAAzB,MAAgC,IAAhCza,IACAA,KAAKya,SAAS3J,QAAd,MAA4B9T,KAF9B,EAGE;MACAirC,UAAU,CAAV;MACA,OAAO,IAAP;IALF,OAMO,IACLjoC,KAAKya,SAAS3J,QAAd,MAA4B,IAA5B9Q,IACAA,KAAKya,SAAS3J,QAAT2J,GAAoB,CAAzB,MAAgCzd,KAF3B,EAGL;MACAirC,UAAU,CAAV;MACA,OAAO,IAAP;IAZ8B;;IAchC,OAAO,KAAP;EAtCyD;;EAwC3D,SAASA,SAAT,CAAmBF,KAAnB,EAA0B;IACxBj3B,YAAYi3B,KAAZj3B;EAzCyD;;EA2C3D,SAASo3B,WAAT,GAAuB;IACrBL,aAAa,CAAbA;;IACA,IAAIC,WAAJ,EAAiB;MACfh3B;MACAg3B,cAAc,KAAdA;IAJmB;EA3CoC;;EAkD3D,SAASK,gBAAT,GAA4B;IAC1B,IAAIv+B,SAAS,CAAT,MAAgB,CAApB,EAAuB;MACrB,OAAO,CAAP;IAFwB;;IAI1B,IAAIA,SAAS,CAAT,MAAgB,CAApB,EAAuB;MACrB,OAAO,CAAP;IALwB;;IAO1B,IAAI5M,QAAQ4M,SAAS,CAAT,CAAZ;;IACA,IAAI5M,QAAQ,CAAZ,EAAe;MACb,OAAOA,QAAQ,CAAf;IATwB;;IAW1BA,QAAQ4M,SAAS,CAAT,CAAR5M;;IACA,IAAIA,QAAQ,EAAZ,EAAgB;MACd,OAAOA,QAAQ,CAAf;IAbwB;;IAe1BA,QAAQ4M,SAAS,CAAT,CAAR5M;IACA,OAAOA,QAAQ,EAAf;EAlEyD;;EAoE3D,MAAMkoC,YAAY1I,QAAQ6B,WAAR7B,CAAoBle,KAAtC;EACA,MAAMwe,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;EACA,MAAMmC,gBAAgBnC,QAAQwD,GAARxD,CAAYmC,aAAlC;EACA,MAAMC,gBAAgBpC,QAAQwD,GAARxD,CAAYoC,aAAlC;EACA,MAAMgJ,kBAAkB9K,KAAK8K,eAA7B;;EACA,OAAO92B,WAAW+oB,UAAlB,EAA8B;IAC5BqO;;IACA,IAAIvJ,iBAAiBqJ,kBAAkB,IAAlB,CAArB,EAA8C;MAE5CC,UAAU,CAAV;IAJ0B;;IAM5B,MAAMzC,SAASoC,gBAAgBvC,UAAhBuC,EAAf;;IACA,IAAI,CAACh+B,SAAS,CAAT,CAAL,EAAkB;MAChB;IAR0B;;IAU5B,MAAMk7B,cAAcU,OAAOV,WAA3B;IAAA,MACEsD,QAAQ,EADV;IAEA,IAAI3E,SAAJ;;IACA,KAAK,IAAI3kC,IAAI,CAAR,EAAWqH,KAAKq/B,OAAOjC,UAAPiC,CAAkBjpC,MAAvC,EAA+CuC,IAAIqH,EAAnD,EAAuDrH,GAAvD,EAA4D;MAC1D2kC,YAAY+B,OAAOjC,UAAPiC,CAAkB1mC,CAAlB0mC,CAAZ/B;MACA,IAAIY,WAAWZ,UAAUY,QAAzB;MACA,MAAMgE,kBAAkB5E,UAAUE,GAAVF,GAAgBY,SAASC,MAAjD;MACA,MAAMgE,eAAe7E,UAAUG,GAAVH,GAAgBY,SAASG,MAA9C;MACA,IAAI+D,oBAAoB,KAAxB;MACA,IAAIC,qBAAqB,KAAzB;MACA,IAAIC,UAAJ,EAAgBC,iBAAhB;;MACA,IAAIjF,UAAUkF,QAAVlF,KAAuBjlC,SAA3B,EAAsC;QACpC+pC,oBAAoB,CAAC,CAAC3+B,SAAS,CAAT,CAAtB2+B;MADF,OAEO;QAELlE,WAAWZ,UAAUY,QAArBA;QACA,IAAIuE,aAAJ;;QACA,IAAIvE,SAASuE,aAATvE,KAA2B7lC,SAA/B,EAA0C;UACxCoqC,gBAAgBvE,SAASuE,aAAzBA;QADF,OAEO;UAEL,MAAMh+B,QAAQy5B,SAASE,MAATF,GAAkBA,SAASC,MAA3BD,GAAoC,CAAlD;UACA,MAAMx5B,SAASw5B,SAASI,MAATJ,GAAkBA,SAASG,MAA3BH,GAAoC,CAAnD;UACAuE,gBAAgB,IAAIC,aAAJ,CAAkBj+B,KAAlB,EAAyBC,MAAzB,EAAiCi6B,WAAjC,CAAhB8D;UACAF,oBAAoB,IAAII,OAAJ,CAAYl+B,KAAZ,EAAmBC,MAAnB,CAApB69B;UACArE,SAASuE,aAATvE,GAAyBuE,aAAzBvE;UACAA,SAASqE,iBAATrE,GAA6BqE,iBAA7BrE;;UACA,KAAK,IAAIpN,IAAI,CAAb,EAAgBA,IAAI6N,WAApB,EAAiC7N,GAAjC,EAAsC;YACpC,IAAIrtB,SAAS,CAAT,MAAgB,CAApB,EAAuB;cACrB,MAAM,IAAIixB,QAAJ,CAAa,kBAAb,CAAN;YAFkC;UARjC;QANF;;QAqBL,IAAI+N,cAAc7d,KAAd6d,CAAoBP,eAApBO,EAAqCN,YAArCM,EAAmD9D,WAAnD8D,CAAJ,EAAqE;UACnE,OAAO,IAAP,EAAa;YACX,IAAIh/B,SAAS,CAAT,CAAJ,EAAiB;cACf6+B,aAAa,CAACG,cAAcG,SAAdH,EAAdH;;cACA,IAAIA,UAAJ,EAAgB;gBACdhF,UAAUkF,QAAVlF,GAAqB,IAArBA;gBACA8E,oBAAoBC,qBAAqB,IAAzCD;gBACA;cALa;YAAjB,OAOO;cACLK,cAAcI,cAAdJ,CAA6B9D,WAA7B8D;cACA;YAVS;UADsD;QArBhE;MAVmD;;MA+C1D,IAAI,CAACL,iBAAL,EAAwB;QACtB;MAhDwD;;MAkD1D,IAAIC,kBAAJ,EAAwB;QACtBE,oBAAoBrE,SAASqE,iBAA7BA;QACAA,kBAAkB3d,KAAlB2d,CAAwBL,eAAxBK,EAAyCJ,YAAzCI;;QACA,OAAO,IAAP,EAAa;UACX,IAAI9+B,SAAS,CAAT,CAAJ,EAAiB;YACf6+B,aAAa,CAACC,kBAAkBK,SAAlBL,EAAdD;;YACA,IAAIA,UAAJ,EAAgB;cACd;YAHa;UAAjB,OAKO;YACLC,kBAAkBM,cAAlBN;UAPS;QAHS;;QAatBjF,UAAUwF,aAAVxF,GAA0BiF,kBAAkB1rC,KAA5CymC;MA/DwD;;MAiE1D,MAAMyF,eAAef,kBAArB;;MACA,OAAOv+B,SAAS,CAAT,CAAP,EAAoB;QAClB65B,UAAUW,MAAVX;MAnEwD;;MAqE1D,MAAM0F,mBAAmB75B,sBAAK45B,YAAL55B,CAAzB;MAEA,MAAMkf,OACH,gBAAe,KAAK2a,gBAApBD,GACGC,mBAAmB,CADtBD,GAEGC,gBAFH,IAEuB1F,UAAUW,MAHpC;MAIA,MAAMgF,kBAAkBx/B,SAAS4kB,IAAT,CAAxB;MACA4Z,MAAMhpC,IAANgpC,CAAW;QACT3E,SADS;QAETyF,YAFS;QAGTrP,YAAYuP;MAHH,CAAXhB;IAzF0B;;IA+F5BF;;IACA,IAAItJ,aAAJ,EAAmB;MACjBoJ,kBAAkB,IAAlB;IAjG0B;;IAmG5B,OAAOI,MAAM7rC,MAAN6rC,GAAe,CAAtB,EAAyB;MACvB,MAAMiB,aAAajB,MAAM56B,KAAN46B,EAAnB;MACA3E,YAAY4F,WAAW5F,SAAvBA;;MACA,IAAIA,UAAUzjC,IAAVyjC,KAAmBjlC,SAAvB,EAAkC;QAChCilC,UAAUzjC,IAAVyjC,GAAiB,EAAjBA;MAJqB;;MAMvBA,UAAUzjC,IAAVyjC,CAAerkC,IAAfqkC,CAAoB;QAClBzjC,IADkB;QAElBmJ,OAAOsR,SAAS3J,QAFE;QAGlB1H,KAAKqR,SAAS3J,QAAT2J,GAAoB4uB,WAAWxP,UAHlB;QAIlBqP,cAAcG,WAAWH;MAJP,CAApBzF;MAMA3yB,YAAYu4B,WAAWxP,UAAvB/oB;IA/G0B;EAzE6B;;EA2L3D,OAAOA,QAAP;AA/vCF;;AAiwCA,SAASw4B,gBAAT,CACEC,YADF,EAEEC,UAFF,EAGEC,WAHF,EAIE7G,OAJF,EAKE8G,KALF,EAMEC,EANF,EAOEC,UAPF,EAQEnK,sBARF,EASEJ,yBATF,EAUE;EACA,MAAM56B,KAAKm+B,QAAQI,IAAnB;EACA,MAAMt+B,KAAKk+B,QAAQM,IAAnB;EACA,MAAMt4B,QAAQg4B,QAAQQ,IAARR,GAAeA,QAAQI,IAArC;EACA,MAAMO,aAAaX,QAAQW,UAA3B;EACA,MAAMsG,QAAQjH,QAAQh6B,IAARg6B,CAAax8B,MAAbw8B,CAAoB,CAApBA,MAA2B,GAA3BA,GAAiC,CAAjCA,GAAqC,CAAnD;EACA,MAAMkH,SAASlH,QAAQh6B,IAARg6B,CAAax8B,MAAbw8B,CAAoB,CAApBA,MAA2B,GAA3BA,GAAiC4G,UAAjC5G,GAA8C,CAA7D;;EAEA,KAAK,IAAI9jC,IAAI,CAAR,EAAWqH,KAAKo9B,WAAWhnC,MAAhC,EAAwCuC,IAAIqH,EAA5C,EAAgD,EAAErH,CAAlD,EAAqD;IACnD,MAAM2kC,YAAYF,WAAWzkC,CAAX,CAAlB;IACA,MAAMirC,aAAatG,UAAUM,KAAVN,GAAkBA,UAAUI,KAA/C;IACA,MAAMmG,cAAcvG,UAAUO,KAAVP,GAAkBA,UAAUK,KAAhD;;IACA,IAAIiG,eAAe,CAAfA,IAAoBC,gBAAgB,CAAxC,EAA2C;MACzC;IALiD;;IAOnD,IAAIvG,UAAUzjC,IAAVyjC,KAAmBjlC,SAAvB,EAAkC;MAChC;IARiD;;IAWnD,MAAMyrC,WAAW,IAAIC,QAAJ,CACfH,UADe,EAEfC,WAFe,EAGfvG,UAAUU,WAHK,EAIfV,UAAUwF,aAJK,EAKfU,EALe,CAAjB;IAOA,IAAIQ,wBAAwB,CAA5B;IAGA,MAAMnqC,OAAOyjC,UAAUzjC,IAAvB;IACA,IAAIoqC,cAAc,CAAlB;IAAA,IACElB,eAAe,CADjB;IAEA,IAAIzjC,CAAJ,EAAOq7B,EAAP,EAAWuJ,QAAX;;IACA,KAAK5kC,IAAI,CAAJA,EAAOq7B,KAAK9gC,KAAKzD,MAAtB,EAA8BkJ,IAAIq7B,EAAlC,EAAsCr7B,GAAtC,EAA2C;MACzC4kC,WAAWrqC,KAAKyF,CAAL,CAAX4kC;MACAD,eAAeC,SAASjhC,GAATihC,GAAeA,SAASlhC,KAAvCihC;MACAlB,gBAAgBmB,SAASnB,YAAzBA;IA5BiD;;IA8BnD,MAAMoB,cAAc,IAAI9qC,UAAJ,CAAe4qC,WAAf,CAApB;IACA,IAAIt5B,WAAW,CAAf;;IACA,KAAKrL,IAAI,CAAJA,EAAOq7B,KAAK9gC,KAAKzD,MAAtB,EAA8BkJ,IAAIq7B,EAAlC,EAAsCr7B,GAAtC,EAA2C;MACzC4kC,WAAWrqC,KAAKyF,CAAL,CAAX4kC;MACA,MAAMnrC,QAAQmrC,SAASrqC,IAATqqC,CAAclrC,QAAdkrC,CAAuBA,SAASlhC,KAAhCkhC,EAAuCA,SAASjhC,GAAhDihC,CAAd;MACAC,YAAYnqC,GAAZmqC,CAAgBprC,KAAhBorC,EAAuBx5B,QAAvBw5B;MACAx5B,YAAY5R,MAAM3C,MAAlBuU;IApCiD;;IAuCnD,MAAM/K,UAAU,IAAIsD,qCAAJ,CAAsBihC,WAAtB,EAAmC,CAAnC,EAAsCF,WAAtC,CAAhB;IACAH,SAASM,UAATN,CAAoBlkC,OAApBkkC;;IAEA,KAAKxkC,IAAI,CAAT,EAAYA,IAAIyjC,YAAhB,EAA8BzjC,GAA9B,EAAmC;MACjC,QAAQ0kC,qBAAR;QACE,KAAK,CAAL;UACEF,SAASO,8BAATP;UACA;;QACF,KAAK,CAAL;UACEA,SAASQ,0BAATR;UACA;;QACF,KAAK,CAAL;UACEA,SAASS,cAATT;;UACA,IAAIxK,sBAAJ,EAA4B;YAC1BwK,SAASU,uBAATV;UAHJ;;UAKE;MAZJ;;MAeA,IAAI5K,yBAAJ,EAA+B;QAC7B4K,SAASlf,KAATkf;MAjB+B;;MAoBjCE,wBAAyB,yBAAwB,CAAxB,IAA6B,CAAtDA;IA9DiD;;IAiEnD,IAAI1vB,SAASgpB,UAAUI,KAAVJ,GAAkBh/B,EAAlBg/B,GAAwB,WAAUK,KAAVL,GAAkB/+B,EAAlB,IAAwBkG,KAA7D;IACA,MAAMb,OAAOkgC,SAASW,eAAtB;IACA,MAAMC,YAAYZ,SAASa,oBAA3B;IACA,MAAMC,cAAcd,SAASc,WAA7B;IACA,MAAMC,sBAAsBpB,aAAa,CAAb,GAAiB,GAA7C;IACA,IAAIj9B,CAAJ,EAAOnL,CAAP,EAAUypC,EAAV;IACAn6B,WAAW,CAAXA;IAGA,MAAMo6B,aAAatI,QAAQh6B,IAARg6B,KAAiB,IAApC;;IACA,KAAKn9B,IAAI,CAAT,EAAYA,IAAIukC,WAAhB,EAA6BvkC,GAA7B,EAAkC;MAChC,MAAMyF,MAAOuP,SAAS7P,KAAT6P,GAAkB,CAA/B;MACA,MAAM0wB,cAAc,IAAIjgC,GAAJ,IAAWs+B,aAAa5+B,KAAxB,IAAiCi/B,KAAjC,GAAyCC,MAA7D;;MACA,KAAKn9B,IAAI,CAAT,EAAYA,IAAIo9B,UAAhB,EAA4Bp9B,GAA5B,EAAiC;QAC/BnL,IAAIqpC,UAAU/5B,QAAV,CAAJtP;;QACA,IAAIA,MAAM,CAAV,EAAa;UACXA,IAAK,KAAIwpC,mBAAJ,IAA2BtB,KAAhCloC;;UACA,IAAIuI,KAAK+G,QAAL,MAAmB,CAAvB,EAA0B;YACxBtP,IAAI,CAACA,CAALA;UAHS;;UAKXypC,KAAKF,YAAYj6B,QAAZ,CAALm6B;UACA,MAAMlrC,MAAMmrC,aAAaC,eAAe1wB,UAAU,CAAzB,CAAb,GAA2CA,MAAvD;;UACA,IAAImvB,cAAcqB,MAAMtB,EAAxB,EAA4B;YAC1BJ,aAAaxpC,GAAb,IAAoByB,CAApB+nC;UADF,OAEO;YACLA,aAAaxpC,GAAb,IAAoByB,KAAK,KAAMmoC,KAAKsB,EAAhB,CAApB1B;UAVS;QAFkB;;QAe/B9uB;QACA3J;MAnB8B;;MAqBhC2J,UAAU7P,QAAQm/B,UAAlBtvB;IAhGiD;EARrD;AA3wCF;;AAu3CA,SAAS2wB,aAAT,CAAuB5O,OAAvB,EAAgCM,IAAhC,EAAsCr5B,CAAtC,EAAyC;EACvC,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;EACA,MAAMwE,wBAAwB5e,UAAU4e,qBAAxC;EACA,MAAM+J,yBAAyB3oB,UAAU2oB,sBAAzC;EACA,MAAMrM,2BACJsC,sBAAsBtC,wBADxB;EAEA,MAAMrC,SAAS0O,uBAAuBlN,MAAtC;EACA,MAAMtB,kBAAkBwO,uBAAuBxO,eAA/C;EACA,MAAMkB,YAAYsN,uBAAuBtN,SAAzC;EACA,MAAM0B,yBAAyB6B,sBAAsB7B,sBAArD;EACA,MAAMJ,4BACJiC,sBAAsBjC,yBADxB;EAEA,MAAM3N,YAAY8K,QAAQ7L,UAAR6L,CAAmB/4B,CAAnB+4B,EAAsB9K,SAAxC;EAEA,MAAMkY,aAAatI,sBAAsB5B,wBAAzC;EACA,MAAMtrC,YAAYw1C,aACd,IAAI0B,mBAAJ,EADc,GAEd,IAAIC,qBAAJ,EAFJ;EAIA,MAAMC,sBAAsB,EAA5B;EACA,IAAIzpC,IAAI,CAAR;;EACA,KAAK,IAAIjD,IAAI,CAAb,EAAgBA,KAAKkgC,wBAArB,EAA+ClgC,GAA/C,EAAoD;IAClD,MAAM4iC,aAAahf,UAAU6iB,WAAV7iB,CAAsB5jB,CAAtB4jB,CAAnB;IAEA,MAAM9X,QAAQ82B,WAAWS,IAAXT,GAAkBA,WAAWU,IAA3C;IACA,MAAMv3B,SAAS62B,WAAWa,IAAXb,GAAkBA,WAAWc,IAA5C;IAEA,MAAM+G,eAAe,IAAIkC,YAAJ,CAAiB7gC,QAAQC,MAAzB,CAArB;;IAEA,KAAK,IAAIpF,IAAI,CAAR,EAAWq7B,KAAKY,WAAWsD,QAAXtD,CAAoBnlC,MAAzC,EAAiDkJ,IAAIq7B,EAArD,EAAyDr7B,GAAzD,EAA8D;MAC5D,IAAIy4B,EAAJ,EAAQD,OAAR;;MACA,IAAI,CAACpB,eAAL,EAAsB;QAEpBqB,KAAKvB,OAAO,CAAP,EAAUuB,EAAfA;QACAD,UAAUtB,OAAO,CAAP,EAAUsB,OAAVtB,IAAqB79B,IAAI,CAAJA,GAAQ,IAAIA,CAAZA,GAAgB,CAArC69B,CAAVsB;MAHF,OAIO;QACLC,KAAKvB,OAAO56B,CAAP,EAAUm8B,EAAfA;QACAD,UAAUtB,OAAO56B,CAAP,EAAUk8B,OAApBA;QACAl8B;MAT0D;;MAY5D,MAAM6gC,UAAUlB,WAAWsD,QAAXtD,CAAoBj8B,CAApBi8B,CAAhB;MACA,MAAMgK,WAAW5Q,iBAAiB8H,QAAQh6B,IAAzB,CAAjB;MAGA,MAAM8gC,QAAQE,aACV,CADU,GAEV,MAAMlY,YAAYga,QAAZha,GAAuBuM,OAA7B,KAAyC,IAAIC,KAAK,IAAlD,CAFJ;MAGA,MAAMyL,KAAK5L,YAAYE,OAAZF,GAAsB,CAAjC;MAOAuL,iBACEC,YADF,EAEE3+B,KAFF,EAGEC,MAHF,EAIE+3B,OAJF,EAKE8G,KALF,EAMEC,EANF,EAOEC,UAPF,EAQEnK,sBARF,EASEJ,yBATF;IAlCgD;;IA8ClDmM,oBAAoBpsC,IAApBosC,CAAyB;MACvB5gC,KADuB;MAEvBC,MAFuB;MAGvB8gC,OAAOpC;IAHgB,CAAzBiC;EAnEqC;;EA0EvC,MAAMrtB,SAAS/pB,UAAUw3C,SAAVx3C,CACbo3C,mBADap3C,EAEbsuB,UAAUse,IAFG5sC,EAGbsuB,UAAUue,IAHG7sC,CAAf;EAKA,OAAO;IACLy3C,MAAMnpB,UAAUse,IADX;IAEL8K,KAAKppB,UAAUue,IAFV;IAGLr2B,OAAOuT,OAAOvT,KAHT;IAILC,QAAQsT,OAAOtT,MAJV;IAKL8gC,OAAOxtB,OAAOwtB;EALT,CAAP;AAt8CF;;AA88CA,SAASpL,mBAAT,CAA6B/D,OAA7B,EAAsC;EACpC,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAM9M,aAAa6L,QAAQ7L,UAA3B;EACA,MAAM2H,kBAAkB0E,IAAIV,IAA5B;EACA,MAAMyP,eAAe,EAArB;;EACA,KAAK,IAAIjtC,IAAI,CAAR,EAAWqH,KAAKq2B,QAAQ8D,KAAR9D,CAAcjgC,MAAnC,EAA2CuC,IAAIqH,EAA/C,EAAmDrH,GAAnD,EAAwD;IACtD,MAAMg+B,OAAON,QAAQ8D,KAAR9D,CAAc19B,CAAd09B,CAAb;IACA,MAAMwP,mBAAmB,EAAzB;;IACA,KAAK,IAAIvoC,IAAI,CAAb,EAAgBA,IAAI60B,eAApB,EAAqC70B,GAArC,EAA0C;MACxCuoC,iBAAiBvoC,CAAjB,IAAsB2nC,cAAc5O,OAAd,EAAuBM,IAAvB,EAA6Br5B,CAA7B,CAAtBuoC;IAJoD;;IAMtD,MAAMC,QAAQD,iBAAiB,CAAjB,CAAd;IACA,MAAME,MAAM,IAAIlyB,iBAAJ,CAAsBiyB,MAAMN,KAANM,CAAY1vC,MAAZ0vC,GAAqB3T,eAA3C,CAAZ;IACA,MAAMna,SAAS;MACb0tB,MAAMI,MAAMJ,IADC;MAEbC,KAAKG,MAAMH,GAFE;MAGblhC,OAAOqhC,MAAMrhC,KAHA;MAIbC,QAAQohC,MAAMphC,MAJD;MAKb8gC,OAAOO;IALM,CAAf;IASA,IAAI1+B,KAAJ,EAAWiN,MAAX;IACA,IAAI1a,MAAM,CAAV;IAAA,IACE0F,CADF;IAAA,IAEEq7B,EAFF;IAAA,IAGEp8B,EAHF;IAAA,IAIEE,EAJF;IAAA,IAKEE,EALF;;IAMA,IAAIg4B,KAAKqI,4BAALrI,CAAkCiC,0BAAtC,EAAkE;MAChE,MAAMoN,iBAAiB7T,oBAAoB,CAA3C;MACA,MAAM8T,UAAUJ,iBAAiB,CAAjB,EAAoBL,KAApC;MACA,MAAMU,UAAUL,iBAAiB,CAAjB,EAAoBL,KAApC;MACA,MAAMW,UAAUN,iBAAiB,CAAjB,EAAoBL,KAApC;MACA,MAAMY,UAAUJ,iBAAiBH,iBAAiB,CAAjB,EAAoBL,KAArC,GAA6C,IAA7D;MAKAn+B,QAAQmjB,WAAW,CAAX,EAAce,SAAdf,GAA0B,CAAlCnjB;MACAiN,SAAU,QAAOjN,KAAP,IAAgB,GAA1BiN;MAEA,MAAM+xB,aAAa1P,KAAKnM,UAALmM,CAAgB,CAAhBA,CAAnB;MACA,MAAM2P,UAAUnU,kBAAkB,CAAlC;MACAwI,KAAKsL,QAAQ7vC,MAAbukC;;MACA,IAAI,CAAC0L,WAAWlL,qBAAXkL,CAAiC9M,wBAAtC,EAAgE;QAE9D,KAAKj6B,IAAI,CAAT,EAAYA,IAAIq7B,EAAhB,EAAoBr7B,KAAK1F,OAAO0sC,OAAhC,EAAyC;UACvC/nC,KAAK0nC,QAAQ3mC,CAAR,IAAagV,MAAlB/V;UACAE,KAAKynC,QAAQ5mC,CAAR,CAALb;UACAE,KAAKwnC,QAAQ7mC,CAAR,CAALX;UACAonC,IAAInsC,KAAJ,IAAc2E,KAAK,QAAQI,EAAbJ,IAAoB8I,KAAlC0+B;UACAA,IAAInsC,KAAJ,IAAc2E,KAAK,UAAUE,EAAfF,GAAoB,UAAUI,EAA9BJ,IAAqC8I,KAAnD0+B;UACAA,IAAInsC,KAAJ,IAAc2E,KAAK,QAAQE,EAAbF,IAAoB8I,KAAlC0+B;QAR4D;MAAhE,OAUO;QAEL,KAAKzmC,IAAI,CAAT,EAAYA,IAAIq7B,EAAhB,EAAoBr7B,KAAK1F,OAAO0sC,OAAhC,EAAyC;UACvC/nC,KAAK0nC,QAAQ3mC,CAAR,IAAagV,MAAlB/V;UACAE,KAAKynC,QAAQ5mC,CAAR,CAALb;UACAE,KAAKwnC,QAAQ7mC,CAAR,CAALX;UACA,MAAMhD,IAAI4C,MAAOI,KAAKF,EAALE,IAAY,CAAnB,CAAV;UAEAonC,IAAInsC,KAAJ,IAAc+B,IAAIgD,EAAJhD,IAAW0L,KAAzB0+B;UACAA,IAAInsC,KAAJ,IAAa+B,KAAK0L,KAAlB0+B;UACAA,IAAInsC,KAAJ,IAAc+B,IAAI8C,EAAJ9C,IAAW0L,KAAzB0+B;QAVG;MA1ByD;;MAuChE,IAAIC,cAAJ,EAAoB;QAClB,KAAK1mC,IAAI,CAAJA,EAAO1F,MAAM,CAAlB,EAAqB0F,IAAIq7B,EAAzB,EAA6Br7B,KAAK1F,OAAO,CAAzC,EAA4C;UAC1CmsC,IAAInsC,GAAJ,IAAYwsC,QAAQ9mC,CAAR,IAAagV,MAAb8xB,IAAwB/+B,KAApC0+B;QAFgB;MAvC4C;IAAlE,OA4CO;MAEL,KAAK,IAAIzoC,IAAI,CAAb,EAAgBA,IAAI60B,eAApB,EAAqC70B,GAArC,EAA0C;QACxC,MAAMkoC,QAAQK,iBAAiBvoC,CAAjB,EAAoBkoC,KAAlC;QACAn+B,QAAQmjB,WAAWltB,CAAX,EAAciuB,SAAdf,GAA0B,CAAlCnjB;QACAiN,SAAU,QAAOjN,KAAP,IAAgB,GAA1BiN;;QACA,KAAK1a,MAAM0D,CAAN1D,EAAS0F,IAAI,CAAb1F,EAAgB+gC,KAAK6K,MAAMpvC,MAAhC,EAAwCkJ,IAAIq7B,EAA5C,EAAgDr7B,GAAhD,EAAqD;UACnDymC,IAAInsC,GAAJ,IAAY4rC,MAAMlmC,CAAN,IAAWgV,MAAXkxB,IAAsBn+B,KAAlC0+B;UACAnsC,OAAOu4B,eAAPv4B;QANsC;MAFrC;IApE+C;;IAgFtDgsC,aAAa3sC,IAAb2sC,CAAkB5tB,MAAlB4tB;EArFkC;;EAuFpC,OAAOA,YAAP;AAriDF;;AAuiDA,SAAS5L,cAAT,CAAwB3D,OAAxB,EAAiC0I,SAAjC,EAA4C;EAC1C,MAAMlI,MAAMR,QAAQiB,GAApB;EACA,MAAMnF,kBAAkB0E,IAAIV,IAA5B;EACA,MAAMQ,OAAON,QAAQ8D,KAAR9D,CAAc0I,SAAd1I,CAAb;;EACA,KAAK,IAAI/4B,IAAI,CAAb,EAAgBA,IAAI60B,eAApB,EAAqC70B,GAArC,EAA0C;IACxC,MAAMif,YAAYoa,KAAKnM,UAALmM,CAAgBr5B,CAAhBq5B,CAAlB;IACA,MAAM4P,WACJlQ,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,CAAwB/4B,CAAxB+4B,MAA+Bh+B,SAA/Bg+B,GACIA,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,CAAwB/4B,CAAxB+4B,CADJA,GAEIA,QAAQ6B,WAAR7B,CAAoB4B,GAH1B;IAIA1b,UAAU2oB,sBAAV3oB,GAAmCgqB,QAAnChqB;IACA,MAAM2e,WACJ7E,QAAQ6B,WAAR7B,CAAoBoB,GAApBpB,CAAwB/4B,CAAxB+4B,MAA+Bh+B,SAA/Bg+B,GACIA,QAAQ6B,WAAR7B,CAAoBoB,GAApBpB,CAAwB/4B,CAAxB+4B,CADJA,GAEIA,QAAQ6B,WAAR7B,CAAoBwD,GAH1B;IAIAtd,UAAU4e,qBAAV5e,GAAkC2e,QAAlC3e;EAfwC;;EAiB1Coa,KAAKqI,4BAALrI,GAAoCN,QAAQ6B,WAAR7B,CAAoBwD,GAAxDlD;AAxjDF;;AA4jDA,MAAMgM,OAAN,CAAc;EACZprC,YAAYkN,KAAZ,EAAmBC,MAAnB,EAA2B;IACzB,MAAM8hC,eAAer9B,sBAAKtQ,KAAKkE,GAALlE,CAAS4L,KAAT5L,EAAgB6L,MAAhB7L,CAALsQ,IAAgC,CAArD;IACA,KAAKs9B,MAAL,GAAc,EAAd;;IACA,KAAK,IAAI9tC,IAAI,CAAb,EAAgBA,IAAI6tC,YAApB,EAAkC7tC,GAAlC,EAAuC;MACrC,MAAM9D,QAAQ;QACZ4P,KADY;QAEZC,MAFY;QAGZ8gC,OAAO;MAHK,CAAd;MAKA,KAAKiB,MAAL,CAAYxtC,IAAZ,CAAiBpE,KAAjB;MACA4P,QAAQ5L,KAAKmjB,IAALnjB,CAAU4L,QAAQ,CAAlB5L,CAAR4L;MACAC,SAAS7L,KAAKmjB,IAALnjB,CAAU6L,SAAS,CAAnB7L,CAAT6L;IAXuB;EADf;;EAgBZkgB,MAAMjsB,CAAN,EAAS2G,CAAT,EAAY;IACV,IAAIonC,eAAe,CAAnB;IAAA,IACE7vC,QAAQ,CADV;IAAA,IAEEhC,KAFF;;IAGA,OAAO6xC,eAAe,KAAKD,MAAL,CAAYrwC,MAAlC,EAA0C;MACxCvB,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAR7xC;MACA,MAAMsjB,QAAQxf,IAAI2G,IAAIzK,MAAM4P,KAA5B;;MACA,IAAI5P,MAAM2wC,KAAN3wC,CAAYsjB,KAAZtjB,MAAuBwD,SAA3B,EAAsC;QACpCxB,QAAQhC,MAAM2wC,KAAN3wC,CAAYsjB,KAAZtjB,CAARgC;QACA;MALsC;;MAOxChC,MAAMsjB,KAANtjB,GAAcsjB,KAAdtjB;MACA8D,MAAM,CAANA;MACA2G,MAAM,CAANA;MACAonC;IAdQ;;IAgBVA;IACA7xC,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAR7xC;IACAA,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,IAA2BgC,KAA3BhC;IACA,KAAK6xC,YAAL,GAAoBA,YAApB;IACA,OAAO,KAAK7vC,KAAZ;EApCU;;EAuCZgsC,iBAAiB;IACf,MAAMhuC,QAAQ,KAAK4xC,MAAL,CAAY,KAAKC,YAAjB,CAAd;IACA7xC,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB;EAzCU;;EA4CZ+tC,YAAY;IACV,IAAI8D,eAAe,KAAKA,YAAxB;IACA,IAAI7xC,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAZ;IACA,MAAM7vC,QAAQhC,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,CAAd;IACA6xC;;IACA,IAAIA,eAAe,CAAnB,EAAsB;MACpB,KAAK7vC,KAAL,GAAaA,KAAb;MACA,OAAO,KAAP;IAPQ;;IAUV,KAAK6vC,YAAL,GAAoBA,YAApB;IACA7xC,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAR7xC;IACAA,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,IAA2BgC,KAA3BhC;IACA,OAAO,IAAP;EAzDU;;AAAA;;AA6Dd,MAAM6tC,aAAN,CAAoB;EAClBnrC,YAAYkN,KAAZ,EAAmBC,MAAnB,EAA2BiiC,YAA3B,EAAyC;IACvC,MAAMH,eAAer9B,sBAAKtQ,KAAKkE,GAALlE,CAAS4L,KAAT5L,EAAgB6L,MAAhB7L,CAALsQ,IAAgC,CAArD;IACA,KAAKs9B,MAAL,GAAc,EAAd;;IACA,KAAK,IAAI9tC,IAAI,CAAb,EAAgBA,IAAI6tC,YAApB,EAAkC7tC,GAAlC,EAAuC;MACrC,MAAM6sC,QAAQ,IAAInsC,UAAJ,CAAeoL,QAAQC,MAAvB,CAAd;;MACA,KAAK,IAAIpF,IAAI,CAAR,EAAWq7B,KAAK6K,MAAMpvC,MAA3B,EAAmCkJ,IAAIq7B,EAAvC,EAA2Cr7B,GAA3C,EAAgD;QAC9CkmC,MAAMlmC,CAAN,IAAWqnC,YAAXnB;MAHmC;;MAMrC,MAAM3wC,QAAQ;QACZ4P,KADY;QAEZC,MAFY;QAGZ8gC;MAHY,CAAd;MAKA,KAAKiB,MAAL,CAAYxtC,IAAZ,CAAiBpE,KAAjB;MAEA4P,QAAQ5L,KAAKmjB,IAALnjB,CAAU4L,QAAQ,CAAlB5L,CAAR4L;MACAC,SAAS7L,KAAKmjB,IAALnjB,CAAU6L,SAAS,CAAnB7L,CAAT6L;IAjBqC;EADvB;;EAsBlBkgB,MAAMjsB,CAAN,EAAS2G,CAAT,EAAYsnC,SAAZ,EAAuB;IACrB,IAAIF,eAAe,CAAnB;;IACA,OAAOA,eAAe,KAAKD,MAAL,CAAYrwC,MAAlC,EAA0C;MACxC,MAAMvB,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAd;MACA,MAAMvuB,QAAQxf,IAAI2G,IAAIzK,MAAM4P,KAA5B;MACA5P,MAAMsjB,KAANtjB,GAAcsjB,KAAdtjB;MACA,MAAMgC,QAAQhC,MAAM2wC,KAAN3wC,CAAYsjB,KAAZtjB,CAAd;;MAEA,IAAIgC,UAAU,IAAd,EAAoB;QAClB;MAPsC;;MAUxC,IAAIA,QAAQ+vC,SAAZ,EAAuB;QACrB,KAAKF,YAAL,GAAoBA,YAApB;QAEA,KAAKG,eAAL;QACA,OAAO,KAAP;MAdsC;;MAiBxCluC,MAAM,CAANA;MACA2G,MAAM,CAANA;MACAonC;IArBmB;;IAuBrB,KAAKA,YAAL,GAAoBA,eAAe,CAAnC;IACA,OAAO,IAAP;EA9CgB;;EAiDlB7D,eAAe+D,SAAf,EAA0B;IACxB,MAAM/xC,QAAQ,KAAK4xC,MAAL,CAAY,KAAKC,YAAjB,CAAd;IACA7xC,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,IAA2B+xC,YAAY,CAAvC/xC;IACA,KAAKgyC,eAAL;EApDgB;;EAuDlBA,kBAAkB;IAChB,IAAIC,aAAa,KAAKJ,YAAtB;IACA,IAAI7xC,QAAQ,KAAK4xC,MAAL,CAAYK,UAAZ,CAAZ;IACA,MAAMC,eAAelyC,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,CAArB;;IACA,OAAO,EAAEiyC,UAAF,IAAgB,CAAvB,EAA0B;MACxBjyC,QAAQ,KAAK4xC,MAAL,CAAYK,UAAZ,CAARjyC;MACAA,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,IAA2BkyC,YAA3BlyC;IANc;EAvDA;;EAiElB+tC,YAAY;IACV,IAAI8D,eAAe,KAAKA,YAAxB;IACA,IAAI7xC,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAZ;IACA,MAAM7vC,QAAQhC,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,CAAd;IACAA,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,IAA2B,IAA3BA;IACA6xC;;IACA,IAAIA,eAAe,CAAnB,EAAsB;MACpB,OAAO,KAAP;IAPQ;;IAUV,KAAKA,YAAL,GAAoBA,YAApB;IACA7xC,QAAQ,KAAK4xC,MAAL,CAAYC,YAAZ,CAAR7xC;IACAA,MAAM2wC,KAAN3wC,CAAYA,MAAMsjB,KAAlBtjB,IAA2BgC,KAA3BhC;IACA,OAAO,IAAP;EA9EgB;;AAAA;;AAmFpB,MAAMkvC,WAAY,SAASiD,eAAT,GAA2B;EAC3C,MAAMC,kBAAkB,EAAxB;EACA,MAAMC,oBAAoB,EAA1B;EAIA,MAAMC,uBAAuB,IAAI9tC,UAAJ,CAAe,CAC1C,CAD0C,EACvC,CADuC,EACpC,CADoC,EACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EAE1C,CAF0C,EAEvC,CAFuC,EAEpC,CAFoC,EAEjC,CAFiC,EAE9B,CAF8B,EAE3B,CAF2B,EAExB,CAFwB,EAErB,CAFqB,EAElB,CAFkB,EAEf,CAFe,EAEZ,CAFY,EAET,CAFS,EAEN,CAFM,EAEH,CAFG,EAEA,CAFA,EAEG,CAFH,EAEM,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAFf,EAEkB,CAFlB,EAEqB,CAFrB,EAEwB,CAFxB,EAE2B,CAF3B,EAE8B,CAF9B,EAG1C,CAH0C,EAGvC,CAHuC,EAGpC,CAHoC,EAGjC,CAHiC,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,CAAf,CAA7B;EAKA,MAAM+tC,iBAAiB,IAAI/tC,UAAJ,CAAe,CACpC,CADoC,EACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EACiC,CADjC,EACoC,CADpC,EAEpC,CAFoC,EAEjC,CAFiC,EAE9B,CAF8B,EAE3B,CAF2B,EAExB,CAFwB,EAErB,CAFqB,EAElB,CAFkB,EAEf,CAFe,EAEZ,CAFY,EAET,CAFS,EAEN,CAFM,EAEH,CAFG,EAEA,CAFA,EAEG,CAFH,EAEM,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAFf,EAEkB,CAFlB,EAEqB,CAFrB,EAEwB,CAFxB,EAE2B,CAF3B,EAE8B,CAF9B,EAEiC,CAFjC,EAEoC,CAFpC,EAGpC,CAHoC,EAGjC,CAHiC,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,EAGiC,CAHjC,EAGoC,CAHpC,CAAf,CAAvB;EAKA,MAAMguC,iBAAiB,IAAIhuC,UAAJ,CAAe,CACpC,CADoC,EACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EACiC,CADjC,EACoC,CADpC,EAEpC,CAFoC,EAEjC,CAFiC,EAE9B,CAF8B,EAE3B,CAF2B,EAExB,CAFwB,EAErB,CAFqB,EAElB,CAFkB,EAEf,CAFe,EAEZ,CAFY,EAET,CAFS,EAEN,CAFM,EAEH,CAFG,EAEA,CAFA,EAEG,CAFH,EAEM,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAFf,EAEkB,CAFlB,EAEqB,CAFrB,EAEwB,CAFxB,EAE2B,CAF3B,EAE8B,CAF9B,EAEiC,CAFjC,EAEoC,CAFpC,EAGpC,CAHoC,EAGjC,CAHiC,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,EAGiC,CAHjC,EAGoC,CAHpC,CAAf,CAAvB;;EAOA,MAAM0qC,QAAN,CAAe;IACbxsC,YAAYkN,KAAZ,EAAmBC,MAAnB,EAA2B+3B,OAA3B,EAAoCqG,aAApC,EAAmDU,EAAnD,EAAuD;MACrD,KAAK/+B,KAAL,GAAaA,KAAb;MACA,KAAKC,MAAL,GAAcA,MAAd;MAEA,IAAI4iC,iBAAJ;;MACA,IAAI7K,YAAY,IAAhB,EAAsB;QACpB6K,oBAAoBD,cAApBC;MADF,OAEO,IAAI7K,YAAY,IAAhB,EAAsB;QAC3B6K,oBAAoBF,cAApBE;MADK,OAEA;QACLA,oBAAoBH,oBAApBG;MAVmD;;MAYrD,KAAKA,iBAAL,GAAyBA,iBAAzB;MAEA,MAAMC,mBAAmB9iC,QAAQC,MAAjC;MAIA,KAAK8iC,qBAAL,GAA6B,IAAInuC,UAAJ,CAAekuC,gBAAf,CAA7B;MACA,KAAK9C,eAAL,GAAuB,IAAIprC,UAAJ,CAAekuC,gBAAf,CAAvB;MACA,IAAI5C,oBAAJ;;MACA,IAAInB,KAAK,EAAT,EAAa;QACXmB,uBAAuB,IAAIhqC,WAAJ,CAAgB4sC,gBAAhB,CAAvB5C;MADF,OAEO,IAAInB,KAAK,CAAT,EAAY;QACjBmB,uBAAuB,IAAI99B,WAAJ,CAAgB0gC,gBAAhB,CAAvB5C;MADK,OAEA;QACLA,uBAAuB,IAAItrC,UAAJ,CAAekuC,gBAAf,CAAvB5C;MA1BmD;;MA4BrD,KAAKA,oBAAL,GAA4BA,oBAA5B;MACA,KAAK8C,eAAL,GAAuB,IAAIpuC,UAAJ,CAAekuC,gBAAf,CAAvB;MAEA,MAAM3C,cAAc,IAAIvrC,UAAJ,CAAekuC,gBAAf,CAApB;;MACA,IAAIzE,kBAAkB,CAAtB,EAAyB;QACvB,KAAK,IAAInqC,IAAI,CAAb,EAAgBA,IAAI4uC,gBAApB,EAAsC5uC,GAAtC,EAA2C;UACzCisC,YAAYjsC,CAAZ,IAAiBmqC,aAAjB8B;QAFqB;MAhC4B;;MAqCrD,KAAKA,WAAL,GAAmBA,WAAnB;MAEA,KAAKhgB,KAAL;IAxCW;;IA2Cbwf,WAAWxkC,OAAX,EAAoB;MAClB,KAAKA,OAAL,GAAeA,OAAf;IA5CW;;IA+CbglB,QAAQ;MAGN,KAAKrhB,QAAL,GAAgB,IAAIT,SAAJ,CAAc,EAAd,CAAhB;MAIA,KAAKS,QAAL,CAAc,CAAd,IAAoB,KAAK,CAAL,GAAU,CAA9B;MACA,KAAKA,QAAL,CAAc0jC,eAAd,IAAkC,MAAM,CAAN,GAAW,CAA7C;MACA,KAAK1jC,QAAL,CAAc2jC,iBAAd,IAAoC,KAAK,CAAL,GAAU,CAA9C;IAxDW;;IA2DbQ,yBAAyB3iC,GAAzB,EAA8B4iC,MAA9B,EAAsCxvB,KAAtC,EAA6C;MAC3C,MAAMqvB,wBAAwB,KAAKA,qBAAnC;MACA,MAAM/iC,QAAQ,KAAKA,KAAnB;MAAA,MACEC,SAAS,KAAKA,MADhB;MAEA,MAAMghC,OAAOiC,SAAS,CAAtB;MACA,MAAMjE,QAAQiE,SAAS,CAATA,GAAaljC,KAA3B;MACA,IAAI9L,CAAJ;;MAEA,IAAIoM,MAAM,CAAV,EAAa;QACXpM,IAAIwf,QAAQ1T,KAAZ9L;;QACA,IAAI+sC,IAAJ,EAAU;UACR8B,sBAAsB7uC,IAAI,CAA1B,KAAgC,IAAhC6uC;QAHS;;QAKX,IAAI9D,KAAJ,EAAW;UACT8D,sBAAsB7uC,IAAI,CAA1B,KAAgC,IAAhC6uC;QANS;;QAQXA,sBAAsB7uC,CAAtB,KAA4B,IAA5B6uC;MAhByC;;MAmB3C,IAAIziC,MAAM,CAANA,GAAUL,MAAd,EAAsB;QACpB/L,IAAIwf,QAAQ1T,KAAZ9L;;QACA,IAAI+sC,IAAJ,EAAU;UACR8B,sBAAsB7uC,IAAI,CAA1B,KAAgC,IAAhC6uC;QAHkB;;QAKpB,IAAI9D,KAAJ,EAAW;UACT8D,sBAAsB7uC,IAAI,CAA1B,KAAgC,IAAhC6uC;QANkB;;QAQpBA,sBAAsB7uC,CAAtB,KAA4B,IAA5B6uC;MA3ByC;;MA8B3C,IAAI9B,IAAJ,EAAU;QACR8B,sBAAsBrvB,QAAQ,CAA9B,KAAoC,IAApCqvB;MA/ByC;;MAiC3C,IAAI9D,KAAJ,EAAW;QACT8D,sBAAsBrvB,QAAQ,CAA9B,KAAoC,IAApCqvB;MAlCyC;;MAoC3CA,sBAAsBrvB,KAAtB,KAAgC,IAAhCqvB;IA/FW;;IAkGbnD,iCAAiC;MAC/B,MAAMzkC,UAAU,KAAKA,OAArB;MACA,MAAM6E,QAAQ,KAAKA,KAAnB;MAAA,MACEC,SAAS,KAAKA,MADhB;MAEA,MAAMigC,uBAAuB,KAAKA,oBAAlC;MACA,MAAMF,kBAAkB,KAAKA,eAA7B;MACA,MAAM+C,wBAAwB,KAAKA,qBAAnC;MACA,MAAMC,kBAAkB,KAAKA,eAA7B;MACA,MAAMlkC,WAAW,KAAKA,QAAtB;MACA,MAAMqkC,SAAS,KAAKN,iBAApB;MACA,MAAM1C,cAAc,KAAKA,WAAzB;MACA,MAAMiD,uBAAuB,CAAC,CAA9B;MACA,MAAMC,gBAAgB,CAAtB;MACA,MAAMC,wBAAwB,CAA9B;;MAEA,KAAK,IAAI5gC,KAAK,CAAd,EAAiBA,KAAKzC,MAAtB,EAA8ByC,MAAM,CAApC,EAAuC;QACrC,KAAK,IAAI7H,IAAI,CAAb,EAAgBA,IAAImF,KAApB,EAA2BnF,GAA3B,EAAgC;UAC9B,IAAI6Y,QAAQhR,KAAK1C,KAAL0C,GAAa7H,CAAzB;;UACA,KAAK,IAAI0oC,KAAK,CAAd,EAAiBA,KAAK,CAAtB,EAAyBA,MAAM7vB,SAAS1T,KAAxC,EAA+C;YAC7C,MAAM9L,IAAIwO,KAAK6gC,EAAf;;YACA,IAAIrvC,KAAK+L,MAAT,EAAiB;cACf;YAH2C;;YAM7C+iC,gBAAgBtvB,KAAhB,KAA0B0vB,oBAA1BJ;;YAEA,IAAI9C,qBAAqBxsB,KAArB,KAA+B,CAACqvB,sBAAsBrvB,KAAtB,CAApC,EAAkE;cAChE;YAT2C;;YAY7C,MAAMtT,eAAe+iC,OAAOJ,sBAAsBrvB,KAAtB,CAAP,CAArB;YACA,MAAM8vB,WAAWroC,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BiF,YAA1BjF,CAAjB;;YACA,IAAIqoC,QAAJ,EAAc;cACZ,MAAMrkC,OAAO,KAAKskC,aAAL,CAAmBvvC,CAAnB,EAAsB2G,CAAtB,EAAyB6Y,KAAzB,CAAb;cACAssB,gBAAgBtsB,KAAhB,IAAyBvU,IAAzB6gC;cACAE,qBAAqBxsB,KAArB,IAA8B,CAA9BwsB;cACA,KAAK+C,wBAAL,CAA8B/uC,CAA9B,EAAiC2G,CAAjC,EAAoC6Y,KAApC;cACAsvB,gBAAgBtvB,KAAhB,KAA0B4vB,qBAA1BN;YAnB2C;;YAqB7C7C,YAAYzsB,KAAZ;YACAsvB,gBAAgBtvB,KAAhB,KAA0B2vB,aAA1BL;UAxB4B;QADK;MAfR;IAlGpB;;IAgJbS,cAAcnjC,GAAd,EAAmB4iC,MAAnB,EAA2BxvB,KAA3B,EAAkC;MAChC,MAAM1T,QAAQ,KAAKA,KAAnB;MAAA,MACEC,SAAS,KAAKA,MADhB;MAEA,MAAMigC,uBAAuB,KAAKA,oBAAlC;MACA,MAAMF,kBAAkB,KAAKA,eAA7B;MACA,IAAI0D,YAAJ,EAAkBC,KAAlB,EAAyBC,KAAzB,EAAgCC,aAAhC;MACA,IAAIzjC,YAAJ,EAAkB0jC,OAAlB;MAGAD,gBAAgBX,SAAS,CAATA,IAAchD,qBAAqBxsB,QAAQ,CAA7B,MAAoC,CAAlEmwB;;MACA,IAAIX,SAAS,CAATA,GAAaljC,KAAbkjC,IAAsBhD,qBAAqBxsB,QAAQ,CAA7B,MAAoC,CAA9D,EAAiE;QAC/DkwB,QAAQ5D,gBAAgBtsB,QAAQ,CAAxB,CAARkwB;;QACA,IAAIC,aAAJ,EAAmB;UACjBF,QAAQ3D,gBAAgBtsB,QAAQ,CAAxB,CAARiwB;UACAD,eAAe,IAAIE,KAAJ,GAAYD,KAA3BD;QAFF,OAGO;UACLA,eAAe,IAAIE,KAAJ,GAAYA,KAA3BF;QAN6D;MAAjE,OAQO,IAAIG,aAAJ,EAAmB;QACxBF,QAAQ3D,gBAAgBtsB,QAAQ,CAAxB,CAARiwB;QACAD,eAAe,IAAIC,KAAJ,GAAYA,KAA3BD;MAFK,OAGA;QACLA,eAAe,CAAfA;MAtB8B;;MAwBhC,MAAMK,yBAAyB,IAAIL,YAAnC;MAGAG,gBAAgBvjC,MAAM,CAANA,IAAW4/B,qBAAqBxsB,QAAQ1T,KAA7B,MAAwC,CAAnE6jC;;MACA,IAAIvjC,MAAM,CAANA,GAAUL,MAAVK,IAAoB4/B,qBAAqBxsB,QAAQ1T,KAA7B,MAAwC,CAAhE,EAAmE;QACjE4jC,QAAQ5D,gBAAgBtsB,QAAQ1T,KAAxB,CAAR4jC;;QACA,IAAIC,aAAJ,EAAmB;UACjBF,QAAQ3D,gBAAgBtsB,QAAQ1T,KAAxB,CAAR2jC;UACAD,eAAe,IAAIE,KAAJ,GAAYD,KAAZ,GAAoBI,sBAAnCL;QAFF,OAGO;UACLA,eAAe,IAAIE,KAAJ,GAAYA,KAAZ,GAAoBG,sBAAnCL;QAN+D;MAAnE,OAQO,IAAIG,aAAJ,EAAmB;QACxBF,QAAQ3D,gBAAgBtsB,QAAQ1T,KAAxB,CAAR2jC;QACAD,eAAe,IAAIC,KAAJ,GAAYA,KAAZ,GAAoBI,sBAAnCL;MAFK,OAGA;QACLA,eAAeK,sBAAfL;MAxC8B;;MA2ChC,IAAIA,gBAAgB,CAApB,EAAuB;QACrBtjC,eAAe,IAAIsjC,YAAnBtjC;QACA0jC,UAAU,KAAK3oC,OAAL,CAAa+D,OAAb,CAAqB,KAAKJ,QAA1B,EAAoCsB,YAApC,CAAV0jC;MAFF,OAGO;QACL1jC,eAAe,IAAIsjC,YAAnBtjC;QACA0jC,UAAU,KAAK3oC,OAAL,CAAa+D,OAAb,CAAqB,KAAKJ,QAA1B,EAAoCsB,YAApC,IAAoD,CAA9D0jC;MAhD8B;;MAkDhC,OAAOA,OAAP;IAlMW;;IAqMbjE,6BAA6B;MAC3B,MAAM1kC,UAAU,KAAKA,OAArB;MACA,MAAM6E,QAAQ,KAAKA,KAAnB;MAAA,MACEC,SAAS,KAAKA,MADhB;MAEA,MAAMigC,uBAAuB,KAAKA,oBAAlC;MACA,MAAM6C,wBAAwB,KAAKA,qBAAnC;MACA,MAAMjkC,WAAW,KAAKA,QAAtB;MACA,MAAMqhC,cAAc,KAAKA,WAAzB;MACA,MAAM6C,kBAAkB,KAAKA,eAA7B;MACA,MAAMK,gBAAgB,CAAtB;MACA,MAAMC,wBAAwB,CAA9B;MACA,MAAM3xC,SAASqO,QAAQC,MAAvB;MACA,MAAM+jC,SAAShkC,QAAQ,CAAvB;;MAEA,KAAK,IAAIikC,SAAS,CAAb,EAAgBC,SAArB,EAAgCD,SAAStyC,MAAzC,EAAiDsyC,SAASC,SAA1D,EAAqE;QACnEA,YAAY9vC,KAAKC,GAALD,CAASzC,MAATyC,EAAiB6vC,SAASD,MAA1B5vC,CAAZ8vC;;QACA,KAAK,IAAIrpC,IAAI,CAAb,EAAgBA,IAAImF,KAApB,EAA2BnF,GAA3B,EAAgC;UAC9B,KAAK,IAAI6Y,QAAQuwB,SAASppC,CAA1B,EAA6B6Y,QAAQwwB,SAArC,EAAgDxwB,SAAS1T,KAAzD,EAAgE;YAE9D,IACE,CAACkgC,qBAAqBxsB,KAArB,CAAD,IACC,iBAAgBA,KAAhB,IAAyB2vB,aAAzB,MAA4C,CAF/C,EAGE;cACA;YAN4D;;YAS9D,IAAIjjC,eAAe,EAAnB;;YACA,IAAK,iBAAgBsT,KAAhB,IAAyB4vB,qBAAzB,MAAoD,CAAzD,EAA4D;cAC1DN,gBAAgBtvB,KAAhB,KAA0B4vB,qBAA1BN;cAEA,MAAMmB,eAAepB,sBAAsBrvB,KAAtB,IAA+B,GAApD;cACAtT,eAAe+jC,iBAAiB,CAAjBA,GAAqB,EAArBA,GAA0B,EAAzC/jC;YAd4D;;YAiB9D,MAAMnB,MAAM9D,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BiF,YAA1BjF,CAAZ;YACA+kC,qBAAqBxsB,KAArB,IACGwsB,qBAAqBxsB,KAArB,KAA+B,CAA/BwsB,GAAoCjhC,GADvCihC;YAEAC,YAAYzsB,KAAZ;YACAsvB,gBAAgBtvB,KAAhB,KAA0B2vB,aAA1BL;UAtB4B;QAFmC;MAd1C;IArMhB;;IAiPblD,iBAAiB;MACf,MAAM3kC,UAAU,KAAKA,OAArB;MACA,MAAM6E,QAAQ,KAAKA,KAAnB;MAAA,MACEC,SAAS,KAAKA,MADhB;MAEA,MAAM8iC,wBAAwB,KAAKA,qBAAnC;MACA,MAAM7C,uBAAuB,KAAKA,oBAAlC;MACA,MAAMF,kBAAkB,KAAKA,eAA7B;MACA,MAAMlhC,WAAW,KAAKA,QAAtB;MACA,MAAMqkC,SAAS,KAAKN,iBAApB;MACA,MAAM1C,cAAc,KAAKA,WAAzB;MACA,MAAM6C,kBAAkB,KAAKA,eAA7B;MACA,MAAMK,gBAAgB,CAAtB;MACA,MAAMC,wBAAwB,CAA9B;MACA,MAAMc,aAAapkC,KAAnB;MACA,MAAMqkC,cAAcrkC,QAAQ,CAA5B;MACA,MAAMskC,gBAAgBtkC,QAAQ,CAA9B;MACA,IAAIukC,KAAJ;;MACA,KAAK,IAAI7hC,KAAK,CAAd,EAAiBA,KAAKzC,MAAtB,EAA8ByC,KAAK6hC,KAAnC,EAA0C;QACxCA,QAAQnwC,KAAKC,GAALD,CAASsO,KAAK,CAAdtO,EAAiB6L,MAAjB7L,CAARmwC;QACA,MAAMC,YAAY9hC,KAAK1C,KAAvB;QACA,MAAMykC,gBAAgB/hC,KAAK,CAALA,GAASzC,MAA/B;;QACA,KAAK,IAAIpF,IAAI,CAAb,EAAgBA,IAAImF,KAApB,EAA2BnF,GAA3B,EAAgC;UAC9B,MAAMopC,SAASO,YAAY3pC,CAA3B;UAGA,MAAM6pC,WACJD,iBACAzB,gBAAgBiB,MAAhB,MAA4B,CAD5BQ,IAEAzB,gBAAgBiB,SAASG,UAAzB,MAAyC,CAFzCK,IAGAzB,gBAAgBiB,SAASI,WAAzB,MAA0C,CAH1CI,IAIAzB,gBAAgBiB,SAASK,aAAzB,MAA4C,CAJ5CG,IAKA1B,sBAAsBkB,MAAtB,MAAkC,CALlCQ,IAMA1B,sBAAsBkB,SAASG,UAA/B,MAA+C,CAN/CK,IAOA1B,sBAAsBkB,SAASI,WAA/B,MAAgD,CAPhDI,IAQA1B,sBAAsBkB,SAASK,aAA/B,MAAkD,CATpD;UAUA,IAAIf,KAAK,CAAT;UAAA,IACE7vB,QAAQuwB,MADV;UAEA,IAAI/vC,IAAIwO,EAAR;UAAA,IACEvD,IADF;;UAEA,IAAIulC,QAAJ,EAAc;YACZ,MAAMC,2BAA2BxpC,QAAQ+D,OAAR/D,CAC/B2D,QAD+B3D,EAE/BsnC,iBAF+BtnC,CAAjC;;YAIA,IAAI,CAACwpC,wBAAL,EAA+B;cAC7BxE,YAAY8D,MAAZ;cACA9D,YAAY8D,SAASG,UAArB;cACAjE,YAAY8D,SAASI,WAArB;cACAlE,YAAY8D,SAASK,aAArB;cACA;YAVU;;YAYZf,KACGpoC,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqnC,eAA1BrnC,KAA8C,CAA9CA,GACDA,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqnC,eAA1BrnC,CAFFooC;;YAGA,IAAIA,OAAO,CAAX,EAAc;cACZrvC,IAAIwO,KAAK6gC,EAATrvC;cACAwf,SAAS6vB,KAAKvjC,KAAd0T;YAjBU;;YAoBZvU,OAAO,KAAKskC,aAAL,CAAmBvvC,CAAnB,EAAsB2G,CAAtB,EAAyB6Y,KAAzB,CAAPvU;YACA6gC,gBAAgBtsB,KAAhB,IAAyBvU,IAAzB6gC;YACAE,qBAAqBxsB,KAArB,IAA8B,CAA9BwsB;YACA,KAAK+C,wBAAL,CAA8B/uC,CAA9B,EAAiC2G,CAAjC,EAAoC6Y,KAApC;YACAsvB,gBAAgBtvB,KAAhB,KAA0B4vB,qBAA1BN;YAEAtvB,QAAQuwB,MAARvwB;;YACA,KAAK,IAAIkxB,KAAKliC,EAAd,EAAkBkiC,MAAM1wC,CAAxB,EAA2B0wC,MAAMlxB,SAAS1T,KAA1C,EAAiD;cAC/CmgC,YAAYzsB,KAAZ;YA5BU;;YA+BZ6vB;UAjD4B;;UAmD9B,KAAKrvC,IAAIwO,KAAK6gC,EAAd,EAAkBrvC,IAAIqwC,KAAtB,EAA6BrwC,KAAKwf,SAAS1T,KAA3C,EAAkD;YAChD,IACEkgC,qBAAqBxsB,KAArB,KACC,iBAAgBA,KAAhB,IAAyB2vB,aAAzB,MAA4C,CAF/C,EAGE;cACA;YAL8C;;YAQhD,MAAMjjC,eAAe+iC,OAAOJ,sBAAsBrvB,KAAtB,CAAP,CAArB;YACA,MAAM8vB,WAAWroC,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BiF,YAA1BjF,CAAjB;;YACA,IAAIqoC,aAAa,CAAjB,EAAoB;cAClBrkC,OAAO,KAAKskC,aAAL,CAAmBvvC,CAAnB,EAAsB2G,CAAtB,EAAyB6Y,KAAzB,CAAPvU;cACA6gC,gBAAgBtsB,KAAhB,IAAyBvU,IAAzB6gC;cACAE,qBAAqBxsB,KAArB,IAA8B,CAA9BwsB;cACA,KAAK+C,wBAAL,CAA8B/uC,CAA9B,EAAiC2G,CAAjC,EAAoC6Y,KAApC;cACAsvB,gBAAgBtvB,KAAhB,KAA0B4vB,qBAA1BN;YAf8C;;YAiBhD7C,YAAYzsB,KAAZ;UApE4B;QAJQ;MAjB3B;IAjPJ;;IAgVbqsB,0BAA0B;MACxB,MAAM5kC,UAAU,KAAKA,OAArB;MACA,MAAM2D,WAAW,KAAKA,QAAtB;MACA,MAAM4G,SACHvK,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqnC,eAA1BrnC,KAA8C,CAA9CA,GACAA,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqnC,eAA1BrnC,KAA8C,CAD9CA,GAEAA,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqnC,eAA1BrnC,KAA8C,CAF9CA,GAGDA,QAAQ+D,OAAR/D,CAAgB2D,QAAhB3D,EAA0BqnC,eAA1BrnC,CAJF;;MAKA,IAAIuK,WAAW,GAAf,EAAoB;QAClB,MAAM,IAAIuqB,QAAJ,CAAa,6BAAb,CAAN;MATsB;IAhVb;;EAAA;;EA8Vf,OAAOqP,QAAP;AArXe,CAAC,EAAlB;;AAyXA,MAAMuF,SAAN,CAAgB;EACd/xC,cAAc;IACZ,IAAI,KAAKA,WAAL,KAAqB+xC,SAAzB,EAAoC;MAClCh0C,uBAAY,8BAAZA;IAFU;EADA;;EAOdmwC,UAAU5G,QAAV,EAAoB0K,EAApB,EAAwBnb,EAAxB,EAA4B;IAC1B,IAAIob,KAAK3K,SAAS,CAAT,CAAT;;IACA,KAAK,IAAIlmC,IAAI,CAAR,EAAWqH,KAAK6+B,SAASzoC,MAA9B,EAAsCuC,IAAIqH,EAA1C,EAA8CrH,GAA9C,EAAmD;MACjD6wC,KAAK,KAAKC,OAAL,CAAaD,EAAb,EAAiB3K,SAASlmC,CAAT,CAAjB,EAA8B4wC,EAA9B,EAAkCnb,EAAlC,CAALob;IAHwB;;IAK1B,OAAOA,EAAP;EAZY;;EAedE,OAAO9uC,MAAP,EAAe0Z,MAAf,EAAuBiM,IAAvB,EAA6B;IAE3B,IAAIynB,KAAK1zB,SAAS,CAAlB;IAAA,IACEq1B,KAAKr1B,SAAS,CADhB;IAEA,IAAI+0B,KAAK/0B,SAASiM,IAATjM,GAAgB,CAAzB;IAAA,IACEs1B,KAAKt1B,SAASiM,IADhB;IAEA3lB,OAAOotC,IAAP,IAAeptC,OAAO+uC,IAAP,CAAf/uC;IACAA,OAAOgvC,IAAP,IAAehvC,OAAOyuC,IAAP,CAAfzuC;IACAA,OAAOotC,IAAP,IAAeptC,OAAO+uC,IAAP,CAAf/uC;IACAA,OAAOgvC,IAAP,IAAehvC,OAAOyuC,IAAP,CAAfzuC;IACAA,OAAOotC,IAAP,IAAeptC,OAAO+uC,IAAP,CAAf/uC;IACAA,OAAOgvC,IAAP,IAAehvC,OAAOyuC,IAAP,CAAfzuC;IACAA,OAAOotC,EAAP,IAAaptC,OAAO+uC,EAAP,CAAb/uC;IACAA,OAAOgvC,EAAP,IAAahvC,OAAOyuC,EAAP,CAAbzuC;EA5BY;;EA+BdivC,OAAO5lC,CAAP,EAAUqQ,MAAV,EAAkBle,MAAlB,EAA0B;IACxBd,uBAAY,iCAAZA;EAhCY;;EAmCdm0C,QAAQD,EAAR,EAAYM,QAAZ,EAAsBP,EAAtB,EAA0Bnb,EAA1B,EAA8B;IAC5B,MAAM2b,UAAUP,GAAG/kC,KAAnB;IAAA,MACEulC,WAAWR,GAAG9kC,MADhB;IAEA,IAAIulC,UAAUT,GAAGhE,KAAjB;IACA,MAAM/gC,QAAQqlC,SAASrlC,KAAvB;IACA,MAAMC,SAASolC,SAASplC,MAAxB;IACA,MAAM8gC,QAAQsE,SAAStE,KAAvB;IACA,IAAI7sC,CAAJ,EAAO2G,CAAP,EAAUkH,CAAV,EAAasqB,CAAb,EAAgBoZ,CAAhB,EAAmBhtC,CAAnB;;IAGA,KAAKsJ,IAAI,CAAJA,EAAO7N,IAAI,CAAhB,EAAmBA,IAAIqxC,QAAvB,EAAiCrxC,GAAjC,EAAsC;MACpCm4B,IAAIn4B,IAAI,CAAJA,GAAQ8L,KAAZqsB;;MACA,KAAKxxB,IAAI,CAAT,EAAYA,IAAIyqC,OAAhB,EAAyBzqC,KAAKkH,GAAL,EAAUsqB,KAAK,CAAxC,EAA2C;QACzC0U,MAAM1U,CAAN,IAAWmZ,QAAQzjC,CAAR,CAAXg/B;MAHkC;IAVV;;IAiB5ByE,UAAUT,GAAGhE,KAAHgE,GAAW,IAArBS;IAEA,MAAME,gBAAgB,CAAtB;IACA,MAAMC,YAAY,IAAI9E,YAAJ,CAAiB7gC,QAAQ,IAAI0lC,aAA7B,CAAlB;;IAGA,IAAI1lC,UAAU,CAAd,EAAiB;MAEf,IAAK,MAAK,CAAL,MAAY,CAAjB,EAAoB;QAClB,KAAKvH,IAAI,CAAJA,EAAOsJ,IAAI,CAAhB,EAAmBtJ,IAAIwH,MAAvB,EAA+BxH,KAAKsJ,KAAK/B,KAAzC,EAAgD;UAC9C+gC,MAAMh/B,CAAN,KAAY,GAAZg/B;QAFgB;MAFL;IAAjB,OAOO;MACL,KAAKtoC,IAAI,CAAJA,EAAOsJ,IAAI,CAAhB,EAAmBtJ,IAAIwH,MAAvB,EAA+BxH,KAAKsJ,KAAK/B,KAAzC,EAAgD;QAC9C2lC,UAAUpwC,GAAVowC,CAAc5E,MAAMxsC,QAANwsC,CAAeh/B,CAAfg/B,EAAkBh/B,IAAI/B,KAAtB+gC,CAAd4E,EAA4CD,aAA5CC;QAEA,KAAKV,MAAL,CAAYU,SAAZ,EAAuBD,aAAvB,EAAsC1lC,KAAtC;QACA,KAAKolC,MAAL,CAAYO,SAAZ,EAAuBD,aAAvB,EAAsC1lC,KAAtC;QAEA+gC,MAAMxrC,GAANwrC,CAAU4E,UAAUpxC,QAAVoxC,CAAmBD,aAAnBC,EAAkCD,gBAAgB1lC,KAAlD2lC,CAAV5E,EAAoEh/B,CAApEg/B;MAPG;IA9BqB;;IA+C5B,IAAI6E,aAAa,EAAjB;IACA,MAAMC,aAAa,EAAnB;;IACA,KAAK3xC,IAAI,CAAT,EAAYA,IAAI0xC,UAAhB,EAA4B1xC,GAA5B,EAAiC;MAC/B2xC,WAAWrxC,IAAXqxC,CAAgB,IAAIhF,YAAJ,CAAiB5gC,SAAS,IAAIylC,aAA9B,CAAhBG;IAlD0B;;IAoD5B,IAAI1uC,CAAJ;IAAA,IACE2uC,gBAAgB,CADlB;IAEAf,KAAKW,gBAAgBzlC,MAArB8kC;;IAGA,IAAI9kC,WAAW,CAAf,EAAkB;MAEhB,IAAK,MAAK,CAAL,MAAY,CAAjB,EAAoB;QAClB,KAAKwlC,IAAI,CAAT,EAAYA,IAAIzlC,KAAhB,EAAuBylC,GAAvB,EAA4B;UAC1B1E,MAAM0E,CAAN,KAAY,GAAZ1E;QAFgB;MAFJ;IAAlB,OAOO;MACL,KAAK0E,IAAI,CAAT,EAAYA,IAAIzlC,KAAhB,EAAuBylC,GAAvB,EAA4B;QAE1B,IAAIK,kBAAkB,CAAtB,EAAyB;UACvBF,aAAaxxC,KAAKC,GAALD,CAAS4L,QAAQylC,CAAjBrxC,EAAoBwxC,UAApBxxC,CAAbwxC;;UACA,KAAK7jC,IAAI0jC,CAAJ1jC,EAAOsqB,IAAIqZ,aAAhB,EAA+BrZ,IAAI0Y,EAAnC,EAAuChjC,KAAK/B,KAAL+B,EAAYsqB,GAAnD,EAAwD;YACtD,KAAKl1B,IAAI,CAAT,EAAYA,IAAIyuC,UAAhB,EAA4BzuC,GAA5B,EAAiC;cAC/B0uC,WAAW1uC,CAAX,EAAck1B,CAAdwZ,IAAmB9E,MAAMh/B,IAAI5K,CAAV,CAAnB0uC;YAFoD;UAFjC;;UAOvBC,gBAAgBF,UAAhBE;QATwB;;QAY1BA;QACA,MAAM3vC,SAAS0vC,WAAWC,aAAX,CAAf;QACA,KAAKb,MAAL,CAAY9uC,MAAZ,EAAoBuvC,aAApB,EAAmCzlC,MAAnC;QACA,KAAKmlC,MAAL,CAAYjvC,MAAZ,EAAoBuvC,aAApB,EAAmCzlC,MAAnC;;QAGA,IAAI6lC,kBAAkB,CAAtB,EAAyB;UACvB/jC,IAAI0jC,IAAIG,UAAJH,GAAiB,CAArB1jC;;UACA,KAAKsqB,IAAIqZ,aAAT,EAAwBrZ,IAAI0Y,EAA5B,EAAgChjC,KAAK/B,KAAL+B,EAAYsqB,GAA5C,EAAiD;YAC/C,KAAKl1B,IAAI,CAAT,EAAYA,IAAIyuC,UAAhB,EAA4BzuC,GAA5B,EAAiC;cAC/B4pC,MAAMh/B,IAAI5K,CAAV,IAAe0uC,WAAW1uC,CAAX,EAAck1B,CAAdwZ,CAAf9E;YAF6C;UAF1B;QAlBC;MADvB;IAhEqB;;IA8F5B,OAAO;MAAE/gC,KAAF;MAASC,MAAT;MAAiB8gC;IAAjB,CAAP;EAjIY;;AAAA;;AAsIhB,MAAMJ,qBAAN,SAAoCkE,SAApC,CAA8C;EAC5CO,OAAO5lC,CAAP,EAAUqQ,MAAV,EAAkBle,MAAlB,EAA0B;IACxB,MAAMo0C,MAAMp0C,UAAU,CAAtB;IACAke,UAAU,CAAVA;IACA,IAAIhV,CAAJ,EAAOjE,CAAP,EAAUovC,OAAV,EAAmBxyB,IAAnB;IAEA,MAAMyyB,QAAQ,CAAC,iBAAf;IACA,MAAMC,OAAO,CAAC,iBAAd;IACA,MAAMC,QAAQ,iBAAd;IACA,MAAMrH,QAAQ,iBAAd;IACA,MAAM54C,IAAI,iBAAV;IACA,MAAMkgD,KAAK,IAAIlgD,CAAf;IAKA2U,IAAIgV,SAAS,CAAbhV;;IACA,KAAKjE,IAAImvC,MAAM,CAAf,EAAkBnvC,GAAlB,EAAuBiE,KAAK,CAA5B,EAA+B;MAC7B2E,EAAE3E,CAAF,KAAQurC,EAAR5mC;IAjBsB;;IAqBxB3E,IAAIgV,SAAS,CAAbhV;IACAmrC,UAAUlH,QAAQt/B,EAAE3E,IAAI,CAAN,CAAlBmrC;;IACA,KAAKpvC,IAAImvC,MAAM,CAAf,EAAkBnvC,GAAlB,EAAuBiE,KAAK,CAA5B,EAA+B;MAC7B2Y,OAAOsrB,QAAQt/B,EAAE3E,IAAI,CAAN,CAAf2Y;MACAhU,EAAE3E,CAAF,IAAO3U,IAAIsZ,EAAE3E,CAAF,CAAJ3U,GAAW8/C,OAAX9/C,GAAqBstB,IAA5BhU;;MACA,IAAI5I,GAAJ,EAAS;QACPiE,KAAK,CAALA;QACAmrC,UAAUlH,QAAQt/B,EAAE3E,IAAI,CAAN,CAAlBmrC;QACAxmC,EAAE3E,CAAF,IAAO3U,IAAIsZ,EAAE3E,CAAF,CAAJ3U,GAAW8/C,OAAX9/C,GAAqBstB,IAA5BhU;MAHF,OAIO;QACL;MAR2B;IAvBP;;IAoCxB3E,IAAIgV,SAAS,CAAbhV;IACAmrC,UAAUG,QAAQ3mC,EAAE3E,IAAI,CAAN,CAAlBmrC;;IACA,KAAKpvC,IAAImvC,MAAM,CAAf,EAAkBnvC,GAAlB,EAAuBiE,KAAK,CAA5B,EAA+B;MAC7B2Y,OAAO2yB,QAAQ3mC,EAAE3E,IAAI,CAAN,CAAf2Y;MACAhU,EAAE3E,CAAF,KAAQmrC,UAAUxyB,IAAlBhU;;MACA,IAAI5I,GAAJ,EAAS;QACPiE,KAAK,CAALA;QACAmrC,UAAUG,QAAQ3mC,EAAE3E,IAAI,CAAN,CAAlBmrC;QACAxmC,EAAE3E,CAAF,KAAQmrC,UAAUxyB,IAAlBhU;MAHF,OAIO;QACL;MAR2B;IAtCP;;IAmDxB3E,IAAIgV,MAAJhV;IACAmrC,UAAUE,OAAO1mC,EAAE3E,IAAI,CAAN,CAAjBmrC;;IACA,KAAKpvC,IAAImvC,MAAM,CAAf,EAAkBnvC,GAAlB,EAAuBiE,KAAK,CAA5B,EAA+B;MAC7B2Y,OAAO0yB,OAAO1mC,EAAE3E,IAAI,CAAN,CAAd2Y;MACAhU,EAAE3E,CAAF,KAAQmrC,UAAUxyB,IAAlBhU;;MACA,IAAI5I,GAAJ,EAAS;QACPiE,KAAK,CAALA;QACAmrC,UAAUE,OAAO1mC,EAAE3E,IAAI,CAAN,CAAjBmrC;QACAxmC,EAAE3E,CAAF,KAAQmrC,UAAUxyB,IAAlBhU;MAHF,OAIO;QACL;MAR2B;IArDP;;IAkExB,IAAIumC,QAAQ,CAAZ,EAAe;MACblrC,IAAIgV,SAAS,CAAbhV;MACAmrC,UAAUC,QAAQzmC,EAAE3E,IAAI,CAAN,CAAlBmrC;;MACA,KAAKpvC,IAAImvC,GAAT,EAAcnvC,GAAd,EAAmBiE,KAAK,CAAxB,EAA2B;QACzB2Y,OAAOyyB,QAAQzmC,EAAE3E,IAAI,CAAN,CAAf2Y;QACAhU,EAAE3E,CAAF,KAAQmrC,UAAUxyB,IAAlBhU;;QACA,IAAI5I,GAAJ,EAAS;UACPiE,KAAK,CAALA;UACAmrC,UAAUC,QAAQzmC,EAAE3E,IAAI,CAAN,CAAlBmrC;UACAxmC,EAAE3E,CAAF,KAAQmrC,UAAUxyB,IAAlBhU;QAHF,OAIO;UACL;QARuB;MAHd;IAlES;EADkB;;AAAA;;AAsF9C,MAAMkhC,mBAAN,SAAkCmE,SAAlC,CAA4C;EAC1CO,OAAO5lC,CAAP,EAAUqQ,MAAV,EAAkBle,MAAlB,EAA0B;IACxB,MAAMo0C,MAAMp0C,UAAU,CAAtB;IACAke,UAAU,CAAVA;IACA,IAAIhV,CAAJ,EAAOjE,CAAP;;IAEA,KAAKiE,IAAIgV,MAAJhV,EAAYjE,IAAImvC,MAAM,CAA3B,EAA8BnvC,GAA9B,EAAmCiE,KAAK,CAAxC,EAA2C;MACzC2E,EAAE3E,CAAF,KAAS2E,EAAE3E,IAAI,CAAN,IAAW2E,EAAE3E,IAAI,CAAN,CAAX2E,GAAsB,CAAtBA,IAA4B,CAArCA;IANsB;;IASxB,KAAK3E,IAAIgV,SAAS,CAAbhV,EAAgBjE,IAAImvC,GAAzB,EAA8BnvC,GAA9B,EAAmCiE,KAAK,CAAxC,EAA2C;MACzC2E,EAAE3E,CAAF,KAAS2E,EAAE3E,IAAI,CAAN,IAAW2E,EAAE3E,IAAI,CAAN,CAAX2E,IAAwB,CAAjCA;IAVsB;EADgB;;AAAA;;;;;UCjyE5C;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;;AACA;;AACA;;AACA;;AAiBA,MAAM6mC,eAAe,UAArB;AAEA,MAAMC,aAAa,WAAnB","sources":["webpack://pdfjs-dist/image_decoders/pdf.image_decoders/webpack/universalModuleDefinition","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/util.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/compatibility.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/shared/is_node.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jbig2.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/core_utils.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/primitives.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/base_stream.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/ccitt.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jpg.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/core/jpx.js","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/webpack/bootstrap","webpack://pdfjs-dist/image_decoders/pdf.image_decoders/src/pdf.image_decoders.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/image_decoders/pdf.image_decoders\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/image_decoders/pdf.image_decoders\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/image_decoders/pdf.image_decoders\"] = factory();\n})(globalThis, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n /** @deprecated unused */\n beginAnnotations: 78,\n /** @deprecated unused */\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array<any>|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array<Array<any>|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise<any>} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js<16.0.0\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js<16.0.0\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0\n (function checkArrayAt() {\n if (Array.prototype.at) {\n return;\n }\n require(\"core-js/es/array/at.js\");\n })();\n\n // Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0\n (function checkTypedArrayAt() {\n if (Uint8Array.prototype.at) {\n return;\n }\n require(\"core-js/es/typed-array/at.js\");\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n }\n}\n\nclass DecodingContext {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n get decoder() {\n const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n const contexts = contextCache.getContexts(procedure);\n let prev = 1;\n\n function readBits(length) {\n let v = 0;\n for (let i = 0; i < length; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n const bitmap = [];\n let contextLabel, i, j, pixel, row, row1, row2;\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n\n const templateLength = template.length;\n const templateX = new Int8Array(templateLength);\n const templateY = new Int8Array(templateLength);\n const changingTemplateEntries = [];\n let reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n let c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n let referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n const newSymbols = [];\n let currentHeight = 0;\n let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n let s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n const pageAssociationFieldSize = !!(flags & 0x40);\n const referredFlags = data[start + 5];\n let referredToCount = (referredFlags >> 5) & 7;\n const retainBits = [referredFlags & 31];\n let position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n const textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n const genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type}) is not implemented`\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n // eslint-disable-next-line prefer-spread\n visitor[callbackName].apply(visitor, args);\n }\n}\n\nfunction processSegments(segments, visitor) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n}\n\nfunction parseJbig2Chunks(chunks) {\n const visitor = new SimpleSegmentVisitor();\n for (let i = 0, ii = chunks.length; i < ii; i++) {\n const chunk = chunks[i];\n const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n throw new Error(\"Not implemented: parseJbig2\");\n }\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n onPageInformation(info) {\n this.currentPageInfo = info;\n const rowSize = (info.width + 7) >> 3;\n const buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\n }\n this.buffer = buffer;\n }\n\n drawBitmap(regionInfo, bitmap) {\n const pageInfo = this.currentPageInfo;\n const width = regionInfo.width,\n height = regionInfo.height;\n const rowSize = (pageInfo.width + 7) >> 3;\n const combinationOperator = pageInfo.combinationOperatorOverride\n ? regionInfo.combinationOperator\n : pageInfo.combinationOperator;\n const buffer = this.buffer;\n const mask0 = 128 >> (regionInfo.x & 7);\n let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n let i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n\n onImmediateGenericRegion(region, data, start, end) {\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeBitmap(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion(...arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n const inputSymbols = [];\n for (const referredSegment of referredSegments) {\n const referredSymbols = symbols[referredSegment];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols.push(...referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n const inputSymbols = [];\n for (const referredSegment of referredSegments) {\n const referredSymbols = symbols[referredSegment];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols.push(...referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion(...arguments);\n }\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion(...arguments);\n }\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n}\n\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n }\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n }\n\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\n const prefixSizeBits = ((flags >> 1) & 7) + 1;\n const rangeSizeBits = ((flags >> 4) & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n}\n\nclass Reader {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n const bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n }\n\n readBits(numBits) {\n let result = 0,\n i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n }\n\n byteAlign() {\n this.shift = -1;\n }\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n}\n\nclass Jbig2Image {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n\n parse(data) {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n throw new Error(\"Not implemented: Jbig2Image.parse\");\n }\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationEditorPrefix,\n assert,\n BaseException,\n FontType,\n objectSize,\n StreamType,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n let arr = initializer();\n initializer = null;\n lookup = Object.create(null);\n for (let i = 0, ii = arr.length; i < ii; i += 2) {\n lookup[arr[i]] = arr[i + 1];\n }\n arr = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\nclass DocStats {\n constructor(handler) {\n this._handler = handler;\n\n this._streamTypes = new Set();\n this._fontTypes = new Set();\n }\n\n _send() {\n const streamTypes = Object.create(null),\n fontTypes = Object.create(null);\n for (const type of this._streamTypes) {\n streamTypes[type] = true;\n }\n for (const type of this._fontTypes) {\n fontTypes[type] = true;\n }\n this._handler.send(\"DocStats\", { streamTypes, fontTypes });\n }\n\n addStreamType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(StreamType[type] === type, 'addStreamType: Invalid \"type\" value.');\n }\n if (this._streamTypes.has(type)) {\n return;\n }\n this._streamTypes.add(type);\n this._send();\n }\n\n addFontType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(FontType[type] === type, 'addFontType: Invalid \"type\" value.');\n }\n if (this._fontTypes.has(type)) {\n return;\n }\n this._fontTypes.add(type);\n this._send();\n }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code = code && stringToPDFString(code).replace(/\\u0000/g, \"\");\n if (code) {\n list.push(code);\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n if (/^\".*\"$/.test(fontFamily)) {\n if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n return false;\n }\n } else if (/^'.*'$/.test(fontFamily)) {\n if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n warn(\n `XFA - FontFamily contains some invalid <custom-ident>: ${fontFamily}.`\n );\n return false;\n }\n }\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl && jsUrl[2]) {\n const url = jsUrl[2];\n let newWindow = false;\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n newWindow = true;\n }\n return { url, newWindow };\n }\n\n return null;\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const newAnnotationsByPage = new Map();\n // The concept of page in a XFA is very different, so\n // editing is just not implemented.\n for (const [key, value] of annotationStorage) {\n if (!key.startsWith(AnnotationEditorPrefix)) {\n continue;\n }\n let annotations = newAnnotationsByPage.get(value.pageIndex);\n if (!annotations) {\n annotations = [];\n newAnnotationsByPage.set(value.pageIndex, annotations);\n }\n annotations.push(value);\n }\n return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\nexport {\n collectActions,\n DocStats,\n encodeToXmlString,\n escapePDFName,\n getArrayLookupTableFactory,\n getInheritableProperty,\n getLookupTableFactory,\n getNewAnnotationsMap,\n isWhiteSpace,\n log2,\n MissingDataException,\n numberToString,\n ParserEOFException,\n parseXFAPath,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n toRomanNumerals,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nconst Name = (function NameClosure() {\n let nameCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n // eslint-disable-next-line no-restricted-syntax\n return nameCache[name] || (nameCache[name] = new Name(name));\n }\n\n static _clearCache() {\n nameCache = Object.create(null);\n }\n }\n\n return Name;\n})();\n\nconst Cmd = (function CmdClosure() {\n let cmdCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n // eslint-disable-next-line no-restricted-syntax\n return cmdCache[cmd] || (cmdCache[cmd] = new Cmd(cmd));\n }\n\n static _clearCache() {\n cmdCache = Object.create(null);\n }\n }\n\n return Cmd;\n})();\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n value = this.xref.fetch(value, this.suppressEncryption);\n }\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this._map[key] = value;\n }\n\n has(key) {\n return this._map[key] !== undefined;\n }\n\n forEach(callback) {\n for (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n}\n\nconst Ref = (function RefClosure() {\n let refCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n // eslint-disable-next-line no-restricted-syntax\n return refCache[key] || (refCache[key] = new Ref(num, gen));\n }\n\n static _clearCache() {\n refCache = Object.create(null);\n }\n }\n\n return Ref;\n})();\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent && parent._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n Name._clearCache();\n Ref._clearCache();\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n this.clow = (this.clow << 7) & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[(this.codingPos = 0)];\n } else {\n this.outputBits = codingLine[(this.codingPos = 1)];\n }\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one order of magnitude smaller than expected (fixes\n // issue10880.pdf and issue10989.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 10\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker && nextFileMarker.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n const dataLength = data.length;\n const rgbData = new Uint8ClampedArray(dataLength * 3);\n let offset = 0;\n for (let i = 0; i < dataLength; i++) {\n const grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2,\n};\n\nclass JpxImage {\n constructor() {\n this.failOnCorruptedImage = false;\n }\n\n parse(data) {\n const head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n const length = data.length;\n let position = 0;\n while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n\n parseCodestream(data, start, end) {\n const context = {};\n let doNotRecover = false;\n try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\n for (let i = 0; i < componentsCount; i++) {\n const component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = readUint16(data, position);\n const cod = {};\n j = position + 2;\n const scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n const blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n const tiles = [];\n let tile;\n const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (let q = 0; q < numYtiles; q++) {\n for (let p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\n for (let j = 0, jj = tiles.length; j < jj; j++) {\n const tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n const isZeroRes = resolution.resLevel === 0;\n const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n const numprecinctswide =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n const xcb_ = dimensions.xcb_;\n const ycb_ = dimensions.ycb_;\n const codeblockWidth = 1 << xcb_;\n const codeblockHeight = 1 << ycb_;\n const cbx0 = subband.tbx0 >> xcb_;\n const cby0 = subband.tby0 >> ycb_;\n const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n const precinctParameters = subband.resolution.precinctParameters;\n const codeblocks = [];\n const precincts = [];\n let i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let l, r, c, p;\n let maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n const precinctsIterationSizes = precinctsSizes;\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n const componentsCount = tile.components.length;\n let minWidth = Number.MAX_VALUE;\n let minHeight = Number.MAX_VALUE;\n let maxNumWide = 0;\n let maxNumHigh = 0;\n const sizePerComponent = new Array(componentsCount);\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n const sizePerResolution = new Array(decompositionLevelsCount + 1);\n let minWidthCurrentComponent = Number.MAX_VALUE;\n let minHeightCurrentComponent = Number.MAX_VALUE;\n let maxNumWideCurrentComponent = 0;\n let maxNumHighCurrentComponent = 0;\n let scale = 1;\n for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n}\nfunction buildPackets(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\n for (let r = 0; r <= decompositionLevelsCount; r++) {\n const blocksDimensions = getBlocksDimensions(context, component, r);\n const resolution = {};\n const scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n const bscale = 1 << (decompositionLevelsCount - r + 1);\n const resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const sopMarkerUsed = context.COD.sopMarkerUsed;\n const ephMarkerUsed = context.COD.ephMarkerUsed;\n const packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\n for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n let precinct = codeblock.precinct;\n const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n const codeblockRow = codeblock.cby - precinct.cbyMin;\n let codeblockIncluded = false;\n let firstTimeInclusion = false;\n let valueReady, zeroBitPlanesTree;\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n const width = precinct.cbxMax - precinct.cbxMin + 1;\n const height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n for (let l = 0; l < layerNumber; l++) {\n if (readBits(1) !== 0) {\n throw new JpxError(\"Invalid tag tree\");\n }\n }\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\n const x0 = subband.tbx0;\n const y0 = subband.tby0;\n const width = subband.tbx1 - subband.tbx0;\n const codeblocks = subband.codeblocks;\n const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n const codeblock = codeblocks[i];\n const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n const encodedData = new Uint8Array(totalLength);\n let position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n\n if (resetContextProbabilities) {\n bitModel.reset();\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n const sign = bitModel.coefficentsSign;\n const magnitude = bitModel.coefficentsMagnitude;\n const bitsDecoded = bitModel.bitsDecoded;\n const magnitudeCorrection = reversible ? 0 : 0.5;\n let k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << (mb - nb));\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n}\nfunction transformTile(context, tile, c) {\n const component = tile.components[c];\n const codingStyleParameters = component.codingStyleParameters;\n const quantizationParameters = component.quantizationParameters;\n const decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n const spqcds = quantizationParameters.SPqcds;\n const scalarExpounded = quantizationParameters.scalarExpounded;\n const guardBits = quantizationParameters.guardBits;\n const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n const resetContextProbabilities =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n const coefficients = new Float32Array(width * height);\n\n for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n let mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n const subband = resolution.subbands[j];\n const gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n const tile0 = transformedTiles[0];\n const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n const result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n const fourComponents = componentsCount === 4;\n const y0items = transformedTiles[0].items;\n const y1items = transformedTiles[1].items;\n const y2items = transformedTiles[2].items;\n const y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else {\n // no multi-component transform\n for (let c = 0; c < componentsCount; c++) {\n const items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j) {\n let currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n }\n\n incrementValue() {\n const level = this.levels[this.currentLevel];\n level.items[level.index]++;\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\n for (let j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n const level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j, stopValue) {\n let currentLevel = 0;\n while (currentLevel < this.levels.length) {\n const level = this.levels[currentLevel];\n const index = i + j * level.width;\n level.index = index;\n const value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n }\n\n incrementValue(stopValue) {\n const level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n }\n\n propagateValues() {\n let levelIndex = this.currentLevel;\n let level = this.levels[levelIndex];\n const currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\n// Section D. Coefficient bit modeling\nconst BitModel = (function BitModelClosure() {\n const UNIFORM_CONTEXT = 17;\n const RUNLENGTH_CONTEXT = 18;\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n const LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n ]);\n const HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n ]);\n const HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n ]);\n\n // eslint-disable-next-line no-shadow\n class BitModel {\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n }\n\n setNeighborsSignificance(row, column, index) {\n const neighborsSignificance = this.neighborsSignificance;\n const width = this.width,\n height = this.height;\n const left = column > 0;\n const right = column + 1 < width;\n let i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n }\n\n runSignificancePropagationPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const neighborsSignificance = this.neighborsSignificance;\n const processingFlags = this.processingFlags;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processedInverseMask = ~1;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n\n for (let i0 = 0; i0 < height; i0 += 4) {\n for (let j = 0; j < width; j++) {\n let index = i0 * width + j;\n for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n const sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n decodeSignBit(row, column, index) {\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n let contribution, sign0, sign1, significance1;\n let contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n }\n\n runMagnitudeRefinementPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const neighborsSignificance = this.neighborsSignificance;\n const contexts = this.contexts;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const length = width * height;\n const width4 = width * 4;\n\n for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n runCleanupPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const neighborsSignificance = this.neighborsSignificance;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const oneRowDown = width;\n const twoRowsDown = width * 2;\n const threeRowsDown = width * 3;\n let iNext;\n for (let i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n const indexBase = i0 * width;\n const checkAllEmpty = i0 + 3 < height;\n for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n }\n\n return BitModel;\n})();\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n let i1 = offset - 1,\n j1 = offset + 1;\n let i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n }\n\n filter(x, offset, length) {\n unreachable(\"Abstract method `filter` called\");\n }\n\n iterate(ll, hl_lh_hh, u0, v0) {\n const llWidth = ll.width,\n llHeight = ll.height;\n let llItems = ll.items;\n const width = hl_lh_hh.width;\n const height = hl_lh_hh.height;\n const items = hl_lh_hh.items;\n let i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n const buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\n const alpha = -1.586134342059924;\n const beta = -0.052980118572961;\n const gamma = 0.882911075530934;\n const delta = 0.443506852043971;\n const K = 1.230174104914001;\n const K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n }\n}\n\nexport { JpxImage };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getVerbosityLevel, setVerbosityLevel } from \"./shared/util.js\";\nimport { Jbig2Image } from \"./core/jbig2.js\";\nimport { JpegImage } from \"./core/jpg.js\";\nimport { JpxImage } from \"./core/jpx.js\";\n\n// To ensure that the standalone PDF.js image decoders have the same\n// browser/environment compatibility as the regular PDF.js library,\n// the standard set of polyfills are thus included in this build as well.\n//\n// Given that the (current) image decoders don't use all of the features\n// of the complete PDF.js library, e.g. they are completely synchronous,\n// some of the larger polyfills are thus unnecessary.\n//\n// In an attempt to reduce the size of the standalone PDF.js image decoders,\n// the following polyfills are currently being excluded:\n// - ReadableStream\n// - Promise\n// - URL\n\n// eslint-disable-next-line no-unused-vars\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n// eslint-disable-next-line no-unused-vars\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport {\n getVerbosityLevel,\n Jbig2Image,\n JpegImage,\n JpxImage,\n setVerbosityLevel,\n};\n"],"names":["IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","INK","AnnotationEditorParamsType","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","ex","absoluteUrl","URL","shadow","obj","prop","value","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","constructor","prototype","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","str","Uint8Array","charCodeAt","arrayByteLength","arr","byteLength","arraysToBytes","resultLength","pos","data","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","create","key","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","e","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","Array","n","toString","padStart","Util","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","max","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","a","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decode","ii","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","createPromiseCapability","capability","isSettled","get","promise","Promise","resolve","reject","reason","isNodeJS","process","versions","nw","electron","type","Jbig2Error","ContextCache","getContexts","id","Int8Array","DecodingContext","start","end","ArithmeticDecoder","contextCache","cache","decodeInteger","procedure","contexts","prev","readBits","bit","readBit","sign","decodeIAID","codeLength","SegmentTypes","CodingTemplates","x","y","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","width","height","decodingContext","bitmap","contextLabel","pixel","row","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","skip","at","input","Reader","decodeMMRBitmap","useskip","template","concat","sort","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","k","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","Uint16Array","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","shift","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","Int32Array","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","log2","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","byteAlign","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","position","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","number","readUint32","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","readUint16","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","args","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","readInt8","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","Uint8ClampedArray","q","mask","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","offset","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","arguments","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSegment","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","buildTree","node","decodeNode","reader","htOffset","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","table","currentByte","numBits","result","next","getCustomHuffmanTable","index","currentIndex","numberOfSymbols","codes","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","params","Columns","Rows","BlackIs1","EndOfBlock","CCITTFaxDecoder","eof","readNextChar","lookForEOFLimit","Jbig2Image","parseChunks","parse","getLookupTableFactory","initializer","lookup","getArrayLookupTableFactory","MissingDataException","begin","ParserEOFException","XRefEntryException","XRefParseException","DocStats","handler","_handler","_streamTypes","Set","_fontTypes","_send","streamTypes","fontTypes","send","addStreamType","has","add","addFontType","getInheritableProperty","dict","getArray","stopWhenFound","values","visited","RefSet","Dict","objId","put","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","romanBuf","romanStr","toLowerCase","ceil","isWhiteSpace","ch","parseXFAPath","path","positionPattern","split","component","parseInt","escapePDFName","substring","_collectJS","entry","xref","list","parents","parent","Ref","fetch","isArray","element","isName","js","BaseStream","getString","getRaw","remove","collectActions","eventType","actions","additionalActionsDicts","additionalActions","getKeys","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontFamily","fontWeight","italicAngle","ident","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","RegExp","jsUrl","exec","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","Map","annotations","pageIndex","size","CIRCULAR_REF","Symbol","EOF","Name","NameClosure","nameCache","_clearCache","Cmd","CmdClosure","cmdCache","cmd","nonSerializable","nonSerializableClosure","_map","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","getAsync","fetchAsync","getRawValues","forEach","callback","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","entries","property","subDict","clear","RefClosure","refCache","num","gen","_set","ref","delete","iterator","RefSetCache","putAlias","aliasRef","isCmd","isDict","isRefsEqual","v1","v2","clearPrimitiveCaches","isEmpty","isDataLoaded","getByte","getBytes","peekByte","peekedByte","peekBytes","getUint16","b0","b1","getInt32","b2","b3","getByteRange","reset","moveStart","makeSubStream","getBaseStreams","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","source","eoline","EndOfLine","EncodedByteAlign","columns","rows","eoblock","black","codingLine","refLine","codingPos","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","refPos","blackPixels","bits","err","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","limit","limitValue","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","pop","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","endOffset","array","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","l","appData","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","dataLength","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","getData","forceRGB","rgbData","grayColor","JpxError","SubbandsGainLog2","LL","LH","HL","HH","JpxImage","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","method","colorspace","headerType","parseImageProperties","stream","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","tiles","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","jj","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","floor","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","bufferSize","skipNextBit","count","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","totalLength","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","gainLog2","items","calculate","left","top","resultImages","transformedTiles","tile0","out","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","qcdOrQcc","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","filter","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","len","current","alpha","beta","gamma","K_","pdfjsVersion","pdfjsBuild"],"sourceRoot":""} |