{"version":3,"file":"backend.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;ACVA;;;;;;;;;AASa;;;;AAAA,IAAIA,CAAC,GAACC,mBAAO,CAAC,GAAD,CAAb;AAAA,IAAoCC,CAAC,GAACD,mBAAO,CAAC,GAAD,CAA7C;AAAA,IAAuDE,CAAC,GAACC,MAAM,CAACC,MAAhE;AAAA,IAAuEC,CAAC,GAACJ,CAAC,CAACK,kDAA3E;AAAA,IAA8HC,CAAC,GAAC,EAAhI;AAAA,IAAmIC,CAAC,GAAC,IAArI;;AACb,SAASC,CAAT,GAAY;AAAC,MAAG,SAAOD,CAAV,EAAY;AAAC,QAAIE,CAAC,GAAC,IAAIC,GAAJ,EAAN;;AAAc,QAAG;AAACC,MAAAA,CAAC,CAACC,UAAF,CAAa;AAACC,QAAAA,aAAa,EAAC;AAAf,OAAb,GAAmCF,CAAC,CAACG,QAAF,CAAW,IAAX,CAAnC,EAAoDH,CAAC,CAACI,UAAF,CAAa,UAASC,CAAT,EAAW;AAAC,eAAOA,CAAP;AAAS,OAAlC,EAAmC,IAAnC,CAApD,EAA6FL,CAAC,CAACM,MAAF,CAAS,IAAT,CAA7F,EAA4G,eAAa,OAAON,CAAC,CAACO,eAAtB,IAAuCP,CAAC,CAACO,eAAF,EAAnJ,EAAuKP,CAAC,CAACQ,eAAF,CAAkB,YAAU,CAAE,CAA9B,CAAvK,EAAuMR,CAAC,CAACS,kBAAF,CAAqB,YAAU,CAAE,CAAjC,CAAvM,EAA0OT,CAAC,CAACU,SAAF,CAAY,YAAU,CAAE,CAAxB,CAA1O,EAAoQV,CAAC,CAACW,mBAAF,CAAsB,KAAK,CAA3B,EAA6B,YAAU;AAAC,eAAO,IAAP;AAAY,OAApD,CAApQ,EAA0TX,CAAC,CAACY,aAAF,CAAgB,IAAhB,CAA1T,EAAgVZ,CAAC,CAACa,WAAF,CAAc,YAAU,CAAE,CAA1B,CAAhV,EAA4Wb,CAAC,CAACc,OAAF,CAAU,YAAU;AAAC,eAAO,IAAP;AAAY,OAAjC,CAA5W,EAA+Y,eAAa,OAAOd,CAAC,CAACe,YAAtB,IAAoCf,CAAC,CAACe,YAAF,CAAe,CAAf,CAAnb;AAAqc,KAAzc,SAAgd;AAAC,UAAIC,CAAC,GAC9frB,CADyf;AACvfA,MAAAA,CAAC,GAAC,EAAF;AAAK;;AAAA,SAAI,IAAIsB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACD,CAAC,CAACE,MAAhB,EAAuBD,CAAC,EAAxB,EAA2B;AAAC,UAAIE,CAAC,GAACH,CAAC,CAACC,CAAD,CAAP;AAAWnB,MAAAA,CAAC,CAACsB,GAAF,CAAMD,CAAC,CAACE,SAAR,EAAkBlC,CAAC,CAACmC,KAAF,CAAQH,CAAC,CAACI,UAAV,CAAlB;AAAyC;;AAAA3B,IAAAA,CAAC,GAACE,CAAF;AAAI;;AAAA,SAAOF,CAAP;AAAS;;AAAA,IAAI4B,CAAC,GAAC,IAAN;;AAAW,SAASC,CAAT,GAAY;AAAC,MAAI3B,CAAC,GAAC0B,CAAN;AAAQ,WAAO1B,CAAP,KAAW0B,CAAC,GAAC1B,CAAC,CAAC4B,IAAf;AAAqB,SAAO5B,CAAP;AAAS;;AAClK,IAAIE,CAAC,GAAC;AAAC2B,EAAAA,GAAG,EAAC,eAAU;AAAC,UAAMC,KAAK,CAAC,6DAAD,CAAX;AAA4E,GAA5F;AAA6FC,EAAAA,WAAW,EAAC,qBAAS/B,CAAT,EAAW;AAAC,WAAOA,CAAC,CAACI,aAAT;AAAuB,GAA5I;AAA6IK,EAAAA,eAAe,EAAC,2BAAU;AAAC,QAAIT,CAAC,GAAC2B,CAAC,EAAP;AAAU9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,cAAX;AAA0BE,MAAAA,UAAU,EAACK,KAAK,EAA1C;AAA6CG,MAAAA,KAAK,EAAC,SAAOjC,CAAP,GAASA,CAAC,CAACkC,aAAX,GAAyB,YAAU,CAAE;AAAxF,KAAP;AAAkG,WAAO,YAAU,CAAE,CAAnB;AAAoB,GAAxS;AAAySnB,EAAAA,WAAW,EAAC,qBAASf,CAAT,EAAW;AAAC,QAAIkB,CAAC,GAACS,CAAC,EAAP;AAAU9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,UAAX;AAAsBE,MAAAA,UAAU,EAACK,KAAK,EAAtC;AAAyCG,MAAAA,KAAK,EAAC,SAAOf,CAAP,GAASA,CAAC,CAACgB,aAAF,CAAgB,CAAhB,CAAT,GAA4BlC;AAA3E,KAAP;AAAsF,WAAOA,CAAP;AAAS,GAA1a;AAA2aG,EAAAA,UAAU,EAAC,oBAASH,CAAT,EAAW;AAACH,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,SAAX;AAAqBE,MAAAA,UAAU,EAACK,KAAK,EAArC;AAC/cG,MAAAA,KAAK,EAACjC,CAAC,CAACI;AADuc,KAAP;AAChb,WAAOJ,CAAC,CAACI,aAAT;AAAuB,GADzC;AAC0CQ,EAAAA,SAAS,EAAC,mBAASZ,CAAT,EAAW;AAAC2B,IAAAA,CAAC;AAAG9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,QAAX;AAAoBE,MAAAA,UAAU,EAACK,KAAK,EAApC;AAAuCG,MAAAA,KAAK,EAACjC;AAA7C,KAAP;AAAwD,GAD5H;AAC6Ha,EAAAA,mBAAmB,EAAC,6BAASb,CAAT,EAAW;AAAC2B,IAAAA,CAAC;AAAG,QAAIT,CAAC,GAAC,KAAK,CAAX;AAAa,aAAOlB,CAAP,IAAU,qBAAkBA,CAAlB,CAAV,KAAgCkB,CAAC,GAAClB,CAAC,CAACmC,OAApC;AAA6CtC,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,kBAAX;AAA8BE,MAAAA,UAAU,EAACK,KAAK,EAA9C;AAAiDG,MAAAA,KAAK,EAACf;AAAvD,KAAP;AAAkE,GAD7R;AAC8RJ,EAAAA,aAAa,EAAC,uBAASd,CAAT,EAAWkB,CAAX,EAAa;AAACrB,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,YAAX;AAAwBE,MAAAA,UAAU,EAACK,KAAK,EAAxC;AAA2CG,MAAAA,KAAK,EAAC,eAAa,OAAOf,CAApB,GAAsBA,CAAC,CAAClB,CAAD,CAAvB,GAA2BA;AAA5E,KAAP;AAAuF,GADjZ;AACkZU,EAAAA,eAAe,EAAC,yBAASV,CAAT,EAAW;AAAC2B,IAAAA,CAAC;AAAG9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,cAAX;AAA0BE,MAAAA,UAAU,EAACK,KAAK,EAA1C;AAA6CG,MAAAA,KAAK,EAACjC;AAAnD,KAAP;AAA8D,GADhf;AAENW,EAAAA,kBAAkB,EAAC,4BAASX,CAAT,EAAW;AAAC2B,IAAAA,CAAC;AAAG9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,iBAAX;AAA6BE,MAAAA,UAAU,EAACK,KAAK,EAA7C;AAAgDG,MAAAA,KAAK,EAACjC;AAAtD,KAAP;AAAiE,GAF9F;AAE+FgB,EAAAA,OAAO,EAAC,iBAAShB,CAAT,EAAW;AAAC,QAAIkB,CAAC,GAACS,CAAC,EAAP;AAAU3B,IAAAA,CAAC,GAAC,SAAOkB,CAAP,GAASA,CAAC,CAACgB,aAAF,CAAgB,CAAhB,CAAT,GAA4BlC,CAAC,EAA/B;AAAkCH,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,MAAX;AAAkBE,MAAAA,UAAU,EAACK,KAAK,EAAlC;AAAqCG,MAAAA,KAAK,EAACjC;AAA3C,KAAP;AAAsD,WAAOA,CAAP;AAAS,GAF9N;AAE+NiB,EAAAA,YAAY,EAAC,wBAAU;AAAC,WAAM,EAAN;AAAS,GAFhQ;AAEiQX,EAAAA,UAAU,EAAC,oBAASN,CAAT,EAAWkB,CAAX,EAAaC,CAAb,EAAe;AAACnB,IAAAA,CAAC,GAAC2B,CAAC,EAAH;AAAMT,IAAAA,CAAC,GAAC,SAAOlB,CAAP,GAASA,CAAC,CAACkC,aAAX,GAAyB,KAAK,CAAL,KAASf,CAAT,GAAWA,CAAC,CAACD,CAAD,CAAZ,GAAgBA,CAA3C;AAA6CrB,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,SAAX;AAAqBE,MAAAA,UAAU,EAACK,KAAK,EAArC;AAAwCG,MAAAA,KAAK,EAACf;AAA9C,KAAP;AAAyD,WAAM,CAACA,CAAD,EAAG,YAAU,CAAE,CAAf,CAAN;AAAuB,GAF/Z;AAEgaV,EAAAA,MAAM,EAAC,gBAASR,CAAT,EAAW;AAAC,QAAIkB,CAAC,GAACS,CAAC,EAAP;AAAU3B,IAAAA,CAAC,GAAC,SAAOkB,CAAP,GAASA,CAAC,CAACgB,aAAX,GAAyB;AAACC,MAAAA,OAAO,EAACnC;AAAT,KAA3B;AAAuCH,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,KAAX;AACjfE,MAAAA,UAAU,EAACK,KAAK,EADie;AAC9dG,MAAAA,KAAK,EAACjC,CAAC,CAACmC;AADsd,KAAP;AACrc,WAAOnC,CAAP;AAAS,GAHxC;AAGyCK,EAAAA,QAAQ,EAAC,kBAASL,CAAT,EAAW;AAAC,QAAIkB,CAAC,GAACS,CAAC,EAAP;AAAU3B,IAAAA,CAAC,GAAC,SAAOkB,CAAP,GAASA,CAAC,CAACgB,aAAX,GAAyB,eAAa,OAAOlC,CAApB,GAAsBA,CAAC,EAAvB,GAA0BA,CAArD;AAAuDH,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,OAAX;AAAmBE,MAAAA,UAAU,EAACK,KAAK,EAAnC;AAAsCG,MAAAA,KAAK,EAACjC;AAA5C,KAAP;AAAuD,WAAM,CAACA,CAAD,EAAG,YAAU,CAAE,CAAf,CAAN;AAAuB,GAH7M;AAG8MoC,EAAAA,aAAa,EAAC,yBAAU;AAACT,IAAAA,CAAC;AAAGA,IAAAA,CAAC;AAAG9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,YAAX;AAAwBE,MAAAA,UAAU,EAACK,KAAK,EAAxC;AAA2CG,MAAAA,KAAK,EAAC,KAAK;AAAtD,KAAP;AAAiE,WAAM,CAAC,CAAC,CAAF,EAAI,YAAU,CAAE,CAAhB,CAAN;AAAwB,GAHxU;AAGyUI,EAAAA,oBAAoB,EAAC,8BAASrC,CAAT,EAAWkB,CAAX,EAAa;AAACS,IAAAA,CAAC;AAAGA,IAAAA,CAAC;AAAG3B,IAAAA,CAAC,GAACkB,CAAC,EAAH;AAAMrB,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,mBAAX;AAA+BE,MAAAA,UAAU,EAACK,KAAK,EAA/C;AAAkDG,MAAAA,KAAK,EAACjC;AAAxD,KAAP;AAAmE,WAAOA,CAAP;AAAS,GAHtc;AAGucsC,EAAAA,gBAAgB,EAAC,0BAAStC,CAAT,EAAW;AAAC,QAAIkB,CAAC,GAACS,CAAC,EAAP;AAAU9B,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,eAAX;AAC3fE,MAAAA,UAAU,EAACK,KAAK,EAD2e;AACxeG,MAAAA,KAAK,EAAC,SAAOf,CAAP,GAASA,CAAC,CAACgB,aAAX,GAAyBlC;AADyc,KAAP;AAC9b,WAAOA,CAAP;AAAS,GAJzD;AAI0DuC,EAAAA,KAAK,EAAC,iBAAU;AAAC,QAAIvC,CAAC,GAAC2B,CAAC,EAAP;AAAU3B,IAAAA,CAAC,GAAC,SAAOA,CAAP,GAASA,CAAC,CAACkC,aAAX,GAAyB,EAA3B;AAA8BrC,IAAAA,CAAC,CAACmC,IAAF,CAAO;AAACT,MAAAA,SAAS,EAAC,IAAX;AAAgBE,MAAAA,UAAU,EAACK,KAAK,EAAhC;AAAmCG,MAAAA,KAAK,EAACjC;AAAzC,KAAP;AAAoD,WAAOA,CAAP;AAAS;AAJhL,CAAN;AAAA,IAIwLwC,CAAC,GAAC;AAACC,EAAAA,GAAG,EAAC,aAASzC,CAAT,EAAWkB,CAAX,EAAa;AAAC,QAAGlB,CAAC,CAAC0C,cAAF,CAAiBxB,CAAjB,CAAH,EAAuB,OAAOlB,CAAC,CAACkB,CAAD,CAAR;AAAYlB,IAAAA,CAAC,GAAC8B,KAAK,CAAC,mCAAiCZ,CAAlC,CAAP;AAA4ClB,IAAAA,CAAC,CAAC2C,IAAF,GAAO,qCAAP;AAA6C,UAAM3C,CAAN;AAAS;AAAxJ,CAJ1L;AAAA,IAIoV4C,CAAC,GAAC,gBAAc,OAAOC,KAArB,GAA2B3C,CAA3B,GAA6B,IAAI2C,KAAJ,CAAU3C,CAAV,EAAYsC,CAAZ,CAJnX;AAAA,IAIkYM,CAAC,GAAC,CAJpY;;AAKA,SAASC,CAAT,CAAW/C,CAAX,EAAakB,CAAb,EAAeC,CAAf,EAAiB;AAAC,MAAIE,CAAC,GAACH,CAAC,CAACC,CAAD,CAAD,CAAK6B,MAAX;AAAA,MAAkBzC,CAAC,GAAC,CAApB;;AAAsBP,EAAAA,CAAC,EAAC,OAAKO,CAAC,GAACP,CAAC,CAACoB,MAAT,EAAgBb,CAAC,EAAjB;AAAoB,QAAGP,CAAC,CAACO,CAAD,CAAD,CAAKyC,MAAL,KAAc3B,CAAjB,EAAmB;AAAC,WAAI,IAAI4B,CAAC,GAAC9B,CAAC,GAAC,CAAR,EAAU+B,CAAC,GAAC3C,CAAC,GAAC,CAAlB,EAAoB0C,CAAC,GAAC/B,CAAC,CAACE,MAAJ,IAAY8B,CAAC,GAAClD,CAAC,CAACoB,MAApC,EAA2C6B,CAAC,IAAGC,CAAC,EAAhD;AAAmD,YAAGlD,CAAC,CAACkD,CAAD,CAAD,CAAKF,MAAL,KAAc9B,CAAC,CAAC+B,CAAD,CAAD,CAAKD,MAAtB,EAA6B,SAAShD,CAAT;AAAhF;;AAA2F,aAAOO,CAAP;AAAS;AAA5I;;AAA4I,SAAM,CAAC,CAAP;AAAS;;AAAA,SAAS4C,CAAT,CAAWnD,CAAX,EAAakB,CAAb,EAAe;AAAC,MAAG,CAAClB,CAAJ,EAAM,OAAM,CAAC,CAAP;AAASkB,EAAAA,CAAC,GAAC,QAAMA,CAAR;AAAU,SAAOlB,CAAC,CAACoB,MAAF,GAASF,CAAC,CAACE,MAAX,GAAkB,CAAC,CAAnB,GAAqBpB,CAAC,CAACoD,WAAF,CAAclC,CAAd,MAAmBlB,CAAC,CAACoB,MAAF,GAASF,CAAC,CAACE,MAA1D;AAAiE;;AACzS,SAASiC,CAAT,CAAWrD,CAAX,EAAakB,CAAb,EAAeC,CAAf,EAAiB;AAAC,OAAI,IAAIE,CAAC,GAAC,EAAN,EAASd,CAAC,GAAC,IAAX,EAAgB0C,CAAC,GAAC5B,CAAlB,EAAoB6B,CAAC,GAAC,CAAtB,EAAwBI,CAAC,GAAC,EAA1B,EAA6BC,CAAC,GAAC,CAAnC,EAAqCA,CAAC,GAACrC,CAAC,CAACE,MAAzC,EAAgDmC,CAAC,EAAjD,EAAoD;AAAC,QAAIC,CAAC,GAACtC,CAAC,CAACqC,CAAD,CAAP;AAAW,QAAIE,CAAC,GAACzD,CAAN;AAAQ,QAAI0D,CAAC,GAACrE,CAAC,CAACmC,KAAF,CAAQgC,CAAC,CAAC/B,UAAV,CAAN;;AAA4BP,IAAAA,CAAC,EAAC;AAAC,UAAIyC,CAAC,GAACD,CAAN;AAAA,UAAQE,CAAC,GAACb,CAAC,CAACY,CAAD,EAAGF,CAAH,EAAKX,CAAL,CAAX;AAAmB,UAAG,CAAC,CAAD,KAAKc,CAAR,EAAUH,CAAC,GAACG,CAAF,CAAV,KAAkB;AAAC,aAAI,IAAIC,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACJ,CAAC,CAACrC,MAAJ,IAAY,IAAEyC,CAA1B,EAA4BA,CAAC,EAA7B;AAAgC,cAAGD,CAAC,GAACb,CAAC,CAACY,CAAD,EAAGF,CAAH,EAAKI,CAAL,CAAH,EAAW,CAAC,CAAD,KAAKD,CAAnB,EAAqB;AAACd,YAAAA,CAAC,GAACe,CAAF;AAAIJ,YAAAA,CAAC,GAACG,CAAF;AAAI,kBAAM1C,CAAN;AAAQ;AAAtE;;AAAsEuC,QAAAA,CAAC,GAAC,CAAC,CAAH;AAAK;AAAC;;AAAAvC,IAAAA,CAAC,EAAC;AAACyC,MAAAA,CAAC,GAACD,CAAF;AAAIE,MAAAA,CAAC,GAAC7D,CAAC,GAAG0C,GAAJ,CAAQe,CAAC,CAACjC,SAAV,CAAF;AAAuB,UAAG,KAAK,CAAL,KAASqC,CAAZ,EAAc,KAAIC,CAAC,GAAC,CAAN,EAAQA,CAAC,GAACD,CAAC,CAACxC,MAAJ,IAAYyC,CAAC,GAACF,CAAC,CAACvC,MAAxB,EAA+ByC,CAAC,EAAhC;AAAmC,YAAGD,CAAC,CAACC,CAAD,CAAD,CAAKb,MAAL,KAAcW,CAAC,CAACE,CAAD,CAAD,CAAKb,MAAtB,EAA6B;AAACa,UAAAA,CAAC,GAACF,CAAC,CAACvC,MAAF,GAAS,CAAX,IAAc+B,CAAC,CAACQ,CAAC,CAACE,CAAD,CAAD,CAAKC,YAAN,EAAmBN,CAAC,CAACjC,SAArB,CAAf,IAAgDsC,CAAC,EAAjD;AAAoDA,UAAAA,CAAC,GAACF,CAAC,CAACvC,MAAF,GAAS,CAAX,IAAc+B,CAAC,CAACQ,CAAC,CAACE,CAAD,CAAD,CAAKC,YAAN,EAAmBN,CAAC,CAACjC,SAArB,CAAf,IAAgDsC,CAAC,EAAjD;AAAoDF,UAAAA,CAAC,GAACE,CAAF;AAAI,gBAAM3C,CAAN;AAAQ;AAArL;AAAqLyC,MAAAA,CAAC,GAAC,CAAC,CAAH;AAAK;;AAAAD,IAAAA,CAAC,GAAC,CAAC,CAAD,KAAKD,CAAL,IAAQ,CAAC,CAAD,KAAKE,CAAb,IAAgB,IAAEF,CAAC,GAACE,CAApB,GAAsB,IAAtB,GAA2BD,CAAC,CAACK,KAAF,CAAQJ,CAAR,EAC9eF,CAAC,GAAC,CAD4e,CAA7B;;AAC5c,QAAG,SAAOC,CAAV,EAAY;AAACD,MAAAA,CAAC,GAAC,CAAF;;AAAI,UAAG,SAAOlD,CAAV,EAAY;AAAC,eAAKkD,CAAC,GAACC,CAAC,CAACtC,MAAJ,IAAYqC,CAAC,GAAClD,CAAC,CAACa,MAAhB,IAAwBsC,CAAC,CAACA,CAAC,CAACtC,MAAF,GAASqC,CAAT,GAAW,CAAZ,CAAD,CAAgBT,MAAhB,KAAyBzC,CAAC,CAACA,CAAC,CAACa,MAAF,GAASqC,CAAT,GAAW,CAAZ,CAAD,CAAgBT,MAAtE;AAA8ES,UAAAA,CAAC;AAA/E;;AAAkF,aAAIlD,CAAC,GAACA,CAAC,CAACa,MAAF,GAAS,CAAf,EAAiBb,CAAC,GAACkD,CAAnB,EAAqBlD,CAAC,EAAtB;AAAyB0C,UAAAA,CAAC,GAACK,CAAC,CAACU,GAAF,EAAF;AAAzB;AAAmC;;AAAA,WAAIzD,CAAC,GAACmD,CAAC,CAACtC,MAAF,GAASqC,CAAT,GAAW,CAAjB,EAAmB,KAAGlD,CAAtB,EAAwBA,CAAC,EAAzB;AAA4BkD,QAAAA,CAAC,GAAC,EAAF,EAAKE,CAAC,GAACD,CAAC,CAACnD,CAAD,CAAR,EAAY,CAACqD,CAAC,GAACF,CAAC,CAACnD,CAAC,GAAC,CAAH,CAAD,CAAOuD,YAAV,KAAyBD,CAAC,GAACD,CAAC,CAACR,WAAF,CAAc,GAAd,CAAF,EAAqB,CAAC,CAAD,KAAKS,CAAL,KAASA,CAAC,GAAC,CAAX,CAArB,EAAmC,UAAQD,CAAC,CAACG,KAAF,CAAQF,CAAR,EAAUA,CAAC,GAAC,CAAZ,CAAR,KAAyBA,CAAC,IAAE,CAA5B,CAAnC,EAAkED,CAAC,GAACA,CAAC,CAACG,KAAF,CAAQF,CAAR,CAA7F,IAAyGD,CAAC,GAAC,EAAvH,EAA0HA,CAAC,GAAC;AAACK,UAAAA,EAAE,EAAC,IAAJ;AAASC,UAAAA,eAAe,EAAC,CAAC,CAA1B;AAA4BvB,UAAAA,IAAI,EAACiB,CAAjC;AAAmC3B,UAAAA,KAAK,EAAC,KAAK,CAA9C;AAAgDkC,UAAAA,QAAQ,EAACV;AAAzD,SAA5H,EAAwLtC,CAAC,KAAGyC,CAAC,CAACQ,UAAF,GAAa;AAACC,UAAAA,UAAU,EAACV,CAAC,CAACU,UAAd;AAAyBC,UAAAA,YAAY,EAACX,CAAC,CAACW,YAAxC;AAAqDR,UAAAA,YAAY,EAACH,CAAC,CAACG,YAApE;AAAiFS,UAAAA,QAAQ,EAACZ,CAAC,CAACY;AAA5F,SAAhB,CAAzL,EAAgTtB,CAAC,CAACjB,IAAF,CAAO4B,CAAP,CAAhT,EAA0TN,CAAC,CAACtB,IAAF,CAAOiB,CAAP,CAA1T,EACpLA,CAAC,GAACQ,CADkL;AAA5B;;AACpJlD,MAAAA,CAAC,GAACmD,CAAF;AAAI;;AAAAD,IAAAA,CAAC,GAACD,CAAC,CAACjC,SAAJ;AAAciC,IAAAA,CAAC,GAAC;AAACS,MAAAA,EAAE,EAAC,cAAYR,CAAZ,IAAe,iBAAeA,CAA9B,GAAgC,IAAhC,GAAqCP,CAAC,EAA1C;AAA6CgB,MAAAA,eAAe,EAAC,cAAYT,CAAZ,IAAe,YAAUA,CAAtF;AAAwFd,MAAAA,IAAI,EAACc,CAA7F;AAA+FxB,MAAAA,KAAK,EAACuB,CAAC,CAACvB,KAAvG;AAA6GkC,MAAAA,QAAQ,EAAC;AAAtH,KAAF;AAA4HhD,IAAAA,CAAC,KAAGsC,CAAC,GAAC;AAACY,MAAAA,UAAU,EAAC,IAAZ;AAAiBP,MAAAA,YAAY,EAAC,IAA9B;AAAmCS,MAAAA,QAAQ,EAAC,IAA5C;AAAiDD,MAAAA,YAAY,EAAC;AAA9D,KAAF,EAAsEZ,CAAC,IAAE,KAAGA,CAAC,CAACtC,MAAR,KAAiBsC,CAAC,GAACA,CAAC,CAAC,CAAD,CAAH,EAAOD,CAAC,CAACY,UAAF,GAAaX,CAAC,CAACW,UAAtB,EAAiCZ,CAAC,CAACK,YAAF,GAAeJ,CAAC,CAACI,YAAlD,EAA+DL,CAAC,CAACc,QAAF,GAAWb,CAAC,CAACa,QAA5E,EAAqFd,CAAC,CAACa,YAAF,GAAeZ,CAAC,CAACY,YAAvH,CAAtE,EAA2Md,CAAC,CAACY,UAAF,GAAaX,CAA3N,CAAD;AAA+NR,IAAAA,CAAC,CAACjB,IAAF,CAAOwB,CAAP;AAAU;;AAAAgB,EAAAA,CAAC,CAACnD,CAAD,EAAG,IAAH,CAAD;AAAU,SAAOA,CAAP;AAAS;;AAC9Y,SAASmD,CAAT,CAAWxE,CAAX,EAAakB,CAAb,EAAe;AAAC,OAAI,IAAIC,CAAC,GAAC,EAAN,EAASE,CAAC,GAAC,CAAf,EAAiBA,CAAC,GAACrB,CAAC,CAACoB,MAArB,EAA4BC,CAAC,EAA7B,EAAgC;AAAC,QAAId,CAAC,GAACP,CAAC,CAACqB,CAAD,CAAP;AAAW,qBAAed,CAAC,CAACoC,IAAjB,IAAuB,MAAIpC,CAAC,CAAC4D,QAAF,CAAW/C,MAAtC,IAA8CpB,CAAC,CAACyE,MAAF,CAASpD,CAAT,EAAW,CAAX,GAAcA,CAAC,EAAf,EAAkBF,CAAC,CAACa,IAAF,CAAOzB,CAAP,CAAhE,IAA2EiE,CAAC,CAACjE,CAAC,CAAC4D,QAAH,EAAY5D,CAAZ,CAA5E;AAA2F;;AAAA,WAAOW,CAAP,KAAW,MAAIC,CAAC,CAACC,MAAN,GAAaF,CAAC,CAACe,KAAF,GAAQd,CAAC,CAAC,CAAD,CAAD,CAAKc,KAA1B,GAAgC,IAAEd,CAAC,CAACC,MAAJ,KAAaF,CAAC,CAACe,KAAF,GAAQd,CAAC,CAACuD,GAAF,CAAM,UAASzB,CAAT,EAAW;AAAC,WAAOA,CAAC,CAAChB,KAAT;AAAe,GAAjC,CAArB,CAA3C;AAAqG;;AAAA,SAAS0C,CAAT,CAAW3E,CAAX,EAAa;AAAC,MAAGA,CAAC,YAAY8B,KAAb,IAAoB,0CAAwC9B,CAAC,CAAC2C,IAAjE,EAAsE,MAAM3C,CAAN;AAAQ,MAAIkB,CAAC,GAACY,KAAK,CAAC,qCAAD,EAAuC;AAAC8C,IAAAA,KAAK,EAAC5E;AAAP,GAAvC,CAAX;AAA6DkB,EAAAA,CAAC,CAACyB,IAAF,GAAO,4BAAP;AAAoCzB,EAAAA,CAAC,CAAC0D,KAAF,GAAQ5E,CAAR;AAAU,QAAMkB,CAAN;AAAS;;AAC5c,SAAS2D,CAAT,CAAW7E,CAAX,EAAakB,CAAb,EAAeC,CAAf,EAAiB;AAAC,MAAIE,CAAC,GAAC,IAAEyD,SAAS,CAAC1D,MAAZ,IAAoB,KAAK,CAAL,KAAS0D,SAAS,CAAC,CAAD,CAAtC,GAA0CA,SAAS,CAAC,CAAD,CAAnD,GAAuD,CAAC,CAA9D;AAAgE,UAAM3D,CAAN,KAAUA,CAAC,GAACxB,CAAC,CAACoF,sBAAd;AAAsC,MAAIxE,CAAC,GAACY,CAAC,CAACgB,OAAR;AAAgBhB,EAAAA,CAAC,CAACgB,OAAF,GAAUS,CAAV;;AAAY,MAAG;AAAC,QAAIK,CAAC,GAACnB,KAAK,EAAX;AAAc9B,IAAAA,CAAC,CAACkB,CAAD,CAAD;AAAK,GAAvB,CAAuB,OAAMoC,CAAN,EAAQ;AAACqB,IAAAA,CAAC,CAACrB,CAAD,CAAD;AAAK,GAArC,SAA4C;AAAC,QAAIJ,CAAC,GAACrD,CAAN;AAAQA,IAAAA,CAAC,GAAC,EAAF;AAAKsB,IAAAA,CAAC,CAACgB,OAAF,GAAU5B,CAAV;AAAY;;AAAAA,EAAAA,CAAC,GAAClB,CAAC,CAACmC,KAAF,CAAQyB,CAAR,CAAF;AAAa,SAAOI,CAAC,CAAC9C,CAAD,EAAG2C,CAAH,EAAK7B,CAAL,CAAR;AAAgB;;AAAA,SAAS2D,CAAT,CAAWhF,CAAX,EAAa;AAACA,EAAAA,CAAC,CAACiF,OAAF,CAAU,UAAS/D,CAAT,EAAWC,CAAX,EAAa;AAAC,WAAOA,CAAC,CAACf,aAAF,GAAgBc,CAAvB;AAAyB,GAAjD;AAAmD;;AAAAgE,yBAAA,GAAqBL,CAArB;;AACxTK,2BAAA,GAA4B,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,MAAIC,CAAC,GAAC,IAAE2D,SAAS,CAAC1D,MAAZ,IAAoB,KAAK,CAAL,KAAS0D,SAAS,CAAC,CAAD,CAAtC,GAA0CA,SAAS,CAAC,CAAD,CAAnD,GAAuD,CAAC,CAA9D;AAAgE,UAAM5D,CAAN,KAAUA,CAAC,GAACvB,CAAC,CAACoF,sBAAd;AAAsC,MAAG,MAAI/E,CAAC,CAACqF,GAAN,IAAW,OAAKrF,CAAC,CAACqF,GAAlB,IAAuB,OAAKrF,CAAC,CAACqF,GAAjC,EAAqC,MAAMvD,KAAK,CAAC,mEAAD,CAAX;AAAiF/B,EAAAA,CAAC;AAAG,MAAIsB,CAAC,GAACrB,CAAC,CAACsF,IAAR;AAAA,MAAa/E,CAAC,GAACP,CAAC,CAACuF,aAAjB;;AAA+B,MAAGlE,CAAC,KAAGrB,CAAC,CAACwF,WAAN,IAAmBnE,CAAnB,IAAsBA,CAAC,CAACoE,YAA3B,EAAwC;AAAClF,IAAAA,CAAC,GAACf,CAAC,CAAC,EAAD,EAAIe,CAAJ,CAAH;AAAU,QAAI0C,CAAC,GAAC5B,CAAC,CAACoE,YAAR;;AAAqB,SAAIvC,CAAJ,IAASD,CAAT;AAAW,WAAK,CAAL,KAAS1C,CAAC,CAAC2C,CAAD,CAAV,KAAgB3C,CAAC,CAAC2C,CAAD,CAAD,GAAKD,CAAC,CAACC,CAAD,CAAtB;AAAX;AAAsC;;AAAAxB,EAAAA,CAAC,GAAC1B,CAAC,CAACkC,aAAJ;AAAkB,MAAIgB,CAAC,GAAC,IAAIjD,GAAJ,EAAN;;AAAc,MAAG;AAAC,SAAIgD,CAAC,GAACjD,CAAN,EAAQiD,CAAR,GAAW;AAAC,UAAG,OAAKA,CAAC,CAACoC,GAAV,EAAc;AAAC,YAAI/B,CAAC,GAACL,CAAC,CAACqC,IAAF,CAAOI,QAAb;AAAsBxC,QAAAA,CAAC,CAACyC,GAAF,CAAMrC,CAAN,MAC3eJ,CAAC,CAAC5B,GAAF,CAAMgC,CAAN,EAAQA,CAAC,CAAClD,aAAV,GAAyBkD,CAAC,CAAClD,aAAF,GAAgB6C,CAAC,CAACsC,aAAF,CAAgBtD,KADkb;AAC3a;;AAAAgB,MAAAA,CAAC,GAACA,CAAC,CAAC2C,MAAJ;AAAW;;AAAA,QAAG,OAAK5F,CAAC,CAACqF,GAAV,EAAc;AAAC,UAAI9B,CAAC,GAAClC,CAAC,CAACwE,MAAR;AAAexE,MAAAA,CAAC,GAACd,CAAF;AAAI,UAAIiD,CAAC,GAACxD,CAAC,CAAC8F,GAAR;AAAYxC,MAAAA,CAAC,GAACpC,CAAF;AAAI,UAAIuC,CAAC,GAACH,CAAC,CAACnB,OAAR;AAAgBmB,MAAAA,CAAC,CAACnB,OAAF,GAAUS,CAAV;;AAAY,UAAG;AAAC,YAAIc,CAAC,GAAC5B,KAAK,EAAX;AAAcyB,QAAAA,CAAC,CAAClC,CAAD,EAAGmC,CAAH,CAAD;AAAO,OAAzB,CAAyB,OAAMK,CAAN,EAAQ;AAACc,QAAAA,CAAC,CAACd,CAAD,CAAD;AAAK,OAAvC,SAA8C;AAAC,YAAIF,CAAC,GAAC9D,CAAN;AAAQA,QAAAA,CAAC,GAAC,EAAF;AAAKyD,QAAAA,CAAC,CAACnB,OAAF,GAAUsB,CAAV;AAAY;;AAAA,UAAIG,CAAC,GAACvE,CAAC,CAACmC,KAAF,CAAQkC,CAAR,CAAN;AAAiB,aAAOL,CAAC,CAACO,CAAD,EAAGD,CAAH,EAAKxC,CAAL,CAAR;AAAgB;;AAAA,WAAO0D,CAAC,CAACxD,CAAD,EAAGd,CAAH,EAAKW,CAAL,EAAOC,CAAP,CAAR;AAAkB,GADkK,SAC3J;AAACO,IAAAA,CAAC,GAAC,IAAF,EAAOsD,CAAC,CAAC9B,CAAD,CAAR;AAAY;AAAC,CAD1S;;;;;;;;ACvBa;;AAEb,IAAI6C,IAAJ,EAA2C;AACzCG,EAAAA,yCAAA;AACD,CAFD,MAEO;;;;;;;;;ACJP;;;;;;;;;AASa;;;;AAAA,IAAIhF,CAAC,GAACiF,MAAM,CAACC,GAAP,CAAW,eAAX,CAAN;AAAA,IAAkC7F,CAAC,GAAC4F,MAAM,CAACC,GAAP,CAAW,cAAX,CAApC;AAAA,IAA+D3C,CAAC,GAAC0C,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAjE;AAAA,IAA8FjF,CAAC,GAACgF,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAhG;AAAA,IAAgIvC,CAAC,GAACsC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAlI;AAAA,IAA+J/E,CAAC,GAAC8E,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAjK;AAAA,IAA8LnD,CAAC,GAACkD,MAAM,CAACC,GAAP,CAAW,eAAX,CAAhM;AAAA,IAA4N/G,CAAC,GAAC8G,MAAM,CAACC,GAAP,CAAW,sBAAX,CAA9N;AAAA,IAAiQ1C,CAAC,GAACyC,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAnQ;AAAA,IAAmSzC,CAAC,GAACwC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAArS;AAAA,IAAkUxC,CAAC,GAACuC,MAAM,CAACC,GAAP,CAAW,qBAAX,CAApU;AAAA,IAAsW7G,CAAC,GAAC4G,MAAM,CAACC,GAAP,CAAW,YAAX,CAAxW;AAAA,IAAiY5G,CAAC,GAAC2G,MAAM,CAACC,GAAP,CAAW,YAAX,CAAnY;AAAA,IAA4Z9C,CAAC,GAAC6C,MAAM,CAACC,GAAP,CAAW,iBAAX,CAA9Z;AAAA,IAA4b5C,CAAC,GAAC2C,MAAM,CAACC,GAAP,CAAW,aAAX,CAA9b;AAAA,IAAwd7C,CAAC,GAAC4C,MAAM,CAACC,GAAP,CAAW,wBAAX,CAA1d;;AACb,SAASzG,CAAT,CAAWK,CAAX,EAAa;AAAC,MAAG,qBAAkBA,CAAlB,KAAqB,SAAOA,CAA/B,EAAiC;AAAC,QAAIkD,CAAC,GAAClD,CAAC,CAACqG,QAAR;;AAAiB,YAAOnD,CAAP;AAAU,WAAKhC,CAAL;AAAO,gBAAOlB,CAAC,GAACA,CAAC,CAACsF,IAAJ,EAAStF,CAAhB;AAAmB,eAAKyD,CAAL;AAAO,eAAKI,CAAL;AAAO,eAAK1C,CAAL;AAAO,eAAKwC,CAAL;AAAO,eAAKC,CAAL;AAAO,mBAAO5D,CAAP;;AAAS;AAAQ,oBAAOA,CAAC,GAACA,CAAC,IAAEA,CAAC,CAACqG,QAAP,EAAgBrG,CAAvB;AAA0B,mBAAKX,CAAL;AAAO,mBAAK4D,CAAL;AAAO,mBAAKS,CAAL;AAAO,mBAAKlE,CAAL;AAAO,mBAAKD,CAAL;AAAO,mBAAK8B,CAAL;AAAO,uBAAOrB,CAAP;;AAAS;AAAQ,uBAAOkD,CAAP;AAArF;;AAAvE;;AAAsK,WAAK3C,CAAL;AAAO,eAAO2C,CAAP;AAA9L;AAAwM;AAAC;;AAAAgC,uBAAA,GAAwBjC,CAAxB;AAA0BiC,uBAAA,GAAwB7D,CAAxB;AAA0B6D,yBAAA,GAAgBhE,CAAhB;AAAkBgE,kBAAA,GAAmBxB,CAAnB;AAAqBwB,gBAAA,GAAiBzB,CAAjB;AAAmByB,YAAA,GAAa1F,CAAb;AAAe0F,YAAA,GAAa3F,CAAb;AAAe2F,cAAA,GAAe3E,CAAf;AAAiB2E,gBAAA,GAAiBrB,CAAjB;AAAmBqB,kBAAA,GAAmB/D,CAAnB;AAAqB+D,gBAAA,GAAiBvB,CAAjB;AAC/cuB,yBAAA,GAAqBtB,CAArB;;AAAuBsB,yBAAA,GAAoB,YAAU;AAAC,SAAM,CAAC,CAAP;AAAS,CAAxC;;AAAyCA,yBAAA,GAAyB,YAAU;AAAC,SAAM,CAAC,CAAP;AAAS,CAA7C;;AAA8CA,yBAAA,GAA0B,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOiD,CAAd;AAAgB,CAAtD;;AAAuDiC,yBAAA,GAA0B,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOqB,CAAd;AAAgB,CAAtD;;AAAuD6D,iBAAA,GAAkB,UAASlF,CAAT,EAAW;AAAC,SAAM,qBAAkBA,CAAlB,KAAqB,SAAOA,CAA5B,IAA+BA,CAAC,CAACqG,QAAF,KAAanF,CAAlD;AAAoD,CAAlF;;AAAmFgE,yBAAA,GAAqB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAO0D,CAAd;AAAgB,CAAjD;;AAAkDwB,yBAAA,GAAmB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOyD,CAAd;AAAgB,CAA/C;;AAAgDyB,yBAAA,GAAe,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOR,CAAd;AAAgB,CAA3C;;AAA4C0F,yBAAA,GAAe,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOT,CAAd;AAAgB,CAA3C;;AAC7b2F,yBAAA,GAAiB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOO,CAAd;AAAgB,CAA7C;;AAA8C2E,yBAAA,GAAmB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAO6D,CAAd;AAAgB,CAA/C;;AAAgDqB,yBAAA,GAAqB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAOmB,CAAd;AAAgB,CAAjD;;AAAkD+D,yBAAA,GAAmB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAO2D,CAAd;AAAgB,CAA/C;;AAAgDuB,yBAAA,GAAuB,UAASlF,CAAT,EAAW;AAAC,SAAOL,CAAC,CAACK,CAAD,CAAD,KAAO4D,CAAd;AAAgB,CAAnD;;AAChMsB,yBAAA,GAA2B,UAASlF,CAAT,EAAW;AAAC,SAAM,aAAW,OAAOA,CAAlB,IAAqB,eAAa,OAAOA,CAAzC,IAA4CA,CAAC,KAAGyD,CAAhD,IAAmDzD,CAAC,KAAG6D,CAAvD,IAA0D7D,CAAC,KAAGmB,CAA9D,IAAiEnB,CAAC,KAAG2D,CAArE,IAAwE3D,CAAC,KAAG4D,CAA5E,IAA+E5D,CAAC,KAAGsD,CAAnF,IAAsFtD,CAAC,KAAGwD,CAA1F,IAA6F,qBAAkBxD,CAAlB,KAAqB,SAAOA,CAA5B,KAAgCA,CAAC,CAACqG,QAAF,KAAa7G,CAAb,IAAgBQ,CAAC,CAACqG,QAAF,KAAa9G,CAA7B,IAAgCS,CAAC,CAACqG,QAAF,KAAahF,CAA7C,IAAgDrB,CAAC,CAACqG,QAAF,KAAapD,CAA7D,IAAgEjD,CAAC,CAACqG,QAAF,KAAa3C,CAA7E,IAAgF1D,CAAC,CAACqG,QAAF,KAAa9C,CAA7F,IAAgG,KAAK,CAAL,KAASvD,CAAC,CAACiI,WAA3I,CAA7F,GAAqP,CAAC,CAAtP,GAAwP,CAAC,CAA/P;AAAiQ,CAAxS;;AAAyS/C,cAAA,GAAevF,CAAf;;;;;;;;ACb5R;;AAEb,IAAIoG,IAAJ,EAA2C;AACzCG,EAAAA,uCAAA;AACD,CAFD,MAEO;;;;;;;;ACJP;;;;;;;;;AASa;;;;AAAA,IAAIxC,CAAC,GAACyC,MAAM,CAACC,GAAP,CAAW,eAAX,CAAN;AAAA,IAAkCxC,CAAC,GAACuC,MAAM,CAACC,GAAP,CAAW,cAAX,CAApC;AAAA,IAA+D7G,CAAC,GAAC4G,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAjE;AAAA,IAA8F5G,CAAC,GAAC2G,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAhG;AAAA,IAAgIlD,CAAC,GAACiD,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAlI;AAAA,IAA+J9C,CAAC,GAAC6C,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAjK;AAAA,IAA8L5C,CAAC,GAAC2C,MAAM,CAACC,GAAP,CAAW,eAAX,CAAhM;AAAA,IAA4N7C,CAAC,GAAC4C,MAAM,CAACC,GAAP,CAAW,sBAAX,CAA9N;AAAA,IAAiQzG,CAAC,GAACwG,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAnQ;AAAA,IAAmSvG,CAAC,GAACsG,MAAM,CAACC,GAAP,CAAW,gBAAX,CAArS;AAAA,IAAkUtG,CAAC,GAACqG,MAAM,CAACC,GAAP,CAAW,qBAAX,CAApU;AAAA,IAAsWrG,CAAC,GAACoG,MAAM,CAACC,GAAP,CAAW,YAAX,CAAxW;AAAA,IAAiYlG,CAAC,GAACiG,MAAM,CAACC,GAAP,CAAW,YAAX,CAAnY;AAAA,IAA4Z+B,EAAE,GAAChC,MAAM,CAACC,GAAP,CAAW,wBAAX,CAA/Z;AAAA,IAAocgC,EAAE,GAACjC,MAAM,CAACC,GAAP,CAAW,iBAAX,CAAvc;AAAA,IAAqeiC,EAAE,GACpflC,MAAM,CAACC,GAAP,CAAW,aAAX,CADa;AAAA,IACa1E,CAAC,GAACyE,MAAM,CAACC,GAAP,CAAW,qBAAX,CADf;AAAA,IACiDkC,EAAE,GAACnC,MAAM,CAACC,GAAP,CAAW,gBAAX,CADpD;AAAA,IACiFzE,CAAC,GAACwE,MAAM,CAACoC,QAD1F;;AACmG,SAASC,EAAT,CAAYxI,CAAZ,EAAc;AAAC,MAAG,SAAOA,CAAP,IAAU,qBAAkBA,CAAlB,CAAb,EAAiC,OAAO,IAAP;AAAYA,EAAAA,CAAC,GAAC2B,CAAC,IAAE3B,CAAC,CAAC2B,CAAD,CAAJ,IAAS3B,CAAC,CAAC,YAAD,CAAZ;AAA2B,SAAM,eAAa,OAAOA,CAApB,GAAsBA,CAAtB,GAAwB,IAA9B;AAAmC;;AAAA,IAAIwC,CAAC,GAAC;AAACiG,EAAAA,SAAS,EAAC,qBAAU;AAAC,WAAM,CAAC,CAAP;AAAS,GAA/B;AAAgCC,EAAAA,kBAAkB,EAAC,8BAAU,CAAE,CAA/D;AAAgEC,EAAAA,mBAAmB,EAAC,+BAAU,CAAE,CAAhG;AAAiGC,EAAAA,eAAe,EAAC,2BAAU,CAAE;AAA7H,CAAN;AAAA,IAAqIhG,CAAC,GAACnD,MAAM,CAACC,MAA9I;AAAA,IAAqJoD,CAAC,GAAC,EAAvJ;;AAA0J,SAASC,CAAT,CAAW/C,CAAX,EAAakB,CAAb,EAAeX,CAAf,EAAiB;AAAC,OAAKsI,KAAL,GAAW7I,CAAX;AAAa,OAAK8I,OAAL,GAAa5H,CAAb;AAAe,OAAK6H,IAAL,GAAUjG,CAAV;AAAY,OAAKkG,OAAL,GAAazI,CAAC,IAAEiC,CAAhB;AAAkB;;AAAAO,CAAC,CAACkG,SAAF,CAAYC,gBAAZ,GAA6B,EAA7B;;AAChdnG,CAAC,CAACkG,SAAF,CAAYE,QAAZ,GAAqB,UAASnJ,CAAT,EAAWkB,CAAX,EAAa;AAAC,MAAG,qBAAkBlB,CAAlB,KAAqB,eAAa,OAAOA,CAAzC,IAA4C,QAAMA,CAArD,EAAuD,MAAM8B,KAAK,CAAC,uHAAD,CAAX;AAAqI,OAAKkH,OAAL,CAAaJ,eAAb,CAA6B,IAA7B,EAAkC5I,CAAlC,EAAoCkB,CAApC,EAAsC,UAAtC;AAAkD,CAAjR;;AAAkR6B,CAAC,CAACkG,SAAF,CAAYG,WAAZ,GAAwB,UAASpJ,CAAT,EAAW;AAAC,OAAKgJ,OAAL,CAAaN,kBAAb,CAAgC,IAAhC,EAAqC1I,CAArC,EAAuC,aAAvC;AAAsD,CAA1F;;AAA2F,SAASmD,CAAT,GAAY,CAAE;;AAAAA,CAAC,CAAC8F,SAAF,GAAYlG,CAAC,CAACkG,SAAd;;AAAwB,SAAS5F,CAAT,CAAWrD,CAAX,EAAakB,CAAb,EAAeX,CAAf,EAAiB;AAAC,OAAKsI,KAAL,GAAW7I,CAAX;AAAa,OAAK8I,OAAL,GAAa5H,CAAb;AAAe,OAAK6H,IAAL,GAAUjG,CAAV;AAAY,OAAKkG,OAAL,GAAazI,CAAC,IAAEiC,CAAhB;AAAkB;;AAAA,IAAIgC,CAAC,GAACnB,CAAC,CAAC4F,SAAF,GAAY,IAAI9F,CAAJ,EAAlB;AAC/dqB,CAAC,CAAC6E,WAAF,GAAchG,CAAd;AAAgBT,CAAC,CAAC4B,CAAD,EAAGzB,CAAC,CAACkG,SAAL,CAAD;AAAiBzE,CAAC,CAAC8E,oBAAF,GAAuB,CAAC,CAAxB;AAA0B,IAAI3E,CAAC,GAAC4E,KAAK,CAACC,OAAZ;AAAA,IAAoB3E,CAAC,GAACpF,MAAM,CAACwJ,SAAP,CAAiBvG,cAAvC;AAAA,IAAsDsC,CAAC,GAAC;AAAC7C,EAAAA,OAAO,EAAC;AAAT,CAAxD;AAAA,IAAuEsH,CAAC,GAAC;AAACC,EAAAA,GAAG,EAAC,CAAC,CAAN;AAAQ5D,EAAAA,GAAG,EAAC,CAAC,CAAb;AAAe6D,EAAAA,MAAM,EAAC,CAAC,CAAvB;AAAyBC,EAAAA,QAAQ,EAAC,CAAC;AAAnC,CAAzE;;AAC3D,SAASC,CAAT,CAAW7J,CAAX,EAAakB,CAAb,EAAeX,CAAf,EAAiB;AAAC,MAAIkD,CAAJ;AAAA,MAAMtC,CAAC,GAAC,EAAR;AAAA,MAAW0C,CAAC,GAAC,IAAb;AAAA,MAAkBxC,CAAC,GAAC,IAApB;AAAyB,MAAG,QAAMH,CAAT,EAAW,KAAIuC,CAAJ,IAAS,KAAK,CAAL,KAASvC,CAAC,CAAC4E,GAAX,KAAiBzE,CAAC,GAACH,CAAC,CAAC4E,GAArB,GAA0B,KAAK,CAAL,KAAS5E,CAAC,CAACwI,GAAX,KAAiB7F,CAAC,GAAC,KAAG3C,CAAC,CAACwI,GAAxB,CAA1B,EAAuDxI,CAAhE;AAAkE2D,IAAAA,CAAC,CAACiF,IAAF,CAAO5I,CAAP,EAASuC,CAAT,KAAa,CAACgG,CAAC,CAAC/G,cAAF,CAAiBe,CAAjB,CAAd,KAAoCtC,CAAC,CAACsC,CAAD,CAAD,GAAKvC,CAAC,CAACuC,CAAD,CAA1C;AAAlE;AAAiH,MAAIR,CAAC,GAAC6B,SAAS,CAAC1D,MAAV,GAAiB,CAAvB;AAAyB,MAAG,MAAI6B,CAAP,EAAS9B,CAAC,CAAC4I,QAAF,GAAWxJ,CAAX,CAAT,KAA2B,IAAG,IAAE0C,CAAL,EAAO;AAAC,SAAI,IAAI5D,CAAC,GAACkK,KAAK,CAACtG,CAAD,CAAX,EAAeU,CAAC,GAAC,CAArB,EAAuBA,CAAC,GAACV,CAAzB,EAA2BU,CAAC,EAA5B;AAA+BtE,MAAAA,CAAC,CAACsE,CAAD,CAAD,GAAKmB,SAAS,CAACnB,CAAC,GAAC,CAAH,CAAd;AAA/B;;AAAmDxC,IAAAA,CAAC,CAAC4I,QAAF,GAAW1K,CAAX;AAAa;AAAA,MAAGW,CAAC,IAAEA,CAAC,CAACyF,YAAR,EAAqB,KAAIhC,CAAJ,IAASR,CAAC,GAACjD,CAAC,CAACyF,YAAJ,EAAiBxC,CAA1B;AAA4B,SAAK,CAAL,KAAS9B,CAAC,CAACsC,CAAD,CAAV,KAAgBtC,CAAC,CAACsC,CAAD,CAAD,GAAKR,CAAC,CAACQ,CAAD,CAAtB;AAA5B;AAAuD,SAAM;AAAC4C,IAAAA,QAAQ,EAAC3C,CAAV;AAAY4B,IAAAA,IAAI,EAACtF,CAAjB;AAAmB0J,IAAAA,GAAG,EAAC7F,CAAvB;AAAyBiC,IAAAA,GAAG,EAACzE,CAA7B;AAA+BwH,IAAAA,KAAK,EAAC1H,CAArC;AAAuC6I,IAAAA,MAAM,EAAChF,CAAC,CAAC7C;AAAhD,GAAN;AAA+D;;AAC9a,SAAS8H,EAAT,CAAYjK,CAAZ,EAAckB,CAAd,EAAgB;AAAC,SAAM;AAACmF,IAAAA,QAAQ,EAAC3C,CAAV;AAAY4B,IAAAA,IAAI,EAACtF,CAAC,CAACsF,IAAnB;AAAwBoE,IAAAA,GAAG,EAACxI,CAA5B;AAA8B4E,IAAAA,GAAG,EAAC9F,CAAC,CAAC8F,GAApC;AAAwC+C,IAAAA,KAAK,EAAC7I,CAAC,CAAC6I,KAAhD;AAAsDmB,IAAAA,MAAM,EAAChK,CAAC,CAACgK;AAA/D,GAAN;AAA6E;;AAAA,SAASE,CAAT,CAAWlK,CAAX,EAAa;AAAC,SAAM,qBAAkBA,CAAlB,KAAqB,SAAOA,CAA5B,IAA+BA,CAAC,CAACqG,QAAF,KAAa3C,CAAlD;AAAoD;;AAAA,SAASyG,MAAT,CAAgBnK,CAAhB,EAAkB;AAAC,MAAIkB,CAAC,GAAC;AAAC,SAAI,IAAL;AAAU,SAAI;AAAd,GAAN;AAA0B,SAAM,MAAIlB,CAAC,CAACoK,OAAF,CAAU,OAAV,EAAkB,UAAS7J,CAAT,EAAW;AAAC,WAAOW,CAAC,CAACX,CAAD,CAAR;AAAY,GAA1C,CAAV;AAAsD;;AAAA,IAAI8J,CAAC,GAAC,MAAN;;AAAa,SAASC,CAAT,CAAWtK,CAAX,EAAakB,CAAb,EAAe;AAAC,SAAM,qBAAkBlB,CAAlB,KAAqB,SAAOA,CAA5B,IAA+B,QAAMA,CAAC,CAAC0J,GAAvC,GAA2CS,MAAM,CAAC,KAAGnK,CAAC,CAAC0J,GAAN,CAAjD,GAA4DxI,CAAC,CAACqJ,QAAF,CAAW,EAAX,CAAlE;AAAiF;;AACjX,SAASC,CAAT,CAAWxK,CAAX,EAAakB,CAAb,EAAeX,CAAf,EAAiBkD,CAAjB,EAAmBtC,CAAnB,EAAqB;AAAC,MAAI0C,CAAC,WAAQ7D,CAAR,CAAL;;AAAe,MAAG,gBAAc6D,CAAd,IAAiB,cAAYA,CAAhC,EAAkC7D,CAAC,GAAC,IAAF;AAAO,MAAIqB,CAAC,GAAC,CAAC,CAAP;AAAS,MAAG,SAAOrB,CAAV,EAAYqB,CAAC,GAAC,CAAC,CAAH,CAAZ,KAAsB,QAAOwC,CAAP;AAAU,SAAK,QAAL;AAAc,SAAK,QAAL;AAAcxC,MAAAA,CAAC,GAAC,CAAC,CAAH;AAAK;;AAAM,SAAK,QAAL;AAAc,cAAOrB,CAAC,CAACqG,QAAT;AAAmB,aAAK3C,CAAL;AAAO,aAAKE,CAAL;AAAOvC,UAAAA,CAAC,GAAC,CAAC,CAAH;AAAjC;;AAA/D;AAAsG,MAAGA,CAAH,EAAK,OAAOA,CAAC,GAACrB,CAAF,EAAImB,CAAC,GAACA,CAAC,CAACE,CAAD,CAAP,EAAWrB,CAAC,GAAC,OAAKyD,CAAL,GAAO,MAAI6G,CAAC,CAACjJ,CAAD,EAAG,CAAH,CAAZ,GAAkBoC,CAA/B,EAAiCkB,CAAC,CAACxD,CAAD,CAAD,IAAMZ,CAAC,GAAC,EAAF,EAAK,QAAMP,CAAN,KAAUO,CAAC,GAACP,CAAC,CAACoK,OAAF,CAAUC,CAAV,EAAY,KAAZ,IAAmB,GAA/B,CAAL,EAAyCG,CAAC,CAACrJ,CAAD,EAAGD,CAAH,EAAKX,CAAL,EAAO,EAAP,EAAU,UAASoD,CAAT,EAAW;AAAC,WAAOA,CAAP;AAAS,GAA/B,CAAhD,IAAkF,QAAMxC,CAAN,KAAU+I,CAAC,CAAC/I,CAAD,CAAD,KAAOA,CAAC,GAAC8I,EAAE,CAAC9I,CAAD,EAAGZ,CAAC,IAAE,CAACY,CAAC,CAACuI,GAAH,IAAQrI,CAAC,IAAEA,CAAC,CAACqI,GAAF,KAAQvI,CAAC,CAACuI,GAArB,GAAyB,EAAzB,GAA4B,CAAC,KAAGvI,CAAC,CAACuI,GAAN,EAAWU,OAAX,CAAmBC,CAAnB,EAAqB,KAArB,IAA4B,GAA1D,CAAD,GAAgErK,CAAnE,CAAX,GAAkFkB,CAAC,CAACc,IAAF,CAAOb,CAAP,CAA5F,CAAnH,EAA0N,CAAjO;AAAmOE,EAAAA,CAAC,GAAC,CAAF;AAAIoC,EAAAA,CAAC,GAAC,OAAKA,CAAL,GAAO,GAAP,GAAWA,CAAC,GAAC,GAAf;AAAmB,MAAGkB,CAAC,CAAC3E,CAAD,CAAJ,EAAQ,KAAI,IAAIiD,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACjD,CAAC,CAACoB,MAAhB,EAAuB6B,CAAC,EAAxB,EAA2B;AAACY,IAAAA,CAAC,GACvf7D,CAAC,CAACiD,CAAD,CADqf;AACjf,QAAI5D,CAAC,GAACoE,CAAC,GAAC6G,CAAC,CAACzG,CAAD,EAAGZ,CAAH,CAAT;AAAe5B,IAAAA,CAAC,IAAEmJ,CAAC,CAAC3G,CAAD,EAAG3C,CAAH,EAAKX,CAAL,EAAOlB,CAAP,EAAS8B,CAAT,CAAJ;AAAgB,GAD8a,MACza,IAAG9B,CAAC,GAACmJ,EAAE,CAACxI,CAAD,CAAJ,EAAQ,eAAa,OAAOX,CAA/B,EAAiC,KAAIW,CAAC,GAACX,CAAC,CAACyK,IAAF,CAAO9J,CAAP,CAAF,EAAYiD,CAAC,GAAC,CAAlB,EAAoB,CAAC,CAACY,CAAC,GAAC7D,CAAC,CAAC4B,IAAF,EAAH,EAAa6I,IAAlC;AAAwC5G,IAAAA,CAAC,GAACA,CAAC,CAAC5B,KAAJ,EAAU5C,CAAC,GAACoE,CAAC,GAAC6G,CAAC,CAACzG,CAAD,EAAGZ,CAAC,EAAJ,CAAf,EAAuB5B,CAAC,IAAEmJ,CAAC,CAAC3G,CAAD,EAAG3C,CAAH,EAAKX,CAAL,EAAOlB,CAAP,EAAS8B,CAAT,CAA3B;AAAxC,GAAjC,MAAqH,IAAG,aAAW0C,CAAd,EAAgB,MAAM3C,CAAC,GAACwJ,MAAM,CAAC1K,CAAD,CAAR,EAAY8B,KAAK,CAAC,qDAAmD,sBAAoBZ,CAApB,GAAsB,uBAAqBzB,MAAM,CAACkL,IAAP,CAAY3K,CAAZ,EAAe4K,IAAf,CAAoB,IAApB,CAArB,GAA+C,GAArE,GAAyE1J,CAA5H,IAA+H,2EAAhI,CAAvB;AAAoO,SAAOG,CAAP;AAAS;;AAC3Z,SAASwJ,CAAT,CAAW7K,CAAX,EAAakB,CAAb,EAAeX,CAAf,EAAiB;AAAC,MAAG,QAAMP,CAAT,EAAW,OAAOA,CAAP;AAAS,MAAIyD,CAAC,GAAC,EAAN;AAAA,MAAStC,CAAC,GAAC,CAAX;AAAaqJ,EAAAA,CAAC,CAACxK,CAAD,EAAGyD,CAAH,EAAK,EAAL,EAAQ,EAAR,EAAW,UAASI,CAAT,EAAW;AAAC,WAAO3C,CAAC,CAAC4I,IAAF,CAAOvJ,CAAP,EAASsD,CAAT,EAAW1C,CAAC,EAAZ,CAAP;AAAuB,GAA9C,CAAD;AAAiD,SAAOsC,CAAP;AAAS;;AAAA,SAASqH,EAAT,CAAY9K,CAAZ,EAAc;AAAC,MAAG,CAAC,CAAD,KAAKA,CAAC,CAAC+K,OAAV,EAAkB;AAAC,QAAI7J,CAAC,GAAClB,CAAC,CAACgL,OAAR;AAAgB9J,IAAAA,CAAC,GAACA,CAAC,EAAH;AAAMA,IAAAA,CAAC,CAAC+J,IAAF,CAAO,UAAS1K,CAAT,EAAW;AAAC,UAAG,MAAIP,CAAC,CAAC+K,OAAN,IAAe,CAAC,CAAD,KAAK/K,CAAC,CAAC+K,OAAzB,EAAiC/K,CAAC,CAAC+K,OAAF,GAAU,CAAV,EAAY/K,CAAC,CAACgL,OAAF,GAAUzK,CAAtB;AAAwB,KAA5E,EAA6E,UAASA,CAAT,EAAW;AAAC,UAAG,MAAIP,CAAC,CAAC+K,OAAN,IAAe,CAAC,CAAD,KAAK/K,CAAC,CAAC+K,OAAzB,EAAiC/K,CAAC,CAAC+K,OAAF,GAAU,CAAV,EAAY/K,CAAC,CAACgL,OAAF,GAAUzK,CAAtB;AAAwB,KAAlJ;AAAoJ,KAAC,CAAD,KAAKP,CAAC,CAAC+K,OAAP,KAAiB/K,CAAC,CAAC+K,OAAF,GAAU,CAAV,EAAY/K,CAAC,CAACgL,OAAF,GAAU9J,CAAvC;AAA0C;;AAAA,MAAG,MAAIlB,CAAC,CAAC+K,OAAT,EAAiB,OAAO/K,CAAC,CAACgL,OAAF,CAAUE,OAAjB;AAAyB,QAAMlL,CAAC,CAACgL,OAAR;AAAiB;;AAAA,IAAIG,CAAC,GAAC;AAAChJ,EAAAA,OAAO,EAAC;AAAT,CAAN;;AAAqB,SAASiJ,EAAT,GAAa;AAAC,SAAO,IAAIC,OAAJ,EAAP;AAAmB;;AACpd,SAASC,CAAT,GAAY;AAAC,SAAM;AAACC,IAAAA,CAAC,EAAC,CAAH;AAAKhI,IAAAA,CAAC,EAAC,KAAK,CAAZ;AAAciI,IAAAA,CAAC,EAAC,IAAhB;AAAqBjM,IAAAA,CAAC,EAAC;AAAvB,GAAN;AAAmC;;AAAA,IAAIkM,CAAC,GAAC;AAACtJ,EAAAA,OAAO,EAAC;AAAT,CAAN;;AAAqB,SAASuJ,CAAT,CAAW1L,CAAX,EAAakB,CAAb,EAAe;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUwJ,aAAV,CAAwB3L,CAAxB,EAA0BkB,CAA1B,CAAP;AAAoC;;AAAA,IAAI0K,CAAC,GAAC;AAACC,EAAAA,UAAU,EAAC;AAAZ,CAAN;AAAA,IAAwBC,CAAC,GAAC,EAA1B;AAAA,IAA6BC,EAAE,GAAC;AAAChH,EAAAA,sBAAsB,EAAC0G,CAAxB;AAA0BO,EAAAA,iBAAiB,EAACb,CAA5C;AAA8Cc,EAAAA,uBAAuB,EAACL,CAAtE;AAAwEM,EAAAA,iBAAiB,EAAClH,CAA1F;AAA4FmH,EAAAA,eAAe,EAACL;AAA5G,CAAhC;AACzH5G,gBAAA,GAAiB;AAACR,EAAAA,GAAG,EAACmG,CAAL;AAAO5F,EAAAA,OAAO,EAAC,iBAASjF,CAAT,EAAWkB,CAAX,EAAaX,CAAb,EAAe;AAACsK,IAAAA,CAAC,CAAC7K,CAAD,EAAG,YAAU;AAACkB,MAAAA,CAAC,CAACmL,KAAF,CAAQ,IAAR,EAAavH,SAAb;AAAwB,KAAtC,EAAuCvE,CAAvC,CAAD;AAA2C,GAA1E;AAA2E+L,EAAAA,KAAK,EAAC,eAAStM,CAAT,EAAW;AAAC,QAAIkB,CAAC,GAAC,CAAN;AAAQ2J,IAAAA,CAAC,CAAC7K,CAAD,EAAG,YAAU;AAACkB,MAAAA,CAAC;AAAG,KAAlB,CAAD;AAAqB,WAAOA,CAAP;AAAS,GAAnI;AAAoIqL,EAAAA,OAAO,EAAC,iBAASvM,CAAT,EAAW;AAAC,WAAO6K,CAAC,CAAC7K,CAAD,EAAG,UAASkB,CAAT,EAAW;AAAC,aAAOA,CAAP;AAAS,KAAxB,CAAD,IAA4B,EAAnC;AAAsC,GAA9L;AAA+LsL,EAAAA,IAAI,EAAC,cAASxM,CAAT,EAAW;AAAC,QAAG,CAACkK,CAAC,CAAClK,CAAD,CAAL,EAAS,MAAM8B,KAAK,CAAC,uEAAD,CAAX;AAAqF,WAAO9B,CAAP;AAAS;AAAvT,CAAjB;AAA0UkF,iBAAA,GAAkBnC,CAAlB;AAAoBmC,gBAAA,GAAiB3F,CAAjB;AAAmB2F,gBAAA,GAAiBhC,CAAjB;AAAmBgC,qBAAA,GAAsB7B,CAAtB;AAAwB6B,kBAAA,GAAmB1F,CAAnB;AAAqB0F,gBAAA,GAAiBrF,CAAjB;AACjbqF,0DAAA,GAA2D6G,EAA3D;;AACA7G,aAAA,GAAc,UAASlF,CAAT,EAAW;AAAC,SAAO,YAAU;AAAC,QAAIkB,CAAC,GAACiK,CAAC,CAAChJ,OAAR;AAAgB,QAAG,CAACjB,CAAJ,EAAM,OAAOlB,CAAC,CAACqM,KAAF,CAAQ,IAAR,EAAavH,SAAb,CAAP;AAA+B,QAAIvE,CAAC,GAACW,CAAC,CAAC0L,eAAF,CAAkBxB,EAAlB,CAAN;AAA4BlK,IAAAA,CAAC,GAACX,CAAC,CAACkC,GAAF,CAAMzC,CAAN,CAAF;AAAW,SAAK,CAAL,KAASkB,CAAT,KAAaA,CAAC,GAACoK,CAAC,EAAH,EAAM/K,CAAC,CAACe,GAAF,CAAMtB,CAAN,EAAQkB,CAAR,CAAnB;AAA+BX,IAAAA,CAAC,GAAC,CAAF;;AAAI,SAAI,IAAIkD,CAAC,GAACqB,SAAS,CAAC1D,MAApB,EAA2Bb,CAAC,GAACkD,CAA7B,EAA+BlD,CAAC,EAAhC,EAAmC;AAAC,UAAIY,CAAC,GAAC2D,SAAS,CAACvE,CAAD,CAAf;;AAAmB,UAAG,eAAa,OAAOY,CAApB,IAAuB,qBAAkBA,CAAlB,KAAqB,SAAOA,CAAtD,EAAwD;AAAC,YAAI0C,CAAC,GAAC3C,CAAC,CAACsK,CAAR;AAAU,iBAAO3H,CAAP,KAAW3C,CAAC,CAACsK,CAAF,GAAI3H,CAAC,GAAC,IAAIwH,OAAJ,EAAjB;AAA8BnK,QAAAA,CAAC,GAAC2C,CAAC,CAACpB,GAAF,CAAMtB,CAAN,CAAF;AAAW,aAAK,CAAL,KAASD,CAAT,KAAaA,CAAC,GAACoK,CAAC,EAAH,EAAMzH,CAAC,CAACvC,GAAF,CAAMH,CAAN,EAAQD,CAAR,CAAnB;AAA+B,OAA3I,MAAgJ2C,CAAC,GAAC3C,CAAC,CAAC3B,CAAJ,EAAM,SAAOsE,CAAP,KAAW3C,CAAC,CAAC3B,CAAF,GAAIsE,CAAC,GAAC,IAAI5D,GAAJ,EAAjB,CAAN,EAAgCiB,CAAC,GAAC2C,CAAC,CAACpB,GAAF,CAAMtB,CAAN,CAAlC,EAA2C,KAAK,CAAL,KAASD,CAAT,KAAaA,CAAC,GAACoK,CAAC,EAAH,EAAMzH,CAAC,CAACvC,GAAF,CAAMH,CAAN,EAAQD,CAAR,CAAnB,CAA3C;AAA0E;;AAAA,QAAG,MAAIA,CAAC,CAACqK,CAAT,EAAW,OAAOrK,CAAC,CAACqC,CAAT;AAAW,QAAG,MAAIrC,CAAC,CAACqK,CAAT,EAAW,MAAMrK,CAAC,CAACqC,CAAR;;AAAU,QAAG;AAAC,UAAIlC,CAAC,GAACrB,CAAC,CAACqM,KAAF,CAAQ,IAAR,EACjfvH,SADif,CAAN;AAChevE,MAAAA,CAAC,GAACW,CAAF;AAAIX,MAAAA,CAAC,CAACgL,CAAF,GAAI,CAAJ;AAAM,aAAOhL,CAAC,CAACgD,CAAF,GAAIlC,CAAX;AAAa,KADqc,CACrc,OAAM4B,CAAN,EAAQ;AAAC,YAAM5B,CAAC,GAACH,CAAF,EAAIG,CAAC,CAACkK,CAAF,GAAI,CAAR,EAAUlK,CAAC,CAACkC,CAAF,GAAIN,CAAd,EAAgBA,CAAtB;AAAyB;AAAC,GAD3C;AAC4C,CADtE;;AAEAiC,oBAAA,GAAqB,UAASlF,CAAT,EAAWkB,CAAX,EAAaX,CAAb,EAAe;AAAC,MAAG,SAAOP,CAAP,IAAU,KAAK,CAAL,KAASA,CAAtB,EAAwB,MAAM8B,KAAK,CAAC,mFAAiF9B,CAAjF,GAAmF,GAApF,CAAX;AAAoG,MAAIyD,CAAC,GAACb,CAAC,CAAC,EAAD,EAAI5C,CAAC,CAAC6I,KAAN,CAAP;AAAA,MAAoB1H,CAAC,GAACnB,CAAC,CAAC0J,GAAxB;AAAA,MAA4B7F,CAAC,GAAC7D,CAAC,CAAC8F,GAAhC;AAAA,MAAoCzE,CAAC,GAACrB,CAAC,CAACgK,MAAxC;;AAA+C,MAAG,QAAM9I,CAAT,EAAW;AAAC,SAAK,CAAL,KAASA,CAAC,CAAC4E,GAAX,KAAiBjC,CAAC,GAAC3C,CAAC,CAAC4E,GAAJ,EAAQzE,CAAC,GAAC2D,CAAC,CAAC7C,OAA7B;AAAsC,SAAK,CAAL,KAASjB,CAAC,CAACwI,GAAX,KAAiBvI,CAAC,GAAC,KAAGD,CAAC,CAACwI,GAAxB;AAA6B,QAAG1J,CAAC,CAACsF,IAAF,IAAQtF,CAAC,CAACsF,IAAF,CAAOG,YAAlB,EAA+B,IAAIxC,CAAC,GAACjD,CAAC,CAACsF,IAAF,CAAOG,YAAb;;AAA0B,SAAIpG,CAAJ,IAAS6B,CAAT;AAAW2D,MAAAA,CAAC,CAACiF,IAAF,CAAO5I,CAAP,EAAS7B,CAAT,KAAa,CAACoK,CAAC,CAAC/G,cAAF,CAAiBrD,CAAjB,CAAd,KAAoCoE,CAAC,CAACpE,CAAD,CAAD,GAAK,KAAK,CAAL,KAAS6B,CAAC,CAAC7B,CAAD,CAAV,IAAe,KAAK,CAAL,KAAS4D,CAAxB,GAA0BA,CAAC,CAAC5D,CAAD,CAA3B,GAA+B6B,CAAC,CAAC7B,CAAD,CAAzE;AAAX;AAAyF;;AAAA,MAAIA,CAAC,GAACyF,SAAS,CAAC1D,MAAV,GAAiB,CAAvB;AAAyB,MAAG,MAAI/B,CAAP,EAASoE,CAAC,CAACsG,QAAF,GAAWxJ,CAAX,CAAT,KAA2B,IAAG,IAAElB,CAAL,EAAO;AAAC4D,IAAAA,CAAC,GAACsG,KAAK,CAAClK,CAAD,CAAP;;AAC7e,SAAI,IAAIsE,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACtE,CAAd,EAAgBsE,CAAC,EAAjB;AAAoBV,MAAAA,CAAC,CAACU,CAAD,CAAD,GAAKmB,SAAS,CAACnB,CAAC,GAAC,CAAH,CAAd;AAApB;;AAAwCF,IAAAA,CAAC,CAACsG,QAAF,GAAW9G,CAAX;AAAa;AAAA,SAAM;AAACoD,IAAAA,QAAQ,EAAC3C,CAAV;AAAY4B,IAAAA,IAAI,EAACtF,CAAC,CAACsF,IAAnB;AAAwBoE,IAAAA,GAAG,EAACvI,CAA5B;AAA8B2E,IAAAA,GAAG,EAACjC,CAAlC;AAAoCgF,IAAAA,KAAK,EAACpF,CAA1C;AAA4CuG,IAAAA,MAAM,EAAC3I;AAAnD,GAAN;AAA4D,CADjH;;AACkH6D,qBAAA,GAAsB,UAASlF,CAAT,EAAW;AAACA,EAAAA,CAAC,GAAC;AAACqG,IAAAA,QAAQ,EAAC7C,CAAV;AAAYpD,IAAAA,aAAa,EAACJ,CAA1B;AAA4B+M,IAAAA,cAAc,EAAC/M,CAA3C;AAA6CgN,IAAAA,YAAY,EAAC,CAA1D;AAA4DC,IAAAA,QAAQ,EAAC,IAArE;AAA0EC,IAAAA,QAAQ,EAAC,IAAnF;AAAwFC,IAAAA,aAAa,EAAC,IAAtG;AAA2GC,IAAAA,WAAW,EAAC;AAAvH,GAAF;AAA+HpN,EAAAA,CAAC,CAACiN,QAAF,GAAW;AAAC5G,IAAAA,QAAQ,EAAC/C,CAAV;AAAYoC,IAAAA,QAAQ,EAAC1F;AAArB,GAAX;AAAmC,SAAOA,CAAC,CAACkN,QAAF,GAAWlN,CAAlB;AAAoB,CAAxN;;AAAyNkF,qBAAA,GAAsB2E,CAAtB;;AAAwB3E,qBAAA,GAAsB,UAASlF,CAAT,EAAW;AAAC,MAAIkB,CAAC,GAAC2I,CAAC,CAAC0D,IAAF,CAAO,IAAP,EAAYvN,CAAZ,CAAN;AAAqBkB,EAAAA,CAAC,CAACoE,IAAF,GAAOtF,CAAP;AAAS,SAAOkB,CAAP;AAAS,CAAzE;;AAA0EgE,iBAAA,GAAkB,YAAU;AAAC,SAAM;AAAC/C,IAAAA,OAAO,EAAC;AAAT,GAAN;AAAqB,CAAlD;;AAC7a+C,2BAAA,GAA4B,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,MAAIX,CAAC,GAAC,CAAC,CAAP;;AAAS,MAAG,CAACuL,CAAC,CAAC9L,CAAD,CAAL,EAAS;AAACO,IAAAA,CAAC,GAAC,CAAC,CAAH;AAAK,QAAIkD,CAAC,GAAC;AAAC4C,MAAAA,QAAQ,EAAC9C,CAAV;AAAYnD,MAAAA,aAAa,EAACc,CAA1B;AAA4B6L,MAAAA,cAAc,EAAC7L,CAA3C;AAA6CiM,MAAAA,aAAa,EAACjM,CAA3D;AAA6D8L,MAAAA,YAAY,EAAC,CAA1E;AAA4EC,MAAAA,QAAQ,EAAC,IAArF;AAA0FC,MAAAA,QAAQ,EAAC,IAAnG;AAAwGE,MAAAA,WAAW,EAACpN;AAApH,KAAN;AAA6HyD,IAAAA,CAAC,CAACwJ,QAAF,GAAW;AAAC5G,MAAAA,QAAQ,EAAC/C,CAAV;AAAYoC,MAAAA,QAAQ,EAACjC;AAArB,KAAX;AAAmCqI,IAAAA,CAAC,CAAC9L,CAAD,CAAD,GAAKyD,CAAL;AAAO;;AAAAA,EAAAA,CAAC,GAACqI,CAAC,CAAC9L,CAAD,CAAH;AAAO,MAAGyD,CAAC,CAAC0J,aAAF,KAAkBzL,CAArB,EAAuB+B,CAAC,CAAC0J,aAAF,GAAgBjM,CAAhB,EAAkBuC,CAAC,CAACrD,aAAF,KAAkBsB,CAAlB,KAAsB+B,CAAC,CAACrD,aAAF,GAAgBc,CAAtC,CAAlB,EAA2DuC,CAAC,CAACsJ,cAAF,KAAmBrL,CAAnB,KAAuB+B,CAAC,CAACsJ,cAAF,GAAiB7L,CAAxC,CAA3D,CAAvB,KAAkI,IAAGX,CAAH,EAAK,MAAMuB,KAAK,CAAC,oBAAkB9B,CAAlB,GAAoB,kBAArB,CAAX;AAAoD,SAAOyD,CAAP;AAAS,CAApb;;AAAqbyB,mCAAA,GAAoC,UAASlF,CAAT,EAAW;AAAC,SAAOyL,CAAC,CAACtJ,OAAF,CAAUwL,cAAV,CAAyB3N,CAAzB,CAAP;AAAmC,CAAnF;;AACrbkF,kCAAA,GAAmC,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOwK,CAAC,CAAC1L,CAAD,EAAGkB,CAAH,CAAR;AAAc,CAA/D;;AAAgEgE,kBAAA,GAAmB,UAASlF,CAAT,EAAW;AAAC,SAAM;AAACqG,IAAAA,QAAQ,EAAC1G,CAAV;AAAYkG,IAAAA,MAAM,EAAC7F;AAAnB,GAAN;AAA4B,CAA3D;;AAA4DkF,sBAAA,GAAuBgF,CAAvB;;AAAyBhF,YAAA,GAAa,UAASlF,CAAT,EAAW;AAAC,SAAM;AAACqG,IAAAA,QAAQ,EAACnG,CAAV;AAAY8N,IAAAA,QAAQ,EAAC;AAACjD,MAAAA,OAAO,EAAC,CAAC,CAAV;AAAYC,MAAAA,OAAO,EAAChL;AAApB,KAArB;AAA4CiO,IAAAA,KAAK,EAACnD;AAAlD,GAAN;AAA4D,CAArF;;AAAsF5F,YAAA,GAAa,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAM;AAACmF,IAAAA,QAAQ,EAACtG,CAAV;AAAYuF,IAAAA,IAAI,EAACtF,CAAjB;AAAmBmO,IAAAA,OAAO,EAAC,KAAK,CAAL,KAASjN,CAAT,GAAW,IAAX,GAAgBA;AAA3C,GAAN;AAAoD,CAA/E;;AAAgFgE,uBAAA,GAAwB,UAASlF,CAAT,EAAW;AAAC,MAAIkB,CAAC,GAAC0K,CAAC,CAACC,UAAR;AAAmBD,EAAAA,CAAC,CAACC,UAAF,GAAa,EAAb;;AAAgB,MAAG;AAAC7L,IAAAA,CAAC;AAAG,GAAR,SAAe;AAAC4L,IAAAA,CAAC,CAACC,UAAF,GAAa3K,CAAb;AAAe;AAAC,CAAvG;;AAAwGgE,sBAAA,GAAuBmD,EAAvB;AAA0BnD,iCAAA,GAAkCiD,EAAlC;AAC7bjD,0BAAA,GAA2BkD,EAA3B;AAA8BlD,6BAAA,GAA8BpF,CAA9B;;AAAgCoF,oBAAA,GAAqB,YAAU;AAAC,QAAMpD,KAAK,CAAC,0DAAD,CAAX;AAAyE,CAAzG;;AAA0GoD,gCAAA,GAAiC,UAASlF,CAAT,EAAW;AAAC,MAAIkB,CAAC,GAACiK,CAAC,CAAChJ,OAAR;AAAgB,SAAOjB,CAAC,GAACA,CAAC,CAAC0L,eAAF,CAAkB5M,CAAlB,CAAD,GAAsBA,CAAC,EAA/B;AAAkC,CAA/F;;AAAgGkF,+BAAA,GAAgC,YAAU;AAAC,MAAIlF,CAAC,GAACmL,CAAC,CAAChJ,OAAR;AAAgB,SAAOnC,CAAC,GAACA,CAAC,CAAC4O,cAAF,EAAD,IAAqB5O,CAAC,GAAC,IAAI6O,eAAJ,EAAF,EAAsB7O,CAAC,CAAC8O,KAAF,CAAQhN,KAAK,CAAC,0FAAD,CAAb,CAAtB,EAAiI9B,CAAC,CAAC+O,MAAxJ,CAAR;AAAwK,CAAnO;;AACxQ7J,yBAAA,GAA0B,UAASlF,CAAT,EAAW;AAACA,EAAAA,CAAC,GAAC8B,KAAK,CAAC9B,CAAD,CAAP;AAAWA,EAAAA,CAAC,CAACqG,QAAF,GAAWiC,EAAX;AAAc,QAAMtI,CAAN;AAAS,CAAxE;;AAAyEkF,gCAAA,GAAiC,YAAU;AAAC,SAAOuG,CAAC,CAACtJ,OAAF,CAAU1B,eAAV,EAAP;AAAmC,CAA/E;;AAAgFyE,6BAAA,GAA8B,UAASlF,CAAT,EAAW;AAAC,SAAOyL,CAAC,CAACtJ,OAAF,CAAUlB,YAAV,CAAuBjB,CAAvB,CAAP;AAAiC,CAA3E;;AAA4EkF,WAAA,GAAY,UAASlF,CAAT,EAAW;AAAC,SAAOyL,CAAC,CAACtJ,OAAF,CAAUN,GAAV,CAAc7B,CAAd,CAAP;AAAwB,CAAhD;;AAAiDkF,mBAAA,GAAoB,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUpB,WAAV,CAAsBf,CAAtB,EAAwBkB,CAAxB,CAAP;AAAkC,CAApE;;AAAqEgE,kBAAA,GAAmB,UAASlF,CAAT,EAAW;AAAC,SAAOyL,CAAC,CAACtJ,OAAF,CAAUhC,UAAV,CAAqBH,CAArB,CAAP;AAA+B,CAA9D;;AAA+DkF,qBAAA,GAAsB,YAAU,CAAE,CAAlC;;AAC1ZA,wBAAA,GAAyB,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUG,gBAAV,CAA2BtC,CAA3B,EAA6BkB,CAA7B,CAAP;AAAuC,CAA9E;;AAA+EgE,iBAAA,GAAkB,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUvB,SAAV,CAAoBZ,CAApB,EAAsBkB,CAAtB,CAAP;AAAgC,CAAhE;;AAAiEgE,aAAA,GAAc,YAAU;AAAC,SAAOuG,CAAC,CAACtJ,OAAF,CAAUI,KAAV,EAAP;AAAyB,CAAlD;;AAAmD2C,2BAAA,GAA4B,UAASlF,CAAT,EAAWkB,CAAX,EAAaX,CAAb,EAAe;AAAC,SAAOkL,CAAC,CAACtJ,OAAF,CAAUtB,mBAAV,CAA8Bb,CAA9B,EAAgCkB,CAAhC,EAAkCX,CAAlC,CAAP;AAA4C,CAAxF;;AAAyF2E,0BAAA,GAA2B,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUxB,kBAAV,CAA6BX,CAA7B,EAA+BkB,CAA/B,CAAP;AAAyC,CAAlF;;AAAmFgE,uBAAA,GAAwB,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUzB,eAAV,CAA0BV,CAA1B,EAA4BkB,CAA5B,CAAP;AAAsC,CAA5E;;AAC/WgE,eAAA,GAAgB,UAASlF,CAAT,EAAWkB,CAAX,EAAa;AAAC,SAAOuK,CAAC,CAACtJ,OAAF,CAAUnB,OAAV,CAAkBhB,CAAlB,EAAoBkB,CAApB,CAAP;AAA8B,CAA5D;;AAA6DgE,qBAAA,GAAsBwG,CAAtB;;AAAwBxG,kBAAA,GAAmB,UAASlF,CAAT,EAAWkB,CAAX,EAAaX,CAAb,EAAe;AAAC,SAAOkL,CAAC,CAACtJ,OAAF,CAAU7B,UAAV,CAAqBN,CAArB,EAAuBkB,CAAvB,EAAyBX,CAAzB,CAAP;AAAmC,CAAtE;;AAAuE2E,cAAA,GAAe,UAASlF,CAAT,EAAW;AAAC,SAAOyL,CAAC,CAACtJ,OAAF,CAAU3B,MAAV,CAAiBR,CAAjB,CAAP;AAA2B,CAAtD;;AAAuDkF,gBAAA,GAAiB,UAASlF,CAAT,EAAW;AAAC,SAAOyL,CAAC,CAACtJ,OAAF,CAAU9B,QAAV,CAAmBL,CAAnB,CAAP;AAA6B,CAA1D;;AAA2DkF,4BAAA,GAA6B,UAASlF,CAAT,EAAWkB,CAAX,EAAaX,CAAb,EAAe;AAAC,SAAOkL,CAAC,CAACtJ,OAAF,CAAUE,oBAAV,CAA+BrC,CAA/B,EAAiCkB,CAAjC,EAAmCX,CAAnC,CAAP;AAA6C,CAA1F;;AAA2F2E,qBAAA,GAAsB,YAAU;AAAC,SAAOuG,CAAC,CAACtJ,OAAF,CAAUC,aAAV,EAAP;AAAiC,CAAlE;;AAAmE8C,eAAA,GAAgB,wCAAhB;;;;;;;;AC9B/Z;;AAEb,IAAIa,IAAJ,EAA2C;AACzCG,EAAAA,yCAAA;AACD,CAFD,MAEO;;;;;;;;;ACJN,WAASkJ,IAAT,EAAeC,OAAf,EAAwB;AACrB,eADqB,CAErB;;AAEA;;AACA,MAAI,IAAJ,EAAgD;AAC5CC,IAAAA,iCAA6B,CAAC,wBAAD,CAAvB,oCAAuCD,OAAvC;AAAA;AAAA;AAAA,kGAAN;AACH,GAFD,MAEO,EAIN;AACJ,CAZA,EAYC,IAZD,EAYO,SAASG,gBAAT,CAA0BC,UAA1B,EAAsC;AAC1C;;AAEA,MAAIC,2BAA2B,GAAG,cAAlC;AACA,MAAIC,sBAAsB,GAAG,gCAA7B;AACA,MAAIC,yBAAyB,GAAG,6BAAhC;AAEA,SAAO;AACH;;;;;;AAMApO,IAAAA,KAAK,EAAE,SAASqO,uBAAT,CAAiCC,KAAjC,EAAwC;AAC3C,UAAI,OAAOA,KAAK,CAACC,UAAb,KAA4B,WAA5B,IAA2C,OAAOD,KAAK,CAAC,iBAAD,CAAZ,KAAoC,WAAnF,EAAgG;AAC5F,eAAO,KAAKE,UAAL,CAAgBF,KAAhB,CAAP;AACH,OAFD,MAEO,IAAIA,KAAK,CAACG,KAAN,IAAeH,KAAK,CAACG,KAAN,CAAYC,KAAZ,CAAkBP,sBAAlB,CAAnB,EAA8D;AACjE,eAAO,KAAKQ,WAAL,CAAiBL,KAAjB,CAAP;AACH,OAFM,MAEA,IAAIA,KAAK,CAACG,KAAV,EAAiB;AACpB,eAAO,KAAKG,eAAL,CAAqBN,KAArB,CAAP;AACH,OAFM,MAEA;AACH,cAAM,IAAIhO,KAAJ,CAAU,iCAAV,CAAN;AACH;AACJ,KAjBE;AAmBH;AACAuO,IAAAA,eAAe,EAAE,SAASC,iCAAT,CAA2CC,OAA3C,EAAoD;AACjE;AACA,UAAIA,OAAO,CAACC,OAAR,CAAgB,GAAhB,MAAyB,CAAC,CAA9B,EAAiC;AAC7B,eAAO,CAACD,OAAD,CAAP;AACH;;AAED,UAAIE,MAAM,GAAG,8BAAb;AACA,UAAIC,KAAK,GAAGD,MAAM,CAACE,IAAP,CAAYJ,OAAO,CAACnG,OAAR,CAAgB,OAAhB,EAAyB,EAAzB,CAAZ,CAAZ;AACA,aAAO,CAACsG,KAAK,CAAC,CAAD,CAAN,EAAWA,KAAK,CAAC,CAAD,CAAL,IAAYE,SAAvB,EAAkCF,KAAK,CAAC,CAAD,CAAL,IAAYE,SAA9C,CAAP;AACH,KA7BE;AA+BHT,IAAAA,WAAW,EAAE,SAASU,6BAAT,CAAuCf,KAAvC,EAA8C;AACvD,UAAIgB,QAAQ,GAAGhB,KAAK,CAACG,KAAN,CAAYc,KAAZ,CAAkB,IAAlB,EAAwBC,MAAxB,CAA+B,UAASC,IAAT,EAAe;AACzD,eAAO,CAAC,CAACA,IAAI,CAACf,KAAL,CAAWP,sBAAX,CAAT;AACH,OAFc,EAEZ,IAFY,CAAf;AAIA,aAAOmB,QAAQ,CAACpM,GAAT,CAAa,UAASuM,IAAT,EAAe;AAC/B,YAAIA,IAAI,CAACT,OAAL,CAAa,QAAb,IAAyB,CAAC,CAA9B,EAAiC;AAC7B;AACAS,UAAAA,IAAI,GAAGA,IAAI,CAAC7G,OAAL,CAAa,YAAb,EAA2B,MAA3B,EAAmCA,OAAnC,CAA2C,8BAA3C,EAA2E,EAA3E,CAAP;AACH;;AACD,YAAI8G,aAAa,GAAGD,IAAI,CAAC7G,OAAL,CAAa,MAAb,EAAqB,EAArB,EAAyBA,OAAzB,CAAiC,cAAjC,EAAiD,GAAjD,CAApB,CAL+B,CAO/B;AACA;;AACA,YAAI+G,QAAQ,GAAGD,aAAa,CAAChB,KAAd,CAAoB,0BAApB,CAAf,CAT+B,CAW/B;;AACAgB,QAAAA,aAAa,GAAGC,QAAQ,GAAGD,aAAa,CAAC9G,OAAd,CAAsB+G,QAAQ,CAAC,CAAD,CAA9B,EAAmC,EAAnC,CAAH,GAA4CD,aAApE;AAEA,YAAIE,MAAM,GAAGF,aAAa,CAACH,KAAd,CAAoB,KAApB,EAA2BhN,KAA3B,CAAiC,CAAjC,CAAb,CAd+B,CAe/B;;AACA,YAAIsN,aAAa,GAAG,KAAKhB,eAAL,CAAqBc,QAAQ,GAAGA,QAAQ,CAAC,CAAD,CAAX,GAAiBC,MAAM,CAACpN,GAAP,EAA9C,CAApB;AACA,YAAIF,YAAY,GAAGsN,MAAM,CAACxG,IAAP,CAAY,GAAZ,KAAoBgG,SAAvC;AACA,YAAIrM,QAAQ,GAAG,CAAC,MAAD,EAAS,aAAT,EAAwBiM,OAAxB,CAAgCa,aAAa,CAAC,CAAD,CAA7C,IAAoD,CAAC,CAArD,GAAyDT,SAAzD,GAAqES,aAAa,CAAC,CAAD,CAAjG;AAEA,eAAO,IAAI5B,UAAJ,CAAe;AAClB3L,UAAAA,YAAY,EAAEA,YADI;AAElBS,UAAAA,QAAQ,EAAEA,QAFQ;AAGlBF,UAAAA,UAAU,EAAEgN,aAAa,CAAC,CAAD,CAHP;AAIlB/M,UAAAA,YAAY,EAAE+M,aAAa,CAAC,CAAD,CAJT;AAKlBrO,UAAAA,MAAM,EAAEiO;AALU,SAAf,CAAP;AAOH,OA3BM,EA2BJ,IA3BI,CAAP;AA4BH,KAhEE;AAkEHb,IAAAA,eAAe,EAAE,SAASkB,iCAAT,CAA2CxB,KAA3C,EAAkD;AAC/D,UAAIgB,QAAQ,GAAGhB,KAAK,CAACG,KAAN,CAAYc,KAAZ,CAAkB,IAAlB,EAAwBC,MAAxB,CAA+B,UAASC,IAAT,EAAe;AACzD,eAAO,CAACA,IAAI,CAACf,KAAL,CAAWN,yBAAX,CAAR;AACH,OAFc,EAEZ,IAFY,CAAf;AAIA,aAAOkB,QAAQ,CAACpM,GAAT,CAAa,UAASuM,IAAT,EAAe;AAC/B;AACA,YAAIA,IAAI,CAACT,OAAL,CAAa,SAAb,IAA0B,CAAC,CAA/B,EAAkC;AAC9BS,UAAAA,IAAI,GAAGA,IAAI,CAAC7G,OAAL,CAAa,kDAAb,EAAiE,KAAjE,CAAP;AACH;;AAED,YAAI6G,IAAI,CAACT,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAvB,IAA4BS,IAAI,CAACT,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAvD,EAA0D;AACtD;AACA,iBAAO,IAAIf,UAAJ,CAAe;AAClB3L,YAAAA,YAAY,EAAEmN;AADI,WAAf,CAAP;AAGH,SALD,MAKO;AACH,cAAIM,iBAAiB,GAAG,4BAAxB;AACA,cAAIC,OAAO,GAAGP,IAAI,CAACf,KAAL,CAAWqB,iBAAX,CAAd;AACA,cAAIzN,YAAY,GAAG0N,OAAO,IAAIA,OAAO,CAAC,CAAD,CAAlB,GAAwBA,OAAO,CAAC,CAAD,CAA/B,GAAqCZ,SAAxD;AACA,cAAIS,aAAa,GAAG,KAAKhB,eAAL,CAAqBY,IAAI,CAAC7G,OAAL,CAAamH,iBAAb,EAAgC,EAAhC,CAArB,CAApB;AAEA,iBAAO,IAAI9B,UAAJ,CAAe;AAClB3L,YAAAA,YAAY,EAAEA,YADI;AAElBS,YAAAA,QAAQ,EAAE8M,aAAa,CAAC,CAAD,CAFL;AAGlBhN,YAAAA,UAAU,EAAEgN,aAAa,CAAC,CAAD,CAHP;AAIlB/M,YAAAA,YAAY,EAAE+M,aAAa,CAAC,CAAD,CAJT;AAKlBrO,YAAAA,MAAM,EAAEiO;AALU,WAAf,CAAP;AAOH;AACJ,OAzBM,EAyBJ,IAzBI,CAAP;AA0BH,KAjGE;AAmGHjB,IAAAA,UAAU,EAAE,SAASyB,4BAAT,CAAsCtQ,CAAtC,EAAyC;AACjD,UAAI,CAACA,CAAC,CAAC4O,UAAH,IAAkB5O,CAAC,CAACuQ,OAAF,CAAUlB,OAAV,CAAkB,IAAlB,IAA0B,CAAC,CAA3B,IAClBrP,CAAC,CAACuQ,OAAF,CAAUX,KAAV,CAAgB,IAAhB,EAAsB3P,MAAtB,GAA+BD,CAAC,CAAC4O,UAAF,CAAagB,KAAb,CAAmB,IAAnB,EAAyB3P,MAD5D,EACqE;AACjE,eAAO,KAAKuQ,WAAL,CAAiBxQ,CAAjB,CAAP;AACH,OAHD,MAGO,IAAI,CAACA,CAAC,CAAC8O,KAAP,EAAc;AACjB,eAAO,KAAK2B,YAAL,CAAkBzQ,CAAlB,CAAP;AACH,OAFM,MAEA;AACH,eAAO,KAAK0Q,YAAL,CAAkB1Q,CAAlB,CAAP;AACH;AACJ,KA5GE;AA8GHwQ,IAAAA,WAAW,EAAE,SAASG,6BAAT,CAAuC3Q,CAAvC,EAA0C;AACnD,UAAI4Q,MAAM,GAAG,mCAAb;AACA,UAAIC,KAAK,GAAG7Q,CAAC,CAACuQ,OAAF,CAAUX,KAAV,CAAgB,IAAhB,CAAZ;AACA,UAAIkB,MAAM,GAAG,EAAb;;AAEA,WAAK,IAAIC,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAGH,KAAK,CAAC5Q,MAA5B,EAAoC8Q,CAAC,GAAGC,GAAxC,EAA6CD,CAAC,IAAI,CAAlD,EAAqD;AACjD,YAAIhC,KAAK,GAAG6B,MAAM,CAACpB,IAAP,CAAYqB,KAAK,CAACE,CAAD,CAAjB,CAAZ;;AACA,YAAIhC,KAAJ,EAAW;AACP+B,UAAAA,MAAM,CAACjQ,IAAP,CAAY,IAAIyN,UAAJ,CAAe;AACvBlL,YAAAA,QAAQ,EAAE2L,KAAK,CAAC,CAAD,CADQ;AAEvB7L,YAAAA,UAAU,EAAE6L,KAAK,CAAC,CAAD,CAFM;AAGvBlN,YAAAA,MAAM,EAAEgP,KAAK,CAACE,CAAD;AAHU,WAAf,CAAZ;AAKH;AACJ;;AAED,aAAOD,MAAP;AACH,KA/HE;AAiIHL,IAAAA,YAAY,EAAE,SAASQ,8BAAT,CAAwCjR,CAAxC,EAA2C;AACrD,UAAI4Q,MAAM,GAAG,4DAAb;AACA,UAAIC,KAAK,GAAG7Q,CAAC,CAAC4O,UAAF,CAAagB,KAAb,CAAmB,IAAnB,CAAZ;AACA,UAAIkB,MAAM,GAAG,EAAb;;AAEA,WAAK,IAAIC,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAGH,KAAK,CAAC5Q,MAA5B,EAAoC8Q,CAAC,GAAGC,GAAxC,EAA6CD,CAAC,IAAI,CAAlD,EAAqD;AACjD,YAAIhC,KAAK,GAAG6B,MAAM,CAACpB,IAAP,CAAYqB,KAAK,CAACE,CAAD,CAAjB,CAAZ;;AACA,YAAIhC,KAAJ,EAAW;AACP+B,UAAAA,MAAM,CAACjQ,IAAP,CACI,IAAIyN,UAAJ,CAAe;AACX3L,YAAAA,YAAY,EAAEoM,KAAK,CAAC,CAAD,CAAL,IAAYU,SADf;AAEXrM,YAAAA,QAAQ,EAAE2L,KAAK,CAAC,CAAD,CAFJ;AAGX7L,YAAAA,UAAU,EAAE6L,KAAK,CAAC,CAAD,CAHN;AAIXlN,YAAAA,MAAM,EAAEgP,KAAK,CAACE,CAAD;AAJF,WAAf,CADJ;AAQH;AACJ;;AAED,aAAOD,MAAP;AACH,KArJE;AAuJH;AACAJ,IAAAA,YAAY,EAAE,SAASQ,8BAAT,CAAwCvC,KAAxC,EAA+C;AACzD,UAAIgB,QAAQ,GAAGhB,KAAK,CAACG,KAAN,CAAYc,KAAZ,CAAkB,IAAlB,EAAwBC,MAAxB,CAA+B,UAASC,IAAT,EAAe;AACzD,eAAO,CAAC,CAACA,IAAI,CAACf,KAAL,CAAWR,2BAAX,CAAF,IAA6C,CAACuB,IAAI,CAACf,KAAL,CAAW,mBAAX,CAArD;AACH,OAFc,EAEZ,IAFY,CAAf;AAIA,aAAOY,QAAQ,CAACpM,GAAT,CAAa,UAASuM,IAAT,EAAe;AAC/B,YAAIG,MAAM,GAAGH,IAAI,CAACF,KAAL,CAAW,GAAX,CAAb;AACA,YAAIM,aAAa,GAAG,KAAKhB,eAAL,CAAqBe,MAAM,CAACpN,GAAP,EAArB,CAApB;AACA,YAAIsO,YAAY,GAAIlB,MAAM,CAACmB,KAAP,MAAkB,EAAtC;AACA,YAAIzO,YAAY,GAAGwO,YAAY,CAC1BlI,OADc,CACN,gCADM,EAC4B,IAD5B,EAEdA,OAFc,CAEN,YAFM,EAEQ,EAFR,KAEewG,SAFlC;AAGA,YAAI4B,OAAJ;;AACA,YAAIF,YAAY,CAACpC,KAAb,CAAmB,aAAnB,CAAJ,EAAuC;AACnCsC,UAAAA,OAAO,GAAGF,YAAY,CAAClI,OAAb,CAAqB,oBAArB,EAA2C,IAA3C,CAAV;AACH;;AACD,YAAIqI,IAAI,GAAID,OAAO,KAAK5B,SAAZ,IAAyB4B,OAAO,KAAK,2BAAtC,GACP5B,SADO,GACK4B,OAAO,CAACzB,KAAR,CAAc,GAAd,CADhB;AAGA,eAAO,IAAItB,UAAJ,CAAe;AAClB3L,UAAAA,YAAY,EAAEA,YADI;AAElB2O,UAAAA,IAAI,EAAEA,IAFY;AAGlBlO,UAAAA,QAAQ,EAAE8M,aAAa,CAAC,CAAD,CAHL;AAIlBhN,UAAAA,UAAU,EAAEgN,aAAa,CAAC,CAAD,CAJP;AAKlB/M,UAAAA,YAAY,EAAE+M,aAAa,CAAC,CAAD,CALT;AAMlBrO,UAAAA,MAAM,EAAEiO;AANU,SAAf,CAAP;AAQH,OAtBM,EAsBJ,IAtBI,CAAP;AAuBH;AApLE,GAAP;AAsLH,CAzMA,CAAD;;;;;;;;;ACAA;;;;;;;;;AASA;AACA,IAAIyB,eAAe,GAAG,qBAAtB;AAEA;;AACA,IAAIC,GAAG,GAAG,IAAI,CAAd;AAEA;;AACA,IAAIC,SAAS,GAAG,iBAAhB;AAEA;;AACA,IAAIC,MAAM,GAAG,YAAb;AAEA;;AACA,IAAIC,UAAU,GAAG,oBAAjB;AAEA;;AACA,IAAIC,UAAU,GAAG,YAAjB;AAEA;;AACA,IAAIC,SAAS,GAAG,aAAhB;AAEA;;AACA,IAAIC,YAAY,GAAGC,QAAnB;AAEA;;AACA,IAAIC,UAAU,GAAG,QAAOC,MAAP,yCAAOA,MAAP,MAAiB,QAAjB,IAA6BA,MAA7B,IAAuCA,MAAM,CAAC3T,MAAP,KAAkBA,MAAzD,IAAmE2T,MAApF;AAEA;;AACA,IAAIC,QAAQ,GAAG,QAAOC,IAAP,yCAAOA,IAAP,MAAe,QAAf,IAA2BA,IAA3B,IAAmCA,IAAI,CAAC7T,MAAL,KAAgBA,MAAnD,IAA6D6T,IAA5E;AAEA;;AACA,IAAIlE,IAAI,GAAG+D,UAAU,IAAIE,QAAd,IAA0BE,QAAQ,CAAC,aAAD,CAAR,EAArC;AAEA;;AACA,IAAIC,WAAW,GAAG/T,MAAM,CAACwJ,SAAzB;AAEA;;;;;;AAKA,IAAIwK,cAAc,GAAGD,WAAW,CAACjJ,QAAjC;AAEA;;AACA,IAAImJ,SAAS,GAAGC,IAAI,CAACC,GAArB;AAAA,IACIC,SAAS,GAAGF,IAAI,CAACG,GADrB;AAGA;;;;;;;;;;;;;;;;;AAgBA,IAAIC,GAAG,GAAG,SAANA,GAAM,GAAW;AACnB,SAAO3E,IAAI,CAAC4E,IAAL,CAAUD,GAAV,EAAP;AACD,CAFD;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAASE,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8BC,OAA9B,EAAuC;AACrC,MAAIC,QAAJ;AAAA,MACIC,QADJ;AAAA,MAEIC,OAFJ;AAAA,MAGItC,MAHJ;AAAA,MAIIuC,OAJJ;AAAA,MAKIC,YALJ;AAAA,MAMIC,cAAc,GAAG,CANrB;AAAA,MAOIC,OAAO,GAAG,KAPd;AAAA,MAQIC,MAAM,GAAG,KARb;AAAA,MASIC,QAAQ,GAAG,IATf;;AAWA,MAAI,OAAOX,IAAP,IAAe,UAAnB,EAA+B;AAC7B,UAAM,IAAIY,SAAJ,CAAcpC,eAAd,CAAN;AACD;;AACDyB,EAAAA,IAAI,GAAGY,QAAQ,CAACZ,IAAD,CAAR,IAAkB,CAAzB;;AACA,MAAIa,QAAQ,CAACZ,OAAD,CAAZ,EAAuB;AACrBO,IAAAA,OAAO,GAAG,CAAC,CAACP,OAAO,CAACO,OAApB;AACAC,IAAAA,MAAM,GAAG,aAAaR,OAAtB;AACAG,IAAAA,OAAO,GAAGK,MAAM,GAAGlB,SAAS,CAACqB,QAAQ,CAACX,OAAO,CAACG,OAAT,CAAR,IAA6B,CAA9B,EAAiCJ,IAAjC,CAAZ,GAAqDI,OAArE;AACAM,IAAAA,QAAQ,GAAG,cAAcT,OAAd,GAAwB,CAAC,CAACA,OAAO,CAACS,QAAlC,GAA6CA,QAAxD;AACD;;AAED,WAASI,UAAT,CAAoBC,IAApB,EAA0B;AACxB,QAAIzC,IAAI,GAAG4B,QAAX;AAAA,QACIc,OAAO,GAAGb,QADd;AAGAD,IAAAA,QAAQ,GAAGC,QAAQ,GAAG1D,SAAtB;AACA8D,IAAAA,cAAc,GAAGQ,IAAjB;AACAjD,IAAAA,MAAM,GAAGiC,IAAI,CAAC7H,KAAL,CAAW8I,OAAX,EAAoB1C,IAApB,CAAT;AACA,WAAOR,MAAP;AACD;;AAED,WAASmD,WAAT,CAAqBF,IAArB,EAA2B;AACzB;AACAR,IAAAA,cAAc,GAAGQ,IAAjB,CAFyB,CAGzB;;AACAV,IAAAA,OAAO,GAAGa,UAAU,CAACC,YAAD,EAAenB,IAAf,CAApB,CAJyB,CAKzB;;AACA,WAAOQ,OAAO,GAAGM,UAAU,CAACC,IAAD,CAAb,GAAsBjD,MAApC;AACD;;AAED,WAASsD,aAAT,CAAuBL,IAAvB,EAA6B;AAC3B,QAAIM,iBAAiB,GAAGN,IAAI,GAAGT,YAA/B;AAAA,QACIgB,mBAAmB,GAAGP,IAAI,GAAGR,cADjC;AAAA,QAEIzC,MAAM,GAAGkC,IAAI,GAAGqB,iBAFpB;AAIA,WAAOZ,MAAM,GAAGf,SAAS,CAAC5B,MAAD,EAASsC,OAAO,GAAGkB,mBAAnB,CAAZ,GAAsDxD,MAAnE;AACD;;AAED,WAASyD,YAAT,CAAsBR,IAAtB,EAA4B;AAC1B,QAAIM,iBAAiB,GAAGN,IAAI,GAAGT,YAA/B;AAAA,QACIgB,mBAAmB,GAAGP,IAAI,GAAGR,cADjC,CAD0B,CAI1B;AACA;AACA;;AACA,WAAQD,YAAY,KAAK7D,SAAjB,IAA+B4E,iBAAiB,IAAIrB,IAApD,IACLqB,iBAAiB,GAAG,CADf,IACsBZ,MAAM,IAAIa,mBAAmB,IAAIlB,OAD/D;AAED;;AAED,WAASe,YAAT,GAAwB;AACtB,QAAIJ,IAAI,GAAGnB,GAAG,EAAd;;AACA,QAAI2B,YAAY,CAACR,IAAD,CAAhB,EAAwB;AACtB,aAAOS,YAAY,CAACT,IAAD,CAAnB;AACD,KAJqB,CAKtB;;;AACAV,IAAAA,OAAO,GAAGa,UAAU,CAACC,YAAD,EAAeC,aAAa,CAACL,IAAD,CAA5B,CAApB;AACD;;AAED,WAASS,YAAT,CAAsBT,IAAtB,EAA4B;AAC1BV,IAAAA,OAAO,GAAG5D,SAAV,CAD0B,CAG1B;AACA;;AACA,QAAIiE,QAAQ,IAAIR,QAAhB,EAA0B;AACxB,aAAOY,UAAU,CAACC,IAAD,CAAjB;AACD;;AACDb,IAAAA,QAAQ,GAAGC,QAAQ,GAAG1D,SAAtB;AACA,WAAOqB,MAAP;AACD;;AAED,WAAS2D,MAAT,GAAkB;AAChB,QAAIpB,OAAO,KAAK5D,SAAhB,EAA2B;AACzBiF,MAAAA,YAAY,CAACrB,OAAD,CAAZ;AACD;;AACDE,IAAAA,cAAc,GAAG,CAAjB;AACAL,IAAAA,QAAQ,GAAGI,YAAY,GAAGH,QAAQ,GAAGE,OAAO,GAAG5D,SAA/C;AACD;;AAED,WAASkF,KAAT,GAAiB;AACf,WAAOtB,OAAO,KAAK5D,SAAZ,GAAwBqB,MAAxB,GAAiC0D,YAAY,CAAC5B,GAAG,EAAJ,CAApD;AACD;;AAED,WAASgC,SAAT,GAAqB;AACnB,QAAIb,IAAI,GAAGnB,GAAG,EAAd;AAAA,QACIiC,UAAU,GAAGN,YAAY,CAACR,IAAD,CAD7B;AAGAb,IAAAA,QAAQ,GAAGvP,SAAX;AACAwP,IAAAA,QAAQ,GAAG,IAAX;AACAG,IAAAA,YAAY,GAAGS,IAAf;;AAEA,QAAIc,UAAJ,EAAgB;AACd,UAAIxB,OAAO,KAAK5D,SAAhB,EAA2B;AACzB,eAAOwE,WAAW,CAACX,YAAD,CAAlB;AACD;;AACD,UAAIG,MAAJ,EAAY;AACV;AACAJ,QAAAA,OAAO,GAAGa,UAAU,CAACC,YAAD,EAAenB,IAAf,CAApB;AACA,eAAOc,UAAU,CAACR,YAAD,CAAjB;AACD;AACF;;AACD,QAAID,OAAO,KAAK5D,SAAhB,EAA2B;AACzB4D,MAAAA,OAAO,GAAGa,UAAU,CAACC,YAAD,EAAenB,IAAf,CAApB;AACD;;AACD,WAAOlC,MAAP;AACD;;AACD8D,EAAAA,SAAS,CAACH,MAAV,GAAmBA,MAAnB;AACAG,EAAAA,SAAS,CAACD,KAAV,GAAkBA,KAAlB;AACA,SAAOC,SAAP;AACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,SAASE,QAAT,CAAkB/B,IAAlB,EAAwBC,IAAxB,EAA8BC,OAA9B,EAAuC;AACrC,MAAIO,OAAO,GAAG,IAAd;AAAA,MACIE,QAAQ,GAAG,IADf;;AAGA,MAAI,OAAOX,IAAP,IAAe,UAAnB,EAA+B;AAC7B,UAAM,IAAIY,SAAJ,CAAcpC,eAAd,CAAN;AACD;;AACD,MAAIsC,QAAQ,CAACZ,OAAD,CAAZ,EAAuB;AACrBO,IAAAA,OAAO,GAAG,aAAaP,OAAb,GAAuB,CAAC,CAACA,OAAO,CAACO,OAAjC,GAA2CA,OAArD;AACAE,IAAAA,QAAQ,GAAG,cAAcT,OAAd,GAAwB,CAAC,CAACA,OAAO,CAACS,QAAlC,GAA6CA,QAAxD;AACD;;AACD,SAAOZ,QAAQ,CAACC,IAAD,EAAOC,IAAP,EAAa;AAC1B,eAAWQ,OADe;AAE1B,eAAWR,IAFe;AAG1B,gBAAYU;AAHc,GAAb,CAAf;AAKD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,SAASG,QAAT,CAAkB/S,KAAlB,EAAyB;AACvB,MAAIqD,IAAI,WAAUrD,KAAV,CAAR;;AACA,SAAO,CAAC,CAACA,KAAF,KAAYqD,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAAxC,CAAP;AACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAS4Q,YAAT,CAAsBjU,KAAtB,EAA6B;AAC3B,SAAO,CAAC,CAACA,KAAF,IAAW,QAAOA,KAAP,KAAgB,QAAlC;AACD;AAED;;;;;;;;;;;;;;;;;;;AAiBA,SAASkU,QAAT,CAAkBlU,KAAlB,EAAyB;AACvB,SAAO,QAAOA,KAAP,KAAgB,QAAhB,IACJiU,YAAY,CAACjU,KAAD,CAAZ,IAAuBwR,cAAc,CAAC3J,IAAf,CAAoB7H,KAApB,KAA8B2Q,SADxD;AAED;AAED;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAASmC,QAAT,CAAkB9S,KAAlB,EAAyB;AACvB,MAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;AAC5B,WAAOA,KAAP;AACD;;AACD,MAAIkU,QAAQ,CAAClU,KAAD,CAAZ,EAAqB;AACnB,WAAO0Q,GAAP;AACD;;AACD,MAAIqC,QAAQ,CAAC/S,KAAD,CAAZ,EAAqB;AACnB,QAAImU,KAAK,GAAG,OAAOnU,KAAK,CAACoU,OAAb,IAAwB,UAAxB,GAAqCpU,KAAK,CAACoU,OAAN,EAArC,GAAuDpU,KAAnE;AACAA,IAAAA,KAAK,GAAG+S,QAAQ,CAACoB,KAAD,CAAR,GAAmBA,KAAK,GAAG,EAA3B,GAAiCA,KAAzC;AACD;;AACD,MAAI,OAAOnU,KAAP,IAAgB,QAApB,EAA8B;AAC5B,WAAOA,KAAK,KAAK,CAAV,GAAcA,KAAd,GAAsB,CAACA,KAA9B;AACD;;AACDA,EAAAA,KAAK,GAAGA,KAAK,CAACmI,OAAN,CAAcyI,MAAd,EAAsB,EAAtB,CAAR;AACA,MAAIyD,QAAQ,GAAGvD,UAAU,CAACwD,IAAX,CAAgBtU,KAAhB,CAAf;AACA,SAAQqU,QAAQ,IAAItD,SAAS,CAACuD,IAAV,CAAetU,KAAf,CAAb,GACHgR,YAAY,CAAChR,KAAK,CAAC8B,KAAN,CAAY,CAAZ,CAAD,EAAiBuS,QAAQ,GAAG,CAAH,GAAO,CAAhC,CADT,GAEFxD,UAAU,CAACyD,IAAX,CAAgBtU,KAAhB,IAAyB0Q,GAAzB,GAA+B,CAAC1Q,KAFrC;AAGD;;AAEDiE,MAAM,CAAChB,OAAP,GAAiB+Q,QAAjB;;;;;;;;;ACtbA;;AAEA/P,MAAM,CAAChB,OAAP,GAAiBsR,QAAjB,EAEA;AACA;;AACA,IAAIvW,GAAG,GAAGX,mBAAO,CAAC,GAAD,CAAjB;;AACA,IAAImX,IAAI,GAAGnX,mBAAO,CAAC,EAAD,CAAlB,EAEA;;;AACA,IAAIoX,OAAO,GAAGpX,mBAAO,CAAC,GAAD,CAArB,EAEA;;;AACA,IAAIqX,SAAS,GAAG,OAAOxQ,MAAP,KAAkB,UAAlB,IAAgCJ,OAAO,CAACC,GAAR,CAAY4Q,0BAAZ,KAA2C,GAA3F;AACA,IAAIC,UAAJ;;AACA,IAAIF,SAAJ,EAAe;AACbE,EAAAA,UAAU,GAAG,oBAAUnN,GAAV,EAAe;AAC1B,WAAOvD,MAAM,CAACuD,GAAD,CAAb;AACD,GAFD;AAGD,CAJD,MAIO;AACLmN,EAAAA,UAAU,GAAG,oBAAUnN,GAAV,EAAe;AAC1B,WAAO,MAAMA,GAAb;AACD,GAFD;AAGD;;AAED,IAAIoN,GAAG,GAAGD,UAAU,CAAC,KAAD,CAApB;AACA,IAAIE,MAAM,GAAGF,UAAU,CAAC,QAAD,CAAvB;AACA,IAAIG,iBAAiB,GAAGH,UAAU,CAAC,kBAAD,CAAlC;AACA,IAAII,WAAW,GAAGJ,UAAU,CAAC,YAAD,CAA5B;AACA,IAAIK,OAAO,GAAGL,UAAU,CAAC,QAAD,CAAxB;AACA,IAAIM,OAAO,GAAGN,UAAU,CAAC,SAAD,CAAxB;AACA,IAAIO,iBAAiB,GAAGP,UAAU,CAAC,gBAAD,CAAlC;AACA,IAAIQ,QAAQ,GAAGR,UAAU,CAAC,SAAD,CAAzB;AACA,IAAIS,KAAK,GAAGT,UAAU,CAAC,OAAD,CAAtB;;AAEA,SAASU,WAAT,GAAwB;AAAE,SAAO,CAAP;AAAU,EAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASf,QAAT,CAAmBpC,OAAnB,EAA4B;AAC1B,MAAI,EAAE,gBAAgBoC,QAAlB,CAAJ,EAAiC;AAC/B,WAAO,IAAIA,QAAJ,CAAapC,OAAb,CAAP;AACD;;AAED,MAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/BA,IAAAA,OAAO,GAAG;AAAER,MAAAA,GAAG,EAAEQ;AAAP,KAAV;AACD;;AAED,MAAI,CAACA,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG,EAAV;AACD;;AAED,MAAIR,GAAG,GAAG,KAAKkD,GAAL,IAAY1C,OAAO,CAACR,GAA9B,CAb0B,CAc1B;;AACA,MAAI,CAACA,GAAD,IACA,EAAE,OAAOA,GAAP,KAAe,QAAjB,CADA,IAEAA,GAAG,IAAI,CAFX,EAEc;AACZ,SAAKkD,GAAL,IAAYU,QAAZ;AACD;;AAED,MAAIC,EAAE,GAAGrD,OAAO,CAAChT,MAAR,IAAkBmW,WAA3B;;AACA,MAAI,OAAOE,EAAP,KAAc,UAAlB,EAA8B;AAC5BA,IAAAA,EAAE,GAAGF,WAAL;AACD;;AACD,OAAKP,iBAAL,IAA0BS,EAA1B;AAEA,OAAKR,WAAL,IAAoB7C,OAAO,CAACsD,KAAR,IAAiB,KAArC;AACA,OAAKR,OAAL,IAAgB9C,OAAO,CAACuD,MAAR,IAAkB,CAAlC;AACA,OAAKR,OAAL,IAAgB/C,OAAO,CAACwD,OAAxB;AACA,OAAKR,iBAAL,IAA0BhD,OAAO,CAACyD,cAAR,IAA0B,KAApD;AACA,OAAKC,KAAL;AACD,EAED;;;AACArY,MAAM,CAACsY,cAAP,CAAsBvB,QAAQ,CAACvN,SAA/B,EAA0C,KAA1C,EAAiD;AAC/C3H,EAAAA,GAAG,EAAE,aAAU0W,EAAV,EAAc;AACjB,QAAI,CAACA,EAAD,IAAO,EAAE,OAAOA,EAAP,KAAc,QAAhB,CAAP,IAAoCA,EAAE,IAAI,CAA9C,EAAiD;AAC/CA,MAAAA,EAAE,GAAGR,QAAL;AACD;;AACD,SAAKV,GAAL,IAAYkB,EAAZ;AACAC,IAAAA,IAAI,CAAC,IAAD,CAAJ;AACD,GAP8C;AAQ/CxV,EAAAA,GAAG,EAAE,eAAY;AACf,WAAO,KAAKqU,GAAL,CAAP;AACD,GAV8C;AAW/CoB,EAAAA,UAAU,EAAE;AAXmC,CAAjD;AAcAzY,MAAM,CAACsY,cAAP,CAAsBvB,QAAQ,CAACvN,SAA/B,EAA0C,YAA1C,EAAwD;AACtD3H,EAAAA,GAAG,EAAE,aAAU6W,UAAV,EAAsB;AACzB,SAAKlB,WAAL,IAAoB,CAAC,CAACkB,UAAtB;AACD,GAHqD;AAItD1V,EAAAA,GAAG,EAAE,eAAY;AACf,WAAO,KAAKwU,WAAL,CAAP;AACD,GANqD;AAOtDiB,EAAAA,UAAU,EAAE;AAP0C,CAAxD;AAUAzY,MAAM,CAACsY,cAAP,CAAsBvB,QAAQ,CAACvN,SAA/B,EAA0C,QAA1C,EAAoD;AAClD3H,EAAAA,GAAG,EAAE,aAAU8W,EAAV,EAAc;AACjB,QAAI,CAACA,EAAD,IAAO,EAAE,OAAOA,EAAP,KAAc,QAAhB,CAAP,IAAoCA,EAAE,GAAG,CAA7C,EAAgD;AAC9CA,MAAAA,EAAE,GAAG,CAAL;AACD;;AACD,SAAKlB,OAAL,IAAgBkB,EAAhB;AACAH,IAAAA,IAAI,CAAC,IAAD,CAAJ;AACD,GAPiD;AAQlDxV,EAAAA,GAAG,EAAE,eAAY;AACf,WAAO,KAAKyU,OAAL,CAAP;AACD,GAViD;AAWlDgB,EAAAA,UAAU,EAAE;AAXsC,CAApD,GAcA;;AACAzY,MAAM,CAACsY,cAAP,CAAsBvB,QAAQ,CAACvN,SAA/B,EAA0C,kBAA1C,EAA8D;AAC5D3H,EAAAA,GAAG,EAAE,aAAU+W,EAAV,EAAc;AACjB,QAAI,OAAOA,EAAP,KAAc,UAAlB,EAA8B;AAC5BA,MAAAA,EAAE,GAAGd,WAAL;AACD;;AACD,QAAIc,EAAE,KAAK,KAAKrB,iBAAL,CAAX,EAAoC;AAClC,WAAKA,iBAAL,IAA0BqB,EAA1B;AACA,WAAKtB,MAAL,IAAe,CAAf;AACA,WAAKM,QAAL,EAAepS,OAAf,CAAuB,UAAUqT,GAAV,EAAe;AACpCA,QAAAA,GAAG,CAAClX,MAAJ,GAAa,KAAK4V,iBAAL,EAAwBsB,GAAG,CAACrW,KAA5B,EAAmCqW,GAAG,CAAC5O,GAAvC,CAAb;AACA,aAAKqN,MAAL,KAAgBuB,GAAG,CAAClX,MAApB;AACD,OAHD,EAGG,IAHH;AAID;;AACD6W,IAAAA,IAAI,CAAC,IAAD,CAAJ;AACD,GAd2D;AAe5DxV,EAAAA,GAAG,EAAE,eAAY;AAAE,WAAO,KAAKuU,iBAAL,CAAP;AAAgC,GAfS;AAgB5DkB,EAAAA,UAAU,EAAE;AAhBgD,CAA9D;AAmBAzY,MAAM,CAACsY,cAAP,CAAsBvB,QAAQ,CAACvN,SAA/B,EAA0C,QAA1C,EAAoD;AAClDxG,EAAAA,GAAG,EAAE,eAAY;AAAE,WAAO,KAAKsU,MAAL,CAAP;AAAqB,GADU;AAElDmB,EAAAA,UAAU,EAAE;AAFsC,CAApD;AAKAzY,MAAM,CAACsY,cAAP,CAAsBvB,QAAQ,CAACvN,SAA/B,EAA0C,WAA1C,EAAuD;AACrDxG,EAAAA,GAAG,EAAE,eAAY;AAAE,WAAO,KAAK4U,QAAL,EAAejW,MAAtB;AAA8B,GADI;AAErD8W,EAAAA,UAAU,EAAE;AAFyC,CAAvD;;AAKA1B,QAAQ,CAACvN,SAAT,CAAmBsP,QAAnB,GAA8B,UAAUC,EAAV,EAAcC,KAAd,EAAqB;AACjDA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;;AACA,OAAK,IAAIC,MAAM,GAAG,KAAKrB,QAAL,EAAesB,IAAjC,EAAuCD,MAAM,KAAK,IAAlD,GAAyD;AACvD,QAAIE,IAAI,GAAGF,MAAM,CAACE,IAAlB;AACAC,IAAAA,WAAW,CAAC,IAAD,EAAOL,EAAP,EAAWE,MAAX,EAAmBD,KAAnB,CAAX;AACAC,IAAAA,MAAM,GAAGE,IAAT;AACD;AACF,CAPD;;AASA,SAASC,WAAT,CAAsBvF,IAAtB,EAA4BkF,EAA5B,EAAgCM,IAAhC,EAAsCL,KAAtC,EAA6C;AAC3C,MAAIH,GAAG,GAAGQ,IAAI,CAAC7W,KAAf;;AACA,MAAI8W,OAAO,CAACzF,IAAD,EAAOgF,GAAP,CAAX,EAAwB;AACtBU,IAAAA,GAAG,CAAC1F,IAAD,EAAOwF,IAAP,CAAH;;AACA,QAAI,CAACxF,IAAI,CAAC2D,WAAD,CAAT,EAAwB;AACtBqB,MAAAA,GAAG,GAAG1H,SAAN;AACD;AACF;;AACD,MAAI0H,GAAJ,EAAS;AACPE,IAAAA,EAAE,CAAC1O,IAAH,CAAQ2O,KAAR,EAAeH,GAAG,CAACrW,KAAnB,EAA0BqW,GAAG,CAAC5O,GAA9B,EAAmC4J,IAAnC;AACD;AACF;;AAEDkD,QAAQ,CAACvN,SAAT,CAAmBhE,OAAnB,GAA6B,UAAUuT,EAAV,EAAcC,KAAd,EAAqB;AAChDA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;;AACA,OAAK,IAAIC,MAAM,GAAG,KAAKrB,QAAL,EAAe4B,IAAjC,EAAuCP,MAAM,KAAK,IAAlD,GAAyD;AACvD,QAAI9W,IAAI,GAAG8W,MAAM,CAAC9W,IAAlB;AACAiX,IAAAA,WAAW,CAAC,IAAD,EAAOL,EAAP,EAAWE,MAAX,EAAmBD,KAAnB,CAAX;AACAC,IAAAA,MAAM,GAAG9W,IAAT;AACD;AACF,CAPD;;AASA4U,QAAQ,CAACvN,SAAT,CAAmB0B,IAAnB,GAA0B,YAAY;AACpC,SAAO,KAAK0M,QAAL,EAAe9K,OAAf,GAAyB7H,GAAzB,CAA6B,UAAUrF,CAAV,EAAa;AAC/C,WAAOA,CAAC,CAACqK,GAAT;AACD,GAFM,EAEJ,IAFI,CAAP;AAGD,CAJD;;AAMA8M,QAAQ,CAACvN,SAAT,CAAmBiQ,MAAnB,GAA4B,YAAY;AACtC,SAAO,KAAK7B,QAAL,EAAe9K,OAAf,GAAyB7H,GAAzB,CAA6B,UAAUrF,CAAV,EAAa;AAC/C,WAAOA,CAAC,CAAC4C,KAAT;AACD,GAFM,EAEJ,IAFI,CAAP;AAGD,CAJD;;AAMAuU,QAAQ,CAACvN,SAAT,CAAmB6O,KAAnB,GAA2B,YAAY;AACrC,MAAI,KAAKX,OAAL,KACA,KAAKE,QAAL,CADA,IAEA,KAAKA,QAAL,EAAejW,MAFnB,EAE2B;AACzB,SAAKiW,QAAL,EAAepS,OAAf,CAAuB,UAAUqT,GAAV,EAAe;AACpC,WAAKnB,OAAL,EAAcmB,GAAG,CAAC5O,GAAlB,EAAuB4O,GAAG,CAACrW,KAA3B;AACD,KAFD,EAEG,IAFH;AAGD;;AAED,OAAKqV,KAAL,IAAc,IAAIrX,GAAJ,EAAd,CATqC,CASb;;AACxB,OAAKoX,QAAL,IAAiB,IAAIX,OAAJ,EAAjB,CAVqC,CAUN;;AAC/B,OAAKK,MAAL,IAAe,CAAf,CAXqC,CAWpB;AAClB,CAZD;;AAcAP,QAAQ,CAACvN,SAAT,CAAmBkQ,IAAnB,GAA0B,YAAY;AACpC,SAAO,KAAK9B,QAAL,EAAe3S,GAAf,CAAmB,UAAU4T,GAAV,EAAe;AACvC,QAAI,CAACS,OAAO,CAAC,IAAD,EAAOT,GAAP,CAAZ,EAAyB;AACvB,aAAO;AACLjZ,QAAAA,CAAC,EAAEiZ,GAAG,CAAC5O,GADF;AAELnG,QAAAA,CAAC,EAAE+U,GAAG,CAACrW,KAFF;AAGLd,QAAAA,CAAC,EAAEmX,GAAG,CAACvE,GAAJ,IAAWuE,GAAG,CAACX,MAAJ,IAAc,CAAzB;AAHE,OAAP;AAKD;AACF,GARM,EAQJ,IARI,EAQEpL,OARF,GAQYyE,MARZ,CAQmB,UAAU/N,CAAV,EAAa;AACrC,WAAOA,CAAP;AACD,GAVM,CAAP;AAWD,CAZD;;AAcAuT,QAAQ,CAACvN,SAAT,CAAmBmQ,OAAnB,GAA6B,YAAY;AACvC,SAAO,KAAK/B,QAAL,CAAP;AACD,CAFD;AAIA;;;AACAb,QAAQ,CAACvN,SAAT,CAAmBoQ,OAAnB,GAA6B,UAAUzV,CAAV,EAAa0V,IAAb,EAAmB;AAC9C,MAAIC,GAAG,GAAG,YAAV;AACA,MAAIC,MAAM,GAAG,KAAb;AAEA,MAAIC,EAAE,GAAG,KAAKxC,WAAL,CAAT;;AACA,MAAIwC,EAAJ,EAAQ;AACNF,IAAAA,GAAG,IAAI,sBAAP;AACAC,IAAAA,MAAM,GAAG,IAAT;AACD;;AAED,MAAI5F,GAAG,GAAG,KAAKkD,GAAL,CAAV;;AACA,MAAIlD,GAAG,IAAIA,GAAG,KAAK4D,QAAnB,EAA6B;AAC3B,QAAIgC,MAAJ,EAAY;AACVD,MAAAA,GAAG,IAAI,GAAP;AACD;;AACDA,IAAAA,GAAG,IAAI,cAAc9C,IAAI,CAAC4C,OAAL,CAAazF,GAAb,EAAkB0F,IAAlB,CAArB;AACAE,IAAAA,MAAM,GAAG,IAAT;AACD;;AAED,MAAI7B,MAAM,GAAG,KAAKT,OAAL,CAAb;;AACA,MAAIS,MAAJ,EAAY;AACV,QAAI6B,MAAJ,EAAY;AACVD,MAAAA,GAAG,IAAI,GAAP;AACD;;AACDA,IAAAA,GAAG,IAAI,iBAAiB9C,IAAI,CAAC4C,OAAL,CAAa1B,MAAb,EAAqB2B,IAArB,CAAxB;AACAE,IAAAA,MAAM,GAAG,IAAT;AACD;;AAED,MAAI/B,EAAE,GAAG,KAAKT,iBAAL,CAAT;;AACA,MAAIS,EAAE,IAAIA,EAAE,KAAKF,WAAjB,EAA8B;AAC5B,QAAIiC,MAAJ,EAAY;AACVD,MAAAA,GAAG,IAAI,GAAP;AACD;;AACDA,IAAAA,GAAG,IAAI,iBAAiB9C,IAAI,CAAC4C,OAAL,CAAa,KAAKtC,MAAL,CAAb,EAA2BuC,IAA3B,CAAxB;AACAE,IAAAA,MAAM,GAAG,IAAT;AACD;;AAED,MAAIE,QAAQ,GAAG,KAAf;AACA,OAAKrC,QAAL,EAAepS,OAAf,CAAuB,UAAU0U,IAAV,EAAgB;AACrC,QAAID,QAAJ,EAAc;AACZH,MAAAA,GAAG,IAAI,OAAP;AACD,KAFD,MAEO;AACL,UAAIC,MAAJ,EAAY;AACVD,QAAAA,GAAG,IAAI,KAAP;AACD;;AACDG,MAAAA,QAAQ,GAAG,IAAX;AACAH,MAAAA,GAAG,IAAI,MAAP;AACD;;AACD,QAAI7P,GAAG,GAAG+M,IAAI,CAAC4C,OAAL,CAAaM,IAAI,CAACjQ,GAAlB,EAAuBqH,KAAvB,CAA6B,IAA7B,EAAmCnG,IAAnC,CAAwC,MAAxC,CAAV;AACA,QAAIgP,GAAG,GAAG;AAAE3X,MAAAA,KAAK,EAAE0X,IAAI,CAAC1X;AAAd,KAAV;;AACA,QAAI0X,IAAI,CAAChC,MAAL,KAAgBA,MAApB,EAA4B;AAC1BiC,MAAAA,GAAG,CAACjC,MAAJ,GAAagC,IAAI,CAAChC,MAAlB;AACD;;AACD,QAAIF,EAAE,KAAKF,WAAX,EAAwB;AACtBqC,MAAAA,GAAG,CAACxY,MAAJ,GAAauY,IAAI,CAACvY,MAAlB;AACD;;AACD,QAAI2X,OAAO,CAAC,IAAD,EAAOY,IAAP,CAAX,EAAyB;AACvBC,MAAAA,GAAG,CAAClC,KAAJ,GAAY,IAAZ;AACD;;AAEDkC,IAAAA,GAAG,GAAGnD,IAAI,CAAC4C,OAAL,CAAaO,GAAb,EAAkBN,IAAlB,EAAwBvI,KAAxB,CAA8B,IAA9B,EAAoCnG,IAApC,CAAyC,MAAzC,CAAN;AACA2O,IAAAA,GAAG,IAAI7P,GAAG,GAAG,MAAN,GAAekQ,GAAtB;AACD,GAxBD;;AA0BA,MAAIF,QAAQ,IAAIF,MAAhB,EAAwB;AACtBD,IAAAA,GAAG,IAAI,IAAP;AACD;;AACDA,EAAAA,GAAG,IAAI,GAAP;AAEA,SAAOA,GAAP;AACD,CAtED;;AAwEA/C,QAAQ,CAACvN,SAAT,CAAmB3H,GAAnB,GAAyB,UAAUoI,GAAV,EAAezH,KAAf,EAAsB0V,MAAtB,EAA8B;AACrDA,EAAAA,MAAM,GAAGA,MAAM,IAAI,KAAKT,OAAL,CAAnB;AAEA,MAAInD,GAAG,GAAG4D,MAAM,GAAG3D,IAAI,CAACD,GAAL,EAAH,GAAgB,CAAhC;AACA,MAAI5B,GAAG,GAAG,KAAK6E,iBAAL,EAAwB/U,KAAxB,EAA+ByH,GAA/B,CAAV;;AAEA,MAAI,KAAK4N,KAAL,EAAY3R,GAAZ,CAAgB+D,GAAhB,CAAJ,EAA0B;AACxB,QAAIyI,GAAG,GAAG,KAAK2E,GAAL,CAAV,EAAqB;AACnBkC,MAAAA,GAAG,CAAC,IAAD,EAAO,KAAK1B,KAAL,EAAY7U,GAAZ,CAAgBiH,GAAhB,CAAP,CAAH;AACA,aAAO,KAAP;AACD;;AAED,QAAIoP,IAAI,GAAG,KAAKxB,KAAL,EAAY7U,GAAZ,CAAgBiH,GAAhB,CAAX;AACA,QAAIiQ,IAAI,GAAGb,IAAI,CAAC7W,KAAhB,CAPwB,CASxB;AACA;;AACA,QAAI,KAAKkV,OAAL,CAAJ,EAAmB;AACjB,UAAI,CAAC,KAAKC,iBAAL,CAAL,EAA8B;AAC5B,aAAKD,OAAL,EAAczN,GAAd,EAAmBiQ,IAAI,CAAC1X,KAAxB;AACD;AACF;;AAED0X,IAAAA,IAAI,CAAC5F,GAAL,GAAWA,GAAX;AACA4F,IAAAA,IAAI,CAAChC,MAAL,GAAcA,MAAd;AACAgC,IAAAA,IAAI,CAAC1X,KAAL,GAAaA,KAAb;AACA,SAAK8U,MAAL,KAAgB5E,GAAG,GAAGwH,IAAI,CAACvY,MAA3B;AACAuY,IAAAA,IAAI,CAACvY,MAAL,GAAc+Q,GAAd;AACA,SAAK1P,GAAL,CAASiH,GAAT;AACAuO,IAAAA,IAAI,CAAC,IAAD,CAAJ;AACA,WAAO,IAAP;AACD;;AAED,MAAIK,GAAG,GAAG,IAAIuB,KAAJ,CAAUnQ,GAAV,EAAezH,KAAf,EAAsBkQ,GAAtB,EAA2B4B,GAA3B,EAAgC4D,MAAhC,CAAV,CAjCqD,CAmCrD;;AACA,MAAIW,GAAG,CAAClX,MAAJ,GAAa,KAAK0V,GAAL,CAAjB,EAA4B;AAC1B,QAAI,KAAKK,OAAL,CAAJ,EAAmB;AACjB,WAAKA,OAAL,EAAczN,GAAd,EAAmBzH,KAAnB;AACD;;AACD,WAAO,KAAP;AACD;;AAED,OAAK8U,MAAL,KAAgBuB,GAAG,CAAClX,MAApB;AACA,OAAKiW,QAAL,EAAeyC,OAAf,CAAuBxB,GAAvB;AACA,OAAKhB,KAAL,EAAYhW,GAAZ,CAAgBoI,GAAhB,EAAqB,KAAK2N,QAAL,EAAe4B,IAApC;AACAhB,EAAAA,IAAI,CAAC,IAAD,CAAJ;AACA,SAAO,IAAP;AACD,CAhDD;;AAkDAzB,QAAQ,CAACvN,SAAT,CAAmBtD,GAAnB,GAAyB,UAAU+D,GAAV,EAAe;AACtC,MAAI,CAAC,KAAK4N,KAAL,EAAY3R,GAAZ,CAAgB+D,GAAhB,CAAL,EAA2B,OAAO,KAAP;AAC3B,MAAI4O,GAAG,GAAG,KAAKhB,KAAL,EAAY7U,GAAZ,CAAgBiH,GAAhB,EAAqBzH,KAA/B;;AACA,MAAI8W,OAAO,CAAC,IAAD,EAAOT,GAAP,CAAX,EAAwB;AACtB,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,CAPD;;AASA9B,QAAQ,CAACvN,SAAT,CAAmBxG,GAAnB,GAAyB,UAAUiH,GAAV,EAAe;AACtC,SAAOjH,GAAG,CAAC,IAAD,EAAOiH,GAAP,EAAY,IAAZ,CAAV;AACD,CAFD;;AAIA8M,QAAQ,CAACvN,SAAT,CAAmB8Q,IAAnB,GAA0B,UAAUrQ,GAAV,EAAe;AACvC,SAAOjH,GAAG,CAAC,IAAD,EAAOiH,GAAP,EAAY,KAAZ,CAAV;AACD,CAFD;;AAIA8M,QAAQ,CAACvN,SAAT,CAAmBjF,GAAnB,GAAyB,YAAY;AACnC,MAAI8U,IAAI,GAAG,KAAKzB,QAAL,EAAesB,IAA1B;AACA,MAAI,CAACG,IAAL,EAAW,OAAO,IAAP;AACXE,EAAAA,GAAG,CAAC,IAAD,EAAOF,IAAP,CAAH;AACA,SAAOA,IAAI,CAAC7W,KAAZ;AACD,CALD;;AAOAuU,QAAQ,CAACvN,SAAT,CAAmB+P,GAAnB,GAAyB,UAAUtP,GAAV,EAAe;AACtCsP,EAAAA,GAAG,CAAC,IAAD,EAAO,KAAK1B,KAAL,EAAY7U,GAAZ,CAAgBiH,GAAhB,CAAP,CAAH;AACD,CAFD;;AAIA8M,QAAQ,CAACvN,SAAT,CAAmB+Q,IAAnB,GAA0B,UAAUC,GAAV,EAAe;AACvC;AACA,OAAKnC,KAAL;AAEA,MAAI/D,GAAG,GAAGC,IAAI,CAACD,GAAL,EAAV,CAJuC,CAKvC;;AACA,OAAK,IAAIrQ,CAAC,GAAGuW,GAAG,CAAC7Y,MAAJ,GAAa,CAA1B,EAA6BsC,CAAC,IAAI,CAAlC,EAAqCA,CAAC,EAAtC,EAA0C;AACxC,QAAI4U,GAAG,GAAG2B,GAAG,CAACvW,CAAD,CAAb;AACA,QAAIwW,SAAS,GAAG5B,GAAG,CAACnX,CAAJ,IAAS,CAAzB;;AACA,QAAI+Y,SAAS,KAAK,CAAlB,EAAqB;AACnB;AACA,WAAK5Y,GAAL,CAASgX,GAAG,CAACjZ,CAAb,EAAgBiZ,GAAG,CAAC/U,CAApB;AACD,KAHD,MAGO;AACL,UAAIoU,MAAM,GAAGuC,SAAS,GAAGnG,GAAzB,CADK,CAEL;;AACA,UAAI4D,MAAM,GAAG,CAAb,EAAgB;AACd,aAAKrW,GAAL,CAASgX,GAAG,CAACjZ,CAAb,EAAgBiZ,GAAG,CAAC/U,CAApB,EAAuBoU,MAAvB;AACD;AACF;AACF;AACF,CApBD;;AAsBAnB,QAAQ,CAACvN,SAAT,CAAmBkR,KAAnB,GAA2B,YAAY;AACrC,MAAI7G,IAAI,GAAG,IAAX;AACA,OAAKgE,KAAL,EAAYrS,OAAZ,CAAoB,UAAUhD,KAAV,EAAiByH,GAAjB,EAAsB;AACxCjH,IAAAA,GAAG,CAAC6Q,IAAD,EAAO5J,GAAP,EAAY,KAAZ,CAAH;AACD,GAFD;AAGD,CALD;;AAOA,SAASjH,GAAT,CAAc6Q,IAAd,EAAoB5J,GAApB,EAAyB0Q,KAAzB,EAAgC;AAC9B,MAAItB,IAAI,GAAGxF,IAAI,CAACgE,KAAD,CAAJ,CAAY7U,GAAZ,CAAgBiH,GAAhB,CAAX;;AACA,MAAIoP,IAAJ,EAAU;AACR,QAAIR,GAAG,GAAGQ,IAAI,CAAC7W,KAAf;;AACA,QAAI8W,OAAO,CAACzF,IAAD,EAAOgF,GAAP,CAAX,EAAwB;AACtBU,MAAAA,GAAG,CAAC1F,IAAD,EAAOwF,IAAP,CAAH;AACA,UAAI,CAACxF,IAAI,CAAC2D,WAAD,CAAT,EAAwBqB,GAAG,GAAG1H,SAAN;AACzB,KAHD,MAGO;AACL,UAAIwJ,KAAJ,EAAW;AACT9G,QAAAA,IAAI,CAAC+D,QAAD,CAAJ,CAAegD,WAAf,CAA2BvB,IAA3B;AACD;AACF;;AACD,QAAIR,GAAJ,EAASA,GAAG,GAAGA,GAAG,CAACrW,KAAV;AACV;;AACD,SAAOqW,GAAP;AACD;;AAED,SAASS,OAAT,CAAkBzF,IAAlB,EAAwBgF,GAAxB,EAA6B;AAC3B,MAAI,CAACA,GAAD,IAAS,CAACA,GAAG,CAACX,MAAL,IAAe,CAACrE,IAAI,CAAC4D,OAAD,CAAjC,EAA6C;AAC3C,WAAO,KAAP;AACD;;AACD,MAAIQ,KAAK,GAAG,KAAZ;AACA,MAAI4C,IAAI,GAAGtG,IAAI,CAACD,GAAL,KAAauE,GAAG,CAACvE,GAA5B;;AACA,MAAIuE,GAAG,CAACX,MAAR,EAAgB;AACdD,IAAAA,KAAK,GAAG4C,IAAI,GAAGhC,GAAG,CAACX,MAAnB;AACD,GAFD,MAEO;AACLD,IAAAA,KAAK,GAAGpE,IAAI,CAAC4D,OAAD,CAAJ,IAAkBoD,IAAI,GAAGhH,IAAI,CAAC4D,OAAD,CAArC;AACD;;AACD,SAAOQ,KAAP;AACD;;AAED,SAASO,IAAT,CAAe3E,IAAf,EAAqB;AACnB,MAAIA,IAAI,CAACyD,MAAD,CAAJ,GAAezD,IAAI,CAACwD,GAAD,CAAvB,EAA8B;AAC5B,SAAK,IAAI4B,MAAM,GAAGpF,IAAI,CAAC+D,QAAD,CAAJ,CAAesB,IAAjC,EACErF,IAAI,CAACyD,MAAD,CAAJ,GAAezD,IAAI,CAACwD,GAAD,CAAnB,IAA4B4B,MAAM,KAAK,IADzC,GACgD;AAC9C;AACA;AACA;AACA,UAAIE,IAAI,GAAGF,MAAM,CAACE,IAAlB;AACAI,MAAAA,GAAG,CAAC1F,IAAD,EAAOoF,MAAP,CAAH;AACAA,MAAAA,MAAM,GAAGE,IAAT;AACD;AACF;AACF;;AAED,SAASI,GAAT,CAAc1F,IAAd,EAAoBwF,IAApB,EAA0B;AACxB,MAAIA,IAAJ,EAAU;AACR,QAAIR,GAAG,GAAGQ,IAAI,CAAC7W,KAAf;;AACA,QAAIqR,IAAI,CAAC6D,OAAD,CAAR,EAAmB;AACjB7D,MAAAA,IAAI,CAAC6D,OAAD,CAAJ,CAAcmB,GAAG,CAAC5O,GAAlB,EAAuB4O,GAAG,CAACrW,KAA3B;AACD;;AACDqR,IAAAA,IAAI,CAACyD,MAAD,CAAJ,IAAgBuB,GAAG,CAAClX,MAApB;AACAkS,IAAAA,IAAI,CAACgE,KAAD,CAAJ,CAAYiD,MAAZ,CAAmBjC,GAAG,CAAC5O,GAAvB;AACA4J,IAAAA,IAAI,CAAC+D,QAAD,CAAJ,CAAemD,UAAf,CAA0B1B,IAA1B;AACD;AACF,EAED;;;AACA,SAASe,KAAT,CAAgBnQ,GAAhB,EAAqBzH,KAArB,EAA4Bb,MAA5B,EAAoC2S,GAApC,EAAyC4D,MAAzC,EAAiD;AAC/C,OAAKjO,GAAL,GAAWA,GAAX;AACA,OAAKzH,KAAL,GAAaA,KAAb;AACA,OAAKb,MAAL,GAAcA,MAAd;AACA,OAAK2S,GAAL,GAAWA,GAAX;AACA,OAAK4D,MAAL,GAAcA,MAAM,IAAI,CAAxB;AACD;;;;;;;ACndD;AACA,IAAI5R,OAAO,GAAGG,MAAM,CAAChB,OAAP,GAAiB,EAA/B,EAEA;AACA;AACA;AACA;;AAEA,IAAIuV,gBAAJ;AACA,IAAIC,kBAAJ;;AAEA,SAASC,gBAAT,GAA4B;AACxB,QAAM,IAAI7Y,KAAJ,CAAU,iCAAV,CAAN;AACH;;AACD,SAAS8Y,mBAAT,GAAgC;AAC5B,QAAM,IAAI9Y,KAAJ,CAAU,mCAAV,CAAN;AACH;;AACA,aAAY;AACT,MAAI;AACA,QAAI,OAAOuT,UAAP,KAAsB,UAA1B,EAAsC;AAClCoF,MAAAA,gBAAgB,GAAGpF,UAAnB;AACH,KAFD,MAEO;AACHoF,MAAAA,gBAAgB,GAAGE,gBAAnB;AACH;AACJ,GAND,CAME,OAAOxZ,CAAP,EAAU;AACRsZ,IAAAA,gBAAgB,GAAGE,gBAAnB;AACH;;AACD,MAAI;AACA,QAAI,OAAO9E,YAAP,KAAwB,UAA5B,EAAwC;AACpC6E,MAAAA,kBAAkB,GAAG7E,YAArB;AACH,KAFD,MAEO;AACH6E,MAAAA,kBAAkB,GAAGE,mBAArB;AACH;AACJ,GAND,CAME,OAAOzZ,CAAP,EAAU;AACRuZ,IAAAA,kBAAkB,GAAGE,mBAArB;AACH;AACJ,CAnBA,GAAD;;AAoBA,SAASC,UAAT,CAAoBC,GAApB,EAAyB;AACrB,MAAIL,gBAAgB,KAAKpF,UAAzB,EAAqC;AACjC;AACA,WAAOA,UAAU,CAACyF,GAAD,EAAM,CAAN,CAAjB;AACH,GAJoB,CAKrB;;;AACA,MAAI,CAACL,gBAAgB,KAAKE,gBAArB,IAAyC,CAACF,gBAA3C,KAAgEpF,UAApE,EAAgF;AAC5EoF,IAAAA,gBAAgB,GAAGpF,UAAnB;AACA,WAAOA,UAAU,CAACyF,GAAD,EAAM,CAAN,CAAjB;AACH;;AACD,MAAI;AACA;AACA,WAAOL,gBAAgB,CAACK,GAAD,EAAM,CAAN,CAAvB;AACH,GAHD,CAGE,OAAM3Z,CAAN,EAAQ;AACN,QAAI;AACA;AACA,aAAOsZ,gBAAgB,CAAC3Q,IAAjB,CAAsB,IAAtB,EAA4BgR,GAA5B,EAAiC,CAAjC,CAAP;AACH,KAHD,CAGE,OAAM3Z,CAAN,EAAQ;AACN;AACA,aAAOsZ,gBAAgB,CAAC3Q,IAAjB,CAAsB,IAAtB,EAA4BgR,GAA5B,EAAiC,CAAjC,CAAP;AACH;AACJ;AAGJ;;AACD,SAASC,eAAT,CAAyBC,MAAzB,EAAiC;AAC7B,MAAIN,kBAAkB,KAAK7E,YAA3B,EAAyC;AACrC;AACA,WAAOA,YAAY,CAACmF,MAAD,CAAnB;AACH,GAJ4B,CAK7B;;;AACA,MAAI,CAACN,kBAAkB,KAAKE,mBAAvB,IAA8C,CAACF,kBAAhD,KAAuE7E,YAA3E,EAAyF;AACrF6E,IAAAA,kBAAkB,GAAG7E,YAArB;AACA,WAAOA,YAAY,CAACmF,MAAD,CAAnB;AACH;;AACD,MAAI;AACA;AACA,WAAON,kBAAkB,CAACM,MAAD,CAAzB;AACH,GAHD,CAGE,OAAO7Z,CAAP,EAAS;AACP,QAAI;AACA;AACA,aAAOuZ,kBAAkB,CAAC5Q,IAAnB,CAAwB,IAAxB,EAA8BkR,MAA9B,CAAP;AACH,KAHD,CAGE,OAAO7Z,CAAP,EAAS;AACP;AACA;AACA,aAAOuZ,kBAAkB,CAAC5Q,IAAnB,CAAwB,IAAxB,EAA8BkR,MAA9B,CAAP;AACH;AACJ;AAIJ;;AACD,IAAIC,KAAK,GAAG,EAAZ;AACA,IAAIC,QAAQ,GAAG,KAAf;AACA,IAAIC,YAAJ;AACA,IAAIC,UAAU,GAAG,CAAC,CAAlB;;AAEA,SAASC,eAAT,GAA2B;AACvB,MAAI,CAACH,QAAD,IAAa,CAACC,YAAlB,EAAgC;AAC5B;AACH;;AACDD,EAAAA,QAAQ,GAAG,KAAX;;AACA,MAAIC,YAAY,CAAC/Z,MAAjB,EAAyB;AACrB6Z,IAAAA,KAAK,GAAGE,YAAY,CAACG,MAAb,CAAoBL,KAApB,CAAR;AACH,GAFD,MAEO;AACHG,IAAAA,UAAU,GAAG,CAAC,CAAd;AACH;;AACD,MAAIH,KAAK,CAAC7Z,MAAV,EAAkB;AACdma,IAAAA,UAAU;AACb;AACJ;;AAED,SAASA,UAAT,GAAsB;AAClB,MAAIL,QAAJ,EAAc;AACV;AACH;;AACD,MAAIM,OAAO,GAAGX,UAAU,CAACQ,eAAD,CAAxB;AACAH,EAAAA,QAAQ,GAAG,IAAX;AAEA,MAAI/I,GAAG,GAAG8I,KAAK,CAAC7Z,MAAhB;;AACA,SAAM+Q,GAAN,EAAW;AACPgJ,IAAAA,YAAY,GAAGF,KAAf;AACAA,IAAAA,KAAK,GAAG,EAAR;;AACA,WAAO,EAAEG,UAAF,GAAejJ,GAAtB,EAA2B;AACvB,UAAIgJ,YAAJ,EAAkB;AACdA,QAAAA,YAAY,CAACC,UAAD,CAAZ,CAAyBK,GAAzB;AACH;AACJ;;AACDL,IAAAA,UAAU,GAAG,CAAC,CAAd;AACAjJ,IAAAA,GAAG,GAAG8I,KAAK,CAAC7Z,MAAZ;AACH;;AACD+Z,EAAAA,YAAY,GAAG,IAAf;AACAD,EAAAA,QAAQ,GAAG,KAAX;AACAH,EAAAA,eAAe,CAACS,OAAD,CAAf;AACH;;AAEDzV,OAAO,CAAC2V,QAAR,GAAmB,UAAUZ,GAAV,EAAe;AAC9B,MAAIrI,IAAI,GAAG,IAAIlJ,KAAJ,CAAUzE,SAAS,CAAC1D,MAAV,GAAmB,CAA7B,CAAX;;AACA,MAAI0D,SAAS,CAAC1D,MAAV,GAAmB,CAAvB,EAA0B;AACtB,SAAK,IAAI8Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpN,SAAS,CAAC1D,MAA9B,EAAsC8Q,CAAC,EAAvC,EAA2C;AACvCO,MAAAA,IAAI,CAACP,CAAC,GAAG,CAAL,CAAJ,GAAcpN,SAAS,CAACoN,CAAD,CAAvB;AACH;AACJ;;AACD+I,EAAAA,KAAK,CAACjZ,IAAN,CAAW,IAAI2Z,IAAJ,CAASb,GAAT,EAAcrI,IAAd,CAAX;;AACA,MAAIwI,KAAK,CAAC7Z,MAAN,KAAiB,CAAjB,IAAsB,CAAC8Z,QAA3B,EAAqC;AACjCL,IAAAA,UAAU,CAACU,UAAD,CAAV;AACH;AACJ,CAXD,EAaA;;;AACA,SAASI,IAAT,CAAcb,GAAd,EAAmBc,KAAnB,EAA0B;AACtB,OAAKd,GAAL,GAAWA,GAAX;AACA,OAAKc,KAAL,GAAaA,KAAb;AACH;;AACDD,IAAI,CAAC1S,SAAL,CAAewS,GAAf,GAAqB,YAAY;AAC7B,OAAKX,GAAL,CAASzO,KAAT,CAAe,IAAf,EAAqB,KAAKuP,KAA1B;AACH,CAFD;;AAGA7V,OAAO,CAAC8V,KAAR,GAAgB,SAAhB;AACA9V,OAAO,CAAC+V,OAAR,GAAkB,IAAlB;AACA/V,OAAO,CAACC,GAAR,GAAc,EAAd;AACAD,OAAO,CAACgW,IAAR,GAAe,EAAf;AACAhW,OAAO,CAACoJ,OAAR,GAAkB,EAAlB,EAAsB;;AACtBpJ,OAAO,CAACiW,QAAR,GAAmB,EAAnB;;AAEA,SAASC,IAAT,GAAgB,CAAE;;AAElBlW,OAAO,CAACmW,EAAR,GAAaD,IAAb;AACAlW,OAAO,CAACoW,WAAR,GAAsBF,IAAtB;AACAlW,OAAO,CAACqW,IAAR,GAAeH,IAAf;AACAlW,OAAO,CAACsW,GAAR,GAAcJ,IAAd;AACAlW,OAAO,CAACuW,cAAR,GAAyBL,IAAzB;AACAlW,OAAO,CAACwW,kBAAR,GAA6BN,IAA7B;AACAlW,OAAO,CAACyW,IAAR,GAAeP,IAAf;AACAlW,OAAO,CAAC0W,eAAR,GAA0BR,IAA1B;AACAlW,OAAO,CAAC2W,mBAAR,GAA8BT,IAA9B;;AAEAlW,OAAO,CAAC4W,SAAR,GAAoB,UAAUha,IAAV,EAAgB;AAAE,SAAO,EAAP;AAAW,CAAjD;;AAEAoD,OAAO,CAAC6W,OAAR,GAAkB,UAAUja,IAAV,EAAgB;AAC9B,QAAM,IAAIb,KAAJ,CAAU,kCAAV,CAAN;AACH,CAFD;;AAIAiE,OAAO,CAAC8W,GAAR,GAAc,YAAY;AAAE,SAAO,GAAP;AAAY,CAAxC;;AACA9W,OAAO,CAAC+W,KAAR,GAAgB,UAAUC,GAAV,EAAe;AAC3B,QAAM,IAAIjb,KAAJ,CAAU,gCAAV,CAAN;AACH,CAFD;;AAGAiE,OAAO,CAACiX,KAAR,GAAgB,YAAW;AAAE,SAAO,CAAP;AAAW,CAAxC;;;;;;;;ACvLA,IAAIjX,OAAO,CAACC,GAAR,CAAYiX,gBAAZ,KAAiC,WAAjC,IACAlX,OAAO,CAACC,GAAR,CAAYkX,oBAAZ,KAAqC,MADzC,EAEEnX,OAAO,CAACC,GAAR,CAAYmX,cAAZ,GAA6B,MAA7B;;AAEF,IAAI,OAAOld,GAAP,KAAe,UAAf,IAA6B,CAAC8F,OAAO,CAACC,GAAR,CAAYmX,cAA9C,EAA8D;AAC5DjX,EAAAA,MAAM,CAAChB,OAAP,GAAiBjF,GAAjB;AACD,CAFD,MAEO;AACLiG,EAAAA,yCAAA;AACD;;;;;;;ACRD,IAAIxD,cAAc,GAAGjD,MAAM,CAACwJ,SAAP,CAAiBvG,cAAtC;AAEAwD,MAAM,CAAChB,OAAP,GAAiBkY,SAAjB;;AAEA,SAASA,SAAT,CAAoB9b,GAApB,EAAyB;AACvB,MAAI,EAAE,gBAAgB8b,SAAlB,CAAJ,EAAkC;AAChC,UAAM,IAAItI,SAAJ,CAAc,sCAAd,CAAN;AAEF,OAAKuI,KAAL;;AAEA,MAAI/b,GAAJ,EAAS;AACP,QAAKA,GAAG,YAAY8b,SAAhB,IACC,OAAOnd,GAAP,KAAe,UAAf,IAA6BqB,GAAG,YAAYrB,GADjD,EAEEqB,GAAG,CAAC2D,OAAJ,CAAY,UAAUhD,KAAV,EAAiByH,GAAjB,EAAsB;AAChC,WAAKpI,GAAL,CAASoI,GAAT,EAAczH,KAAd;AACD,KAFD,EAEG,IAFH,EAFF,KAKK,IAAIsH,KAAK,CAACC,OAAN,CAAclI,GAAd,CAAJ,EACHA,GAAG,CAAC2D,OAAJ,CAAY,UAAUqY,EAAV,EAAc;AACxB,WAAKhc,GAAL,CAASgc,EAAE,CAAC,CAAD,CAAX,EAAgBA,EAAE,CAAC,CAAD,CAAlB;AACD,KAFD,EAEG,IAFH,EADG,KAKH,MAAM,IAAIxI,SAAJ,CAAc,kBAAd,CAAN;AACH;AACF;;AAEDsI,SAAS,CAACnU,SAAV,CAAoBhE,OAApB,GAA8B,UAAUuT,EAAV,EAAcC,KAAd,EAAqB;AACjDA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;AACAhZ,EAAAA,MAAM,CAACkL,IAAP,CAAY,KAAK4S,KAAjB,EAAwBtY,OAAxB,CAAgC,UAAU5F,CAAV,EAAa;AAC3C,QAAIA,CAAC,KAAK,MAAV,EACEmZ,EAAE,CAAC1O,IAAH,CAAQ2O,KAAR,EAAe,KAAK8E,KAAL,CAAWle,CAAX,EAAc4C,KAA7B,EAAoC,KAAKsb,KAAL,CAAWle,CAAX,EAAcqK,GAAlD;AACH,GAHD,EAGG,IAHH;AAID,CAND;;AAQA0T,SAAS,CAACnU,SAAV,CAAoBtD,GAApB,GAA0B,UAAUtG,CAAV,EAAa;AACrC,SAAO,CAAC,CAACme,IAAI,CAAC,KAAKD,KAAN,EAAale,CAAb,CAAb;AACD,CAFD;;AAIA+d,SAAS,CAACnU,SAAV,CAAoBxG,GAApB,GAA0B,UAAUpD,CAAV,EAAa;AACrC,MAAIoe,GAAG,GAAGD,IAAI,CAAC,KAAKD,KAAN,EAAale,CAAb,CAAd;AACA,SAAOoe,GAAG,IAAIA,GAAG,CAACxb,KAAlB;AACD,CAHD;;AAKAmb,SAAS,CAACnU,SAAV,CAAoB3H,GAApB,GAA0B,UAAUjC,CAAV,EAAakE,CAAb,EAAgB;AACxCjC,EAAAA,GAAG,CAAC,KAAKic,KAAN,EAAale,CAAb,EAAgBkE,CAAhB,CAAH;AACD,CAFD;;AAIA6Z,SAAS,CAACnU,SAAV,CAAoBsR,MAApB,GAA6B,UAAUlb,CAAV,EAAa;AACxC,MAAIoe,GAAG,GAAGD,IAAI,CAAC,KAAKD,KAAN,EAAale,CAAb,CAAd;;AACA,MAAIoe,GAAJ,EAAS;AACP,WAAO,KAAKF,KAAL,CAAWE,GAAG,CAACC,MAAf,CAAP;AACA,SAAKH,KAAL,CAAWI,IAAX;AACD;AACF,CAND;;AAQAP,SAAS,CAACnU,SAAV,CAAoBoU,KAApB,GAA4B,YAAY;AACtC,MAAIO,IAAI,GAAGne,MAAM,CAACoe,MAAP,CAAc,IAAd,CAAX;AACAD,EAAAA,IAAI,CAACD,IAAL,GAAY,CAAZ;AAEAle,EAAAA,MAAM,CAACsY,cAAP,CAAsB,IAAtB,EAA4B,OAA5B,EAAqC;AACnC9V,IAAAA,KAAK,EAAE2b,IAD4B;AAEnC1F,IAAAA,UAAU,EAAE,KAFuB;AAGnC4F,IAAAA,YAAY,EAAE,IAHqB;AAInCC,IAAAA,QAAQ,EAAE;AAJyB,GAArC;AAMD,CAVD;;AAYAte,MAAM,CAACsY,cAAP,CAAsBqF,SAAS,CAACnU,SAAhC,EAA2C,MAA3C,EAAmD;AACjDxG,EAAAA,GAAG,EAAE,eAAY;AACf,WAAO,KAAK8a,KAAL,CAAWI,IAAlB;AACD,GAHgD;AAIjDrc,EAAAA,GAAG,EAAE,aAAUsC,CAAV,EAAa,CAAE,CAJ6B;AAKjDsU,EAAAA,UAAU,EAAE,IALqC;AAMjD4F,EAAAA,YAAY,EAAE;AANmC,CAAnD;;AASAV,SAAS,CAACnU,SAAV,CAAoBiQ,MAApB,GACAkE,SAAS,CAACnU,SAAV,CAAoB0B,IAApB,GACAyS,SAAS,CAACnU,SAAV,CAAoB+U,OAApB,GAA8B,YAAY;AACxC,QAAM,IAAIlc,KAAJ,CAAU,+CAAV,CAAN;AACD,CAJD,EAMA;;;AACA,SAASmc,IAAT,CAAeje,CAAf,EAAkBkB,CAAlB,EAAqB;AACnB,SAAOlB,CAAC,KAAKkB,CAAN,IAAWlB,CAAC,KAAKA,CAAN,IAAWkB,CAAC,KAAKA,CAAnC;AACD;;AAED,SAAS2Y,KAAT,CAAgBxa,CAAhB,EAAmBkE,CAAnB,EAAsB2O,CAAtB,EAAyB;AACvB,OAAKxI,GAAL,GAAWrK,CAAX;AACA,OAAK4C,KAAL,GAAasB,CAAb;AACA,OAAKma,MAAL,GAAcxL,CAAd;AACD;;AAED,SAASsL,IAAT,CAAeI,IAAf,EAAqBve,CAArB,EAAwB;AACtB,OAAK,IAAI6S,CAAC,GAAG,CAAR,EAAW3G,CAAC,GAAG,MAAMlM,CAArB,EAAwBqK,GAAG,GAAG6B,CAAnC,EACK7I,cAAc,CAACoH,IAAf,CAAoB8T,IAApB,EAA0BlU,GAA1B,CADL,EAEKA,GAAG,GAAG6B,CAAC,GAAG2G,CAAC,EAFhB,EAEoB;AAClB,QAAI+L,IAAI,CAACL,IAAI,CAAClU,GAAD,CAAJ,CAAUA,GAAX,EAAgBrK,CAAhB,CAAR,EACE,OAAOue,IAAI,CAAClU,GAAD,CAAX;AACH;AACF;;AAED,SAASpI,GAAT,CAAcsc,IAAd,EAAoBve,CAApB,EAAuBkE,CAAvB,EAA0B;AACxB,OAAK,IAAI2O,CAAC,GAAG,CAAR,EAAW3G,CAAC,GAAG,MAAMlM,CAArB,EAAwBqK,GAAG,GAAG6B,CAAnC,EACK7I,cAAc,CAACoH,IAAf,CAAoB8T,IAApB,EAA0BlU,GAA1B,CADL,EAEKA,GAAG,GAAG6B,CAAC,GAAG2G,CAAC,EAFhB,EAEoB;AAClB,QAAI+L,IAAI,CAACL,IAAI,CAAClU,GAAD,CAAJ,CAAUA,GAAX,EAAgBrK,CAAhB,CAAR,EAA4B;AAC1Bue,MAAAA,IAAI,CAAClU,GAAD,CAAJ,CAAUzH,KAAV,GAAkBsB,CAAlB;AACA;AACD;AACF;;AACDqa,EAAAA,IAAI,CAACD,IAAL;AACAC,EAAAA,IAAI,CAAClU,GAAD,CAAJ,GAAY,IAAImQ,KAAJ,CAAUxa,CAAV,EAAakE,CAAb,EAAgBmG,GAAhB,CAAZ;AACD;;;;;;;;;AChHA,WAAS0F,IAAT,EAAeC,OAAf,EAAwB;AACrB,eADqB,CAErB;;AAEA;;AACA,MAAI,IAAJ,EAAgD;AAC5CC,IAAAA,iCAAqB,EAAf,oCAAmBD,OAAnB;AAAA;AAAA;AAAA,kGAAN;AACH,GAFD,MAEO,EAIN;AACJ,CAZA,EAYC,IAZD,EAYO,YAAW;AACf;;AACA,WAAS6O,SAAT,CAAmBta,CAAnB,EAAsB;AAClB,WAAO,CAACua,KAAK,CAACC,UAAU,CAACxa,CAAD,CAAX,CAAN,IAAyBya,QAAQ,CAACza,CAAD,CAAxC;AACH;;AAED,WAAS0a,WAAT,CAAqB/E,GAArB,EAA0B;AACtB,WAAOA,GAAG,CAACgF,MAAJ,CAAW,CAAX,EAAcC,WAAd,KAA8BjF,GAAG,CAACkF,SAAJ,CAAc,CAAd,CAArC;AACH;;AAED,WAASC,OAAT,CAAiBnf,CAAjB,EAAoB;AAChB,WAAO,YAAW;AACd,aAAO,KAAKA,CAAL,CAAP;AACH,KAFD;AAGH;;AAED,MAAIof,YAAY,GAAG,CAAC,eAAD,EAAkB,QAAlB,EAA4B,UAA5B,EAAwC,YAAxC,CAAnB;AACA,MAAIC,YAAY,GAAG,CAAC,cAAD,EAAiB,YAAjB,CAAnB;AACA,MAAIC,WAAW,GAAG,CAAC,UAAD,EAAa,cAAb,EAA6B,QAA7B,CAAlB;AACA,MAAIC,UAAU,GAAG,CAAC,MAAD,CAAjB;AAEA,MAAIjW,KAAK,GAAG8V,YAAY,CAACrD,MAAb,CAAoBsD,YAApB,EAAkCC,WAAlC,EAA+CC,UAA/C,CAAZ;;AAEA,WAASrP,UAAT,CAAoBsP,GAApB,EAAyB;AACrB,QAAI,CAACA,GAAL,EAAU;;AACV,SAAK,IAAI7M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGrJ,KAAK,CAACzH,MAA1B,EAAkC8Q,CAAC,EAAnC,EAAuC;AACnC,UAAI6M,GAAG,CAAClW,KAAK,CAACqJ,CAAD,CAAN,CAAH,KAAkBtB,SAAtB,EAAiC;AAC7B,aAAK,QAAQ0N,WAAW,CAACzV,KAAK,CAACqJ,CAAD,CAAN,CAAxB,EAAoC6M,GAAG,CAAClW,KAAK,CAACqJ,CAAD,CAAN,CAAvC;AACH;AACJ;AACJ;;AAEDzC,EAAAA,UAAU,CAACxG,SAAX,GAAuB;AACnB+V,IAAAA,OAAO,EAAE,mBAAW;AAChB,aAAO,KAAKvM,IAAZ;AACH,KAHkB;AAInBwM,IAAAA,OAAO,EAAE,iBAAS1b,CAAT,EAAY;AACjB,UAAI9D,MAAM,CAACwJ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+BvG,CAA/B,MAAsC,gBAA1C,EAA4D;AACxD,cAAM,IAAIuR,SAAJ,CAAc,uBAAd,CAAN;AACH;;AACD,WAAKrC,IAAL,GAAYlP,CAAZ;AACH,KATkB;AAWnB2b,IAAAA,aAAa,EAAE,yBAAW;AACtB,aAAO,KAAKC,UAAZ;AACH,KAbkB;AAcnBC,IAAAA,aAAa,EAAE,uBAAS7b,CAAT,EAAY;AACvB,UAAIA,CAAC,YAAYkM,UAAjB,EAA6B;AACzB,aAAK0P,UAAL,GAAkB5b,CAAlB;AACH,OAFD,MAEO,IAAIA,CAAC,YAAY9D,MAAjB,EAAyB;AAC5B,aAAK0f,UAAL,GAAkB,IAAI1P,UAAJ,CAAelM,CAAf,CAAlB;AACH,OAFM,MAEA;AACH,cAAM,IAAIuR,SAAJ,CAAc,6CAAd,CAAN;AACH;AACJ,KAtBkB;AAwBnBvK,IAAAA,QAAQ,EAAE,oBAAW;AACjB,UAAIhG,QAAQ,GAAG,KAAK8a,WAAL,MAAsB,EAArC;AACA,UAAIhb,UAAU,GAAG,KAAKib,aAAL,MAAwB,EAAzC;AACA,UAAIhb,YAAY,GAAG,KAAKib,eAAL,MAA0B,EAA7C;AACA,UAAIzb,YAAY,GAAG,KAAK0b,eAAL,MAA0B,EAA7C;;AACA,UAAI,KAAKC,SAAL,EAAJ,EAAsB;AAClB,YAAIlb,QAAJ,EAAc;AACV,iBAAO,aAAaA,QAAb,GAAwB,GAAxB,GAA8BF,UAA9B,GAA2C,GAA3C,GAAiDC,YAAjD,GAAgE,GAAvE;AACH;;AACD,eAAO,YAAYD,UAAZ,GAAyB,GAAzB,GAA+BC,YAAtC;AACH;;AACD,UAAIR,YAAJ,EAAkB;AACd,eAAOA,YAAY,GAAG,IAAf,GAAsBS,QAAtB,GAAiC,GAAjC,GAAuCF,UAAvC,GAAoD,GAApD,GAA0DC,YAA1D,GAAyE,GAAhF;AACH;;AACD,aAAOC,QAAQ,GAAG,GAAX,GAAiBF,UAAjB,GAA8B,GAA9B,GAAoCC,YAA3C;AACH;AAvCkB,GAAvB;;AA0CAmL,EAAAA,UAAU,CAACiQ,UAAX,GAAwB,SAASC,sBAAT,CAAgCpG,GAAhC,EAAqC;AACzD,QAAIqG,cAAc,GAAGrG,GAAG,CAAC/I,OAAJ,CAAY,GAAZ,CAArB;AACA,QAAIqP,YAAY,GAAGtG,GAAG,CAACnW,WAAJ,CAAgB,GAAhB,CAAnB;AAEA,QAAIU,YAAY,GAAGyV,GAAG,CAACkF,SAAJ,CAAc,CAAd,EAAiBmB,cAAjB,CAAnB;AACA,QAAInN,IAAI,GAAG8G,GAAG,CAACkF,SAAJ,CAAcmB,cAAc,GAAG,CAA/B,EAAkCC,YAAlC,EAAgD9O,KAAhD,CAAsD,GAAtD,CAAX;AACA,QAAI+O,cAAc,GAAGvG,GAAG,CAACkF,SAAJ,CAAcoB,YAAY,GAAG,CAA7B,CAArB;;AAEA,QAAIC,cAAc,CAACtP,OAAf,CAAuB,GAAvB,MAAgC,CAApC,EAAuC;AACnC,UAAIE,KAAK,GAAG,gCAAgCC,IAAhC,CAAqCmP,cAArC,EAAqD,EAArD,CAAZ;AACA,UAAIvb,QAAQ,GAAGmM,KAAK,CAAC,CAAD,CAApB;AACA,UAAIrM,UAAU,GAAGqM,KAAK,CAAC,CAAD,CAAtB;AACA,UAAIpM,YAAY,GAAGoM,KAAK,CAAC,CAAD,CAAxB;AACH;;AAED,WAAO,IAAIjB,UAAJ,CAAe;AAClB3L,MAAAA,YAAY,EAAEA,YADI;AAElB2O,MAAAA,IAAI,EAAEA,IAAI,IAAI7B,SAFI;AAGlBrM,MAAAA,QAAQ,EAAEA,QAHQ;AAIlBF,MAAAA,UAAU,EAAEA,UAAU,IAAIuM,SAJR;AAKlBtM,MAAAA,YAAY,EAAEA,YAAY,IAAIsM;AALZ,KAAf,CAAP;AAOH,GAtBD;;AAwBA,OAAK,IAAIsB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyM,YAAY,CAACvd,MAAjC,EAAyC8Q,CAAC,EAA1C,EAA8C;AAC1CzC,IAAAA,UAAU,CAACxG,SAAX,CAAqB,QAAQqV,WAAW,CAACK,YAAY,CAACzM,CAAD,CAAb,CAAxC,IAA6DwM,OAAO,CAACC,YAAY,CAACzM,CAAD,CAAb,CAApE;;AACAzC,IAAAA,UAAU,CAACxG,SAAX,CAAqB,QAAQqV,WAAW,CAACK,YAAY,CAACzM,CAAD,CAAb,CAAxC,IAA8D,UAAS3S,CAAT,EAAY;AACtE,aAAO,UAASgE,CAAT,EAAY;AACf,aAAKhE,CAAL,IAAUwgB,OAAO,CAACxc,CAAD,CAAjB;AACH,OAFD;AAGH,KAJ4D,CAI1Dob,YAAY,CAACzM,CAAD,CAJ8C,CAA7D;AAKH;;AAED,OAAK,IAAI8N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpB,YAAY,CAACxd,MAAjC,EAAyC4e,CAAC,EAA1C,EAA8C;AAC1CvQ,IAAAA,UAAU,CAACxG,SAAX,CAAqB,QAAQqV,WAAW,CAACM,YAAY,CAACoB,CAAD,CAAb,CAAxC,IAA6DtB,OAAO,CAACE,YAAY,CAACoB,CAAD,CAAb,CAApE;;AACAvQ,IAAAA,UAAU,CAACxG,SAAX,CAAqB,QAAQqV,WAAW,CAACM,YAAY,CAACoB,CAAD,CAAb,CAAxC,IAA8D,UAASzgB,CAAT,EAAY;AACtE,aAAO,UAASgE,CAAT,EAAY;AACf,YAAI,CAAC2a,SAAS,CAAC3a,CAAD,CAAd,EAAmB;AACf,gBAAM,IAAIuR,SAAJ,CAAcvV,CAAC,GAAG,mBAAlB,CAAN;AACH;;AACD,aAAKA,CAAL,IAAU0gB,MAAM,CAAC1c,CAAD,CAAhB;AACH,OALD;AAMH,KAP4D,CAO1Dqb,YAAY,CAACoB,CAAD,CAP8C,CAA7D;AAQH;;AAED,OAAK,IAAI3gB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwf,WAAW,CAACzd,MAAhC,EAAwC/B,CAAC,EAAzC,EAA6C;AACzCoQ,IAAAA,UAAU,CAACxG,SAAX,CAAqB,QAAQqV,WAAW,CAACO,WAAW,CAACxf,CAAD,CAAZ,CAAxC,IAA4Dqf,OAAO,CAACG,WAAW,CAACxf,CAAD,CAAZ,CAAnE;;AACAoQ,IAAAA,UAAU,CAACxG,SAAX,CAAqB,QAAQqV,WAAW,CAACO,WAAW,CAACxf,CAAD,CAAZ,CAAxC,IAA6D,UAASE,CAAT,EAAY;AACrE,aAAO,UAASgE,CAAT,EAAY;AACf,aAAKhE,CAAL,IAAUmL,MAAM,CAACnH,CAAD,CAAhB;AACH,OAFD;AAGH,KAJ2D,CAIzDsb,WAAW,CAACxf,CAAD,CAJ8C,CAA5D;AAKH;;AAED,SAAOoQ,UAAP;AACH,CA7IA,CAAD;;;;;;;ACAA,IAAI,OAAOhQ,MAAM,CAACoe,MAAd,KAAyB,UAA7B,EAAyC;AACvC;AACA3X,EAAAA,MAAM,CAAChB,OAAP,GAAiB,SAASgb,QAAT,CAAkBC,IAAlB,EAAwBC,SAAxB,EAAmC;AAClDD,IAAAA,IAAI,CAACE,MAAL,GAAcD,SAAd;AACAD,IAAAA,IAAI,CAAClX,SAAL,GAAiBxJ,MAAM,CAACoe,MAAP,CAAcuC,SAAS,CAACnX,SAAxB,EAAmC;AAClDI,MAAAA,WAAW,EAAE;AACXpH,QAAAA,KAAK,EAAEke,IADI;AAEXjI,QAAAA,UAAU,EAAE,KAFD;AAGX6F,QAAAA,QAAQ,EAAE,IAHC;AAIXD,QAAAA,YAAY,EAAE;AAJH;AADqC,KAAnC,CAAjB;AAQD,GAVD;AAWD,CAbD,MAaO;AACL;AACA5X,EAAAA,MAAM,CAAChB,OAAP,GAAiB,SAASgb,QAAT,CAAkBC,IAAlB,EAAwBC,SAAxB,EAAmC;AAClDD,IAAAA,IAAI,CAACE,MAAL,GAAcD,SAAd;;AACA,QAAIE,QAAQ,GAAG,SAAXA,QAAW,GAAY,CAAE,CAA7B;;AACAA,IAAAA,QAAQ,CAACrX,SAAT,GAAqBmX,SAAS,CAACnX,SAA/B;AACAkX,IAAAA,IAAI,CAAClX,SAAL,GAAiB,IAAIqX,QAAJ,EAAjB;AACAH,IAAAA,IAAI,CAAClX,SAAL,CAAeI,WAAf,GAA6B8W,IAA7B;AACD,GAND;AAOD;;;;;;;;;ACtBDja,MAAM,CAAChB,OAAP,GAAiB,SAASqb,QAAT,CAAkBC,GAAlB,EAAuB;AACtC,SAAOA,GAAG,IAAI,QAAOA,GAAP,MAAe,QAAtB,IACF,OAAOA,GAAG,CAACC,IAAX,KAAoB,UADlB,IAEF,OAAOD,GAAG,CAACE,IAAX,KAAoB,UAFlB,IAGF,OAAOF,GAAG,CAACG,SAAX,KAAyB,UAH9B;AAID,CALD;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIC,YAAY,GAAG,UAAnB;;AACA1b,cAAA,GAAiB,UAASrB,CAAT,EAAY;AAC3B,MAAI,CAACid,QAAQ,CAACjd,CAAD,CAAb,EAAkB;AAChB,QAAIkd,OAAO,GAAG,EAAd;;AACA,SAAK,IAAI7O,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpN,SAAS,CAAC1D,MAA9B,EAAsC8Q,CAAC,EAAvC,EAA2C;AACzC6O,MAAAA,OAAO,CAAC/e,IAAR,CAAaqX,OAAO,CAACvU,SAAS,CAACoN,CAAD,CAAV,CAApB;AACD;;AACD,WAAO6O,OAAO,CAACnW,IAAR,CAAa,GAAb,CAAP;AACD;;AAED,MAAIsH,CAAC,GAAG,CAAR;AACA,MAAIO,IAAI,GAAG3N,SAAX;AACA,MAAIqN,GAAG,GAAGM,IAAI,CAACrR,MAAf;AACA,MAAImY,GAAG,GAAG7O,MAAM,CAAC7G,CAAD,CAAN,CAAUuG,OAAV,CAAkBwW,YAAlB,EAAgC,UAAS/gB,CAAT,EAAY;AACpD,QAAIA,CAAC,KAAK,IAAV,EAAgB,OAAO,GAAP;AAChB,QAAIqS,CAAC,IAAIC,GAAT,EAAc,OAAOtS,CAAP;;AACd,YAAQA,CAAR;AACE,WAAK,IAAL;AAAW,eAAO6K,MAAM,CAAC+H,IAAI,CAACP,CAAC,EAAF,CAAL,CAAb;;AACX,WAAK,IAAL;AAAW,eAAO+N,MAAM,CAACxN,IAAI,CAACP,CAAC,EAAF,CAAL,CAAb;;AACX,WAAK,IAAL;AACE,YAAI;AACF,iBAAO8O,IAAI,CAACC,SAAL,CAAexO,IAAI,CAACP,CAAC,EAAF,CAAnB,CAAP;AACD,SAFD,CAEE,OAAOgP,CAAP,EAAU;AACV,iBAAO,YAAP;AACD;;AACH;AACE,eAAOrhB,CAAP;AAVJ;AAYD,GAfS,CAAV;;AAgBA,OAAK,IAAIA,CAAC,GAAG4S,IAAI,CAACP,CAAD,CAAjB,EAAsBA,CAAC,GAAGC,GAA1B,EAA+BtS,CAAC,GAAG4S,IAAI,CAAC,EAAEP,CAAH,CAAvC,EAA8C;AAC5C,QAAIiP,MAAM,CAACthB,CAAD,CAAN,IAAa,CAACmV,QAAQ,CAACnV,CAAD,CAA1B,EAA+B;AAC7B0Z,MAAAA,GAAG,IAAI,MAAM1Z,CAAb;AACD,KAFD,MAEO;AACL0Z,MAAAA,GAAG,IAAI,MAAMF,OAAO,CAACxZ,CAAD,CAApB;AACD;AACF;;AACD,SAAO0Z,GAAP;AACD,CApCD,EAuCA;AACA;AACA;;;AACArU,iBAAA,GAAoB,UAASsT,EAAT,EAAa6I,GAAb,EAAkB;AACpC;AACA,MAAIC,WAAW,CAAClO,MAAM,CAACrN,OAAR,CAAf,EAAiC;AAC/B,WAAO,YAAW;AAChB,aAAOb,OAAO,CAACkc,SAAR,CAAkB5I,EAAlB,EAAsB6I,GAAtB,EAA2BhV,KAA3B,CAAiC,IAAjC,EAAuCvH,SAAvC,CAAP;AACD,KAFD;AAGD;;AAED,MAAIiB,OAAO,CAACwb,aAAR,KAA0B,IAA9B,EAAoC;AAClC,WAAO/I,EAAP;AACD;;AAED,MAAIgJ,MAAM,GAAG,KAAb;;AACA,WAASC,UAAT,GAAsB;AACpB,QAAI,CAACD,MAAL,EAAa;AACX,UAAIzb,OAAO,CAAC2b,gBAAZ,EAA8B;AAC5B,cAAM,IAAI5f,KAAJ,CAAUuf,GAAV,CAAN;AACD,OAFD,MAEO,IAAItb,OAAO,CAAC4b,gBAAZ,EAA8B;AACnCC,QAAAA,OAAO,CAACC,KAAR,CAAcR,GAAd;AACD,OAFM,MAEA;AACLO,QAAAA,OAAO,CAAC9R,KAAR,CAAcuR,GAAd;AACD;;AACDG,MAAAA,MAAM,GAAG,IAAT;AACD;;AACD,WAAOhJ,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAevH,SAAf,CAAP;AACD;;AAED,SAAO2c,UAAP;AACD,CA5BD;;AA+BA,IAAIK,MAAM,GAAG,EAAb;AACA,IAAIC,YAAJ;;AACA7c,gBAAA,GAAmB,UAAS5D,GAAT,EAAc;AAC/B,MAAIggB,WAAW,CAACS,YAAD,CAAf,EACEA,YAAY,GAAGhc,OAAO,CAACC,GAAR,CAAYic,UAAZ,IAA0B,EAAzC;AACF3gB,EAAAA,GAAG,GAAGA,GAAG,CAACkd,WAAJ,EAAN;;AACA,MAAI,CAACsD,MAAM,CAACxgB,GAAD,CAAX,EAAkB;AAChB,QAAI,IAAI4gB,MAAJ,CAAW,QAAQ5gB,GAAR,GAAc,KAAzB,EAAgC,GAAhC,EAAqCiV,IAArC,CAA0CwL,YAA1C,CAAJ,EAA6D;AAC3D,UAAII,GAAG,GAAGpc,OAAO,CAACoc,GAAlB;;AACAL,MAAAA,MAAM,CAACxgB,GAAD,CAAN,GAAc,YAAW;AACvB,YAAI+f,GAAG,GAAGnc,OAAO,CAAC2b,MAAR,CAAexU,KAAf,CAAqBnH,OAArB,EAA8BJ,SAA9B,CAAV;AACA8c,QAAAA,OAAO,CAAC9R,KAAR,CAAc,WAAd,EAA2BxO,GAA3B,EAAgC6gB,GAAhC,EAAqCd,GAArC;AACD,OAHD;AAID,KAND,MAMO;AACLS,MAAAA,MAAM,CAACxgB,GAAD,CAAN,GAAc,YAAW,CAAE,CAA3B;AACD;AACF;;AACD,SAAOwgB,MAAM,CAACxgB,GAAD,CAAb;AACD,CAhBD;AAmBA;;;;;;;;AAOA;;;AACA,SAAS+X,OAAT,CAAiB0F,GAAjB,EAAsBzF,IAAtB,EAA4B;AAC1B;AACA,MAAI8I,GAAG,GAAG;AACRC,IAAAA,IAAI,EAAE,EADE;AAERC,IAAAA,OAAO,EAAEC;AAFD,GAAV,CAF0B,CAM1B;;AACA,MAAIzd,SAAS,CAAC1D,MAAV,IAAoB,CAAxB,EAA2BghB,GAAG,CAACI,KAAJ,GAAY1d,SAAS,CAAC,CAAD,CAArB;AAC3B,MAAIA,SAAS,CAAC1D,MAAV,IAAoB,CAAxB,EAA2BghB,GAAG,CAACK,MAAJ,GAAa3d,SAAS,CAAC,CAAD,CAAtB;;AAC3B,MAAI4d,SAAS,CAACpJ,IAAD,CAAb,EAAqB;AACnB;AACA8I,IAAAA,GAAG,CAACO,UAAJ,GAAiBrJ,IAAjB;AACD,GAHD,MAGO,IAAIA,IAAJ,EAAU;AACf;AACApU,IAAAA,OAAO,CAAC0d,OAAR,CAAgBR,GAAhB,EAAqB9I,IAArB;AACD,GAfyB,CAgB1B;;;AACA,MAAIgI,WAAW,CAACc,GAAG,CAACO,UAAL,CAAf,EAAiCP,GAAG,CAACO,UAAJ,GAAiB,KAAjB;AACjC,MAAIrB,WAAW,CAACc,GAAG,CAACI,KAAL,CAAf,EAA4BJ,GAAG,CAACI,KAAJ,GAAY,CAAZ;AAC5B,MAAIlB,WAAW,CAACc,GAAG,CAACK,MAAL,CAAf,EAA6BL,GAAG,CAACK,MAAJ,GAAa,KAAb;AAC7B,MAAInB,WAAW,CAACc,GAAG,CAACS,aAAL,CAAf,EAAoCT,GAAG,CAACS,aAAJ,GAAoB,IAApB;AACpC,MAAIT,GAAG,CAACK,MAAR,EAAgBL,GAAG,CAACE,OAAJ,GAAcQ,gBAAd;AAChB,SAAOC,WAAW,CAACX,GAAD,EAAMrD,GAAN,EAAWqD,GAAG,CAACI,KAAf,CAAlB;AACD;;AACDtd,eAAA,GAAkBmU,OAAlB,EAGA;;AACAA,OAAO,CAACoJ,MAAR,GAAiB;AACf,UAAS,CAAC,CAAD,EAAI,EAAJ,CADM;AAEf,YAAW,CAAC,CAAD,EAAI,EAAJ,CAFI;AAGf,eAAc,CAAC,CAAD,EAAI,EAAJ,CAHC;AAIf,aAAY,CAAC,CAAD,EAAI,EAAJ,CAJG;AAKf,WAAU,CAAC,EAAD,EAAK,EAAL,CALK;AAMf,UAAS,CAAC,EAAD,EAAK,EAAL,CANM;AAOf,WAAU,CAAC,EAAD,EAAK,EAAL,CAPK;AAQf,UAAS,CAAC,EAAD,EAAK,EAAL,CARM;AASf,UAAS,CAAC,EAAD,EAAK,EAAL,CATM;AAUf,WAAU,CAAC,EAAD,EAAK,EAAL,CAVK;AAWf,aAAY,CAAC,EAAD,EAAK,EAAL,CAXG;AAYf,SAAQ,CAAC,EAAD,EAAK,EAAL,CAZO;AAaf,YAAW,CAAC,EAAD,EAAK,EAAL;AAbI,CAAjB,EAgBA;;AACApJ,OAAO,CAAC2J,MAAR,GAAiB;AACf,aAAW,MADI;AAEf,YAAU,QAFK;AAGf,aAAW,QAHI;AAIf,eAAa,MAJE;AAKf,UAAQ,MALO;AAMf,YAAU,OANK;AAOf,UAAQ,SAPO;AAQf;AACA,YAAU;AATK,CAAjB;;AAaA,SAASF,gBAAT,CAA0BvJ,GAA1B,EAA+B0J,SAA/B,EAA0C;AACxC,MAAIC,KAAK,GAAG7J,OAAO,CAAC2J,MAAR,CAAeC,SAAf,CAAZ;;AAEA,MAAIC,KAAJ,EAAW;AACT,WAAO,UAAY7J,OAAO,CAACoJ,MAAR,CAAeS,KAAf,EAAsB,CAAtB,CAAZ,GAAuC,GAAvC,GAA6C3J,GAA7C,GACA,OADA,GACYF,OAAO,CAACoJ,MAAR,CAAeS,KAAf,EAAsB,CAAtB,CADZ,GACuC,GAD9C;AAED,GAHD,MAGO;AACL,WAAO3J,GAAP;AACD;AACF;;AAGD,SAASgJ,cAAT,CAAwBhJ,GAAxB,EAA6B0J,SAA7B,EAAwC;AACtC,SAAO1J,GAAP;AACD;;AAGD,SAAS4J,WAAT,CAAqBvH,KAArB,EAA4B;AAC1B,MAAIwH,IAAI,GAAG,EAAX;AAEAxH,EAAAA,KAAK,CAAC3W,OAAN,CAAc,UAAS2U,GAAT,EAAcyJ,GAAd,EAAmB;AAC/BD,IAAAA,IAAI,CAACxJ,GAAD,CAAJ,GAAY,IAAZ;AACD,GAFD;AAIA,SAAOwJ,IAAP;AACD;;AAGD,SAASL,WAAT,CAAqBX,GAArB,EAA0BngB,KAA1B,EAAiCqhB,YAAjC,EAA+C;AAC7C;AACA;AACA,MAAIlB,GAAG,CAACS,aAAJ,IACA5gB,KADA,IAEAshB,UAAU,CAACthB,KAAK,CAACoX,OAAP,CAFV,IAGA;AACApX,EAAAA,KAAK,CAACoX,OAAN,KAAkBnU,OAAO,CAACmU,OAJ1B,IAKA;AACA,IAAEpX,KAAK,CAACoH,WAAN,IAAqBpH,KAAK,CAACoH,WAAN,CAAkBJ,SAAlB,KAAgChH,KAAvD,CANJ,EAMmE;AACjE,QAAIuhB,GAAG,GAAGvhB,KAAK,CAACoX,OAAN,CAAciK,YAAd,EAA4BlB,GAA5B,CAAV;;AACA,QAAI,CAACtB,QAAQ,CAAC0C,GAAD,CAAb,EAAoB;AAClBA,MAAAA,GAAG,GAAGT,WAAW,CAACX,GAAD,EAAMoB,GAAN,EAAWF,YAAX,CAAjB;AACD;;AACD,WAAOE,GAAP;AACD,GAf4C,CAiB7C;;;AACA,MAAIjiB,SAAS,GAAGkiB,eAAe,CAACrB,GAAD,EAAMngB,KAAN,CAA/B;;AACA,MAAIV,SAAJ,EAAe;AACb,WAAOA,SAAP;AACD,GArB4C,CAuB7C;;;AACA,MAAIoJ,IAAI,GAAGlL,MAAM,CAACkL,IAAP,CAAY1I,KAAZ,CAAX;AACA,MAAIyhB,WAAW,GAAGP,WAAW,CAACxY,IAAD,CAA7B;;AAEA,MAAIyX,GAAG,CAACO,UAAR,EAAoB;AAClBhY,IAAAA,IAAI,GAAGlL,MAAM,CAACkkB,mBAAP,CAA2B1hB,KAA3B,CAAP;AACD,GA7B4C,CA+B7C;AACA;;;AACA,MAAI2hB,OAAO,CAAC3hB,KAAD,CAAP,KACI0I,IAAI,CAAC6F,OAAL,CAAa,SAAb,KAA2B,CAA3B,IAAgC7F,IAAI,CAAC6F,OAAL,CAAa,aAAb,KAA+B,CADnE,CAAJ,EAC2E;AACzE,WAAOqT,WAAW,CAAC5hB,KAAD,CAAlB;AACD,GApC4C,CAsC7C;;;AACA,MAAI0I,IAAI,CAACvJ,MAAL,KAAgB,CAApB,EAAuB;AACrB,QAAImiB,UAAU,CAACthB,KAAD,CAAd,EAAuB;AACrB,UAAIU,IAAI,GAAGV,KAAK,CAACU,IAAN,GAAa,OAAOV,KAAK,CAACU,IAA1B,GAAiC,EAA5C;AACA,aAAOyf,GAAG,CAACE,OAAJ,CAAY,cAAc3f,IAAd,GAAqB,GAAjC,EAAsC,SAAtC,CAAP;AACD;;AACD,QAAImhB,QAAQ,CAAC7hB,KAAD,CAAZ,EAAqB;AACnB,aAAOmgB,GAAG,CAACE,OAAJ,CAAYJ,MAAM,CAACjZ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+B7H,KAA/B,CAAZ,EAAmD,QAAnD,CAAP;AACD;;AACD,QAAI8hB,MAAM,CAAC9hB,KAAD,CAAV,EAAmB;AACjB,aAAOmgB,GAAG,CAACE,OAAJ,CAAYtO,IAAI,CAAC/K,SAAL,CAAesB,QAAf,CAAwBT,IAAxB,CAA6B7H,KAA7B,CAAZ,EAAiD,MAAjD,CAAP;AACD;;AACD,QAAI2hB,OAAO,CAAC3hB,KAAD,CAAX,EAAoB;AAClB,aAAO4hB,WAAW,CAAC5hB,KAAD,CAAlB;AACD;AACF;;AAED,MAAI+hB,IAAI,GAAG,EAAX;AAAA,MAAepI,KAAK,GAAG,KAAvB;AAAA,MAA8BqI,MAAM,GAAG,CAAC,GAAD,EAAM,GAAN,CAAvC,CAvD6C,CAyD7C;;AACA,MAAIza,OAAO,CAACvH,KAAD,CAAX,EAAoB;AAClB2Z,IAAAA,KAAK,GAAG,IAAR;AACAqI,IAAAA,MAAM,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT;AACD,GA7D4C,CA+D7C;;;AACA,MAAIV,UAAU,CAACthB,KAAD,CAAd,EAAuB;AACrB,QAAI2B,CAAC,GAAG3B,KAAK,CAACU,IAAN,GAAa,OAAOV,KAAK,CAACU,IAA1B,GAAiC,EAAzC;AACAqhB,IAAAA,IAAI,GAAG,eAAepgB,CAAf,GAAmB,GAA1B;AACD,GAnE4C,CAqE7C;;;AACA,MAAIkgB,QAAQ,CAAC7hB,KAAD,CAAZ,EAAqB;AACnB+hB,IAAAA,IAAI,GAAG,MAAM9B,MAAM,CAACjZ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+B7H,KAA/B,CAAb;AACD,GAxE4C,CA0E7C;;;AACA,MAAI8hB,MAAM,CAAC9hB,KAAD,CAAV,EAAmB;AACjB+hB,IAAAA,IAAI,GAAG,MAAMhQ,IAAI,CAAC/K,SAAL,CAAeib,WAAf,CAA2Bpa,IAA3B,CAAgC7H,KAAhC,CAAb;AACD,GA7E4C,CA+E7C;;;AACA,MAAI2hB,OAAO,CAAC3hB,KAAD,CAAX,EAAoB;AAClB+hB,IAAAA,IAAI,GAAG,MAAMH,WAAW,CAAC5hB,KAAD,CAAxB;AACD;;AAED,MAAI0I,IAAI,CAACvJ,MAAL,KAAgB,CAAhB,KAAsB,CAACwa,KAAD,IAAU3Z,KAAK,CAACb,MAAN,IAAgB,CAAhD,CAAJ,EAAwD;AACtD,WAAO6iB,MAAM,CAAC,CAAD,CAAN,GAAYD,IAAZ,GAAmBC,MAAM,CAAC,CAAD,CAAhC;AACD;;AAED,MAAIX,YAAY,GAAG,CAAnB,EAAsB;AACpB,QAAIQ,QAAQ,CAAC7hB,KAAD,CAAZ,EAAqB;AACnB,aAAOmgB,GAAG,CAACE,OAAJ,CAAYJ,MAAM,CAACjZ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+B7H,KAA/B,CAAZ,EAAmD,QAAnD,CAAP;AACD,KAFD,MAEO;AACL,aAAOmgB,GAAG,CAACE,OAAJ,CAAY,UAAZ,EAAwB,SAAxB,CAAP;AACD;AACF;;AAEDF,EAAAA,GAAG,CAACC,IAAJ,CAASrgB,IAAT,CAAcC,KAAd;AAEA,MAAIkiB,MAAJ;;AACA,MAAIvI,KAAJ,EAAW;AACTuI,IAAAA,MAAM,GAAGC,WAAW,CAAChC,GAAD,EAAMngB,KAAN,EAAaqhB,YAAb,EAA2BI,WAA3B,EAAwC/Y,IAAxC,CAApB;AACD,GAFD,MAEO;AACLwZ,IAAAA,MAAM,GAAGxZ,IAAI,CAACjG,GAAL,CAAS,UAASgF,GAAT,EAAc;AAC9B,aAAO2a,cAAc,CAACjC,GAAD,EAAMngB,KAAN,EAAaqhB,YAAb,EAA2BI,WAA3B,EAAwCha,GAAxC,EAA6CkS,KAA7C,CAArB;AACD,KAFQ,CAAT;AAGD;;AAEDwG,EAAAA,GAAG,CAACC,IAAJ,CAASre,GAAT;AAEA,SAAOsgB,oBAAoB,CAACH,MAAD,EAASH,IAAT,EAAeC,MAAf,CAA3B;AACD;;AAGD,SAASR,eAAT,CAAyBrB,GAAzB,EAA8BngB,KAA9B,EAAqC;AACnC,MAAIqf,WAAW,CAACrf,KAAD,CAAf,EACE,OAAOmgB,GAAG,CAACE,OAAJ,CAAY,WAAZ,EAAyB,WAAzB,CAAP;;AACF,MAAIxB,QAAQ,CAAC7e,KAAD,CAAZ,EAAqB;AACnB,QAAIsiB,MAAM,GAAG,OAAOvD,IAAI,CAACC,SAAL,CAAehf,KAAf,EAAsBmI,OAAtB,CAA8B,QAA9B,EAAwC,EAAxC,EACsBA,OADtB,CAC8B,IAD9B,EACoC,KADpC,EAEsBA,OAFtB,CAE8B,MAF9B,EAEsC,GAFtC,CAAP,GAEoD,IAFjE;AAGA,WAAOgY,GAAG,CAACE,OAAJ,CAAYiC,MAAZ,EAAoB,QAApB,CAAP;AACD;;AACD,MAAIC,QAAQ,CAACviB,KAAD,CAAZ,EACE,OAAOmgB,GAAG,CAACE,OAAJ,CAAY,KAAKrgB,KAAjB,EAAwB,QAAxB,CAAP;AACF,MAAIygB,SAAS,CAACzgB,KAAD,CAAb,EACE,OAAOmgB,GAAG,CAACE,OAAJ,CAAY,KAAKrgB,KAAjB,EAAwB,SAAxB,CAAP,CAZiC,CAanC;;AACA,MAAIkf,MAAM,CAAClf,KAAD,CAAV,EACE,OAAOmgB,GAAG,CAACE,OAAJ,CAAY,MAAZ,EAAoB,MAApB,CAAP;AACH;;AAGD,SAASuB,WAAT,CAAqB5hB,KAArB,EAA4B;AAC1B,SAAO,MAAMH,KAAK,CAACmH,SAAN,CAAgBsB,QAAhB,CAAyBT,IAAzB,CAA8B7H,KAA9B,CAAN,GAA6C,GAApD;AACD;;AAGD,SAASmiB,WAAT,CAAqBhC,GAArB,EAA0BngB,KAA1B,EAAiCqhB,YAAjC,EAA+CI,WAA/C,EAA4D/Y,IAA5D,EAAkE;AAChE,MAAIwZ,MAAM,GAAG,EAAb;;AACA,OAAK,IAAIjS,CAAC,GAAG,CAAR,EAAWxO,CAAC,GAAGzB,KAAK,CAACb,MAA1B,EAAkC8Q,CAAC,GAAGxO,CAAtC,EAAyC,EAAEwO,CAA3C,EAA8C;AAC5C,QAAIxP,cAAc,CAACT,KAAD,EAAQyI,MAAM,CAACwH,CAAD,CAAd,CAAlB,EAAsC;AACpCiS,MAAAA,MAAM,CAACniB,IAAP,CAAYqiB,cAAc,CAACjC,GAAD,EAAMngB,KAAN,EAAaqhB,YAAb,EAA2BI,WAA3B,EACtBhZ,MAAM,CAACwH,CAAD,CADgB,EACX,IADW,CAA1B;AAED,KAHD,MAGO;AACLiS,MAAAA,MAAM,CAACniB,IAAP,CAAY,EAAZ;AACD;AACF;;AACD2I,EAAAA,IAAI,CAAC1F,OAAL,CAAa,UAASyE,GAAT,EAAc;AACzB,QAAI,CAACA,GAAG,CAACwG,KAAJ,CAAU,OAAV,CAAL,EAAyB;AACvBiU,MAAAA,MAAM,CAACniB,IAAP,CAAYqiB,cAAc,CAACjC,GAAD,EAAMngB,KAAN,EAAaqhB,YAAb,EAA2BI,WAA3B,EACtBha,GADsB,EACjB,IADiB,CAA1B;AAED;AACF,GALD;AAMA,SAAOya,MAAP;AACD;;AAGD,SAASE,cAAT,CAAwBjC,GAAxB,EAA6BngB,KAA7B,EAAoCqhB,YAApC,EAAkDI,WAAlD,EAA+Dha,GAA/D,EAAoEkS,KAApE,EAA2E;AACzE,MAAIjZ,IAAJ,EAAU4W,GAAV,EAAekL,IAAf;AACAA,EAAAA,IAAI,GAAGhlB,MAAM,CAACilB,wBAAP,CAAgCziB,KAAhC,EAAuCyH,GAAvC,KAA+C;AAAEzH,IAAAA,KAAK,EAAEA,KAAK,CAACyH,GAAD;AAAd,GAAtD;;AACA,MAAI+a,IAAI,CAAChiB,GAAT,EAAc;AACZ,QAAIgiB,IAAI,CAACnjB,GAAT,EAAc;AACZiY,MAAAA,GAAG,GAAG6I,GAAG,CAACE,OAAJ,CAAY,iBAAZ,EAA+B,SAA/B,CAAN;AACD,KAFD,MAEO;AACL/I,MAAAA,GAAG,GAAG6I,GAAG,CAACE,OAAJ,CAAY,UAAZ,EAAwB,SAAxB,CAAN;AACD;AACF,GAND,MAMO;AACL,QAAImC,IAAI,CAACnjB,GAAT,EAAc;AACZiY,MAAAA,GAAG,GAAG6I,GAAG,CAACE,OAAJ,CAAY,UAAZ,EAAwB,SAAxB,CAAN;AACD;AACF;;AACD,MAAI,CAAC5f,cAAc,CAACghB,WAAD,EAAcha,GAAd,CAAnB,EAAuC;AACrC/G,IAAAA,IAAI,GAAG,MAAM+G,GAAN,GAAY,GAAnB;AACD;;AACD,MAAI,CAAC6P,GAAL,EAAU;AACR,QAAI6I,GAAG,CAACC,IAAJ,CAAS7R,OAAT,CAAiBiU,IAAI,CAACxiB,KAAtB,IAA+B,CAAnC,EAAsC;AACpC,UAAIkf,MAAM,CAACmC,YAAD,CAAV,EAA0B;AACxB/J,QAAAA,GAAG,GAAGwJ,WAAW,CAACX,GAAD,EAAMqC,IAAI,CAACxiB,KAAX,EAAkB,IAAlB,CAAjB;AACD,OAFD,MAEO;AACLsX,QAAAA,GAAG,GAAGwJ,WAAW,CAACX,GAAD,EAAMqC,IAAI,CAACxiB,KAAX,EAAkBqhB,YAAY,GAAG,CAAjC,CAAjB;AACD;;AACD,UAAI/J,GAAG,CAAC/I,OAAJ,CAAY,IAAZ,IAAoB,CAAC,CAAzB,EAA4B;AAC1B,YAAIoL,KAAJ,EAAW;AACTrC,UAAAA,GAAG,GAAGA,GAAG,CAACxI,KAAJ,CAAU,IAAV,EAAgBrM,GAAhB,CAAoB,UAASuM,IAAT,EAAe;AACvC,mBAAO,OAAOA,IAAd;AACD,WAFK,EAEHrG,IAFG,CAEE,IAFF,EAEQ+Z,MAFR,CAEe,CAFf,CAAN;AAGD,SAJD,MAIO;AACLpL,UAAAA,GAAG,GAAG,OAAOA,GAAG,CAACxI,KAAJ,CAAU,IAAV,EAAgBrM,GAAhB,CAAoB,UAASuM,IAAT,EAAe;AAC9C,mBAAO,QAAQA,IAAf;AACD,WAFY,EAEVrG,IAFU,CAEL,IAFK,CAAb;AAGD;AACF;AACF,KAjBD,MAiBO;AACL2O,MAAAA,GAAG,GAAG6I,GAAG,CAACE,OAAJ,CAAY,YAAZ,EAA0B,SAA1B,CAAN;AACD;AACF;;AACD,MAAIhB,WAAW,CAAC3e,IAAD,CAAf,EAAuB;AACrB,QAAIiZ,KAAK,IAAIlS,GAAG,CAACwG,KAAJ,CAAU,OAAV,CAAb,EAAiC;AAC/B,aAAOqJ,GAAP;AACD;;AACD5W,IAAAA,IAAI,GAAGqe,IAAI,CAACC,SAAL,CAAe,KAAKvX,GAApB,CAAP;;AACA,QAAI/G,IAAI,CAACuN,KAAL,CAAW,8BAAX,CAAJ,EAAgD;AAC9CvN,MAAAA,IAAI,GAAGA,IAAI,CAACgiB,MAAL,CAAY,CAAZ,EAAehiB,IAAI,CAACvB,MAAL,GAAc,CAA7B,CAAP;AACAuB,MAAAA,IAAI,GAAGyf,GAAG,CAACE,OAAJ,CAAY3f,IAAZ,EAAkB,MAAlB,CAAP;AACD,KAHD,MAGO;AACLA,MAAAA,IAAI,GAAGA,IAAI,CAACyH,OAAL,CAAa,IAAb,EAAmB,KAAnB,EACKA,OADL,CACa,MADb,EACqB,GADrB,EAEKA,OAFL,CAEa,UAFb,EAEyB,GAFzB,CAAP;AAGAzH,MAAAA,IAAI,GAAGyf,GAAG,CAACE,OAAJ,CAAY3f,IAAZ,EAAkB,QAAlB,CAAP;AACD;AACF;;AAED,SAAOA,IAAI,GAAG,IAAP,GAAc4W,GAArB;AACD;;AAGD,SAAS+K,oBAAT,CAA8BH,MAA9B,EAAsCH,IAAtC,EAA4CC,MAA5C,EAAoD;AAClD,MAAIW,WAAW,GAAG,CAAlB;AACA,MAAIxjB,MAAM,GAAG+iB,MAAM,CAACU,MAAP,CAAc,UAASjM,IAAT,EAAekM,GAAf,EAAoB;AAC7CF,IAAAA,WAAW;AACX,QAAIE,GAAG,CAACtU,OAAJ,CAAY,IAAZ,KAAqB,CAAzB,EAA4BoU,WAAW;AACvC,WAAOhM,IAAI,GAAGkM,GAAG,CAAC1a,OAAJ,CAAY,iBAAZ,EAA+B,EAA/B,EAAmChJ,MAA1C,GAAmD,CAA1D;AACD,GAJY,EAIV,CAJU,CAAb;;AAMA,MAAIA,MAAM,GAAG,EAAb,EAAiB;AACf,WAAO6iB,MAAM,CAAC,CAAD,CAAN,IACCD,IAAI,KAAK,EAAT,GAAc,EAAd,GAAmBA,IAAI,GAAG,KAD3B,IAEA,GAFA,GAGAG,MAAM,CAACvZ,IAAP,CAAY,OAAZ,CAHA,GAIA,GAJA,GAKAqZ,MAAM,CAAC,CAAD,CALb;AAMD;;AAED,SAAOA,MAAM,CAAC,CAAD,CAAN,GAAYD,IAAZ,GAAmB,GAAnB,GAAyBG,MAAM,CAACvZ,IAAP,CAAY,IAAZ,CAAzB,GAA6C,GAA7C,GAAmDqZ,MAAM,CAAC,CAAD,CAAhE;AACD,EAGD;AACA;;;AACA,SAASza,OAAT,CAAiBub,EAAjB,EAAqB;AACnB,SAAOxb,KAAK,CAACC,OAAN,CAAcub,EAAd,CAAP;AACD;;AACD7f,eAAA,GAAkBsE,OAAlB;;AAEA,SAASkZ,SAAT,CAAmBlC,GAAnB,EAAwB;AACtB,SAAO,OAAOA,GAAP,KAAe,SAAtB;AACD;;AACDtb,iBAAA,GAAoBwd,SAApB;;AAEA,SAASvB,MAAT,CAAgBX,GAAhB,EAAqB;AACnB,SAAOA,GAAG,KAAK,IAAf;AACD;;AACDtb,cAAA,GAAiBic,MAAjB;;AAEA,SAAS6D,iBAAT,CAA2BxE,GAA3B,EAAgC;AAC9B,SAAOA,GAAG,IAAI,IAAd;AACD;;AACDtb,yBAAA,GAA4B8f,iBAA5B;;AAEA,SAASR,QAAT,CAAkBhE,GAAlB,EAAuB;AACrB,SAAO,OAAOA,GAAP,KAAe,QAAtB;AACD;;AACDtb,gBAAA,GAAmBsf,QAAnB;;AAEA,SAAS1D,QAAT,CAAkBN,GAAlB,EAAuB;AACrB,SAAO,OAAOA,GAAP,KAAe,QAAtB;AACD;;AACDtb,gBAAA,GAAmB4b,QAAnB;;AAEA,SAAS3K,QAAT,CAAkBqK,GAAlB,EAAuB;AACrB,SAAO,QAAOA,GAAP,MAAe,QAAtB;AACD;;AACDtb,gBAAA,GAAmBiR,QAAnB;;AAEA,SAASmL,WAAT,CAAqBd,GAArB,EAA0B;AACxB,SAAOA,GAAG,KAAK,KAAK,CAApB;AACD;;AACDtb,mBAAA,GAAsBoc,WAAtB;;AAEA,SAASwC,QAAT,CAAkBmB,EAAlB,EAAsB;AACpB,SAAOjQ,QAAQ,CAACiQ,EAAD,CAAR,IAAgBxR,cAAc,CAACwR,EAAD,CAAd,KAAuB,iBAA9C;AACD;;AACD/f,gBAAA,GAAmB4e,QAAnB;;AAEA,SAAS9O,QAAT,CAAkBwL,GAAlB,EAAuB;AACrB,SAAO,QAAOA,GAAP,MAAe,QAAf,IAA2BA,GAAG,KAAK,IAA1C;AACD;;AACDtb,gBAAA,GAAmB8P,QAAnB;;AAEA,SAAS+O,MAAT,CAAgBtgB,CAAhB,EAAmB;AACjB,SAAOuR,QAAQ,CAACvR,CAAD,CAAR,IAAegQ,cAAc,CAAChQ,CAAD,CAAd,KAAsB,eAA5C;AACD;;AACDyB,cAAA,GAAiB6e,MAAjB;;AAEA,SAASH,OAAT,CAAiBziB,CAAjB,EAAoB;AAClB,SAAO6T,QAAQ,CAAC7T,CAAD,CAAR,KACFsS,cAAc,CAACtS,CAAD,CAAd,KAAsB,gBAAtB,IAA0CA,CAAC,YAAYW,KADrD,CAAP;AAED;;AACDoD,eAAA,GAAkB0e,OAAlB;;AAEA,SAASL,UAAT,CAAoB/C,GAApB,EAAyB;AACvB,SAAO,OAAOA,GAAP,KAAe,UAAtB;AACD;;AACDtb,kBAAA,GAAqBqe,UAArB;;AAEA,SAAS2B,WAAT,CAAqB1E,GAArB,EAA0B;AACxB,SAAOA,GAAG,KAAK,IAAR,IACA,OAAOA,GAAP,KAAe,SADf,IAEA,OAAOA,GAAP,KAAe,QAFf,IAGA,OAAOA,GAAP,KAAe,QAHf,IAIA,QAAOA,GAAP,MAAe,QAJf,IAI4B;AAC5B,SAAOA,GAAP,KAAe,WALtB;AAMD;;AACDtb,mBAAA,GAAsBggB,WAAtB;AAEAhgB,2CAAA;;AAEA,SAASuO,cAAT,CAAwBjI,CAAxB,EAA2B;AACzB,SAAO/L,MAAM,CAACwJ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+B0B,CAA/B,CAAP;AACD;;AAGD,SAAS2Z,GAAT,CAAavhB,CAAb,EAAgB;AACd,SAAOA,CAAC,GAAG,EAAJ,GAAS,MAAMA,CAAC,CAAC2G,QAAF,CAAW,EAAX,CAAf,GAAgC3G,CAAC,CAAC2G,QAAF,CAAW,EAAX,CAAvC;AACD;;AAGD,IAAI6a,MAAM,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,EAAkD,KAAlD,EAAyD,KAAzD,EACC,KADD,EACQ,KADR,EACe,KADf,CAAb,EAGA;;AACA,SAASC,SAAT,GAAqB;AACnB,MAAI5hB,CAAC,GAAG,IAAIuQ,IAAJ,EAAR;AACA,MAAIkB,IAAI,GAAG,CAACiQ,GAAG,CAAC1hB,CAAC,CAAC6hB,QAAF,EAAD,CAAJ,EACCH,GAAG,CAAC1hB,CAAC,CAAC8hB,UAAF,EAAD,CADJ,EAECJ,GAAG,CAAC1hB,CAAC,CAAC+hB,UAAF,EAAD,CAFJ,EAEsB5a,IAFtB,CAE2B,GAF3B,CAAX;AAGA,SAAO,CAACnH,CAAC,CAACgiB,OAAF,EAAD,EAAcL,MAAM,CAAC3hB,CAAC,CAACiiB,QAAF,EAAD,CAApB,EAAoCxQ,IAApC,EAA0CtK,IAA1C,CAA+C,GAA/C,CAAP;AACD,EAGD;;;AACA1F,WAAA,GAAc,YAAW;AACvB0c,EAAAA,OAAO,CAAC+D,GAAR,CAAY,SAAZ,EAAuBN,SAAS,EAAhC,EAAoCngB,OAAO,CAAC2b,MAAR,CAAexU,KAAf,CAAqBnH,OAArB,EAA8BJ,SAA9B,CAApC;AACD,CAFD;AAKA;;;;;;;;;;;;;;;AAaAI,2CAAA;;AAEAA,eAAA,GAAkB,UAAS0gB,MAAT,EAAiBC,GAAjB,EAAsB;AACtC;AACA,MAAI,CAACA,GAAD,IAAQ,CAAC7Q,QAAQ,CAAC6Q,GAAD,CAArB,EAA4B,OAAOD,MAAP;AAE5B,MAAIjb,IAAI,GAAGlL,MAAM,CAACkL,IAAP,CAAYkb,GAAZ,CAAX;AACA,MAAI3T,CAAC,GAAGvH,IAAI,CAACvJ,MAAb;;AACA,SAAO8Q,CAAC,EAAR,EAAY;AACV0T,IAAAA,MAAM,CAACjb,IAAI,CAACuH,CAAD,CAAL,CAAN,GAAkB2T,GAAG,CAAClb,IAAI,CAACuH,CAAD,CAAL,CAArB;AACD;;AACD,SAAO0T,MAAP;AACD,CAVD;;AAYA,SAASljB,cAAT,CAAwBqc,GAAxB,EAA6B+G,IAA7B,EAAmC;AACjC,SAAOrmB,MAAM,CAACwJ,SAAP,CAAiBvG,cAAjB,CAAgCoH,IAAhC,CAAqCiV,GAArC,EAA0C+G,IAA1C,CAAP;AACD;;;;;;;ACzkBD5f,MAAM,CAAChB,OAAP,GAAiBwR,OAAjB;AAEAA,OAAO,CAACqP,IAAR,GAAeA,IAAf;AACArP,OAAO,CAACmH,MAAR,GAAiBnH,OAAjB;;AAEA,SAASA,OAAT,CAAkBsP,IAAlB,EAAwB;AACtB,MAAI1S,IAAI,GAAG,IAAX;;AACA,MAAI,EAAEA,IAAI,YAAYoD,OAAlB,CAAJ,EAAgC;AAC9BpD,IAAAA,IAAI,GAAG,IAAIoD,OAAJ,EAAP;AACD;;AAEDpD,EAAAA,IAAI,CAACqF,IAAL,GAAY,IAAZ;AACArF,EAAAA,IAAI,CAAC2F,IAAL,GAAY,IAAZ;AACA3F,EAAAA,IAAI,CAAClS,MAAL,GAAc,CAAd;;AAEA,MAAI4kB,IAAI,IAAI,OAAOA,IAAI,CAAC/gB,OAAZ,KAAwB,UAApC,EAAgD;AAC9C+gB,IAAAA,IAAI,CAAC/gB,OAAL,CAAa,UAAU0U,IAAV,EAAgB;AAC3BrG,MAAAA,IAAI,CAACtR,IAAL,CAAU2X,IAAV;AACD,KAFD;AAGD,GAJD,MAIO,IAAI7U,SAAS,CAAC1D,MAAV,GAAmB,CAAvB,EAA0B;AAC/B,SAAK,IAAI8Q,CAAC,GAAG,CAAR,EAAWxO,CAAC,GAAGoB,SAAS,CAAC1D,MAA9B,EAAsC8Q,CAAC,GAAGxO,CAA1C,EAA6CwO,CAAC,EAA9C,EAAkD;AAChDoB,MAAAA,IAAI,CAACtR,IAAL,CAAU8C,SAAS,CAACoN,CAAD,CAAnB;AACD;AACF;;AAED,SAAOoB,IAAP;AACD;;AAEDoD,OAAO,CAACzN,SAAR,CAAkBuR,UAAlB,GAA+B,UAAU1B,IAAV,EAAgB;AAC7C,MAAIA,IAAI,CAACkN,IAAL,KAAc,IAAlB,EAAwB;AACtB,UAAM,IAAIlkB,KAAJ,CAAU,kDAAV,CAAN;AACD;;AAED,MAAIF,IAAI,GAAGkX,IAAI,CAAClX,IAAhB;AACA,MAAIgX,IAAI,GAAGE,IAAI,CAACF,IAAhB;;AAEA,MAAIhX,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAACgX,IAAL,GAAYA,IAAZ;AACD;;AAED,MAAIA,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAAChX,IAAL,GAAYA,IAAZ;AACD;;AAED,MAAIkX,IAAI,KAAK,KAAKG,IAAlB,EAAwB;AACtB,SAAKA,IAAL,GAAYrX,IAAZ;AACD;;AACD,MAAIkX,IAAI,KAAK,KAAKH,IAAlB,EAAwB;AACtB,SAAKA,IAAL,GAAYC,IAAZ;AACD;;AAEDE,EAAAA,IAAI,CAACkN,IAAL,CAAU5kB,MAAV;AACA0X,EAAAA,IAAI,CAAClX,IAAL,GAAY,IAAZ;AACAkX,EAAAA,IAAI,CAACF,IAAL,GAAY,IAAZ;AACAE,EAAAA,IAAI,CAACkN,IAAL,GAAY,IAAZ;AACD,CA3BD;;AA6BAtP,OAAO,CAACzN,SAAR,CAAkBoR,WAAlB,GAAgC,UAAUvB,IAAV,EAAgB;AAC9C,MAAIA,IAAI,KAAK,KAAKG,IAAlB,EAAwB;AACtB;AACD;;AAED,MAAIH,IAAI,CAACkN,IAAT,EAAe;AACblN,IAAAA,IAAI,CAACkN,IAAL,CAAUxL,UAAV,CAAqB1B,IAArB;AACD;;AAED,MAAIG,IAAI,GAAG,KAAKA,IAAhB;AACAH,EAAAA,IAAI,CAACkN,IAAL,GAAY,IAAZ;AACAlN,EAAAA,IAAI,CAAClX,IAAL,GAAYqX,IAAZ;;AACA,MAAIA,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAACL,IAAL,GAAYE,IAAZ;AACD;;AAED,OAAKG,IAAL,GAAYH,IAAZ;;AACA,MAAI,CAAC,KAAKH,IAAV,EAAgB;AACd,SAAKA,IAAL,GAAYG,IAAZ;AACD;;AACD,OAAK1X,MAAL;AACD,CArBD;;AAuBAsV,OAAO,CAACzN,SAAR,CAAkBgd,QAAlB,GAA6B,UAAUnN,IAAV,EAAgB;AAC3C,MAAIA,IAAI,KAAK,KAAKH,IAAlB,EAAwB;AACtB;AACD;;AAED,MAAIG,IAAI,CAACkN,IAAT,EAAe;AACblN,IAAAA,IAAI,CAACkN,IAAL,CAAUxL,UAAV,CAAqB1B,IAArB;AACD;;AAED,MAAIH,IAAI,GAAG,KAAKA,IAAhB;AACAG,EAAAA,IAAI,CAACkN,IAAL,GAAY,IAAZ;AACAlN,EAAAA,IAAI,CAACF,IAAL,GAAYD,IAAZ;;AACA,MAAIA,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAAC/W,IAAL,GAAYkX,IAAZ;AACD;;AAED,OAAKH,IAAL,GAAYG,IAAZ;;AACA,MAAI,CAAC,KAAKG,IAAV,EAAgB;AACd,SAAKA,IAAL,GAAYH,IAAZ;AACD;;AACD,OAAK1X,MAAL;AACD,CArBD;;AAuBAsV,OAAO,CAACzN,SAAR,CAAkBjH,IAAlB,GAAyB,YAAY;AACnC,OAAK,IAAIkQ,CAAC,GAAG,CAAR,EAAWxO,CAAC,GAAGoB,SAAS,CAAC1D,MAA9B,EAAsC8Q,CAAC,GAAGxO,CAA1C,EAA6CwO,CAAC,EAA9C,EAAkD;AAChDlQ,IAAAA,IAAI,CAAC,IAAD,EAAO8C,SAAS,CAACoN,CAAD,CAAhB,CAAJ;AACD;;AACD,SAAO,KAAK9Q,MAAZ;AACD,CALD;;AAOAsV,OAAO,CAACzN,SAAR,CAAkB6Q,OAAlB,GAA4B,YAAY;AACtC,OAAK,IAAI5H,CAAC,GAAG,CAAR,EAAWxO,CAAC,GAAGoB,SAAS,CAAC1D,MAA9B,EAAsC8Q,CAAC,GAAGxO,CAA1C,EAA6CwO,CAAC,EAA9C,EAAkD;AAChD4H,IAAAA,OAAO,CAAC,IAAD,EAAOhV,SAAS,CAACoN,CAAD,CAAhB,CAAP;AACD;;AACD,SAAO,KAAK9Q,MAAZ;AACD,CALD;;AAOAsV,OAAO,CAACzN,SAAR,CAAkBjF,GAAlB,GAAwB,YAAY;AAClC,MAAI,CAAC,KAAK2U,IAAV,EAAgB;AACd,WAAO/H,SAAP;AACD;;AAED,MAAI6M,GAAG,GAAG,KAAK9E,IAAL,CAAU1W,KAApB;AACA,OAAK0W,IAAL,GAAY,KAAKA,IAAL,CAAUC,IAAtB;;AACA,MAAI,KAAKD,IAAT,EAAe;AACb,SAAKA,IAAL,CAAU/W,IAAV,GAAiB,IAAjB;AACD,GAFD,MAEO;AACL,SAAKqX,IAAL,GAAY,IAAZ;AACD;;AACD,OAAK7X,MAAL;AACA,SAAOqc,GAAP;AACD,CAdD;;AAgBA/G,OAAO,CAACzN,SAAR,CAAkBsJ,KAAlB,GAA0B,YAAY;AACpC,MAAI,CAAC,KAAK0G,IAAV,EAAgB;AACd,WAAOrI,SAAP;AACD;;AAED,MAAI6M,GAAG,GAAG,KAAKxE,IAAL,CAAUhX,KAApB;AACA,OAAKgX,IAAL,GAAY,KAAKA,IAAL,CAAUrX,IAAtB;;AACA,MAAI,KAAKqX,IAAT,EAAe;AACb,SAAKA,IAAL,CAAUL,IAAV,GAAiB,IAAjB;AACD,GAFD,MAEO;AACL,SAAKD,IAAL,GAAY,IAAZ;AACD;;AACD,OAAKvX,MAAL;AACA,SAAOqc,GAAP;AACD,CAdD;;AAgBA/G,OAAO,CAACzN,SAAR,CAAkBhE,OAAlB,GAA4B,UAAUuT,EAAV,EAAcC,KAAd,EAAqB;AAC/CA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;;AACA,OAAK,IAAIC,MAAM,GAAG,KAAKO,IAAlB,EAAwB/G,CAAC,GAAG,CAAjC,EAAoCwG,MAAM,KAAK,IAA/C,EAAqDxG,CAAC,EAAtD,EAA0D;AACxDsG,IAAAA,EAAE,CAAC1O,IAAH,CAAQ2O,KAAR,EAAeC,MAAM,CAACzW,KAAtB,EAA6BiQ,CAA7B,EAAgC,IAAhC;AACAwG,IAAAA,MAAM,GAAGA,MAAM,CAAC9W,IAAhB;AACD;AACF,CAND;;AAQA8U,OAAO,CAACzN,SAAR,CAAkBid,cAAlB,GAAmC,UAAU1N,EAAV,EAAcC,KAAd,EAAqB;AACtDA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;;AACA,OAAK,IAAIC,MAAM,GAAG,KAAKC,IAAlB,EAAwBzG,CAAC,GAAG,KAAK9Q,MAAL,GAAc,CAA/C,EAAkDsX,MAAM,KAAK,IAA7D,EAAmExG,CAAC,EAApE,EAAwE;AACtEsG,IAAAA,EAAE,CAAC1O,IAAH,CAAQ2O,KAAR,EAAeC,MAAM,CAACzW,KAAtB,EAA6BiQ,CAA7B,EAAgC,IAAhC;AACAwG,IAAAA,MAAM,GAAGA,MAAM,CAACE,IAAhB;AACD;AACF,CAND;;AAQAlC,OAAO,CAACzN,SAAR,CAAkBxG,GAAlB,GAAwB,UAAUmB,CAAV,EAAa;AACnC,OAAK,IAAIsO,CAAC,GAAG,CAAR,EAAWwG,MAAM,GAAG,KAAKO,IAA9B,EAAoCP,MAAM,KAAK,IAAX,IAAmBxG,CAAC,GAAGtO,CAA3D,EAA8DsO,CAAC,EAA/D,EAAmE;AACjE;AACAwG,IAAAA,MAAM,GAAGA,MAAM,CAAC9W,IAAhB;AACD;;AACD,MAAIsQ,CAAC,KAAKtO,CAAN,IAAW8U,MAAM,KAAK,IAA1B,EAAgC;AAC9B,WAAOA,MAAM,CAACzW,KAAd;AACD;AACF,CARD;;AAUAyU,OAAO,CAACzN,SAAR,CAAkBkd,UAAlB,GAA+B,UAAUviB,CAAV,EAAa;AAC1C,OAAK,IAAIsO,CAAC,GAAG,CAAR,EAAWwG,MAAM,GAAG,KAAKC,IAA9B,EAAoCD,MAAM,KAAK,IAAX,IAAmBxG,CAAC,GAAGtO,CAA3D,EAA8DsO,CAAC,EAA/D,EAAmE;AACjE;AACAwG,IAAAA,MAAM,GAAGA,MAAM,CAACE,IAAhB;AACD;;AACD,MAAI1G,CAAC,KAAKtO,CAAN,IAAW8U,MAAM,KAAK,IAA1B,EAAgC;AAC9B,WAAOA,MAAM,CAACzW,KAAd;AACD;AACF,CARD;;AAUAyU,OAAO,CAACzN,SAAR,CAAkBvE,GAAlB,GAAwB,UAAU8T,EAAV,EAAcC,KAAd,EAAqB;AAC3CA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;AACA,MAAIgF,GAAG,GAAG,IAAI/G,OAAJ,EAAV;;AACA,OAAK,IAAIgC,MAAM,GAAG,KAAKO,IAAvB,EAA6BP,MAAM,KAAK,IAAxC,GAA+C;AAC7C+E,IAAAA,GAAG,CAACzb,IAAJ,CAASwW,EAAE,CAAC1O,IAAH,CAAQ2O,KAAR,EAAeC,MAAM,CAACzW,KAAtB,EAA6B,IAA7B,CAAT;AACAyW,IAAAA,MAAM,GAAGA,MAAM,CAAC9W,IAAhB;AACD;;AACD,SAAO6b,GAAP;AACD,CARD;;AAUA/G,OAAO,CAACzN,SAAR,CAAkBmd,UAAlB,GAA+B,UAAU5N,EAAV,EAAcC,KAAd,EAAqB;AAClDA,EAAAA,KAAK,GAAGA,KAAK,IAAI,IAAjB;AACA,MAAIgF,GAAG,GAAG,IAAI/G,OAAJ,EAAV;;AACA,OAAK,IAAIgC,MAAM,GAAG,KAAKC,IAAvB,EAA6BD,MAAM,KAAK,IAAxC,GAA+C;AAC7C+E,IAAAA,GAAG,CAACzb,IAAJ,CAASwW,EAAE,CAAC1O,IAAH,CAAQ2O,KAAR,EAAeC,MAAM,CAACzW,KAAtB,EAA6B,IAA7B,CAAT;AACAyW,IAAAA,MAAM,GAAGA,MAAM,CAACE,IAAhB;AACD;;AACD,SAAO6E,GAAP;AACD,CARD;;AAUA/G,OAAO,CAACzN,SAAR,CAAkB4b,MAAlB,GAA2B,UAAUrM,EAAV,EAAc6N,OAAd,EAAuB;AAChD,MAAIC,GAAJ;AACA,MAAI5N,MAAM,GAAG,KAAKO,IAAlB;;AACA,MAAInU,SAAS,CAAC1D,MAAV,GAAmB,CAAvB,EAA0B;AACxBklB,IAAAA,GAAG,GAAGD,OAAN;AACD,GAFD,MAEO,IAAI,KAAKpN,IAAT,EAAe;AACpBP,IAAAA,MAAM,GAAG,KAAKO,IAAL,CAAUrX,IAAnB;AACA0kB,IAAAA,GAAG,GAAG,KAAKrN,IAAL,CAAUhX,KAAhB;AACD,GAHM,MAGA;AACL,UAAM,IAAI6S,SAAJ,CAAc,4CAAd,CAAN;AACD;;AAED,OAAK,IAAI5C,CAAC,GAAG,CAAb,EAAgBwG,MAAM,KAAK,IAA3B,EAAiCxG,CAAC,EAAlC,EAAsC;AACpCoU,IAAAA,GAAG,GAAG9N,EAAE,CAAC8N,GAAD,EAAM5N,MAAM,CAACzW,KAAb,EAAoBiQ,CAApB,CAAR;AACAwG,IAAAA,MAAM,GAAGA,MAAM,CAAC9W,IAAhB;AACD;;AAED,SAAO0kB,GAAP;AACD,CAlBD;;AAoBA5P,OAAO,CAACzN,SAAR,CAAkBsd,aAAlB,GAAkC,UAAU/N,EAAV,EAAc6N,OAAd,EAAuB;AACvD,MAAIC,GAAJ;AACA,MAAI5N,MAAM,GAAG,KAAKC,IAAlB;;AACA,MAAI7T,SAAS,CAAC1D,MAAV,GAAmB,CAAvB,EAA0B;AACxBklB,IAAAA,GAAG,GAAGD,OAAN;AACD,GAFD,MAEO,IAAI,KAAK1N,IAAT,EAAe;AACpBD,IAAAA,MAAM,GAAG,KAAKC,IAAL,CAAUC,IAAnB;AACA0N,IAAAA,GAAG,GAAG,KAAK3N,IAAL,CAAU1W,KAAhB;AACD,GAHM,MAGA;AACL,UAAM,IAAI6S,SAAJ,CAAc,4CAAd,CAAN;AACD;;AAED,OAAK,IAAI5C,CAAC,GAAG,KAAK9Q,MAAL,GAAc,CAA3B,EAA8BsX,MAAM,KAAK,IAAzC,EAA+CxG,CAAC,EAAhD,EAAoD;AAClDoU,IAAAA,GAAG,GAAG9N,EAAE,CAAC8N,GAAD,EAAM5N,MAAM,CAACzW,KAAb,EAAoBiQ,CAApB,CAAR;AACAwG,IAAAA,MAAM,GAAGA,MAAM,CAACE,IAAhB;AACD;;AAED,SAAO0N,GAAP;AACD,CAlBD;;AAoBA5P,OAAO,CAACzN,SAAR,CAAkBsD,OAAlB,GAA4B,YAAY;AACtC,MAAI0N,GAAG,GAAG,IAAI1Q,KAAJ,CAAU,KAAKnI,MAAf,CAAV;;AACA,OAAK,IAAI8Q,CAAC,GAAG,CAAR,EAAWwG,MAAM,GAAG,KAAKO,IAA9B,EAAoCP,MAAM,KAAK,IAA/C,EAAqDxG,CAAC,EAAtD,EAA0D;AACxD+H,IAAAA,GAAG,CAAC/H,CAAD,CAAH,GAASwG,MAAM,CAACzW,KAAhB;AACAyW,IAAAA,MAAM,GAAGA,MAAM,CAAC9W,IAAhB;AACD;;AACD,SAAOqY,GAAP;AACD,CAPD;;AASAvD,OAAO,CAACzN,SAAR,CAAkBud,cAAlB,GAAmC,YAAY;AAC7C,MAAIvM,GAAG,GAAG,IAAI1Q,KAAJ,CAAU,KAAKnI,MAAf,CAAV;;AACA,OAAK,IAAI8Q,CAAC,GAAG,CAAR,EAAWwG,MAAM,GAAG,KAAKC,IAA9B,EAAoCD,MAAM,KAAK,IAA/C,EAAqDxG,CAAC,EAAtD,EAA0D;AACxD+H,IAAAA,GAAG,CAAC/H,CAAD,CAAH,GAASwG,MAAM,CAACzW,KAAhB;AACAyW,IAAAA,MAAM,GAAGA,MAAM,CAACE,IAAhB;AACD;;AACD,SAAOqB,GAAP;AACD,CAPD;;AASAvD,OAAO,CAACzN,SAAR,CAAkBlF,KAAlB,GAA0B,UAAU0iB,IAAV,EAAgBC,EAAhB,EAAoB;AAC5CA,EAAAA,EAAE,GAAGA,EAAE,IAAI,KAAKtlB,MAAhB;;AACA,MAAIslB,EAAE,GAAG,CAAT,EAAY;AACVA,IAAAA,EAAE,IAAI,KAAKtlB,MAAX;AACD;;AACDqlB,EAAAA,IAAI,GAAGA,IAAI,IAAI,CAAf;;AACA,MAAIA,IAAI,GAAG,CAAX,EAAc;AACZA,IAAAA,IAAI,IAAI,KAAKrlB,MAAb;AACD;;AACD,MAAIoiB,GAAG,GAAG,IAAI9M,OAAJ,EAAV;;AACA,MAAIgQ,EAAE,GAAGD,IAAL,IAAaC,EAAE,GAAG,CAAtB,EAAyB;AACvB,WAAOlD,GAAP;AACD;;AACD,MAAIiD,IAAI,GAAG,CAAX,EAAc;AACZA,IAAAA,IAAI,GAAG,CAAP;AACD;;AACD,MAAIC,EAAE,GAAG,KAAKtlB,MAAd,EAAsB;AACpBslB,IAAAA,EAAE,GAAG,KAAKtlB,MAAV;AACD;;AACD,OAAK,IAAI8Q,CAAC,GAAG,CAAR,EAAWwG,MAAM,GAAG,KAAKO,IAA9B,EAAoCP,MAAM,KAAK,IAAX,IAAmBxG,CAAC,GAAGuU,IAA3D,EAAiEvU,CAAC,EAAlE,EAAsE;AACpEwG,IAAAA,MAAM,GAAGA,MAAM,CAAC9W,IAAhB;AACD;;AACD,SAAO8W,MAAM,KAAK,IAAX,IAAmBxG,CAAC,GAAGwU,EAA9B,EAAkCxU,CAAC,IAAIwG,MAAM,GAAGA,MAAM,CAAC9W,IAAvD,EAA6D;AAC3D4hB,IAAAA,GAAG,CAACxhB,IAAJ,CAAS0W,MAAM,CAACzW,KAAhB;AACD;;AACD,SAAOuhB,GAAP;AACD,CA1BD;;AA4BA9M,OAAO,CAACzN,SAAR,CAAkB0d,YAAlB,GAAiC,UAAUF,IAAV,EAAgBC,EAAhB,EAAoB;AACnDA,EAAAA,EAAE,GAAGA,EAAE,IAAI,KAAKtlB,MAAhB;;AACA,MAAIslB,EAAE,GAAG,CAAT,EAAY;AACVA,IAAAA,EAAE,IAAI,KAAKtlB,MAAX;AACD;;AACDqlB,EAAAA,IAAI,GAAGA,IAAI,IAAI,CAAf;;AACA,MAAIA,IAAI,GAAG,CAAX,EAAc;AACZA,IAAAA,IAAI,IAAI,KAAKrlB,MAAb;AACD;;AACD,MAAIoiB,GAAG,GAAG,IAAI9M,OAAJ,EAAV;;AACA,MAAIgQ,EAAE,GAAGD,IAAL,IAAaC,EAAE,GAAG,CAAtB,EAAyB;AACvB,WAAOlD,GAAP;AACD;;AACD,MAAIiD,IAAI,GAAG,CAAX,EAAc;AACZA,IAAAA,IAAI,GAAG,CAAP;AACD;;AACD,MAAIC,EAAE,GAAG,KAAKtlB,MAAd,EAAsB;AACpBslB,IAAAA,EAAE,GAAG,KAAKtlB,MAAV;AACD;;AACD,OAAK,IAAI8Q,CAAC,GAAG,KAAK9Q,MAAb,EAAqBsX,MAAM,GAAG,KAAKC,IAAxC,EAA8CD,MAAM,KAAK,IAAX,IAAmBxG,CAAC,GAAGwU,EAArE,EAAyExU,CAAC,EAA1E,EAA8E;AAC5EwG,IAAAA,MAAM,GAAGA,MAAM,CAACE,IAAhB;AACD;;AACD,SAAOF,MAAM,KAAK,IAAX,IAAmBxG,CAAC,GAAGuU,IAA9B,EAAoCvU,CAAC,IAAIwG,MAAM,GAAGA,MAAM,CAACE,IAAzD,EAA+D;AAC7D4K,IAAAA,GAAG,CAACxhB,IAAJ,CAAS0W,MAAM,CAACzW,KAAhB;AACD;;AACD,SAAOuhB,GAAP;AACD,CA1BD;;AA4BA9M,OAAO,CAACzN,SAAR,CAAkB2d,OAAlB,GAA4B,YAAY;AACtC,MAAI3N,IAAI,GAAG,KAAKA,IAAhB;AACA,MAAIN,IAAI,GAAG,KAAKA,IAAhB;;AACA,OAAK,IAAID,MAAM,GAAGO,IAAlB,EAAwBP,MAAM,KAAK,IAAnC,EAAyCA,MAAM,GAAGA,MAAM,CAACE,IAAzD,EAA+D;AAC7D,QAAIrZ,CAAC,GAAGmZ,MAAM,CAACE,IAAf;AACAF,IAAAA,MAAM,CAACE,IAAP,GAAcF,MAAM,CAAC9W,IAArB;AACA8W,IAAAA,MAAM,CAAC9W,IAAP,GAAcrC,CAAd;AACD;;AACD,OAAK0Z,IAAL,GAAYN,IAAZ;AACA,OAAKA,IAAL,GAAYM,IAAZ;AACA,SAAO,IAAP;AACD,CAXD;;AAaA,SAASjX,IAAT,CAAesR,IAAf,EAAqBqG,IAArB,EAA2B;AACzBrG,EAAAA,IAAI,CAACqF,IAAL,GAAY,IAAIoN,IAAJ,CAASpM,IAAT,EAAerG,IAAI,CAACqF,IAApB,EAA0B,IAA1B,EAAgCrF,IAAhC,CAAZ;;AACA,MAAI,CAACA,IAAI,CAAC2F,IAAV,EAAgB;AACd3F,IAAAA,IAAI,CAAC2F,IAAL,GAAY3F,IAAI,CAACqF,IAAjB;AACD;;AACDrF,EAAAA,IAAI,CAAClS,MAAL;AACD;;AAED,SAAS0Y,OAAT,CAAkBxG,IAAlB,EAAwBqG,IAAxB,EAA8B;AAC5BrG,EAAAA,IAAI,CAAC2F,IAAL,GAAY,IAAI8M,IAAJ,CAASpM,IAAT,EAAe,IAAf,EAAqBrG,IAAI,CAAC2F,IAA1B,EAAgC3F,IAAhC,CAAZ;;AACA,MAAI,CAACA,IAAI,CAACqF,IAAV,EAAgB;AACdrF,IAAAA,IAAI,CAACqF,IAAL,GAAYrF,IAAI,CAAC2F,IAAjB;AACD;;AACD3F,EAAAA,IAAI,CAAClS,MAAL;AACD;;AAED,SAAS2kB,IAAT,CAAe9jB,KAAf,EAAsB2W,IAAtB,EAA4BhX,IAA5B,EAAkCokB,IAAlC,EAAwC;AACtC,MAAI,EAAE,gBAAgBD,IAAlB,CAAJ,EAA6B;AAC3B,WAAO,IAAIA,IAAJ,CAAS9jB,KAAT,EAAgB2W,IAAhB,EAAsBhX,IAAtB,EAA4BokB,IAA5B,CAAP;AACD;;AAED,OAAKA,IAAL,GAAYA,IAAZ;AACA,OAAK/jB,KAAL,GAAaA,KAAb;;AAEA,MAAI2W,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAAChX,IAAL,GAAY,IAAZ;AACA,SAAKgX,IAAL,GAAYA,IAAZ;AACD,GAHD,MAGO;AACL,SAAKA,IAAL,GAAY,IAAZ;AACD;;AAED,MAAIhX,IAAJ,EAAU;AACRA,IAAAA,IAAI,CAACgX,IAAL,GAAY,IAAZ;AACA,SAAKhX,IAAL,GAAYA,IAAZ;AACD,GAHD,MAGO;AACL,SAAKA,IAAL,GAAY,IAAZ;AACD;AACF;;;;;;UCjXD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;;;;;;;;IASqBilB;;;;0CAC0B,IAAI5mB,GAAJ;;;;;gCAG3C6mB,OACAC,UACM;AACN,UAAMpK,SAAS,GAAG,KAAKqK,YAAL,CAAkBvkB,GAAlB,CAAsBqkB,KAAtB,CAAlB;;AACA,UAAInK,SAAS,KAAK/L,SAAlB,EAA6B;AAC3B,aAAKoW,YAAL,CAAkB1lB,GAAlB,CAAsBwlB,KAAtB,EAA6B,CAACC,QAAD,CAA7B;AACD,OAFD,MAEO;AACL,YAAME,KAAK,GAAGtK,SAAS,CAACnM,OAAV,CAAkBuW,QAAlB,CAAd;;AACA,YAAIE,KAAK,GAAG,CAAZ,EAAe;AACbtK,UAAAA,SAAS,CAAC3a,IAAV,CAAe+kB,QAAf;AACD;AACF;AACF;;;yBAGCD,OAEM;AACN,UAAMnK,SAAS,GAAG,KAAKqK,YAAL,CAAkBvkB,GAAlB,CAAsBqkB,KAAtB,CAAlB;;AACA,UAAInK,SAAS,KAAK/L,SAAlB,EAA6B;AAAA,0CAH1B6B,IAG0B;AAH1BA,UAAAA,IAG0B;AAAA;;AAC3B,YAAIkK,SAAS,CAACvb,MAAV,KAAqB,CAAzB,EAA4B;AAC1B;AACA,cAAM2lB,QAAQ,GAAGpK,SAAS,CAAC,CAAD,CAA1B;AACAoK,UAAAA,QAAQ,CAAC1a,KAAT,CAAe,IAAf,EAAqBoG,IAArB;AACD,SAJD,MAIO;AACL,cAAIyU,QAAQ,GAAG,KAAf;AACA,cAAIC,WAAW,GAAG,IAAlB;AAEA,cAAMC,eAAe,GAAG7d,KAAK,CAACkd,IAAN,CAAW9J,SAAX,CAAxB;;AACA,eAAK,IAAIzK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkV,eAAe,CAAChmB,MAApC,EAA4C8Q,CAAC,EAA7C,EAAiD;AAC/C,gBAAM6U,SAAQ,GAAGK,eAAe,CAAClV,CAAD,CAAhC;;AACA,gBAAI;AACF6U,cAAAA,SAAQ,CAAC1a,KAAT,CAAe,IAAf,EAAqBoG,IAArB;AACD,aAFD,CAEE,OAAO3C,KAAP,EAAc;AACd,kBAAIqX,WAAW,KAAK,IAApB,EAA0B;AACxBD,gBAAAA,QAAQ,GAAG,IAAX;AACAC,gBAAAA,WAAW,GAAGrX,KAAd;AACD;AACF;AACF;;AAED,cAAIoX,QAAJ,EAAc;AACZ,kBAAMC,WAAN;AACD;AACF;AACF;AACF;;;yCAE0B;AACzB,WAAKH,YAAL,CAAkB3J,KAAlB;AACD;;;mCAEcyJ,OAAsBC,UAA0B;AAC7D,UAAMpK,SAAS,GAAG,KAAKqK,YAAL,CAAkBvkB,GAAlB,CAAsBqkB,KAAtB,CAAlB;;AACA,UAAInK,SAAS,KAAK/L,SAAlB,EAA6B;AAC3B,YAAMqW,KAAK,GAAGtK,SAAS,CAACnM,OAAV,CAAkBuW,QAAlB,CAAd;;AACA,YAAIE,KAAK,IAAI,CAAb,EAAgB;AACdtK,UAAAA,SAAS,CAAClY,MAAV,CAAiBwiB,KAAjB,EAAwB,CAAxB;AACD;AACF;AACF;;;;;;;;;;;ACzEH;;;;;;;;AASO,IAAMI,4BAA4B,GAAG,kCAArC;AACA,IAAMC,qBAAqB,GAAG,kCAA9B;AACA,IAAMC,kBAAkB,GAAG,kCAA3B,EAEP;;AACO,IAAMC,SAAS,GAAG,KAAlB,EAEP;;AACO,IAAMC,uBAAuB,GAAG,KAAhC;AAEA,IAAMC,kBAAkB,GAAG,CAA3B;AACA,IAAMC,qBAAqB,GAAG,CAA9B;AACA,IAAMC,+BAA+B,GAAG,CAAxC;AACA,IAAMC,wCAAwC,GAAG,CAAjD;AACA,IAAMC,wCAAwC,GAAG,CAAjD;AACA,IAAMC,0BAA0B,GAAG,CAAnC;AACA,IAAMC,+BAA+B,GAAG,CAAxC;AAEA,IAAMC,4BAA4B,GAAG,CAArC;AACA,IAAMC,+BAA+B,GAAG,CAAxC;AAEA,IAAMC,6BAA6B,GAAG,6BAAtC;AAEA,IAAMC,wDAA8C,GACzD,mCADK;AAGA,IAAMC,kCAAkC,GAC7C,gCADK;AAGA,IAAMC,0CAAgC,GAC3C,kCADK;AAGA,IAAMC,uCAAuC,GAClD,wCADK;AAGA,IAAMC,kCAAkC,GAC7C,iCADK;AAGA,IAAMC,8CAA8C,GACzD,2CADK;AAGA,IAAMC,sCAAsC,GACjD,mCADK;AAGA,IAAMC,sDAA4C,GACvD,uCADK;AAGA,IAAMC,2BAA2B,GAAG,wBAApC;AAEA,IAAMC,yDAA+C,GAC1D,uCADK;AAGA,IAAMC,2DAAiD,GAC5D,8CADK;AAGA,IAAMC,uCAAuC,GAClD,sCADK;AAGA,IAAMC,wDAA8C,GACzD,8CADK;AAGA,IAAMC,oCAAoC,GAC/C,oCADK;AAGA,IAAMC,uBAAuB,GAAG,CAAhC;;ACzEP;;;;;;;;AASO,SAASC,2BAAT,CAA6Bzf,GAA7B,EAA+C;AACpD,MAAI;AACF,WAAO0f,YAAY,CAACC,OAAb,CAAqB3f,GAArB,CAAP;AACD,GAFD,CAEE,OAAOoG,KAAP,EAAc;AACd,WAAO,IAAP;AACD;AACF;AAEM,SAASwZ,sBAAT,CAAgC5f,GAAhC,EAAmD;AACxD,MAAI;AACF0f,IAAAA,YAAY,CAACG,UAAb,CAAwB7f,GAAxB;AACD,GAFD,CAEE,OAAOoG,KAAP,EAAc,CAAE;AACnB;AAEM,SAAS0Z,2BAAT,CAA6B9f,GAA7B,EAA0CzH,KAA1C,EAA4D;AACjE,MAAI;AACF,WAAOmnB,YAAY,CAACK,OAAb,CAAqB/f,GAArB,EAA0BzH,KAA1B,CAAP;AACD,GAFD,CAEE,OAAO6N,KAAP,EAAc,CAAE;AACnB;AAEM,SAAS4Z,qBAAT,CAA+BhgB,GAA/B,EAAiD;AACtD,MAAI;AACF,WAAOigB,cAAc,CAACN,OAAf,CAAuB3f,GAAvB,CAAP;AACD,GAFD,CAEE,OAAOoG,KAAP,EAAc;AACd,WAAO,IAAP;AACD;AACF;AAEM,SAAS8Z,wBAAT,CAAkClgB,GAAlC,EAAqD;AAC1D,MAAI;AACFigB,IAAAA,cAAc,CAACJ,UAAf,CAA0B7f,GAA1B;AACD,GAFD,CAEE,OAAOoG,KAAP,EAAc,CAAE;AACnB;AAEM,SAAS+Z,qBAAT,CAA+BngB,GAA/B,EAA4CzH,KAA5C,EAA8D;AACnE,MAAI;AACF,WAAO0nB,cAAc,CAACF,OAAf,CAAuB/f,GAAvB,EAA4BzH,KAA5B,CAAP;AACD,GAFD,CAEE,OAAO6N,KAAP,EAAc,CAAE;AACnB;;AC7CD,IAAIga,aAAa,GAAG,SAASA,aAAT,CAAuB9pB,CAAvB,EAA0BkB,CAA1B,EAA6B;AAC/C,SAAOlB,CAAC,KAAKkB,CAAb;AACD,CAFD;;AAIA,6BAAe,SAAS,IAAC6oB,QAAV,EAAoB;AACjC,MAAIC,OAAO,GAAGllB,SAAS,CAAC1D,MAAV,GAAmB,CAAnB,IAAwB0D,SAAS,CAAC,CAAD,CAAT,KAAiB8L,SAAzC,GAAqD9L,SAAS,CAAC,CAAD,CAA9D,GAAoEglB,aAAlF;AAEA,MAAIxV,QAAQ,GAAG,KAAK,CAApB;AACA,MAAID,QAAQ,GAAG,EAAf;AACA,MAAI4V,UAAU,GAAG,KAAK,CAAtB;AACA,MAAIC,UAAU,GAAG,KAAjB;;AAEA,MAAIC,mBAAmB,GAAG,SAASA,mBAAT,CAA6BC,MAA7B,EAAqCnD,KAArC,EAA4C;AACpE,WAAO+C,OAAO,CAACI,MAAD,EAAS/V,QAAQ,CAAC4S,KAAD,CAAjB,CAAd;AACD,GAFD;;AAIA,MAAIhV,MAAM,GAAG,SAASA,MAAT,GAAkB;AAC7B,SAAK,IAAIoY,IAAI,GAAGvlB,SAAS,CAAC1D,MAArB,EAA6BkpB,OAAO,GAAG/gB,KAAK,CAAC8gB,IAAD,CAA5C,EAAoDE,IAAI,GAAG,CAAhE,EAAmEA,IAAI,GAAGF,IAA1E,EAAgFE,IAAI,EAApF,EAAwF;AACtFD,MAAAA,OAAO,CAACC,IAAD,CAAP,GAAgBzlB,SAAS,CAACylB,IAAD,CAAzB;AACD;;AAED,QAAIL,UAAU,IAAI5V,QAAQ,KAAK,IAA3B,IAAmCgW,OAAO,CAAClpB,MAAR,KAAmBiT,QAAQ,CAACjT,MAA/D,IAAyEkpB,OAAO,CAACE,KAAR,CAAcL,mBAAd,CAA7E,EAAiH;AAC/G,aAAOF,UAAP;AACD;;AAEDC,IAAAA,UAAU,GAAG,IAAb;AACA5V,IAAAA,QAAQ,GAAG,IAAX;AACAD,IAAAA,QAAQ,GAAGiW,OAAX;AACAL,IAAAA,UAAU,GAAGF,QAAQ,CAAC1d,KAAT,CAAe,IAAf,EAAqBie,OAArB,CAAb;AACA,WAAOL,UAAP;AACD,GAdD;;AAgBA,SAAOhY,MAAP;AACD;;ACnCD;;;;;;;;AAkBA;AACA;AACA;AACO,SAASwY,cAAT,CAAwB3R,IAAxB,EAAiE;AACtE,MAAI,CAACA,IAAI,CAAC4R,aAAV,EAAyB;AACvB,WAAO,IAAP;AACD;;AACD,SAAO5R,IAAI,CAAC4R,aAAL,CAAmBC,WAA1B;AACD,EAED;AACA;;AACO,SAASC,cAAT,CAAwB9R,IAAxB,EAA+D;AACpE,MAAM+R,UAAU,GAAGJ,cAAc,CAAC3R,IAAD,CAAjC;;AACA,MAAI+R,UAAJ,EAAgB;AACd,WAAOA,UAAU,CAACC,YAAlB;AACD;;AACD,SAAO,IAAP;AACD,EAED;AACA;;AACO,SAASC,qCAAT,CAA+CjS,IAA/C,EAAwE;AAC7E,MAAMkS,UAAU,GAAGC,oBAAoB,CAACnS,IAAD,CAAvC;AACA,SAAOoS,gBAAgB,CAAC,CACtBpS,IAAI,CAACqS,qBAAL,EADsB,EAEtB;AACEC,IAAAA,GAAG,EAAEJ,UAAU,CAACK,SADlB;AAEEC,IAAAA,IAAI,EAAEN,UAAU,CAACO,UAFnB;AAGEC,IAAAA,MAAM,EAAER,UAAU,CAACS,YAHrB;AAIEC,IAAAA,KAAK,EAAEV,UAAU,CAACW,WAJpB;AAKE;AACA;AACA;AACAC,IAAAA,KAAK,EAAE,CART;AASEC,IAAAA,MAAM,EAAE;AATV,GAFsB,CAAD,CAAvB;AAcD,EAED;AACA;;AACO,SAASX,gBAAT,CAA0BY,KAA1B,EAAoD;AACzD,SAAOA,KAAK,CAACjH,MAAN,CAAa,UAACkH,YAAD,EAAeC,IAAf,EAAwB;AAC1C,QAAID,YAAY,IAAI,IAApB,EAA0B;AACxB,aAAOC,IAAP;AACD;;AAED,WAAO;AACLZ,MAAAA,GAAG,EAAEW,YAAY,CAACX,GAAb,GAAmBY,IAAI,CAACZ,GADxB;AAELE,MAAAA,IAAI,EAAES,YAAY,CAACT,IAAb,GAAoBU,IAAI,CAACV,IAF1B;AAGLM,MAAAA,KAAK,EAAEG,YAAY,CAACH,KAHf;AAILC,MAAAA,MAAM,EAAEE,YAAY,CAACF,MAJhB;AAKLL,MAAAA,MAAM,EAAEO,YAAY,CAACP,MAAb,GAAsBQ,IAAI,CAACR,MAL9B;AAMLE,MAAAA,KAAK,EAAEK,YAAY,CAACL,KAAb,GAAqBM,IAAI,CAACN;AAN5B,KAAP;AAQD,GAbM,CAAP;AAcD,EAED;AACA;;AACO,SAASO,2BAAT,CACLnT,IADK,EAELoT,cAFK,EAGC;AACN,MAAMC,WAAW,GAAGvB,cAAc,CAAC9R,IAAD,CAAlC;;AACA,MAAIqT,WAAW,IAAIA,WAAW,KAAKD,cAAnC,EAAmD;AACjD,QAAMJ,KAA+B,GAAG,CAAChT,IAAI,CAACqS,qBAAL,EAAD,CAAxC;AACA,QAAIiB,aAAiC,GAAGD,WAAxC;AACA,QAAIE,WAAW,GAAG,KAAlB;;AACA,WAAOD,aAAP,EAAsB;AACpB,UAAMJ,IAAI,GAAGjB,qCAAqC,CAACqB,aAAD,CAAlD;AACAN,MAAAA,KAAK,CAAC9pB,IAAN,CAAWgqB,IAAX;AACAI,MAAAA,aAAa,GAAGxB,cAAc,CAACwB,aAAD,CAA9B;;AAEA,UAAIC,WAAJ,EAAiB;AACf;AACD,OAPmB,CAQpB;AACA;AACA;;;AACA,UAAID,aAAa,IAAI3B,cAAc,CAAC2B,aAAD,CAAd,KAAkCF,cAAvD,EAAuE;AACrEG,QAAAA,WAAW,GAAG,IAAd;AACD;AACF;;AAED,WAAOnB,gBAAgB,CAACY,KAAD,CAAvB;AACD,GArBD,MAqBO;AACL,WAAOhT,IAAI,CAACqS,qBAAL,EAAP;AACD;AACF;AAEM,SAASF,oBAAT,CAA8BqB,UAA9B,EAaL;AACA,MAAMC,eAAe,GAAGC,MAAM,CAACC,gBAAP,CAAwBH,UAAxB,CAAxB;AACA,SAAO;AACLf,IAAAA,UAAU,EAAErY,QAAQ,CAACqZ,eAAe,CAACG,eAAjB,EAAkC,EAAlC,CADf;AAELf,IAAAA,WAAW,EAAEzY,QAAQ,CAACqZ,eAAe,CAACI,gBAAjB,EAAmC,EAAnC,CAFhB;AAGLtB,IAAAA,SAAS,EAAEnY,QAAQ,CAACqZ,eAAe,CAACK,cAAjB,EAAiC,EAAjC,CAHd;AAILnB,IAAAA,YAAY,EAAEvY,QAAQ,CAACqZ,eAAe,CAACM,iBAAjB,EAAoC,EAApC,CAJjB;AAKLC,IAAAA,UAAU,EAAE5Z,QAAQ,CAACqZ,eAAe,CAACO,UAAjB,EAA6B,EAA7B,CALf;AAMLC,IAAAA,WAAW,EAAE7Z,QAAQ,CAACqZ,eAAe,CAACQ,WAAjB,EAA8B,EAA9B,CANhB;AAOLC,IAAAA,SAAS,EAAE9Z,QAAQ,CAACqZ,eAAe,CAACS,SAAjB,EAA4B,EAA5B,CAPd;AAQLC,IAAAA,YAAY,EAAE/Z,QAAQ,CAACqZ,eAAe,CAACU,YAAjB,EAA+B,EAA/B,CARjB;AASLC,IAAAA,WAAW,EAAEha,QAAQ,CAACqZ,eAAe,CAACW,WAAjB,EAA8B,EAA9B,CAThB;AAULC,IAAAA,YAAY,EAAEja,QAAQ,CAACqZ,eAAe,CAACY,YAAjB,EAA+B,EAA/B,CAVjB;AAWLC,IAAAA,UAAU,EAAEla,QAAQ,CAACqZ,eAAe,CAACa,UAAjB,EAA6B,EAA7B,CAXf;AAYLC,IAAAA,aAAa,EAAEna,QAAQ,CAACqZ,eAAe,CAACc,aAAjB,EAAgC,EAAhC;AAZlB,GAAP;AAcD;;;;;;;;AC3ID;;;;;;;;AASA;AAOA,IAAM3tB,cAAM,GAAGD,MAAM,CAACC,MAAtB,EAEA;AACA;AACA;;IAEM4tB;AAMJ,uBAAYC,GAAZ,EAA2BC,SAA3B,EAAmD;AAAA;;AACjD,SAAK1U,IAAL,GAAYyU,GAAG,CAAClgB,aAAJ,CAAkB,KAAlB,CAAZ;AACA,SAAKogB,MAAL,GAAcF,GAAG,CAAClgB,aAAJ,CAAkB,KAAlB,CAAd;AACA,SAAKqgB,OAAL,GAAeH,GAAG,CAAClgB,aAAJ,CAAkB,KAAlB,CAAf;AACA,SAAKsgB,OAAL,GAAeJ,GAAG,CAAClgB,aAAJ,CAAkB,KAAlB,CAAf;AAEA,SAAKogB,MAAL,CAAYvK,KAAZ,CAAkB0K,WAAlB,GAAgCC,aAAa,CAACJ,MAA9C;AACA,SAAKC,OAAL,CAAaxK,KAAb,CAAmB0K,WAAnB,GAAiCC,aAAa,CAACH,OAA/C;AACA,SAAKC,OAAL,CAAazK,KAAb,CAAmB4K,eAAnB,GAAqCD,aAAa,CAACE,UAAnD;AAEAruB,IAAAA,cAAM,CAAC,KAAKoZ,IAAL,CAAUoK,KAAX,EAAkB;AACtB0K,MAAAA,WAAW,EAAEC,aAAa,CAACG,MADL;AAEtBC,MAAAA,aAAa,EAAE,MAFO;AAGtBC,MAAAA,QAAQ,EAAE;AAHY,KAAlB,CAAN;AAMA,SAAKpV,IAAL,CAAUoK,KAAV,CAAgBiL,MAAhB,GAAyB,UAAzB;AAEA,SAAKrV,IAAL,CAAUsV,WAAV,CAAsB,KAAKX,MAA3B;AACA,SAAKA,MAAL,CAAYW,WAAZ,CAAwB,KAAKV,OAA7B;AACA,SAAKA,OAAL,CAAaU,WAAb,CAAyB,KAAKT,OAA9B;AACAH,IAAAA,SAAS,CAACY,WAAV,CAAsB,KAAKtV,IAA3B;AACD;;;;6BAEQ;AACP,UAAI,KAAKA,IAAL,CAAUuV,UAAd,EAA0B;AACxB,aAAKvV,IAAL,CAAUuV,UAAV,CAAqBC,WAArB,CAAiC,KAAKxV,IAAtC;AACD;AACF;;;2BAEMyV,KAAWC,MAAW;AAC3BC,MAAAA,OAAO,CAACD,IAAD,EAAO,QAAP,EAAiB,KAAK1V,IAAtB,CAAP;AACA2V,MAAAA,OAAO,CAACD,IAAD,EAAO,QAAP,EAAiB,KAAKf,MAAtB,CAAP;AACAgB,MAAAA,OAAO,CAACD,IAAD,EAAO,SAAP,EAAkB,KAAKd,OAAvB,CAAP;AAEAhuB,MAAAA,cAAM,CAAC,KAAKiuB,OAAL,CAAazK,KAAd,EAAqB;AACzB2I,QAAAA,MAAM,EACJ0C,GAAG,CAAC1C,MAAJ,GACA2C,IAAI,CAACnD,SADL,GAEAmD,IAAI,CAAC/C,YAFL,GAGA+C,IAAI,CAACpB,UAHL,GAIAoB,IAAI,CAACnB,aAJL,GAKA,IAPuB;AAQzBzB,QAAAA,KAAK,EACH2C,GAAG,CAAC3C,KAAJ,GACA4C,IAAI,CAACjD,UADL,GAEAiD,IAAI,CAAC7C,WAFL,GAGA6C,IAAI,CAACtB,WAHL,GAIAsB,IAAI,CAACrB,YAJL,GAKA;AAduB,OAArB,CAAN;AAiBAztB,MAAAA,cAAM,CAAC,KAAKoZ,IAAL,CAAUoK,KAAX,EAAkB;AACtBkI,QAAAA,GAAG,EAAEmD,GAAG,CAACnD,GAAJ,GAAUoD,IAAI,CAACxB,SAAf,GAA2B,IADV;AAEtB1B,QAAAA,IAAI,EAAEiD,GAAG,CAACjD,IAAJ,GAAWkD,IAAI,CAAC1B,UAAhB,GAA6B;AAFb,OAAlB,CAAN;AAID;;;;;;IAGG4B;AAKJ,sBAAYnB,GAAZ,EAA2BC,SAA3B,EAAmD;AAAA;;AACjD,SAAKmB,GAAL,GAAWpB,GAAG,CAAClgB,aAAJ,CAAkB,KAAlB,CAAX;AACA3N,IAAAA,cAAM,CAAC,KAAKivB,GAAL,CAASzL,KAAV,EAAiB;AACrB0L,MAAAA,OAAO,EAAE,MADY;AAErBC,MAAAA,QAAQ,EAAE,YAFW;AAGrBf,MAAAA,eAAe,EAAE,SAHI;AAIrBgB,MAAAA,YAAY,EAAE,KAJO;AAKrBC,MAAAA,UAAU,EACR,0EANmB;AAOrBC,MAAAA,UAAU,EAAE,MAPS;AAQrBtB,MAAAA,OAAO,EAAE,SARY;AASrBO,MAAAA,aAAa,EAAE,MATM;AAUrBC,MAAAA,QAAQ,EAAE,OAVW;AAWrBe,MAAAA,QAAQ,EAAE,MAXW;AAYrBC,MAAAA,UAAU,EAAE;AAZS,KAAjB,CAAN;AAeA,SAAKC,QAAL,GAAgB5B,GAAG,CAAClgB,aAAJ,CAAkB,MAAlB,CAAhB;AACA,SAAKshB,GAAL,CAASP,WAAT,CAAqB,KAAKe,QAA1B;AACAzvB,IAAAA,cAAM,CAAC,KAAKyvB,QAAL,CAAcjM,KAAf,EAAsB;AAC1BkM,MAAAA,KAAK,EAAE,SADmB;AAE1BzD,MAAAA,WAAW,EAAE,mBAFa;AAG1BwB,MAAAA,YAAY,EAAE,QAHY;AAI1BJ,MAAAA,WAAW,EAAE;AAJa,KAAtB,CAAN;AAMA,SAAKsC,OAAL,GAAe9B,GAAG,CAAClgB,aAAJ,CAAkB,MAAlB,CAAf;AACA,SAAKshB,GAAL,CAASP,WAAT,CAAqB,KAAKiB,OAA1B;AACA3vB,IAAAA,cAAM,CAAC,KAAK2vB,OAAL,CAAanM,KAAd,EAAqB;AACzBkM,MAAAA,KAAK,EAAE;AADkB,KAArB,CAAN;AAIA,SAAKT,GAAL,CAASzL,KAAT,CAAeiL,MAAf,GAAwB,UAAxB;AACAX,IAAAA,SAAS,CAACY,WAAV,CAAsB,KAAKO,GAA3B;AACD;;;;6BAEQ;AACP,UAAI,KAAKA,GAAL,CAASN,UAAb,EAAyB;AACvB,aAAKM,GAAL,CAASN,UAAT,CAAoBC,WAApB,CAAgC,KAAKK,GAArC;AACD;AACF;;;+BAEUhsB,MAAcipB,OAAeC,QAAgB;AACtD,WAAKsD,QAAL,CAAcG,WAAd,GAA4B3sB,IAA5B;AACA,WAAK0sB,OAAL,CAAaC,WAAb,GACE3b,IAAI,CAAC4b,KAAL,CAAW3D,KAAX,IAAoB,OAApB,GAA8BjY,IAAI,CAAC4b,KAAL,CAAW1D,MAAX,CAA9B,GAAmD,IADrD;AAED;;;mCAEc2C,MAAWgB,QAAa;AACrC,UAAMC,OAAO,GAAG,KAAKd,GAAL,CAASxD,qBAAT,EAAhB;AACA,UAAMuE,MAAM,GAAGC,UAAU,CAACnB,IAAD,EAAOgB,MAAP,EAAe;AACtC5D,QAAAA,KAAK,EAAE6D,OAAO,CAAC7D,KADuB;AAEtCC,QAAAA,MAAM,EAAE4D,OAAO,CAAC5D;AAFsB,OAAf,CAAzB;AAIAnsB,MAAAA,cAAM,CAAC,KAAKivB,GAAL,CAASzL,KAAV,EAAiBwM,MAAM,CAACxM,KAAxB,CAAN;AACD;;;;;;IAGkB0M;AAQnB,mBAAYC,KAAZ,EAA0B;AAAA;;AACxB;AACA,QAAMC,aAAa,GAAGtD,MAAM,CAACuD,gCAAP,IAA2CvD,MAAjE;AACA,SAAKA,MAAL,GAAcsD,aAAd,CAHwB,CAKxB;;AACA,QAAME,eAAe,GAAGxD,MAAM,CAACuD,gCAAP,IAA2CvD,MAAnE;AACA,SAAKwD,eAAL,GAAuBA,eAAvB;AAEA,QAAMzC,GAAG,GAAGuC,aAAa,CAACG,QAA1B;AACA,SAAKzC,SAAL,GAAiBD,GAAG,CAAClgB,aAAJ,CAAkB,KAAlB,CAAjB;AACA,SAAKmgB,SAAL,CAAetK,KAAf,CAAqBiL,MAArB,GAA8B,UAA9B;AAEA,SAAKQ,GAAL,GAAW,IAAID,UAAJ,CAAenB,GAAf,EAAoB,KAAKC,SAAzB,CAAX;AACA,SAAK1B,KAAL,GAAa,EAAb;AAEA,SAAK+D,KAAL,GAAaA,KAAb;AAEAtC,IAAAA,GAAG,CAAC2C,IAAJ,CAAS9B,WAAT,CAAqB,KAAKZ,SAA1B;AACD;;;;6BAEQ;AACP,WAAKmB,GAAL,CAASwB,MAAT;AACA,WAAKrE,KAAL,CAAW7mB,OAAX,CAAmB,UAAA+mB,IAAI,EAAI;AACzBA,QAAAA,IAAI,CAACmE,MAAL;AACD,OAFD;AAGA,WAAKrE,KAAL,CAAW1qB,MAAX,GAAoB,CAApB;;AACA,UAAI,KAAKosB,SAAL,CAAea,UAAnB,EAA+B;AAC7B,aAAKb,SAAL,CAAea,UAAf,CAA0BC,WAA1B,CAAsC,KAAKd,SAA3C;AACD;AACF;;;4BAEO4C,OAA2BztB,MAAgB;AAAA;;AACjD;AACA;AACA,UAAM0tB,QAAQ,GAAGD,KAAK,CAACpf,MAAN,CAAa,UAAA8H,IAAI;AAAA,eAAIA,IAAI,CAACwX,QAAL,KAAkBvK,IAAI,CAACwK,YAA3B;AAAA,OAAjB,CAAjB;;AAEA,aAAO,KAAKzE,KAAL,CAAW1qB,MAAX,GAAoBivB,QAAQ,CAACjvB,MAApC,EAA4C;AAC1C,YAAM4qB,IAAI,GAAG,KAAKF,KAAL,CAAW9nB,GAAX,EAAb;AACAgoB,QAAAA,IAAI,CAACmE,MAAL;AACD;;AACD,UAAIE,QAAQ,CAACjvB,MAAT,KAAoB,CAAxB,EAA2B;AACzB;AACD;;AAED,aAAO,KAAK0qB,KAAL,CAAW1qB,MAAX,GAAoBivB,QAAQ,CAACjvB,MAApC,EAA4C;AAC1C,aAAK0qB,KAAL,CAAW9pB,IAAX,CAAgB,IAAIsrB,WAAJ,CAAgB,KAAKd,MAAL,CAAYyD,QAA5B,EAAsC,KAAKzC,SAA3C,CAAhB;AACD;;AAED,UAAMgD,QAAQ,GAAG;AACfpF,QAAAA,GAAG,EAAEnL,MAAM,CAACwQ,iBADG;AAEf/E,QAAAA,KAAK,EAAEzL,MAAM,CAACyQ,iBAFC;AAGflF,QAAAA,MAAM,EAAEvL,MAAM,CAACyQ,iBAHA;AAIfpF,QAAAA,IAAI,EAAErL,MAAM,CAACwQ;AAJE,OAAjB;AAMAJ,MAAAA,QAAQ,CAACprB,OAAT,CAAiB,UAAC0rB,OAAD,EAAU1J,KAAV,EAAoB;AACnC,YAAMsH,GAAG,GAAGtC,2BAA2B,CAAC0E,OAAD,EAAU,KAAI,CAACnE,MAAf,CAAvC;AACA,YAAMgC,IAAI,GAAGvD,oBAAoB,CAAC0F,OAAD,CAAjC;AAEAH,QAAAA,QAAQ,CAACpF,GAAT,GAAezX,IAAI,CAACG,GAAL,CAAS0c,QAAQ,CAACpF,GAAlB,EAAuBmD,GAAG,CAACnD,GAAJ,GAAUoD,IAAI,CAACxB,SAAtC,CAAf;AACAwD,QAAAA,QAAQ,CAAC9E,KAAT,GAAiB/X,IAAI,CAACC,GAAL,CACf4c,QAAQ,CAAC9E,KADM,EAEf6C,GAAG,CAACjD,IAAJ,GAAWiD,GAAG,CAAC3C,KAAf,GAAuB4C,IAAI,CAACzB,WAFb,CAAjB;AAIAyD,QAAAA,QAAQ,CAAChF,MAAT,GAAkB7X,IAAI,CAACC,GAAL,CAChB4c,QAAQ,CAAChF,MADO,EAEhB+C,GAAG,CAACnD,GAAJ,GAAUmD,GAAG,CAAC1C,MAAd,GAAuB2C,IAAI,CAACvB,YAFZ,CAAlB;AAIAuD,QAAAA,QAAQ,CAAClF,IAAT,GAAgB3X,IAAI,CAACG,GAAL,CAAS0c,QAAQ,CAAClF,IAAlB,EAAwBiD,GAAG,CAACjD,IAAJ,GAAWkD,IAAI,CAAC1B,UAAxC,CAAhB;AAEA,YAAMd,IAAI,GAAG,KAAI,CAACF,KAAL,CAAW7E,KAAX,CAAb;AACA+E,QAAAA,IAAI,CAAC4E,MAAL,CAAYrC,GAAZ,EAAiBC,IAAjB;AACD,OAjBD;;AAmBA,UAAI,CAAC7rB,IAAL,EAAW;AACTA,QAAAA,IAAI,GAAG0tB,QAAQ,CAAC,CAAD,CAAR,CAAYQ,QAAZ,CAAqBC,WAArB,EAAP;AAEA,YAAMhY,IAAI,GAAGuX,QAAQ,CAAC,CAAD,CAArB;AACA,YAAMU,iBAAiB,GACrB,KAAKlB,KAAL,CAAWmB,gCAAX,CAA4ClY,IAA5C,CADF;;AAEA,YAAIiY,iBAAJ,EAAuB;AACrB,cAAM9sB,EAAE,GAAG8sB,iBAAiB,CAACE,mBAAlB,CAAsCnY,IAAtC,EAA4C,IAA5C,CAAX;;AACA,cAAI7U,EAAJ,EAAQ;AACN,gBAAMitB,SAAS,GAAGH,iBAAiB,CAACI,wBAAlB,CAChBltB,EADgB,EAEhB,IAFgB,CAAlB;;AAIA,gBAAIitB,SAAJ,EAAe;AACbvuB,cAAAA,IAAI,IAAI,UAAUuuB,SAAV,GAAsB,GAA9B;AACD;AACF;AACF;AACF;;AAED,WAAKvC,GAAL,CAASyC,UAAT,CACEzuB,IADF,EAEE6tB,QAAQ,CAAC9E,KAAT,GAAiB8E,QAAQ,CAAClF,IAF5B,EAGEkF,QAAQ,CAAChF,MAAT,GAAkBgF,QAAQ,CAACpF,GAH7B;AAKA,UAAMiG,SAAS,GAAGpF,2BAA2B,CAC3C,KAAK+D,eAAL,CAAqBC,QAArB,CAA8BqB,eADa,EAE3C,KAAK9E,MAFsC,CAA7C;AAKA,WAAKmC,GAAL,CAAS4C,cAAT,CACE;AACEnG,QAAAA,GAAG,EAAEoF,QAAQ,CAACpF,GADhB;AAEEE,QAAAA,IAAI,EAAEkF,QAAQ,CAAClF,IAFjB;AAGEO,QAAAA,MAAM,EAAE2E,QAAQ,CAAChF,MAAT,GAAkBgF,QAAQ,CAACpF,GAHrC;AAIEQ,QAAAA,KAAK,EAAE4E,QAAQ,CAAC9E,KAAT,GAAiB8E,QAAQ,CAAClF;AAJnC,OADF,EAOE;AACEF,QAAAA,GAAG,EAAEiG,SAAS,CAACjG,GAAV,GAAgB,KAAK4E,eAAL,CAAqBwB,OAD5C;AAEElG,QAAAA,IAAI,EAAE+F,SAAS,CAAC/F,IAAV,GAAiB,KAAK0E,eAAL,CAAqByB,OAF9C;AAGE5F,QAAAA,MAAM,EAAE,KAAKmE,eAAL,CAAqB0B,WAH/B;AAIE9F,QAAAA,KAAK,EAAE,KAAKoE,eAAL,CAAqB2B;AAJ9B,OAPF;AAcD;;;;;;;;AAGH,SAAShC,UAAT,CACEnB,IADF,EAEEgB,MAFF,EAGEoC,OAHF,EAIE;AACA,MAAMC,SAAS,GAAGle,IAAI,CAACC,GAAL,CAASge,OAAO,CAAC/F,MAAjB,EAAyB,EAAzB,CAAlB;AACA,MAAMiG,QAAQ,GAAGne,IAAI,CAACC,GAAL,CAASge,OAAO,CAAChG,KAAjB,EAAwB,EAAxB,CAAjB;AACA,MAAMoC,MAAM,GAAG,CAAf;AAEA,MAAI5C,GAAJ;;AACA,MAAIoD,IAAI,CAACpD,GAAL,GAAWoD,IAAI,CAAC3C,MAAhB,GAAyBgG,SAAzB,IAAsCrC,MAAM,CAACpE,GAAP,GAAaoE,MAAM,CAAC3D,MAA9D,EAAsE;AACpE,QAAI2C,IAAI,CAACpD,GAAL,GAAWoD,IAAI,CAAC3C,MAAhB,GAAyB2D,MAAM,CAACpE,GAAP,GAAa,CAA1C,EAA6C;AAC3CA,MAAAA,GAAG,GAAGoE,MAAM,CAACpE,GAAP,GAAa4C,MAAnB;AACD,KAFD,MAEO;AACL5C,MAAAA,GAAG,GAAGoD,IAAI,CAACpD,GAAL,GAAWoD,IAAI,CAAC3C,MAAhB,GAAyBmC,MAA/B;AACD;AACF,GAND,MAMO,IAAIQ,IAAI,CAACpD,GAAL,GAAWyG,SAAX,IAAwBrC,MAAM,CAACpE,GAAP,GAAaoE,MAAM,CAAC3D,MAAhD,EAAwD;AAC7D,QAAI2C,IAAI,CAACpD,GAAL,GAAWyG,SAAX,GAAuB7D,MAAvB,GAAgCwB,MAAM,CAACpE,GAAP,GAAa4C,MAAjD,EAAyD;AACvD5C,MAAAA,GAAG,GAAGoE,MAAM,CAACpE,GAAP,GAAa4C,MAAnB;AACD,KAFD,MAEO;AACL5C,MAAAA,GAAG,GAAGoD,IAAI,CAACpD,GAAL,GAAWyG,SAAX,GAAuB7D,MAA7B;AACD;AACF,GANM,MAMA;AACL5C,IAAAA,GAAG,GAAGoE,MAAM,CAACpE,GAAP,GAAaoE,MAAM,CAAC3D,MAApB,GAA6BgG,SAA7B,GAAyC7D,MAA/C;AACD;;AAED,MAAI1C,IAAqB,GAAGkD,IAAI,CAAClD,IAAL,GAAY0C,MAAxC;;AACA,MAAIQ,IAAI,CAAClD,IAAL,GAAYkE,MAAM,CAAClE,IAAvB,EAA6B;AAC3BA,IAAAA,IAAI,GAAGkE,MAAM,CAAClE,IAAP,GAAc0C,MAArB;AACD;;AACD,MAAIQ,IAAI,CAAClD,IAAL,GAAYwG,QAAZ,GAAuBtC,MAAM,CAAClE,IAAP,GAAckE,MAAM,CAAC5D,KAAhD,EAAuD;AACrDN,IAAAA,IAAI,GAAGkE,MAAM,CAAClE,IAAP,GAAckE,MAAM,CAAC5D,KAArB,GAA6BkG,QAA7B,GAAwC9D,MAA/C;AACD;;AAED5C,EAAAA,GAAG,IAAI,IAAP;AACAE,EAAAA,IAAI,IAAI,IAAR;AACA,SAAO;AACLpI,IAAAA,KAAK,EAAE;AAACkI,MAAAA,GAAG,EAAHA,GAAD;AAAME,MAAAA,IAAI,EAAJA;AAAN;AADF,GAAP;AAGD;;AAED,SAASmD,OAAT,CAAiBD,IAAjB,EAA4BuD,IAA5B,EAA0CjZ,IAA1C,EAA6D;AAC3DpZ,EAAAA,cAAM,CAACoZ,IAAI,CAACoK,KAAN,EAAa;AACjB0J,IAAAA,cAAc,EAAE4B,IAAI,CAACuD,IAAI,GAAG,KAAR,CAAJ,GAAqB,IADpB;AAEjBrF,IAAAA,eAAe,EAAE8B,IAAI,CAACuD,IAAI,GAAG,MAAR,CAAJ,GAAsB,IAFtB;AAGjBpF,IAAAA,gBAAgB,EAAE6B,IAAI,CAACuD,IAAI,GAAG,OAAR,CAAJ,GAAuB,IAHxB;AAIjBlF,IAAAA,iBAAiB,EAAE2B,IAAI,CAACuD,IAAI,GAAG,QAAR,CAAJ,GAAwB,IAJ1B;AAKjBC,IAAAA,WAAW,EAAE;AALI,GAAb,CAAN;AAOD;;AAED,IAAMnE,aAAa,GAAG;AACpBE,EAAAA,UAAU,EAAE,0BADQ;AAEpBL,EAAAA,OAAO,EAAE,uBAFW;AAGpBM,EAAAA,MAAM,EAAE,wBAHY;AAIpBP,EAAAA,MAAM,EAAE;AAJY,CAAtB;;ACzUA;;;;;;;;AAWA;AAEA,IAAMwE,aAAa,GAAG,IAAtB;AAEA,IAAIC,SAA2B,GAAG,IAAlC;AACA,IAAIC,OAAuB,GAAG,IAA9B;AAEO,SAASC,WAAT,CAAqBvC,KAArB,EAAmC;AACxC,MAAIrD,MAAM,CAACyD,QAAP,IAAmB,IAAvB,EAA6B;AAC3BJ,IAAAA,KAAK,CAACrT,IAAN,CAAW,qBAAX;AACA;AACD;;AACD0V,EAAAA,SAAS,GAAG,IAAZ;;AAEA,MAAIC,OAAO,KAAK,IAAhB,EAAsB;AACpBA,IAAAA,OAAO,CAAChC,MAAR;AACAgC,IAAAA,OAAO,GAAG,IAAV;AACD;AACF;AAEM,SAASE,WAAT,CACLhC,QADK,EAELiC,aAFK,EAGLzC,KAHK,EAIL0C,gBAJK,EAKL;AACA,MAAI/F,MAAM,CAACyD,QAAP,IAAmB,IAAvB,EAA6B;AAC3B,QAAII,QAAQ,IAAI,IAAZ,IAAoBA,QAAQ,CAAC,CAAD,CAAR,IAAe,IAAvC,EAA6C;AAC3CR,MAAAA,KAAK,CAACrT,IAAN,CAAW,qBAAX,EAAkC6T,QAAQ,CAAC,CAAD,CAA1C;AACD;;AACD;AACD;;AAED,MAAI6B,SAAS,KAAK,IAAlB,EAAwB;AACtBrc,IAAAA,YAAY,CAACqc,SAAD,CAAZ;AACD;;AAED,MAAI7B,QAAQ,IAAI,IAAhB,EAAsB;AACpB;AACD;;AAED,MAAI8B,OAAO,KAAK,IAAhB,EAAsB;AACpBA,IAAAA,OAAO,GAAG,IAAIvC,OAAJ,CAAYC,KAAZ,CAAV;AACD;;AAEDsC,EAAAA,OAAO,CAAC9Y,OAAR,CAAgBgX,QAAhB,EAA0BiC,aAA1B;;AAEA,MAAIC,gBAAJ,EAAsB;AACpBL,IAAAA,SAAS,GAAG7c,UAAU,CAAC;AAAA,aAAM+c,WAAW,CAACvC,KAAD,CAAjB;AAAA,KAAD,EAA2BoC,aAA3B,CAAtB;AACD;AACF;;AC7DD;;;;;;;;AASA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAEA,IAAIS,kBAA0C,GAAG,IAAIC,GAAJ,EAAjD;AAEe,SAASC,gBAAT,CACbC,MADa,EAEbhD,KAFa,EAGP;AACNgD,EAAAA,MAAM,CAAC1W,WAAP,CACE,6BADF,EAEE2W,2BAFF;AAIAD,EAAAA,MAAM,CAAC1W,WAAP,CAAmB,wBAAnB,EAA6C4W,sBAA7C;AACAF,EAAAA,MAAM,CAAC1W,WAAP,CAAmB,UAAnB,EAA+B6W,oBAA/B;AACAH,EAAAA,MAAM,CAAC1W,WAAP,CAAmB,uBAAnB,EAA4C8W,qBAA5C;AACAJ,EAAAA,MAAM,CAAC1W,WAAP,CAAmB,sBAAnB,EAA2C6W,oBAA3C;;AAEA,WAASC,qBAAT,GAAiC;AAC/BC,IAAAA,yBAAyB,CAAC1G,MAAD,CAAzB;AACD;;AAED,WAAS0G,yBAAT,CAAmC1G,MAAnC,EAAgD;AAC9C;AACA,QAAIA,MAAM,IAAI,OAAOA,MAAM,CAAC2G,gBAAd,KAAmC,UAAjD,EAA6D;AAC3D3G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,OAAxB,EAAiCC,OAAjC,EAA0C,IAA1C;AACA5G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,WAAxB,EAAqCE,YAArC,EAAmD,IAAnD;AACA7G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,WAAxB,EAAqCE,YAArC,EAAmD,IAAnD;AACA7G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,SAAxB,EAAmCE,YAAnC,EAAiD,IAAjD;AACA7G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,aAAxB,EAAuCG,aAAvC,EAAsD,IAAtD;AACA9G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,aAAxB,EAAuCI,aAAvC,EAAsD,IAAtD;AACA/G,MAAAA,MAAM,CAAC2G,gBAAP,CAAwB,WAAxB,EAAqCK,WAArC,EAAkD,IAAlD;AACD,KARD,MAQO;AACL3D,MAAAA,KAAK,CAACrT,IAAN,CAAW,uBAAX;AACD;AACF;;AAED,WAASwW,oBAAT,GAAgC;AAC9BZ,IAAAA,WAAW,CAACvC,KAAD,CAAX;AACA4D,IAAAA,uBAAuB,CAACjH,MAAD,CAAvB;AACAkG,IAAAA,kBAAkB,CAACztB,OAAnB,CAA2B,UAAUyuB,KAAV,EAAiB;AAC1C,UAAI;AACFD,QAAAA,uBAAuB,CAACC,KAAK,CAACC,aAAP,CAAvB;AACD,OAFD,CAEE,OAAO7jB,KAAP,EAAc,CACd;AACD;AACF,KAND;AAOA4iB,IAAAA,kBAAkB,GAAG,IAAIC,GAAJ,EAArB;AACD;;AAED,WAASc,uBAAT,CAAiCjH,MAAjC,EAA8C;AAC5C;AACA,QAAIA,MAAM,IAAI,OAAOA,MAAM,CAACoH,mBAAd,KAAsC,UAApD,EAAgE;AAC9DpH,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,OAA3B,EAAoCR,OAApC,EAA6C,IAA7C;AACA5G,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,WAA3B,EAAwCP,YAAxC,EAAsD,IAAtD;AACA7G,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,WAA3B,EAAwCP,YAAxC,EAAsD,IAAtD;AACA7G,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,SAA3B,EAAsCP,YAAtC,EAAoD,IAApD;AACA7G,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,aAA3B,EAA0CN,aAA1C,EAAyD,IAAzD;AACA9G,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,aAA3B,EAA0CL,aAA1C,EAAyD,IAAzD;AACA/G,MAAAA,MAAM,CAACoH,mBAAP,CAA2B,WAA3B,EAAwCJ,WAAxC,EAAqD,IAArD;AACD,KARD,MAQO;AACL3D,MAAAA,KAAK,CAACrT,IAAN,CAAW,sBAAX;AACD;AACF;;AAED,WAASsW,2BAAT,GAAuC;AACrCV,IAAAA,WAAW,CAACvC,KAAD,CAAX;AACD;;AAED,WAASkD,sBAAT,OAeG;AAAA,QAdDc,WAcC,QAdDA,WAcC;AAAA,QAbDtB,gBAaC,QAbDA,gBAaC;AAAA,QAZDtuB,EAYC,QAZDA,EAYC;AAAA,QAXD6vB,uBAWC,QAXDA,uBAWC;AAAA,QAVDC,UAUC,QAVDA,UAUC;AAAA,QATDC,cASC,QATDA,cASC;AACD,QAAMC,QAAQ,GAAGpE,KAAK,CAACqE,kBAAN,CAAyBH,UAAzB,CAAjB;;AACA,QAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,MAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AAEAmuB,MAAAA,WAAW,CAACvC,KAAD,CAAX;AACA;AACD,KAPA,CASD;;;AACA,QAAI,CAACoE,QAAQ,CAACG,cAAT,CAAwBnwB,EAAxB,CAAL,EAAkC;AAChCmuB,MAAAA,WAAW,CAACvC,KAAD,CAAX;AACA;AACD;;AAED,QAAMO,KAA0B,GAAI6D,QAAQ,CAACI,yBAAT,CAClCpwB,EADkC,CAApC;;AAIA,QAAImsB,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAAC,CAAD,CAAL,IAAY,IAAjC,EAAuC;AACrC,UAAMtX,IAAI,GAAGsX,KAAK,CAAC,CAAD,CAAlB,CADqC,CAErC;;AACA,UAAI4D,cAAc,IAAI,OAAOlb,IAAI,CAACkb,cAAZ,KAA+B,UAArD,EAAiE;AAC/D;AACA;AACAlb,QAAAA,IAAI,CAACkb,cAAL,CAAoB;AAACM,UAAAA,KAAK,EAAE,SAAR;AAAmBC,UAAAA,MAAM,EAAE;AAA3B,SAApB;AACD;;AAEDlC,MAAAA,WAAW,CAACjC,KAAD,EAAQyD,WAAR,EAAqBhE,KAArB,EAA4B0C,gBAA5B,CAAX;;AAEA,UAAIuB,uBAAJ,EAA6B;AAC3BtH,QAAAA,MAAM,CAACgI,8BAAP,CAAsCC,EAAtC,GAA2C3b,IAA3C;AACA+Z,QAAAA,MAAM,CAAC6B,IAAP,CAAY,oCAAZ;AACD;AACF,KAfD,MAeO;AACLtC,MAAAA,WAAW,CAACvC,KAAD,CAAX;AACD;AACF;;AAED,WAASuD,OAAT,CAAiBtM,KAAjB,EAAoC;AAClCA,IAAAA,KAAK,CAAC6N,cAAN;AACA7N,IAAAA,KAAK,CAAC8N,eAAN;AAEA5B,IAAAA,oBAAoB;AAEpBH,IAAAA,MAAM,CAAC6B,IAAP,CAAY,sBAAZ,EAAoC,IAApC;AACD;;AAED,WAASrB,YAAT,CAAsBvM,KAAtB,EAAyC;AACvCA,IAAAA,KAAK,CAAC6N,cAAN;AACA7N,IAAAA,KAAK,CAAC8N,eAAN;AACD;;AAED,WAAStB,aAAT,CAAuBxM,KAAvB,EAA0C;AACxCA,IAAAA,KAAK,CAAC6N,cAAN;AACA7N,IAAAA,KAAK,CAAC8N,eAAN;AAEAC,IAAAA,kBAAkB,CAACC,cAAc,CAAChO,KAAD,CAAf,CAAlB;AACD;;AAED,MAAIiO,eAAmC,GAAG,IAA1C;;AACA,WAASxB,aAAT,CAAuBzM,KAAvB,EAA0C;AACxCA,IAAAA,KAAK,CAAC6N,cAAN;AACA7N,IAAAA,KAAK,CAAC8N,eAAN;AAEA,QAAMI,MAAmB,GAAGF,cAAc,CAAChO,KAAD,CAA1C;AACA,QAAIiO,eAAe,KAAKC,MAAxB,EAAgC;AAChCD,IAAAA,eAAe,GAAGC,MAAlB;;AAEA,QAAIA,MAAM,CAACC,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,UAAMC,MAAyB,GAAIF,MAAnC;;AACA,UAAI;AACF,YAAI,CAACtC,kBAAkB,CAAC/sB,GAAnB,CAAuBuvB,MAAvB,CAAL,EAAqC;AACnC,cAAM1I,OAAM,GAAG0I,MAAM,CAACvB,aAAtB;AACAT,UAAAA,yBAAyB,CAAC1G,OAAD,CAAzB;AACAkG,UAAAA,kBAAkB,CAAC7M,GAAnB,CAAuBqP,MAAvB;AACD;AACF,OAND,CAME,OAAOplB,KAAP,EAAc,CACd;AACD;AACF,KAnBuC,CAqBxC;AACA;;;AACAuiB,IAAAA,WAAW,CAAC,CAAC2C,MAAD,CAAD,EAAW,IAAX,EAAiBnF,KAAjB,EAAwB,KAAxB,CAAX;AAEAgF,IAAAA,kBAAkB,CAACG,MAAD,CAAlB;AACD;;AAED,WAASxB,WAAT,CAAqB1M,KAArB,EAAwC;AACtCA,IAAAA,KAAK,CAAC6N,cAAN;AACA7N,IAAAA,KAAK,CAAC8N,eAAN;AACD;;AAED,MAAMC,kBAAkB,GAAG5e,yBAAQ,CACjCuc,GAAO,CAAC,UAAC1Z,IAAD,EAAuB;AAC7B,QAAM7U,EAAE,GAAG4rB,KAAK,CAACsF,YAAN,CAAmBrc,IAAnB,CAAX;;AACA,QAAI7U,EAAE,KAAK,IAAX,EAAiB;AACf4uB,MAAAA,MAAM,CAAC6B,IAAP,CAAY,aAAZ,EAA2BzwB,EAA3B;AACD;AACF,GALM,CAD0B,EAOjC,GAPiC,EAQjC;AACA;AACA;AAAC0Q,IAAAA,OAAO,EAAE;AAAV,GAViC,CAAnC;;AAaA,WAASmgB,cAAT,CAAwBhO,KAAxB,EAAwD;AACtD,QAAIA,KAAK,CAACsO,QAAV,EAAoB;AAClB,aAAQtO,KAAK,CAACuO,YAAN,GAAqB,CAArB,CAAR;AACD;;AAED,WAAQvO,KAAK,CAACkO,MAAd;AACD;AACF;;ACxND;;;;;;;;AAcA,IAAMM,aAAa,GAAG,SAAtB,EAEA;;AACA,IAAMC,MAAM,GAAG,CACb,SADa,EAEb,SAFa,EAGb,SAHa,EAIb,SAJa,EAKb,SALa,EAMb,SANa,EAOb,SAPa,EAQb,SARa,EASb,SATa,EAUb,SAVa,CAAf;AAaA,IAAIC,MAAgC,GAAG,IAAvC;AAEO,SAASC,IAAT,CAAcC,UAAd,EAAiD7F,KAAjD,EAAqE;AAC1E,MAAIrD,MAAM,CAACyD,QAAP,IAAmB,IAAvB,EAA6B;AAC3B,QAAM0F,WAAW,GAAG,EAApB;AACAC,IAAAA,YAAY,CAACF,UAAD,EAAa,UAACxU,CAAD,EAAIkO,KAAJ,EAAWtW,IAAX,EAAoB;AAC3C6c,MAAAA,WAAW,CAAC3zB,IAAZ,CAAiB;AAAC8W,QAAAA,IAAI,EAAJA,IAAD;AAAOsW,QAAAA,KAAK,EAALA;AAAP,OAAjB;AACD,KAFW,CAAZ;AAIAS,IAAAA,KAAK,CAACrT,IAAN,CAAW,kBAAX,EAA+BmZ,WAA/B;AACA;AACD;;AAED,MAAIH,MAAM,KAAK,IAAf,EAAqB;AACnBK,IAAAA,UAAU;AACX;;AAED,MAAMC,UAA6B,GAAKN,MAAxC;AACAM,EAAAA,UAAU,CAAClK,KAAX,GAAmBY,MAAM,CAACmF,UAA1B;AACAmE,EAAAA,UAAU,CAACjK,MAAX,GAAoBW,MAAM,CAACkF,WAA3B;AAEA,MAAM5oB,OAAO,GAAGgtB,UAAU,CAACC,UAAX,CAAsB,IAAtB,CAAhB;AACAjtB,EAAAA,OAAO,CAACktB,SAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwBF,UAAU,CAAClK,KAAnC,EAA0CkK,UAAU,CAACjK,MAArD;AACA+J,EAAAA,YAAY,CAACF,UAAD,EAAa,UAAC1J,IAAD,EAAOoD,KAAP,EAAiB;AACxC,QAAIpD,IAAI,KAAK,IAAb,EAAmB;AACjBiK,MAAAA,UAAU,CAACntB,OAAD,EAAUkjB,IAAV,EAAgBoD,KAAhB,CAAV;AACD;AACF,GAJW,CAAZ;AAKD;;AAED,SAASwG,YAAT,CACEF,UADF,EAEEQ,OAFF,EAGE;AACAR,EAAAA,UAAU,CAACzwB,OAAX,CAAmB,gBAAgB6T,IAAhB,EAAyB;AAAA,QAAvBxM,KAAuB,QAAvBA,KAAuB;AAAA,QAAhB0f,IAAgB,QAAhBA,IAAgB;AAC1C,QAAMmK,UAAU,GAAGxiB,IAAI,CAACG,GAAL,CAASyhB,MAAM,CAACn0B,MAAP,GAAgB,CAAzB,EAA4BkL,KAAK,GAAG,CAApC,CAAnB;AACA,QAAM8iB,KAAK,GAAGmG,MAAM,CAACY,UAAD,CAApB;AACAD,IAAAA,OAAO,CAAClK,IAAD,EAAOoD,KAAP,EAActW,IAAd,CAAP;AACD,GAJD;AAKD;;AAED,SAASmd,UAAT,CACEntB,OADF,EAEEkjB,IAFF,EAGEoD,KAHF,EAIQ;AAAA,MACCvD,MADD,GAC6BG,IAD7B,CACCH,MADD;AAAA,MACSP,IADT,GAC6BU,IAD7B,CACSV,IADT;AAAA,MACeF,GADf,GAC6BY,IAD7B,CACeZ,GADf;AAAA,MACoBQ,KADpB,GAC6BI,IAD7B,CACoBJ,KADpB,EAGN;;AACA9iB,EAAAA,OAAO,CAACstB,SAAR,GAAoB,CAApB;AACAttB,EAAAA,OAAO,CAACutB,WAAR,GAAsBf,aAAtB;AAEAxsB,EAAAA,OAAO,CAACwtB,UAAR,CAAmBhL,IAAI,GAAG,CAA1B,EAA6BF,GAAG,GAAG,CAAnC,EAAsCQ,KAAK,GAAG,CAA9C,EAAiDC,MAAM,GAAG,CAA1D,EAPM,CASN;;AACA/iB,EAAAA,OAAO,CAACstB,SAAR,GAAoB,CAApB;AACAttB,EAAAA,OAAO,CAACutB,WAAR,GAAsBf,aAAtB;AACAxsB,EAAAA,OAAO,CAACwtB,UAAR,CAAmBhL,IAAI,GAAG,CAA1B,EAA6BF,GAAG,GAAG,CAAnC,EAAsCQ,KAAK,GAAG,CAA9C,EAAiDC,MAAM,GAAG,CAA1D;AACA/iB,EAAAA,OAAO,CAACutB,WAAR,GAAsBjH,KAAtB;AAEAtmB,EAAAA,OAAO,CAACytB,WAAR,CAAoB,CAAC,CAAD,CAApB,EAfM,CAiBN;;AACAztB,EAAAA,OAAO,CAACstB,SAAR,GAAoB,CAApB;AACAttB,EAAAA,OAAO,CAACwtB,UAAR,CAAmBhL,IAAnB,EAAyBF,GAAzB,EAA8BQ,KAAK,GAAG,CAAtC,EAAyCC,MAAM,GAAG,CAAlD;AAEA/iB,EAAAA,OAAO,CAACytB,WAAR,CAAoB,CAAC,CAAD,CAApB;AACD;;AAEM,SAASC,OAAT,CAAiB3G,KAAjB,EAAqC;AAC1C,MAAIrD,MAAM,CAACyD,QAAP,IAAmB,IAAvB,EAA6B;AAC3BJ,IAAAA,KAAK,CAACrT,IAAN,CAAW,qBAAX;AACA;AACD;;AAED,MAAIgZ,MAAM,KAAK,IAAf,EAAqB;AACnB,QAAIA,MAAM,CAACnH,UAAP,IAAqB,IAAzB,EAA+B;AAC7BmH,MAAAA,MAAM,CAACnH,UAAP,CAAkBC,WAAlB,CAA8BkH,MAA9B;AACD;;AACDA,IAAAA,MAAM,GAAG,IAAT;AACD;AACF;;AAED,SAASK,UAAT,GAA4B;AAC1BL,EAAAA,MAAM,GAAGhJ,MAAM,CAACyD,QAAP,CAAgB5iB,aAAhB,CAA8B,QAA9B,CAAT;AACAmoB,EAAAA,MAAM,CAACtS,KAAP,CAAauT,OAAb;AAYA,MAAMrnB,IAAI,GAAGod,MAAM,CAACyD,QAAP,CAAgBqB,eAA7B;AACAliB,EAAAA,IAAI,CAACsnB,YAAL,CAAkBlB,MAAlB,EAA0BpmB,IAAI,CAACunB,UAA/B;AACD;;;;ACjID;;;;;;;;AASA;AACA;AACA;AAKA;AACA,IAAME,gBAAgB,GAAG,GAAzB,EAEA;AACA;;AACA,IAAMC,oBAAoB,GAAG,IAA7B,EAEA;;AACA,IAAMC,4BAA4B,GAAG,GAArC,EAEA;;AACA,IAAMC,cAAc,GAClB;AACA,QAAOC,WAAP,yCAAOA,WAAP,OAAuB,QAAvB,IAAmC,OAAOA,WAAW,CAACljB,GAAnB,KAA2B,UAA9D,GACI;AAAA,SAAMkjB,WAAW,CAACljB,GAAZ,EAAN;AAAA,CADJ,GAEI;AAAA,SAAMC,IAAI,CAACD,GAAL,EAAN;AAAA,CAJN;AAaA,IAAM2hB,UAAiC,GAAG,IAAIz1B,GAAJ,EAA1C;AAEA,IAAI4vB,KAAY,GAAK,IAArB;AACA,IAAIqH,oBAA6C,GAAG,IAApD;AACA,IAAIC,SAAkB,GAAG,KAAzB;AACA,IAAIC,eAAiC,GAAG,IAAxC;AAEO,SAASvB,uBAAT,CAAoBwB,aAApB,EAAgD;AACrDxH,EAAAA,KAAK,GAAGwH,aAAR;AACAxH,EAAAA,KAAK,CAAC1T,WAAN,CAAkB,cAAlB,EAAkCmb,YAAlC;AACD;AAEM,SAASC,aAAT,CAAuBt1B,KAAvB,EAA6C;AAClDk1B,EAAAA,SAAS,GAAGl1B,KAAZ;;AAEA,MAAI,CAACk1B,SAAL,EAAgB;AACdzB,IAAAA,UAAU,CAACrY,KAAX;;AAEA,QAAI6Z,oBAAoB,KAAK,IAA7B,EAAmC;AACjCM,MAAAA,oBAAoB,CAACN,oBAAD,CAApB;AACAA,MAAAA,oBAAoB,GAAG,IAAvB;AACD;;AAED,QAAIE,eAAe,KAAK,IAAxB,EAA8B;AAC5BvhB,MAAAA,YAAY,CAACuhB,eAAD,CAAZ;AACAA,MAAAA,eAAe,GAAG,IAAlB;AACD;;AAEDR,IAAAA,OAAa,CAAC/G,KAAD,CAAb;AACD;AACF;;AAED,SAASyH,YAAT,CAAsBlH,KAAtB,EAAoD;AAClD,MAAI,CAAC+G,SAAL,EAAgB;AACd;AACD;;AAED/G,EAAAA,KAAK,CAACnrB,OAAN,CAAc,UAAA6T,IAAI,EAAI;AACpB,QAAM8E,IAAI,GAAG8X,UAAU,CAACjzB,GAAX,CAAeqW,IAAf,CAAb;AACA,QAAM/E,GAAG,GAAGijB,cAAc,EAA1B;AAEA,QAAIS,cAAc,GAAG7Z,IAAI,IAAI,IAAR,GAAeA,IAAI,CAAC6Z,cAApB,GAAqC,CAA1D;AACA,QAAIzL,IAAI,GAAGpO,IAAI,IAAI,IAAR,GAAeA,IAAI,CAACoO,IAApB,GAA2B,IAAtC;;AACA,QAAIA,IAAI,KAAK,IAAT,IAAiByL,cAAc,GAAGV,4BAAjB,GAAgDhjB,GAArE,EAA0E;AACxE0jB,MAAAA,cAAc,GAAG1jB,GAAjB;AACAiY,MAAAA,IAAI,GAAG0L,WAAW,CAAC5e,IAAD,CAAlB;AACD;;AAED4c,IAAAA,UAAU,CAACp0B,GAAX,CAAewX,IAAf,EAAqB;AACnBxM,MAAAA,KAAK,EAAEsR,IAAI,IAAI,IAAR,GAAeA,IAAI,CAACtR,KAAL,GAAa,CAA5B,GAAgC,CADpB;AAEnBqrB,MAAAA,cAAc,EACZ/Z,IAAI,IAAI,IAAR,GACIjK,IAAI,CAACG,GAAL,CACEC,GAAG,GAAG+iB,oBADR,EAEElZ,IAAI,CAAC+Z,cAAL,GAAsBd,gBAFxB,CADJ,GAKI9iB,GAAG,GAAG8iB,gBARO;AASnBY,MAAAA,cAAc,EAAdA,cATmB;AAUnBzL,MAAAA,IAAI,EAAJA;AAVmB,KAArB;AAYD,GAvBD;;AAyBA,MAAIoL,eAAe,KAAK,IAAxB,EAA8B;AAC5BvhB,IAAAA,YAAY,CAACuhB,eAAD,CAAZ;AACAA,IAAAA,eAAe,GAAG,IAAlB;AACD;;AAED,MAAIF,oBAAoB,KAAK,IAA7B,EAAmC;AACjCA,IAAAA,oBAAoB,GAAGU,qBAAqB,CAACC,aAAD,CAA5C;AACD;AACF;;AAED,SAASA,aAAT,GAA+B;AAC7BX,EAAAA,oBAAoB,GAAG,IAAvB;AACAE,EAAAA,eAAe,GAAG,IAAlB;AAEA,MAAMrjB,GAAG,GAAGijB,cAAc,EAA1B;AACA,MAAIc,kBAAkB,GAAG7X,MAAM,CAAC8X,SAAhC,CAL6B,CAO7B;;AACArC,EAAAA,UAAU,CAACzwB,OAAX,CAAmB,UAAC2Y,IAAD,EAAO9E,IAAP,EAAgB;AACjC,QAAI8E,IAAI,CAAC+Z,cAAL,GAAsB5jB,GAA1B,EAA+B;AAC7B2hB,MAAAA,UAAU,CAACnb,MAAX,CAAkBzB,IAAlB;AACD,KAFD,MAEO;AACLgf,MAAAA,kBAAkB,GAAGnkB,IAAI,CAACG,GAAL,CAASgkB,kBAAT,EAA6Bla,IAAI,CAAC+Z,cAAlC,CAArB;AACD;AACF,GAND;AAQAlC,EAAAA,IAAI,CAACC,UAAD,EAAa7F,KAAb,CAAJ;;AAEA,MAAIiI,kBAAkB,KAAK7X,MAAM,CAAC8X,SAAlC,EAA6C;AAC3CX,IAAAA,eAAe,GAAG/hB,UAAU,CAACwiB,aAAD,EAAgBC,kBAAkB,GAAG/jB,GAArC,CAA5B;AACD;AACF;;AAED,SAAS2jB,WAAT,CAAqB5e,IAArB,EAAgD;AAC9C,MAAI,CAACA,IAAD,IAAS,OAAOA,IAAI,CAACqS,qBAAZ,KAAsC,UAAnD,EAA+D;AAC7D,WAAO,IAAP;AACD;;AAED,MAAM2E,aAAa,GAAGtD,MAAM,CAACuD,gCAAP,IAA2CvD,MAAjE;AAEA,SAAOP,2BAA2B,CAACnT,IAAD,EAAOgX,aAAP,CAAlC;AACD;;;;;;;;;;;;;;;;AC/ID;;;;;;;AAOO,IAAM,eAAe,GAAG,SAAlB,eAAkB,CAAC,EAAD,EAAa,EAAb,EAA2B;AACxD;AACA,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAD,CAA3B;AACA,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAD,CAA3B,CAHwD,CAKxD;;AACA,MAAM,EAAE,GAAG,EAAE,CAAC,GAAH,EAAX;AACA,MAAM,EAAE,GAAG,EAAE,CAAC,GAAH,EAAX,CAPwD,CASxD;;AACA,MAAM,CAAC,GAAG,eAAe,CAAC,EAAD,EAAK,EAAL,CAAzB;AACA,MAAI,CAAC,KAAK,CAAV,EAAa,OAAO,CAAP,CAX2C,CAaxD;;AACA,MAAI,EAAE,IAAI,EAAV,EAAc;AACZ,WAAO,eAAe,CAAC,EAAE,CAAC,KAAH,CAAS,GAAT,CAAD,EAAgB,EAAE,CAAC,KAAH,CAAS,GAAT,CAAhB,CAAtB;AACD,GAFD,MAEO,IAAI,EAAE,IAAI,EAAV,EAAc;AACnB,WAAO,EAAE,GAAG,CAAC,CAAJ,GAAQ,CAAjB;AACD;;AAED,SAAO,CAAP;AACD,CArBM;AAuBP;;;;;;;;;;;;;;AAaO,IAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,OAAD;AAAA,SACtB,OAAO,OAAP,KAAmB,QAAnB,IAA+B,SAAS,IAAT,CAAc,OAAd,CAA/B,IAAyD,MAAM,CAAC,IAAP,CAAY,OAAZ,CADnC;AAAA,CAAjB;AAQP;;;;;;;;;;;;;;;;;;AAiBO,IAAM,OAAO,GAAG,SAAV,OAAU,CAAC,EAAD,EAAa,EAAb,EAAyB,QAAzB,EAAsD;AAC3E;AACA,qBAAmB,CAAC,QAAD,CAAnB,CAF2E,CAI3E;AACA;;AACA,MAAM,GAAG,GAAG,eAAe,CAAC,EAAD,EAAK,EAAL,CAA3B;AAEA,SAAO,cAAc,CAAC,QAAD,CAAd,CAAyB,QAAzB,CAAkC,GAAlC,CAAP;AACD,CATM;AAWP;;;;;;;;;;;;;;AAaO,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,OAAD,EAAkB,KAAlB,EAAmC;AAC1D;AACA,MAAM,CAAC,GAAG,KAAK,CAAC,KAAN,CAAY,aAAZ,CAAV;AACA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAD,CAAJ,GAAU,GAAtB,CAH0D,CAK1D;;AACA,MAAI,EAAE,KAAK,GAAP,IAAc,EAAE,KAAK,GAAzB,EACE,OAAO,OAAO,CAAC,OAAD,EAAU,KAAV,EAAiB,EAAjB,CAAd,CAPwD,CAS1D;;AAT0D,0BAU/B,gBAAgB,CAAC,OAAD,CAVe;AAAA;AAAA,MAUnD,EAVmD;AAAA,MAU/C,EAV+C;AAAA,MAU3C,EAV2C;AAAA,MAUrC,EAVqC;;AAAA,2BAW/B,gBAAgB,CAAC,KAAD,CAXe;AAAA;AAAA,MAWnD,EAXmD;AAAA,MAW/C,EAX+C;AAAA,MAW3C,EAX2C;AAAA,MAWrC,EAXqC;;AAY1D,MAAM,CAAC,GAAG,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAV;AACA,MAAM,CAAC,GAAG,CAAC,EAAD,EAAK,EAAE,SAAF,MAAE,WAAF,QAAM,GAAX,EAAgB,EAAE,SAAF,MAAE,WAAF,QAAM,GAAtB,CAAV,CAb0D,CAe1D;;AACA,MAAI,EAAJ,EAAQ;AACN,QAAI,CAAC,EAAL,EAAS,OAAO,KAAP;AACT,QAAI,eAAe,CAAC,CAAD,EAAI,CAAJ,CAAf,KAA0B,CAA9B,EAAiC,OAAO,KAAP;AACjC,QAAI,eAAe,CAAC,EAAE,CAAC,KAAH,CAAS,GAAT,CAAD,EAAgB,EAAE,CAAC,KAAH,CAAS,GAAT,CAAhB,CAAf,KAAkD,CAAC,CAAvD,EAA0D,OAAO,KAAP;AAC3D,GApByD,CAsB1D;;;AACA,MAAM,OAAO,GAAG,CAAC,CAAC,SAAF,CAAY,UAAC,CAAD;AAAA,WAAO,CAAC,KAAK,GAAb;AAAA,GAAZ,IAAgC,CAAhD,CAvB0D,CAyB1D;;AACA,MAAM,CAAC,GAAG,EAAE,KAAK,GAAP,GAAa,CAAb,GAAiB,OAAO,GAAG,CAAV,GAAc,OAAd,GAAwB,CAAnD,CA1B0D,CA4B1D;;AACA,MAAI,eAAe,CAAC,CAAC,CAAC,KAAF,CAAQ,CAAR,EAAW,CAAX,CAAD,EAAgB,CAAC,CAAC,KAAF,CAAQ,CAAR,EAAW,CAAX,CAAhB,CAAf,KAAkD,CAAtD,EAAyD,OAAO,KAAP,CA7BC,CA+B1D;;AACA,MAAI,eAAe,CAAC,CAAC,CAAC,KAAF,CAAQ,CAAR,CAAD,EAAa,CAAC,CAAC,KAAF,CAAQ,CAAR,CAAb,CAAf,KAA4C,CAAC,CAAjD,EAAoD,OAAO,KAAP;AAEpD,SAAO,IAAP;AACD,CAnCM;AAqCP,IAAM,MAAM,GACV,4IADF;;AAGA,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAAC,OAAD,EAAoB;AAC3C,MAAI,OAAO,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,UAAM,IAAI,SAAJ,CAAc,kCAAd,CAAN;AACD;;AACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAR,CAAc,MAAd,CAAd;;AACA,MAAI,CAAC,KAAL,EAAY;AACV,UAAM,IAAI,KAAJ,+CACmC,OADnC,iBAAN;AAGD;;AACD,OAAK,CAAC,KAAN;AACA,SAAO,KAAP;AACD,CAZD;;AAcA,IAAM,UAAU,GAAG,SAAb,UAAa,CAAC,CAAD;AAAA,SAAe,CAAC,KAAK,GAAN,IAAa,CAAC,KAAK,GAAnB,IAA0B,CAAC,KAAK,GAA/C;AAAA,CAAnB;;AAEA,IAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,CAAD,EAAc;AAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAD,EAAI,EAAJ,CAAlB;AACA,SAAO,KAAK,CAAC,CAAD,CAAL,GAAW,CAAX,GAAe,CAAtB;AACD,CAHD;;AAKA,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,CAAD,EAAqB,CAArB;AAAA,SAChB,WAAO,CAAP,iBAAoB,CAApB,IAAwB,CAAC,MAAM,CAAC,CAAD,CAAP,EAAY,MAAM,CAAC,CAAD,CAAlB,CAAxB,GAAiD,CAAC,CAAD,EAAI,CAAJ,CADjC;AAAA,CAAlB;;AAGA,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,CAAD,EAAY,CAAZ,EAAyB;AAC9C,MAAI,UAAU,CAAC,CAAD,CAAV,IAAiB,UAAU,CAAC,CAAD,CAA/B,EAAoC,OAAO,CAAP;;AADU,mBAE7B,SAAS,CAAC,QAAQ,CAAC,CAAD,CAAT,EAAc,QAAQ,CAAC,CAAD,CAAtB,CAFoB;AAAA;AAAA,MAEvC,EAFuC;AAAA,MAEnC,EAFmC;;AAG9C,MAAI,EAAE,GAAG,EAAT,EAAa,OAAO,CAAP;AACb,MAAI,EAAE,GAAG,EAAT,EAAa,OAAO,CAAC,CAAR;AACb,SAAO,CAAP;AACD,CAND;;AAQA,IAAM,eAAe,GAAG,SAAlB,eAAkB,CACtB,CADsB,EAEtB,CAFsB,EAGpB;AACF,OAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,IAAI,CAAC,GAAL,CAAS,CAAC,CAAC,MAAX,EAAmB,CAAC,CAAC,MAArB,CAApB,EAAkD,CAAC,EAAnD,EAAuD;AACrD,QAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAD,CAAD,IAAQ,GAAT,EAAc,CAAC,CAAC,CAAD,CAAD,IAAQ,GAAtB,CAAxB;AACA,QAAI,CAAC,KAAK,CAAV,EAAa,OAAO,CAAP;AACd;;AACD,SAAO,CAAP;AACD,CATD;;AAWA,IAAM,cAAc,GAAG;AACrB,OAAK,CAAC,CAAD,CADgB;AAErB,QAAM,CAAC,CAAD,EAAI,CAAJ,CAFe;AAGrB,OAAK,CAAC,CAAD,CAHgB;AAIrB,QAAM,CAAC,CAAC,CAAF,EAAK,CAAL,CAJe;AAKrB,OAAK,CAAC,CAAC,CAAF;AALgB,CAAvB;AAQA,IAAM,gBAAgB,GAAG,MAAM,CAAC,IAAP,CAAY,cAAZ,CAAzB;;AAEA,IAAM,mBAAmB,GAAG,SAAtB,mBAAsB,CAAC,EAAD,EAAe;AACzC,MAAI,OAAO,EAAP,KAAc,QAAlB,EAA4B;AAC1B,UAAM,IAAI,SAAJ,qEACqD,EADrD,GAAN;AAGD;;AACD,MAAI,gBAAgB,CAAC,OAAjB,CAAyB,EAAzB,MAAiC,CAAC,CAAtC,EAAyC;AACvC,UAAM,IAAI,KAAJ,6CACiC,gBAAgB,CAAC,IAAjB,CAAsB,GAAtB,CADjC,EAAN;AAGD;AACF,CAXD;;;;;;;;;ACzLA;;;;;;;;AASA;AACA;AACA;AAEA;AACO,IAAMkI,kBAA0B,GAAG7xB,MAAM,CAACC,GAAP,CAAW,eAAX,CAAnC;AACA,IAAM6xB,iBAAyB,GAAG9xB,MAAM,CAACC,GAAP,CAAW,cAAX,CAAlC;AACA,IAAM8xB,mBAA2B,GAAG/xB,MAAM,CAACC,GAAP,CAAW,gBAAX,CAApC;AACA,IAAM+xB,sBAA8B,GAAGhyB,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAvC;AACA,IAAMgyB,mBAA2B,GAAGjyB,MAAM,CAACC,GAAP,CAAW,gBAAX,CAApC;AACA,IAAMiyB,mBAA2B,GAAGlyB,MAAM,CAACC,GAAP,CAAW,gBAAX,CAApC;AACA,IAAMkyB,kBAA0B,GAAGnyB,MAAM,CAACC,GAAP,CAAW,eAAX,CAAnC;AACA,IAAMmyB,yBAAiC,GAAGpyB,MAAM,CAACC,GAAP,CAC/C,sBAD+C,CAA1C;AAGA,IAAMoyB,sBAA8B,GAAGryB,MAAM,CAACC,GAAP,CAAW,mBAAX,CAAvC;AACA,IAAMqyB,mBAA2B,GAAGtyB,MAAM,CAACC,GAAP,CAAW,gBAAX,CAApC;AACA,IAAMsyB,wBAAgC,GAAGvyB,MAAM,CAACC,GAAP,CAC9C,qBAD8C,CAAzC;AAGA,IAAMuyB,eAAuB,GAAGxyB,MAAM,CAACC,GAAP,CAAW,YAAX,CAAhC;AACA,IAAMwyB,eAAuB,GAAGzyB,MAAM,CAACC,GAAP,CAAW,YAAX,CAAhC;AACA,IAAMyyB,gBAAwB,GAAG1yB,MAAM,CAACC,GAAP,CAAW,aAAX,CAAjC;AACA,IAAM0yB,6BAAqC,GAAG3yB,MAAM,CAACC,GAAP,CACnD,wBADmD,CAA9C;AAGA,IAAM2yB,oBAA4B,GAAG5yB,MAAM,CAACC,GAAP,CAAW,iBAAX,CAArC;AACA,IAAM4yB,wBAAgC,GAAG7yB,MAAM,CAACC,GAAP,CAC9C,qBAD8C,CAAzC;AAGA,IAAM6yB,gBAAwB,GAAG9yB,MAAM,CAACC,GAAP,CAAW,aAAX,CAAjC;AACA,IAAM8yB,yBAAiC,GAAG/yB,MAAM,CAACC,GAAP,CAC/C,sBAD+C,CAA1C;AAGA,IAAM+yB,6CAAqD,GAAGhzB,MAAM,CAACC,GAAP,CACnE,qBADmE,CAA9D;AAIA,IAAMgzB,yBAAiC,GAAGjzB,MAAM,CAACC,GAAP,CAC/C,2BAD+C,CAA1C;AAIA,IAAMizB,mBAA2B,GAAGlzB,MAAM,CAACC,GAAP,CAAW,gBAAX,CAApC;AAEP,IAAMkzB,qBAAqB,GAAGnzB,MAAM,CAACoC,QAArC;AACA,IAAMgxB,oBAAoB,GAAG,YAA7B;AAEO,SAASC,aAAT,CAAuBC,aAAvB,EAAmE;AACxE,MAAIA,aAAa,KAAK,IAAlB,IAA0B,oBAAOA,aAAP,MAAyB,QAAvD,EAAiE;AAC/D,WAAO,IAAP;AACD;;AACD,MAAMC,aAAa,GAChBJ,qBAAqB,IAAIG,aAAa,CAACH,qBAAD,CAAvC,IACAG,aAAa,CAACF,oBAAD,CAFf;;AAGA,MAAI,OAAOG,aAAP,KAAyB,UAA7B,EAAyC;AACvC,WAAOA,aAAP;AACD;;AACD,SAAO,IAAP;AACD;;ACnED;;;;;;;;;AASA;;;;;;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,sBAAgB,GAAG,CAAzB;AACA,IAAMC,kBAAkB,GAAG,CAA3B;AACA,IAAMC,yBAAmB,GAAG,CAA5B;AACA,IAAMC,2BAAqB,GAAG,CAA9B;AACA,IAAMC,wBAAwB,GAAG,CAAjC;AACA,IAAMC,qBAAe,GAAG,CAAxB;AACA,IAAMC,yBAAyB,GAAG,CAAlC;AACA,IAAMC,mBAAmB,GAAG,EAA5B;AACA,IAAMC,eAAe,GAAG,EAAxB;AACA,IAAMC,mBAAmB,GAAG,EAA5B;AACA,IAAMC,uBAAuB,GAAG,EAAhC;AACA,IAAMC,wBAAwB,GAAG,EAAjC,EAEP;AACA;AACA;;AAGA;AACA;AACA;AACA;AACO,IAAMC,0BAA0B,GAAG,CAAnC;AACA,IAAMC,0BAA0B,GAAG,CAAnC;AACA,IAAMC,uBAAuB,GAAG,CAAhC;AACA,IAAMC,kBAAkB,GAAG,CAA3B;AAwDA,IAAM3zB,UAAU,GAAG,CAAnB,EAEP;AACA;AACA;AACA;;AC5HA;;;;;;;;AASA,IAAMyC,OAAO,GAAGD,KAAK,CAACC,OAAtB;AAEA,kDAAeA,OAAf;;;;;;;;;;;;;;;;;ACXA;;;;;;;;AASA;AACA;AAcA;AAIA;AAeA;AAIA;AAOA;AACA;AACA;AASA;AACA,IAAM9G,oBAAc,GAAGjD,MAAM,CAACwJ,SAAP,CAAiBvG,cAAxC;AAEA,IAAMo4B,kBAA6C,GAAG,IAAIzvB,OAAJ,EAAtD,EAEA;AACA;;AACA,IAAM0vB,kBAAmD,GAAG,IAAIJ,qBAAJ,CAAQ;AAClE/mB,EAAAA,GAAG,EAAE;AAD6D,CAAR,CAA5D;AAIO,SAASonB,aAAT,CACLh7B,CADK,EAELkB,CAFK,EAGG;AACR,MAAIlB,CAAC,CAACuK,QAAF,KAAerJ,CAAC,CAACqJ,QAAF,EAAnB,EAAiC;AAC/B,WAAO,CAAP;AACD,GAFD,MAEO,IAAIrJ,CAAC,CAACqJ,QAAF,KAAevK,CAAC,CAACuK,QAAF,EAAnB,EAAiC;AACtC,WAAO,CAAC,CAAR;AACD,GAFM,MAEA;AACL,WAAO,CAAP;AACD;AACF;AAEM,SAAS0wB,oBAAT,CACLlc,GADK,EAE0B;AAC/B,MAAMpU,IAAI,GAAG,IAAIgoB,GAAJ,EAAb;AACA,MAAIxwB,OAAO,GAAG4c,GAAd;;AAF+B;AAI7B,QAAMmc,WAAW,gCACZz7B,MAAM,CAACkL,IAAP,CAAYxI,OAAZ,CADY,sBAEZ1C,MAAM,CAAC07B,qBAAP,CAA6Bh5B,OAA7B,CAFY,EAAjB;AAIA,QAAMi5B,WAAW,GAAG37B,MAAM,CAAC47B,yBAAP,CAAiCl5B,OAAjC,CAApB;AACA+4B,IAAAA,WAAW,CAACj2B,OAAZ,CAAoB,UAAAyE,GAAG,EAAI;AACzB;AACA,UAAI0xB,WAAW,CAAC1xB,GAAD,CAAX,CAAiBwO,UAArB,EAAiC;AAC/BvN,QAAAA,IAAI,CAACkb,GAAL,CAASnc,GAAT;AACD;AACF,KALD;AAMAvH,IAAAA,OAAO,GAAG1C,MAAM,CAAC67B,cAAP,CAAsBn5B,OAAtB,CAAV;AAf6B;;AAG/B,SAAOA,OAAO,IAAI,IAAlB,EAAwB;AAAA;AAavB;;AACD,SAAOwI,IAAP;AACD,EAED;;AACO,SAAS4wB,qBAAT,CACLC,SADK,EAELC,SAFK,EAGLC,WAHK,EAILC,YAJK,EAKG;AACR,MAAM9H,WAAW,GAAI2H,SAAD,CAAiB3H,WAArC;AACA,SACEA,WAAW,cAAO6H,WAAP,cAAsBE,cAAc,CAACH,SAAD,EAAYE,YAAZ,CAApC,MADb;AAGD;AAEM,SAASC,cAAT,CACLt2B,IADK,EAGG;AAAA,MADRq2B,YACQ,uEADe,WACf;AACR,MAAME,aAAa,GAAGf,kBAAkB,CAACr4B,GAAnB,CAAuB6C,IAAvB,CAAtB;;AACA,MAAIu2B,aAAa,IAAI,IAArB,EAA2B;AACzB,WAAOA,aAAP;AACD;;AAED,MAAIhI,WAAW,GAAG8H,YAAlB,CANQ,CAQR;AACA;AACA;;AACA,MAAI,OAAOr2B,IAAI,CAACuuB,WAAZ,KAA4B,QAAhC,EAA0C;AACxCA,IAAAA,WAAW,GAAGvuB,IAAI,CAACuuB,WAAnB;AACD,GAFD,MAEO,IAAI,OAAOvuB,IAAI,CAAC3C,IAAZ,KAAqB,QAArB,IAAiC2C,IAAI,CAAC3C,IAAL,KAAc,EAAnD,EAAuD;AAC5DkxB,IAAAA,WAAW,GAAGvuB,IAAI,CAAC3C,IAAnB;AACD;;AAEDm4B,EAAAA,kBAAkB,CAACx5B,GAAnB,CAAuBgE,IAAvB,EAA6BuuB,WAA7B;AACA,SAAOA,WAAP;AACD;AAED,IAAIiI,UAAkB,GAAG,CAAzB;AAEO,SAASC,MAAT,GAA0B;AAC/B,SAAO,EAAED,UAAT;AACD;AAEM,SAASE,eAAT,CAAyBpgB,KAAzB,EAAuD;AAC5D;AACA;AACA;AACA;AACA,MAAIqgB,MAAM,GAAG,EAAb;;AACA,OAAK,IAAI/pB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0J,KAAK,CAACxa,MAA1B,EAAkC8Q,CAAC,EAAnC,EAAuC;AACrC,QAAMgqB,IAAI,GAAGtgB,KAAK,CAAC1J,CAAD,CAAlB;AACA+pB,IAAAA,MAAM,IAAIvxB,MAAM,CAACyxB,aAAP,CAAqBD,IAArB,CAAV;AACD;;AACD,SAAOD,MAAP;AACD;;AAED,SAASG,wBAAT,CACEC,SADF,EAEEC,SAFF,EAGU;AACR,SAAO,CAAC,CAACD,SAAS,GAAG,KAAb,KAAuB,EAAxB,KAA+BC,SAAS,GAAG,KAA3C,IAAoD,OAA3D;AACD,EAED;AACA;;;AACO,SAASC,eAAT,CAAyBN,MAAzB,EAAwD;AAC7D,MAAMO,MAAM,GAAGzB,kBAAkB,CAACt4B,GAAnB,CAAuBw5B,MAAvB,CAAf;;AACA,MAAIO,MAAM,KAAK5rB,SAAf,EAA0B;AACxB,WAAO4rB,MAAP;AACD;;AAED,MAAMC,OAAO,GAAG,EAAhB;AACA,MAAIvqB,CAAC,GAAG,CAAR;AACA,MAAIwqB,QAAJ;;AACA,SAAOxqB,CAAC,GAAG+pB,MAAM,CAAC76B,MAAlB,EAA0B;AACxBs7B,IAAAA,QAAQ,GAAGT,MAAM,CAACU,UAAP,CAAkBzqB,CAAlB,CAAX,CADwB,CAExB;;AACA,QAAI,CAACwqB,QAAQ,GAAG,MAAZ,MAAwB,MAA5B,EAAoC;AAClCD,MAAAA,OAAO,CAACz6B,IAAR,CAAao6B,wBAAwB,CAACM,QAAD,EAAWT,MAAM,CAACU,UAAP,CAAkB,EAAEzqB,CAApB,CAAX,CAArC;AACD,KAFD,MAEO;AACLuqB,MAAAA,OAAO,CAACz6B,IAAR,CAAa06B,QAAb;AACD;;AACD,MAAExqB,CAAF;AACD;;AAED6oB,EAAAA,kBAAkB,CAACz5B,GAAnB,CAAuB26B,MAAvB,EAA+BQ,OAA/B;AAEA,SAAOA,OAAP;AACD;AAEM,SAASG,oBAAT,CAA8BC,UAA9B,EAAyD;AAC9D;AACA,MAAM9I,UAAU,GAAG8I,UAAU,CAAC,CAAD,CAA7B;AACA,MAAMC,MAAM,GAAGD,UAAU,CAAC,CAAD,CAAzB;AAEA,MAAME,IAAI,GAAG,mCAA4BhJ,UAA5B,uBAAmD+I,MAAnD,EAAb;AAEA,MAAI5qB,CAAC,GAAG,CAAR,CAP8D,CAS9D;;AACA,MAAM8qB,WAAiC,GAAG,CACxC,IADwC,CAClC;AADkC,GAA1C;AAGA,MAAMC,eAAe,GAAGJ,UAAU,CAAC3qB,CAAC,EAAF,CAAlC;AACA,MAAMgrB,cAAc,GAAGhrB,CAAC,GAAG+qB,eAA3B;;AACA,SAAO/qB,CAAC,GAAGgrB,cAAX,EAA2B;AACzB,QAAMC,UAAU,GAAGN,UAAU,CAAC3qB,CAAC,EAAF,CAA7B;AACA,QAAMkrB,UAAU,GAAGpB,eAAe,CAC/Ba,UAAU,CAAC94B,KAAX,CAAiBmO,CAAjB,EAAoBA,CAAC,GAAGirB,UAAxB,CAD+B,CAAlC;AAGAH,IAAAA,WAAW,CAACh7B,IAAZ,CAAiBo7B,UAAjB;AACAlrB,IAAAA,CAAC,IAAIirB,UAAL;AACD;;AAED,SAAOjrB,CAAC,GAAG2qB,UAAU,CAACz7B,MAAtB,EAA8B;AAC5B,QAAMi8B,SAAS,GAAGR,UAAU,CAAC3qB,CAAD,CAA5B;;AAEA,YAAQmrB,SAAR;AACE,WAAK3V,kBAAL;AAAyB;AACvB,cAAMzjB,GAAE,GAAK44B,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAAvB;AACA,cAAM5M,IAAI,GAAKu3B,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAAzB;AAEAA,UAAAA,CAAC,IAAI,CAAL;;AAEA,cAAI5M,IAAI,KAAK60B,eAAb,EAA8B;AAC5B4C,YAAAA,IAAI,CAAC/6B,IAAL,6BAA+BiC,GAA/B;AAEAiO,YAAAA,CAAC,GAH2B,CAGvB;;AACLA,YAAAA,CAAC,GAJ2B,CAIvB;;AACLA,YAAAA,CAAC,GAL2B,CAKvB;;AACLA,YAAAA,CAAC,GAN2B,CAMvB;AACN,WAPD,MAOO;AACL,gBAAMorB,QAAQ,GAAKT,UAAU,CAAC3qB,CAAD,CAA7B;AACAA,YAAAA,CAAC;AAEDA,YAAAA,CAAC,GAJI,CAIA;;AAEL,gBAAMqrB,mBAAmB,GAAGV,UAAU,CAAC3qB,CAAD,CAAtC;AACA,gBAAM2hB,WAAW,GAAGmJ,WAAW,CAACO,mBAAD,CAA/B;AACArrB,YAAAA,CAAC;AAEDA,YAAAA,CAAC,GAVI,CAUA;;AAEL6qB,YAAAA,IAAI,CAAC/6B,IAAL,oBACciC,GADd,eACqB4vB,WAAW,IAAI,MADpC,2BAC2DyJ,QAD3D;AAGD;;AACD;AACD;;AACD,WAAK3V,qBAAL;AAA4B;AAC1B,cAAM6V,YAAY,GAAKX,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAAjC;AACAA,UAAAA,CAAC,IAAI,CAAL;;AAEA,eAAK,IAAIurB,WAAW,GAAG,CAAvB,EAA0BA,WAAW,GAAGD,YAAxC,EAAsDC,WAAW,EAAjE,EAAqE;AACnE,gBAAMx5B,IAAE,GAAK44B,UAAU,CAAC3qB,CAAD,CAAvB;AACAA,YAAAA,CAAC,IAAI,CAAL;AAEA6qB,YAAAA,IAAI,CAAC/6B,IAAL,uBAAyBiC,IAAzB;AACD;;AACD;AACD;;AACD,WAAK8jB,0BAAL;AAAiC;AAC/B7V,UAAAA,CAAC,IAAI,CAAL;AAEA6qB,UAAAA,IAAI,CAAC/6B,IAAL,uBAAyB86B,MAAzB;AACA;AACD;;AACD,WAAK9U,+BAAL;AAAsC;AACpC,cAAM/jB,IAAE,GAAG44B,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAArB;AACA,cAAMwrB,IAAI,GAAGb,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAAvB;AAEAA,UAAAA,CAAC,IAAI,CAAL;AAEA6qB,UAAAA,IAAI,CAAC/6B,IAAL,gBAAkB07B,IAAlB,wCAAoDz5B,IAApD;AACA;AACD;;AACD,WAAK2jB,+BAAL;AAAsC;AACpC,cAAM3jB,IAAE,GAAK44B,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAAvB;AACA,cAAMyrB,WAAW,GAAKd,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAAhC;AACAA,UAAAA,CAAC,IAAI,CAAL;AACA,cAAMnI,QAAQ,GAAG8yB,UAAU,CAAC94B,KAAX,CAAiBmO,CAAjB,EAAoBA,CAAC,GAAGyrB,WAAxB,CAAjB;AACAzrB,UAAAA,CAAC,IAAIyrB,WAAL;AAEAZ,UAAAA,IAAI,CAAC/6B,IAAL,yBAA2BiC,IAA3B,uBAA0C8F,QAAQ,CAACa,IAAT,CAAc,GAAd,CAA1C;AACA;AACD;;AACD,WAAKid,wCAAL;AACE;AACA;AACA;AACA3V,QAAAA,CAAC,IAAI,CAAL;AACA;;AACF,WAAK4V,wCAAL;AACE,YAAM7jB,EAAE,GAAG44B,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAArB;AACA,YAAM0rB,SAAS,GAAGf,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAA5B;AACA,YAAM2rB,WAAW,GAAGhB,UAAU,CAAC3qB,CAAC,GAAG,CAAL,CAA9B;AAEAA,QAAAA,CAAC,IAAI,CAAL;AAEA6qB,QAAAA,IAAI,CAAC/6B,IAAL,gBACUiC,EADV,kBACoB25B,SADpB,yBAC4CC,WAD5C;AAGA;;AACF;AACE,cAAM/7B,KAAK,0CAAkCu7B,SAAlC,QAAX;AAvFJ;AAyFD;;AAEDzb,EAAAA,OAAO,CAAC+D,GAAR,CAAYoX,IAAI,CAACnyB,IAAL,CAAU,MAAV,CAAZ;AACD;AAEM,SAASkzB,0BAAT,GAA8D;AACnE,SAAO,CACL;AACEx4B,IAAAA,IAAI,EAAEi1B,0BADR;AAEEt4B,IAAAA,KAAK,EAAE83B,wBAFT;AAGE5C,IAAAA,SAAS,EAAE;AAHb,GADK,CAAP;AAOD;AAEM,SAAS4G,wBAAT,GAA4D;AACjE,MAAI;AACF,QAAMC,GAAG,GAAG7U,mBAAmB,CAC7Bf,8CAD6B,CAA/B;;AAGA,QAAI4V,GAAG,IAAI,IAAX,EAAiB;AACf,aAAOhd,IAAI,CAACxf,KAAL,CAAWw8B,GAAX,CAAP;AACD;AACF,GAPD,CAOE,OAAOluB,KAAP,EAAc,CAAE;;AAClB,SAAOguB,0BAA0B,EAAjC;AACD;AAEM,SAASG,wBAAT,CACLC,gBADK,EAEC;AACN1U,EAAAA,mBAAmB,CACjBpB,8CADiB,EAEjBpH,IAAI,CAACC,SAAL,CAAeid,gBAAf,CAFiB,CAAnB;AAID;;AAED,SAASC,SAAT,CAAmB5yB,CAAnB,EAAyC;AACvC,MAAIA,CAAC,KAAK,MAAV,EAAkB;AAChB,WAAO,IAAP;AACD;;AACD,MAAIA,CAAC,KAAK,OAAV,EAAmB;AACjB,WAAO,KAAP;AACD;AACF;;AAEM,SAAS6yB,QAAT,CAAkB76B,CAAlB,EAAoC;AACzC,MAAIA,CAAC,KAAK,IAAN,IAAcA,CAAC,KAAK,KAAxB,EAA+B;AAC7B,WAAOA,CAAP;AACD;AACF;AAEM,SAAS86B,gBAAT,CAA0B96B,CAA1B,EAAiD;AACtD,MAAIA,CAAC,KAAK,OAAN,IAAiBA,CAAC,KAAK,MAAvB,IAAiCA,CAAC,KAAK,MAA3C,EAAmD;AACjD,WAAOA,CAAP;AACD;AACF;AAEM,SAAS+6B,uBAAT,GAA4C;AAAA;;AACjD,MAAMN,GAAG,GAAG7U,mBAAmB,CAC7BN,+CAD6B,CAA/B;AAGA,uBAAOsV,SAAS,CAACH,GAAD,CAAhB,mDAAyB,IAAzB;AACD;AAEM,SAASO,uBAAT,GAA4C;AAAA;;AACjD,MAAMP,GAAG,GAAG7U,mBAAmB,CAACR,4CAAD,CAA/B;AACA,wBAAOwV,SAAS,CAACH,GAAD,CAAhB,qDAAyB,KAAzB;AACD;AAEM,SAASQ,8BAAT,GAAmD;AAAA;;AACxD,MAAMR,GAAG,GAAG7U,mBAAmB,CAC7BH,8CAD6B,CAA/B;AAGA,wBAAOmV,SAAS,CAACH,GAAD,CAAhB,qDAAyB,KAAzB;AACD;AAEM,SAASS,8BAAT,GAAmD;AAAA;;AACxD,MAAMT,GAAG,GAAG7U,mBAAmB,CAC7BL,iDAD6B,CAA/B;AAGA,wBAAOqV,SAAS,CAACH,GAAD,CAAhB,qDAAyB,IAAzB;AACD;AAEM,SAASU,yBAAT,GAA6C;AAClD,SAAO,OAAO34B,OAAO,CAACC,GAAR,CAAY24B,UAAnB,KAAkC,QAAlC,GACH54B,OAAO,CAACC,GAAR,CAAY24B,UADT,GAEH,EAFJ;AAGD;AAEM,SAASC,kBAAT,GAAsC;AAC3C,MAAI;AACF,QAAMZ,GAAG,GAAG7U,mBAAmB,CAACb,gCAAD,CAA/B;;AACA,QAAI0V,GAAG,IAAI,IAAX,EAAiB;AACf,aAAOhd,IAAI,CAACxf,KAAL,CAAWw8B,GAAX,CAAP;AACD;AACF,GALD,CAKE,OAAOluB,KAAP,EAAc,CAAE;;AAClB,SAAO4uB,yBAAyB,EAAhC;AACD;AAEM,SAASG,0BAAT,CACLhL,WADK,EAELvuB,IAFK,EAGkC;AACvC,MAAIuuB,WAAW,KAAK,IAApB,EAA0B;AACxB,WAAO,CAAC,IAAD,EAAO,IAAP,CAAP;AACD;;AAED,MAAIiL,eAAe,GAAG,IAAtB;;AAEA,UAAQx5B,IAAR;AACE,SAAKq0B,gBAAL;AACA,SAAKG,qBAAL;AACA,SAAKD,mBAAL;AACA,SAAKG,eAAL;AACE,UAAInG,WAAW,CAACrjB,OAAZ,CAAoB,GAApB,KAA4B,CAAhC,EAAmC;AACjC,YAAMgB,OAAO,GAAGqiB,WAAW,CAAC3jB,KAAZ,CAAkB,SAAlB,CAAhB;;AACA,YAAIsB,OAAO,IAAI,IAAf,EAAqB;AACnBqiB,UAAAA,WAAW,GAAGriB,OAAO,CAACxN,GAAR,EAAd;AACA86B,UAAAA,eAAe,GAAGttB,OAAlB;AACD;AACF;;AACD;;AACF;AACE;AAdJ;;AAiBA,SAAO,CAACqiB,WAAD,EAAciL,eAAd,CAAP;AACD,EAED;AACA;;AACO,SAASC,cAAT,CAAwBnmB,IAAxB,EAAsChX,IAAtC,EAA6D;AAClE,OAAK,IAAMo9B,SAAX,IAAwBpmB,IAAxB,EAA8B;AAC5B,QAAI,EAAEomB,SAAS,IAAIp9B,IAAf,CAAJ,EAA0B;AACxB,aAAO,IAAP;AACD;AACF;;AACD,OAAK,IAAMo9B,UAAX,IAAwBp9B,IAAxB,EAA8B;AAC5B,QAAIgX,IAAI,CAAComB,UAAD,CAAJ,KAAoBp9B,IAAI,CAACo9B,UAAD,CAA5B,EAAyC;AACvC,aAAO,IAAP;AACD;AACF;;AACD,SAAO,KAAP;AACD;AAEM,SAASC,iBAAT,CAAqBC,MAArB,EAAqCC,IAArC,EAAwE;AAC7E,SAAOA,IAAI,CAACta,MAAL,CAAY,UAACua,OAAD,EAAkBC,IAAlB,EAAqC;AACtD,QAAID,OAAJ,EAAa;AACX,UAAI18B,oBAAc,CAACoH,IAAf,CAAoBs1B,OAApB,EAA6BC,IAA7B,CAAJ,EAAwC;AACtC,eAAOD,OAAO,CAACC,IAAD,CAAd;AACD;;AACD,UAAI,OAAOD,OAAO,CAACj5B,MAAM,CAACoC,QAAR,CAAd,KAAoC,UAAxC,EAAoD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,eAAOgB,KAAK,CAACkd,IAAN,CAAW2Y,OAAX,EAAoBC,IAApB,CAAP;AACD;AACF;;AAED,WAAO,IAAP;AACD,GAjBM,EAiBJH,MAjBI,CAAP;AAkBD;AAEM,SAASI,kBAAT,CACLJ,MADK,EAELC,IAFK,EAGL;AACA,MAAM/9B,MAAM,GAAG+9B,IAAI,CAAC/9B,MAApB;AACA,MAAMm+B,IAAI,GAAGJ,IAAI,CAAC/9B,MAAM,GAAG,CAAV,CAAjB;;AACA,MAAI89B,MAAM,IAAI,IAAd,EAAoB;AAClB,QAAMM,MAAM,GAAGP,iBAAW,CAACC,MAAD,EAASC,IAAI,CAACp7B,KAAL,CAAW,CAAX,EAAc3C,MAAM,GAAG,CAAvB,CAAT,CAA1B;;AACA,QAAIo+B,MAAJ,EAAY;AACV,UAAIh2B,WAAO,CAACg2B,MAAD,CAAX,EAAqB;AACnBA,QAAAA,MAAM,CAAC/6B,MAAP,CAAgB86B,IAAhB,EAAqC,CAArC;AACD,OAFD,MAEO;AACL,eAAOC,MAAM,CAACD,IAAD,CAAb;AACD;AACF;AACF;AACF;AAEM,SAASE,kBAAT,CACLP,MADK,EAELQ,OAFK,EAGLC,OAHK,EAIL;AACA,MAAMv+B,MAAM,GAAGs+B,OAAO,CAACt+B,MAAvB;;AACA,MAAI89B,MAAM,IAAI,IAAd,EAAoB;AAClB,QAAMM,MAAM,GAAGP,iBAAW,CAACC,MAAD,EAASQ,OAAO,CAAC37B,KAAR,CAAc,CAAd,EAAiB3C,MAAM,GAAG,CAA1B,CAAT,CAA1B;;AACA,QAAIo+B,MAAJ,EAAY;AACV,UAAMI,OAAO,GAAGF,OAAO,CAACt+B,MAAM,GAAG,CAAV,CAAvB;AACA,UAAMy+B,OAAO,GAAGF,OAAO,CAACv+B,MAAM,GAAG,CAAV,CAAvB;AACAo+B,MAAAA,MAAM,CAACK,OAAD,CAAN,GAAkBL,MAAM,CAACI,OAAD,CAAxB;;AACA,UAAIp2B,WAAO,CAACg2B,MAAD,CAAX,EAAqB;AACnBA,QAAAA,MAAM,CAAC/6B,MAAP,CAAgBm7B,OAAhB,EAAwC,CAAxC;AACD,OAFD,MAEO;AACL,eAAOJ,MAAM,CAACI,OAAD,CAAb;AACD;AACF;AACF;AACF;AAEM,SAASE,iBAAT,CACLZ,MADK,EAELC,IAFK,EAGLl9B,KAHK,EAIL;AACA,MAAMb,MAAM,GAAG+9B,IAAI,CAAC/9B,MAApB;AACA,MAAMm+B,IAAI,GAAGJ,IAAI,CAAC/9B,MAAM,GAAG,CAAV,CAAjB;;AACA,MAAI89B,MAAM,IAAI,IAAd,EAAoB;AAClB,QAAMM,MAAM,GAAGP,iBAAW,CAACC,MAAD,EAASC,IAAI,CAACp7B,KAAL,CAAW,CAAX,EAAc3C,MAAM,GAAG,CAAvB,CAAT,CAA1B;;AACA,QAAIo+B,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACD,IAAD,CAAN,GAAet9B,KAAf;AACD;AACF;AACF;;AA4BD;;;AAGO,SAAS89B,WAAT,CAAqBniB,IAArB,EAA6C;AAClD,MAAIA,IAAI,KAAK,IAAb,EAAmB;AACjB,WAAO,MAAP;AACD,GAFD,MAEO,IAAIA,IAAI,KAAKhN,SAAb,EAAwB;AAC7B,WAAO,WAAP;AACD;;AAED,MAAItJ,sBAAS,CAACsW,IAAD,CAAb,EAAqB;AACnB,WAAO,eAAP;AACD;;AAED,MAAI,OAAOoiB,WAAP,KAAuB,WAAvB,IAAsCpiB,IAAI,YAAYoiB,WAA1D,EAAuE;AACrE,WAAO,cAAP;AACD;;AAED,MAAM16B,IAAI,GAAG,aAAOsY,IAAV,CAAV;;AACA,UAAQtY,IAAR;AACE,SAAK,QAAL;AACE,aAAO,QAAP;;AACF,SAAK,SAAL;AACE,aAAO,SAAP;;AACF,SAAK,UAAL;AACE,aAAO,UAAP;;AACF,SAAK,QAAL;AACE,UAAI2a,MAAM,CAAC9B,KAAP,CAAaP,IAAb,CAAJ,EAAwB;AACtB,eAAO,KAAP;AACD,OAFD,MAEO,IAAI,CAACqC,MAAM,CAAC5B,QAAP,CAAgBT,IAAhB,CAAL,EAA4B;AACjC,eAAO,UAAP;AACD,OAFM,MAEA;AACL,eAAO,QAAP;AACD;;AACH,SAAK,QAAL;AACE,UAAIpU,WAAO,CAACoU,IAAD,CAAX,EAAmB;AACjB,eAAO,OAAP;AACD,OAFD,MAEO,IAAIqiB,WAAW,CAACC,MAAZ,CAAmBtiB,IAAnB,CAAJ,EAA8B;AACnC,eAAOlb,oBAAc,CAACoH,IAAf,CAAoB8T,IAAI,CAACvU,WAAzB,EAAsC,mBAAtC,IACH,aADG,GAEH,WAFJ;AAGD,OAJM,MAIA,IAAIuU,IAAI,CAACvU,WAAL,IAAoBuU,IAAI,CAACvU,WAAL,CAAiB1G,IAAjB,KAA0B,aAAlD,EAAiE;AACtE;AACA;AACA;AACA;AACA,eAAO,cAAP;AACD,OANM,MAMA,IAAI,OAAOib,IAAI,CAACzX,MAAM,CAACoC,QAAR,CAAX,KAAiC,UAArC,EAAiD;AACtD,YAAMA,QAAQ,GAAGqV,IAAI,CAACzX,MAAM,CAACoC,QAAR,CAAJ,EAAjB;;AACA,YAAI,CAACA,QAAL,EAAe,CACb;AACA;AACD,SAHD,MAGO;AACL,iBAAOA,QAAQ,KAAKqV,IAAb,GAAoB,iBAApB,GAAwC,UAA/C;AACD;AACF,OARM,MAQA,IAAIA,IAAI,CAACvU,WAAL,IAAoBuU,IAAI,CAACvU,WAAL,CAAiB1G,IAAjB,KAA0B,QAAlD,EAA4D;AACjE,eAAO,QAAP;AACD,OAFM,MAEA;AACL;AACA,YAAMw9B,aAAa,GAAG1gC,MAAM,CAACwJ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+B8T,IAA/B,CAAtB;;AACA,YAAIuiB,aAAa,KAAK,eAAtB,EAAuC;AACrC,iBAAO,MAAP;AACD,SAFD,MAEO,IAAIA,aAAa,KAAK,4BAAtB,EAAoD;AACzD,iBAAO,qBAAP;AACD;AACF;;AAED,UAAI,CAACC,aAAa,CAACxiB,IAAD,CAAlB,EAA0B;AACxB,eAAO,gBAAP;AACD;;AAED,aAAO,QAAP;;AACF,SAAK,QAAL;AACE,aAAO,QAAP;;AACF,SAAK,QAAL;AACE,aAAO,QAAP;;AACF,SAAK,WAAL;AACE,WACE;AACAne,MAAAA,MAAM,CAACwJ,SAAP,CAAiBsB,QAAjB,CAA0BT,IAA1B,CAA+B8T,IAA/B,MAAyC,4BAF3C,EAGE;AACA,eAAO,qBAAP;AACD;;AACD,aAAO,WAAP;;AACF;AACE,aAAO,SAAP;AAlEJ;AAoED;AAEM,SAASyiB,6BAAT,CACL1P,OADK,EAEU;AACf,MAAMnrB,WAAW,GAAG0C,mBAAM,CAACyoB,OAAD,CAA1B;;AACA,UAAQnrB,WAAR;AACE,SAAKc,wBAAL;AACE,aAAO,iBAAP;;AACF,SAAKC,wBAAL;AACE,aAAO,iBAAP;;AACF,SAAKE,mBAAL;AACE,aAAO,YAAP;;AACF,SAAKC,iBAAL;AACE,aAAO,UAAP;;AACF,SAAKC,aAAL;AACE,aAAO,MAAP;;AACF,SAAKC,aAAL;AACE,aAAO,MAAP;;AACF,SAAKC,eAAL;AACE,aAAO,QAAP;;AACF,SAAKC,iBAAL;AACE,aAAO,UAAP;;AACF,SAAKC,mBAAL;AACE,aAAO,YAAP;;AACF,SAAKC,iBAAL;AACE,aAAO,UAAP;;AACF,SAAKC,wBAAL;AACE,aAAO,cAAP;;AACF,SAAK2zB,yBAAL;AACE,aAAO,eAAP;;AACF;AAAA,UACSt1B,IADT,GACiBqrB,OADjB,CACSrrB,IADT;;AAEE,UAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,eAAOA,IAAP;AACD,OAFD,MAEO,IAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AACrC,eAAOs2B,cAAc,CAACt2B,IAAD,EAAO,WAAP,CAArB;AACD,OAFM,MAEA,IAAIA,IAAI,IAAI,IAAZ,EAAkB;AACvB,eAAO,0BAAP;AACD,OAFM,MAEA;AACL,eAAO,SAAP;AACD;;AAnCL;AAqCD;AAED,IAAMg7B,yBAAyB,GAAG,EAAlC;;AAEA,SAASC,kBAAT,CACEtE,MADF,EAGE;AAAA,MADA76B,MACA,uEADiBk/B,yBACjB;;AACA,MAAIrE,MAAM,CAAC76B,MAAP,GAAgBA,MAApB,EAA4B;AAC1B,WAAO66B,MAAM,CAACl4B,KAAP,CAAa,CAAb,EAAgB3C,MAAhB,IAA0B,GAAjC;AACD,GAFD,MAEO;AACL,WAAO66B,MAAP;AACD;AACF,EAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASuE,oBAAT,CACL5iB,IADK,EAEL6iB,kBAFK,EAGG;AACR,MAAI7iB,IAAI,IAAI,IAAR,IAAgBlb,oBAAc,CAACoH,IAAf,CAAoB8T,IAApB,EAA0Bid,SAA1B,CAApB,EAA0D;AACxD,WAAO4F,kBAAkB,GACrB7iB,IAAI,CAACid,iBAAD,CADiB,GAErBjd,IAAI,CAACid,kBAAD,CAFR;AAGD;;AAED,MAAMv1B,IAAI,GAAGy6B,WAAW,CAACniB,IAAD,CAAxB;;AAEA,UAAQtY,IAAR;AACE,SAAK,cAAL;AACE,wBAAWi7B,kBAAkB,CAAC3iB,IAAI,CAACqX,OAAL,CAAanE,WAAb,EAAD,CAA7B;;AACF,SAAK,UAAL;AACE,aAAOyP,kBAAkB,kBAClB,OAAO3iB,IAAI,CAACjb,IAAZ,KAAqB,UAArB,GAAkC,EAAlC,GAAuCib,IAAI,CAACjb,IAD1B,WAAzB;;AAGF,SAAK,QAAL;AACE,yBAAWib,IAAX;;AACF,SAAK,QAAL;AACE,aAAO2iB,kBAAkB,CAAC3iB,IAAI,CAACrT,QAAL,KAAkB,GAAnB,CAAzB;;AACF,SAAK,QAAL;AACE,aAAOg2B,kBAAkB,CAAC3iB,IAAI,CAACrT,QAAL,EAAD,CAAzB;;AACF,SAAK,QAAL;AACE,aAAOg2B,kBAAkB,CAAC3iB,IAAI,CAACrT,QAAL,EAAD,CAAzB;;AACF,SAAK,eAAL;AACE,wBAAWg2B,kBAAkB,CAC3BF,6BAA6B,CAACziB,IAAD,CAA7B,IAAuC,SADZ,CAA7B;;AAGF,SAAK,cAAL;AACE,mCAAsBA,IAAI,CAACgjB,UAA3B;;AACF,SAAK,WAAL;AACE,gCAAmBhjB,IAAI,CAACijB,MAAL,CAAYD,UAA/B;;AACF,SAAK,OAAL;AACE,UAAIH,kBAAJ,EAAwB;AACtB,YAAIK,SAAS,GAAG,EAAhB;;AACA,aAAK,IAAI5uB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0L,IAAI,CAACxc,MAAzB,EAAiC8Q,CAAC,EAAlC,EAAsC;AACpC,cAAIA,CAAC,GAAG,CAAR,EAAW;AACT4uB,YAAAA,SAAS,IAAI,IAAb;AACD;;AACDA,UAAAA,SAAS,IAAIN,oBAAoB,CAAC5iB,IAAI,CAAC1L,CAAD,CAAL,EAAU,KAAV,CAAjC;;AACA,cAAI4uB,SAAS,CAAC1/B,MAAV,GAAmBk/B,yBAAvB,EAAkD;AAChD;AACA;AACD;AACF;;AACD,0BAAWC,kBAAkB,CAACO,SAAD,CAA7B;AACD,OAbD,MAaO;AACL,YAAM1/B,MAAM,GAAGsB,oBAAc,CAACoH,IAAf,CAAoB8T,IAApB,EAA0Bid,SAA1B,IACXjd,IAAI,CAACid,SAAD,CADO,GAEXjd,IAAI,CAACxc,MAFT;AAGA,+BAAgBA,MAAhB;AACD;;AACH,SAAK,aAAL;AACE,UAAM2/B,SAAS,aAAMnjB,IAAI,CAACvU,WAAL,CAAiB1G,IAAvB,cAA+Bib,IAAI,CAACxc,MAApC,MAAf;;AACA,UAAIq/B,kBAAJ,EAAwB;AACtB,YAAIK,UAAS,GAAG,EAAhB;;AACA,aAAK,IAAI5uB,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAG0L,IAAI,CAACxc,MAAzB,EAAiC8Q,EAAC,EAAlC,EAAsC;AACpC,cAAIA,EAAC,GAAG,CAAR,EAAW;AACT4uB,YAAAA,UAAS,IAAI,IAAb;AACD;;AACDA,UAAAA,UAAS,IAAIljB,IAAI,CAAC1L,EAAD,CAAjB;;AACA,cAAI4uB,UAAS,CAAC1/B,MAAV,GAAmBk/B,yBAAvB,EAAkD;AAChD;AACA;AACD;AACF;;AACD,yBAAUS,SAAV,eAAwBR,kBAAkB,CAACO,UAAD,CAA1C;AACD,OAbD,MAaO;AACL,eAAOC,SAAP;AACD;;AACH,SAAK,UAAL;AACE,UAAMp+B,IAAI,GAAGib,IAAI,CAACvU,WAAL,CAAiB1G,IAA9B;;AAEA,UAAI89B,kBAAJ,EAAwB;AACtB;AACA;AACA;AACA;AACA,YAAM7kB,KAAK,GAAGrS,KAAK,CAACkd,IAAN,CAAW7I,IAAX,CAAd;AAEA,YAAIkjB,WAAS,GAAG,EAAhB;;AACA,aAAK,IAAI5uB,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAG0J,KAAK,CAACxa,MAA1B,EAAkC8Q,GAAC,EAAnC,EAAuC;AACrC,cAAM8uB,cAAc,GAAGplB,KAAK,CAAC1J,GAAD,CAA5B;;AAEA,cAAIA,GAAC,GAAG,CAAR,EAAW;AACT4uB,YAAAA,WAAS,IAAI,IAAb;AACD,WALoC,CAOrC;AACA;AACA;AACA;AACA;;;AACA,cAAIt3B,WAAO,CAACw3B,cAAD,CAAX,EAA6B;AAC3B,gBAAMt3B,GAAG,GAAG82B,oBAAoB,CAACQ,cAAc,CAAC,CAAD,CAAf,EAAoB,IAApB,CAAhC;AACA,gBAAM/+B,KAAK,GAAGu+B,oBAAoB,CAACQ,cAAc,CAAC,CAAD,CAAf,EAAoB,KAApB,CAAlC;AACAF,YAAAA,WAAS,cAAOp3B,GAAP,iBAAiBzH,KAAjB,CAAT;AACD,WAJD,MAIO;AACL6+B,YAAAA,WAAS,IAAIN,oBAAoB,CAACQ,cAAD,EAAiB,KAAjB,CAAjC;AACD;;AAED,cAAIF,WAAS,CAAC1/B,MAAV,GAAmBk/B,yBAAvB,EAAkD;AAChD;AACA;AACD;AACF;;AAED,yBAAU39B,IAAV,cAAkBib,IAAI,CAACD,IAAvB,gBAAiC4iB,kBAAkB,CAACO,WAAD,CAAnD;AACD,OAnCD,MAmCO;AACL,yBAAUn+B,IAAV,cAAkBib,IAAI,CAACD,IAAvB;AACD;;AACH,SAAK,iBAAL;AAAwB;AACtB,eAAOC,IAAI,CAACzX,MAAM,CAAC86B,WAAR,CAAX;AACD;;AACD,SAAK,MAAL;AACE,aAAOrjB,IAAI,CAACrT,QAAL,EAAP;;AACF,SAAK,gBAAL;AACE,aAAOqT,IAAI,CAACvU,WAAL,CAAiB1G,IAAxB;;AACF,SAAK,QAAL;AACE,UAAI89B,kBAAJ,EAAwB;AACtB,YAAM91B,IAAI,GAAGpB,KAAK,CAACkd,IAAN,CAAWwU,oBAAoB,CAACrd,IAAD,CAA/B,EAAuCsjB,IAAvC,CAA4ClG,aAA5C,CAAb;AAEA,YAAI8F,WAAS,GAAG,EAAhB;;AACA,aAAK,IAAI5uB,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGvH,IAAI,CAACvJ,MAAzB,EAAiC8Q,GAAC,EAAlC,EAAsC;AACpC,cAAMxI,IAAG,GAAGiB,IAAI,CAACuH,GAAD,CAAhB;;AACA,cAAIA,GAAC,GAAG,CAAR,EAAW;AACT4uB,YAAAA,WAAS,IAAI,IAAb;AACD;;AACDA,UAAAA,WAAS,cAAOp3B,IAAG,CAACa,QAAJ,EAAP,eAA0Bi2B,oBAAoB,CACrD5iB,IAAI,CAAClU,IAAD,CADiD,EAErD,KAFqD,CAA9C,CAAT;;AAIA,cAAIo3B,WAAS,CAAC1/B,MAAV,GAAmBk/B,yBAAvB,EAAkD;AAChD;AACA;AACD;AACF;;AACD,0BAAWC,kBAAkB,CAACO,WAAD,CAA7B;AACD,OAnBD,MAmBO;AACL,eAAO,KAAP;AACD;;AACH,SAAK,SAAL;AACA,SAAK,QAAL;AACA,SAAK,UAAL;AACA,SAAK,KAAL;AACA,SAAK,MAAL;AACA,SAAK,WAAL;AACE,aAAOljB,IAAP;;AACF;AACE,UAAI;AACF,eAAO2iB,kBAAkB,CAAC71B,MAAM,CAACkT,IAAD,CAAP,CAAzB;AACD,OAFD,CAEE,OAAO9N,KAAP,EAAc;AACd,eAAO,gBAAP;AACD;;AAhJL;AAkJD,EAED;;AACO,IAAMswB,aAAa,GAAG,SAAhBA,aAAgB,CAAClB,MAAD,EAA6B;AACxD,MAAMiC,eAAe,GAAG1hC,MAAM,CAAC67B,cAAP,CAAsB4D,MAAtB,CAAxB;AACA,MAAI,CAACiC,eAAL,EAAsB,OAAO,IAAP;AAEtB,MAAMC,qBAAqB,GAAG3hC,MAAM,CAAC67B,cAAP,CAAsB6F,eAAtB,CAA9B;AACA,SAAO,CAACC,qBAAR;AACD,CANM;;;;;;;;AC33BP;;;;;;;;AASA;AAcO,IAAMvG,IAAI,GAAG;AAClBwG,EAAAA,WAAW,EAAGl7B,MAAM,CAAC,aAAD,CADF;AAElBm7B,EAAAA,SAAS,EAAGn7B,MAAM,CAAC,WAAD,CAFA;AAGlBxD,EAAAA,IAAI,EAAGwD,MAAM,CAAC,MAAD,CAHK;AAIlBu6B,EAAAA,YAAY,EAAGv6B,MAAM,CAAC,cAAD,CAJH;AAKlBw6B,EAAAA,aAAa,EAAGx6B,MAAM,CAAC,eAAD,CALJ;AAMlBo7B,EAAAA,QAAQ,EAAGp7B,MAAM,CAAC,UAAD,CANC;AAOlBwX,EAAAA,IAAI,EAAGxX,MAAM,CAAC,MAAD,CAPK;AAQlBb,EAAAA,IAAI,EAAGa,MAAM,CAAC,MAAD,CARK;AASlBq7B,EAAAA,cAAc,EAAGr7B,MAAM,CAAC,gBAAD;AATL,CAAb;AAqCP;AACA;AACA;AACA;AACA;AACA;AACA,IAAMs7B,eAAe,GAAG,CAAxB;AAEA;;;;AAGA,SAASC,gBAAT,CACEp8B,IADF,EAEE+7B,WAFF,EAGEzjB,IAHF,EAIE+jB,OAJF,EAKExC,IALF,EAMc;AACZwC,EAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AAEA,MAAMyC,UAAsB,GAAG;AAC7BP,IAAAA,WAAW,EAAXA,WAD6B;AAE7B/7B,IAAAA,IAAI,EAAJA,IAF6B;AAG7Bo7B,IAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAHL;AAI7B+iB,IAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAJN;AAK7Bjb,IAAAA,IAAI,EACF,CAACib,IAAI,CAACvU,WAAN,IAAqBuU,IAAI,CAACvU,WAAL,CAAiB1G,IAAjB,KAA0B,QAA/C,GACI,EADJ,GAEIib,IAAI,CAACvU,WAAL,CAAiB1G;AARM,GAA/B;;AAWA,MAAI2C,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,aAAjC,EAAgD;AAC9Cs8B,IAAAA,UAAU,CAACjkB,IAAX,GAAkBC,IAAI,CAACxc,MAAvB;AACD,GAFD,MAEO,IAAIkE,IAAI,KAAK,QAAb,EAAuB;AAC5Bs8B,IAAAA,UAAU,CAACjkB,IAAX,GAAkBle,MAAM,CAACkL,IAAP,CAAYiT,IAAZ,EAAkBxc,MAApC;AACD;;AAED,MAAIkE,IAAI,KAAK,UAAT,IAAuBA,IAAI,KAAK,aAApC,EAAmD;AACjDs8B,IAAAA,UAAU,CAACL,QAAX,GAAsB,IAAtB;AACD;;AAED,SAAOK,UAAP;AACD;AAED;;;;;;;;;;;;;;;;;;;;AAkBO,SAASC,SAAT,CACLjkB,IADK,EAEL+jB,OAFK,EAGLH,cAHK,EAILrC,IAJK,EAKL2C,aALK,EAOkC;AAAA,MADvCC,KACuC,uEADvB,CACuB;AACvC,MAAMz8B,IAAI,GAAGy6B,WAAW,CAACniB,IAAD,CAAxB;AAEA,MAAIokB,kBAAJ;;AAEA,UAAQ18B,IAAR;AACE,SAAK,cAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAEib,IAAI,CAACqX,OAJN;AAKL3vB,QAAAA,IAAI,EAAJA;AALK,OAAP;;AAQF,SAAK,UAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EACF,OAAOib,IAAI,CAACjb,IAAZ,KAAqB,UAArB,IAAmC,CAACib,IAAI,CAACjb,IAAzC,GACI,UADJ,GAEIib,IAAI,CAACjb,IAPN;AAQL2C,QAAAA,IAAI,EAAJA;AARK,OAAP;;AAWF,SAAK,QAAL;AACE08B,MAAAA,kBAAkB,GAAGF,aAAa,CAAC3C,IAAD,CAAlC;;AACA,UAAI6C,kBAAJ,EAAwB;AACtB,eAAOpkB,IAAP;AACD,OAFD,MAEO;AACL,eAAOA,IAAI,CAACxc,MAAL,IAAe,GAAf,GAAqBwc,IAArB,GAA4BA,IAAI,CAAC7Z,KAAL,CAAW,CAAX,EAAc,GAAd,IAAqB,KAAxD;AACD;;AAEH,SAAK,QAAL;AACE49B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAEib,IAAI,CAACrT,QAAL,EAJD;AAKLjF,QAAAA,IAAI,EAAJA;AALK,OAAP;;AAQF,SAAK,QAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAEib,IAAI,CAACrT,QAAL,EAJD;AAKLjF,QAAAA,IAAI,EAAJA;AALK,OAAP;AAQF;AACA;;AACA,SAAK,eAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAE09B,6BAA6B,CAACziB,IAAD,CAA7B,IAAuC,SAJxC;AAKLtY,QAAAA,IAAI,EAAJA;AALK,OAAP;AAQF;;AACA,SAAK,cAAL;AACA,SAAK,WAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAE2C,IAAI,KAAK,WAAT,GAAuB,UAAvB,GAAoC,aAJrC;AAKLqY,QAAAA,IAAI,EAAEC,IAAI,CAACgjB,UALN;AAMLt7B,QAAAA,IAAI,EAAJA;AANK,OAAP;;AASF,SAAK,OAAL;AACE08B,MAAAA,kBAAkB,GAAGF,aAAa,CAAC3C,IAAD,CAAlC;;AACA,UAAI4C,KAAK,IAAIN,eAAT,IAA4B,CAACO,kBAAjC,EAAqD;AACnD,eAAON,gBAAgB,CAACp8B,IAAD,EAAO,IAAP,EAAasY,IAAb,EAAmB+jB,OAAnB,EAA4BxC,IAA5B,CAAvB;AACD;;AACD,aAAOvhB,IAAI,CAAClZ,GAAL,CAAS,UAACiV,IAAD,EAAOzH,CAAP;AAAA,eACd2vB,SAAS,CACPloB,IADO,EAEPgoB,OAFO,EAGPH,cAHO,EAIPrC,IAAI,CAAC7jB,MAAL,CAAY,CAACpJ,CAAD,CAAZ,CAJO,EAKP4vB,aALO,EAMPE,kBAAkB,GAAG,CAAH,GAAOD,KAAK,GAAG,CAN1B,CADK;AAAA,OAAT,CAAP;;AAWF,SAAK,qBAAL;AACA,SAAK,aAAL;AACA,SAAK,UAAL;AACEC,MAAAA,kBAAkB,GAAGF,aAAa,CAAC3C,IAAD,CAAlC;;AACA,UAAI4C,KAAK,IAAIN,eAAT,IAA4B,CAACO,kBAAjC,EAAqD;AACnD,eAAON,gBAAgB,CAACp8B,IAAD,EAAO,IAAP,EAAasY,IAAb,EAAmB+jB,OAAnB,EAA4BxC,IAA5B,CAAvB;AACD,OAFD,MAEO;AACL,YAAM8C,mBAAmC,GAAG;AAC1CT,UAAAA,cAAc,EAAE,IAD0B;AAE1Cl8B,UAAAA,IAAI,EAAEA,IAFoC;AAG1Ci8B,UAAAA,QAAQ,EAAE,IAHgC;AAI1C5jB,UAAAA,IAAI,EAAErY,IAAI,KAAK,aAAT,GAAyBsY,IAAI,CAACxc,MAA9B,GAAuCwP,SAJH;AAK1C+vB,UAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CALO;AAM1C8iB,UAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CANQ;AAO1Cjb,UAAAA,IAAI,EACF,CAACib,IAAI,CAACvU,WAAN,IAAqBuU,IAAI,CAACvU,WAAL,CAAiB1G,IAAjB,KAA0B,QAA/C,GACI,EADJ,GAEIib,IAAI,CAACvU,WAAL,CAAiB1G;AAVmB,SAA5C,CADK,CAcL;AACA;AACA;AACA;;AACA4G,QAAAA,KAAK,CAACkd,IAAN,CAAW7I,IAAX,EAAiB3Y,OAAjB,CACE,UAAC0U,IAAD,EAAOzH,CAAP;AAAA,iBACG+vB,mBAAmB,CAAC/vB,CAAD,CAAnB,GAAyB2vB,SAAS,CACjCloB,IADiC,EAEjCgoB,OAFiC,EAGjCH,cAHiC,EAIjCrC,IAAI,CAAC7jB,MAAL,CAAY,CAACpJ,CAAD,CAAZ,CAJiC,EAKjC4vB,aALiC,EAMjCE,kBAAkB,GAAG,CAAH,GAAOD,KAAK,GAAG,CANA,CADrC;AAAA,SADF;AAYAP,QAAAA,cAAc,CAACx/B,IAAf,CAAoBm9B,IAApB;AAEA,eAAO8C,mBAAP;AACD;;AAEH,SAAK,iBAAL;AACEN,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAEib,IAAI,CAACzX,MAAM,CAAC86B,WAAR,CAJL;AAKL37B,QAAAA,IAAI,EAAJA;AALK,OAAP;;AAQF,SAAK,MAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAEib,IAAI,CAACrT,QAAL,EAJD;AAKLjF,QAAAA,IAAI,EAAJA;AALK,OAAP;;AAQF,SAAK,QAAL;AACEq8B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AACLkC,QAAAA,WAAW,EAAE,KADR;AAELV,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAF9B;AAGL8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CAH7B;AAILjb,QAAAA,IAAI,EAAEib,IAAI,CAACrT,QAAL,EAJD;AAKLjF,QAAAA,IAAI,EAAJA;AALK,OAAP;;AAQF,SAAK,QAAL;AACE08B,MAAAA,kBAAkB,GAAGF,aAAa,CAAC3C,IAAD,CAAlC;;AAEA,UAAI4C,KAAK,IAAIN,eAAT,IAA4B,CAACO,kBAAjC,EAAqD;AACnD,eAAON,gBAAgB,CAACp8B,IAAD,EAAO,IAAP,EAAasY,IAAb,EAAmB+jB,OAAnB,EAA4BxC,IAA5B,CAAvB;AACD,OAFD,MAEO;AACL,YAAMD,MAEL,GAAG,EAFJ;AAGAjE,QAAAA,oBAAoB,CAACrd,IAAD,CAApB,CAA2B3Y,OAA3B,CAAmC,UAAAyE,GAAG,EAAI;AACxC,cAAM/G,IAAI,GAAG+G,GAAG,CAACa,QAAJ,EAAb;AACA20B,UAAAA,MAAM,CAACv8B,IAAD,CAAN,GAAek/B,SAAS,CACtBjkB,IAAI,CAAClU,GAAD,CADkB,EAEtBi4B,OAFsB,EAGtBH,cAHsB,EAItBrC,IAAI,CAAC7jB,MAAL,CAAY,CAAC3Y,IAAD,CAAZ,CAJsB,EAKtBm/B,aALsB,EAMtBE,kBAAkB,GAAG,CAAH,GAAOD,KAAK,GAAG,CANX,CAAxB;AAQD,SAVD;AAWA,eAAO7C,MAAP;AACD;;AAEH,SAAK,gBAAL;AACE8C,MAAAA,kBAAkB,GAAGF,aAAa,CAAC3C,IAAD,CAAlC;;AAEA,UAAI4C,KAAK,IAAIN,eAAT,IAA4B,CAACO,kBAAjC,EAAqD;AACnD,eAAON,gBAAgB,CAACp8B,IAAD,EAAO,IAAP,EAAasY,IAAb,EAAmB+jB,OAAnB,EAA4BxC,IAA5B,CAAvB;AACD;;AAED,UAAMl9B,KAAqB,GAAG;AAC5Bu/B,QAAAA,cAAc,EAAE,IADY;AAE5Bl8B,QAAAA,IAAI,EAAJA,IAF4B;AAG5Bi8B,QAAAA,QAAQ,EAAE,IAHkB;AAI5BZ,QAAAA,aAAa,EAAEH,oBAAoB,CAAC5iB,IAAD,EAAO,KAAP,CAJP;AAK5B8iB,QAAAA,YAAY,EAAEF,oBAAoB,CAAC5iB,IAAD,EAAO,IAAP,CALN;AAM5Bjb,QAAAA,IAAI,EAAEib,IAAI,CAACvU,WAAL,CAAiB1G;AANK,OAA9B;AASAs4B,MAAAA,oBAAoB,CAACrd,IAAD,CAApB,CAA2B3Y,OAA3B,CAAmC,UAAAyE,GAAG,EAAI;AACxC,YAAMw4B,WAAW,GAAGx4B,GAAG,CAACa,QAAJ,EAApB;AAEAtI,QAAAA,KAAK,CAACigC,WAAD,CAAL,GAAqBL,SAAS,CAC5BjkB,IAAI,CAAClU,GAAD,CADwB,EAE5Bi4B,OAF4B,EAG5BH,cAH4B,EAI5BrC,IAAI,CAAC7jB,MAAL,CAAY,CAAC4mB,WAAD,CAAZ,CAJ4B,EAK5BJ,aAL4B,EAM5BE,kBAAkB,GAAG,CAAH,GAAOD,KAAK,GAAG,CANL,CAA9B;AAQD,OAXD;AAaAP,MAAAA,cAAc,CAACx/B,IAAf,CAAoBm9B,IAApB;AAEA,aAAOl9B,KAAP;;AAEF,SAAK,UAAL;AACA,SAAK,KAAL;AACA,SAAK,WAAL;AACE;AACA;AACA0/B,MAAAA,OAAO,CAAC3/B,IAAR,CAAam9B,IAAb;AACA,aAAO;AAAC75B,QAAAA,IAAI,EAAJA;AAAD,OAAP;;AAEF;AACE,aAAOsY,IAAP;AArOJ;AAuOD;AAEM,SAASukB,UAAT,CACLjD,MADK,EAELthB,IAFK,EAGLuhB,IAHK,EAILl9B,KAJK,EAKL;AACA,MAAM+yB,MAAM,GAAGiK,WAAW,CAACC,MAAD,EAASC,IAAT,CAA1B;;AACA,MAAInK,MAAM,IAAI,IAAd,EAAoB;AAClB,QAAI,CAACA,MAAM,CAAC6F,IAAI,CAAC2G,cAAN,CAAX,EAAkC;AAChC,aAAOxM,MAAM,CAAC6F,IAAI,CAACwG,WAAN,CAAb;AACA,aAAOrM,MAAM,CAAC6F,IAAI,CAACyG,SAAN,CAAb;AACA,aAAOtM,MAAM,CAAC6F,IAAI,CAACl4B,IAAN,CAAb;AACA,aAAOqyB,MAAM,CAAC6F,IAAI,CAAC6F,YAAN,CAAb;AACA,aAAO1L,MAAM,CAAC6F,IAAI,CAAC8F,aAAN,CAAb;AACA,aAAO3L,MAAM,CAAC6F,IAAI,CAAC0G,QAAN,CAAb;AACA,aAAOvM,MAAM,CAAC6F,IAAI,CAACld,IAAN,CAAb;AACA,aAAOqX,MAAM,CAAC6F,IAAI,CAACv1B,IAAN,CAAb;AACD;AACF;;AAED,MAAIrD,KAAK,KAAK,IAAV,IAAkB2b,IAAI,CAAC4jB,cAAL,CAAoBpgC,MAApB,GAA6B,CAAnD,EAAsD;AACpD,QAAMghC,kBAAkB,GAAGxkB,IAAI,CAAC4jB,cAAL,CAAoB,CAApB,CAA3B;AACA,QAAIa,OAAO,GAAGD,kBAAkB,CAAChhC,MAAnB,KAA8B+9B,IAAI,CAAC/9B,MAAjD;;AACA,SAAK,IAAI8Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGitB,IAAI,CAAC/9B,MAAzB,EAAiC8Q,CAAC,EAAlC,EAAsC;AACpC,UAAIitB,IAAI,CAACjtB,CAAD,CAAJ,KAAYkwB,kBAAkB,CAAClwB,CAAD,CAAlC,EAAuC;AACrCmwB,QAAAA,OAAO,GAAG,KAAV;AACA;AACD;AACF;;AACD,QAAIA,OAAJ,EAAa;AACXC,MAAAA,qBAAqB,CAACrgC,KAAD,EAAQA,KAAR,CAArB;AACD;AACF;;AAED69B,EAAAA,WAAW,CAACZ,MAAD,EAASC,IAAT,EAAel9B,KAAf,CAAX;AACD;AAEM,SAASsgC,OAAT,CACLrD,MADK,EAELyC,OAFK,EAGLH,cAHK,EAIG;AACRG,EAAAA,OAAO,CAAC18B,OAAR,CAAgB,UAACk6B,IAAD,EAAkC;AAChD,QAAM/9B,MAAM,GAAG+9B,IAAI,CAAC/9B,MAApB;AACA,QAAMm+B,IAAI,GAAGJ,IAAI,CAAC/9B,MAAM,GAAG,CAAV,CAAjB;AACA,QAAMo+B,MAAM,GAAGP,WAAW,CAACC,MAAD,EAASC,IAAI,CAACp7B,KAAL,CAAW,CAAX,EAAc3C,MAAM,GAAG,CAAvB,CAAT,CAA1B;;AACA,QAAI,CAACo+B,MAAD,IAAW,CAACA,MAAM,CAAC98B,cAAP,CAAsB68B,IAAtB,CAAhB,EAA6C;AAC3C;AACD;;AAED,QAAMt9B,KAAK,GAAGu9B,MAAM,CAACD,IAAD,CAApB;;AAEA,QAAI,CAACt9B,KAAL,EAAY;AACV;AACD,KAFD,MAEO,IAAIA,KAAK,CAACqD,IAAN,KAAe,UAAnB,EAA+B;AACpCk6B,MAAAA,MAAM,CAACD,IAAD,CAAN,GAAe/nB,QAAf;AACD,KAFM,MAEA,IAAIvV,KAAK,CAACqD,IAAN,KAAe,KAAnB,EAA0B;AAC/Bk6B,MAAAA,MAAM,CAACD,IAAD,CAAN,GAAeiD,GAAf;AACD,KAFM,MAEA,IAAIvgC,KAAK,CAACqD,IAAN,KAAe,WAAnB,EAAgC;AACrCk6B,MAAAA,MAAM,CAACD,IAAD,CAAN,GAAe3uB,SAAf;AACD,KAFM,MAEA;AACL;AACA,UAAM6xB,QAAgD,GAAG,EAAzD;AACAA,MAAAA,QAAQ,CAAC5H,IAAI,CAACwG,WAAN,CAAR,GAA6B,CAAC,CAACp/B,KAAK,CAACo/B,WAArC;AACAoB,MAAAA,QAAQ,CAAC5H,IAAI,CAACyG,SAAN,CAAR,GAA2B,KAA3B;AACAmB,MAAAA,QAAQ,CAAC5H,IAAI,CAACl4B,IAAN,CAAR,GAAsBV,KAAK,CAACU,IAA5B;AACA8/B,MAAAA,QAAQ,CAAC5H,IAAI,CAAC6F,YAAN,CAAR,GAA8Bz+B,KAAK,CAACy+B,YAApC;AACA+B,MAAAA,QAAQ,CAAC5H,IAAI,CAAC8F,aAAN,CAAR,GAA+B1+B,KAAK,CAAC0+B,aAArC;AACA8B,MAAAA,QAAQ,CAAC5H,IAAI,CAACld,IAAN,CAAR,GAAsB1b,KAAK,CAAC0b,IAA5B;AACA8kB,MAAAA,QAAQ,CAAC5H,IAAI,CAAC0G,QAAN,CAAR,GAA0B,CAAC,CAACt/B,KAAK,CAACs/B,QAAlC;AACAkB,MAAAA,QAAQ,CAAC5H,IAAI,CAACv1B,IAAN,CAAR,GAAsBrD,KAAK,CAACqD,IAA5B;AAEAk6B,MAAAA,MAAM,CAACD,IAAD,CAAN,GAAekD,QAAf;AACD;AACF,GAhCD;AAiCAjB,EAAAA,cAAc,CAACv8B,OAAf,CAAuB,UAACk6B,IAAD,EAAkC;AACvD,QAAM/9B,MAAM,GAAG+9B,IAAI,CAAC/9B,MAApB;AACA,QAAMm+B,IAAI,GAAGJ,IAAI,CAAC/9B,MAAM,GAAG,CAAV,CAAjB;AACA,QAAMo+B,MAAM,GAAGP,WAAW,CAACC,MAAD,EAASC,IAAI,CAACp7B,KAAL,CAAW,CAAX,EAAc3C,MAAM,GAAG,CAAvB,CAAT,CAA1B;;AACA,QAAI,CAACo+B,MAAD,IAAW,CAACA,MAAM,CAAC98B,cAAP,CAAsB68B,IAAtB,CAAhB,EAA6C;AAC3C;AACD;;AAED,QAAMzmB,IAAI,GAAG0mB,MAAM,CAACD,IAAD,CAAnB;;AAEA,QAAMmD,WAAW,qBACZ5pB,IADY,CAAjB;;AAIAwpB,IAAAA,qBAAqB,CAACI,WAAD,EAAc5pB,IAAd,CAArB;AAEA0mB,IAAAA,MAAM,CAACD,IAAD,CAAN,GAAemD,WAAf;AACD,GAjBD;AAkBA,SAAOxD,MAAP;AACD;;AAED,SAASoD,qBAAT,CAA+BK,WAA/B,EAAoD3/B,MAApD,EAAoE;AAAA;;AAClEvD,EAAAA,MAAM,CAACmjC,gBAAP,CAAwBD,WAAxB,+EAEG9H,IAAI,CAACyG,SAFR,EAEoB;AAChBxjB,IAAAA,YAAY,EAAE,IADE;AAEhB5F,IAAAA,UAAU,EAAE,KAFI;AAGhBjW,IAAAA,KAAK,EAAE,CAAC,CAACe,MAAM,CAACs+B;AAHA,GAFpB,mDAQGzG,IAAI,CAACl4B,IARR,EAQe;AACXmb,IAAAA,YAAY,EAAE,IADH;AAEX5F,IAAAA,UAAU,EAAE,KAFD;AAGXjW,IAAAA,KAAK,EAAEe,MAAM,CAACL;AAHH,GARf,mDAcGk4B,IAAI,CAAC6F,YAdR,EAcuB;AACnB5iB,IAAAA,YAAY,EAAE,IADK;AAEnB5F,IAAAA,UAAU,EAAE,KAFO;AAGnBjW,IAAAA,KAAK,EAAEe,MAAM,CAAC09B;AAHK,GAdvB,mDAoBG7F,IAAI,CAAC8F,aApBR,EAoBwB;AACpB7iB,IAAAA,YAAY,EAAE,IADM;AAEpB5F,IAAAA,UAAU,EAAE,KAFQ;AAGpBjW,IAAAA,KAAK,EAAEe,MAAM,CAAC29B;AAHM,GApBxB,mDA0BG9F,IAAI,CAACld,IA1BR,EA0Be;AACXG,IAAAA,YAAY,EAAE,IADH;AAEX5F,IAAAA,UAAU,EAAE,KAFD;AAGXjW,IAAAA,KAAK,EAAEe,MAAM,CAAC2a;AAHH,GA1Bf,mDAgCGkd,IAAI,CAAC0G,QAhCR,EAgCmB;AACfzjB,IAAAA,YAAY,EAAE,IADC;AAEf5F,IAAAA,UAAU,EAAE,KAFG;AAGfjW,IAAAA,KAAK,EAAE,CAAC,CAACe,MAAM,CAACu+B;AAHD,GAhCnB,mDAsCG1G,IAAI,CAACv1B,IAtCR,EAsCe;AACXwY,IAAAA,YAAY,EAAE,IADH;AAEX5F,IAAAA,UAAU,EAAE,KAFD;AAGXjW,IAAAA,KAAK,EAAEe,MAAM,CAACsC;AAHH,GAtCf,mDA4CGu1B,IAAI,CAAC2G,cA5CR,EA4CyB;AACrB1jB,IAAAA,YAAY,EAAE,IADO;AAErB5F,IAAAA,UAAU,EAAE,KAFS;AAGrBjW,IAAAA,KAAK,EAAE,CAAC,CAACe,MAAM,CAACw+B;AAHK,GA5CzB;AAmDA,SAAOmB,WAAW,CAACrB,SAAnB;AACA,SAAOqB,WAAW,CAAChgC,IAAnB;AACA,SAAOggC,WAAW,CAACjC,YAAnB;AACA,SAAOiC,WAAW,CAAChC,aAAnB;AACA,SAAOgC,WAAW,CAAChlB,IAAnB;AACA,SAAOglB,WAAW,CAACpB,QAAnB;AACA,SAAOoB,WAAW,CAACr9B,IAAnB;AACA,SAAOq9B,WAAW,CAACnB,cAAnB;AACD;;AC3gBD;;;;;;;;AAWA,IAAMqB,WAAW,GAAGt5B,KAAK,CAACC,OAA1B,EAEA;;AACA,SAASA,eAAT,CAAiBxJ,CAAjB,EAAoC;AAClC,SAAO6iC,WAAW,CAAC7iC,CAAD,CAAlB;AACD;;AAED,qDAAewJ,eAAf;;;;;;;;;;;;;;;;;;;;;;AClBA;;;;;;;;;AAUA;AACA;AACA;AAIA;AACA,IAAMu5B,mCAAmC,GAAG,SAA5C;AACO,SAASC,kBAAT,CAA4B7zB,OAA5B,EAAuD;AAC5D,MAAIA,OAAO,IAAI,IAAX,IAAmBA,OAAO,KAAK,EAAnC,EAAuC;AACrC,WAAO,KAAP;AACD;;AACD,SAAO8zB,GAAG,CAAC9zB,OAAD,EAAU4zB,mCAAV,CAAV;AACD;AAEM,SAASG,cAAT,CACLtlB,IADK,EAELkkB,aAFK,EAIkB;AAAA,MADvB3C,IACuB,uEADQ,EACR;;AACvB,MAAIvhB,IAAI,KAAK,IAAb,EAAmB;AACjB,QAAMulB,YAA2C,GAAG,EAApD;AACA,QAAMC,mBAAkD,GAAG,EAA3D;AACA,QAAMC,WAAW,GAAGxB,SAAS,CAC3BjkB,IAD2B,EAE3BulB,YAF2B,EAG3BC,mBAH2B,EAI3BjE,IAJ2B,EAK3B2C,aAL2B,CAA7B;AAQA,WAAO;AACLlkB,MAAAA,IAAI,EAAEylB,WADD;AAEL1B,MAAAA,OAAO,EAAEwB,YAFJ;AAGL3B,MAAAA,cAAc,EAAE4B;AAHX,KAAP;AAKD,GAhBD,MAgBO;AACL,WAAO,IAAP;AACD;AACF;AAEM,SAASE,cAAT,CACLvkB,GADK,EAELogB,IAFK,EAIgB;AAAA,MADrBlY,KACqB,uEADL,CACK;AACrB,MAAMvd,GAAG,GAAGy1B,IAAI,CAAClY,KAAD,CAAhB;AACA,MAAMsc,OAAO,GAAG/5B,cAAO,CAACuV,GAAD,CAAP,GAAeA,GAAG,CAAChb,KAAJ,EAAf,0BAAiCgb,GAAjC,CAAhB;;AACA,MAAIkI,KAAK,GAAG,CAAR,KAAckY,IAAI,CAAC/9B,MAAvB,EAA+B;AAC7B,QAAIoI,cAAO,CAAC+5B,OAAD,CAAX,EAAsB;AACpBA,MAAAA,OAAO,CAAC9+B,MAAR,CAAiBiF,GAAjB,EAAqC,CAArC;AACD,KAFD,MAEO;AACL,aAAO65B,OAAO,CAAC75B,GAAD,CAAd;AACD;AACF,GAND,MAMO;AACL;AACA65B,IAAAA,OAAO,CAAC75B,GAAD,CAAP,GAAe45B,cAAc,CAACvkB,GAAG,CAACrV,GAAD,CAAJ,EAAWy1B,IAAX,EAAiBlY,KAAK,GAAG,CAAzB,CAA7B;AACD;;AACD,SAAOsc,OAAP;AACD,EAED;AACA;;AACO,SAASC,cAAT,CACLzkB,GADK,EAEL2gB,OAFK,EAGLC,OAHK,EAKgB;AAAA,MADrB1Y,KACqB,uEADL,CACK;AACrB,MAAMwc,MAAM,GAAG/D,OAAO,CAACzY,KAAD,CAAtB;AACA,MAAMsc,OAAO,GAAG/5B,cAAO,CAACuV,GAAD,CAAP,GAAeA,GAAG,CAAChb,KAAJ,EAAf,0BAAiCgb,GAAjC,CAAhB;;AACA,MAAIkI,KAAK,GAAG,CAAR,KAAcyY,OAAO,CAACt+B,MAA1B,EAAkC;AAChC,QAAMsiC,MAAM,GAAG/D,OAAO,CAAC1Y,KAAD,CAAtB,CADgC,CAEhC;;AACAsc,IAAAA,OAAO,CAACG,MAAD,CAAP,GAAkBH,OAAO,CAACE,MAAD,CAAzB;;AACA,QAAIj6B,cAAO,CAAC+5B,OAAD,CAAX,EAAsB;AACpBA,MAAAA,OAAO,CAAC9+B,MAAR,CAAiBg/B,MAAjB,EAAwC,CAAxC;AACD,KAFD,MAEO;AACL,aAAOF,OAAO,CAACE,MAAD,CAAd;AACD;AACF,GATD,MASO;AACL;AACAF,IAAAA,OAAO,CAACE,MAAD,CAAP,GAAkBD,cAAc,CAACzkB,GAAG,CAAC0kB,MAAD,CAAJ,EAAc/D,OAAd,EAAuBC,OAAvB,EAAgC1Y,KAAK,GAAG,CAAxC,CAAhC;AACD;;AACD,SAAOsc,OAAP;AACD;AAEM,SAASI,WAAT,CACL5kB,GADK,EAELogB,IAFK,EAGLl9B,KAHK,EAKgB;AAAA,MADrBglB,KACqB,uEADL,CACK;;AACrB,MAAIA,KAAK,IAAIkY,IAAI,CAAC/9B,MAAlB,EAA0B;AACxB,WAAOa,KAAP;AACD;;AACD,MAAMyH,GAAG,GAAGy1B,IAAI,CAAClY,KAAD,CAAhB;AACA,MAAMsc,OAAO,GAAG/5B,cAAO,CAACuV,GAAD,CAAP,GAAeA,GAAG,CAAChb,KAAJ,EAAf,0BAAiCgb,GAAjC,CAAhB,CALqB,CAMrB;;AACAwkB,EAAAA,OAAO,CAAC75B,GAAD,CAAP,GAAei6B,WAAW,CAAC5kB,GAAG,CAACrV,GAAD,CAAJ,EAAWy1B,IAAX,EAAiBl9B,KAAjB,EAAwBglB,KAAK,GAAG,CAAhC,CAA1B;AACA,SAAOsc,OAAP;AACD;AAEM,SAASK,kBAAT,CAA4Bx0B,IAA5B,EAGL;AACA;AACA;AACA,MAAIy0B,cAAc,GAAG,IAArB;AACA,MAAIC,qBAAqB,GAAG,IAA5B;AACA,MAAMC,QAAQ,GAAG30B,IAAI,CAACjN,OAAtB;;AACA,MAAI4hC,QAAQ,IAAI,IAAhB,EAAsB;AACpB,QAAMC,SAAS,GAAGD,QAAQ,CAACC,SAA3B;;AACA,QAAIA,SAAS,IAAI,IAAjB,EAAuB;AACrBH,MAAAA,cAAc,GACZG,SAAS,CAACH,cAAV,IAA4B,IAA5B,GAAmCG,SAAS,CAACH,cAA7C,GAA8D,IADhE;AAEAC,MAAAA,qBAAqB,GACnBE,SAAS,CAACF,qBAAV,IAAmC,IAAnC,GACIE,SAAS,CAACF,qBADd,GAEI,IAHN;AAID;AACF;;AACD,SAAO;AAACD,IAAAA,cAAc,EAAdA,cAAD;AAAiBC,IAAAA,qBAAqB,EAArBA;AAAjB,GAAP;AACD;AAEM,SAASG,iBAAT,CAA2BrmB,IAA3B,EAA8C;AACnD,MAAIA,IAAI,KAAKhN,SAAb,EAAwB;AACtB,WAAO,WAAP;AACD;;AAED,MAAMjE,KAAK,GAAG,IAAIgmB,GAAJ,EAAd,CALmD,CAMnD;;AACA,SAAO3R,IAAI,CAACC,SAAL,CACLrD,IADK,EAEL,UAAClU,GAAD,EAAMzH,KAAN,EAAgB;AACd,QAAI,qBAAOA,KAAP,MAAiB,QAAjB,IAA6BA,KAAK,KAAK,IAA3C,EAAiD;AAC/C,UAAI0K,KAAK,CAAChH,GAAN,CAAU1D,KAAV,CAAJ,EAAsB;AACpB;AACD;;AACD0K,MAAAA,KAAK,CAACkZ,GAAN,CAAU5jB,KAAV;AACD;;AACD,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,aAAOA,KAAK,CAACsI,QAAN,KAAmB,GAA1B;AACD;;AACD,WAAOtI,KAAP;AACD,GAbI,EAcL,CAdK,CAAP;AAgBD,EAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASiiC,gBAAT,CACLC,SADK,EAELjhB,KAFK,EAGgB;AACrB,MACEihB,SAAS,KAAKvzB,SAAd,IACAuzB,SAAS,KAAK,IADd,IAEAA,SAAS,CAAC/iC,MAAV,KAAqB,CAFrB,IAGA;AACC,SAAO+iC,SAAS,CAAC,CAAD,CAAhB,KAAwB,QAAxB,IAAoCA,SAAS,CAAC,CAAD,CAAT,CAAaj0B,KAAb,CAAmB,eAAnB,CAJrC,IAKAgT,KAAK,KAAKtS,SANZ,EAOE;AACA,WAAOuzB,SAAP;AACD,GAVoB,CAYrB;;;AACA,MAAMC,MAAM,GAAG,+BAAf;;AACA,MAAI,OAAOD,SAAS,CAAC,CAAD,CAAhB,KAAwB,QAAxB,IAAoCA,SAAS,CAAC,CAAD,CAAT,CAAaj0B,KAAb,CAAmBk0B,MAAnB,CAAxC,EAAoE;AAClE,wBAAaD,SAAS,CAAC,CAAD,CAAtB,GAA6BjhB,KAA7B,iCAAuCihB,SAAS,CAACpgC,KAAV,CAAgB,CAAhB,CAAvC;AACD,GAFD,MAEO;AACL,QAAMsgC,QAAQ,GAAGF,SAAS,CAACtf,MAAV,CAAiB,UAACyf,SAAD,EAAYC,IAAZ,EAAkBryB,CAAlB,EAAwB;AACxD,UAAIA,CAAC,GAAG,CAAR,EAAW;AACToyB,QAAAA,SAAS,IAAI,GAAb;AACD;;AACD,mCAAeC,IAAf;AACE,aAAK,QAAL;AACA,aAAK,SAAL;AACA,aAAK,QAAL;AACE,iBAAQD,SAAS,IAAI,IAArB;;AACF,aAAK,QAAL;AACE,cAAME,UAAU,GAAGvkB,MAAM,CAACwkB,SAAP,CAAiBF,IAAjB,IAAyB,IAAzB,GAAgC,IAAnD;AACA,iBAAQD,SAAS,IAAIE,UAArB;;AACF;AACE,iBAAQF,SAAS,IAAI,IAArB;AATJ;AAWD,KAfgB,EAed,IAfc,CAAjB;AAgBA,YAAQD,QAAR,EAAkBnhB,KAAlB,iCAA4BihB,SAA5B;AACD;AACF,EAED;AACA;AACA;AACA;;AACO,SAAStjB,MAAT,CACL6jB,YADK,EAGG;AAAA,oCADLP,SACK;AADLA,IAAAA,SACK;AAAA;;AACR,MAAM1xB,IAAI,GAAG0xB,SAAS,CAACpgC,KAAV,EAAb;AAEA,MAAI+8B,SAAiB,GAAGp2B,MAAM,CAACg6B,YAAD,CAA9B,CAHQ,CAKR;;AACA,MAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpC,QAAIjyB,IAAI,CAACrR,MAAT,EAAiB;AACf,UAAMgjC,MAAM,GAAG,iBAAf;AAEAtD,MAAAA,SAAS,GAAGA,SAAS,CAAC12B,OAAV,CAAkBg6B,MAAlB,EAA0B,UAACl0B,KAAD,EAAQy0B,OAAR,EAAiBC,GAAjB,EAAsBC,IAAtB,EAA+B;AACnE,YAAIrkB,GAAG,GAAG/N,IAAI,CAACF,KAAL,EAAV;;AACA,gBAAQsyB,IAAR;AACE,eAAK,GAAL;AACErkB,YAAAA,GAAG,IAAI,EAAP;AACA;;AACF,eAAK,GAAL;AACA,eAAK,GAAL;AACEA,YAAAA,GAAG,GAAGtN,QAAQ,CAACsN,GAAD,EAAM,EAAN,CAAR,CAAkBjW,QAAlB,EAAN;AACA;;AACF,eAAK,GAAL;AACEiW,YAAAA,GAAG,GAAGpC,UAAU,CAACoC,GAAD,CAAV,CAAgBjW,QAAhB,EAAN;AACA;AAVJ;;AAYA,YAAI,CAACo6B,OAAL,EAAc;AACZ,iBAAOnkB,GAAP;AACD;;AACD/N,QAAAA,IAAI,CAACqH,OAAL,CAAa0G,GAAb;AACA,eAAOtQ,KAAP;AACD,OAnBW,CAAZ;AAoBD;AACF,GA/BO,CAiCR;;;AACA,MAAIuC,IAAI,CAACrR,MAAT,EAAiB;AACf,SAAK,IAAI8Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGO,IAAI,CAACrR,MAAzB,EAAiC8Q,CAAC,EAAlC,EAAsC;AACpC4uB,MAAAA,SAAS,IAAI,MAAMp2B,MAAM,CAAC+H,IAAI,CAACP,CAAD,CAAL,CAAzB;AACD;AACF,GAtCO,CAwCR;;;AACA4uB,EAAAA,SAAS,GAAGA,SAAS,CAAC12B,OAAV,CAAkB,SAAlB,EAA6B,GAA7B,CAAZ;AAEA,SAAOM,MAAM,CAACo2B,SAAD,CAAb;AACD;AAEM,SAASgE,yBAAT,GAA8C;AACnD,SAAO,CAAC,EACNtY,MAAM,CAACyD,QAAP,IACAzD,MAAM,CAACyD,QAAP,CAAgB8U,aADhB,IAEAvY,MAAM,CAACyD,QAAP,CAAgB8U,aAAhB,CAA8BC,aAA9B,CAA4C,UAA5C,CAHM,CAAR;AAKD;AAEM,SAASC,EAAT,GAAqD;AAAA,MAAzCjlC,CAAyC,uEAA7B,EAA6B;AAAA,MAAzBkB,CAAyB,uEAAb,EAAa;AAC1D,SAAO4hC,eAAe,CAAC9iC,CAAD,EAAIkB,CAAJ,CAAf,KAA0B,CAAjC;AACD;AAEM,SAAS+hC,GAAT,GAAsD;AAAA,MAAzCjjC,CAAyC,uEAA7B,EAA6B;AAAA,MAAzBkB,CAAyB,uEAAb,EAAa;AAC3D,SAAO4hC,eAAe,CAAC9iC,CAAD,EAAIkB,CAAJ,CAAf,GAAwB,CAAC,CAAhC;AACD;;;;AC5RD;;;;;;;;AASA;AACA;AACA;AACA;AACA;AAEO,IAAMgkC,sBAAsB,GAAG,MAA/B;AACA,IAAMC,6BAA6B,GAAG,+BAAtC;AAEA,IAAMC,cAAc,GAAG,MAAvB;AACA,IAAMC,qBAAqB,GAAG,uBAA9B;AAEA,IAAMC,4BAA4B,GAAG,8BAArC;AAEA,IAAMC,mCAAmC,GAAG,0BAA5C;AAEA,IAAMC,cAAc,GAAG,MAAvB;AACA,IAAMC,qBAAqB,GAAG,uBAA9B;AAEA,IAAMC,yBAAyB,GAAG,MAAlC;AACA,IAAMC,gCAAgC,GAC3C,gCADK;AAGA,IAAMC,+BAAkB,GAAG,MAA3B;AACA,IAAMC,sCAAyB,GAAG,2BAAlC;AAEA,IAAMC,eAAe,GAAG,MAAxB;AACA,IAAMC,sBAAsB,GAAG,wBAA/B;AAEA,IAAMC,wBAAW,GAAG,MAApB;AACA,IAAMC,+BAAkB,GAAG,oBAA3B;AAEA,IAAMC,wBAAW,GAAG,MAApB;AACA,IAAMC,+BAAkB,GAAG,oBAA3B;AAEA,IAAMC,aAAa,GAAG,MAAtB;AACA,IAAMC,oBAAoB,GAAG,sBAA7B;AAEA,IAAMC,eAAe,GAAG,MAAxB;AACA,IAAMC,sBAAsB,GAAG,wBAA/B;AAEA,IAAMC,eAAe,GAAG,MAAxB;AACA,IAAMC,sBAAsB,GAAG,wBAA/B;AAEA,IAAMC,YAAY,GAAG,MAArB;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AAEA,IAAMC,kBAAkB,GAAG,MAA3B;AACA,IAAMC,yBAAyB,GAAG,2BAAlC;AAEA,IAAMC,4BAAe,GAAG,MAAxB;AACA,IAAMC,mCAAsB,GAAG,wBAA/B;AAEA,IAAMC,iCAAoB,GAAG,MAA7B;AACA,IAAMC,wCAA2B,GAAG,6BAApC;AAEA,IAAMC,qDAAqD,GAChE,2CADK;;ACjEP;;;;;;;;;AASA;;;;;AAMO,IAAMC,wCAAwC,GAAG,KAAjD;AACA,IAAMC,YAAY,GAAG,KAArB;AACA,IAAMC,oBAAoB,GAAG,KAA7B;AACA,IAAMC,uBAAuB,GAAG,KAAhC;AAEP;;;;;AAQA;AACI,IAAJ;;AC7BA;;;;;;;;;AASA;;;;AAIA,SAASC,EAAT,CAAY1nC,CAAZ,EAAoBC,CAApB,EAA4B;AAC1B,SACGD,CAAC,KAAKC,CAAN,KAAYD,CAAC,KAAK,CAAN,IAAW,IAAIA,CAAJ,KAAU,IAAIC,CAArC,CAAD,IAA8CD,CAAC,KAAKA,CAAN,IAAWC,CAAC,KAAKA,CADjE,CACoE;AADpE;AAGD;;AAED,IAAM0nC,QAAqC,GACzC;AACA,OAAO/nC,MAAM,CAAC8nC,EAAd,KAAqB,UAArB,GAAkC9nC,MAAM,CAAC8nC,EAAzC,GAA8CA,EAFhD;AAIA,sDAAeC,QAAf;;ACvBA;;;;;;;;AASA;AACA,IAAM9kC,6BAAc,GAAGjD,MAAM,CAACwJ,SAAP,CAAiBvG,cAAxC;AAEA,4DAAeA,6BAAf;;ACZA;;;;;;;;AAUA;AAEA,IAAM+kC,yBAA8C,GAAG,IAAIxnC,GAAJ,EAAvD;AAEO,SAASynC,aAAT,CAAuB9pB,IAAvB,EAAgD;AACrD,MAAM+pB,OAAO,GAAG,IAAIhV,GAAJ,EAAhB;AACA,MAAMiV,cAAc,GAAG,EAAvB;AAEAC,EAAAA,SAAS,CAACjqB,IAAD,EAAO+pB,OAAP,EAAgBC,cAAhB,CAAT;AAEA,SAAO;AACLD,IAAAA,OAAO,EAAEp+B,KAAK,CAACkd,IAAN,CAAWkhB,OAAX,EAAoBzG,IAApB,EADJ;AAEL0G,IAAAA,cAAc,EAAdA;AAFK,GAAP;AAID;AAEM,SAASC,SAAT,CACLjqB,IADK,EAEL+pB,OAFK,EAGLC,cAHK,EAIC;AACN,MAAIhqB,IAAI,IAAI,IAAZ,EAAkB;AAChB;AACD;;AAED,MAAIpU,WAAO,CAACoU,IAAD,CAAX,EAAmB;AACjBA,IAAAA,IAAI,CAAC3Y,OAAL,CAAa,UAAA6iC,KAAK,EAAI;AACpB,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB;AACD;;AAED,UAAIt+B,WAAO,CAACs+B,KAAD,CAAX,EAAoB;AAClBD,QAAAA,SAAS,CAACC,KAAD,EAAQH,OAAR,EAAiBC,cAAjB,CAAT;AACD,OAFD,MAEO;AACLG,QAAAA,qBAAqB,CAACD,KAAD,EAAQH,OAAR,EAAiBC,cAAjB,CAArB;AACD;AACF,KAVD;AAWD,GAZD,MAYO;AACLG,IAAAA,qBAAqB,CAACnqB,IAAD,EAAO+pB,OAAP,EAAgBC,cAAhB,CAArB;AACD;;AAEDA,EAAAA,cAAc,GAAGnoC,MAAM,CAACuoC,WAAP,CACfvoC,MAAM,CAACue,OAAP,CAAe4pB,cAAf,EAA+B1G,IAA/B,EADe,CAAjB;AAGD;;AAED,SAAS6G,qBAAT,CACED,KADF,EAEEH,OAFF,EAGEC,cAHF,EAIQ;AACN,MAAMj9B,IAAI,GAAGlL,MAAM,CAACkL,IAAP,CAAYm9B,KAAZ,CAAb;AACAn9B,EAAAA,IAAI,CAAC1F,OAAL,CAAa,UAAAyE,GAAG,EAAI;AAClB,QAAMzH,KAAK,GAAG6lC,KAAK,CAACp+B,GAAD,CAAnB;;AACA,QAAI,OAAOzH,KAAP,KAAiB,QAArB,EAA+B;AAC7B,UAAIyH,GAAG,KAAKzH,KAAZ,EAAmB;AACjB;AACA0lC,QAAAA,OAAO,CAAC9hB,GAAR,CAAYnc,GAAZ;AACD,OAHD,MAGO;AACL,YAAMu+B,aAAa,GAAGC,4BAA4B,CAACjmC,KAAD,CAAlD;;AACA,YAAIgmC,aAAa,IAAI,IAArB,EAA2B;AACzBL,UAAAA,cAAc,CAACl+B,GAAD,CAAd,GAAsBu+B,aAAtB;AACD;AACF;AACF,KAVD,MAUO;AACL,UAAME,WAAW,GAAG,EAApB;AACAP,MAAAA,cAAc,CAACl+B,GAAD,CAAd,GAAsBy+B,WAAtB;AACAN,MAAAA,SAAS,CAAC,CAAC5lC,KAAD,CAAD,EAAU0lC,OAAV,EAAmBQ,WAAnB,CAAT;AACD;AACF,GAjBD;AAkBD;;AAED,SAASD,4BAAT,CAAsCE,SAAtC,EAAwE;AACtE,MAAIX,yBAAyB,CAAC9hC,GAA1B,CAA8ByiC,SAA9B,CAAJ,EAA8C;AAC5C,WAASX,yBAAyB,CAAChlC,GAA1B,CAA8B2lC,SAA9B,CAAT;AACD;;AAED,OACE,IAAIC,eAAe,GAAG,CADxB,EAEEA,eAAe,GAAGpY,QAAQ,CAACqY,WAAT,CAAqBlnC,MAFzC,EAGEinC,eAAe,EAHjB,EAIE;AACA,QAAME,UAAU,GAAKtY,QAAQ,CAACqY,WAAT,CACnBD,eADmB,CAArB;AAGA,QAAIG,KAAyB,GAAG,IAAhC,CAJA,CAKA;;AACA,QAAI;AACFA,MAAAA,KAAK,GAAGD,UAAU,CAACE,QAAnB;AACD,KAFD,CAEE,OAAOC,EAAP,EAAW;AACX;AACD;;AAED,SAAK,IAAIC,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGH,KAAK,CAACpnC,MAA1C,EAAkDunC,SAAS,EAA3D,EAA+D;AAC7D,UAAI,EAAEH,KAAK,CAACG,SAAD,CAAL,YAA4BC,YAA9B,CAAJ,EAAiD;AAC/C;AACD;;AACD,UAAMC,IAAI,GAAKL,KAAK,CAACG,SAAD,CAApB;AAJ6D,UAKtDlS,OALsD,GAKtBoS,IALsB,CAKtDpS,OALsD;AAAA,UAK7CqS,YAL6C,GAKtBD,IALsB,CAK7CC,YAL6C;AAAA,UAK/B5lB,KAL+B,GAKtB2lB,IALsB,CAK/B3lB,KAL+B;;AAO7D,UAAI4lB,YAAY,IAAI,IAApB,EAA0B;AACxB,YAAIA,YAAY,CAACC,UAAb,YAA4BX,SAA5B,EAAJ,EAA8C;AAC5C,cAAMl4B,KAAK,GAAGumB,OAAO,CAACvmB,KAAR,CAAc,gBAAd,CAAd;;AACA,cAAIA,KAAK,KAAK,IAAd,EAAoB;AAClB,gBAAM84B,QAAQ,GAAG94B,KAAK,CAAC,CAAD,CAAtB;AACA,gBAAMjO,KAAK,GAAGihB,KAAK,CAAC+lB,gBAAN,CAAuBD,QAAvB,CAAd;AAEAvB,YAAAA,yBAAyB,CAACnmC,GAA1B,CAA8B8mC,SAA9B,EAAyCnmC,KAAzC;AAEA,mBAAOA,KAAP;AACD,WAPD,MAOO;AACL,mBAAO,IAAP;AACD;AACF;AACF;AACF;AACF;;AAED,SAAO,IAAP;AACD;;ACjIM,IAAMinC,cAAc,GACzB,kFADK;AAGA,IAAMC,uBAAuB,GAClC,+FADK;AAGA,IAAMC,4BAA4B,GACvC,kDADK;AAQA,IAAMC,YAAyD,GAAG;AACvEC,EAAAA,KAAK,EAAE;AACL,8BAA0B,SADrB;AAEL,2CAAuC,SAFlC;AAGL,uCAAmC,0BAH9B;AAIL,+BAA2B,SAJtB;AAKL,wCAAoC,SAL/B;AAML,wCAAoC,SAN/B;AAOL,0BAAsB,SAPjB;AAQL,gCAA4B,wBARvB;AASL,mCAA+B,SAT1B;AAUL,kCAA8B,SAVzB;AAWL,mCAA+B,SAX1B;AAYL,iCAA6B,SAZxB;AAaL,uCAAmC,SAb9B;AAcL,sBAAkB,SAdb;AAeL,+BAA2B,SAftB;AAgBL,6BAAyB,SAhBpB;AAiBL,4BAAwB,SAjBnB;AAkBL,4BAAwB,SAlBnB;AAmBL,sBAAkB,SAnBb;AAoBL,0CAAsC,SApBjC;AAqBL,+CAA2C,SArBtC;AAsBL,6CAAyC,SAtBpC;AAuBL,kDAA8C,SAvBzC;AAwBL,iCAA6B,SAxBxB;AAyBL,iCAA6B,SAzBxB;AA0BL,iCAA6B,SA1BxB;AA2BL,iCAA6B,SA3BxB;AA4BL,iCAA6B,SA5BxB;AA6BL,iCAA6B,SA7BxB;AA8BL,iCAA6B,SA9BxB;AA+BL,iCAA6B,SA/BxB;AAgCL,iCAA6B,SAhCxB;AAiCL,iCAA6B,SAjCxB;AAkCL,oCAAgC,SAlC3B;AAmCL,8BAA0B,SAnCrB;AAoCL,uCAAmC,SApC9B;AAqCL,0CAAsC,oBArCjC;AAsCL,mDAA+C,2BAtC1C;AAuCL,qCAAiC,SAvC5B;AAwCL,8CAA0C,0BAxCrC;AAyCL,wCAAoC,SAzC/B;AA0CL,wCAAoC,SA1C/B;AA2CL,oCAAgC,SA3C3B;AA4CL,kCAA8B,SA5CzB;AA6CL,kCAA8B,SA7CzB;AA8CL,0CAAsC,SA9CjC;AA+CL,0CAAsC,SA/CjC;AAgDL,sCAAkC,SAhD7B;AAiDL,oCAAgC,SAjD3B;AAkDL,oCAAgC,SAlD3B;AAmDL,kCAA8B,gBAnDzB;AAoDL,wCAAoC,0BApD/B;AAqDL,2CAAuC,SArDlC;AAsDL,8BAA0B,SAtDrB;AAuDL,4BAAwB,SAvDnB;AAwDL,qCAAiC,SAxD5B;AAyDL,mBAAe,SAzDV;AA0DL,sBAAkB,SA1Db;AA2DL,uBAAmB,SA3Dd;AA4DL,gCAA4B,mBA5DvB;AA6DL,4BAAwB,mBA7DnB;AA8DL,0BAAsB,SA9DjB;AA+DL,sCAAkC,SA/D7B;AAgEL,oBAAgB,SAhEX;AAiEL,gCAA4B,2BAjEvB;AAkEL,6CAAyC,SAlEpC;AAmEL,uCAAmC,SAnE9B;AAoEL,qCAAiC,SApE5B;AAqEL,+CAA2C,SArEtC;AAsEL,yCAAqC,SAtEhC;AAuEL,6BAAyB,SAvEpB;AAwEL,4BAAwB,SAxEnB;AAyEL,+BAA2B,SAzEtB;AA0EL,0BAAsB,SA1EjB;AA2EL,iCAA6B,SA3ExB;AA4EL,iCAA6B,SA5ExB;AA6EL,8BAA0B,SA7ErB;AA8EL,wCAAoC,SA9E/B;AA+EL,8CAA0C,SA/ErC;AAgFL,6CAAyC,MAhFpC;AAiFL,qCAAiC,MAjF5B;AAkFL,2CAAuC,MAlFlC;AAmFL,wCAAoC,SAnF/B;AAoFL,8CAA0C,SApFrC;AAqFL,0CAAsC,SArFjC;AAsFL,gDAA4C,SAtFvC;AAuFL,4CAAwC,SAvFnC;AAwFL,wCAAoC,SAxF/B;AAyFL,oCAAgC,SAzF3B;AA0FL,0CAAsC,SA1FjC;AA2FL,mCAA+B,SA3F1B;AA4FL,yCAAqC,SA5FhC;AA6FL,qCAAiC,SA7F5B;AA8FL,2CAAuC,SA9FlC;AA+FL,0CAAsC,SA/FjC;AAgGL,qCAAiC,SAhG5B;AAiGL,2CAAuC,SAjGlC;AAkGL,0CAAsC,SAlGjC;AAmGL,6CAAyC,SAnGpC;AAoGL,mDAA+C,SApG1C;AAqGL,kDAA8C,SArGzC;AAsGL,8CAA0C,SAtGrC;AAuGL,oDAAgD,SAvG3C;AAwGL,mDAA+C,SAxG1C;AAyGL,uCAAmC,SAzG9B;AA0GL,6CAAyC,SA1GpC;AA2GL,gDAA4C,SA3GvC;AA4GL,sDAAkD,SA5G7C;AA6GL,gDAA4C,SA7GvC;AA8GL,sDAAkD,SA9G7C;AA+GL,kDAA8C,SA/GzC;AAgHL,wDAAoD,SAhH/C;AAiHL,qCAAiC,SAjH5B;AAkHL,2CAAuC,SAlHlC;AAmHL,mCAA+B,SAnH1B;AAoHL,uCAAmC,MApH9B;AAqHL,0CAAsC,SArHjC;AAsHL,4BAAwB,QAtHnB;AAuHL,oCAAgC,SAvH3B;AAwHL,8CAA0C,wBAxHrC;AAyHL,gDAA4C,qBAzHvC;AA0HL,4BAAwB,0BA1HnB;AA2HL,mCAA+B,SA3H1B;AA4HL,oBAAgB,SA5HX;AA6HL,4BAAwB,SA7HnB;AA8HL,6BAAyB,SA9HpB;AA+HL,yCAAqC,SA/HhC;AAgIL,oCAAgC,SAhI3B;AAiIL,qCAAiC,SAjI5B;AAkIL,2BAAuB,SAlIlB;AAmIL,kCAA8B,SAnIzB;AAoIL,wCAAoC,SApI/B;AAqIL,kCAA8B,SArIzB;AAsIL,2CAAuC,SAtIlC;AAwIL;AACA;AACA;AACA,4BAAwB,SA3InB;AA4IL,4BAAwB,SA5InB;AA6IL,kCAA8B,oBA7IzB;AA8IL,4BAAwB;AA9InB,GADgE;AAiJvEC,EAAAA,IAAI,EAAE;AACJ,8BAA0B,SADtB;AAEJ,2CAAuC,SAFnC;AAGJ,uCAAmC,SAH/B;AAIJ,+BAA2B,SAJvB;AAKJ,wCAAoC,SALhC;AAMJ,wCAAoC,QANhC;AAOJ,0BAAsB,SAPlB;AAQJ,gCAA4B,0BARxB;AASJ,mCAA+B,SAT3B;AAUJ,kCAA8B,SAV1B;AAWJ,mCAA+B,SAX3B;AAYJ,iCAA6B,SAZzB;AAaJ,uCAAmC,SAb/B;AAcJ,sBAAkB,SAdd;AAeJ,6BAAyB,SAfrB;AAgBJ,+BAA2B,SAhBvB;AAiBJ,4BAAwB,SAjBpB;AAkBJ,4BAAwB,SAlBpB;AAmBJ,sBAAkB,SAnBd;AAoBJ,0CAAsC,SApBlC;AAqBJ,+CAA2C,SArBvC;AAsBJ,6CAAyC,SAtBrC;AAuBJ,kDAA8C,SAvB1C;AAwBJ,iCAA6B,SAxBzB;AAyBJ,iCAA6B,SAzBzB;AA0BJ,iCAA6B,SA1BzB;AA2BJ,iCAA6B,SA3BzB;AA4BJ,iCAA6B,SA5BzB;AA6BJ,iCAA6B,SA7BzB;AA8BJ,iCAA6B,SA9BzB;AA+BJ,iCAA6B,SA/BzB;AAgCJ,iCAA6B,SAhCzB;AAiCJ,iCAA6B,SAjCzB;AAkCJ,oCAAgC,SAlC5B;AAmCJ,8BAA0B,SAnCtB;AAoCJ,uCAAmC,SApC/B;AAqCJ,0CAAsC,2BArClC;AAsCJ,mDAA+C,qBAtC3C;AAuCJ,qCAAiC,SAvC7B;AAwCJ,8CAA0C,0BAxCtC;AAyCJ,wCAAoC,SAzChC;AA0CJ,wCAAoC,SA1ChC;AA2CJ,oCAAgC,SA3C5B;AA4CJ,kCAA8B,SA5C1B;AA6CJ,kCAA8B,SA7C1B;AA8CJ,0CAAsC,SA9ClC;AA+CJ,0CAAsC,SA/ClC;AAgDJ,sCAAkC,SAhD9B;AAiDJ,oCAAgC,SAjD5B;AAkDJ,oCAAgC,SAlD5B;AAmDJ,kCAA8B,uBAnD1B;AAoDJ,wCAAoC,wBApDhC;AAqDJ,2CAAuC,SArDnC;AAsDJ,8BAA0B,SAtDtB;AAuDJ,4BAAwB,SAvDpB;AAwDJ,qCAAiC,SAxD7B;AAyDJ,mBAAe,SAzDX;AA0DJ,sBAAkB,SA1Dd;AA2DJ,uBAAmB,SA3Df;AA4DJ,gCAA4B,MA5DxB;AA6DJ,4BAAwB,MA7DpB;AA8DJ,0BAAsB,MA9DlB;AA+DJ,sCAAkC,SA/D9B;AAgEJ,oBAAgB,SAhEZ;AAiEJ,gCAA4B,qBAjExB;AAkEJ,6CAAyC,qBAlErC;AAmEJ,uCAAmC,SAnE/B;AAoEJ,qCAAiC,QApE7B;AAqEJ,+CAA2C,qBArEvC;AAsEJ,yCAAqC,0BAtEjC;AAuEJ,6BAAyB,SAvErB;AAwEJ,4BAAwB,SAxEpB;AAyEJ,+BAA2B,SAzEvB;AA0EJ,0BAAsB,SA1ElB;AA2EJ,iCAA6B,SA3EzB;AA4EJ,iCAA6B,SA5EzB;AA6EJ,8BAA0B,SA7EtB;AA8EJ,wCAAoC,SA9EhC;AA+EJ,8CAA0C,SA/EtC;AAgFJ,6CAAyC,SAhFrC;AAiFJ,qCAAiC,SAjF7B;AAkFJ,2CAAuC,SAlFnC;AAmFJ,wCAAoC,SAnFhC;AAoFJ,8CAA0C,SApFtC;AAqFJ,0CAAsC,SArFlC;AAsFJ,gDAA4C,SAtFxC;AAuFJ,4CAAwC,SAvFpC;AAwFJ,wCAAoC,SAxFhC;AAyFJ,oCAAgC,SAzF5B;AA0FJ,0CAAsC,SA1FlC;AA2FJ,mCAA+B,SA3F3B;AA4FJ,yCAAqC,SA5FjC;AA6FJ,qCAAiC,SA7F7B;AA8FJ,2CAAuC,SA9FnC;AA+FJ,0CAAsC,SA/FlC;AAgGJ,qCAAiC,SAhG7B;AAiGJ,2CAAuC,SAjGnC;AAkGJ,0CAAsC,SAlGlC;AAmGJ,6CAAyC,SAnGrC;AAoGJ,mDAA+C,SApG3C;AAqGJ,kDAA8C,SArG1C;AAsGJ,8CAA0C,SAtGtC;AAuGJ,oDAAgD,SAvG5C;AAwGJ,mDAA+C,SAxG3C;AAyGJ,uCAAmC,SAzG/B;AA0GJ,6CAAyC,SA1GrC;AA2GJ,gDAA4C,SA3GxC;AA4GJ,sDAAkD,SA5G9C;AA6GJ,gDAA4C,SA7GxC;AA8GJ,sDAAkD,SA9G9C;AA+GJ,kDAA8C,SA/G1C;AAgHJ,wDAAoD,SAhHhD;AAiHJ,qCAAiC,SAjH7B;AAkHJ,2CAAuC,SAlHnC;AAmHJ,mCAA+B,SAnH3B;AAoHJ,uCAAmC,SApH/B;AAqHJ,0CAAsC,SArHlC;AAsHJ,4BAAwB,QAtHpB;AAuHJ,oCAAgC,SAvH5B;AAwHJ,8CAA0C,0BAxHtC;AAyHJ,gDAA4C,2BAzHxC;AA0HJ,4BAAwB,SA1HpB;AA2HJ,sBAAkB,oBA3Hd;AA4HJ,mCAA+B,SA5H3B;AA6HJ,oBAAgB,SA7HZ;AA8HJ,4BAAwB,SA9HpB;AA+HJ,6BAAyB,SA/HrB;AAgIJ,yCAAqC,SAhIjC;AAiIJ,oCAAgC,SAjI5B;AAkIJ,qCAAiC,SAlI7B;AAmIJ,2BAAuB,SAnInB;AAoIJ,kCAA8B,SApI1B;AAqIJ,wCAAoC,SArIhC;AAsIJ,kCAA8B,SAtI1B;AAuIJ,2CAAuC,SAvInC;AAyIJ;AACA;AACA;AACA,4BAAwB,SA5IpB;AA6IJ,4BAAwB,SA7IpB;AA8IJ,kCAA8B,2BA9I1B;AA+IJ,4BAAwB;AA/IpB,GAjJiE;AAkSvEC,EAAAA,OAAO,EAAE;AACP,mCAA+B,KADxB;AAEP,oCAAgC,MAFzB;AAGP,mCAA+B,MAHxB;AAIP,8BAA0B,MAJnB;AAKP,+BAA2B,MALpB;AAMP,8BAA0B,MANnB;AAOP,0BAAsB;AAPf,GAlS8D;AA2SvEC,EAAAA,WAAW,EAAE;AACX,mCAA+B,MADpB;AAEX,oCAAgC,MAFrB;AAGX,mCAA+B,MAHpB;AAIX,8BAA0B,MAJf;AAKX,+BAA2B,MALhB;AAMX,8BAA0B,MANf;AAOX,0BAAsB;AAPX;AA3S0D,CAAlE,EAsTP;AACA;AACA;AACA;;AACA,IAAMC,uBAA+B,GAAGx2B,QAAQ,CAC9Cm2B,YAAY,CAACI,WAAb,CAAyB,oBAAzB,CAD8C,EAE9C,EAF8C,CAAhD;AAIA,IAAME,mBAA2B,GAAGz2B,QAAQ,CAC1Cm2B,YAAY,CAACG,OAAb,CAAqB,oBAArB,CAD0C,EAE1C,EAF0C,CAA5C;;;AC5UA;;;;;;;;AASA;AAKO,IAAMI,qBAAqB,GAAG,EAA9B,EAEP;;AACO,IAAMC,2BAA2B,GAAG,CAApC;AAEA,IAAMC,mBAAmB,GAAG,EAA5B;;;;;;;;ACnBP;;;;;;;;AASA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA,IAAIC,aAAa,GAAG,CAApB;AACA,IAAIC,OAAJ;AACA,IAAIC,QAAJ;AACA,IAAIC,QAAJ;AACA,IAAIC,SAAJ;AACA,IAAIC,SAAJ;AACA,IAAIC,kBAAJ;AACA,IAAIC,YAAJ;;AAEA,SAASC,WAAT,GAAuB,CAAE;;AACzBA,WAAW,CAACC,kBAAZ,GAAiC,IAAjC;AAEO,SAASC,WAAT,GAA6B;AAClC,MAAIV,aAAa,KAAK,CAAtB,EAAyB;AACvB;AACAC,IAAAA,OAAO,GAAGpoB,OAAO,CAAC+D,GAAlB;AACAskB,IAAAA,QAAQ,GAAGroB,OAAO,CAAC8oB,IAAnB;AACAR,IAAAA,QAAQ,GAAGtoB,OAAO,CAACuS,IAAnB;AACAgW,IAAAA,SAAS,GAAGvoB,OAAO,CAAC9R,KAApB;AACAs6B,IAAAA,SAAS,GAAGxoB,OAAO,CAAC+oB,KAApB;AACAN,IAAAA,kBAAkB,GAAGzoB,OAAO,CAACgpB,cAA7B;AACAN,IAAAA,YAAY,GAAG1oB,OAAO,CAACipB,QAAvB,CARuB,CASvB;;AACA,QAAMhiC,KAAK,GAAG;AACZiV,MAAAA,YAAY,EAAE,IADF;AAEZ5F,MAAAA,UAAU,EAAE,IAFA;AAGZjW,MAAAA,KAAK,EAAEsoC,WAHK;AAIZxsB,MAAAA,QAAQ,EAAE;AAJE,KAAd,CAVuB,CAgBvB;;AACAte,IAAAA,MAAM,CAACmjC,gBAAP,CAAwBhhB,OAAxB,EAAiC;AAC/B8oB,MAAAA,IAAI,EAAE7hC,KADyB;AAE/B8c,MAAAA,GAAG,EAAE9c,KAF0B;AAG/BsrB,MAAAA,IAAI,EAAEtrB,KAHyB;AAI/BiH,MAAAA,KAAK,EAAEjH,KAJwB;AAK/B8hC,MAAAA,KAAK,EAAE9hC,KALwB;AAM/B+hC,MAAAA,cAAc,EAAE/hC,KANe;AAO/BgiC,MAAAA,QAAQ,EAAEhiC;AAPqB,KAAjC;AASA;AACD;;AACDkhC,EAAAA,aAAa;AACd;AAEM,SAASe,YAAT,GAA8B;AACnCf,EAAAA,aAAa;;AACb,MAAIA,aAAa,KAAK,CAAtB,EAAyB;AACvB;AACA,QAAMlhC,KAAK,GAAG;AACZiV,MAAAA,YAAY,EAAE,IADF;AAEZ5F,MAAAA,UAAU,EAAE,IAFA;AAGZ6F,MAAAA,QAAQ,EAAE;AAHE,KAAd,CAFuB,CAOvB;;AACAte,IAAAA,MAAM,CAACmjC,gBAAP,CAAwBhhB,OAAxB,EAAiC;AAC/B+D,MAAAA,GAAG,EAAE,8EAAI9c,KAAN;AAAa5G,QAAAA,KAAK,EAAE+nC;AAApB,QAD4B;AAE/BU,MAAAA,IAAI,EAAE,8EAAI7hC,KAAN;AAAa5G,QAAAA,KAAK,EAAEgoC;AAApB,QAF2B;AAG/B9V,MAAAA,IAAI,EAAE,8EAAItrB,KAAN;AAAa5G,QAAAA,KAAK,EAAEioC;AAApB,QAH2B;AAI/Bp6B,MAAAA,KAAK,EAAE,8EAAIjH,KAAN;AAAa5G,QAAAA,KAAK,EAAEkoC;AAApB,QAJ0B;AAK/BQ,MAAAA,KAAK,EAAE,8EAAI9hC,KAAN;AAAa5G,QAAAA,KAAK,EAAEmoC;AAApB,QAL0B;AAM/BQ,MAAAA,cAAc,EAAE,8EAAI/hC,KAAN;AAAa5G,QAAAA,KAAK,EAAEooC;AAApB,QANiB;AAO/BQ,MAAAA,QAAQ,EAAE,8EAAIhiC,KAAN;AAAa5G,QAAAA,KAAK,EAAEqoC;AAApB;AAPuB,KAAjC;AASA;AACD;;AACD,MAAIP,aAAa,GAAG,CAApB,EAAuB;AACrBnoB,IAAAA,OAAO,CAAC9R,KAAR,CACE,oCACE,+CAFJ;AAID;AACF;;;;ACzFD;;;;;;;;AASA;AACA;AACA;AACA;CAkBA;AACA;;AACA;AAEA,IAAIi7B,MAAJ;AACO,SAASC,6BAAT,CACLroC,IADK,EAELsoC,OAFK,EAGG;AACR,MAAIF,MAAM,KAAKn6B,SAAf,EAA0B;AACxB;AACA,QAAI;AACF,YAAM9O,KAAK,EAAX;AACD,KAFD,CAEE,OAAOjC,CAAP,EAAU;AACV,UAAMqQ,KAAK,GAAGrQ,CAAC,CAACoQ,KAAF,CAAQgI,IAAR,GAAe/H,KAAf,CAAqB,cAArB,CAAd;AACA66B,MAAAA,MAAM,GAAI76B,KAAK,IAAIA,KAAK,CAAC,CAAD,CAAf,IAAuB,EAAhC;AACD;AACF,GATO,CAUR;;;AACA,SAAO,OAAO66B,MAAP,GAAgBpoC,IAAvB;AACD;AAED,IAAIuoC,OAAO,GAAG,KAAd;AACA,IAAIC,mBAAJ;;AACA,IAAIC,KAAJ,EAAa,wBAGZ;;AAEM,SAASE,4BAAT,CACL9yB,EADK,EAEL+yB,SAFK,EAGLC,oBAHK,EAIG;AACR;AACA,MAAI,CAAChzB,EAAD,IAAO0yB,OAAX,EAAoB;AAClB,WAAO,EAAP;AACD;;AAED,MAAIE,KAAJ,EAAa,cAKZ;;AAED,MAAIK,OAAJ;AAEA,MAAMC,yBAAyB,GAAG5pC,KAAK,CAAC6pC,iBAAxC,CAfQ,CAgBR;;AACA7pC,EAAAA,KAAK,CAAC6pC,iBAAN,GAA0B/6B,SAA1B;AAEAs6B,EAAAA,OAAO,GAAG,IAAV,CAnBQ,CAqBR;AACA;AACA;AACA;AACA;;AACA,MAAMU,kBAAkB,GAAGJ,oBAAoB,CAACrpC,OAAhD;AACAqpC,EAAAA,oBAAoB,CAACrpC,OAArB,GAA+B,IAA/B;AACAsoC,EAAAA,WAAW;;AAEX,MAAI;AACF;AACA,QAAIc,SAAJ,EAAe;AACb;AACA,UAAMM,IAAI,GAAG,SAAPA,IAAO,GAAY;AACvB,cAAM/pC,KAAK,EAAX;AACD,OAFD,CAFa,CAKb;;;AACArC,MAAAA,MAAM,CAACsY,cAAP,CAAsB8zB,IAAI,CAAC5iC,SAA3B,EAAsC,OAAtC,EAA+C;AAC7C3H,QAAAA,GAAG,EAAE,eAAY;AACf;AACA;AACA,gBAAMQ,KAAK,EAAX;AACD;AAL4C,OAA/C;;AAOA,UAAI,QAAOgqC,OAAP,oEAAOA,OAAP,OAAmB,QAAnB,IAA+BA,OAAO,CAACP,SAA3C,EAAsD;AACpD;AACA;AACA,YAAI;AACFO,UAAAA,OAAO,CAACP,SAAR,CAAkBM,IAAlB,EAAwB,EAAxB;AACD,SAFD,CAEE,OAAOhsC,CAAP,EAAU;AACV4rC,UAAAA,OAAO,GAAG5rC,CAAV;AACD;;AACDisC,QAAAA,OAAO,CAACP,SAAR,CAAkB/yB,EAAlB,EAAsB,EAAtB,EAA0BqzB,IAA1B;AACD,OATD,MASO;AACL,YAAI;AACFA,UAAAA,IAAI,CAAC/hC,IAAL;AACD,SAFD,CAEE,OAAOjK,CAAP,EAAU;AACV4rC,UAAAA,OAAO,GAAG5rC,CAAV;AACD,SALI,CAML;;;AACA2Y,QAAAA,EAAE,CAAC1O,IAAH,CAAQ+hC,IAAI,CAAC5iC,SAAb;AACD;AACF,KA/BD,MA+BO;AACL,UAAI;AACF,cAAMnH,KAAK,EAAX;AACD,OAFD,CAEE,OAAOjC,CAAP,EAAU;AACV4rC,QAAAA,OAAO,GAAG5rC,CAAV;AACD;;AACD2Y,MAAAA,EAAE;AACH;AACF,GAzCD,CAyCE,OAAOuzB,MAAP,EAAe;AACf;AACA,QAAIA,MAAM,IAAIN,OAAV,IAAqB,OAAOM,MAAM,CAAC97B,KAAd,KAAwB,QAAjD,EAA2D;AACzD;AACA;AACA,UAAM+7B,WAAW,GAAGD,MAAM,CAAC97B,KAAP,CAAac,KAAb,CAAmB,IAAnB,CAApB;AACA,UAAMk7B,YAAY,GAAGR,OAAO,CAACx7B,KAAR,CAAcc,KAAd,CAAoB,IAApB,CAArB;AACA,UAAIxF,CAAC,GAAGygC,WAAW,CAAC5qC,MAAZ,GAAqB,CAA7B;AACA,UAAIb,CAAC,GAAG0rC,YAAY,CAAC7qC,MAAb,GAAsB,CAA9B;;AACA,aAAOmK,CAAC,IAAI,CAAL,IAAUhL,CAAC,IAAI,CAAf,IAAoByrC,WAAW,CAACzgC,CAAD,CAAX,KAAmB0gC,YAAY,CAAC1rC,CAAD,CAA1D,EAA+D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACAA,QAAAA,CAAC;AACF;;AACD,aAAOgL,CAAC,IAAI,CAAL,IAAUhL,CAAC,IAAI,CAAtB,EAAyBgL,CAAC,IAAIhL,CAAC,EAA/B,EAAmC;AACjC;AACA;AACA,YAAIyrC,WAAW,CAACzgC,CAAD,CAAX,KAAmB0gC,YAAY,CAAC1rC,CAAD,CAAnC,EAAwC;AACtC;AACA;AACA;AACA;AACA;AACA,cAAIgL,CAAC,KAAK,CAAN,IAAWhL,CAAC,KAAK,CAArB,EAAwB;AACtB,eAAG;AACDgL,cAAAA,CAAC;AACDhL,cAAAA,CAAC,GAFA,CAGD;AACA;;AACA,kBAAIA,CAAC,GAAG,CAAJ,IAASyrC,WAAW,CAACzgC,CAAD,CAAX,KAAmB0gC,YAAY,CAAC1rC,CAAD,CAA5C,EAAiD;AAC/C;AACA,oBAAMmzB,MAAK,GAAG,OAAOsY,WAAW,CAACzgC,CAAD,CAAX,CAAenB,OAAf,CAAuB,UAAvB,EAAmC,MAAnC,CAArB;;AACA,oBAAIghC,KAAJ,EAAa,EAHkC,CAQ/C;;;AACA,uBAAO1X,MAAP;AACD;AACF,aAhBD,QAgBSnoB,CAAC,IAAI,CAAL,IAAUhL,CAAC,IAAI,CAhBxB;AAiBD;;AACD;AACD;AACF;AACF;AACF,GA3FD,SA2FU;AACR2qC,IAAAA,OAAO,GAAG,KAAV;AAEAppC,IAAAA,KAAK,CAAC6pC,iBAAN,GAA0BD,yBAA1B;AAEAF,IAAAA,oBAAoB,CAACrpC,OAArB,GAA+BypC,kBAA/B;AACAd,IAAAA,YAAY;AACb,GAhIO,CAiIR;;;AACA,MAAMnoC,IAAI,GAAG6V,EAAE,GAAGA,EAAE,CAACqb,WAAH,IAAkBrb,EAAE,CAAC7V,IAAxB,GAA+B,EAA9C;AACA,MAAMupC,cAAc,GAAGvpC,IAAI,GAAGqoC,6BAA6B,CAACroC,IAAD,CAAhC,GAAyC,EAApE;;AACA,MAAIyoC,KAAJ,EAAa,EAIZ;;AACD,SAAOc,cAAP;AACD;AAEM,SAASC,2BAAT,CACLhsB,IADK,EAEL8qB,OAFK,EAGLO,oBAHK,EAIG;AACR,SAAOF,4BAA4B,CAACnrB,IAAD,EAAO,IAAP,EAAaqrB,oBAAb,CAAnC;AACD;AAEM,SAASY,8BAAT,CACL5zB,EADK,EAELyyB,OAFK,EAGLO,oBAHK,EAIG;AACR,SAAOF,4BAA4B,CAAC9yB,EAAD,EAAK,KAAL,EAAYgzB,oBAAZ,CAAnC;AACD;;AAED,SAASa,eAAT,CAAyB5/B,SAAzB,EAA8C;AAC5C,MAAMxD,SAAS,GAAGwD,SAAS,CAACxD,SAA5B;AACA,SAAO,CAAC,EAAEA,SAAS,IAAIA,SAAS,CAACC,gBAAzB,CAAR;AACD;;AAEM,SAASojC,oCAAT,CACLhnC,IADK,EAEL2lC,OAFK,EAGLO,oBAHK,EAIG;AACR,MAAI,IAAJ,EAAc;AACZ,WAAO,EAAP;AACD;;AACD,MAAIlmC,IAAI,IAAI,IAAZ,EAAkB;AAChB,WAAO,EAAP;AACD;;AACD,MAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AAC9B,WAAOgmC,4BAA4B,CACjChmC,IADiC,EAEjC+mC,eAAe,CAAC/mC,IAAD,CAFkB,EAGjCkmC,oBAHiC,CAAnC;AAKD;;AACD,MAAI,OAAOlmC,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAO0lC,6BAA6B,CAAC1lC,IAAD,EAAO2lC,OAAP,CAApC;AACD;;AACD,UAAQ3lC,IAAR;AACE,SAAKwhC,eAAL;AACA,SAAKC,sBAAL;AACE,aAAOiE,6BAA6B,CAAC,UAAD,EAAaC,OAAb,CAApC;;AACF,SAAKjE,oBAAL;AACA,SAAKC,2BAAL;AACE,aAAO+D,6BAA6B,CAAC,cAAD,EAAiBC,OAAjB,CAApC;AANJ;;AAQA,MAAI,mCAAO3lC,IAAP,MAAgB,QAApB,EAA8B;AAC5B,YAAQA,IAAI,CAACe,QAAb;AACE,WAAKu/B,kBAAL;AACA,WAAKC,yBAAL;AACE,eAAOuG,8BAA8B,CACnC9mC,IAAI,CAACO,MAD8B,EAEnColC,OAFmC,EAGnCO,oBAHmC,CAArC;;AAKF,WAAKtF,WAAL;AACA,WAAKC,kBAAL;AACE;AACA,eAAOmG,oCAAoC,CACzChnC,IAAI,CAACA,IADoC,EAEzC2lC,OAFyC,EAGzCO,oBAHyC,CAA3C;;AAKF,WAAKxF,WAAL;AACA,WAAKC,kBAAL;AAAyB;AACvB,cAAMsG,aAAsC,GAAIjnC,IAAhD;AACA,cAAMknC,OAAO,GAAGD,aAAa,CAACv+B,QAA9B;AACA,cAAMy+B,IAAI,GAAGF,aAAa,CAACt+B,KAA3B;;AACA,cAAI;AACF;AACA,mBAAOq+B,oCAAoC,CACzCG,IAAI,CAACD,OAAD,CADqC,EAEzCvB,OAFyC,EAGzCO,oBAHyC,CAA3C;AAKD,WAPD,CAOE,OAAO3rC,CAAP,EAAU,CAAE;AACf;AA7BH;AA+BD;;AACD,SAAO,EAAP;AACD;;AC/RD;;;;;;;;AASA;AACA;AACA;AACA;AAKA;AAMO,SAAS6sC,aAAT,CACLC,UADK,EAELC,cAFK,EAGLpB,oBAHK,EAIG;AAAA,MAENqB,aAFM,GAWJF,UAXI,CAENE,aAFM;AAAA,MAGNC,aAHM,GAWJH,UAXI,CAGNG,aAHM;AAAA,MAINC,iBAJM,GAWJJ,UAXI,CAINI,iBAJM;AAAA,MAKNC,qBALM,GAWJL,UAXI,CAKNK,qBALM;AAAA,MAMNC,iBANM,GAWJN,UAXI,CAMNM,iBANM;AAAA,MAONC,sBAPM,GAWJP,UAXI,CAONO,sBAPM;AAAA,MAQNC,mBARM,GAWJR,UAXI,CAQNQ,mBARM;AAAA,MASN1mC,UATM,GAWJkmC,UAXI,CASNlmC,UATM;AAAA,MAUN2mC,cAVM,GAWJT,UAXI,CAUNS,cAVM;AAaR,MAAMC,KAAsB,GAAGjC,MAAO,GAClCwB,CADkC,GAIlC,IAJJ;;AAKA,UAAQA,cAAc,CAACvnC,GAAvB;AACE,SAAKwnC,aAAL;AACE,aAAO7B,6BAA6B,CAAC4B,cAAc,CAACtnC,IAAhB,EAAsB+nC,KAAtB,CAApC;;AACF,SAAKP,aAAL;AACE,aAAO9B,6BAA6B,CAAC,MAAD,EAASqC,KAAT,CAApC;;AACF,SAAKN,iBAAL;AACE,aAAO/B,6BAA6B,CAAC,UAAD,EAAaqC,KAAb,CAApC;;AACF,SAAKL,qBAAL;AACE,aAAOhC,6BAA6B,CAAC,cAAD,EAAiBqC,KAAjB,CAApC;;AACF,SAAKJ,iBAAL;AACA,SAAKC,sBAAL;AACA,SAAKC,mBAAL;AACE,aAAOf,8BAA8B,CACnCQ,cAAc,CAACtnC,IADoB,EAEnC+nC,KAFmC,EAGnC7B,oBAHmC,CAArC;;AAKF,SAAK/kC,UAAL;AACE,aAAO2lC,8BAA8B,CACnCQ,cAAc,CAACtnC,IAAf,CAAoBO,MADe,EAEnCwnC,KAFmC,EAGnC7B,oBAHmC,CAArC;;AAKF,SAAK4B,cAAL;AACE,aAAOjB,2BAA2B,CAChCS,cAAc,CAACtnC,IADiB,EAEhC+nC,KAFgC,EAGhC7B,oBAHgC,CAAlC;;AAKF;AACE,aAAO,EAAP;AA9BJ;AAgCD;AAEM,SAAS+B,2BAAT,CACLZ,UADK,EAELC,cAFK,EAGLpB,oBAHK,EAIG;AACR,MAAI;AACF,QAAId,IAAI,GAAG,EAAX;AACA,QAAI5xB,IAAW,GAAG8zB,cAAlB;;AACA,OAAG;AACDlC,MAAAA,IAAI,IAAIgC,aAAa,CAACC,UAAD,EAAa7zB,IAAb,EAAmB0yB,oBAAnB,CAArB,CADC,CAED;;AACA1yB,MAAAA,IAAI,GAAGA,IAAI,CAAClT,MAAZ;AACD,KAJD,QAISkT,IAJT;;AAKA,WAAO4xB,IAAP;AACD,GATD,CASE,OAAO7qC,CAAP,EAAU;AACV,WAAO,+BAA+BA,CAAC,CAAC6R,OAAjC,GAA2C,IAA3C,GAAkD7R,CAAC,CAACoQ,KAA3D;AACD;AACF;;;;;;;;;;;;;;;;AChGD;;;;;;;;AAgCA;AACA;CAMA;AACA;;AACA,IAAMu9B,WAAW,GAAG,EAApB;AAEA,IAAIC,iBAAqC,GAAG,IAA5C,EAEA;;AACA,IAAIC,kBAAkB,GACpB,OAAOzW,WAAP,KAAuB,WAAvB,IACA;AACA,OAAOA,WAAW,CAAC0W,IAAnB,KAA4B,UAF5B,IAGA;AACA,OAAO1W,WAAW,CAAC2W,UAAnB,KAAkC,UALpC;AAOA,IAAIC,oBAAoB,GAAG,KAA3B;;AACA,IAAIH,kBAAJ,EAAwB;AACtB,MAAMI,aAAa,GAAG,MAAtB;AACA,MAAMC,WAGL,GAAG,EAHJ;AAIAtuC,EAAAA,MAAM,CAACsY,cAAP,CAAsBg2B,WAAtB,EAAmC,WAAnC,EAAgD;AAC9CtrC,IAAAA,GAAG,EAAE,eAAY;AACforC,MAAAA,oBAAoB,GAAG,IAAvB;AACA,aAAO,CAAP;AACD,KAJ6C;AAK9CvsC,IAAAA,GAAG,EAAE,eAAY,CAAE;AAL2B,GAAhD;;AAQA,MAAI;AACF21B,IAAAA,WAAW,CAAC0W,IAAZ,CAAiBG,aAAjB,EAAgCC,WAAhC;AACD,GAFD,CAEE,OAAOj+B,KAAP,EAAc,CACd;AACD,GAJD,SAIU;AACRmnB,IAAAA,WAAW,CAAC2W,UAAZ,CAAuBE,aAAvB;AACD;AACF;;AAED,IAAID,oBAAJ,EAA0B;AACxBJ,EAAAA,iBAAiB,GAAGxW,WAApB;AACD,EAED;;;AACA,IAAMD,6BAAc,GAClB;AACA,QAAOC,WAAP,uDAAOA,WAAP,OAAuB,QAAvB,IAAmC,OAAOA,WAAW,CAACljB,GAAnB,KAA2B,UAA9D,GACI;AAAA,SAAMkjB,WAAW,CAACljB,GAAZ,EAAN;AAAA,CADJ,GAEI;AAAA,SAAMC,IAAI,CAACD,GAAL,EAAN;AAAA,CAJN,EAMA;AACA;;AACO,SAASi6B,mCAAT,CACLC,eADK,EAEL;AACAR,EAAAA,iBAAiB,GAAGQ,eAApB;AACAP,EAAAA,kBAAkB,GAAGO,eAAe,KAAK,IAAzC;AACAJ,EAAAA,oBAAoB,GAAGI,eAAe,KAAK,IAA3C;AACD;AAWM,SAASC,oBAAT,OAcM;AAAA,MAbXC,sBAaW,QAbXA,sBAaW;AAAA,MAZXC,cAYW,QAZXA,cAYW;AAAA,MAXXC,eAWW,QAXXA,eAWW;AAAA,MAVX1B,UAUW,QAVXA,UAUW;AAAA,MATXnB,oBASW,QATXA,oBASW;AAAA,MARX8C,YAQW,QARXA,YAQW;AACX,MAAIC,eAAyB,GAAG,CAAhC;AACA,MAAIC,4BAA0D,GAAG,IAAjE;AACA,MAAIC,yBAA8C,GAAG,EAArD;AACA,MAAIC,mBAAwC,GAAG,IAA/C;AACA,MAAIC,kBAAsD,GAAG,IAAI1uC,GAAJ,EAA7D;AACA,MAAI2uC,WAAoB,GAAG,KAA3B;AACA,MAAIC,6BAAsC,GAAG,KAA7C;;AAEA,WAASC,eAAT,GAA2B;AACzB,QAAMC,WAAW,GAAG/X,6BAAc,EAAlC;;AAEA,QAAI0X,mBAAJ,EAAyB;AACvB,UAAIA,mBAAmB,CAACM,SAApB,KAAkC,CAAtC,EAAyC;AACvCN,QAAAA,mBAAmB,CAACM,SAApB,GAAgCD,WAAW,GAAGvB,WAA9C;AACD;;AAED,aAAOuB,WAAW,GAAGL,mBAAmB,CAACM,SAAzC;AACD;;AAED,WAAO,CAAP;AACD;;AAED,WAASC,uBAAT,GAAmC;AACjC;AACA,QACE,OAAOza,8BAAP,KAA0C,WAA1C,IACA,OAAOA,8BAA8B,CAACya,uBAAtC,KACE,UAHJ,EAIE;AACA;AACA;AACA;AACA,UAAMC,MAAM,GAAG1a,8BAA8B,CAACya,uBAA/B,EAAf,CAJA,CAMA;AACA;;;AACA,UAAIzlC,cAAO,CAAC0lC,MAAD,CAAX,EAAqB;AACnB,eAAOA,MAAP;AACD;AACF;;AAED,WAAO,IAAP;AACD;;AAED,WAASC,eAAT,GAAgD;AAC9C,WAAOT,mBAAP;AACD;;AAED,WAASU,gBAAT,CAA0BC,KAA1B,EAAuC;AACrC,QAAMC,UAAU,GAAG,EAAnB;AAEA,QAAIC,IAAI,GAAG,CAAX;;AACA,SAAK,IAAItoB,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG2iB,qBAA5B,EAAmD3iB,KAAK,EAAxD,EAA4D;AAC1D,UAAIsoB,IAAI,GAAGF,KAAX,EAAkB;AAChBC,QAAAA,UAAU,CAACttC,IAAX,CAAgButC,IAAhB;AACD;;AACDA,MAAAA,IAAI,IAAI,CAAR;AACD;;AAED,WAAOD,UAAP;AACD;;AAED,MAAME,cAAqC,GACzC,OAAOnB,eAAP,KAA2B,UAA3B,GAAwCA,eAAe,EAAvD,GAA4D,IAD9D;;AAGA,WAASoB,YAAT,GAAwB;AACtBC,IAAAA,YAAY,2BAAoBpB,YAApB,EAAZ;AACAoB,IAAAA,YAAY,8BAAuB7F,2BAAvB,EAAZ;AAEA,QAAMqF,MAAM,GAAGD,uBAAuB,EAAtC;;AACA,QAAIC,MAAJ,EAAY;AACV,WAAK,IAAIh9B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGg9B,MAAM,CAAC9tC,MAA3B,EAAmC8Q,CAAC,EAApC,EAAwC;AACtC,YAAMy9B,KAAK,GAAGT,MAAM,CAACh9B,CAAD,CAApB;;AACA,YAAI1I,cAAO,CAACmmC,KAAD,CAAP,IAAkBA,KAAK,CAACvuC,MAAN,KAAiB,CAAvC,EAA0C;AAAA,uDACE8tC,MAAM,CAACh9B,CAAD,CADR;AAAA,cACjC09B,eADiC;AAAA,cAChBC,cADgB;;AAGxCH,UAAAA,YAAY,yCAAkCE,eAAlC,EAAZ;AACAF,UAAAA,YAAY,wCAAiCG,cAAjC,EAAZ;AACD;AACF;AACF;;AAED,QAAIL,cAAc,IAAI,IAAtB,EAA4B;AAC1B,UAAMM,MAAM,GAAGvmC,KAAK,CAACkd,IAAN,CAAW+oB,cAAc,CAACt2B,MAAf,EAAX,EAAoCtO,IAApC,CAAyC,GAAzC,CAAf;AACA8kC,MAAAA,YAAY,+BAAwBI,MAAxB,EAAZ;AACD;AACF;;AAED,WAASJ,YAAT,CAAsBK,QAAtB,EAAwC;AACtC;AACEtC,IAAAA,iBAAF,CAAwCE,IAAxC,CAA6CoC,QAA7C;AACEtC,IAAAA,iBAAF,CAAwCG,UAAxC,CAAmDmC,QAAnD;AACD;;AAED,WAASC,yBAAT,CACE1qC,IADF,EAEE+pC,KAFF,EAGQ;AACN;AACA;AACA,QAAI7sB,KAAK,GAAG,CAAZ;;AACA,QAAIisB,yBAAyB,CAACrtC,MAA1B,GAAmC,CAAvC,EAA0C;AACxC,UAAMgqB,GAAG,GACPqjB,yBAAyB,CAACA,yBAAyB,CAACrtC,MAA1B,GAAmC,CAApC,CAD3B;AAEAohB,MAAAA,KAAK,GAAG4I,GAAG,CAAC9lB,IAAJ,KAAa,aAAb,GAA6B8lB,GAAG,CAAC5I,KAAjC,GAAyC4I,GAAG,CAAC5I,KAAJ,GAAY,CAA7D;AACD;;AAED,QAAM8sB,UAAU,GAAGF,gBAAgB,CAACC,KAAD,CAAnC;AAEA,QAAMY,YAA0B,GAAG;AACjC3qC,MAAAA,IAAI,EAAJA,IADiC;AAEjC4qC,MAAAA,QAAQ,EAAE3B,eAFuB;AAGjC/rB,MAAAA,KAAK,EAALA,KAHiC;AAIjC6sB,MAAAA,KAAK,EAAEC,UAJ0B;AAKjCjqB,MAAAA,SAAS,EAAEypB,eAAe,EALO;AAMjCqB,MAAAA,QAAQ,EAAE;AANuB,KAAnC;AASA1B,IAAAA,yBAAyB,CAACzsC,IAA1B,CAA+BiuC,YAA/B;;AAEA,QAAIvB,mBAAJ,EAAyB;AAAA,iCAErBA,mBAFqB;AAAA,UAChB0B,qBADgB,wBAChBA,qBADgB;AAAA,UACOC,qBADP,wBACOA,qBADP;AAIvB,UAAIC,aAAa,GAAGF,qBAAqB,CAAC3tC,GAAtB,CAA0B8rC,eAA1B,CAApB;;AACA,UAAI+B,aAAa,IAAI,IAArB,EAA2B;AACzBA,QAAAA,aAAa,CAACtuC,IAAd,CAAmBiuC,YAAnB;AACD,OAFD,MAEO;AACLG,QAAAA,qBAAqB,CAAC9uC,GAAtB,CAA0BitC,eAA1B,EAA2C,CAAC0B,YAAD,CAA3C;AACD;;AAEDX,MAAAA,UAAU,CAACrqC,OAAX,CAAmB,UAAAsqC,IAAI,EAAI;AACzBe,QAAAA,aAAa,GAAGD,qBAAqB,CAAC5tC,GAAtB,CAA0B8sC,IAA1B,CAAhB;;AACA,YAAIe,aAAJ,EAAmB;AACjBA,UAAAA,aAAa,CAACtuC,IAAd,CAAmBiuC,YAAnB;AACD;AACF,OALD;AAMD;AACF;;AAED,WAASM,2BAAT,CAAqCjrC,IAArC,EAAmE;AACjE,QAAMypC,WAAW,GAAGD,eAAe,EAAnC;;AAEA,QAAIL,yBAAyB,CAACrtC,MAA1B,KAAqC,CAAzC,EAA4C;AAC1CwgB,MAAAA,OAAO,CAAC9R,KAAR,CACE,kFADF,EAEExK,IAFF,EAGEypC,WAHF,EAD0C,CAM1C;;AACA;AACD;;AAED,QAAM3jB,GAAG,GAAGqjB,yBAAyB,CAACzqC,GAA1B,EAAZ;;AACA,QAAIonB,GAAG,CAAC9lB,IAAJ,KAAaA,IAAjB,EAAuB;AACrBsc,MAAAA,OAAO,CAAC9R,KAAR,CACE,+DADF,EAEExK,IAFF,EAGEypC,WAHF,EAIE3jB,GAAG,CAAC9lB,IAJN;AAMD,KArBgE,CAuBjE;;;AACA8lB,IAAAA,GAAG,CAAC+kB,QAAJ,GAAepB,WAAW,GAAG3jB,GAAG,CAAC/F,SAAjC;;AAEA,QAAIqpB,mBAAJ,EAAyB;AACvBA,MAAAA,mBAAmB,CAACyB,QAApB,GAA+BrB,eAAe,KAAKtB,WAAnD;AACD;AACF;;AAED,WAASgD,iBAAT,CAA2BnB,KAA3B,EAA+C;AAC7C,QAAIT,WAAJ,EAAiB;AACfoB,MAAAA,yBAAyB,CAAC,QAAD,EAAWX,KAAX,CAAzB,CADe,CAGf;AACA;;AACAR,MAAAA,6BAA6B,GAAG,IAAhC;AACD;;AAED,QAAIhB,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,0BAAmBL,KAAnB,EAAZ,CADwB,CAGxB;AACA;AACA;AACA;;AACAI,MAAAA,YAAY;AACb;AACF;;AAED,WAASgB,iBAAT,GAAmC;AACjC,QAAI7B,WAAJ,EAAiB;AACf2B,MAAAA,2BAA2B,CAAC,QAAD,CAA3B;AACAA,MAAAA,2BAA2B,CAAC,aAAD,CAA3B;AACD;;AAED,QAAI1C,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,eAAD,CAAZ;AACD;AACF;;AAED,WAASgB,0BAAT,CAAoCC,KAApC,EAAwD;AACtD,QAAI/B,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIA,WAAJ,EAAiB;AACfJ,UAAAA,4BAA4B,GAAG;AAC7Blc,YAAAA,aAAa,EAAbA,aAD6B;AAE7B6d,YAAAA,QAAQ,EAAE,CAFmB;AAG7B9qB,YAAAA,SAAS,EAAEypB,eAAe,EAHG;AAI7BxpC,YAAAA,IAAI,EAAE,QAJuB;AAK7BsrC,YAAAA,OAAO,EAAE;AALoB,WAA/B;AAOD;AACF;;AAED,UAAI/C,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,oCAA6Bpd,aAA7B,EAAZ;AACD;AACF;AACF;;AAED,WAASue,0BAAT,GAA4C;AAC1C,QAAIjC,WAAJ,EAAiB;AACf,UAAIJ,4BAAJ,EAAkC;AAChC,YAAIE,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACoC,iBAApB,CAAsC9uC,IAAtC,CACEwsC,4BADF;AAGD,SAL+B,CAOhC;;;AACAA,QAAAA,4BAA4B,CAAC2B,QAA7B,GACE;AACArB,QAAAA,eAAe,KAAKN,4BAA4B,CAACnpB,SAFnD;AAGAmpB,QAAAA,4BAA4B,GAAG,IAA/B;AACD;AACF;;AAED,QAAIX,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,yBAAD,CAAZ;AACD;AACF;;AAED,WAASqB,qCAAT,CAA+CJ,KAA/C,EAAmE;AACjE,QAAI/B,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIA,WAAJ,EAAiB;AACfJ,UAAAA,4BAA4B,GAAG;AAC7Blc,YAAAA,aAAa,EAAbA,aAD6B;AAE7B6d,YAAAA,QAAQ,EAAE,CAFmB;AAG7B9qB,YAAAA,SAAS,EAAEypB,eAAe,EAHG;AAI7BxpC,YAAAA,IAAI,EAAE,qBAJuB;AAK7BsrC,YAAAA,OAAO,EAAE;AALoB,WAA/B;AAOD;AACF;;AAED,UAAI/C,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,iDAA0Cpd,aAA1C,EAAZ;AACD;AACF;AACF;;AAED,WAAS0e,qCAAT,GAAuD;AACrD,QAAIpC,WAAJ,EAAiB;AACf,UAAIJ,4BAAJ,EAAkC;AAChC,YAAIE,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACoC,iBAApB,CAAsC9uC,IAAtC,CACEwsC,4BADF;AAGD,SAL+B,CAOhC;;;AACAA,QAAAA,4BAA4B,CAAC2B,QAA7B,GACE;AACArB,QAAAA,eAAe,KAAKN,4BAA4B,CAACnpB,SAFnD;AAGAmpB,QAAAA,4BAA4B,GAAG,IAA/B;AACD;AACF;;AAED,QAAIX,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,sCAAD,CAAZ;AACD;AACF;;AAED,WAASuB,uCAAT,CAAiDN,KAAjD,EAAqE;AACnE,QAAI/B,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIA,WAAJ,EAAiB;AACfJ,UAAAA,4BAA4B,GAAG;AAC7Blc,YAAAA,aAAa,EAAbA,aAD6B;AAE7B6d,YAAAA,QAAQ,EAAE,CAFmB;AAG7B9qB,YAAAA,SAAS,EAAEypB,eAAe,EAHG;AAI7BxpC,YAAAA,IAAI,EAAE,uBAJuB;AAK7BsrC,YAAAA,OAAO,EAAE;AALoB,WAA/B;AAOD;AACF;;AAED,UAAI/C,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,mDACiCpd,aADjC,EAAZ;AAGD;AACF;AACF;;AAED,WAAS4e,uCAAT,GAAyD;AACvD,QAAItC,WAAJ,EAAiB;AACf,UAAIJ,4BAAJ,EAAkC;AAChC,YAAIE,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACoC,iBAApB,CAAsC9uC,IAAtC,CACEwsC,4BADF;AAGD,SAL+B,CAOhC;;;AACAA,QAAAA,4BAA4B,CAAC2B,QAA7B,GACE;AACArB,QAAAA,eAAe,KAAKN,4BAA4B,CAACnpB,SAFnD;AAGAmpB,QAAAA,4BAA4B,GAAG,IAA/B;AACD;AACF;;AAED,QAAIX,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,wCAAD,CAAZ;AACD;AACF;;AAED,WAASyB,sCAAT,CAAgDR,KAAhD,EAAoE;AAClE,QAAI/B,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIA,WAAJ,EAAiB;AACfJ,UAAAA,4BAA4B,GAAG;AAC7Blc,YAAAA,aAAa,EAAbA,aAD6B;AAE7B6d,YAAAA,QAAQ,EAAE,CAFmB;AAG7B9qB,YAAAA,SAAS,EAAEypB,eAAe,EAHG;AAI7BxpC,YAAAA,IAAI,EAAE,sBAJuB;AAK7BsrC,YAAAA,OAAO,EAAE;AALoB,WAA/B;AAOD;AACF;;AAED,UAAI/C,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,kDAA2Cpd,aAA3C,EAAZ;AACD;AACF;AACF;;AAED,WAAS8e,sCAAT,GAAwD;AACtD,QAAIxC,WAAJ,EAAiB;AACf,UAAIJ,4BAAJ,EAAkC;AAChC,YAAIE,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACoC,iBAApB,CAAsC9uC,IAAtC,CACEwsC,4BADF;AAGD,SAL+B,CAOhC;;;AACAA,QAAAA,4BAA4B,CAAC2B,QAA7B,GACE;AACArB,QAAAA,eAAe,KAAKN,4BAA4B,CAACnpB,SAFnD;AAGAmpB,QAAAA,4BAA4B,GAAG,IAA/B;AACD;AACF;;AAED,QAAIX,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,uCAAD,CAAZ;AACD;AACF;;AAED,WAAS2B,wCAAT,CAAkDV,KAAlD,EAAsE;AACpE,QAAI/B,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIA,WAAJ,EAAiB;AACfJ,UAAAA,4BAA4B,GAAG;AAC7Blc,YAAAA,aAAa,EAAbA,aAD6B;AAE7B6d,YAAAA,QAAQ,EAAE,CAFmB;AAG7B9qB,YAAAA,SAAS,EAAEypB,eAAe,EAHG;AAI7BxpC,YAAAA,IAAI,EAAE,wBAJuB;AAK7BsrC,YAAAA,OAAO,EAAE;AALoB,WAA/B;AAOD;AACF;;AAED,UAAI/C,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,oDACkCpd,aADlC,EAAZ;AAGD;AACF;AACF;;AAED,WAASgf,wCAAT,GAA0D;AACxD,QAAI1C,WAAJ,EAAiB;AACf,UAAIJ,4BAAJ,EAAkC;AAChC,YAAIE,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACoC,iBAApB,CAAsC9uC,IAAtC,CACEwsC,4BADF;AAGD,SAL+B,CAOhC;;;AACAA,QAAAA,4BAA4B,CAAC2B,QAA7B,GACE;AACArB,QAAAA,eAAe,KAAKN,4BAA4B,CAACnpB,SAFnD;AAGAmpB,QAAAA,4BAA4B,GAAG,IAA/B;AACD;AACF;;AAED,QAAIX,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,yCAAD,CAAZ;AACD;AACF;;AAED,WAAS6B,oBAAT,CACEZ,KADF,EAEEa,WAFF,EAGEnC,KAHF,EAIQ;AACN,QAAIT,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;AACA,UAAMc,KAAK,GAAGd,KAAK,CAACe,SAAN,KAAoB,IAApB,GAA2B,OAA3B,GAAqC,QAAnD;AAEA,UAAIhgC,OAAO,GAAG,EAAd;;AACA,UACE8/B,WAAW,KAAK,IAAhB,IACA,sBAAOA,WAAP,MAAuB,QADvB,IAEA,OAAOA,WAAW,CAAC9/B,OAAnB,KAA+B,QAHjC,EAIE;AACAA,QAAAA,OAAO,GAAG8/B,WAAW,CAAC9/B,OAAtB;AACD,OAND,MAMO,IAAI,OAAO8/B,WAAP,KAAuB,QAA3B,EAAqC;AAC1C9/B,QAAAA,OAAO,GAAG8/B,WAAV;AACD;;AAED,UAAI5C,WAAJ,EAAiB;AACf;AACA,YAAIF,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACiD,YAApB,CAAiC3vC,IAAjC,CAAsC;AACpCswB,YAAAA,aAAa,EAAbA,aADoC;AAEpC5gB,YAAAA,OAAO,EAAPA,OAFoC;AAGpC+/B,YAAAA,KAAK,EAALA,KAHoC;AAIpCpsB,YAAAA,SAAS,EAAEypB,eAAe,EAJU;AAKpCxpC,YAAAA,IAAI,EAAE;AAL8B,WAAtC;AAOD;AACF;;AAED,UAAIuoC,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,mBAAYpd,aAAZ,cAA6Bmf,KAA7B,cAAsC//B,OAAtC,EAAZ;AACD;AACF;AACF;;AAED,MAAM25B,eAAe,GAAG,OAAOhgC,OAAP,KAAmB,UAAnB,GAAgCA,OAAhC,GAA0CpL,GAAlE,CAvdW,CAydX;;AACA,MAAM2xC,WAAsC,GAAG,IAAIvG,eAAJ,EAA/C;AACA,MAAIwG,UAAkB,GAAG,CAAzB;;AACA,WAASC,aAAT,CAAuBC,QAAvB,EAAmD;AACjD,QAAI,CAACH,WAAW,CAACjsC,GAAZ,CAAgBosC,QAAhB,CAAL,EAAgC;AAC9BH,MAAAA,WAAW,CAACtwC,GAAZ,CAAgBywC,QAAhB,EAA0BF,UAAU,EAApC;AACD;;AACD,WAASD,WAAW,CAACnvC,GAAZ,CAAgBsvC,QAAhB,CAAT;AACD;;AAED,WAASC,sBAAT,CACErB,KADF,EAEEoB,QAFF,EAGE1C,KAHF,EAIQ;AACN,QAAIT,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMoE,SAAS,GAAGL,WAAW,CAACjsC,GAAZ,CAAgBosC,QAAhB,IAA4B,WAA5B,GAA0C,SAA5D;AACA,UAAM9tC,EAAE,GAAG6tC,aAAa,CAACC,QAAD,CAAxB;AACA,UAAMzf,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;AACA,UAAMc,KAAK,GAAGd,KAAK,CAACe,SAAN,KAAoB,IAApB,GAA2B,OAA3B,GAAqC,QAAnD,CAJuC,CAMvC;AACA;AACA;AACA;;AACA,UAAM7d,WAAW,GAAIke,QAAD,CAAgBle,WAAhB,IAA+B,EAAnD;AAEA,UAAIqe,aAAmC,GAAG,IAA1C;;AACA,UAAItD,WAAJ,EAAiB;AACf;AACAsD,QAAAA,aAAa,GAAG;AACd5f,UAAAA,aAAa,EAAbA,aADc;AAEd9P,UAAAA,KAAK,EAAE,CAFO;AAGd2tB,UAAAA,QAAQ,EAAE,CAHI;AAIdlsC,UAAAA,EAAE,YAAKA,EAAL,CAJY;AAKdwtC,UAAAA,KAAK,EAALA,KALc;AAMdU,UAAAA,WAAW,EAAEte,WANC;AAOdue,UAAAA,UAAU,EAAE,YAPE;AAQd/sB,UAAAA,SAAS,EAAEypB,eAAe,EARZ;AASdxpC,UAAAA,IAAI,EAAE,UATQ;AAUdsrC,UAAAA,OAAO,EAAE;AAVK,SAAhB;;AAaA,YAAIlC,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAAC2D,cAApB,CAAmCrwC,IAAnC,CAAwCkwC,aAAxC;AACD;AACF;;AAED,UAAIrE,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,sBACIuC,SADJ,cACiBhuC,EADjB,cACuBquB,aADvB,cACwCmf,KADxC,cACiDpC,KADjD,cAC0Dxb,WAD1D,EAAZ;AAGD;;AAEDke,MAAAA,QAAQ,CAAC9mC,IAAT,CACE,YAAM;AACJ,YAAIinC,aAAJ,EAAmB;AACjBA,UAAAA,aAAa,CAAC/B,QAAd,GACErB,eAAe,KAAKoD,aAAa,CAAC7sB,SADpC;AAEA6sB,UAAAA,aAAa,CAACE,UAAd,GAA2B,UAA3B;AACD;;AAED,YAAIvE,oBAAJ,EAA0B;AACxB6B,UAAAA,YAAY,+BAAwBzrC,EAAxB,cAA8BquB,aAA9B,EAAZ;AACD;AACF,OAXH,EAYE,YAAM;AACJ,YAAI4f,aAAJ,EAAmB;AACjBA,UAAAA,aAAa,CAAC/B,QAAd,GACErB,eAAe,KAAKoD,aAAa,CAAC7sB,SADpC;AAEA6sB,UAAAA,aAAa,CAACE,UAAd,GAA2B,UAA3B;AACD;;AAED,YAAIvE,oBAAJ,EAA0B;AACxB6B,UAAAA,YAAY,+BAAwBzrC,EAAxB,cAA8BquB,aAA9B,EAAZ;AACD;AACF,OAtBH;AAwBD;AACF;;AAED,WAASggB,wBAAT,CAAkCjD,KAAlC,EAAsD;AACpD,QAAIT,WAAJ,EAAiB;AACfoB,MAAAA,yBAAyB,CAAC,gBAAD,EAAmBX,KAAnB,CAAzB;AACD;;AAED,QAAIxB,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,kCAA2BL,KAA3B,EAAZ;AACD;AACF;;AAED,WAASkD,wBAAT,GAA0C;AACxC,QAAI3D,WAAJ,EAAiB;AACf2B,MAAAA,2BAA2B,CAAC,gBAAD,CAA3B;AACD;;AAED,QAAI1C,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,uBAAD,CAAZ;AACD;AACF;;AAED,WAAS8C,yBAAT,CAAmCnD,KAAnC,EAAuD;AACrD,QAAIT,WAAJ,EAAiB;AACfoB,MAAAA,yBAAyB,CAAC,iBAAD,EAAoBX,KAApB,CAAzB;AACD;;AAED,QAAIxB,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,mCAA4BL,KAA5B,EAAZ;AACD;AACF;;AAED,WAASoD,yBAAT,GAA2C;AACzC,QAAI7D,WAAJ,EAAiB;AACf2B,MAAAA,2BAA2B,CAAC,iBAAD,CAA3B;AACD;;AAED,QAAI1C,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,wBAAD,CAAZ;AACD;AACF;;AAED,WAASgD,iBAAT,CAA2BrD,KAA3B,EAA+C;AAC7C,QAAIT,WAAJ,EAAiB;AACf,UAAIC,6BAAJ,EAAmC;AACjCA,QAAAA,6BAA6B,GAAG,KAAhC;AACAN,QAAAA,eAAe;AAChB,OAJc,CAMf;AACA;;;AACA,UACEE,yBAAyB,CAACrtC,MAA1B,KAAqC,CAArC,IACAqtC,yBAAyB,CAACA,yBAAyB,CAACrtC,MAA1B,GAAmC,CAApC,CAAzB,CAAgEkE,IAAhE,KACE,aAHJ,EAIE;AACA0qC,QAAAA,yBAAyB,CAAC,aAAD,EAAgBX,KAAhB,CAAzB;AACD;;AAEDW,MAAAA,yBAAyB,CAAC,QAAD,EAAWX,KAAX,CAAzB;AACD;;AAED,QAAIxB,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,0BAAmBL,KAAnB,EAAZ;AACD;AACF;;AAED,WAASsD,iBAAT,GAAmC;AACjC,QAAI/D,WAAJ,EAAiB;AACf2B,MAAAA,2BAA2B,CAAC,QAAD,CAA3B;AACD;;AAED,QAAI1C,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,gBAAD,CAAZ;AACD;AACF;;AAED,WAASkD,iBAAT,GAAmC;AACjC,QAAIhE,WAAJ,EAAiB;AACf2B,MAAAA,2BAA2B,CAAC,QAAD,CAA3B;AACD;;AAED,QAAI1C,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,CAAC,eAAD,CAAZ;AACD;AACF;;AAED,WAASmD,mBAAT,CAA6BtD,IAA7B,EAA+C;AAC7C,QAAIX,WAAJ,EAAiB;AACf,UAAIF,mBAAJ,EAAyB;AACvBA,QAAAA,mBAAmB,CAACoE,gBAApB,CAAqC9wC,IAArC,CAA0C;AACxCqtC,UAAAA,KAAK,EAAED,gBAAgB,CAACG,IAAD,CADiB;AAExClqB,UAAAA,SAAS,EAAEypB,eAAe,EAFc;AAGxCxpC,UAAAA,IAAI,EAAE,iBAHkC;AAIxCsrC,UAAAA,OAAO,EAAE;AAJ+B,SAA1C;AAMD;AACF;;AAED,QAAI/C,oBAAJ,EAA0B;AACxB6B,MAAAA,YAAY,6BAAsBH,IAAtB,EAAZ;AACD;AACF;;AAED,WAASwD,wBAAT,CAAkCpC,KAAlC,EAAgDpB,IAAhD,EAAkE;AAChE,QAAIX,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIF,mBAAJ,EAAyB;AACvBA,UAAAA,mBAAmB,CAACoE,gBAApB,CAAqC9wC,IAArC,CAA0C;AACxCswB,YAAAA,aAAa,EAAbA,aADwC;AAExC+c,YAAAA,KAAK,EAAED,gBAAgB,CAACG,IAAD,CAFiB;AAGxClqB,YAAAA,SAAS,EAAEypB,eAAe,EAHc;AAIxCxpC,YAAAA,IAAI,EAAE,uBAJkC;AAKxCsrC,YAAAA,OAAO,EAAE;AAL+B,WAA1C;AAOD;AACF;;AAED,UAAI/C,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,oCAA6BH,IAA7B,cAAqCjd,aAArC,EAAZ;AACD;AACF;AACF;;AAED,WAAS0gB,eAAT,CAAyBrC,KAAzB,EAAqD;AACnD,QAAMsC,OAAO,GAAG,EAAhB;AACA,QAAIzT,MAAoB,GAAGmR,KAA3B;;AACA,WAAOnR,MAAM,KAAK,IAAlB,EAAwB;AACtByT,MAAAA,OAAO,CAACjxC,IAAR,CAAaw9B,MAAb;AACAA,MAAAA,MAAM,GAAGA,MAAM,CAAC55B,MAAhB;AACD;;AACD,WAAOqtC,OAAP;AACD;;AAED,WAASC,wBAAT,CAAkCvC,KAAlC,EAAgDpB,IAAhD,EAAkE;AAChE,QAAIX,WAAW,IAAIf,oBAAnB,EAAyC;AACvC,UAAMvb,aAAa,GAAG6b,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,SAAvD;;AAEA,UAAI/B,WAAJ,EAAiB;AACf;AACA,YAAIF,mBAAJ,EAAyB;AACvB,cAAM5nB,KAAoC,GAAG;AAC3CwL,YAAAA,aAAa,EAAbA,aAD2C;AAE3C;AACA;AACA+c,YAAAA,KAAK,EAAED,gBAAgB,CAACG,IAAD,CAJoB;AAK3ClqB,YAAAA,SAAS,EAAEypB,eAAe,EALiB;AAM3CxpC,YAAAA,IAAI,EAAE,uBANqC;AAO3CsrC,YAAAA,OAAO,EAAE;AAPkC,WAA7C;AASAjC,UAAAA,kBAAkB,CAACrtC,GAAnB,CAAuBwlB,KAAvB,EAA8BksB,eAAe,CAACrC,KAAD,CAA7C,EAVuB,CAWvB;;AACAjC,UAAAA,mBAAmB,CAACoE,gBAApB,CAAqC9wC,IAArC,CAA0C8kB,KAA1C;AACD;AACF;;AAED,UAAI+mB,oBAAJ,EAA0B;AACxB6B,QAAAA,YAAY,mCAA4BH,IAA5B,cAAoCjd,aAApC,EAAZ;AACD;AACF;AACF;;AAED,WAAS6gB,qBAAT,CAA+BlxC,KAA/B,EAA+C;AAC7C,QAAI2sC,WAAW,KAAK3sC,KAApB,EAA2B;AACzB2sC,MAAAA,WAAW,GAAG3sC,KAAd;;AAEA,UAAI2sC,WAAJ,EAAiB;AACf,YAAMwE,4BAA0D,GAC9D,IAAInzC,GAAJ,EADF;;AAGA,YAAI4tC,oBAAJ,EAA0B;AACxB,cAAMqB,MAAM,GAAGD,uBAAuB,EAAtC;;AACA,cAAIC,MAAJ,EAAY;AACV,iBAAK,IAAIh9B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGg9B,MAAM,CAAC9tC,MAA3B,EAAmC8Q,CAAC,EAApC,EAAwC;AACtC,kBAAMy9B,KAAK,GAAGT,MAAM,CAACh9B,CAAD,CAApB;;AACA,kBAAI1I,cAAO,CAACmmC,KAAD,CAAP,IAAkBA,KAAK,CAACvuC,MAAN,KAAiB,CAAvC,EAA0C;AAAA,8DACE8tC,MAAM,CAACh9B,CAAD,CADR;AAAA,oBACjC09B,eADiC;AAAA,oBAChBC,cADgB;;AAGxCH,gBAAAA,YAAY,yCACuBE,eADvB,EAAZ;AAGAF,gBAAAA,YAAY,wCAAiCG,cAAjC,EAAZ;AACD;AACF;AACF;AACF;;AAED,YAAMQ,qBAAqB,GAAG,IAAIpwC,GAAJ,EAA9B;AACA,YAAIsvC,IAAI,GAAG,CAAX;;AACA,aAAK,IAAItoB,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG2iB,qBAA5B,EAAmD3iB,KAAK,EAAxD,EAA4D;AAC1DopB,UAAAA,qBAAqB,CAAC/uC,GAAtB,CAA0BiuC,IAA1B,EAAgC,EAAhC;AACAA,UAAAA,IAAI,IAAI,CAAR;AACD;;AAEDhB,QAAAA,eAAe,GAAG,CAAlB;AACAC,QAAAA,4BAA4B,GAAG,IAA/B;AACAC,QAAAA,yBAAyB,GAAG,EAA5B;AACAE,QAAAA,kBAAkB,GAAG,IAAI1uC,GAAJ,EAArB;AACAyuC,QAAAA,mBAAmB,GAAG;AACpB;AACA0E,UAAAA,4BAA4B,EAA5BA,4BAFoB;AAGpB5D,UAAAA,cAAc,EAAEA,cAAc,IAAI,IAAIvvC,GAAJ,EAHd;AAIpBquC,UAAAA,YAAY,EAAZA,YAJoB;AAMpB;AACAwC,UAAAA,iBAAiB,EAAE,EAPC;AAQpBgC,UAAAA,gBAAgB,EAAE,EARE;AASpBT,UAAAA,cAAc,EAAE,EATI;AAUpBV,UAAAA,YAAY,EAAE,EAVM;AAYpB;AACAvB,UAAAA,qBAAqB,EAAE,IAAInwC,GAAJ,EAbH;AAcpBkwC,UAAAA,QAAQ,EAAE,CAdU;AAepBE,UAAAA,qBAAqB,EAArBA,qBAfoB;AAgBpBrB,UAAAA,SAAS,EAAE,CAhBS;AAkBpB;AACAqE,UAAAA,UAAU,EAAE,EAnBQ;AAoBpBC,UAAAA,YAAY,EAAE,EApBM;AAqBpBC,UAAAA,eAAe,EAAE,EArBG;AAsBpBC,UAAAA,oBAAoB,EAAE,EAtBF;AAuBpBC,UAAAA,SAAS,EAAE,EAvBS;AAwBpBC,UAAAA,cAAc,EAAE;AAxBI,SAAtB;AA0BA7E,QAAAA,6BAA6B,GAAG,IAAhC;AACD,OA3DD,MA2DO;AACL;AACA,YAAIH,mBAAmB,KAAK,IAA5B,EAAkC;AAChCA,UAAAA,mBAAmB,CAACoE,gBAApB,CAAqC7tC,OAArC,CAA6C,UAAA6hB,KAAK,EAAI;AACpD,gBAAIA,KAAK,CAACxhB,IAAN,KAAe,uBAAnB,EAA4C;AAC1C;AACA;AACA;AACA,kBAAMquC,UAAU,GAAGhF,kBAAkB,CAAClsC,GAAnB,CAAuBqkB,KAAvB,CAAnB;;AACA,kBAAI6sB,UAAU,IAAInI,oBAAoB,IAAI,IAA1C,EAAgD;AAC9C1kB,gBAAAA,KAAK,CAAC8sB,cAAN,GAAuBD,UAAU,CAAC9uB,MAAX,CAAkB,UAAChD,KAAD,EAAQ8uB,KAAR,EAAkB;AACzD,yBACE9uB,KAAK,GACL6qB,aAAa,CAACC,UAAD,EAAagE,KAAb,EAAoBnF,oBAApB,CAFf;AAID,iBALsB,EAKpB,EALoB,CAAvB;AAMD;AACF;AACF,WAfD;AAgBD,SAnBI,CAqBL;AACA;;;AACAmD,QAAAA,kBAAkB,CAACtxB,KAAnB;AACD;AACF;AACF;;AAED,SAAO;AACL8xB,IAAAA,eAAe,EAAfA,eADK;AAEL0E,IAAAA,cAAc,EAAE;AACdrD,MAAAA,iBAAiB,EAAjBA,iBADc;AAEdC,MAAAA,iBAAiB,EAAjBA,iBAFc;AAGdC,MAAAA,0BAA0B,EAA1BA,0BAHc;AAIdG,MAAAA,0BAA0B,EAA1BA,0BAJc;AAKdM,MAAAA,sCAAsC,EAAtCA,sCALc;AAMdC,MAAAA,sCAAsC,EAAtCA,sCANc;AAOdC,MAAAA,wCAAwC,EAAxCA,wCAPc;AAQdC,MAAAA,wCAAwC,EAAxCA,wCARc;AASdP,MAAAA,qCAAqC,EAArCA,qCATc;AAUdC,MAAAA,qCAAqC,EAArCA,qCAVc;AAWdC,MAAAA,uCAAuC,EAAvCA,uCAXc;AAYdC,MAAAA,uCAAuC,EAAvCA,uCAZc;AAadK,MAAAA,oBAAoB,EAApBA,oBAbc;AAcdS,MAAAA,sBAAsB,EAAtBA,sBAdc;AAedM,MAAAA,wBAAwB,EAAxBA,wBAfc;AAgBdC,MAAAA,wBAAwB,EAAxBA,wBAhBc;AAiBdC,MAAAA,yBAAyB,EAAzBA,yBAjBc;AAkBdC,MAAAA,yBAAyB,EAAzBA,yBAlBc;AAmBdC,MAAAA,iBAAiB,EAAjBA,iBAnBc;AAoBdC,MAAAA,iBAAiB,EAAjBA,iBApBc;AAqBdC,MAAAA,iBAAiB,EAAjBA,iBArBc;AAsBdC,MAAAA,mBAAmB,EAAnBA,mBAtBc;AAuBdE,MAAAA,wBAAwB,EAAxBA,wBAvBc;AAwBdG,MAAAA,wBAAwB,EAAxBA;AAxBc,KAFX;AA4BLC,IAAAA,qBAAqB,EAArBA;AA5BK,GAAP;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/7BD;;;;;;;;AASA;AAmBA;AAWA;AACA;AAKA;AAOA;AAcA;AACA;AAMA;AAoBA;AACA;AACA;AACA;AACA;AACA;;AAuCA,SAASkB,aAAT,CAAuB1D,KAAvB,EAA6C;AAC3C;AACA,SAAOA,KAAK,CAAC2D,KAAN,KAAgB1jC,SAAhB,GAA4B+/B,KAAK,CAAC2D,KAAlC,GAA2C3D,KAAD,CAAa4D,SAA9D;AACD,EAED;;;AACA,IAAMvd,uBAAc,GAClB;AACA,QAAOC,WAAP,iDAAOA,WAAP,OAAuB,QAAvB,IAAmC,OAAOA,WAAW,CAACljB,GAAnB,KAA2B,UAA9D,GACI;AAAA,SAAMkjB,WAAW,CAACljB,GAAZ,EAAN;AAAA,CADJ,GAEI;AAAA,SAAMC,IAAI,CAACD,GAAL,EAAN;AAAA,CAJN;AAMO,SAASygC,yBAAT,CAAmCrlC,OAAnC,EAML;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAIslC,mBAA4C,GAAG;AACjDC,IAAAA,iBAAiB,EAAE,EAD8B;AAEjDC,IAAAA,oBAAoB,EAAE,EAF2B;AAGjDC,IAAAA,cAAc,EAAE,EAHiC;AAIjDC,IAAAA,WAAW,EAAE,EAJoC;AAKjDC,IAAAA,YAAY,EAAE,EALmC;AAMjDC,IAAAA,UAAU,EAAE;AANqC,GAAnD;;AASA,MAAI9P,EAAE,CAAC91B,OAAD,EAAU,QAAV,CAAN,EAA2B;AACzBslC,IAAAA,mBAAmB,GAAG;AACpBC,MAAAA,iBAAiB,EAAE,CADC;AAEpBC,MAAAA,oBAAoB,EAAE,CAFF;AAGpBC,MAAAA,cAAc,EAAE,CAHI;AAIpBC,MAAAA,WAAW,EAAE,CAJO;AAKpBC,MAAAA,YAAY,EAAE,CALM;AAMpBC,MAAAA,UAAU,EAAE;AANQ,KAAtB;AAQD;;AAED,MAAIC,cAAc,GAAG,CAArB;;AACA,MAAI/R,GAAG,CAAC9zB,OAAD,EAAU,cAAV,CAAP,EAAkC;AAChC;AACA6lC,IAAAA,cAAc,GAAG,EAAjB;AACD,GAHD,MAGO,IAAI/R,GAAG,CAAC9zB,OAAD,EAAU,QAAV,CAAP,EAA4B;AACjC;AACA6lC,IAAAA,cAAc,GAAG,CAAjB;AACD,GAHM,MAGA,IAAI/R,GAAG,CAAC9zB,OAAD,EAAU,QAAV,CAAP,EAA4B;AACjC;AACA6lC,IAAAA,cAAc,GAAG,CAAjB;AACD;;AAED,MAAIC,eAA2B,GAAK,IAApC,CAxCA,CA0CA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAIhQ,EAAE,CAAC91B,OAAD,EAAU,QAAV,CAAN,EAA2B;AACzB8lC,IAAAA,eAAe,GAAG;AAChBC,MAAAA,cAAc,EAAE,EADA;AACI;AACpB9H,MAAAA,cAAc,EAAE,CAFA;AAGhB9mC,MAAAA,eAAe,EAAE,CAHD;AAIhBC,MAAAA,eAAe,EAAE,EAJD;AAKhB4uC,MAAAA,kBAAkB,EAAE,CAAC,CALL;AAKQ;AACxBC,MAAAA,qBAAqB,EAAE,CAAC,CANR;AAMW;AAC3BC,MAAAA,2BAA2B,EAAE,EAPb;AAOiB;AACjC5uC,MAAAA,UAAU,EAAE,EARI;AAShBC,MAAAA,QAAQ,EAAE,CATM;AAUhBumC,MAAAA,iBAAiB,EAAE,CAVH;AAWhBJ,MAAAA,aAAa,EAAE,CAXC;AAYhByI,MAAAA,UAAU,EAAE,CAZI;AAahBC,MAAAA,QAAQ,EAAE,CAbM;AAchBC,MAAAA,aAAa,EAAE,EAdC;AAcG;AACnBC,MAAAA,aAAa,EAAE,EAfC;AAeG;AACnBC,MAAAA,QAAQ,EAAE,CAhBM;AAiBhBC,MAAAA,wBAAwB,EAAE,EAjBV;AAkBhBzI,MAAAA,sBAAsB,EAAE,CAlBR;AAmBhBJ,MAAAA,aAAa,EAAE,EAnBC;AAoBhB8I,MAAAA,qBAAqB,EAAE,EApBP;AAqBhBC,MAAAA,aAAa,EAAE,EArBC;AAsBhBC,MAAAA,IAAI,EAAE,CAtBU;AAuBhBC,MAAAA,kBAAkB,EAAE,EAvBJ;AAuBQ;AACxBjvC,MAAAA,QAAQ,EAAE,EAxBM;AAyBhBkvC,MAAAA,cAAc,EAAE,EAzBA;AAyBI;AACpB7I,MAAAA,mBAAmB,EAAE,EA1BL;AA2BhBJ,MAAAA,iBAAiB,EAAE,EA3BH;AA4BhBC,MAAAA,qBAAqB,EAAE,EA5BP;AA4BW;AAC3BiJ,MAAAA,sBAAsB,EAAE,EA7BR;AA6BY;AAC5B;AACAC,MAAAA,cAAc,EAAE,CAAC,CA/BD,CA+BI;;AA/BJ,KAAlB;AAiCD,GAlCD,MAkCO,IAAIjT,GAAG,CAAC9zB,OAAD,EAAU,cAAV,CAAP,EAAkC;AACvC8lC,IAAAA,eAAe,GAAG;AAChBC,MAAAA,cAAc,EAAE,CAAC,CADD;AACI;AACpB9H,MAAAA,cAAc,EAAE,CAFA;AAGhB9mC,MAAAA,eAAe,EAAE,CAHD;AAIhBC,MAAAA,eAAe,EAAE,EAJD;AAKhB4uC,MAAAA,kBAAkB,EAAE,CAAC,CALL;AAKQ;AACxBC,MAAAA,qBAAqB,EAAE,CAAC,CANR;AAMW;AAC3BC,MAAAA,2BAA2B,EAAE,EAPb;AAOiB;AACjC5uC,MAAAA,UAAU,EAAE,EARI;AAShBC,MAAAA,QAAQ,EAAE,CATM;AAUhBumC,MAAAA,iBAAiB,EAAE,CAVH;AAWhBJ,MAAAA,aAAa,EAAE,CAXC;AAYhByI,MAAAA,UAAU,EAAE,CAZI;AAahBC,MAAAA,QAAQ,EAAE,CAbM;AAchBC,MAAAA,aAAa,EAAE,CAAC,CAdA;AAcG;AACnBC,MAAAA,aAAa,EAAE,CAAC,CAfA;AAeG;AACnBC,MAAAA,QAAQ,EAAE,CAhBM;AAiBhBC,MAAAA,wBAAwB,EAAE,EAjBV;AAkBhBzI,MAAAA,sBAAsB,EAAE,CAlBR;AAmBhBJ,MAAAA,aAAa,EAAE,EAnBC;AAoBhB8I,MAAAA,qBAAqB,EAAE,EApBP;AAqBhBC,MAAAA,aAAa,EAAE,EArBC;AAsBhBC,MAAAA,IAAI,EAAE,CAtBU;AAuBhBC,MAAAA,kBAAkB,EAAE,EAvBJ;AAuBQ;AACxBjvC,MAAAA,QAAQ,EAAE,EAxBM;AAyBhBkvC,MAAAA,cAAc,EAAE,EAzBA;AAyBI;AACpB7I,MAAAA,mBAAmB,EAAE,EA1BL;AA2BhBJ,MAAAA,iBAAiB,EAAE,EA3BH;AA4BhBC,MAAAA,qBAAqB,EAAE,EA5BP;AA4BW;AAC3BiJ,MAAAA,sBAAsB,EAAE,CAAC,CA7BT;AA6BY;AAC5BC,MAAAA,cAAc,EAAE,CAAC,CA9BD,CA8BI;;AA9BJ,KAAlB;AAgCD,GAjCM,MAiCA,IAAIjT,GAAG,CAAC9zB,OAAD,EAAU,eAAV,CAAP,EAAmC;AACxC8lC,IAAAA,eAAe,GAAG;AAChBC,MAAAA,cAAc,EAAE,CAAC,CADD;AACI;AACpB9H,MAAAA,cAAc,EAAE,CAFA;AAGhB9mC,MAAAA,eAAe,EAAE,CAHD;AAIhBC,MAAAA,eAAe,EAAE,EAJD;AAKhB4uC,MAAAA,kBAAkB,EAAE,CAAC,CALL;AAKQ;AACxBC,MAAAA,qBAAqB,EAAE,CAAC,CANR;AAMW;AAC3BC,MAAAA,2BAA2B,EAAE,EAPb;AAOiB;AACjC5uC,MAAAA,UAAU,EAAE,EARI;AAShBC,MAAAA,QAAQ,EAAE,CATM;AAUhBumC,MAAAA,iBAAiB,EAAE,CAVH;AAWhBJ,MAAAA,aAAa,EAAE,CAXC;AAYhByI,MAAAA,UAAU,EAAE,CAZI;AAahBC,MAAAA,QAAQ,EAAE,CAbM;AAchBC,MAAAA,aAAa,EAAE,CAAC,CAdA;AAcG;AACnBC,MAAAA,aAAa,EAAE,CAAC,CAfA;AAeG;AACnBC,MAAAA,QAAQ,EAAE,CAhBM;AAiBhBC,MAAAA,wBAAwB,EAAE,EAjBV;AAkBhBzI,MAAAA,sBAAsB,EAAE,CAlBR;AAmBhBJ,MAAAA,aAAa,EAAE,EAnBC;AAoBhB8I,MAAAA,qBAAqB,EAAE,CAAC,CApBR;AAqBhBC,MAAAA,aAAa,EAAE,EArBC;AAsBhBC,MAAAA,IAAI,EAAE,CAtBU;AAuBhBC,MAAAA,kBAAkB,EAAE,CAAC,CAvBL;AAuBQ;AACxBjvC,MAAAA,QAAQ,EAAE,EAxBM;AAyBhBkvC,MAAAA,cAAc,EAAE,CAAC,CAzBD;AAyBI;AACpB7I,MAAAA,mBAAmB,EAAE,EA1BL;AA2BhBJ,MAAAA,iBAAiB,EAAE,EA3BH;AA4BhBC,MAAAA,qBAAqB,EAAE,EA5BP;AA4BW;AAC3BiJ,MAAAA,sBAAsB,EAAE,CAAC,CA7BT;AA6BY;AAC5BC,MAAAA,cAAc,EAAE,CAAC,CA9BD,CA8BI;;AA9BJ,KAAlB;AAgCD,GAjCM,MAiCA,IAAIjT,GAAG,CAAC9zB,OAAD,EAAU,cAAV,CAAP,EAAkC;AACvC8lC,IAAAA,eAAe,GAAG;AAChBC,MAAAA,cAAc,EAAE,CAAC,CADD;AACI;AACpB9H,MAAAA,cAAc,EAAE,CAFA;AAGhB9mC,MAAAA,eAAe,EAAE,EAHD;AAIhBC,MAAAA,eAAe,EAAE,EAJD;AAKhB4uC,MAAAA,kBAAkB,EAAE,CAAC,CALL;AAKQ;AACxBC,MAAAA,qBAAqB,EAAE,CAAC,CANR;AAMW;AAC3BC,MAAAA,2BAA2B,EAAE,CAAC,CAPd;AAOiB;AACjC5uC,MAAAA,UAAU,EAAE,EARI;AAShBC,MAAAA,QAAQ,EAAE,CATM;AAUhBumC,MAAAA,iBAAiB,EAAE,CAVH;AAWhBJ,MAAAA,aAAa,EAAE,CAXC;AAYhByI,MAAAA,UAAU,EAAE,CAZI;AAahBC,MAAAA,QAAQ,EAAE,CAbM;AAchBC,MAAAA,aAAa,EAAE,CAAC,CAdA;AAcG;AACnBC,MAAAA,aAAa,EAAE,CAAC,CAfA;AAeG;AACnBC,MAAAA,QAAQ,EAAE,CAhBM;AAiBhBC,MAAAA,wBAAwB,EAAE,CAAC,CAjBX;AAiBc;AAC9BzI,MAAAA,sBAAsB,EAAE,CAlBR;AAmBhBJ,MAAAA,aAAa,EAAE,CAAC,CAnBA;AAmBG;AACnB8I,MAAAA,qBAAqB,EAAE,CAAC,CApBR;AAqBhBC,MAAAA,aAAa,EAAE,CAAC,CArBA;AAqBG;AACnBC,MAAAA,IAAI,EAAE,EAtBU;AAuBhBC,MAAAA,kBAAkB,EAAE,CAAC,CAvBL;AAuBQ;AACxBjvC,MAAAA,QAAQ,EAAE,EAxBM;AAyBhBkvC,MAAAA,cAAc,EAAE,CAAC,CAzBD;AAyBI;AACpB7I,MAAAA,mBAAmB,EAAE,CAAC,CA1BN;AA0BS;AACzBJ,MAAAA,iBAAiB,EAAE,EA3BH;AA4BhBC,MAAAA,qBAAqB,EAAE,CAAC,CA5BR;AA4BW;AAC3BiJ,MAAAA,sBAAsB,EAAE,CAAC,CA7BT;AA6BY;AAC5BC,MAAAA,cAAc,EAAE,CAAC,CA9BD,CA8BI;;AA9BJ,KAAlB;AAgCD,GAjCM,MAiCA;AACLjB,IAAAA,eAAe,GAAG;AAChBC,MAAAA,cAAc,EAAE,CAAC,CADD;AACI;AACpB9H,MAAAA,cAAc,EAAE,CAFA;AAGhB9mC,MAAAA,eAAe,EAAE,EAHD;AAIhBC,MAAAA,eAAe,EAAE,EAJD;AAKhB4uC,MAAAA,kBAAkB,EAAE,CALJ;AAMhBC,MAAAA,qBAAqB,EAAE,CANP;AAOhBC,MAAAA,2BAA2B,EAAE,CAAC,CAPd;AAOiB;AACjC5uC,MAAAA,UAAU,EAAE,EARI;AAShBC,MAAAA,QAAQ,EAAE,EATM;AAUhBumC,MAAAA,iBAAiB,EAAE,CAVH;AAWhBJ,MAAAA,aAAa,EAAE,CAXC;AAYhByI,MAAAA,UAAU,EAAE,CAZI;AAahBC,MAAAA,QAAQ,EAAE,CAbM;AAchBC,MAAAA,aAAa,EAAE,CAAC,CAdA;AAcG;AACnBC,MAAAA,aAAa,EAAE,CAAC,CAfA;AAeG;AACnBC,MAAAA,QAAQ,EAAE,CAhBM;AAiBhBC,MAAAA,wBAAwB,EAAE,CAAC,CAjBX;AAiBc;AAC9BzI,MAAAA,sBAAsB,EAAE,CAlBR;AAmBhBJ,MAAAA,aAAa,EAAE,CAAC,CAnBA;AAmBG;AACnB8I,MAAAA,qBAAqB,EAAE,CAAC,CApBR;AAqBhBC,MAAAA,aAAa,EAAE,CAAC,CArBA;AAqBG;AACnBC,MAAAA,IAAI,EAAE,EAtBU;AAuBhBC,MAAAA,kBAAkB,EAAE,CAAC,CAvBL;AAuBQ;AACxBjvC,MAAAA,QAAQ,EAAE,EAxBM;AAyBhBkvC,MAAAA,cAAc,EAAE,CAAC,CAzBD;AAyBI;AACpB7I,MAAAA,mBAAmB,EAAE,CAAC,CA1BN;AA0BS;AACzBJ,MAAAA,iBAAiB,EAAE,EA3BH;AA4BhBC,MAAAA,qBAAqB,EAAE,CAAC,CA5BR;AA4BW;AAC3BiJ,MAAAA,sBAAsB,EAAE,CAAC,CA7BT;AA6BY;AAC5BC,MAAAA,cAAc,EAAE;AA9BA,KAAlB;AAgCD,GAtND,CAuNA;AACA;AACA;;;AAEA,WAASC,aAAT,CAAuB7wC,IAAvB,EAAmD;AACjD,QAAM8wC,cAAc,GAClB,gBAAO9wC,IAAP,MAAgB,QAAhB,IAA4BA,IAAI,KAAK,IAArC,GAA4CA,IAAI,CAACe,QAAjD,GAA4Df,IAD9D;AAGA,WAAO,gBAAO8wC,cAAP,MAA0B,QAA1B,GACH;AACAA,IAAAA,cAAc,CAAC7rC,QAAf,EAFG,GAGH6rC,cAHJ;AAID;;AAnOD,yBA6PInB,eA7PJ;AAAA,MAsOEC,cAtOF,oBAsOEA,cAtOF;AAAA,MAuOE9H,cAvOF,oBAuOEA,cAvOF;AAAA,MAwOEuI,wBAxOF,oBAwOEA,wBAxOF;AAAA,MAyOE1I,iBAzOF,oBAyOEA,iBAzOF;AAAA,MA0OEC,sBA1OF,oBA0OEA,sBA1OF;AAAA,MA2OEzmC,UA3OF,oBA2OEA,UA3OF;AAAA,MA4OE8uC,QA5OF,oBA4OEA,QA5OF;AAAA,MA6OEC,aA7OF,oBA6OEA,aA7OF;AAAA,MA8OEC,aA9OF,oBA8OEA,aA9OF;AAAA,MA+OE5I,aA/OF,oBA+OEA,aA/OF;AAAA,MAgPEyI,UAhPF,oBAgPEA,UAhPF;AAAA,MAiPEI,QAjPF,oBAiPEA,QAjPF;AAAA,MAkPEhvC,QAlPF,oBAkPEA,QAlPF;AAAA,MAmPEomC,aAnPF,oBAmPEA,aAnPF;AAAA,MAoPE8I,qBApPF,oBAoPEA,qBApPF;AAAA,MAqPEC,aArPF,oBAqPEA,aArPF;AAAA,MAsPEE,kBAtPF,oBAsPEA,kBAtPF;AAAA,MAuPEjvC,QAvPF,oBAuPEA,QAvPF;AAAA,MAwPEkvC,cAxPF,oBAwPEA,cAxPF;AAAA,MAyPE7I,mBAzPF,oBAyPEA,mBAzPF;AAAA,MA0PEJ,iBA1PF,oBA0PEA,iBA1PF;AAAA,MA2PEC,qBA3PF,oBA2PEA,qBA3PF;AAAA,MA4PEiJ,sBA5PF,oBA4PEA,sBA5PF;;AA+PA,WAASI,gBAAT,CAA0B/wC,IAA1B,EAAiD;AAC/C,QAAMgxC,UAAU,GAAGH,aAAa,CAAC7wC,IAAD,CAAhC;;AACA,YAAQgxC,UAAR;AACE,WAAKpQ,wBAAL;AACA,WAAKC,+BAAL;AACE;AACA,eAAOkQ,gBAAgB,CAAC/wC,IAAI,CAACA,IAAN,CAAvB;;AACF,WAAKsgC,+BAAL;AACA,WAAKC,sCAAL;AACE,eAAOvgC,IAAI,CAACO,MAAZ;;AACF;AACE,eAAOP,IAAP;AATJ;AAWD,GA5QD,CA8QA;;;AACA,WAAS6oC,sBAAT,CAAgCwC,KAAhC,EAA6D;AAAA,QACpDnrC,WADoD,GAC1BmrC,KAD0B,CACpDnrC,WADoD;AAAA,QACvCF,IADuC,GAC1BqrC,KAD0B,CACvCrrC,IADuC;AAAA,QACjCD,GADiC,GAC1BsrC,KAD0B,CACjCtrC,GADiC;AAG3D,QAAIkxC,YAAY,GAAGjxC,IAAnB;;AACA,QAAI,gBAAOA,IAAP,MAAgB,QAAhB,IAA4BA,IAAI,KAAK,IAAzC,EAA+C;AAC7CixC,MAAAA,YAAY,GAAGF,gBAAgB,CAAC/wC,IAAD,CAA/B;AACD;;AAED,QAAIkxC,eAAoB,GAAG,IAA3B;;AAEA,YAAQnxC,GAAR;AACE,WAAK6vC,cAAL;AACE,eAAO,OAAP;;AACF,WAAK9H,cAAL;AACA,WAAKuI,wBAAL;AACE,eAAO/Z,cAAc,CAAC2a,YAAD,CAArB;;AACF,WAAKtJ,iBAAL;AACA,WAAKC,sBAAL;AACE,eAAOtR,cAAc,CAAC2a,YAAD,CAArB;;AACF,WAAK9vC,UAAL;AACE,eAAO80B,qBAAqB,CAC1B/1B,WAD0B,EAE1B+wC,YAF0B,EAG1B,YAH0B,EAI1B,WAJ0B,CAA5B;;AAMF,WAAKhB,QAAL;AACE,YAAMkB,SAAS,GAAG9F,KAAK,CAAC3M,SAAxB;;AACA,YAAIyS,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACC,cAAV,KAA6B,IAAtD,EAA4D;AAC1D,iBAAOD,SAAS,CAACC,cAAjB;AACD;;AACD,eAAO,IAAP;;AACF,WAAK7J,aAAL;AACA,WAAK4I,aAAL;AACA,WAAKD,aAAL;AACE,eAAOlwC,IAAP;;AACF,WAAKgwC,UAAL;AACA,WAAKI,QAAL;AACE,eAAO,IAAP;;AACF,WAAKhvC,QAAL;AACE,eAAO,UAAP;;AACF,WAAKomC,aAAL;AACE;AACA;AACA;AACA,eAAO,MAAP;;AACF,WAAK+I,aAAL;AACA,WAAK1I,mBAAL;AACE;AACA,eAAO5R,qBAAqB,CAC1B/1B,WAD0B,EAE1B+wC,YAF0B,EAG1B,MAH0B,EAI1B,WAJ0B,CAA5B;;AAMF,WAAKxJ,iBAAL;AACE,eAAO,UAAP;;AACF,WAAK6I,qBAAL;AACE,eAAO,cAAP;;AACF,WAAKG,kBAAL;AACE,eAAO,WAAP;;AACF,WAAKC,cAAL;AACE,eAAO,OAAP;;AACF,WAAKhJ,qBAAL;AACE,eAAO,cAAP;;AACF,WAAKlmC,QAAL;AACE,eAAO,UAAP;;AACF,WAAKmvC,sBAAL;AACE,eAAO,eAAP;;AACF;AACE,YAAMK,UAAU,GAAGH,aAAa,CAAC7wC,IAAD,CAAhC;;AAEA,gBAAQgxC,UAAR;AACE,eAAKpR,sBAAL;AACA,eAAKC,6BAAL;AACA,eAAKI,mCAAL;AACE,mBAAO,IAAP;;AACF,eAAKiB,eAAL;AACA,eAAKC,sBAAL;AACE;AACA;AACA;AACA+P,YAAAA,eAAe,GAAG7F,KAAK,CAACrrC,IAAN,CAAWI,QAAX,IAAuBirC,KAAK,CAACrrC,IAAN,CAAWwD,OAApD;AACA,6BAAU0tC,eAAe,CAAC3iB,WAAhB,IAA+B,SAAzC;;AACF,eAAKuR,cAAL;AACA,eAAKC,qBAAL;AACA,eAAKC,4BAAL;AACE;AACA;AACA;AACAkR,YAAAA,eAAe,GAAG7F,KAAK,CAACrrC,IAAN,CAAWI,QAAX,IAAuBirC,KAAK,CAACrrC,IAA/C,CAJF,CAME;AACA;;AACA,6BAAUkxC,eAAe,CAAC3iB,WAAhB,IAA+B,SAAzC;;AACF,eAAK+S,kBAAL;AACA,eAAKC,yBAAL;AACE,mBAAO,IAAP;;AACF,eAAKP,eAAL;AACA,eAAKC,sBAAL;AACE,sCAAmBoK,KAAK,CAACprC,aAAN,CAAoBtB,EAAvC;;AACF,eAAKyiC,YAAL;AACA,eAAKC,mBAAL;AACE,mBAAO,OAAP;;AACF;AACE;AACA;AACA,mBAAO,IAAP;AAnCJ;;AA9DJ;AAoGD;;AAED,SAAO;AACLwH,IAAAA,sBAAsB,EAAtBA,sBADK;AAELgI,IAAAA,aAAa,EAAbA,aAFK;AAGL1B,IAAAA,mBAAmB,EAAnBA,mBAHK;AAILQ,IAAAA,eAAe,EAAfA,eAJK;AAKLD,IAAAA,cAAc,EAAdA;AALK,GAAP;AAOD,EAED;AACA;AACA;AACA;;AACA,IAAM2B,YAAgC,GAAG,IAAI12C,GAAJ,EAAzC,EAEA;AACA;AACA;;AACA,IAAM22C,qBAAyC,GAAG,IAAI32C,GAAJ,EAAlD;AAEO,SAAS42C,MAAT,CACLC,IADK,EAEL/iB,UAFK,EAGLE,QAHK,EAIL7gB,MAJK,EAKc;AACnB;AACA;AACA;AACA;AACA,MAAMjE,OAAO,GAAG8kB,QAAQ,CAAC8iB,iBAAT,IAA8B9iB,QAAQ,CAAC9kB,OAAvD;;AALmB,8BAafqlC,yBAAyB,CAACrlC,OAAD,CAbV;AAAA,MAQjBg/B,sBARiB,yBAQjBA,sBARiB;AAAA,MASjBgI,aATiB,yBASjBA,aATiB;AAAA,MAUjB1B,mBAViB,yBAUjBA,mBAViB;AAAA,MAWjBQ,eAXiB,yBAWjBA,eAXiB;AAAA,MAYjBD,cAZiB,yBAYjBA,cAZiB;;AAAA,MAejBE,cAfiB,GAqCfD,eArCe,CAejBC,cAfiB;AAAA,MAgBjB9H,cAhBiB,GAqCf6H,eArCe,CAgBjB7H,cAhBiB;AAAA,MAiBjB9mC,eAjBiB,GAqCf2uC,eArCe,CAiBjB3uC,eAjBiB;AAAA,MAkBjB+uC,2BAlBiB,GAqCfJ,eArCe,CAkBjBI,2BAlBiB;AAAA,MAmBjB5uC,UAnBiB,GAqCfwuC,eArCe,CAmBjBxuC,UAnBiB;AAAA,MAoBjBC,QApBiB,GAqCfuuC,eArCe,CAoBjBvuC,QApBiB;AAAA,MAqBjBumC,iBArBiB,GAqCfgI,eArCe,CAqBjBhI,iBArBiB;AAAA,MAsBjBsI,QAtBiB,GAqCfN,eArCe,CAsBjBM,QAtBiB;AAAA,MAuBjBC,aAvBiB,GAqCfP,eArCe,CAuBjBO,aAvBiB;AAAA,MAwBjBC,aAxBiB,GAqCfR,eArCe,CAwBjBQ,aAxBiB;AAAA,MAyBjBH,UAzBiB,GAqCfL,eArCe,CAyBjBK,UAzBiB;AAAA,MA0BjBzI,aA1BiB,GAqCfoI,eArCe,CA0BjBpI,aA1BiB;AAAA,MA2BjB6I,QA3BiB,GAqCfT,eArCe,CA2BjBS,QA3BiB;AAAA,MA4BjBC,wBA5BiB,GAqCfV,eArCe,CA4BjBU,wBA5BiB;AAAA,MA6BjBzI,sBA7BiB,GAqCf+H,eArCe,CA6BjB/H,sBA7BiB;AAAA,MA8BjB0I,qBA9BiB,GAqCfX,eArCe,CA8BjBW,qBA9BiB;AAAA,MA+BjBC,aA/BiB,GAqCfZ,eArCe,CA+BjBY,aA/BiB;AAAA,MAgCjBE,kBAhCiB,GAqCfd,eArCe,CAgCjBc,kBAhCiB;AAAA,MAiCjB5I,mBAjCiB,GAqCf8H,eArCe,CAiCjB9H,mBAjCiB;AAAA,MAkCjBJ,iBAlCiB,GAqCfkI,eArCe,CAkCjBlI,iBAlCiB;AAAA,MAmCjBC,qBAnCiB,GAqCfiI,eArCe,CAmCjBjI,qBAnCiB;AAAA,MAoCjBiJ,sBApCiB,GAqCfhB,eArCe,CAoCjBgB,sBApCiB;AAAA,MAuCjBvB,iBAvCiB,GA6CfD,mBA7Ce,CAuCjBC,iBAvCiB;AAAA,MAwCjBC,oBAxCiB,GA6CfF,mBA7Ce,CAwCjBE,oBAxCiB;AAAA,MAyCjBC,cAzCiB,GA6CfH,mBA7Ce,CAyCjBG,cAzCiB;AAAA,MA0CjBC,WA1CiB,GA6CfJ,mBA7Ce,CA0CjBI,WA1CiB;AAAA,MA2CjBC,YA3CiB,GA6CfL,mBA7Ce,CA2CjBK,YA3CiB;AAAA,MA4CjBC,UA5CiB,GA6CfN,mBA7Ce,CA4CjBM,UA5CiB;AAAA,MAgDjB1G,eAhDiB,GA4Dfpa,QA5De,CAgDjBoa,eAhDiB;AAAA,MAiDjB2I,oBAjDiB,GA4Df/iB,QA5De,CAiDjB+iB,oBAjDiB;AAAA,MAkDjBC,iBAlDiB,GA4DfhjB,QA5De,CAkDjBgjB,iBAlDiB;AAAA,MAmDjBC,2BAnDiB,GA4DfjjB,QA5De,CAmDjBijB,2BAnDiB;AAAA,MAoDjBC,2BApDiB,GA4DfljB,QA5De,CAoDjBkjB,2BApDiB;AAAA,MAqDjBC,aArDiB,GA4DfnjB,QA5De,CAqDjBmjB,aArDiB;AAAA,MAsDjBC,uBAtDiB,GA4DfpjB,QA5De,CAsDjBojB,uBAtDiB;AAAA,MAuDjBC,uBAvDiB,GA4DfrjB,QA5De,CAuDjBqjB,uBAvDiB;AAAA,MAwDjBC,eAxDiB,GA4DftjB,QA5De,CAwDjBsjB,eAxDiB;AAAA,MAyDjBC,eAzDiB,GA4DfvjB,QA5De,CAyDjBujB,eAzDiB;AAAA,MA0DjBC,kBA1DiB,GA4DfxjB,QA5De,CA0DjBwjB,kBA1DiB;AAAA,MA2DjBC,cA3DiB,GA4DfzjB,QA5De,CA2DjByjB,cA3DiB;AA6DnB,MAAMC,qBAAqB,GACzB,OAAOH,eAAP,KAA2B,UAA3B,IACA,OAAOE,cAAP,KAA0B,UAF5B;AAGA,MAAME,wBAAwB,GAC5B,OAAOH,kBAAP,KAA8B,UAA9B,IACA,OAAOC,cAAP,KAA0B,UAF5B;;AAIA,MAAI,OAAOH,eAAP,KAA2B,UAA/B,EAA2C;AACzC;AACA;AACA;AACA;AACA;AACA;AACAtjB,IAAAA,QAAQ,CAACsjB,eAAT,GAA2B,YAAa;AACtC,UAAI;AACFT,QAAAA,IAAI,CAACt6B,IAAL,CAAU,sBAAV;AACD,OAFD,SAEU;AACR,eAAO+6B,eAAe,MAAf,mBAAP;AACD;AACF,KAND;AAOD;;AAED,MAAIpI,eAAuC,GAAG,IAA9C;AACA,MAAIgE,qBAAmD,GAAG,IAA1D;;AACA,MAAI,OAAO6D,oBAAP,KAAgC,UAApC,EAAgD;AAC9C,QAAMa,QAAQ,GAAG3J,oBAAoB,CAAC;AACpCC,MAAAA,sBAAsB,EAAtBA,sBADoC;AAEpCC,MAAAA,cAAc,EAAE;AAAA,eAAMQ,WAAN;AAAA,OAFoB;AAGpCP,MAAAA,eAAe,EAAfA,eAHoC;AAIpC7C,MAAAA,oBAAoB,EAAEvX,QAAQ,CAACuX,oBAJK;AAKpCmB,MAAAA,UAAU,EAAEsI,eALwB;AAMpC3G,MAAAA,YAAY,EAAEn/B;AANsB,KAAD,CAArC,CAD8C,CAU9C;;AACA6nC,IAAAA,oBAAoB,CAACa,QAAQ,CAAChE,cAAV,CAApB,CAX8C,CAa9C;;AACA1E,IAAAA,eAAe,GAAG0I,QAAQ,CAAC1I,eAA3B;AACAgE,IAAAA,qBAAqB,GAAG0E,QAAQ,CAAC1E,qBAAjC;AACD,GAtGkB,CAwGnB;AACA;AACA;AACA;AACA;;;AACA,MAAM2E,qCAAiD,GAAG,IAAInlB,GAAJ,EAA1D;AACA,MAAMolB,uBAAwD,GAAG,IAAI93C,GAAJ,EAAjE;AACA,MAAM+3C,yBAA0D,GAAG,IAAI/3C,GAAJ,EAAnE,CA/GmB,CAiHnB;;AACA,MAAMg4C,kBAAoD,GAAG,IAAIh4C,GAAJ,EAA7D;AACA,MAAMi4C,oBAAsD,GAAG,IAAIj4C,GAAJ,EAA/D;;AAEA,WAASk4C,sBAAT,GAAkC;AAChC;AADgC,+CAEfF,kBAAkB,CAACttC,IAAnB,EAFe;AAAA;;AAAA;AAEhC,0DAA4C;AAAA,YAAjC1G,EAAiC;;AAC1C,YAAM0sC,MAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;;AACA,YAAI0sC,MAAK,IAAI,IAAb,EAAmB;AACjBmH,UAAAA,qCAAqC,CAACjyB,GAAtC,CAA0C8qB,MAA1C;AACAyH,UAAAA,6CAA6C,CAACn0C,EAAD,CAA7C;AACD;AACF,OAR+B,CAUhC;;AAVgC;AAAA;AAAA;AAAA;AAAA;;AAAA,gDAWfi0C,oBAAoB,CAACvtC,IAArB,EAXe;AAAA;;AAAA;AAWhC,6DAA8C;AAAA,YAAnC1G,GAAmC;;AAC5C,YAAM0sC,OAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,GAA1B,CAAd;;AACA,YAAI0sC,OAAK,IAAI,IAAb,EAAmB;AACjBmH,UAAAA,qCAAqC,CAACjyB,GAAtC,CAA0C8qB,OAA1C;AACAyH,UAAAA,6CAA6C,CAACn0C,GAAD,CAA7C;AACD;AACF;AAjB+B;AAAA;AAAA;AAAA;AAAA;;AAmBhCg0C,IAAAA,kBAAkB,CAAC56B,KAAnB;AACA66B,IAAAA,oBAAoB,CAAC76B,KAArB;AAEAg7B,IAAAA,kBAAkB;AACnB;;AAED,WAASC,uBAAT,CACEC,OADF,EAEEC,6BAFF,EAGEC,wBAHF,EAIE;AACA,QAAM9H,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0B81C,OAA1B,CAAd;;AACA,QAAI5H,KAAK,IAAI,IAAb,EAAmB;AACjB;AACAoH,MAAAA,uBAAuB,CAACx9B,MAAxB,CAA+Bo2B,KAA/B;;AAEA,UAAI8H,wBAAwB,CAAC9yC,GAAzB,CAA6B4yC,OAA7B,CAAJ,EAA2C;AACzCE,QAAAA,wBAAwB,CAACl+B,MAAzB,CAAgCg+B,OAAhC,EADyC,CAGzC;;AACAT,QAAAA,qCAAqC,CAACjyB,GAAtC,CAA0C8qB,KAA1C;AACA0H,QAAAA,kBAAkB;AAElBD,QAAAA,6CAA6C,CAACG,OAAD,CAA7C;AACD,OARD,MAQO;AACLT,QAAAA,qCAAqC,CAACv9B,MAAtC,CAA6Co2B,KAA7C;AACD;AACF;AACF;;AAED,WAAS+H,qBAAT,CAA+BH,OAA/B,EAAgD;AAC9CD,IAAAA,uBAAuB,CACrBC,OADqB,EAErBR,uBAFqB,EAGrBE,kBAHqB,CAAvB;AAKD;;AAED,WAASU,uBAAT,CAAiCJ,OAAjC,EAAkD;AAChDD,IAAAA,uBAAuB,CACrBC,OADqB,EAErBP,yBAFqB,EAGrBE,oBAHqB,CAAvB;AAKD;;AAED,WAASE,6CAAT,CACEG,OADF,EAEQ;AACN,QACEK,4BAA4B,KAAK,IAAjC,IACAA,4BAA4B,CAAC30C,EAA7B,KAAoCs0C,OAFtC,EAGE;AACAM,MAAAA,mCAAmC,GAAG,IAAtC;AACD;AACF,GA/LkB,CAiMnB;;;AACA,WAASC,gBAAT,CACEnI,KADF,EAEErrC,IAFF,EAGEmN,IAHF,EAIQ;AACN,QAAInN,IAAI,KAAK,OAAb,EAAsB;AACpB,UAAMyzC,OAAO,GAAGC,gBAAgB,CAACrI,KAAD,CAAhC,CADoB,CAEpB;;AACA,UAAIoI,OAAO,IAAI,IAAX,IAAmBE,qBAAqB,CAACx2C,GAAtB,CAA0Bs2C,OAA1B,MAAuC,IAA9D,EAAoE;AAClE;AACD;AACF;;AACD,QAAMrnC,OAAO,GAAGmP,YAAA,oCAAUpO,IAAV,EAAhB;;AACA,QAAI+U,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CAAC,kBAAD,EAAqBvI,KAArB,EAA4B,IAA5B,YAAqCrrC,IAArC,iBAA+CoM,OAA/C,QAAL;AACD,KAXK,CAaN;;;AACAomC,IAAAA,qCAAqC,CAACjyB,GAAtC,CAA0C8qB,KAA1C,EAdM,CAgBN;;AACA,QAAMwI,QAAQ,GACZ7zC,IAAI,KAAK,OAAT,GAAmByyC,uBAAnB,GAA6CC,yBAD/C;AAEA,QAAMoB,UAAU,GAAGD,QAAQ,CAAC12C,GAAT,CAAakuC,KAAb,CAAnB;;AACA,QAAIyI,UAAU,IAAI,IAAlB,EAAwB;AACtB,UAAM9sC,KAAK,GAAG8sC,UAAU,CAAC32C,GAAX,CAAeiP,OAAf,KAA2B,CAAzC;AACA0nC,MAAAA,UAAU,CAAC93C,GAAX,CAAeoQ,OAAf,EAAwBpF,KAAK,GAAG,CAAhC;AACD,KAHD,MAGO;AACL6sC,MAAAA,QAAQ,CAAC73C,GAAT,CAAaqvC,KAAb,EAAoB,IAAI1wC,GAAJ,CAAQ,CAAC,CAACyR,OAAD,EAAU,CAAV,CAAD,CAAR,CAApB;AACD,KAzBK,CA2BN;AACA;AACA;AACA;AACA;AACA;;;AACA2nC,IAAAA,uCAAuC;AACxC,GAxOkB,CA0OnB;AACA;AACA;;;AACArF,EAAAA,gBAA2B,CAAC/f,QAAD,EAAW6kB,gBAAX,CAA3B,CA7OmB,CA+OnB;AACA;AACA;;AACAhF,EAAAA,6BAA6B;;AAE7B,MAAMoF,KAAK,GAAG,SAARA,KAAQ,CACZv2C,IADY,EAEZguC,KAFY,EAGZ2I,WAHY,EAKH;AAAA,QADTC,WACS,uEADa,EACb;;AACT,QAAI/xB,SAAJ,EAAe;AACb,UAAMqM,WAAW,GACf8c,KAAK,CAACtrC,GAAN,GAAY,GAAZ,IAAmB8oC,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,MAApD,CADF;AAGA,UAAMoI,OAAO,GAAGC,gBAAgB,CAACrI,KAAD,CAAhB,IAA2B,SAA3C;AACA,UAAM6I,iBAAiB,GAAGF,WAAW,GACjCA,WAAW,CAACj0C,GAAZ,GACA,GADA,IAEC8oC,sBAAsB,CAACmL,WAAD,CAAtB,IAAuC,MAFxC,CADiC,GAIjC,EAJJ;AAKA,UAAMG,aAAa,GAAGH,WAAW,GAC7BN,gBAAgB,CAACM,WAAD,CAAhB,IAAiC,SADJ,GAE7B,EAFJ;AAIA13B,MAAAA,OAAO,CAACgpB,cAAR,wBACkBjoC,IADlB,gBAC4BkxB,WAD5B,eAC4CklB,OAD5C,iBAEIO,WAAW,aAAME,iBAAN,eAA4BC,aAA5B,SAA+C,EAF9D,gBAGQF,WAHR,GAIE,gCAJF,EAKE,cALF,EAME,gBANF,EAOE,eAPF;AASA33B,MAAAA,OAAO,CAAC+D,GAAR,CAAY,IAAI7jB,KAAJ,GAAYmO,KAAZ,CAAkBc,KAAlB,CAAwB,IAAxB,EAA8BhN,KAA9B,CAAoC,CAApC,EAAuC6G,IAAvC,CAA4C,IAA5C,CAAZ;AACAgX,MAAAA,OAAO,CAACipB,QAAR;AACD;AACF,GAhCD,CApPmB,CAsRnB;;;AACA,MAAM6O,4BAAyC,GAAG,IAAI/mB,GAAJ,EAAlD;AACA,MAAMgnB,qBAAkC,GAAG,IAAIhnB,GAAJ,EAA3C;AACA,MAAMinB,qBAAuC,GAAG,IAAIjnB,GAAJ,EAAhD,CAzRmB,CA2RnB;;AACA,MAAIknB,mBAA4B,GAAG,KAAnC;AACA,MAAMC,oBAAqC,GAAG,IAAInnB,GAAJ,EAA9C;;AAEA,WAASonB,qBAAT,CAA+B7b,gBAA/B,EAAyE;AACvE0b,IAAAA,qBAAqB,CAACv8B,KAAtB;AACAq8B,IAAAA,4BAA4B,CAACr8B,KAA7B;AACAs8B,IAAAA,qBAAqB,CAACt8B,KAAtB;AAEA6gB,IAAAA,gBAAgB,CAACj5B,OAAjB,CAAyB,UAAA+0C,eAAe,EAAI;AAC1C,UAAI,CAACA,eAAe,CAAC7iB,SAArB,EAAgC;AAC9B;AACD;;AAED,cAAQ6iB,eAAe,CAAC10C,IAAxB;AACE,aAAKk1B,0BAAL;AACE,cAAIwf,eAAe,CAACC,OAAhB,IAA2BD,eAAe,CAAC/3C,KAAhB,KAA0B,EAAzD,EAA6D;AAC3Dy3C,YAAAA,4BAA4B,CAAC7zB,GAA7B,CACE,IAAI3D,MAAJ,CAAW83B,eAAe,CAAC/3C,KAA3B,EAAkC,GAAlC,CADF;AAGD;;AACD;;AACF,aAAKs4B,0BAAL;AACEqf,UAAAA,qBAAqB,CAAC/zB,GAAtB,CAA0Bm0B,eAAe,CAAC/3C,KAA1C;AACA;;AACF,aAAKw4B,uBAAL;AACE,cAAIuf,eAAe,CAACC,OAAhB,IAA2BD,eAAe,CAAC/3C,KAAhB,KAA0B,EAAzD,EAA6D;AAC3D03C,YAAAA,qBAAqB,CAAC9zB,GAAtB,CAA0B,IAAI3D,MAAJ,CAAW83B,eAAe,CAAC/3C,KAA3B,EAAkC,GAAlC,CAA1B;AACD;;AACD;;AACF,aAAKy4B,kBAAL;AACEgf,UAAAA,4BAA4B,CAAC7zB,GAA7B,CAAiC,IAAI3D,MAAJ,CAAW,KAAX,CAAjC;AACA;;AACF;AACEN,UAAAA,OAAO,CAACuS,IAAR,2CACoC6lB,eAAe,CAAC10C,IADpD;AAGA;AAvBJ;AAyBD,KA9BD;AA+BD,GAnUkB,CAqUnB;AACA;AACA;;;AACA,MAAIknB,MAAM,CAAC0tB,oCAAP,IAA+C,IAAnD,EAAyD;AACvDH,IAAAA,qBAAqB,CAACvtB,MAAM,CAAC0tB,oCAAR,CAArB;AACD,GAFD,MAEO;AACL;AACA;AACA;AACA;AAEA;AACAH,IAAAA,qBAAqB,CAACjc,0BAA0B,EAA3B,CAArB;AACD,GAlVkB,CAoVnB;AACA;AACA;AACA;;;AACA,WAASqc,sBAAT,CAAgCjc,gBAAhC,EAA0E;AACxE,QAAI0Q,WAAJ,EAAiB;AACf;AACA;AACA,YAAM9sC,KAAK,CAAC,kDAAD,CAAX;AACD,KALuE,CAOxE;;;AACAg1C,IAAAA,IAAI,CAACsD,aAAL,CAAmBrmB,UAAnB,EAA+B9uB,OAA/B,CAAuC,UAAAmK,IAAI,EAAI;AAC7CirC,MAAAA,aAAa,GAAGC,oBAAoB,CAAClrC,IAAI,CAACjN,OAAN,CAApC,CAD6C,CAE7C;AACA;AACA;;AACAo4C,MAAAA,aAAa,CAACxyB,0BAAD,CAAb;AACAswB,MAAAA,kBAAkB,CAACjpC,IAAD,CAAlB;AACAirC,MAAAA,aAAa,GAAG,CAAC,CAAjB;AACD,KARD;AAUAN,IAAAA,qBAAqB,CAAC7b,gBAAD,CAArB,CAlBwE,CAoBxE;;AACAsc,IAAAA,sBAAsB,CAACn9B,KAAvB,GArBwE,CAuBxE;;AACAy5B,IAAAA,IAAI,CAACsD,aAAL,CAAmBrmB,UAAnB,EAA+B9uB,OAA/B,CAAuC,UAAAmK,IAAI,EAAI;AAC7CirC,MAAAA,aAAa,GAAGC,oBAAoB,CAAClrC,IAAI,CAACjN,OAAN,CAApC;AACAs4C,MAAAA,gBAAgB,CAACJ,aAAD,EAAgBjrC,IAAI,CAACjN,OAArB,CAAhB;AACAu4C,MAAAA,qBAAqB,CAACtrC,IAAI,CAACjN,OAAN,EAAe,IAAf,EAAqB,KAArB,EAA4B,KAA5B,CAArB;AACAk2C,MAAAA,kBAAkB,CAACjpC,IAAD,CAAlB;AACAirC,MAAAA,aAAa,GAAG,CAAC,CAAjB;AACD,KAND,EAxBwE,CAgCxE;;AACAM,IAAAA,2BAA2B;AAC3BtC,IAAAA,kBAAkB;AACnB,GA3XkB,CA6XnB;;;AACA,WAASuC,iBAAT,CAA2BjK,KAA3B,EAAkD;AAAA,QACzCkK,YADyC,GACTlK,KADS,CACzCkK,YADyC;AAAA,QAC3Bx1C,GAD2B,GACTsrC,KADS,CAC3BtrC,GAD2B;AAAA,QACtBC,IADsB,GACTqrC,KADS,CACtBrrC,IADsB;AAAA,QAChBoE,GADgB,GACTinC,KADS,CAChBjnC,GADgB;;AAGhD,YAAQrE,GAAR;AACE,WAAKgwC,2BAAL;AACE;AACA;AACA;AACA;AACA;AACA,eAAO,IAAP;;AACF,WAAKC,UAAL;AACA,WAAKI,QAAL;AACA,WAAKE,qBAAL;AACA,WAAKG,kBAAL;AACE,eAAO,IAAP;;AACF,WAAKR,QAAL;AACE;AACA,eAAO,KAAP;;AACF,WAAK7uC,QAAL;AACE,eAAOgD,GAAG,KAAK,IAAf;;AACF;AACE,YAAM4sC,UAAU,GAAGH,aAAa,CAAC7wC,IAAD,CAAhC;;AAEA,gBAAQgxC,UAAR;AACE,eAAKpR,sBAAL;AACA,eAAKC,6BAAL;AACA,eAAKI,mCAAL;AACA,eAAKqB,kBAAL;AACA,eAAKC,yBAAL;AACE,mBAAO,IAAP;;AACF;AACE;AARJ;;AArBJ;;AAiCA,QAAMrhC,WAAW,GAAGs1C,sBAAsB,CAACnK,KAAD,CAA1C;;AACA,QAAIiJ,qBAAqB,CAACj0C,GAAtB,CAA0BH,WAA1B,CAAJ,EAA4C;AAC1C,aAAO,IAAP;AACD;;AAED,QAAIk0C,4BAA4B,CAAC/7B,IAA7B,GAAoC,CAAxC,EAA2C;AACzC,UAAMkW,WAAW,GAAGsa,sBAAsB,CAACwC,KAAD,CAA1C;;AACA,UAAI9c,WAAW,IAAI,IAAnB,EAAyB;AACvB;AADuB,oDAES6lB,4BAFT;AAAA;;AAAA;AAEvB,iEAA8D;AAAA,gBAAnDqB,iBAAmD;;AAC5D,gBAAIA,iBAAiB,CAACxkC,IAAlB,CAAuBsd,WAAvB,CAAJ,EAAyC;AACvC,qBAAO,IAAP;AACD;AACF;AANsB;AAAA;AAAA;AAAA;AAAA;AAOxB;AACF;;AAED,QAAIgnB,YAAY,IAAI,IAAhB,IAAwBlB,qBAAqB,CAACh8B,IAAtB,GAA6B,CAAzD,EAA4D;AAAA,UACnDpZ,QADmD,GACvCs2C,YADuC,CACnDt2C,QADmD,EAE1D;;AAF0D,kDAGjCo1C,qBAHiC;AAAA;;AAAA;AAG1D,+DAAgD;AAAA,cAArCqB,UAAqC;;AAC9C,cAAIA,UAAU,CAACzkC,IAAX,CAAgBhS,QAAhB,CAAJ,EAA+B;AAC7B,mBAAO,IAAP;AACD;AACF;AAPyD;AAAA;AAAA;AAAA;AAAA;AAQ3D;;AAED,WAAO,KAAP;AACD,GA9bkB,CAgcnB;;;AACA,WAASu2C,sBAAT,CAAgCnK,KAAhC,EAA2D;AAAA,QAClDrrC,IADkD,GACrCqrC,KADqC,CAClDrrC,IADkD;AAAA,QAC5CD,GAD4C,GACrCsrC,KADqC,CAC5CtrC,GAD4C;;AAGzD,YAAQA,GAAR;AACE,WAAK+nC,cAAL;AACA,WAAKuI,wBAAL;AACE,eAAOhc,sBAAP;;AACF,WAAKsT,iBAAL;AACA,WAAKC,sBAAL;AACE,eAAOrT,yBAAP;;AACF,WAAKpzB,UAAL;AACE,eAAOqzB,2BAAP;;AACF,WAAKyb,QAAL;AACE,eAAOpb,eAAP;;AACF,WAAK0S,aAAL;AACA,WAAK2I,aAAL;AACA,WAAKC,aAAL;AACE,eAAO1b,wBAAP;;AACF,WAAKub,UAAL;AACA,WAAKI,QAAL;AACA,WAAKhvC,QAAL;AACE,eAAOuzB,yBAAP;;AACF,WAAK4b,aAAL;AACA,WAAK1I,mBAAL;AACE,eAAOnT,qBAAP;;AACF,WAAK+S,iBAAL;AACE,eAAO3S,mBAAP;;AACF,WAAK4S,qBAAL;AACE,eAAO3S,uBAAP;;AACF,WAAK4b,sBAAL;AACE,eAAO3b,wBAAP;;AACF;AACE,YAAMgc,UAAU,GAAGH,aAAa,CAAC7wC,IAAD,CAAhC;;AAEA,gBAAQgxC,UAAR;AACE,eAAKpR,sBAAL;AACA,eAAKC,6BAAL;AACA,eAAKI,mCAAL;AACE,mBAAOtL,yBAAP;;AACF,eAAKuM,eAAL;AACA,eAAKC,sBAAL;AACE,mBAAO7M,kBAAP;;AACF,eAAKwL,cAAL;AACA,eAAKC,qBAAL;AACE,mBAAOzL,kBAAP;;AACF,eAAKgN,kBAAL;AACA,eAAKC,yBAAL;AACE,mBAAO5M,yBAAP;;AACF,eAAKqM,eAAL;AACA,eAAKC,sBAAL;AACE,mBAAOrM,mBAAP;;AACF;AACE,mBAAOD,yBAAP;AAlBJ;;AA/BJ;AAoDD,GAxfkB,CA0fnB;AACA;AACA;AACA;;;AACA,MAAMghB,uBAA4C,GAAG,IAAIh7C,GAAJ,EAArD,CA9fmB,CAggBnB;AACA;;AACA,MAAMi7C,WAAgC,GAAG,IAAIj7C,GAAJ,EAAzC,CAlgBmB,CAogBnB;;AACA,MAAIo6C,aAAqB,GAAG,CAAC,CAA7B,CArgBmB,CAugBnB;AACA;;AACA,WAASC,oBAAT,CAA8B3J,KAA9B,EAAoD;AAClD,QAAI1sC,EAAE,GAAG,IAAT;;AACA,QAAI0yC,YAAY,CAAChxC,GAAb,CAAiBgrC,KAAjB,CAAJ,EAA6B;AAC3B1sC,MAAAA,EAAE,GAAG0yC,YAAY,CAACl0C,GAAb,CAAiBkuC,KAAjB,CAAL;AACD,KAFD,MAEO;AAAA,UACEe,UADF,GACef,KADf,CACEe,SADF;;AAEL,UAAIA,UAAS,KAAK,IAAd,IAAsBiF,YAAY,CAAChxC,GAAb,CAAiB+rC,UAAjB,CAA1B,EAAuD;AACrDztC,QAAAA,EAAE,GAAG0yC,YAAY,CAACl0C,GAAb,CAAiBivC,UAAjB,CAAL;AACD;AACF;;AAED,QAAIyJ,aAAa,GAAG,KAApB;;AACA,QAAIl3C,EAAE,KAAK,IAAX,EAAiB;AACfk3C,MAAAA,aAAa,GAAG,IAAhB;AACAl3C,MAAAA,EAAE,GAAG83B,MAAM,EAAX;AACD,KAfiD,CAiBlD;;;AACA,QAAMqf,SAAS,GAAKn3C,EAApB,CAlBkD,CAoBlD;AACA;;AACA,QAAI,CAAC0yC,YAAY,CAAChxC,GAAb,CAAiBgrC,KAAjB,CAAL,EAA8B;AAC5BgG,MAAAA,YAAY,CAACr1C,GAAb,CAAiBqvC,KAAjB,EAAwByK,SAAxB;AACAxE,MAAAA,qBAAqB,CAACt1C,GAAtB,CAA0B85C,SAA1B,EAAqCzK,KAArC;AACD,KAzBiD,CA2BlD;AACA;;;AA5BkD,QA6B3Ce,SA7B2C,GA6B9Bf,KA7B8B,CA6B3Ce,SA7B2C;;AA8BlD,QAAIA,SAAS,KAAK,IAAlB,EAAwB;AACtB,UAAI,CAACiF,YAAY,CAAChxC,GAAb,CAAiB+rC,SAAjB,CAAL,EAAkC;AAChCiF,QAAAA,YAAY,CAACr1C,GAAb,CAAiBowC,SAAjB,EAA4B0J,SAA5B;AACD;AACF;;AAED,QAAI5zB,SAAJ,EAAe;AACb,UAAI2zB,aAAJ,EAAmB;AACjBjC,QAAAA,KAAK,CACH,wBADG,EAEHvI,KAFG,EAGHA,KAAK,CAAC/qC,MAHH,EAIH,qBAJG,CAAL;AAMD;AACF;;AAED,WAAOw1C,SAAP;AACD,GAzjBkB,CA2jBnB;;;AACA,WAASC,gBAAT,CAA0B1K,KAA1B,EAAgD;AAC9C,QAAMoI,OAAO,GAAGC,gBAAgB,CAACrI,KAAD,CAAhC;;AACA,QAAIoI,OAAO,KAAK,IAAhB,EAAsB;AACpB,aAAOA,OAAP;AACD;;AACD,UAAMj3C,KAAK,yCACuBqsC,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,EADxD,QAAX;AAGD,GApkBkB,CAskBnB;AACA;;;AACA,WAASqI,gBAAT,CAA0BrI,KAA1B,EAAuD;AACrD,QAAIgG,YAAY,CAAChxC,GAAb,CAAiBgrC,KAAjB,CAAJ,EAA6B;AAC3B,aAASgG,YAAY,CAACl0C,GAAb,CAAiBkuC,KAAjB,CAAT;AACD,KAFD,MAEO;AAAA,UACEe,SADF,GACef,KADf,CACEe,SADF;;AAEL,UAAIA,SAAS,KAAK,IAAd,IAAsBiF,YAAY,CAAChxC,GAAb,CAAiB+rC,SAAjB,CAA1B,EAAuD;AACrD,eAASiF,YAAY,CAACl0C,GAAb,CAAiBivC,SAAjB,CAAT;AACD;AACF;;AACD,WAAO,IAAP;AACD,GAllBkB,CAolBnB;AACA;;;AACA,WAAS4J,cAAT,CAAwB3K,KAAxB,EAAsC;AACpC,QAAInpB,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CAAC,kBAAD,EAAqBvI,KAArB,EAA4BA,KAAK,CAAC/qC,MAAlC,EAA0C,sBAA1C,CAAL;AACD,KAHmC,CAKpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA21C,IAAAA,gBAAgB,CAAC11B,GAAjB,CAAqB8qB,KAArB,EApBoC,CAsBpC;AACA;;AACA,QAAMe,SAAS,GAAGf,KAAK,CAACe,SAAxB;;AACA,QAAIA,SAAS,KAAK,IAAlB,EAAwB;AACtB6J,MAAAA,gBAAgB,CAAC11B,GAAjB,CAAqB6rB,SAArB;AACD;;AAED,QAAI8J,sBAAsB,KAAK,IAA/B,EAAqC;AACnCA,MAAAA,sBAAsB,GAAGnmC,UAAU,CAAComC,aAAD,EAAgB,IAAhB,CAAnC;AACD;AACF;;AAED,MAAMF,gBAA4B,GAAG,IAAI5oB,GAAJ,EAArC;AACA,MAAI6oB,sBAAwC,GAAG,IAA/C;;AAEA,WAASC,aAAT,GAAyB;AACvB,QAAID,sBAAsB,KAAK,IAA/B,EAAqC;AACnC3lC,MAAAA,YAAY,CAAC2lC,sBAAD,CAAZ;AACAA,MAAAA,sBAAsB,GAAG,IAAzB;AACD;;AAEDD,IAAAA,gBAAgB,CAACt2C,OAAjB,CAAyB,UAAA0rC,KAAK,EAAI;AAChC,UAAM4H,OAAO,GAAGS,gBAAgB,CAACrI,KAAD,CAAhC;;AACA,UAAI4H,OAAO,KAAK,IAAhB,EAAsB;AACpB3B,QAAAA,qBAAqB,CAACr8B,MAAtB,CAA6Bg+B,OAA7B,EADoB,CAGpB;;AACAG,QAAAA,qBAAqB,CAACH,OAAD,CAArB;AACAI,QAAAA,uBAAuB,CAACJ,OAAD,CAAvB;AACD;;AAED5B,MAAAA,YAAY,CAACp8B,MAAb,CAAoBo2B,KAApB;AAVgC,UAYzBe,SAZyB,GAYZf,KAZY,CAYzBe,SAZyB;;AAahC,UAAIA,SAAS,KAAK,IAAlB,EAAwB;AACtBiF,QAAAA,YAAY,CAACp8B,MAAb,CAAoBm3B,SAApB;AACD;;AAED,UAAIuH,qBAAqB,CAACtzC,GAAtB,CAA0B4yC,OAA1B,CAAJ,EAAwC;AACtCU,QAAAA,qBAAqB,CAAC1+B,MAAtB,CAA6Bg+B,OAA7B;;AACA,YAAIU,qBAAqB,CAACt7B,IAAtB,KAA+B,CAA/B,IAAoC65B,eAAe,IAAI,IAA3D,EAAiE;AAC/DA,UAAAA,eAAe,CAACkE,0BAAD,CAAf;AACD;AACF;AACF,KAvBD;AAwBAH,IAAAA,gBAAgB,CAACl+B,KAAjB;AACD;;AAED,WAASs+B,oBAAT,CACEC,SADF,EAEEC,SAFF,EAG4B;AAC1B,YAAQf,sBAAsB,CAACe,SAAD,CAA9B;AACE,WAAKliB,sBAAL;AACA,WAAKE,yBAAL;AACA,WAAKG,qBAAL;AACA,WAAKF,2BAAL;AACE,YAAI8hB,SAAS,KAAK,IAAlB,EAAwB;AACtB,iBAAO;AACL9yC,YAAAA,OAAO,EAAE,IADJ;AAELgzC,YAAAA,cAAc,EAAE,KAFX;AAGLC,YAAAA,YAAY,EAAE,IAHT;AAILlzC,YAAAA,KAAK,EAAE,IAJF;AAKLmzC,YAAAA,KAAK,EAAE;AALF,WAAP;AAOD,SARD,MAQO;AACL,cAAMp+B,IAAuB,GAAG;AAC9B9U,YAAAA,OAAO,EAAEmzC,qBAAqB,CAACJ,SAAD,CADA;AAE9BC,YAAAA,cAAc,EAAE,KAFc;AAG9BC,YAAAA,YAAY,EAAE,KAHgB;AAI9BlzC,YAAAA,KAAK,EAAEqzC,cAAc,CACnBN,SAAS,CAACr2C,aADS,EAEnBs2C,SAAS,CAACt2C,aAFS,CAJS;AAQ9By2C,YAAAA,KAAK,EAAEE,cAAc,CACnBN,SAAS,CAAC15C,aADS,EAEnB25C,SAAS,CAAC35C,aAFS;AARS,WAAhC,CADK,CAeL;;AACA,cAAMi6C,OAAO,GAAGC,sBAAsB,CACpCR,SAAS,CAAC15C,aAD0B,EAEpC25C,SAAS,CAAC35C,aAF0B,CAAtC;AAIA0b,UAAAA,IAAI,CAACy+B,KAAL,GAAaF,OAAb;AACAv+B,UAAAA,IAAI,CAACk+B,cAAL,GAAsBK,OAAO,KAAK,IAAZ,IAAoBA,OAAO,CAAC/6C,MAAR,GAAiB,CAA3D;AAEA,iBAAOwc,IAAP;AACD;;AACH;AACE,eAAO,IAAP;AAvCJ;AAyCD;;AAED,WAAS0+B,sBAAT,CAAgC3L,KAAhC,EAA8C;AAC5C,YAAQmK,sBAAsB,CAACnK,KAAD,CAA9B;AACE,WAAKhX,sBAAL;AACA,WAAKG,2BAAL;AACA,WAAKD,yBAAL;AACA,WAAKG,qBAAL;AACE,YAAIuiB,eAAe,KAAK,IAAxB,EAA8B;AAC5B,cAAMt4C,EAAE,GAAGo3C,gBAAgB,CAAC1K,KAAD,CAA3B;AACA,cAAM6L,QAAQ,GAAGC,mBAAmB,CAAC9L,KAAD,CAApC;;AACA,cAAI6L,QAAQ,KAAK,IAAjB,EAAuB;AACrB;AACAD,YAAAA,eAAe,CAACj7C,GAAhB,CAAoB2C,EAApB,EAAwBu4C,QAAxB;AACD;AACF;;AACD;;AACF;AACE;AAfJ;AAiBD,GA7tBkB,CA+tBnB;;;AACA,MAAME,UAAU,GAAG,EAAnB;;AAEA,WAASD,mBAAT,CAA6B9L,KAA7B,EAAiE;AAC/D,QAAIgM,aAAa,GAAGD,UAApB;AACA,QAAIE,aAAa,GAAGF,UAApB;;AAEA,YAAQ5B,sBAAsB,CAACnK,KAAD,CAA9B;AACE,WAAKhX,sBAAL;AACE,YAAMkjB,QAAQ,GAAGlM,KAAK,CAAC3M,SAAvB;;AACA,YAAI6Y,QAAQ,IAAI,IAAhB,EAAsB;AACpB,cACEA,QAAQ,CAACxzC,WAAT,IACAwzC,QAAQ,CAACxzC,WAAT,CAAqByzC,WAArB,IAAoC,IAFtC,EAGE;AACAF,YAAAA,aAAa,GAAGC,QAAQ,CAAC/zC,OAAzB;AACD,WALD,MAKO;AACL6zC,YAAAA,aAAa,GAAGE,QAAQ,CAAC/zC,OAAzB;;AACA,gBAAI6zC,aAAa,IAAIl9C,MAAM,CAACkL,IAAP,CAAYgyC,aAAZ,EAA2Bv7C,MAA3B,KAAsC,CAA3D,EAA8D;AAC5Du7C,cAAAA,aAAa,GAAGD,UAAhB;AACD;AACF;AACF;;AACD,eAAO,CAACC,aAAD,EAAgBC,aAAhB,CAAP;;AACF,WAAK9iB,2BAAL;AACA,WAAKD,yBAAL;AACA,WAAKG,qBAAL;AACE,YAAM+iB,YAAY,GAAGpM,KAAK,CAACoM,YAA3B;;AACA,YAAIA,YAAY,IAAIA,YAAY,CAACC,YAAjC,EAA+C;AAC7CJ,UAAAA,aAAa,GAAGG,YAAY,CAACC,YAA7B;AACD;;AAED,eAAO,CAACL,aAAD,EAAgBC,aAAhB,CAAP;;AACF;AACE,eAAO,IAAP;AA3BJ;AA6BD,GAnwBkB,CAqwBnB;AACA;AACA;;;AACA,WAASK,4BAAT,CAAsCtM,KAAtC,EAAoD;AAClD,QAAM1sC,EAAE,GAAG+0C,gBAAgB,CAACrI,KAAD,CAA3B,CADkD,CAGlD;AACA;AACA;;AACA,QAAI1sC,EAAE,KAAK,IAAX,EAAiB;AACfq4C,MAAAA,sBAAsB,CAAC3L,KAAD,CAAtB;AAEA,UAAIxuC,OAAO,GAAGwuC,KAAK,CAACuM,KAApB;;AACA,aAAO/6C,OAAO,KAAK,IAAnB,EAAyB;AACvB86C,QAAAA,4BAA4B,CAAC96C,OAAD,CAA5B;AACAA,QAAAA,OAAO,GAAGA,OAAO,CAACg7C,OAAlB;AACD;AACF;AACF;;AAED,WAASlB,qBAAT,CAA+BtL,KAA/B,EAA6E;AAC3E,QAAI4L,eAAe,KAAK,IAAxB,EAA8B;AAC5B,UAAMt4C,EAAE,GAAGo3C,gBAAgB,CAAC1K,KAAD,CAA3B,CAD4B,CAE5B;;AACA,UAAMyM,YAAY,GAAGb,eAAe,CAAC52C,GAAhB,CAAoB1B,EAApB,IACjB;AACAs4C,MAAAA,eAAe,CAAC95C,GAAhB,CAAoBwB,EAApB,CAFiB,GAGjB,IAHJ;AAIA,UAAMo5C,YAAY,GAAGZ,mBAAmB,CAAC9L,KAAD,CAAxC;;AAEA,UAAIyM,YAAY,IAAI,IAAhB,IAAwBC,YAAY,IAAI,IAA5C,EAAkD;AAChD,eAAO,IAAP;AACD;;AAX2B,iDAamBD,YAbnB;AAAA,UAarBE,iBAbqB;AAAA,UAaFC,iBAbE;;AAAA,iDAcmBF,YAdnB;AAAA,UAcrBG,iBAdqB;AAAA,UAcFC,iBAdE;;AAgB5B,cAAQ3C,sBAAsB,CAACnK,KAAD,CAA9B;AACE,aAAKhX,sBAAL;AACE,cAAIyjB,YAAY,IAAIC,YAApB,EAAkC;AAChC,gBAAIG,iBAAiB,KAAKd,UAA1B,EAAsC;AACpC,qBAAOR,cAAc,CAACoB,iBAAD,EAAoBE,iBAApB,CAArB;AACD,aAFD,MAEO,IAAIC,iBAAiB,KAAKf,UAA1B,EAAsC;AAC3C,qBAAOa,iBAAiB,KAAKE,iBAA7B;AACD;AACF;;AACD;;AACF,aAAK3jB,2BAAL;AACA,aAAKD,yBAAL;AACA,aAAKG,qBAAL;AACE,cAAIyjB,iBAAiB,KAAKf,UAA1B,EAAsC;AACpC,gBAAIgB,WAAW,GAAGH,iBAAlB;AACA,gBAAII,WAAW,GAAGF,iBAAlB;;AAEA,mBAAOC,WAAW,IAAIC,WAAtB,EAAmC;AACjC;AACA;AACA;AACA;AACA,kBAAI,CAACpW,eAAE,CAACmW,WAAW,CAACE,aAAb,EAA4BD,WAAW,CAACC,aAAxC,CAAP,EAA+D;AAC7D,uBAAO,IAAP;AACD;;AAEDF,cAAAA,WAAW,GAAGA,WAAW,CAAC97C,IAA1B;AACA+7C,cAAAA,WAAW,GAAGA,WAAW,CAAC/7C,IAA1B;AACD;;AAED,mBAAO,KAAP;AACD;;AACD;;AACF;AACE;AAlCJ;AAoCD;;AACD,WAAO,IAAP;AACD;;AAED,WAASi8C,2BAAT,CAAqCC,UAArC,EAAsD;AACpD,QAAM7iC,KAAK,GAAG6iC,UAAU,CAAC7iC,KAAzB;;AACA,QAAI,CAACA,KAAL,EAAY;AACV,aAAO,KAAP;AACD;;AAED,QAAM8iC,mBAAmB,GAAGr7C,0BAAA,CAAoBuY,KAApB,CAA5B,CANoD,CAQpD;AACA;AACA;AACA;;AACA,QAAI8iC,mBAAmB,CAAC,SAAD,CAAvB,EAAoC;AAClC,aAAO,IAAP;AACD,KAdmD,CAgBpD;;;AACA,WACEA,mBAAmB,CAAC,OAAD,CAAnB,IACAA,mBAAmB,CAAC,aAAD,CADnB,IAEA,OAAO9iC,KAAK,CAAC+iC,WAAb,KAA6B,UAH/B;AAKD;;AAED,WAASC,qBAAT,CAA+BrlC,IAA/B,EAA0ChX,IAA1C,EAA8D;AAC5D,QAAMs8C,iBAAiB,GAAGtlC,IAAI,CAAC1W,aAA/B;AACA,QAAMi8C,iBAAiB,GAAGv8C,IAAI,CAACM,aAA/B;;AAEA,QAAI27C,2BAA2B,CAACjlC,IAAD,CAA/B,EAAuC;AACrC,aAAOslC,iBAAiB,KAAKC,iBAA7B;AACD;;AAED,WAAO,KAAP;AACD;;AAED,WAAS/B,sBAAT,CAAgCxjC,IAAhC,EAA2ChX,IAA3C,EAA4E;AAC1E,QAAIgX,IAAI,IAAI,IAAR,IAAgBhX,IAAI,IAAI,IAA5B,EAAkC;AAChC,aAAO,IAAP;AACD;;AAED,QAAMu6C,OAAO,GAAG,EAAhB;AACA,QAAIl1B,KAAK,GAAG,CAAZ;;AACA,QACErlB,IAAI,CAACc,cAAL,CAAoB,WAApB,KACAd,IAAI,CAACc,cAAL,CAAoB,eAApB,CADA,IAEAd,IAAI,CAACc,cAAL,CAAoB,MAApB,CAFA,IAGAd,IAAI,CAACc,cAAL,CAAoB,OAApB,CAJF,EAKE;AACA,aAAOd,IAAI,KAAK,IAAhB,EAAsB;AACpB,YAAIq8C,qBAAqB,CAACrlC,IAAD,EAAOhX,IAAP,CAAzB,EAAuC;AACrCu6C,UAAAA,OAAO,CAACn6C,IAAR,CAAailB,KAAb;AACD;;AACDrlB,QAAAA,IAAI,GAAGA,IAAI,CAACA,IAAZ;AACAgX,QAAAA,IAAI,GAAGA,IAAI,CAAChX,IAAZ;AACAqlB,QAAAA,KAAK;AACN;AACF;;AAED,WAAOk1B,OAAP;AACD;;AAED,WAASD,cAAT,CAAwBtjC,IAAxB,EAAmChX,IAAnC,EAAoE;AAClE,QAAIgX,IAAI,IAAI,IAAR,IAAgBhX,IAAI,IAAI,IAA5B,EAAkC;AAChC,aAAO,IAAP;AACD,KAHiE,CAKlE;;;AACA,QACEA,IAAI,CAACc,cAAL,CAAoB,WAApB,KACAd,IAAI,CAACc,cAAL,CAAoB,eAApB,CADA,IAEAd,IAAI,CAACc,cAAL,CAAoB,MAApB,CAFA,IAGAd,IAAI,CAACc,cAAL,CAAoB,OAApB,CAJF,EAKE;AACA,aAAO,IAAP;AACD;;AAED,QAAMiI,IAAI,GAAG,IAAIgoB,GAAJ,sCAAYlzB,MAAM,CAACkL,IAAP,CAAYiO,IAAZ,CAAZ,8BAAkCnZ,MAAM,CAACkL,IAAP,CAAY/I,IAAZ,CAAlC,GAAb;AACA,QAAMw8C,WAAW,GAAG,EAApB,CAhBkE,CAiBlE;;AAjBkE,gDAkBhDzzC,IAlBgD;AAAA;;AAAA;AAkBlE,6DAAwB;AAAA,YAAbjB,GAAa;;AACtB,YAAIkP,IAAI,CAAClP,GAAD,CAAJ,KAAc9H,IAAI,CAAC8H,GAAD,CAAtB,EAA6B;AAC3B00C,UAAAA,WAAW,CAACp8C,IAAZ,CAAiB0H,GAAjB;AACD;AACF;AAtBiE;AAAA;AAAA;AAAA;AAAA;;AAwBlE,WAAO00C,WAAP;AACD,GAx6BkB,CA06BnB;;;AACA,WAASC,cAAT,CAAwBzC,SAAxB,EAA0CC,SAA1C,EAAqE;AACnE,YAAQA,SAAS,CAACx2C,GAAlB;AACE,WAAK+nC,cAAL;AACA,WAAKH,iBAAL;AACA,WAAK3mC,eAAL;AACA,WAAKuvC,aAAL;AACA,WAAK1I,mBAAL;AACA,WAAK1mC,UAAL;AACE;AACA;AACA;AACA;AACA;AACA,YAAM63C,aAAa,GAAG,CAAtB;AACA,eAAO,CAACjK,aAAa,CAACwH,SAAD,CAAb,GAA2ByC,aAA5B,MAA+CA,aAAtD;AACF;AACA;;AACA;AACE;AACA;AACA,eACE1C,SAAS,CAACr2C,aAAV,KAA4Bs2C,SAAS,CAACt2C,aAAtC,IACAq2C,SAAS,CAAC15C,aAAV,KAA4B25C,SAAS,CAAC35C,aADtC,IAEA05C,SAAS,CAAC91C,GAAV,KAAkB+1C,SAAS,CAAC/1C,GAH9B;AAnBJ;AAyBD;;AASD,MAAMy4C,iBAAkC,GAAG,EAA3C;AACA,MAAMC,uBAAsC,GAAG,EAA/C;AACA,MAAMC,4BAA2C,GAAG,EAApD;AACA,MAAIC,sBAAqD,GAAG,EAA5D;AACA,MAAMC,kBAAiD,GAAG,IAAI1+C,GAAJ,EAA1D;AACA,MAAI2+C,wBAAgC,GAAG,CAAvC;AACA,MAAIC,sBAAqC,GAAG,IAA5C;;AAEA,WAAStE,aAAT,CAAuBuE,EAAvB,EAAyC;AACvC,QAAI1T,KAAJ,EAAa,EAOZ;;AACDmT,IAAAA,iBAAiB,CAACv8C,IAAlB,CAAuB88C,EAAvB;AACD;;AAED,WAASC,kCAAT,GAA8C;AAC5C,QAAInQ,WAAJ,EAAiB;AACf,UACEoQ,8BAA8B,IAAI,IAAlC,IACAA,8BAA8B,CAACC,SAA/B,CAAyC79C,MAAzC,GAAkD,CAFpD,EAGE;AACA,eAAO,KAAP;AACD;AACF;;AAED,WACEm9C,iBAAiB,CAACn9C,MAAlB,KAA6B,CAA7B,IACAo9C,uBAAuB,CAACp9C,MAAxB,KAAmC,CADnC,IAEAq9C,4BAA4B,CAACr9C,MAA7B,KAAwC,CAFxC,IAGAy9C,sBAAsB,KAAK,IAJ7B;AAMD;;AAED,WAASK,sBAAT,CAAgCriB,UAAhC,EAAmE;AACjE,QAAIkiB,kCAAkC,EAAtC,EAA0C;AACxC;AACD;;AAED,QAAIL,sBAAsB,KAAK,IAA/B,EAAqC;AACnCA,MAAAA,sBAAsB,CAAC18C,IAAvB,CAA4B66B,UAA5B;AACD,KAFD,MAEO;AACLia,MAAAA,IAAI,CAACt6B,IAAL,CAAU,YAAV,EAAwBqgB,UAAxB;AACD;AACF;;AAED,MAAIsiB,gDAAkE,GAAG,IAAzE;;AAEA,WAASC,uCAAT,GAAmD;AACjD,QAAID,gDAAgD,KAAK,IAAzD,EAA+D;AAC7DtpC,MAAAA,YAAY,CAACspC,gDAAD,CAAZ;AACAA,MAAAA,gDAAgD,GAAG,IAAnD;AACD;AACF;;AAED,WAAS9F,uCAAT,GAAmD;AACjD+F,IAAAA,uCAAuC;AAEvCD,IAAAA,gDAAgD,GAAG9pC,UAAU,CAAC,YAAM;AAClE8pC,MAAAA,gDAAgD,GAAG,IAAnD;;AAEA,UAAIZ,iBAAiB,CAACn9C,MAAlB,GAA2B,CAA/B,EAAkC;AAChC;AACA;AACA;AACD;;AAEDi+C,MAAAA,8BAA8B;;AAE9B,UAAIN,kCAAkC,EAAtC,EAA0C;AACxC;AACA;AACD,OAdiE,CAgBlE;AACA;AACA;;;AACA,UAAMliB,UAA2B,GAAG,IAAItzB,KAAJ,CAClC,IAAIg1C,iBAAiB,CAACn9C,MADY,CAApC;AAGAy7B,MAAAA,UAAU,CAAC,CAAD,CAAV,GAAgB9I,UAAhB;AACA8I,MAAAA,UAAU,CAAC,CAAD,CAAV,GAAgBwd,aAAhB;AACAxd,MAAAA,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAhB,CAxBkE,CAwB/C;;AACnB,WAAK,IAAI7c,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu+B,iBAAiB,CAACn9C,MAAtC,EAA8C4e,CAAC,EAA/C,EAAmD;AACjD6c,QAAAA,UAAU,CAAC,IAAI7c,CAAL,CAAV,GAAoBu+B,iBAAiB,CAACv+B,CAAD,CAArC;AACD;;AAEDk/B,MAAAA,sBAAsB,CAACriB,UAAD,CAAtB;AAEA0hB,MAAAA,iBAAiB,CAACn9C,MAAlB,GAA2B,CAA3B;AACD,KAhC4D,EAgC1D,IAhC0D,CAA7D;AAiCD;;AAED,WAASu5C,2BAAT,GAAuC;AACrC7C,IAAAA,qCAAqC,CAACz6B,KAAtC;AACA46B,IAAAA,kBAAkB,CAAChzC,OAAnB,CAA2B,UAACq6C,QAAD,EAAW/G,OAAX,EAAuB;AAChD,UAAM5H,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0B81C,OAA1B,CAAd;;AACA,UAAI5H,KAAK,IAAI,IAAb,EAAmB;AACjBmH,QAAAA,qCAAqC,CAACjyB,GAAtC,CAA0C8qB,KAA1C;AACD;AACF,KALD;AAMAuH,IAAAA,oBAAoB,CAACjzC,OAArB,CAA6B,UAACq6C,QAAD,EAAW/G,OAAX,EAAuB;AAClD,UAAM5H,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0B81C,OAA1B,CAAd;;AACA,UAAI5H,KAAK,IAAI,IAAb,EAAmB;AACjBmH,QAAAA,qCAAqC,CAACjyB,GAAtC,CAA0C8qB,KAA1C;AACD;AACF,KALD;AAMA0O,IAAAA,8BAA8B;AAC/B;;AAED,WAASE,0BAAT,CACE5O,KADF,EAEE4H,OAFF,EAGEC,6BAHF,EAIEC,wBAJF,EAKU;AACR,QAAI+G,QAAQ,GAAG,CAAf;AAEA,QAAIC,eAAe,GAAGhH,wBAAwB,CAACh2C,GAAzB,CAA6B81C,OAA7B,CAAtB;AAEA,QAAMmH,sBAAsB,GAAGlH,6BAA6B,CAAC/1C,GAA9B,CAAkCkuC,KAAlC,CAA/B;;AACA,QAAI+O,sBAAsB,IAAI,IAA9B,EAAoC;AAClC,UAAID,eAAe,IAAI,IAAvB,EAA6B;AAC3BA,QAAAA,eAAe,GAAGC,sBAAlB;AAEAjH,QAAAA,wBAAwB,CAACn3C,GAAzB,CAA6Bi3C,OAA7B,EAAsCmH,sBAAtC;AACD,OAJD,MAIO;AACL;AACA,YAAMC,sBAAsB,GAAKF,eAAjC;AAKAC,QAAAA,sBAAsB,CAACz6C,OAAvB,CAA+B,UAAC26C,YAAD,EAAeluC,OAAf,EAA2B;AACxD,cAAMmuC,aAAa,GAAGF,sBAAsB,CAACl9C,GAAvB,CAA2BiP,OAA3B,KAAuC,CAA7D;AACAiuC,UAAAA,sBAAsB,CAACr+C,GAAvB,CAA2BoQ,OAA3B,EAAoCmuC,aAAa,GAAGD,YAApD;AACD,SAHD;AAID;AACF;;AAED,QAAI,CAAChF,iBAAiB,CAACjK,KAAD,CAAtB,EAA+B;AAC7B,UAAI8O,eAAe,IAAI,IAAvB,EAA6B;AAC3BA,QAAAA,eAAe,CAACx6C,OAAhB,CAAwB,UAAAqH,KAAK,EAAI;AAC/BkzC,UAAAA,QAAQ,IAAIlzC,KAAZ;AACD,SAFD;AAGD;AACF;;AAEDksC,IAAAA,6BAA6B,CAACj+B,MAA9B,CAAqCo2B,KAArC;AAEA,WAAO6O,QAAP;AACD;;AAED,WAASH,8BAAT,GAA0C;AACxCD,IAAAA,uCAAuC;AAEvCtH,IAAAA,qCAAqC,CAAC7yC,OAAtC,CAA8C,UAAA0rC,KAAK,EAAI;AACrD,UAAM4H,OAAO,GAAGS,gBAAgB,CAACrI,KAAD,CAAhC;;AACA,UAAI4H,OAAO,KAAK,IAAhB,EAAsB,CACpB;AACD,OAFD,MAEO;AACL,YAAMuH,UAAU,GAAGP,0BAA0B,CAC3C5O,KAD2C,EAE3C4H,OAF2C,EAG3CR,uBAH2C,EAI3CE,kBAJ2C,CAA7C;AAMA,YAAM8H,YAAY,GAAGR,0BAA0B,CAC7C5O,KAD6C,EAE7C4H,OAF6C,EAG7CP,yBAH6C,EAI7CE,oBAJ6C,CAA/C;AAOAqC,QAAAA,aAAa,CAACzyB,wCAAD,CAAb;AACAyyB,QAAAA,aAAa,CAAChC,OAAD,CAAb;AACAgC,QAAAA,aAAa,CAACuF,UAAD,CAAb;AACAvF,QAAAA,aAAa,CAACwF,YAAD,CAAb;AACD,OAtBoD,CAwBrD;;;AACAhI,MAAAA,uBAAuB,CAACx9B,MAAxB,CAA+Bo2B,KAA/B;AACAqH,MAAAA,yBAAyB,CAACz9B,MAA1B,CAAiCo2B,KAAjC;AACD,KA3BD;AA4BAmH,IAAAA,qCAAqC,CAACz6B,KAAtC;AACD;;AAED,WAASg7B,kBAAT,CAA4BjpC,IAA5B,EAAgD;AAC9C;AACA;AACAiwC,IAAAA,8BAA8B;;AAE9B,QAAIN,kCAAkC,EAAtC,EAA0C;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAED,QAAMiB,aAAa,GACjBxB,uBAAuB,CAACp9C,MAAxB,GACAq9C,4BAA4B,CAACr9C,MAD7B,IAECy9C,sBAAsB,KAAK,IAA3B,GAAkC,CAAlC,GAAsC,CAFvC,CADF;AAKA,QAAMhiB,UAAU,GAAG,IAAItzB,KAAJ,EACjB;AACA,QAAI;AACF;AACA,KAFF,GAEM;AACJ;AACAq1C,IAAAA,wBAJF,KAKE;AACA;AACCoB,IAAAA,aAAa,GAAG,CAAhB,GAAoB,IAAIA,aAAxB,GAAwC,CAP3C,IAQE;AACAzB,IAAAA,iBAAiB,CAACn9C,MAXH,CAAnB,CAtB8C,CAoC9C;AACA;AACA;;AACA,QAAI8Q,CAAC,GAAG,CAAR;AACA2qB,IAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB6hB,UAAlB;AACA8I,IAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkBmoC,aAAlB,CAzC8C,CA2C9C;AACA;;AACAxd,IAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB0sC,wBAAlB;AACAD,IAAAA,kBAAkB,CAAC15C,OAAnB,CAA2B,UAAC6iC,KAAD,EAAQmY,SAAR,EAAsB;AAC/C,UAAMC,aAAa,GAAGpY,KAAK,CAACoY,aAA5B,CAD+C,CAG/C;AACA;;AACA,UAAM9+C,MAAM,GAAG8+C,aAAa,CAAC9+C,MAA7B;AAEAy7B,MAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB9Q,MAAlB;;AACA,WAAK,IAAI4e,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG5e,MAApB,EAA4B4e,CAAC,EAA7B,EAAiC;AAC/B6c,QAAAA,UAAU,CAAC3qB,CAAC,GAAG8N,CAAL,CAAV,GAAoBkgC,aAAa,CAAClgC,CAAD,CAAjC;AACD;;AAED9N,MAAAA,CAAC,IAAI9Q,MAAL;AACD,KAbD;;AAeA,QAAI4+C,aAAa,GAAG,CAApB,EAAuB;AACrB;AACAnjB,MAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkByV,qBAAlB,CAFqB,CAGrB;;AACAkV,MAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB8tC,aAAlB,CAJqB,CAKrB;AACA;AACA;;AACA,WAAK,IAAIhgC,CAAC,GAAGw+B,uBAAuB,CAACp9C,MAAxB,GAAiC,CAA9C,EAAiD4e,CAAC,IAAI,CAAtD,EAAyDA,CAAC,EAA1D,EAA8D;AAC5D6c,QAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkBssC,uBAAuB,CAACx+B,CAAD,CAAzC;AACD,OAVoB,CAWrB;AACA;AACA;AACA;AACA;;;AACA,WAAK,IAAIA,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGy+B,4BAA4B,CAACr9C,MAAjD,EAAyD4e,EAAC,EAA1D,EAA8D;AAC5D6c,QAAAA,UAAU,CAAC3qB,CAAC,GAAG8N,EAAL,CAAV,GAAoBy+B,4BAA4B,CAACz+B,EAAD,CAAhD;AACD;;AACD9N,MAAAA,CAAC,IAAIusC,4BAA4B,CAACr9C,MAAlC,CAnBqB,CAoBrB;;AACA,UAAIy9C,sBAAsB,KAAK,IAA/B,EAAqC;AACnChiB,QAAAA,UAAU,CAAC3qB,CAAD,CAAV,GAAgB2sC,sBAAhB;AACA3sC,QAAAA,CAAC;AACF;AACF,KAtF6C,CAuF9C;;;AACA,SAAK,IAAI8N,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGu+B,iBAAiB,CAACn9C,MAAtC,EAA8C4e,GAAC,EAA/C,EAAmD;AACjD6c,MAAAA,UAAU,CAAC3qB,CAAC,GAAG8N,GAAL,CAAV,GAAoBu+B,iBAAiB,CAACv+B,GAAD,CAArC;AACD;;AACD9N,IAAAA,CAAC,IAAIqsC,iBAAiB,CAACn9C,MAAvB,CA3F8C,CA6F9C;;AACA89C,IAAAA,sBAAsB,CAACriB,UAAD,CAAtB,CA9F8C,CAgG9C;;AACA0hB,IAAAA,iBAAiB,CAACn9C,MAAlB,GAA2B,CAA3B;AACAo9C,IAAAA,uBAAuB,CAACp9C,MAAxB,GAAiC,CAAjC;AACAq9C,IAAAA,4BAA4B,CAACr9C,MAA7B,GAAsC,CAAtC;AACAy9C,IAAAA,sBAAsB,GAAG,IAAzB;AACAF,IAAAA,kBAAkB,CAACthC,KAAnB;AACAuhC,IAAAA,wBAAwB,GAAG,CAA3B;AACD;;AAED,WAASuB,WAAT,CAAqBlkB,MAArB,EAAoD;AAClD,QAAIA,MAAM,KAAK,IAAf,EAAqB;AACnB,aAAO,CAAP;AACD;;AACD,QAAMmkB,aAAa,GAAGzB,kBAAkB,CAACl8C,GAAnB,CAAuBw5B,MAAvB,CAAtB;;AACA,QAAImkB,aAAa,KAAKxvC,SAAtB,EAAiC;AAC/B,aAAOwvC,aAAa,CAACn8C,EAArB;AACD;;AAED,QAAMA,EAAE,GAAG06C,kBAAkB,CAAChhC,IAAnB,GAA0B,CAArC;AACA,QAAMuiC,aAAa,GAAG3jB,eAAe,CAACN,MAAD,CAArC;AAEA0iB,IAAAA,kBAAkB,CAACr9C,GAAnB,CAAuB26B,MAAvB,EAA+B;AAC7BikB,MAAAA,aAAa,EAAbA,aAD6B;AAE7Bj8C,MAAAA,EAAE,EAAFA;AAF6B,KAA/B,EAZkD,CAiBlD;AACA;AACA;AACA;AACA;;AACA26C,IAAAA,wBAAwB,IAAIsB,aAAa,CAAC9+C,MAAd,GAAuB,CAAnD;AAEA,WAAO6C,EAAP;AACD;;AAED,WAASo8C,WAAT,CAAqB1P,KAArB,EAAmC2I,WAAnC,EAA8D;AAC5D,QAAMgH,MAAM,GAAG3P,KAAK,CAACtrC,GAAN,KAAckwC,QAA7B;AACA,QAAMtxC,EAAE,GAAGq2C,oBAAoB,CAAC3J,KAAD,CAA/B;;AAEA,QAAInpB,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CAAC,eAAD,EAAkBvI,KAAlB,EAAyB2I,WAAzB,CAAL;AACD;;AAED,QAAMiH,gBAAgB,GAAG5P,KAAK,CAACjuC,cAAN,CAAqB,aAArB,CAAzB;AACA,QAAM89C,oBAAoB,GAAG7P,KAAK,CAACjuC,cAAN,CAAqB,kBAArB,CAA7B,CAT4D,CAW5D;AACA;;AACA,QAAI+9C,cAAc,GAAG,CAArB;;AACA,QAAID,oBAAJ,EAA0B;AACxBC,MAAAA,cAAc,GAAGx4B,4BAAjB;;AACA,UAAI,OAAO+uB,oBAAP,KAAgC,UAApC,EAAgD;AAC9CyJ,QAAAA,cAAc,IAAIv4B,+BAAlB;AACD;AACF;;AAED,QAAIo4B,MAAJ,EAAY;AACV/F,MAAAA,aAAa,CAAC7yB,kBAAD,CAAb;AACA6yB,MAAAA,aAAa,CAACt2C,EAAD,CAAb;AACAs2C,MAAAA,aAAa,CAACpgB,eAAD,CAAb;AACAogB,MAAAA,aAAa,CAAC,CAAC5J,KAAK,CAACjT,IAAN,GAAasX,cAAd,MAAkC,CAAlC,GAAsC,CAAtC,GAA0C,CAA3C,CAAb;AACAuF,MAAAA,aAAa,CAACkG,cAAD,CAAb;AACAlG,MAAAA,aAAa,CAACvF,cAAc,KAAK,CAAnB,GAAuB,CAAvB,GAA2B,CAA5B,CAAb;AACAuF,MAAAA,aAAa,CAACgG,gBAAgB,GAAG,CAAH,GAAO,CAAxB,CAAb;;AAEA,UAAI3R,WAAJ,EAAiB;AACf,YAAI8R,oBAAoB,KAAK,IAA7B,EAAmC;AACjCA,UAAAA,oBAAoB,CAACp/C,GAArB,CAAyB2C,EAAzB,EAA6B08C,qBAAqB,CAAChQ,KAAD,CAAlD;AACD;AACF;AACF,KAdD,MAcO;AAAA,UACEjnC,GADF,GACSinC,KADT,CACEjnC,GADF;AAEL,UAAMmqB,WAAW,GAAGsa,sBAAsB,CAACwC,KAAD,CAA1C;AACA,UAAMnrC,WAAW,GAAGs1C,sBAAsB,CAACnK,KAAD,CAA1C;AAHK,UAIErD,WAJF,GAIiBqD,KAJjB,CAIErD,WAJF,EAML;AACA;AACA;AACA;AACA;;AACA,UAAMsT,OAAO,GACXtT,WAAW,IAAI,IAAf,GAAsBgN,oBAAoB,CAAChN,WAAD,CAA1C,GAA0D,CAD5D;AAEA,UAAMhQ,QAAQ,GAAGgc,WAAW,GAAG+B,gBAAgB,CAAC/B,WAAD,CAAnB,GAAmC,CAA/D;AAEA,UAAM/b,mBAAmB,GAAG4iB,WAAW,CAACtsB,WAAD,CAAvC,CAfK,CAiBL;AACA;;AACA,UAAMgtB,SAAS,GAAGn3C,GAAG,KAAK,IAAR,GAAe,IAAf,GAAsBgB,MAAM,CAAChB,GAAD,CAA9C;AACA,UAAMo3C,WAAW,GAAGX,WAAW,CAACU,SAAD,CAA/B;AAEAtG,MAAAA,aAAa,CAAC7yB,kBAAD,CAAb;AACA6yB,MAAAA,aAAa,CAACt2C,EAAD,CAAb;AACAs2C,MAAAA,aAAa,CAAC/0C,WAAD,CAAb;AACA+0C,MAAAA,aAAa,CAACjd,QAAD,CAAb;AACAid,MAAAA,aAAa,CAACqG,OAAD,CAAb;AACArG,MAAAA,aAAa,CAAChd,mBAAD,CAAb;AACAgd,MAAAA,aAAa,CAACuG,WAAD,CAAb,CA5BK,CA8BL;;AACA,UACE,CAACnQ,KAAK,CAACjT,IAAN,GAAasX,cAAd,MAAkC,CAAlC,IACA,CAAGsE,WAAF,CAA4B5b,IAA5B,GAAmCsX,cAApC,MAAwD,CAF1D,EAGE;AACAuF,QAAAA,aAAa,CAACvyB,+BAAD,CAAb;AACAuyB,QAAAA,aAAa,CAACt2C,EAAD,CAAb;AACAs2C,QAAAA,aAAa,CAACxzC,UAAD,CAAb;AACD;AACF;;AAED,QAAIy5C,oBAAJ,EAA0B;AACxBtF,MAAAA,WAAW,CAAC55C,GAAZ,CAAgB2C,EAAhB,EAAoBo2C,aAApB;AAEA0G,MAAAA,wBAAwB,CAACpQ,KAAD,CAAxB;AACD;AACF;;AAED,WAASqQ,aAAT,CAAuBrQ,KAAvB,EAAqCsQ,WAArC,EAA2D;AACzD,QAAIz5B,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CACH,iBADG,EAEHvI,KAFG,EAGH,IAHG,EAIHsQ,WAAW,GAAG,sBAAH,GAA4B,EAJpC,CAAL;AAMD;;AAED,QAAIC,qBAAqB,KAAK,IAA9B,EAAoC;AAClC;AACA;AACA;AACA,UACEvQ,KAAK,KAAKuQ,qBAAV,IACAvQ,KAAK,KAAKuQ,qBAAqB,CAACxP,SAFlC,EAGE;AACAyP,QAAAA,cAAc,CAAC,IAAD,CAAd;AACD;AACF;;AAED,QAAMC,QAAQ,GAAGpI,gBAAgB,CAACrI,KAAD,CAAjC;;AACA,QAAIyQ,QAAQ,KAAK,IAAjB,EAAuB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD,KAhCwD,CAkCzD;;;AACA,QAAMn9C,EAAE,GAAKm9C,QAAb;AACA,QAAMd,MAAM,GAAG3P,KAAK,CAACtrC,GAAN,KAAckwC,QAA7B;;AACA,QAAI+K,MAAJ,EAAY;AACV;AACA;AACAzB,MAAAA,sBAAsB,GAAG56C,EAAzB;AACD,KAJD,MAIO,IAAI,CAAC22C,iBAAiB,CAACjK,KAAD,CAAtB,EAA+B;AACpC;AACA;AACA;AACA,UAAIsQ,WAAJ,EAAiB;AACfxC,QAAAA,4BAA4B,CAACz8C,IAA7B,CAAkCiC,EAAlC;AACD,OAFD,MAEO;AACLu6C,QAAAA,uBAAuB,CAACx8C,IAAxB,CAA6BiC,EAA7B;AACD;AACF;;AAED,QAAI,CAAC0sC,KAAK,CAAC0Q,kBAAX,EAA+B;AAC7B/F,MAAAA,cAAc,CAAC3K,KAAD,CAAd;AAEA,UAAM6P,oBAAoB,GAAG7P,KAAK,CAACjuC,cAAN,CAAqB,kBAArB,CAA7B;;AACA,UAAI89C,oBAAJ,EAA0B;AACxBtF,QAAAA,WAAW,CAAC3gC,MAAZ,CAAmBtW,EAAnB;AACAg3C,QAAAA,uBAAuB,CAAC1gC,MAAxB,CAA+BtW,EAA/B;AACD;AACF;AACF;;AAED,WAASy2C,qBAAT,CACE/jB,UADF,EAEE2iB,WAFF,EAGEgI,gBAHF,EAIEC,+BAJF,EAKE;AACA;AACA;AACA,QAAI5Q,KAAmB,GAAGha,UAA1B;;AACA,WAAOga,KAAK,KAAK,IAAjB,EAAuB;AACrB;AACA2J,MAAAA,oBAAoB,CAAC3J,KAAD,CAApB;;AAEA,UAAInpB,SAAJ,EAAe;AACb0xB,QAAAA,KAAK,CAAC,yBAAD,EAA4BvI,KAA5B,EAAmC2I,WAAnC,CAAL;AACD,OANoB,CAQrB;AACA;;;AACA,UAAMkI,4BAA4B,GAChCC,iCAAiC,CAAC9Q,KAAD,CADnC;AAGA,UAAM+Q,mBAAmB,GAAG,CAAC9G,iBAAiB,CAACjK,KAAD,CAA9C;;AACA,UAAI+Q,mBAAJ,EAAyB;AACvBrB,QAAAA,WAAW,CAAC1P,KAAD,EAAQ2I,WAAR,CAAX;AACD;;AAED,UAAIO,mBAAJ,EAAyB;AACvB,YAAI0H,+BAAJ,EAAqC;AACnC,cAAM/7C,WAAW,GAAGs1C,sBAAsB,CAACnK,KAAD,CAA1C,CADmC,CAEnC;;AACA,cAAInrC,WAAW,KAAKu0B,wBAApB,EAA8C;AAC5C+f,YAAAA,oBAAoB,CAACj0B,GAArB,CAAyB8qB,KAAK,CAAC3M,SAA/B;AACAud,YAAAA,+BAA+B,GAAG,KAAlC;AACD;AACF,SARsB,CAUvB;AACA;;AACD;;AAED,UAAMz5C,UAAU,GAAG6oC,KAAK,CAACtrC,GAAN,KAAc4vC,eAAe,CAAClI,iBAAjD;;AACA,UAAIjlC,UAAJ,EAAgB;AACd,YAAM65C,UAAU,GAAGhR,KAAK,CAACzuC,aAAN,KAAwB,IAA3C;;AACA,YAAIy/C,UAAJ,EAAgB;AACd;AACA;AACA;AACA,cAAMC,oBAAoB,GAAGjR,KAAK,CAACuM,KAAnC;AACA,cAAM2E,qBAAqB,GAAGD,oBAAoB,GAC9CA,oBAAoB,CAACzE,OADyB,GAE9C,IAFJ;AAGA,cAAM2E,aAAa,GAAGD,qBAAqB,GACvCA,qBAAqB,CAAC3E,KADiB,GAEvC,IAFJ;;AAGA,cAAI4E,aAAa,KAAK,IAAtB,EAA4B;AAC1BpH,YAAAA,qBAAqB,CACnBoH,aADmB,EAEnBJ,mBAAmB,GAAG/Q,KAAH,GAAW2I,WAFX,EAGnB,IAHmB,EAInBiI,+BAJmB,CAArB;AAMD;AACF,SAnBD,MAmBO;AACL,cAAIQ,YAA0B,GAAG,IAAjC;AACA,cAAMC,uCAAuC,GAC3CjM,kBAAkB,KAAK,CAAC,CAD1B;;AAEA,cAAIiM,uCAAJ,EAA6C;AAC3CD,YAAAA,YAAY,GAAGpR,KAAK,CAACuM,KAArB;AACD,WAFD,MAEO,IAAIvM,KAAK,CAACuM,KAAN,KAAgB,IAApB,EAA0B;AAC/B6E,YAAAA,YAAY,GAAGpR,KAAK,CAACuM,KAAN,CAAYA,KAA3B;AACD;;AACD,cAAI6E,YAAY,KAAK,IAArB,EAA2B;AACzBrH,YAAAA,qBAAqB,CACnBqH,YADmB,EAEnBL,mBAAmB,GAAG/Q,KAAH,GAAW2I,WAFX,EAGnB,IAHmB,EAInBiI,+BAJmB,CAArB;AAMD;AACF;AACF,OAvCD,MAuCO;AACL,YAAI5Q,KAAK,CAACuM,KAAN,KAAgB,IAApB,EAA0B;AACxBxC,UAAAA,qBAAqB,CACnB/J,KAAK,CAACuM,KADa,EAEnBwE,mBAAmB,GAAG/Q,KAAH,GAAW2I,WAFX,EAGnB,IAHmB,EAInBiI,+BAJmB,CAArB;AAMD;AACF,OAjFoB,CAmFrB;AACA;;;AACAU,MAAAA,gCAAgC,CAACT,4BAAD,CAAhC;AAEA7Q,MAAAA,KAAK,GAAG2Q,gBAAgB,GAAG3Q,KAAK,CAACwM,OAAT,GAAmB,IAA3C;AACD;AACF,GArgDkB,CAugDnB;AACA;;;AACA,WAAS+E,+BAAT,CAAyCvR,KAAzC,EAAuD;AACrD,QAAInpB,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CAAC,mCAAD,EAAsCvI,KAAtC,CAAL;AACD,KAHoD,CAKrD;;;AACA,QAAMwR,kBAAkB,GACtBxR,KAAK,CAACtrC,GAAN,KAAc4vC,eAAe,CAAClI,iBAA9B,IACA4D,KAAK,CAACzuC,aAAN,KAAwB,IAF1B;AAIA,QAAIg7C,KAAK,GAAGvM,KAAK,CAACuM,KAAlB;;AACA,QAAIiF,kBAAJ,EAAwB;AACtB;AACA,UAAMP,oBAAoB,GAAGjR,KAAK,CAACuM,KAAnC;AACA,UAAM2E,qBAAqB,GAAGD,oBAAoB,GAC9CA,oBAAoB,CAACzE,OADyB,GAE9C,IAFJ,CAHsB,CAMtB;;AACAD,MAAAA,KAAK,GAAG2E,qBAAqB,GAAGA,qBAAqB,CAAC3E,KAAzB,GAAiC,IAA9D;AACD;;AAED,WAAOA,KAAK,KAAK,IAAjB,EAAuB;AACrB;AACA;AACA,UAAIA,KAAK,CAACt3C,MAAN,KAAiB,IAArB,EAA2B;AACzBs8C,QAAAA,+BAA+B,CAAChF,KAAD,CAA/B;AACA8D,QAAAA,aAAa,CAAC9D,KAAD,EAAQ,IAAR,CAAb;AACD;;AACDA,MAAAA,KAAK,GAAGA,KAAK,CAACC,OAAd;AACD;AACF;;AAED,WAAS4D,wBAAT,CAAkCpQ,KAAlC,EAAgD;AAC9C,QAAM1sC,EAAE,GAAGo3C,gBAAgB,CAAC1K,KAAD,CAA3B;AAD8C,QAEvCyR,cAFuC,GAEHzR,KAFG,CAEvCyR,cAFuC;AAAA,QAEvBC,gBAFuB,GAEH1R,KAFG,CAEvB0R,gBAFuB;AAI9CpH,IAAAA,uBAAuB,CAAC35C,GAAxB,CAA4B2C,EAA5B,EAAgCo+C,gBAAgB,IAAI,CAApD;;AAEA,QAAIzT,WAAJ,EAAiB;AAAA,UACR8C,SADQ,GACKf,KADL,CACRe,SADQ,EAGf;AACA;;AACA,UACEA,SAAS,IAAI,IAAb,IACA2Q,gBAAgB,KAAK3Q,SAAS,CAAC2Q,gBAFjC,EAGE;AACA;AACA;AACA,YAAMC,yBAAyB,GAAG3uC,IAAI,CAAC4uC,KAAL,CAChC,CAACF,gBAAgB,IAAI,CAArB,IAA0B,IADM,CAAlC;AAGA9H,QAAAA,aAAa,CAAC1yB,wCAAD,CAAb;AACA0yB,QAAAA,aAAa,CAACt2C,EAAD,CAAb;AACAs2C,QAAAA,aAAa,CAAC+H,yBAAD,CAAb;AACD;;AAED,UAAI5Q,SAAS,IAAI,IAAb,IAAqB2M,cAAc,CAAC3M,SAAD,EAAYf,KAAZ,CAAvC,EAA2D;AACzD,YAAIyR,cAAc,IAAI,IAAtB,EAA4B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAII,YAAY,GAAGJ,cAAnB;AACA,cAAIlF,KAAK,GAAGvM,KAAK,CAACuM,KAAlB;;AACA,iBAAOA,KAAK,KAAK,IAAjB,EAAuB;AACrBsF,YAAAA,YAAY,IAAItF,KAAK,CAACkF,cAAN,IAAwB,CAAxC;AACAlF,YAAAA,KAAK,GAAGA,KAAK,CAACC,OAAd;AACD,WAZyB,CAc1B;AACA;AACA;AACA;;;AACA,cAAMsF,QAAQ,GACVzD,8BADJ;AAEAyD,UAAAA,QAAQ,CAACxD,SAAT,CAAmBj9C,IAAnB,CAAwBiC,EAAxB,EAA4Bm+C,cAA5B,EAA4CI,YAA5C;AACAC,UAAAA,QAAQ,CAACC,iBAAT,GAA6B/uC,IAAI,CAACC,GAAL,CAC3B6uC,QAAQ,CAACC,iBADkB,EAE3BN,cAF2B,CAA7B;;AAKA,cAAIO,wBAAJ,EAA8B;AAC5B,gBAAMC,iBAAiB,GAAGjH,oBAAoB,CAACjK,SAAD,EAAYf,KAAZ,CAA9C;;AACA,gBAAIiS,iBAAiB,KAAK,IAA1B,EAAgC;AAC9B,kBAAIH,QAAQ,CAACI,kBAAT,KAAgC,IAApC,EAA0C;AACxCJ,gBAAAA,QAAQ,CAACI,kBAAT,CAA4BvhD,GAA5B,CAAgC2C,EAAhC,EAAoC2+C,iBAApC;AACD;AACF;;AAEDtG,YAAAA,sBAAsB,CAAC3L,KAAD,CAAtB;AACD;AACF;AACF;AACF;AACF;;AAED,WAASmS,mBAAT,CAA6BnS,KAA7B,EAA2CoS,QAA3C,EAA4D;AAC1D,QAAIv7B,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CAAC,uBAAD,EAA0B6J,QAA1B,EAAoCpS,KAApC,CAAL;AACD,KAHyD,CAI1D;AACA;AACA;;;AACA,QAAMqS,YAA2B,GAAG,EAApC,CAP0D,CAS1D;AACA;;AACA,QAAI9F,KAAmB,GAAG6F,QAA1B;;AACA,WAAO7F,KAAK,KAAK,IAAjB,EAAuB;AACrB+F,MAAAA,gCAAgC,CAAC/F,KAAD,EAAQ8F,YAAR,CAAhC;AACA9F,MAAAA,KAAK,GAAGA,KAAK,CAACC,OAAd;AACD;;AAED,QAAMxf,WAAW,GAAGqlB,YAAY,CAAC5hD,MAAjC;;AACA,QAAIu8B,WAAW,GAAG,CAAlB,EAAqB;AACnB;AACA;AACD;;AACD4c,IAAAA,aAAa,CAAC3yB,+BAAD,CAAb;AACA2yB,IAAAA,aAAa,CAACc,gBAAgB,CAAC1K,KAAD,CAAjB,CAAb;AACA4J,IAAAA,aAAa,CAAC5c,WAAD,CAAb;;AACA,SAAK,IAAIzrB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8wC,YAAY,CAAC5hD,MAAjC,EAAyC8Q,CAAC,EAA1C,EAA8C;AAC5CqoC,MAAAA,aAAa,CAACyI,YAAY,CAAC9wC,CAAD,CAAb,CAAb;AACD;AACF;;AAED,WAAS+wC,gCAAT,CACEtS,KADF,EAEEqS,YAFF,EAGE;AACA,QAAI,CAACpI,iBAAiB,CAACjK,KAAD,CAAtB,EAA+B;AAC7BqS,MAAAA,YAAY,CAAChhD,IAAb,CAAkBq5C,gBAAgB,CAAC1K,KAAD,CAAlC;AACD,KAFD,MAEO;AACL,UAAIuM,KAAK,GAAGvM,KAAK,CAACuM,KAAlB;AACA,UAAMiF,kBAAkB,GACtBxR,KAAK,CAACtrC,GAAN,KAAc0nC,iBAAd,IAAmC4D,KAAK,CAACzuC,aAAN,KAAwB,IAD7D;;AAEA,UAAIigD,kBAAJ,EAAwB;AACtB;AACA;AACA;AACA,YAAMP,oBAAoB,GAAGjR,KAAK,CAACuM,KAAnC;AACA,YAAM2E,qBAAqB,GAAGD,oBAAoB,GAC9CA,oBAAoB,CAACzE,OADyB,GAE9C,IAFJ;AAGA,YAAM2E,aAAa,GAAGD,qBAAqB,GACvCA,qBAAqB,CAAC3E,KADiB,GAEvC,IAFJ;;AAGA,YAAI4E,aAAa,KAAK,IAAtB,EAA4B;AAC1B5E,UAAAA,KAAK,GAAG4E,aAAR;AACD;AACF;;AACD,aAAO5E,KAAK,KAAK,IAAjB,EAAuB;AACrB+F,QAAAA,gCAAgC,CAAC/F,KAAD,EAAQ8F,YAAR,CAAhC;AACA9F,QAAAA,KAAK,GAAGA,KAAK,CAACC,OAAd;AACD;AACF;AACF,GAxqDkB,CA0qDnB;;;AACA,WAAS+F,sBAAT,CACErH,SADF,EAEED,SAFF,EAGEtC,WAHF,EAIEiI,+BAJF,EAKW;AACT,QAAMt9C,EAAE,GAAGq2C,oBAAoB,CAACuB,SAAD,CAA/B;;AAEA,QAAIr0B,SAAJ,EAAe;AACb0xB,MAAAA,KAAK,CAAC,0BAAD,EAA6B2C,SAA7B,EAAwCvC,WAAxC,CAAL;AACD;;AAED,QAAIO,mBAAJ,EAAyB;AACvB,UAAMr0C,WAAW,GAAGs1C,sBAAsB,CAACe,SAAD,CAA1C;;AACA,UAAI0F,+BAAJ,EAAqC;AACnC;AACA,YAAI/7C,WAAW,KAAKu0B,wBAApB,EAA8C;AAC5C+f,UAAAA,oBAAoB,CAACj0B,GAArB,CAAyBg2B,SAAS,CAAC7X,SAAnC;AACAud,UAAAA,+BAA+B,GAAG,KAAlC;AACD;AACF,OAND,MAMO;AACL,YACE/7C,WAAW,KAAKq0B,yBAAhB,IACAr0B,WAAW,KAAKm0B,sBADhB,IAEAn0B,WAAW,KAAKo0B,kBAFhB,IAGAp0B,WAAW,KAAKw0B,qBAHhB,IAIAx0B,WAAW,KAAKs0B,2BALlB,EAME;AACA;AACAynB,UAAAA,+BAA+B,GAAGlD,cAAc,CAC9CzC,SAD8C,EAE9CC,SAF8C,CAAhD;AAID;AACF;AACF;;AAED,QACEjD,4BAA4B,KAAK,IAAjC,IACAA,4BAA4B,CAAC30C,EAA7B,KAAoCA,EADpC,IAEAo6C,cAAc,CAACzC,SAAD,EAAYC,SAAZ,CAHhB,EAIE;AACA;AACA;AACAhD,MAAAA,mCAAmC,GAAG,IAAtC;AACD;;AAED,QAAM6I,mBAAmB,GAAG,CAAC9G,iBAAiB,CAACiB,SAAD,CAA9C;AACA,QAAM/zC,UAAU,GAAG+zC,SAAS,CAACx2C,GAAV,KAAkB0nC,iBAArC;AACA,QAAIoW,mBAAmB,GAAG,KAA1B,CA5CS,CA6CT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAMC,cAAc,GAAGt7C,UAAU,IAAI8zC,SAAS,CAAC15C,aAAV,KAA4B,IAAjE;AACA,QAAMmhD,cAAc,GAAGv7C,UAAU,IAAI+zC,SAAS,CAAC35C,aAAV,KAA4B,IAAjE,CAtDS,CAuDT;AACA;;AACA,QAAIkhD,cAAc,IAAIC,cAAtB,EAAsC;AACpC;AACA;AACA,UAAMC,cAAc,GAAGzH,SAAS,CAACqB,KAAjC;AACA,UAAMqG,oBAAoB,GAAGD,cAAc,GACvCA,cAAc,CAACnG,OADwB,GAEvC,IAFJ,CAJoC,CAOpC;AACA;;AACA,UAAMqG,cAAc,GAAG5H,SAAS,CAACsB,KAAjC;AACA,UAAMuG,oBAAoB,GAAGD,cAAc,GACvCA,cAAc,CAACrG,OADwB,GAEvC,IAFJ;;AAIA,UAAIsG,oBAAoB,IAAI,IAAxB,IAAgCF,oBAAoB,IAAI,IAA5D,EAAkE;AAChE7I,QAAAA,qBAAqB,CACnB6I,oBADmB,EAEnB7B,mBAAmB,GAAG7F,SAAH,GAAevC,WAFf,EAGnB,IAHmB,EAInBiI,+BAJmB,CAArB;AAOA4B,QAAAA,mBAAmB,GAAG,IAAtB;AACD;;AAED,UACEI,oBAAoB,IAAI,IAAxB,IACAE,oBAAoB,IAAI,IADxB,IAEAP,sBAAsB,CACpBK,oBADoB,EAEpBE,oBAFoB,EAGpB5H,SAHoB,EAIpB0F,+BAJoB,CAHxB,EASE;AACA4B,QAAAA,mBAAmB,GAAG,IAAtB;AACD;AACF,KArCD,MAqCO,IAAIC,cAAc,IAAI,CAACC,cAAvB,EAAuC;AAC5C;AACA;AACA;AACA;AACA,UAAMK,mBAAmB,GAAG7H,SAAS,CAACqB,KAAtC;;AACA,UAAIwG,mBAAmB,KAAK,IAA5B,EAAkC;AAChChJ,QAAAA,qBAAqB,CACnBgJ,mBADmB,EAEnBhC,mBAAmB,GAAG7F,SAAH,GAAevC,WAFf,EAGnB,IAHmB,EAInBiI,+BAJmB,CAArB;AAMD;;AACD4B,MAAAA,mBAAmB,GAAG,IAAtB;AACD,KAfM,MAeA,IAAI,CAACC,cAAD,IAAmBC,cAAvB,EAAuC;AAC5C;AACA;AACA;AACA;AACAnB,MAAAA,+BAA+B,CAACtG,SAAD,CAA/B,CAL4C,CAM5C;;AACA,UAAM0H,eAAc,GAAGzH,SAAS,CAACqB,KAAjC;;AACA,UAAMqG,qBAAoB,GAAGD,eAAc,GACvCA,eAAc,CAACnG,OADwB,GAEvC,IAFJ;;AAGA,UAAIoG,qBAAoB,IAAI,IAA5B,EAAkC;AAChC7I,QAAAA,qBAAqB,CACnB6I,qBADmB,EAEnB7B,mBAAmB,GAAG7F,SAAH,GAAevC,WAFf,EAGnB,IAHmB,EAInBiI,+BAJmB,CAArB;AAMA4B,QAAAA,mBAAmB,GAAG,IAAtB;AACD;AACF,KApBM,MAoBA;AACL;AACA;AACA,UAAItH,SAAS,CAACqB,KAAV,KAAoBtB,SAAS,CAACsB,KAAlC,EAAyC;AACvC;AACA;AACA,YAAIyG,SAAS,GAAG9H,SAAS,CAACqB,KAA1B;AACA,YAAI0G,oBAAoB,GAAGhI,SAAS,CAACsB,KAArC;;AACA,eAAOyG,SAAP,EAAkB;AAChB;AACA;AACA;AACA;AACA,cAAIA,SAAS,CAACjS,SAAd,EAAyB;AACvB,gBAAMmS,SAAS,GAAGF,SAAS,CAACjS,SAA5B;;AACA,gBACEwR,sBAAsB,CACpBS,SADoB,EAEpBE,SAFoB,EAGpBnC,mBAAmB,GAAG7F,SAAH,GAAevC,WAHd,EAIpBiI,+BAJoB,CADxB,EAOE;AACA;AACA;AACA;AACA4B,cAAAA,mBAAmB,GAAG,IAAtB;AACD,aAdsB,CAevB;AACA;AACA;;;AACA,gBAAIU,SAAS,KAAKD,oBAAlB,EAAwC;AACtCT,cAAAA,mBAAmB,GAAG,IAAtB;AACD;AACF,WArBD,MAqBO;AACLzI,YAAAA,qBAAqB,CACnBiJ,SADmB,EAEnBjC,mBAAmB,GAAG7F,SAAH,GAAevC,WAFf,EAGnB,KAHmB,EAInBiI,+BAJmB,CAArB;AAMA4B,YAAAA,mBAAmB,GAAG,IAAtB;AACD,WAlCe,CAmChB;;;AACAQ,UAAAA,SAAS,GAAGA,SAAS,CAACxG,OAAtB,CApCgB,CAqChB;AACA;;AACA,cAAI,CAACgG,mBAAD,IAAwBS,oBAAoB,KAAK,IAArD,EAA2D;AACzDA,YAAAA,oBAAoB,GAAGA,oBAAoB,CAACzG,OAA5C;AACD;AACF,SA/CsC,CAgDvC;;;AACA,YAAIyG,oBAAoB,KAAK,IAA7B,EAAmC;AACjCT,UAAAA,mBAAmB,GAAG,IAAtB;AACD;AACF,OApDD,MAoDO;AACL,YAAItJ,mBAAJ,EAAyB;AACvB;AACA;AACA,cAAI0H,+BAAJ,EAAqC;AACnC,gBAAMuC,UAAU,GAAGC,wBAAwB,CACzC1I,gBAAgB,CAACQ,SAAD,CADyB,CAA3C;AAGAiI,YAAAA,UAAU,CAAC7+C,OAAX,CAAmB,UAAA++C,SAAS,EAAI;AAC9BlK,cAAAA,oBAAoB,CAACj0B,GAArB,CAAyBm+B,SAAS,CAAChgB,SAAnC;AACD,aAFD;AAGD;AACF;AACF;AACF;;AAED,QAAI0d,mBAAJ,EAAyB;AACvB,UAAMlB,oBAAoB,GAAG3E,SAAS,CAACn5C,cAAV,CAAyB,kBAAzB,CAA7B;;AACA,UAAI89C,oBAAJ,EAA0B;AACxBO,QAAAA,wBAAwB,CAAClF,SAAD,CAAxB;AACD;AACF;;AACD,QAAIsH,mBAAJ,EAAyB;AACvB;AACA;AACA,UAAIzB,mBAAJ,EAAyB;AACvB;AACA,YAAIuC,YAAY,GAAGpI,SAAS,CAACqB,KAA7B;;AACA,YAAImG,cAAJ,EAAoB;AAClB;AACA,cAAMC,gBAAc,GAAGzH,SAAS,CAACqB,KAAjC;AACA+G,UAAAA,YAAY,GAAGX,gBAAc,GAAGA,gBAAc,CAACnG,OAAlB,GAA4B,IAAzD;AACD;;AACD,YAAI8G,YAAY,IAAI,IAApB,EAA0B;AACxBnB,UAAAA,mBAAmB,CAACjH,SAAD,EAAYoI,YAAZ,CAAnB;AACD,SAVsB,CAWvB;AACA;;;AACA,eAAO,KAAP;AACD,OAdD,MAcO;AACL;AACA,eAAO,IAAP;AACD;AACF,KArBD,MAqBO;AACL,aAAO,KAAP;AACD;AACF;;AAED,WAASC,OAAT,GAAmB,CACjB;AACD;;AAED,WAASC,qBAAT,CAA+B/0C,IAA/B,EAA0C;AACxC,QAAIA,IAAI,CAACg1C,oBAAL,IAA6B,IAAjC,EAAuC;AACrC;AACA,aAAO,IAAP;AACD,KAHD,MAGO,IACLh1C,IAAI,CAACjN,OAAL,IAAgB,IAAhB,IACAiN,IAAI,CAACjN,OAAL,CAAaO,cAAb,CAA4B,kBAA5B,CAFK,EAGL;AACA;AACA;AACA,aAAO,IAAP;AACD,KAPM,MAOA;AACL,aAAO,KAAP;AACD;AACF;;AAED,WAAS2hD,sBAAT,GAAkC;AAChC,QAAMC,2BAA2B,GAAG5F,sBAApC;AAEAA,IAAAA,sBAAsB,GAAG,IAAzB;;AAEA,QACE4F,2BAA2B,KAAK,IAAhC,IACAA,2BAA2B,CAACljD,MAA5B,GAAqC,CAFvC,EAGE;AACA;AACA;AACAkjD,MAAAA,2BAA2B,CAACr/C,OAA5B,CAAoC,UAAA43B,UAAU,EAAI;AAChDia,QAAAA,IAAI,CAACt6B,IAAL,CAAU,YAAV,EAAwBqgB,UAAxB;AACD,OAFD;AAGD,KATD,MASO;AACL;AACA;AACA,UAAI0nB,WAAW,KAAK,IAApB,EAA0B;AACxBC,QAAAA,oBAAoB,GAAG,IAAvB;AACD,OALI,CAML;;;AACA1N,MAAAA,IAAI,CAACsD,aAAL,CAAmBrmB,UAAnB,EAA+B9uB,OAA/B,CAAuC,UAAAmK,IAAI,EAAI;AAC7CirC,QAAAA,aAAa,GAAGC,oBAAoB,CAAClrC,IAAI,CAACjN,OAAN,CAApC;AACAs4C,QAAAA,gBAAgB,CAACJ,aAAD,EAAgBjrC,IAAI,CAACjN,OAArB,CAAhB,CAF6C,CAI7C;;AACA,YAAIysC,WAAW,IAAIuV,qBAAqB,CAAC/0C,IAAD,CAAxC,EAAgD;AAC9C;AACA;AACA4vC,UAAAA,8BAA8B,GAAG;AAC/B6D,YAAAA,kBAAkB,EAAEF,wBAAwB,GAAG,IAAI1iD,GAAJ,EAAH,GAAe,IAD5B;AAE/Bg/C,YAAAA,SAAS,EAAE,EAFoB;AAG/BwF,YAAAA,UAAU,EAAEztB,uBAAc,KAAK0tB,kBAHA;AAI/BhC,YAAAA,iBAAiB,EAAE,CAJY;AAK/BiC,YAAAA,aAAa,EAAE,IALgB;AAM/BC,YAAAA,QAAQ,EAAEC,eAAe,CAACz1C,IAAD,CANM;AAO/By0B,YAAAA,cAAc,EAAE,IAPe;AAQ/BC,YAAAA,qBAAqB,EAAE;AARQ,WAAjC;AAUD;;AAED4W,QAAAA,qBAAqB,CAACtrC,IAAI,CAACjN,OAAN,EAAe,IAAf,EAAqB,KAArB,EAA4B,KAA5B,CAArB;AACAk2C,QAAAA,kBAAkB,CAACjpC,IAAD,CAAlB;AACAirC,QAAAA,aAAa,GAAG,CAAC,CAAjB;AACD,OAvBD;AAwBD;AACF;;AAED,WAASwK,eAAT,CAAyBz1C,IAAzB,EAAqE;AACnE,WAAOA,IAAI,CAAC01C,gBAAL,IAAyB,IAAzB,GACHv7C,KAAK,CAACkd,IAAN,CAAWrX,IAAI,CAAC01C,gBAAhB,EACG9zC,MADH,CACU,UAAA2/B,KAAK;AAAA,aAAIqI,gBAAgB,CAACrI,KAAD,CAAhB,KAA4B,IAAhC;AAAA,KADf,EAEGjsC,GAFH,CAEOqgD,wBAFP,CADG,GAIH,IAJJ;AAKD;;AAED,WAASC,wBAAT,CAAkCrU,KAAlC,EAA8C;AAC5C;AACA;AACA;AACA,QAAI,CAAC4K,gBAAgB,CAAC51C,GAAjB,CAAqBgrC,KAArB,CAAL,EAAkC;AAChC;AACA;AACA;AACAqQ,MAAAA,aAAa,CAACrQ,KAAD,EAAQ,KAAR,CAAb;AACD;AACF;;AAED,WAASsU,yBAAT,CAAmC71C,IAAnC,EAA8C;AAC5C,QAAIw/B,WAAW,IAAIuV,qBAAqB,CAAC/0C,IAAD,CAAxC,EAAgD;AAC9C,UAAI4vC,8BAA8B,KAAK,IAAvC,EAA6C;AAAA,kCAEzCpb,kBAAkB,CAACx0B,IAAD,CAFuB;AAAA,YACpCy0B,cADoC,uBACpCA,cADoC;AAAA,YACpBC,qBADoB,uBACpBA,qBADoB,EAG3C;;;AACAkb,QAAAA,8BAA8B,CAACnb,cAA/B,GAAgDA,cAAhD,CAJ2C,CAK3C;;AACAmb,QAAAA,8BAA8B,CAAClb,qBAA/B,GACEA,qBADF;AAED;AACF;AACF;;AAED,WAASohB,qBAAT,CAA+B91C,IAA/B,EAA0Cu1C,aAA1C,EAAwE;AACtE,QAAMxiD,OAAO,GAAGiN,IAAI,CAACjN,OAArB;AACA,QAAMuvC,SAAS,GAAGvvC,OAAO,CAACuvC,SAA1B,CAFsE,CAItE;AACA;;AACA+J,IAAAA,aAAa;AAEbpB,IAAAA,aAAa,GAAGC,oBAAoB,CAACn4C,OAAD,CAApC,CARsE,CAUtE;AACA;;AACA,QAAIoiD,WAAW,KAAK,IAApB,EAA0B;AACxBC,MAAAA,oBAAoB,GAAG,IAAvB;AACD;;AAED,QAAI3K,mBAAJ,EAAyB;AACvBC,MAAAA,oBAAoB,CAACz8B,KAArB;AACD,KAlBqE,CAoBtE;;;AACA,QAAMmjC,oBAAoB,GAAG2D,qBAAqB,CAAC/0C,IAAD,CAAlD;;AAEA,QAAIw/B,WAAW,IAAI4R,oBAAnB,EAAyC;AACvC;AACA;AACAxB,MAAAA,8BAA8B,GAAG;AAC/B6D,QAAAA,kBAAkB,EAAEF,wBAAwB,GAAG,IAAI1iD,GAAJ,EAAH,GAAe,IAD5B;AAE/Bg/C,QAAAA,SAAS,EAAE,EAFoB;AAG/BwF,QAAAA,UAAU,EAAEztB,uBAAc,KAAK0tB,kBAHA;AAI/BhC,QAAAA,iBAAiB,EAAE,CAJY;AAK/BiC,QAAAA,aAAa,EACXA,aAAa,IAAI,IAAjB,GAAwB,IAAxB,GAA+BQ,mBAAmB,CAACR,aAAD,CANrB;AAQ/BC,QAAAA,QAAQ,EAAEC,eAAe,CAACz1C,IAAD,CARM;AAU/B;AACA;AACAy0B,QAAAA,cAAc,EAAE,IAZe;AAa/BC,QAAAA,qBAAqB,EAAE;AAbQ,OAAjC;AAeD;;AAED,QAAI4N,SAAJ,EAAe;AACb;AACA,UAAM0T,UAAU,GACd1T,SAAS,CAACxvC,aAAV,IAA2B,IAA3B,IACAwvC,SAAS,CAACxvC,aAAV,CAAwByuB,OAAxB,IAAmC,IADnC,IAEA;AACA+gB,MAAAA,SAAS,CAACxvC,aAAV,CAAwBmjD,YAAxB,KAAyC,IAJ3C;AAKA,UAAM58C,SAAS,GACbtG,OAAO,CAACD,aAAR,IAAyB,IAAzB,IACAC,OAAO,CAACD,aAAR,CAAsByuB,OAAtB,IAAiC,IADjC,IAEA;AACAxuB,MAAAA,OAAO,CAACD,aAAR,CAAsBmjD,YAAtB,KAAuC,IAJzC;;AAKA,UAAI,CAACD,UAAD,IAAe38C,SAAnB,EAA8B;AAC5B;AACAgyC,QAAAA,gBAAgB,CAACJ,aAAD,EAAgBl4C,OAAhB,CAAhB;AACAu4C,QAAAA,qBAAqB,CAACv4C,OAAD,EAAU,IAAV,EAAgB,KAAhB,EAAuB,KAAvB,CAArB;AACD,OAJD,MAIO,IAAIijD,UAAU,IAAI38C,SAAlB,EAA6B;AAClC;AACAy6C,QAAAA,sBAAsB,CAAC/gD,OAAD,EAAUuvC,SAAV,EAAqB,IAArB,EAA2B,KAA3B,CAAtB;AACD,OAHM,MAGA,IAAI0T,UAAU,IAAI,CAAC38C,SAAnB,EAA8B;AACnC;AACA68C,QAAAA,mBAAmB,CAACjL,aAAD,CAAnB;AACA2G,QAAAA,aAAa,CAAC7+C,OAAD,EAAU,KAAV,CAAb;AACD;AACF,KAxBD,MAwBO;AACL;AACAs4C,MAAAA,gBAAgB,CAACJ,aAAD,EAAgBl4C,OAAhB,CAAhB;AACAu4C,MAAAA,qBAAqB,CAACv4C,OAAD,EAAU,IAAV,EAAgB,KAAhB,EAAuB,KAAvB,CAArB;AACD;;AAED,QAAIysC,WAAW,IAAI4R,oBAAnB,EAAyC;AACvC,UAAI,CAACzB,kCAAkC,EAAvC,EAA2C;AACzC,YAAMwG,uBAAuB,GACzBC,gCAAF,CAAsE/iD,GAAtE,CACE43C,aADF,CADF;;AAKA,YAAIkL,uBAAuB,IAAI,IAA/B,EAAqC;AACnCA,UAAAA,uBAAuB,CAACvjD,IAAxB,CACIg9C,8BADJ;AAGD,SAJD,MAIO;AACHwG,UAAAA,gCAAF,CAAsElkD,GAAtE,CACE+4C,aADF,EAEE,CAAG2E,8BAAH,CAFF;AAID;AACF;AACF,KA3FqE,CA6FtE;;;AACA3G,IAAAA,kBAAkB,CAACjpC,IAAD,CAAlB;;AAEA,QAAIyqC,mBAAJ,EAAyB;AACvB/C,MAAAA,IAAI,CAACt6B,IAAL,CAAU,cAAV,EAA0Bs9B,oBAA1B;AACD;;AAEDO,IAAAA,aAAa,GAAG,CAAC,CAAjB;AACD;;AAED,WAAS0J,wBAAT,CAAkC9/C,EAAlC,EAAqE;AACnE,QAAMwhD,MAAM,GAAG,EAAf;AACA,QAAM9U,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI,CAAC0sC,KAAL,EAAY;AACV,aAAO8U,MAAP;AACD,KALkE,CAOnE;;;AACA,QAAI3sC,IAAW,GAAG63B,KAAlB;;AACA,WAAO,IAAP,EAAa;AACX,UAAI73B,IAAI,CAACzT,GAAL,KAAawnC,aAAb,IAA8B/zB,IAAI,CAACzT,GAAL,KAAaqwC,QAA/C,EAAyD;AACvD+P,QAAAA,MAAM,CAACzjD,IAAP,CAAY8W,IAAZ;AACD,OAFD,MAEO,IAAIA,IAAI,CAACokC,KAAT,EAAgB;AACrBpkC,QAAAA,IAAI,CAACokC,KAAL,CAAWt3C,MAAX,GAAoBkT,IAApB;AACAA,QAAAA,IAAI,GAAGA,IAAI,CAACokC,KAAZ;AACA;AACD;;AACD,UAAIpkC,IAAI,KAAK63B,KAAb,EAAoB;AAClB,eAAO8U,MAAP;AACD;;AACD,aAAO,CAAC3sC,IAAI,CAACqkC,OAAb,EAAsB;AACpB,YAAI,CAACrkC,IAAI,CAAClT,MAAN,IAAgBkT,IAAI,CAAClT,MAAL,KAAgB+qC,KAApC,EAA2C;AACzC,iBAAO8U,MAAP;AACD;;AACD3sC,QAAAA,IAAI,GAAGA,IAAI,CAAClT,MAAZ;AACD;;AACDkT,MAAAA,IAAI,CAACqkC,OAAL,CAAav3C,MAAb,GAAsBkT,IAAI,CAAClT,MAA3B;AACAkT,MAAAA,IAAI,GAAGA,IAAI,CAACqkC,OAAZ;AACD,KA5BkE,CA6BnE;AACA;;;AACA,WAAOsI,MAAP;AACD;;AAED,WAASpxB,yBAAT,CAAmCpwB,EAAnC,EAA+C;AAC7C,QAAI;AACF,UAAM0sC,OAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,UAAI0sC,OAAK,KAAK,IAAd,EAAoB;AAClB,eAAO,IAAP;AACD;;AAED,UAAMmT,UAAU,GAAGC,wBAAwB,CAAC9/C,EAAD,CAA3C;AACA,aAAO6/C,UAAU,CAACp/C,GAAX,CAAe,UAAAs/C,SAAS;AAAA,eAAIA,SAAS,CAAChgB,SAAd;AAAA,OAAxB,EAAiDhzB,MAAjD,CAAwD+O,OAAxD,CAAP;AACD,KARD,CAQE,OAAO4lC,GAAP,EAAY;AACZ;AACA,aAAO,IAAP;AACD;AACF;;AAED,WAASx0B,wBAAT,CAAkCltB,EAAlC,EAA6D;AAC3D,QAAM0sC,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;AACA,WAAO0sC,KAAK,IAAI,IAAT,GAAgBxC,sBAAsB,CAACwC,KAAD,CAAtC,GAAgD,IAAvD;AACD;;AAED,WAASiV,iBAAT,CAA2BC,YAA3B,EAAqD;AACnD,WAAO5xB,QAAQ,CAAC6xB,uBAAT,CAAiCD,YAAjC,CAAP;AACD;;AAED,WAAS50B,mBAAT,CACE40B,YADF,EAGE;AAAA,QADAE,6BACA,uEADyC,KACzC;AACA,QAAIpV,KAAK,GAAG1c,QAAQ,CAAC6xB,uBAAT,CAAiCD,YAAjC,CAAZ;;AACA,QAAIlV,KAAK,IAAI,IAAb,EAAmB;AACjB,UAAIoV,6BAAJ,EAAmC;AACjC,eAAOpV,KAAK,KAAK,IAAV,IAAkBiK,iBAAiB,CAACjK,KAAD,CAA1C,EAAmD;AACjDA,UAAAA,KAAK,GAAGA,KAAK,CAAC/qC,MAAd;AACD;AACF;;AACD,aAAOy1C,gBAAgB,CAAG1K,KAAH,CAAvB;AACD;;AACD,WAAO,IAAP;AACD,GA7qEkB,CA+qEnB;AACA;;;AACA,WAASqV,eAAT,CAAyBrV,KAAzB,EAAuC;AACrC,QAAIsV,sBAAsB,CAACtV,KAAD,CAAtB,KAAkCA,KAAtC,EAA6C;AAC3C,YAAM,IAAI7uC,KAAJ,CAAU,gDAAV,CAAN;AACD;AACF,GArrEkB,CAurEnB;AACA;;;AACA,WAASmkD,sBAAT,CAAgCtV,KAAhC,EAA4D;AAC1D,QAAI73B,IAAI,GAAG63B,KAAX;AACA,QAAIuV,cAA4B,GAAGvV,KAAnC;;AACA,QAAI,CAACA,KAAK,CAACe,SAAX,EAAsB;AACpB;AACA;AACA,UAAIyU,QAAe,GAAGrtC,IAAtB;;AACA,SAAG;AACDA,QAAAA,IAAI,GAAGqtC,QAAP,CADC,CAED;AACA;AACA;;AACA,YAAMC,SAAS,GAAG,CAAlB;AACA,YAAMC,SAAS,GAAG,IAAlB;;AACA,YAAI,CAACvtC,IAAI,CAACw7B,KAAL,IAAc8R,SAAS,GAAGC,SAA1B,CAAD,MAA2C,CAA/C,EAAkD;AAChD;AACA;AACA;AACAH,UAAAA,cAAc,GAAGptC,IAAI,CAAClT,MAAtB;AACD,SAZA,CAaD;;;AACAugD,QAAAA,QAAQ,GAAGrtC,IAAI,CAAClT,MAAhB;AACD,OAfD,QAeSugD,QAfT;AAgBD,KApBD,MAoBO;AACL,aAAOrtC,IAAI,CAAClT,MAAZ,EAAoB;AAClBkT,QAAAA,IAAI,GAAGA,IAAI,CAAClT,MAAZ;AACD;AACF;;AACD,QAAIkT,IAAI,CAACzT,GAAL,KAAakwC,QAAjB,EAA2B;AACzB;AACA;AACA,aAAO2Q,cAAP;AACD,KAhCyD,CAiC1D;AACA;;;AACA,WAAO,IAAP;AACD,GA7tEkB,CA+tEnB;AACA;AACA;AACA;;;AACA,WAASR,iCAAT,CAA2CzhD,EAA3C,EAAqE;AACnE,QAAM0sC,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB/uB,MAAAA,OAAO,CAACuS,IAAR,0CAA8ClwB,EAA9C;AACA,aAAO,IAAP;AACD;;AAED,QAAMytC,SAAS,GAAGf,KAAK,CAACe,SAAxB;;AACA,QAAI,CAACA,SAAL,EAAgB;AACd;AACA,UAAMwU,cAAc,GAAGD,sBAAsB,CAACtV,KAAD,CAA7C;;AAEA,UAAIuV,cAAc,KAAK,IAAvB,EAA6B;AAC3B,cAAM,IAAIpkD,KAAJ,CAAU,gDAAV,CAAN;AACD;;AAED,UAAIokD,cAAc,KAAKvV,KAAvB,EAA8B;AAC5B,eAAO,IAAP;AACD;;AACD,aAAOA,KAAP;AACD,KApBkE,CAqBnE;AACA;AACA;;;AACA,QAAI3wC,CAAQ,GAAG2wC,KAAf;AACA,QAAIzvC,CAAQ,GAAGwwC,SAAf;;AACA,WAAO,IAAP,EAAa;AACX,UAAM4U,OAAO,GAAGtmD,CAAC,CAAC4F,MAAlB;;AACA,UAAI0gD,OAAO,KAAK,IAAhB,EAAsB;AACpB;AACA;AACD;;AACD,UAAMC,OAAO,GAAGD,OAAO,CAAC5U,SAAxB;;AACA,UAAI6U,OAAO,KAAK,IAAhB,EAAsB;AACpB;AACA;AACA;AACA;AACA,YAAMC,UAAU,GAAGF,OAAO,CAAC1gD,MAA3B;;AACA,YAAI4gD,UAAU,KAAK,IAAnB,EAAyB;AACvBxmD,UAAAA,CAAC,GAAGkB,CAAC,GAAGslD,UAAR;AACA;AACD,SATmB,CAUpB;;;AACA;AACD,OAnBU,CAqBX;AACA;AACA;;;AACA,UAAIF,OAAO,CAACpJ,KAAR,KAAkBqJ,OAAO,CAACrJ,KAA9B,EAAqC;AACnC,YAAIA,KAAK,GAAGoJ,OAAO,CAACpJ,KAApB;;AACA,eAAOA,KAAP,EAAc;AACZ,cAAIA,KAAK,KAAKl9C,CAAd,EAAiB;AACf;AACAgmD,YAAAA,eAAe,CAACM,OAAD,CAAf;AACA,mBAAO3V,KAAP;AACD;;AACD,cAAIuM,KAAK,KAAKh8C,CAAd,EAAiB;AACf;AACA8kD,YAAAA,eAAe,CAACM,OAAD,CAAf;AACA,mBAAO5U,SAAP;AACD;;AACDwL,UAAAA,KAAK,GAAGA,KAAK,CAACC,OAAd;AACD,SAdkC,CAgBnC;AACA;;;AACA,cAAM,IAAIr7C,KAAJ,CAAU,gDAAV,CAAN;AACD;;AAED,UAAI9B,CAAC,CAAC4F,MAAF,KAAa1E,CAAC,CAAC0E,MAAnB,EAA2B;AACzB;AACA;AACA;AACA;AACA5F,QAAAA,CAAC,GAAGsmD,OAAJ;AACAplD,QAAAA,CAAC,GAAGqlD,OAAJ;AACD,OAPD,MAOO;AACL;AACA;AACA;AACA;AACA;AACA,YAAIE,YAAY,GAAG,KAAnB;AACA,YAAIvJ,MAAK,GAAGoJ,OAAO,CAACpJ,KAApB;;AACA,eAAOA,MAAP,EAAc;AACZ,cAAIA,MAAK,KAAKl9C,CAAd,EAAiB;AACfymD,YAAAA,YAAY,GAAG,IAAf;AACAzmD,YAAAA,CAAC,GAAGsmD,OAAJ;AACAplD,YAAAA,CAAC,GAAGqlD,OAAJ;AACA;AACD;;AACD,cAAIrJ,MAAK,KAAKh8C,CAAd,EAAiB;AACfulD,YAAAA,YAAY,GAAG,IAAf;AACAvlD,YAAAA,CAAC,GAAGolD,OAAJ;AACAtmD,YAAAA,CAAC,GAAGumD,OAAJ;AACA;AACD;;AACDrJ,UAAAA,MAAK,GAAGA,MAAK,CAACC,OAAd;AACD;;AACD,YAAI,CAACsJ,YAAL,EAAmB;AACjB;AACAvJ,UAAAA,MAAK,GAAGqJ,OAAO,CAACrJ,KAAhB;;AACA,iBAAOA,MAAP,EAAc;AACZ,gBAAIA,MAAK,KAAKl9C,CAAd,EAAiB;AACfymD,cAAAA,YAAY,GAAG,IAAf;AACAzmD,cAAAA,CAAC,GAAGumD,OAAJ;AACArlD,cAAAA,CAAC,GAAGolD,OAAJ;AACA;AACD;;AACD,gBAAIpJ,MAAK,KAAKh8C,CAAd,EAAiB;AACfulD,cAAAA,YAAY,GAAG,IAAf;AACAvlD,cAAAA,CAAC,GAAGqlD,OAAJ;AACAvmD,cAAAA,CAAC,GAAGsmD,OAAJ;AACA;AACD;;AACDpJ,YAAAA,MAAK,GAAGA,MAAK,CAACC,OAAd;AACD;;AAED,cAAI,CAACsJ,YAAL,EAAmB;AACjB,kBAAM,IAAI3kD,KAAJ,CACJ,oEACE,+DAFE,CAAN;AAID;AACF;AACF;;AAED,UAAI9B,CAAC,CAAC0xC,SAAF,KAAgBxwC,CAApB,EAAuB;AACrB,cAAM,IAAIY,KAAJ,CACJ,6DACE,sEAFE,CAAN;AAID;AACF,KAvIkE,CAyInE;AACA;;;AACA,QAAI9B,CAAC,CAACqF,GAAF,KAAUkwC,QAAd,EAAwB;AACtB,YAAM,IAAIzzC,KAAJ,CAAU,gDAAV,CAAN;AACD;;AAED,QAAI9B,CAAC,CAACgkC,SAAF,CAAY7hC,OAAZ,KAAwBnC,CAA5B,EAA+B;AAC7B;AACA,aAAO2wC,KAAP;AACD,KAlJkE,CAmJnE;;;AACA,WAAOe,SAAP;AACD,GAx3EkB,CA03EnB;;;AAEA,WAASgV,0BAAT,CACEziD,EADF,EAEEk7B,IAFF,EAGQ;AACN,QAAIwnB,8BAA8B,CAAC1iD,EAAD,CAAlC,EAAwC;AACtCuoB,MAAAA,MAAM,CAACo6B,UAAP,GAAoB3nB,iBAAW,CAC3B2Z,4BAD2B,EAE7BzZ,IAF6B,CAA/B;AAID;AACF;;AAED,WAAS0nB,wBAAT,CAAkC5iD,EAAlC,EAAoD;AAClD,QAAM0sC,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB/uB,MAAAA,OAAO,CAACuS,IAAR,0CAA8ClwB,EAA9C;AACA;AACD;;AALiD,QAO3CuB,WAP2C,GAOjBmrC,KAPiB,CAO3CnrC,WAP2C;AAAA,QAO9BH,GAP8B,GAOjBsrC,KAPiB,CAO9BtrC,GAP8B;AAAA,QAOzBC,IAPyB,GAOjBqrC,KAPiB,CAOzBrrC,IAPyB;;AASlD,YAAQD,GAAR;AACE,WAAK+nC,cAAL;AACA,WAAKuI,wBAAL;AACA,WAAKzI,sBAAL;AACA,WAAKD,iBAAL;AACE75B,QAAAA,MAAM,CAAC0zC,KAAP,GAAexhD,IAAf;AACA;;AACF,WAAKmB,UAAL;AACE2M,QAAAA,MAAM,CAAC0zC,KAAP,GAAexhD,IAAI,CAACO,MAApB;AACA;;AACF,WAAKgwC,aAAL;AACA,WAAK1I,mBAAL;AACE/5B,QAAAA,MAAM,CAAC0zC,KAAP,GACEthD,WAAW,IAAI,IAAf,IAAuBA,WAAW,CAACF,IAAZ,IAAoB,IAA3C,GACIE,WAAW,CAACF,IADhB,GAEIA,IAHN;AAIA;;AACF;AACE8N,QAAAA,MAAM,CAAC0zC,KAAP,GAAe,IAAf;AACA;AAnBJ;AAqBD;;AAED,WAAS/B,wBAAT,CAAkCpU,KAAlC,EAAmE;AACjE,WAAO;AACL9c,MAAAA,WAAW,EAAEsa,sBAAsB,CAACwC,KAAD,CAAtB,IAAiC,WADzC;AAEL1sC,MAAAA,EAAE,EAAEo3C,gBAAgB,CAAC1K,KAAD,CAFf;AAGLjnC,MAAAA,GAAG,EAAEinC,KAAK,CAACjnC,GAHN;AAILpE,MAAAA,IAAI,EAAEw1C,sBAAsB,CAACnK,KAAD;AAJvB,KAAP;AAMD;;AAED,WAASoW,aAAT,CAAuB9iD,EAAvB,EAAoE;AAClE,QAAM0sC,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAO,IAAP;AACD;;AAJiE,QAM3DrD,WAN2D,GAM5CqD,KAN4C,CAM3DrD,WAN2D;AAQlE,QAAM0Z,MAAgC,GAAG,CAACjC,wBAAwB,CAACpU,KAAD,CAAzB,CAAzC;;AAEA,QAAIrD,WAAJ,EAAiB;AACf,UAAID,KAAmB,GAAGC,WAA1B;;AACA,aAAOD,KAAK,KAAK,IAAjB,EAAuB;AACrB2Z,QAAAA,MAAM,CAACltC,OAAP,CAAeirC,wBAAwB,CAAC1X,KAAD,CAAvC;AACAA,QAAAA,KAAK,GAAGA,KAAK,CAACC,WAAN,IAAqB,IAA7B;AACD;AACF;;AAED,WAAO0Z,MAAP;AACD,GAp8EkB,CAs8EnB;AACA;AACA;;;AACA,WAASC,mBAAT,CAA6BhjD,EAA7B,EAA2D;AACzD,QAAI44C,QAAQ,GAAG,IAAf;AACA,QAAI35B,KAAK,GAAG,IAAZ;AAEA,QAAMytB,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI0sC,KAAK,KAAK,IAAd,EAAoB;AAClBkM,MAAAA,QAAQ,GAAGlM,KAAK,CAAC3M,SAAjB;;AAEA,UAAI2M,KAAK,CAACprC,aAAN,KAAwB,IAA5B,EAAkC;AAChC2d,QAAAA,KAAK,GAAGytB,KAAK,CAACprC,aAAN,CAAoB2d,KAA5B;AACD;AACF;;AAED,WAAO;AAAC25B,MAAAA,QAAQ,EAARA,QAAD;AAAW35B,MAAAA,KAAK,EAALA;AAAX,KAAP;AACD;;AAED,WAASgkC,eAAT,CAAyBvW,KAAzB,EAAgD;AAAA,QACvCtrC,GADuC,GAC1BsrC,KAD0B,CACvCtrC,GADuC;AAAA,QAClCC,IADkC,GAC1BqrC,KAD0B,CAClCrrC,IADkC;;AAG9C,YAAQD,GAAR;AACE,WAAK+nC,cAAL;AACA,WAAKuI,wBAAL;AACE,YAAMkH,QAAQ,GAAGlM,KAAK,CAAC3M,SAAvB;AACA,eACE,OAAO1+B,IAAI,CAAC6hD,wBAAZ,KAAyC,UAAzC,IACCtK,QAAQ,KAAK,IAAb,IACC,OAAOA,QAAQ,CAACuK,iBAAhB,KAAsC,UAH1C;;AAKF;AACE,eAAO,KAAP;AAVJ;AAYD;;AAED,WAASC,yBAAT,CAAmC1W,KAAnC,EAAgE;AAC9D,QAAInR,MAAM,GAAGmR,KAAK,CAAC/qC,MAAnB;;AACA,WAAO45B,MAAM,KAAK,IAAlB,EAAwB;AACtB,UAAI0nB,eAAe,CAAC1nB,MAAD,CAAnB,EAA6B;AAC3B,eAAOwZ,gBAAgB,CAACxZ,MAAD,CAAvB;AACD;;AACDA,MAAAA,MAAM,GAAGA,MAAM,CAAC55B,MAAhB;AACD;;AACD,WAAO,IAAP;AACD;;AAED,WAAS0hD,iBAAT,CAA2BrjD,EAA3B,EAAgE;AAC9D,QAAM0sC,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAO,IAAP;AACD;;AAJ6D,QAO5DrD,WAP4D,GAgB1DqD,KAhB0D,CAO5DrD,WAP4D;AAAA,QAQ5DuN,YAR4D,GAgB1DlK,KAhB0D,CAQ5DkK,YAR4D;AAAA,QAS5D7W,SAT4D,GAgB1D2M,KAhB0D,CAS5D3M,SAT4D;AAAA,QAU5Dt6B,GAV4D,GAgB1DinC,KAhB0D,CAU5DjnC,GAV4D;AAAA,QAW5DnE,aAX4D,GAgB1DorC,KAhB0D,CAW5DprC,aAX4D;AAAA,QAY5DrD,aAZ4D,GAgB1DyuC,KAhB0D,CAY5DzuC,aAZ4D;AAAA,QAa5D66C,YAb4D,GAgB1DpM,KAhB0D,CAa5DoM,YAb4D;AAAA,QAc5D13C,GAd4D,GAgB1DsrC,KAhB0D,CAc5DtrC,GAd4D;AAAA,QAe5DC,IAf4D,GAgB1DqrC,KAhB0D,CAe5DrrC,IAf4D;AAkB9D,QAAME,WAAW,GAAGs1C,sBAAsB,CAACnK,KAAD,CAA1C;AAEA,QAAM4W,SAAS,GACb,CAACliD,GAAG,KAAK4nC,iBAAR,IACC5nC,GAAG,KAAK8nC,mBADT,IAEC9nC,GAAG,KAAKoB,UAFV,MAGC,CAAC,CAACvE,aAAF,IAAmB,CAAC,CAAC66C,YAHtB,CADF,CApB8D,CA0B9D;AACA;;AACA,QAAMyK,SAAS,GAAG,CAACD,SAAD,IAAcliD,GAAG,KAAK6vC,cAAxC;AAEA,QAAMoB,UAAU,GAAGH,aAAa,CAAC7wC,IAAD,CAAhC;AAEA,QAAImiD,aAAa,GAAG,KAApB;AACA,QAAI3+C,OAAO,GAAG,IAAd;;AACA,QACEzD,GAAG,KAAK+nC,cAAR,IACA/nC,GAAG,KAAK4nC,iBADR,IAEA5nC,GAAG,KAAKswC,wBAFR,IAGAtwC,GAAG,KAAK6nC,sBAHR,IAIA7nC,GAAG,KAAKwwC,aAJR,IAKAxwC,GAAG,KAAKoB,UALR,IAMApB,GAAG,KAAK8nC,mBAPV,EAQE;AACAsa,MAAAA,aAAa,GAAG,IAAhB;;AACA,UAAIzjB,SAAS,IAAIA,SAAS,CAACl7B,OAAV,IAAqB,IAAtC,EAA4C;AAC1C;AACA,YAAM4+C,iBAAiB,GACrBliD,WAAW,KAAKm0B,sBAAhB,IACA,EAAEr0B,IAAI,CAACqiD,YAAL,IAAqBriD,IAAI,CAACw3C,WAA5B,CAFF;;AAIA,YAAI,CAAC4K,iBAAL,EAAwB;AACtB5+C,UAAAA,OAAO,GAAGk7B,SAAS,CAACl7B,OAApB;AACD;AACF;AACF,KApBD,MAoBO,IACLwtC,UAAU,KAAKlR,cAAf,IACAkR,UAAU,KAAKjR,qBAFV,EAGL;AACA;AACA;AACA;AACA,UAAMuiB,uBAAuB,GAAGtiD,IAAI,CAACI,QAAL,IAAiBJ,IAAjD,CAJA,CAMA;;AACAwD,MAAAA,OAAO,GAAG8+C,uBAAuB,CAACxnD,aAAxB,IAAyC,IAAnD,CAPA,CASA;;AACA,UAAI+B,QAAO,GAAKwuC,KAAF,CAAsB/qC,MAApC;;AACA,aAAOzD,QAAO,KAAK,IAAnB,EAAyB;AACvB,YAAM0lD,WAAW,GAAG1lD,QAAO,CAACmD,IAA5B;AACA,YAAMwiD,iBAAiB,GAAG3R,aAAa,CAAC0R,WAAD,CAAvC;;AACA,YACEC,iBAAiB,KAAKthB,eAAtB,IACAshB,iBAAiB,KAAKrhB,sBAFxB,EAGE;AACA;AACA;AACA;AACA,cAAMshB,uBAAuB,GAC3BF,WAAW,CAACniD,QAAZ,IAAwBmiD,WAAW,CAAC/+C,OADtC;;AAEA,cAAIi/C,uBAAuB,KAAKH,uBAAhC,EAAyD;AACvD9+C,YAAAA,OAAO,GAAG3G,QAAO,CAACoD,aAAR,CAAsBtD,KAAhC;AACA;AACD;AACF;;AAEDE,QAAAA,QAAO,GAAGA,QAAO,CAACyD,MAAlB;AACD;AACF;;AAED,QAAIoiD,gBAAgB,GAAG,KAAvB;;AACA,QAAIl/C,OAAO,KAAK,IAAhB,EAAsB;AACpBk/C,MAAAA,gBAAgB,GAAG,CAAC,CAAC1iD,IAAI,CAACqiD,YAA1B,CADoB,CAGpB;AACA;;AACA7+C,MAAAA,OAAO,GAAG;AAAC7G,QAAAA,KAAK,EAAE6G;AAAR,OAAV;AACD;;AAED,QAAIk+C,MAAM,GAAG,IAAb;;AACA,QAAI1Z,WAAJ,EAAiB;AACf0Z,MAAAA,MAAM,GAAI,EAAV;AACA,UAAI3Z,KAAmB,GAAGC,WAA1B;;AACA,aAAOD,KAAK,KAAK,IAAjB,EAAuB;AACrB2Z,QAAAA,MAAM,CAAChlD,IAAP,CAAY+iD,wBAAwB,CAAC1X,KAAD,CAApC;AACAA,QAAAA,KAAK,GAAGA,KAAK,CAACC,WAAN,IAAqB,IAA7B;AACD;AACF;;AAED,QAAM6U,kBAAkB,GACtB98C,GAAG,KAAK0nC,iBAAR,IAA6B7qC,aAAa,KAAK,IADjD;AAGA,QAAIm6C,KAAK,GAAG,IAAZ;;AACA,QAAIkL,SAAJ,EAAe;AACb,UAAMU,sBAA8C,GAAG,EAAvD,CADa,CAGb;;AACA,WAAK,IAAMC,MAAX,IAAqBtmC,OAArB,EAA8B;AAC5B,YAAI;AACFqmC,UAAAA,sBAAsB,CAACC,MAAD,CAAtB,GAAiCtmC,OAAO,CAACsmC,MAAD,CAAxC,CADE,CAEF;;AACAtmC,UAAAA,OAAO,CAACsmC,MAAD,CAAP,GAAkB,YAAM,CAAE,CAA1B;AACD,SAJD,CAIE,OAAOp4C,KAAP,EAAc,CAAE;AACnB;;AAED,UAAI;AACFusC,QAAAA,KAAK,GAAGj3C,yCAAmB,CACzBurC,KADyB,EAExB1c,QAAQ,CAACuX,oBAFe,EAGzB,IAHyB,CAGnB;AAHmB,SAA3B;AAKD,OAND,SAMU;AACR;AACA,aAAK,IAAM0c,OAAX,IAAqBD,sBAArB,EAA6C;AAC3C,cAAI;AACF;AACArmC,YAAAA,OAAO,CAACsmC,OAAD,CAAP,GAAkBD,sBAAsB,CAACC,OAAD,CAAxC;AACD,WAHD,CAGE,OAAOp4C,KAAP,EAAc,CAAE;AACnB;AACF;AACF;;AAED,QAAIq4C,QAAQ,GAAG,IAAf;AACA,QAAIhmD,OAAO,GAAGwuC,KAAd;;AACA,WAAOxuC,OAAO,CAACyD,MAAR,KAAmB,IAA1B,EAAgC;AAC9BzD,MAAAA,OAAO,GAAGA,OAAO,CAACyD,MAAlB;AACD;;AACD,QAAM6wC,SAAS,GAAGt0C,OAAO,CAAC6hC,SAA1B;;AACA,QAAIyS,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACC,cAAV,KAA6B,IAAtD,EAA4D;AAC1DyR,MAAAA,QAAQ,GAAG1R,SAAS,CAACC,cAArB;AACD;;AAED,QAAM0R,MAAM,GAAGnQ,kBAAkB,CAACx1C,GAAnB,CAAuBwB,EAAvB,KAA8B,IAAIhE,GAAJ,EAA7C;AACA,QAAMooD,QAAQ,GAAGnQ,oBAAoB,CAACz1C,GAArB,CAAyBwB,EAAzB,KAAgC,IAAIhE,GAAJ,EAAjD;AAEA,QAAIqoD,SAAS,GAAG,KAAhB;AACA,QAAIC,qBAAJ;;AACA,QAAIrB,eAAe,CAACvW,KAAD,CAAnB,EAA4B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAM6X,UAAU,GAAG,GAAnB;AACAF,MAAAA,SAAS,GACP,CAAC3X,KAAK,CAAC2D,KAAN,GAAckU,UAAf,MAA+B,CAA/B,IACAvP,qBAAqB,CAACx2C,GAAtB,CAA0BwB,EAA1B,MAAkC,IAFpC;AAGAskD,MAAAA,qBAAqB,GAAGD,SAAS,GAAGrkD,EAAH,GAAQojD,yBAAyB,CAAC1W,KAAD,CAAlE;AACD,KAdD,MAcO;AACL4X,MAAAA,qBAAqB,GAAGlB,yBAAyB,CAAC1W,KAAD,CAAjD;AACD;;AAED,QAAM8X,OAAgB,GAAG;AACvBC,MAAAA,MAAM,EAAE;AADe,KAAzB;;AAIA,QAAIrhB,oBAAJ,EAA0B;AACxB,UAAI9hC,aAAa,IAAI,IAAjB,IAAyBA,aAAa,CAAC7C,cAAd,CAA6B,QAA7B,CAA7B,EAAqE;AACnE+lD,QAAAA,OAAO,CAACC,MAAR,GAAiBhhB,aAAa,CAACniC,aAAa,CAACojD,MAAf,CAA9B;AACD;AACF;;AAED,WAAO;AACL1kD,MAAAA,EAAE,EAAFA,EADK;AAGL;AACA2kD,MAAAA,YAAY,EAAE,OAAO3R,iBAAP,KAA6B,UAJtC;AAKL4R,MAAAA,oBAAoB,EAAE,OAAOzR,aAAP,KAAyB,UAL1C;AAOL;AACA0R,MAAAA,0BAA0B,EACxB,OAAO5R,2BAAP,KAAuC,UATpC;AAUL6R,MAAAA,0BAA0B,EACxB,OAAO5R,2BAAP,KAAuC,UAXpC;AAYL6R,MAAAA,+BAA+B,EAC7B,OAAO3R,uBAAP,KAAmC,UAbhC;AAcL4R,MAAAA,+BAA+B,EAC7B,OAAO3R,uBAAP,KAAmC,UAfhC;AAiBL4R,MAAAA,cAAc,EAAEvR,qBAAqB,IAAI4Q,qBAAqB,IAAI,IAjB7D;AAkBL;AACAD,MAAAA,SAAS,EAATA,SAnBK;AAoBLC,MAAAA,qBAAqB,EAArBA,qBApBK;AAsBLY,MAAAA,iBAAiB,EACfvR,wBAAwB,MACxB;AACC,OAACuK,kBAAD,IACC;AACA;AACAiH,MAAAA,2BAA2B,CAACzjD,GAA5B,CAAgC1B,EAAhC,CALsB,CAvBrB;AA8BL;AACAwjD,MAAAA,aAAa,EAAbA,aA/BK;AAiCL;AACAO,MAAAA,gBAAgB,EAAhBA,gBAlCK;AAoCLt+C,MAAAA,GAAG,EAAEA,GAAG,IAAI,IAAP,GAAcA,GAAd,GAAoB,IApCpB;AAsCLmqB,MAAAA,WAAW,EAAEsa,sBAAsB,CAACwC,KAAD,CAtC9B;AAuCLrrC,MAAAA,IAAI,EAAEE,WAvCD;AAyCL;AACA;AACAsD,MAAAA,OAAO,EAAPA,OA3CK;AA4CLuzC,MAAAA,KAAK,EAALA,KA5CK;AA6CLxzC,MAAAA,KAAK,EAAEtD,aA7CF;AA8CLy2C,MAAAA,KAAK,EAAEwL,SAAS,GAAGtlD,aAAH,GAAmB,IA9C9B;AA+CLkmD,MAAAA,MAAM,EAAE7+C,KAAK,CAACkd,IAAN,CAAW2hC,MAAM,CAACpqC,OAAP,EAAX,CA/CH;AAgDLqqC,MAAAA,QAAQ,EAAE9+C,KAAK,CAACkd,IAAN,CAAW4hC,QAAQ,CAACrqC,OAAT,EAAX,CAhDL;AAkDL;AACAgpC,MAAAA,MAAM,EAANA,MAnDK;AAqDL;AACAhkD,MAAAA,MAAM,EAAE63C,YAAY,IAAI,IAtDnB;AAwDLsN,MAAAA,QAAQ,EAARA,QAxDK;AAyDLkB,MAAAA,mBAAmB,EAAEp1B,QAAQ,CAACo1B,mBAzDzB;AA0DLC,MAAAA,eAAe,EAAEr1B,QAAQ,CAAC9kB,OA1DrB;AA4DLs5C,MAAAA,OAAO,EAAPA;AA5DK,KAAP;AA8DD;;AAED,MAAI7P,4BAAqD,GAAG,IAA5D;AACA,MAAIC,mCAA4C,GAAG,KAAnD;AACA,MAAI0Q,uBAA+B,GAAG,EAAtC;;AAEA,WAAS5C,8BAAT,CAAwC1iD,EAAxC,EAA6D;AAC3D,WACE20C,4BAA4B,KAAK,IAAjC,IACAA,4BAA4B,CAAC30C,EAA7B,KAAoCA,EAFtC;AAID;;AAED,WAASulD,qCAAT,CAA+CvlD,EAA/C,EAAoE;AAClE,WACE0iD,8BAA8B,CAAC1iD,EAAD,CAA9B,IAAsC,CAAC40C,mCADzC;AAGD,GA7vFkB,CA+vFnB;AACA;;;AACA,WAAS4Q,mBAAT,CAA6BtqB,IAA7B,EAA2D;AACzD,QAAIh9B,OAAO,GAAGonD,uBAAd;AACApqB,IAAAA,IAAI,CAACl6B,OAAL,CAAa,UAAAyE,GAAG,EAAI;AAClB,UAAI,CAACvH,OAAO,CAACuH,GAAD,CAAZ,EAAmB;AACjBvH,QAAAA,OAAO,CAACuH,GAAD,CAAP,GAAe,EAAf;AACD;;AACDvH,MAAAA,OAAO,GAAGA,OAAO,CAACuH,GAAD,CAAjB;AACD,KALD;AAMD;;AAED,WAASggD,mBAAT,CACEhgD,GADF,EAEEigD,iBAFF,EAGE;AACA;AACA;AACA,WAAO,SAAS7nB,aAAT,CAAuB3C,IAAvB,EAA8D;AACnE,cAAQwqB,iBAAR;AACE,aAAK,OAAL;AACE,cAAIxqB,IAAI,CAAC/9B,MAAL,KAAgB,CAApB,EAAuB;AACrB;AACA,mBAAO,IAAP;AACD;;AAED,cACE+9B,IAAI,CAACA,IAAI,CAAC/9B,MAAL,GAAc,CAAf,CAAJ,KAA0B,YAA1B,IACA+9B,IAAI,CAACA,IAAI,CAAC/9B,MAAL,GAAc,CAAf,CAAJ,KAA0B,UAF5B,EAGE;AACA;AACA;AACA;AACA,mBAAO,IAAP;AACD;;AAED,cACE+9B,IAAI,CAACA,IAAI,CAAC/9B,MAAL,GAAc,CAAf,CAAJ,KAA0B,UAA1B,IACA+9B,IAAI,CAACA,IAAI,CAAC/9B,MAAL,GAAc,CAAf,CAAJ,KAA0B,UAF5B,EAGE;AACA;AACA;AACA;AACA,mBAAO,IAAP;AACD;;AACD;;AACF;AACE;AA5BJ;;AA+BA,UAAIe,OAAO,GACTuH,GAAG,KAAK,IAAR,GAAe6/C,uBAAf,GAAyCA,uBAAuB,CAAC7/C,GAAD,CADlE;;AAEA,UAAI,CAACvH,OAAL,EAAc;AACZ,eAAO,KAAP;AACD;;AACD,WAAK,IAAI+P,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGitB,IAAI,CAAC/9B,MAAzB,EAAiC8Q,CAAC,EAAlC,EAAsC;AACpC/P,QAAAA,OAAO,GAAGA,OAAO,CAACg9B,IAAI,CAACjtB,CAAD,CAAL,CAAjB;;AACA,YAAI,CAAC/P,OAAL,EAAc;AACZ,iBAAO,KAAP;AACD;AACF;;AACD,aAAO,IAAP;AACD,KA5CD;AA6CD;;AAED,WAASynD,qBAAT,CAA+BC,gBAA/B,EAAyE;AAAA,QAChExN,KADgE,GAC5CwN,gBAD4C,CAChExN,KADgE;AAAA,QACzDp4C,EADyD,GAC5C4lD,gBAD4C,CACzD5lD,EADyD;AAAA,QACrD4E,KADqD,GAC5CghD,gBAD4C,CACrDhhD,KADqD;AAGvE,QAAM8nC,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB/uB,MAAAA,OAAO,CAACuS,IAAR,0CAA8ClwB,EAA9C;AACA;AACD;;AAPsE,QAShEuB,WATgE,GAS3BmrC,KAT2B,CAShEnrC,WATgE;AAAA,QASnDw+B,SATmD,GAS3B2M,KAT2B,CASnD3M,SATmD;AAAA,QASxC3+B,GATwC,GAS3BsrC,KAT2B,CASxCtrC,GATwC;AAAA,QASnCC,IATmC,GAS3BqrC,KAT2B,CASnCrrC,IATmC;;AAWvE,YAAQD,GAAR;AACE,WAAK+nC,cAAL;AACA,WAAKuI,wBAAL;AACA,WAAKzI,sBAAL;AACE95B,QAAAA,MAAM,CAAC02C,EAAP,GAAY9lB,SAAZ;AACA;;AACF,WAAKiJ,iBAAL;AACE75B,QAAAA,MAAM,CAAC02C,EAAP,GAAY;AACVzN,UAAAA,KAAK,EAALA,KADU;AAEVxzC,UAAAA,KAAK,EAALA,KAFU;AAGVvD,UAAAA,IAAI,EAAJA;AAHU,SAAZ;AAKA;;AACF,WAAKmB,UAAL;AACE2M,QAAAA,MAAM,CAAC02C,EAAP,GAAY;AACVzN,UAAAA,KAAK,EAALA,KADU;AAEVxzC,UAAAA,KAAK,EAALA,KAFU;AAGVvD,UAAAA,IAAI,EAAEA,IAAI,CAACO;AAHD,SAAZ;AAKA;;AACF,WAAKgwC,aAAL;AACA,WAAK1I,mBAAL;AACE/5B,QAAAA,MAAM,CAAC02C,EAAP,GAAY;AACVzN,UAAAA,KAAK,EAALA,KADU;AAEVxzC,UAAAA,KAAK,EAALA,KAFU;AAGVvD,UAAAA,IAAI,EACFE,WAAW,IAAI,IAAf,IAAuBA,WAAW,CAACF,IAAZ,IAAoB,IAA3C,GACIE,WAAW,CAACF,IADhB,GAEIA;AANI,SAAZ;AAQA;;AACF;AACE8N,QAAAA,MAAM,CAAC02C,EAAP,GAAY,IAAZ;AACA;AAjCJ;AAmCD;;AAED,WAASC,aAAT,CACE9lD,EADF,EAEEk7B,IAFF,EAGE7yB,KAHF,EAIQ;AACN,QAAIq6C,8BAA8B,CAAC1iD,EAAD,CAAlC,EAAwC;AACtC,UAAMhC,KAAK,GAAGg9B,iBAAW,CACrB2Z,4BADqB,EAEvBzZ,IAFuB,CAAzB;AAIA,UAAMz1B,GAAG,uBAAgB4C,KAAhB,CAAT;AAEAkgB,MAAAA,MAAM,CAAC9iB,GAAD,CAAN,GAAczH,KAAd;AAEA2f,MAAAA,OAAO,CAAC+D,GAAR,CAAYjc,GAAZ;AACAkY,MAAAA,OAAO,CAAC+D,GAAR,CAAY1jB,KAAZ;AACD;AACF;;AAED,WAAS+nD,+BAAT,CACE/lD,EADF,EAEEk7B,IAFF,EAGW;AACT,QAAIwnB,8BAA8B,CAAC1iD,EAAD,CAAlC,EAAwC;AACtC,UAAMgmD,WAAW,GAAGhrB,iBAAW,CAC3B2Z,4BAD2B,EAE7BzZ,IAF6B,CAA/B;AAKA,aAAO8E,iBAAiB,CAACgmB,WAAD,CAAxB;AACD;AACF;;AAED,WAASC,cAAT,CACEC,SADF,EAEElmD,EAFF,EAGEk7B,IAHF,EAIEirB,aAJF,EAK2B;AACzB,QAAIjrB,IAAI,KAAK,IAAb,EAAmB;AACjBsqB,MAAAA,mBAAmB,CAACtqB,IAAD,CAAnB;AACD;;AAED,QAAIwnB,8BAA8B,CAAC1iD,EAAD,CAA9B,IAAsC,CAACmmD,aAA3C,EAA0D;AACxD,UAAI,CAACvR,mCAAL,EAA0C;AACxC,YAAI1Z,IAAI,KAAK,IAAb,EAAmB;AACjB,cAAIwqB,iBAAiB,GAAG,IAAxB;;AACA,cAAIxqB,IAAI,CAAC,CAAD,CAAJ,KAAY,OAAhB,EAAyB;AACvBwqB,YAAAA,iBAAiB,GAAG,OAApB;AACD,WAJgB,CAMjB;AACA;;;AACA,iBAAO;AACL1lD,YAAAA,EAAE,EAAFA,EADK;AAELomD,YAAAA,UAAU,EAAEF,SAFP;AAGL7kD,YAAAA,IAAI,EAAE,eAHD;AAIL65B,YAAAA,IAAI,EAAJA,IAJK;AAKLl9B,YAAAA,KAAK,EAAEihC,cAAc,CACnBjE,iBAAW,CACP2Z,4BADO,EAETzZ,IAFS,CADQ,EAKnBuqB,mBAAmB,CAAC,IAAD,EAAOC,iBAAP,CALA,EAMnBxqB,IANmB;AALhB,WAAP;AAcD,SAtBD,MAsBO;AACL;AACA;AACA,iBAAO;AACLl7B,YAAAA,EAAE,EAAFA,EADK;AAELomD,YAAAA,UAAU,EAAEF,SAFP;AAGL7kD,YAAAA,IAAI,EAAE;AAHD,WAAP;AAKD;AACF;AACF,KAlCD,MAkCO;AACLikD,MAAAA,uBAAuB,GAAG,EAA1B;AACD;;AAED1Q,IAAAA,mCAAmC,GAAG,KAAtC;;AAEA,QAAI;AACFD,MAAAA,4BAA4B,GAAG0O,iBAAiB,CAACrjD,EAAD,CAAhD;AACD,KAFD,CAEE,OAAO6L,KAAP,EAAc;AACd;AACA,UAAIA,KAAK,CAACnN,IAAN,KAAe,4BAAnB,EAAiD;AAC/C,YAAI+O,OAAO,GAAG,oCAAd;AACA,YAAIzB,KAAJ,CAF+C,CAG/C;;AACA2R,QAAAA,OAAO,CAAC9R,KAAR,CAAc4B,OAAO,GAAG,MAAxB,EAAgC5B,KAAhC;;AACA,YAAIA,KAAK,CAAClL,KAAN,IAAe,IAAnB,EAAyB;AACvB,cAAM+rC,OAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,cAAMquB,aAAa,GACjBqe,OAAK,IAAI,IAAT,GAAgBxC,sBAAsB,CAACwC,OAAD,CAAtC,GAAgD,IADlD;AAEA/uB,UAAAA,OAAO,CAAC9R,KAAR,CACE,wEACE,uEADF,IAEGwiB,aAAa,IAAI,IAAjB,iBAA8BA,aAA9B,WAAkD,GAFrD,IAGE,8CAJJ,EAKExiB,KAAK,CAAClL,KALR;;AAOA,cAAIkL,KAAK,CAAClL,KAAN,YAAuB9C,KAA3B,EAAkC;AAChC4P,YAAAA,OAAO,GAAG5B,KAAK,CAAClL,KAAN,CAAY8M,OAAZ,IAAuBA,OAAjC;AACAzB,YAAAA,KAAK,GAAGH,KAAK,CAAClL,KAAN,CAAYqL,KAApB;AACD;AACF;;AAED,eAAO;AACL3K,UAAAA,IAAI,EAAE,OADD;AAELglD,UAAAA,SAAS,EAAE,MAFN;AAGLrmD,UAAAA,EAAE,EAAFA,EAHK;AAILomD,UAAAA,UAAU,EAAEF,SAJP;AAKLz4C,UAAAA,OAAO,EAAPA,OALK;AAMLzB,UAAAA,KAAK,EAALA;AANK,SAAP;AAQD,OAhCa,CAkCd;;;AACA,UAAIH,KAAK,CAACnN,IAAN,KAAe,qCAAnB,EAA0D;AACxD,eAAO;AACL2C,UAAAA,IAAI,EAAE,OADD;AAELglD,UAAAA,SAAS,EAAE,cAFN;AAGLrmD,UAAAA,EAAE,EAAFA,EAHK;AAILomD,UAAAA,UAAU,EAAEF,SAJP;AAKLz4C,UAAAA,OAAO,EACL,wDACA5B,KAAK,CAAC4B;AAPH,SAAP;AASD,OA7Ca,CA+Cd;;;AACAkQ,MAAAA,OAAO,CAAC9R,KAAR,CAAc,+BAAd,EAA+CA,KAA/C;AAEA,aAAO;AACLxK,QAAAA,IAAI,EAAE,OADD;AAELglD,QAAAA,SAAS,EAAE,UAFN;AAGLrmD,QAAAA,EAAE,EAAFA,EAHK;AAILomD,QAAAA,UAAU,EAAEF,SAJP;AAKLz4C,QAAAA,OAAO,EAAE5B,KAAK,CAAC4B,OALV;AAMLzB,QAAAA,KAAK,EAAEH,KAAK,CAACG;AANR,OAAP;AAQD;;AAED,QAAI2oC,4BAA4B,KAAK,IAArC,EAA2C;AACzC,aAAO;AACL30C,QAAAA,EAAE,EAAFA,EADK;AAELomD,QAAAA,UAAU,EAAEF,SAFP;AAGL7kD,QAAAA,IAAI,EAAE;AAHD,OAAP;AAKD,KAjHwB,CAmHzB;AACA;AACA;;;AACAskD,IAAAA,qBAAqB,CAAChR,4BAAD,CAArB,CAtHyB,CAwHzB;AACA;AACA;;AACA,QAAM2R,uBAAuB,GAAG,0BAAI3R,4BAAP,CAA7B,CA3HyB,CA4HzB;;;AACA2R,IAAAA,uBAAuB,CAACzhD,OAAxB,GAAkCo6B,cAAc,CAC9CqnB,uBAAuB,CAACzhD,OADsB,EAE9C4gD,mBAAmB,CAAC,SAAD,EAAY,IAAZ,CAF2B,CAAhD,CA7HyB,CAiIzB;;AACAa,IAAAA,uBAAuB,CAAClO,KAAxB,GAAgCnZ,cAAc,CAC5CqnB,uBAAuB,CAAClO,KADoB,EAE5CqN,mBAAmB,CAAC,OAAD,EAAU,OAAV,CAFyB,CAA9C,CAlIyB,CAsIzB;;AACAa,IAAAA,uBAAuB,CAAC1hD,KAAxB,GAAgCq6B,cAAc,CAC5CqnB,uBAAuB,CAAC1hD,KADoB,EAE5C6gD,mBAAmB,CAAC,OAAD,EAAU,IAAV,CAFyB,CAA9C,CAvIyB,CA2IzB;;AACAa,IAAAA,uBAAuB,CAACvO,KAAxB,GAAgC9Y,cAAc,CAC5CqnB,uBAAuB,CAACvO,KADoB,EAE5C0N,mBAAmB,CAAC,OAAD,EAAU,IAAV,CAFyB,CAA9C;AAKA,WAAO;AACLzlD,MAAAA,EAAE,EAAFA,EADK;AAELomD,MAAAA,UAAU,EAAEF,SAFP;AAGL7kD,MAAAA,IAAI,EAAE,WAHD;AAIL;AACArD,MAAAA,KAAK,EAAEsoD;AALF,KAAP;AAOD;;AAED,WAASC,mBAAT,CAA6BvmD,EAA7B,EAAyC;AACvC,QAAMgO,MAAM,GAAGu3C,qCAAqC,CAACvlD,EAAD,CAArC,GACX20C,4BADW,GAEX0O,iBAAiB,CAACrjD,EAAD,CAFrB;;AAGA,QAAIgO,MAAM,KAAK,IAAf,EAAqB;AACnB2P,MAAAA,OAAO,CAACuS,IAAR,0CAA8ClwB,EAA9C;AACA;AACD;;AAED,QAAMwmD,aAAa,GAAG,OAAO7oC,OAAO,CAACgpB,cAAf,KAAkC,UAAxD;;AACA,QAAI6f,aAAJ,EAAmB;AACjB7oC,MAAAA,OAAO,CAACgpB,cAAR,gCAC0B34B,MAAM,CAAC4hB,WAAP,IAAsB,WADhD,UAEE;AACA,8DAHF;AAKD;;AACD,QAAI5hB,MAAM,CAACpJ,KAAP,KAAiB,IAArB,EAA2B;AACzB+Y,MAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB1T,MAAM,CAACpJ,KAA7B;AACD;;AACD,QAAIoJ,MAAM,CAAC+pC,KAAP,KAAiB,IAArB,EAA2B;AACzBp6B,MAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB1T,MAAM,CAAC+pC,KAA7B;AACD;;AACD,QAAI/pC,MAAM,CAACoqC,KAAP,KAAiB,IAArB,EAA2B;AACzBz6B,MAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB1T,MAAM,CAACoqC,KAA7B;AACD;;AACD,QAAMqO,WAAW,GAAGr2B,yBAAyB,CAACpwB,EAAD,CAA7C;;AACA,QAAIymD,WAAW,KAAK,IAApB,EAA0B;AACxB9oC,MAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB+kC,WAAtB;AACD;;AACD,QAAIz4C,MAAM,CAACjP,MAAP,KAAkB,IAAtB,EAA4B;AAC1B4e,MAAAA,OAAO,CAAC+D,GAAR,CAAY,WAAZ,EAAyB1T,MAAM,CAACjP,MAAhC;AACD;;AACD,QAAIwpB,MAAM,CAACm+B,MAAP,IAAiB,WAAWp0C,IAAX,CAAgBq0C,SAAS,CAACC,SAA1B,CAArB,EAA2D;AACzDjpC,MAAAA,OAAO,CAAC+D,GAAR,CACE,+EADF;AAGD;;AACD,QAAI8kC,aAAJ,EAAmB;AACjB7oC,MAAAA,OAAO,CAACipB,QAAR;AACD;AACF;;AAED,WAASigB,UAAT,CACExlD,IADF,EAEErB,EAFF,EAGE8mD,MAHF,EAIE5rB,IAJF,EAKQ;AACN,QAAMwR,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI0sC,KAAK,KAAK,IAAd,EAAoB;AAClB,UAAMkM,QAAQ,GAAGlM,KAAK,CAAC3M,SAAvB;;AAEA,cAAQ1+B,IAAR;AACE,aAAK,SAAL;AACE;AACA;AACA;AACA65B,UAAAA,IAAI,GAAGA,IAAI,CAACp7B,KAAL,CAAW,CAAX,CAAP;;AAEA,kBAAQ4sC,KAAK,CAACtrC,GAAd;AACE,iBAAK+nC,cAAL;AACE,kBAAIjO,IAAI,CAAC/9B,MAAL,KAAgB,CAApB,EAAuB,CACrB;AACD,eAFD,MAEO;AACLk+B,gBAAAA,kBAAkB,CAACud,QAAQ,CAAC/zC,OAAV,EAAmBq2B,IAAnB,CAAlB;AACD;;AACD0d,cAAAA,QAAQ,CAACzzC,WAAT;AACA;;AACF,iBAAK6jC,iBAAL;AACE;AACA;AACA;AAZJ;;AAcA;;AACF,aAAK,OAAL;AACE,cAAI,OAAOiK,2BAAP,KAAuC,UAA3C,EAAuD;AACrDA,YAAAA,2BAA2B,CAACvG,KAAD,EAAUoa,MAAV,EAAiC5rB,IAAjC,CAA3B;AACD;;AACD;;AACF,aAAK,OAAL;AACE,cAAI0d,QAAQ,KAAK,IAAjB,EAAuB;AACrB,gBAAI,OAAOxF,uBAAP,KAAmC,UAAvC,EAAmD;AACjDA,cAAAA,uBAAuB,CAAC1G,KAAD,EAAQxR,IAAR,CAAvB;AACD;AACF,WAJD,MAIO;AACLwR,YAAAA,KAAK,CAACqa,YAAN,GAAqB1nB,cAAc,CAACuZ,QAAQ,CAACh0C,KAAV,EAAiBs2B,IAAjB,CAAnC;AACA0d,YAAAA,QAAQ,CAACzzC,WAAT;AACD;;AACD;;AACF,aAAK,OAAL;AACEk2B,UAAAA,kBAAkB,CAACud,QAAQ,CAACb,KAAV,EAAiB7c,IAAjB,CAAlB;AACA0d,UAAAA,QAAQ,CAACzzC,WAAT;AACA;AAxCJ;AA0CD;AACF;;AAED,WAAS6hD,UAAT,CACE3lD,IADF,EAEErB,EAFF,EAGE8mD,MAHF,EAIErrB,OAJF,EAKEC,OALF,EAMQ;AACN,QAAMgR,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI0sC,KAAK,KAAK,IAAd,EAAoB;AAClB,UAAMkM,QAAQ,GAAGlM,KAAK,CAAC3M,SAAvB;;AAEA,cAAQ1+B,IAAR;AACE,aAAK,SAAL;AACE;AACA;AACA;AACAo6B,UAAAA,OAAO,GAAGA,OAAO,CAAC37B,KAAR,CAAc,CAAd,CAAV;AACA47B,UAAAA,OAAO,GAAGA,OAAO,CAAC57B,KAAR,CAAc,CAAd,CAAV;;AAEA,kBAAQ4sC,KAAK,CAACtrC,GAAd;AACE,iBAAK+nC,cAAL;AACE,kBAAI1N,OAAO,CAACt+B,MAAR,KAAmB,CAAvB,EAA0B,CACxB;AACD,eAFD,MAEO;AACLq+B,gBAAAA,kBAAkB,CAACod,QAAQ,CAAC/zC,OAAV,EAAmB42B,OAAnB,EAA4BC,OAA5B,CAAlB;AACD;;AACDkd,cAAAA,QAAQ,CAACzzC,WAAT;AACA;;AACF,iBAAK6jC,iBAAL;AACE;AACA;AACA;AAZJ;;AAcA;;AACF,aAAK,OAAL;AACE,cAAI,OAAOkK,2BAAP,KAAuC,UAA3C,EAAuD;AACrDA,YAAAA,2BAA2B,CACzBxG,KADyB,EAEvBoa,MAFuB,EAGzBrrB,OAHyB,EAIzBC,OAJyB,CAA3B;AAMD;;AACD;;AACF,aAAK,OAAL;AACE,cAAIkd,QAAQ,KAAK,IAAjB,EAAuB;AACrB,gBAAI,OAAOvF,uBAAP,KAAmC,UAAvC,EAAmD;AACjDA,cAAAA,uBAAuB,CAAC3G,KAAD,EAAQjR,OAAR,EAAiBC,OAAjB,CAAvB;AACD;AACF,WAJD,MAIO;AACLgR,YAAAA,KAAK,CAACqa,YAAN,GAAqBxnB,cAAc,CACjCqZ,QAAQ,CAACh0C,KADwB,EAEjC62B,OAFiC,EAGjCC,OAHiC,CAAnC;AAKAkd,YAAAA,QAAQ,CAACzzC,WAAT;AACD;;AACD;;AACF,aAAK,OAAL;AACEq2B,UAAAA,kBAAkB,CAACod,QAAQ,CAACb,KAAV,EAAiBtc,OAAjB,EAA0BC,OAA1B,CAAlB;AACAkd,UAAAA,QAAQ,CAACzzC,WAAT;AACA;AAlDJ;AAoDD;AACF;;AAED,WAAS8hD,mBAAT,CACE5lD,IADF,EAEErB,EAFF,EAGE8mD,MAHF,EAIE5rB,IAJF,EAKEl9B,KALF,EAMQ;AACN,QAAM0uC,KAAK,GAAG+U,iCAAiC,CAACzhD,EAAD,CAA/C;;AACA,QAAI0sC,KAAK,KAAK,IAAd,EAAoB;AAClB,UAAMkM,QAAQ,GAAGlM,KAAK,CAAC3M,SAAvB;;AAEA,cAAQ1+B,IAAR;AACE,aAAK,SAAL;AACE;AACA;AACA;AACA65B,UAAAA,IAAI,GAAGA,IAAI,CAACp7B,KAAL,CAAW,CAAX,CAAP;;AAEA,kBAAQ4sC,KAAK,CAACtrC,GAAd;AACE,iBAAK+nC,cAAL;AACE,kBAAIjO,IAAI,CAAC/9B,MAAL,KAAgB,CAApB,EAAuB;AACrB;AACAy7C,gBAAAA,QAAQ,CAAC/zC,OAAT,GAAmB7G,KAAnB;AACD,eAHD,MAGO;AACL69B,gBAAAA,iBAAW,CAAC+c,QAAQ,CAAC/zC,OAAV,EAAmBq2B,IAAnB,EAAyBl9B,KAAzB,CAAX;AACD;;AACD46C,cAAAA,QAAQ,CAACzzC,WAAT;AACA;;AACF,iBAAK6jC,iBAAL;AACE;AACA;AACA;AAbJ;;AAeA;;AACF,aAAK,OAAL;AACE,cAAI,OAAOgK,iBAAP,KAA6B,UAAjC,EAA6C;AAC3CA,YAAAA,iBAAiB,CAACtG,KAAD,EAAUoa,MAAV,EAAiC5rB,IAAjC,EAAuCl9B,KAAvC,CAAjB;AACD;;AACD;;AACF,aAAK,OAAL;AACE,kBAAQ0uC,KAAK,CAACtrC,GAAd;AACE,iBAAK+nC,cAAL;AACEuD,cAAAA,KAAK,CAACqa,YAAN,GAAqBrnB,WAAW,CAACkZ,QAAQ,CAACh0C,KAAV,EAAiBs2B,IAAjB,EAAuBl9B,KAAvB,CAAhC;AACA46C,cAAAA,QAAQ,CAACzzC,WAAT;AACA;;AACF;AACE,kBAAI,OAAOguC,aAAP,KAAyB,UAA7B,EAAyC;AACvCA,gBAAAA,aAAa,CAACzG,KAAD,EAAQxR,IAAR,EAAcl9B,KAAd,CAAb;AACD;;AACD;AATJ;;AAWA;;AACF,aAAK,OAAL;AACE,kBAAQ0uC,KAAK,CAACtrC,GAAd;AACE,iBAAK+nC,cAAL;AACEtN,cAAAA,iBAAW,CAAC+c,QAAQ,CAACb,KAAV,EAAiB7c,IAAjB,EAAuBl9B,KAAvB,CAAX;AACA46C,cAAAA,QAAQ,CAACzzC,WAAT;AACA;AAJJ;;AAMA;AAhDJ;AAkDD;AACF;;AAgBD,MAAI41C,8BAA0D,GAAG,IAAjE;AACA,MAAI0B,oBAAiD,GAAG,IAAxD;AACA,MAAInE,eAAwC,GAAG,IAA/C;AACA,MAAI4O,2BAAuD,GAAG,IAA9D;AACA,MAAIC,kBAA8C,GAAG,IAArD;AACA,MAAIxc,WAAoB,GAAG,KAA3B;AACA,MAAI8V,kBAA0B,GAAG,CAAjC;AACA,MAAI/B,wBAAiC,GAAG,KAAxC;AACA,MAAI6C,gCAAmE,GACrE,IADF;;AAGA,WAAS6F,gBAAT,GAAkD;AAChD,QAAMC,YAAgD,GAAG,EAAzD;;AAEA,QAAI9F,gCAAgC,KAAK,IAAzC,EAA+C;AAC7C,YAAM1jD,KAAK,CACT,kEADS,CAAX;AAGD;;AAED0jD,IAAAA,gCAAgC,CAACvgD,OAAjC,CACE,UAACsgD,uBAAD,EAA0BzoB,MAA1B,EAAqC;AACnC,UAAMyuB,UAAoC,GAAG,EAA7C;AACA,UAAMC,wBAAiD,GAAG,EAA1D;AAEA,UAAM33B,WAAW,GACd6sB,oBAAoB,KAAK,IAAzB,IAAiCA,oBAAoB,CAACj+C,GAArB,CAAyBq6B,MAAzB,CAAlC,IACA,SAFF;;AAIA,UAAIquB,2BAA2B,IAAI,IAAnC,EAAyC;AACvCA,QAAAA,2BAA2B,CAAClmD,OAA5B,CAAoC,UAACo9C,gBAAD,EAAmBp+C,EAAnB,EAA0B;AAC5D,cACEmnD,kBAAkB,IAAI,IAAtB,IACAA,kBAAkB,CAAC3oD,GAAnB,CAAuBwB,EAAvB,MAA+B64B,MAFjC,EAGE;AACA;AACA;AACA0uB,YAAAA,wBAAwB,CAACxpD,IAAzB,CAA8B,CAACiC,EAAD,EAAKo+C,gBAAL,CAA9B;AACD;AACF,SATD;AAUD;;AAEDkD,MAAAA,uBAAuB,CAACtgD,OAAxB,CAAgC,UAACwmD,mBAAD,EAAsBC,WAAtB,EAAsC;AAAA,YAElE7I,kBAFkE,GAUhE4I,mBAVgE,CAElE5I,kBAFkE;AAAA,YAGlE5D,SAHkE,GAUhEwM,mBAVgE,CAGlExM,SAHkE;AAAA,YAIlEpb,cAJkE,GAUhE4nB,mBAVgE,CAIlE5nB,cAJkE;AAAA,YAKlE6e,iBALkE,GAUhE+I,mBAVgE,CAKlE/I,iBALkE;AAAA,YAMlE5e,qBANkE,GAUhE2nB,mBAVgE,CAMlE3nB,qBANkE;AAAA,YAOlE6gB,aAPkE,GAUhE8G,mBAVgE,CAOlE9G,aAPkE;AAAA,YAQlEF,UARkE,GAUhEgH,mBAVgE,CAQlEhH,UARkE;AAAA,YASlEG,QATkE,GAUhE6G,mBAVgE,CASlE7G,QATkE;AAYpE,YAAM+G,oBAA6C,GAAG,EAAtD;AACA,YAAMC,kBAA2C,GAAG,EAApD;;AACA,aAAK,IAAI15C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+sC,SAAS,CAAC79C,MAA9B,EAAsC8Q,CAAC,IAAI,CAA3C,EAA8C;AAC5C,cAAMqmC,OAAO,GAAG0G,SAAS,CAAC/sC,CAAD,CAAzB;AACAy5C,UAAAA,oBAAoB,CAAC3pD,IAArB,CAA0B,CAACu2C,OAAD,EAAU0G,SAAS,CAAC/sC,CAAC,GAAG,CAAL,CAAnB,CAA1B;AACA05C,UAAAA,kBAAkB,CAAC5pD,IAAnB,CAAwB,CAACu2C,OAAD,EAAU0G,SAAS,CAAC/sC,CAAC,GAAG,CAAL,CAAnB,CAAxB;AACD;;AAEDq5C,QAAAA,UAAU,CAACvpD,IAAX,CAAgB;AACd6gD,UAAAA,kBAAkB,EAChBA,kBAAkB,KAAK,IAAvB,GACIt5C,KAAK,CAACkd,IAAN,CAAWo8B,kBAAkB,CAAC7kC,OAAnB,EAAX,CADJ,GAEI,IAJQ;AAKdmyB,UAAAA,QAAQ,EAAEuS,iBALI;AAMd7e,UAAAA,cAAc,EAAdA,cANc;AAOd8nB,UAAAA,oBAAoB,EAApBA,oBAPc;AAQdC,UAAAA,kBAAkB,EAAlBA,kBARc;AASd9nB,UAAAA,qBAAqB,EAArBA,qBATc;AAUd6gB,UAAAA,aAAa,EAAbA,aAVc;AAWdt/B,UAAAA,SAAS,EAAEo/B,UAXG;AAYdG,UAAAA,QAAQ,EAARA;AAZc,SAAhB;AAcD,OAlCD;AAoCA0G,MAAAA,YAAY,CAACtpD,IAAb,CAAkB;AAChBupD,QAAAA,UAAU,EAAVA,UADgB;AAEhB13B,QAAAA,WAAW,EAAXA,WAFgB;AAGhB23B,QAAAA,wBAAwB,EAAxBA,wBAHgB;AAIhB1uB,QAAAA,MAAM,EAANA;AAJgB,OAAlB;AAMD,KAhEH;AAmEA,QAAI+uB,YAAY,GAAG,IAAnB;;AACA,QAAI,OAAO1c,eAAP,KAA2B,UAA/B,EAA2C;AACzC,UAAMT,mBAAmB,GAAGS,eAAe,EAA3C;;AACA,UAAIT,mBAAJ,EAAyB;AAAA,YAErB0B,qBAFqB,GAOnB1B,mBAPmB,CAErB0B,qBAFqB;AAAA,YAGrBgD,4BAHqB,GAOnB1E,mBAPmB,CAGrB0E,4BAHqB;AAAA,YAIrB5D,cAJqB,GAOnBd,mBAPmB,CAIrBc,cAJqB;AAAA,YAKrBa,qBALqB,GAOnB3B,mBAPmB,CAKrB2B,qBALqB;AAAA,YAMlByb,IANkB,4BAOnBpd,mBAPmB;;AASvBmd,QAAAA,YAAY,GAAG,gDACVC,IADO;AAGV;AACA;AACA;AACA;AACAC,UAAAA,+BAA+B,EAAExiD,KAAK,CAACkd,IAAN,CAC/B2pB,qBAAqB,CAACpyB,OAAtB,EAD+B,CAPvB;AAUVo1B,UAAAA,4BAA4B,EAAE7pC,KAAK,CAACkd,IAAN,CAC5B2sB,4BAA4B,CAACp1B,OAA7B,EAD4B,CAVpB;AAaVguC,UAAAA,wBAAwB,EAAEziD,KAAK,CAACkd,IAAN,CAAW+oB,cAAc,CAACxxB,OAAf,EAAX,CAbhB;AAcViuC,UAAAA,+BAA+B,EAAE1iD,KAAK,CAACkd,IAAN,CAC/B4pB,qBAAqB,CAACryB,OAAtB,EAD+B;AAdvB,UAAZ;AAkBD;AACF;;AAED,WAAO;AACLstC,MAAAA,YAAY,EAAZA,YADK;AAELv3B,MAAAA,UAAU,EAAVA,UAFK;AAGL83B,MAAAA,YAAY,EAAZA;AAHK,KAAP;AAKD;;AAED,WAASK,cAAT,CAAwBC,8BAAxB,EAAiE;AAC/D,QAAIvd,WAAJ,EAAiB;AACf;AACD;;AAED+T,IAAAA,wBAAwB,GAAGwJ,8BAA3B,CAL+D,CAO/D;AACA;AACA;AACA;;AACAzL,IAAAA,oBAAoB,GAAG,IAAIzgD,GAAJ,EAAvB;AACAkrD,IAAAA,2BAA2B,GAAG,IAAIlrD,GAAJ,CAAQg7C,uBAAR,CAA9B;AACAmQ,IAAAA,kBAAkB,GAAG,IAAInrD,GAAJ,CAAQi7C,WAAR,CAArB;AACAqB,IAAAA,eAAe,GAAG,IAAIt8C,GAAJ,EAAlB;AAEA62C,IAAAA,IAAI,CAACsD,aAAL,CAAmBrmB,UAAnB,EAA+B9uB,OAA/B,CAAuC,UAAAmK,IAAI,EAAI;AAC7C,UAAM0tB,MAAM,GAAGue,gBAAgB,CAACjsC,IAAI,CAACjN,OAAN,CAA/B;AACEu+C,MAAAA,oBAAF,CAAoDp/C,GAApD,CACEw7B,MADF,EAEE6jB,qBAAqB,CAACvxC,IAAI,CAACjN,OAAN,CAFvB;;AAKA,UAAIgqD,8BAAJ,EAAoC;AAClC;AACA;AACA;AACAlP,QAAAA,4BAA4B,CAAC7tC,IAAI,CAACjN,OAAN,CAA5B;AACD;AACF,KAbD;AAeAysC,IAAAA,WAAW,GAAG,IAAd;AACA8V,IAAAA,kBAAkB,GAAG1tB,uBAAc,EAAnC;AACAwuB,IAAAA,gCAAgC,GAAG,IAAIvlD,GAAJ,EAAnC;;AAEA,QAAIkzC,qBAAqB,KAAK,IAA9B,EAAoC;AAClCA,MAAAA,qBAAqB,CAAC,IAAD,CAArB;AACD;AACF;;AAED,WAASiZ,aAAT,GAAyB;AACvBxd,IAAAA,WAAW,GAAG,KAAd;AACA+T,IAAAA,wBAAwB,GAAG,KAA3B;;AAEA,QAAIxP,qBAAqB,KAAK,IAA9B,EAAoC;AAClCA,MAAAA,qBAAqB,CAAC,KAAD,CAArB;AACD;AACF,GAh9GkB,CAk9GnB;;;AACA,MACEzpB,qBAAqB,CAAChB,sCAAD,CAArB,KAAkE,MADpE,EAEE;AACAwjC,IAAAA,cAAc,CACZxiC,qBAAqB,CAACjB,8CAAD,CAArB,KACE,MAFU,CAAd;AAID,GA19GkB,CA49GnB;AACA;;;AACA,WAASizB,0BAAT,GAAsC;AACpC,WAAO,IAAP;AACD,GAh+GkB,CAk+GnB;AACA;;;AACA,MAAMzC,qBAAqB,GAAG,IAAIh5C,GAAJ,EAA9B;;AAEA,WAASosD,8BAAT,CAAwC1b,KAAxC,EAAoD;AAClD,QAAI,OAAO6G,eAAP,KAA2B,UAA/B,EAA2C;AACzC,YAAM,IAAI11C,KAAJ,CACJ,wEADI,CAAN;AAGD;;AAED,QAAMmC,EAAE,GAAG+0C,gBAAgB,CAACrI,KAAD,CAA3B;;AACA,QAAI1sC,EAAE,KAAK,IAAX,EAAiB;AACf,aAAO,IAAP;AACD;;AAED,QAAIqoD,MAAM,GAAG,IAAb;;AACA,QAAIrT,qBAAqB,CAACtzC,GAAtB,CAA0B1B,EAA1B,CAAJ,EAAmC;AACjCqoD,MAAAA,MAAM,GAAGrT,qBAAqB,CAACx2C,GAAtB,CAA0BwB,EAA1B,CAAT;;AACA,UAAIqoD,MAAM,KAAK,KAAf,EAAsB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACArT,QAAAA,qBAAqB,CAAC1+B,MAAtB,CAA6BtW,EAA7B;;AAEA,YAAIg1C,qBAAqB,CAACt7B,IAAtB,KAA+B,CAAnC,EAAsC;AACpC;AACA65B,UAAAA,eAAe,CAACkE,0BAAD,CAAf;AACD;AACF;AACF;;AACD,WAAO4Q,MAAP;AACD;;AAED,WAASC,aAAT,CAAuBtoD,EAAvB,EAAmCuoD,UAAnC,EAAwD;AACtD,QACE,OAAOhV,eAAP,KAA2B,UAA3B,IACA,OAAOE,cAAP,KAA0B,UAF5B,EAGE;AACA,YAAM,IAAI51C,KAAJ,CACJ,wEADI,CAAN;AAGD;;AAEDm3C,IAAAA,qBAAqB,CAAC33C,GAAtB,CAA0B2C,EAA1B,EAA8BuoD,UAA9B;;AAEA,QAAIvT,qBAAqB,CAACt7B,IAAtB,KAA+B,CAAnC,EAAsC;AACpC;AACA65B,MAAAA,eAAe,CAAC6U,8BAAD,CAAf;AACD;;AAED,QAAM1b,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB+G,MAAAA,cAAc,CAAC/G,KAAD,CAAd;AACD;AACF;;AAED,WAAS8b,6BAAT,GAAyC;AACvC,WAAO,KAAP;AACD;;AAED,MAAMrD,2BAA2B,GAAG,IAAIz2B,GAAJ,EAApC;;AAEA,WAAS+5B,gCAAT,CAA0C/b,KAA1C,EAAsD;AACpD,QAAMoI,OAAO,GAAGC,gBAAgB,CAAGrI,KAAH,CAAhC;AACA,WAAOoI,OAAO,KAAK,IAAZ,IAAoBqQ,2BAA2B,CAACzjD,GAA5B,CAAgCozC,OAAhC,CAA3B;AACD;;AAED,WAAS4T,gBAAT,CAA0B1oD,EAA1B,EAAsC2oD,aAAtC,EAA8D;AAC5D,QACE,OAAOnV,kBAAP,KAA8B,UAA9B,IACA,OAAOC,cAAP,KAA0B,UAF5B,EAGE;AACA,YAAM,IAAI51C,KAAJ,CACJ,2EADI,CAAN;AAGD;;AACD,QAAI8qD,aAAJ,EAAmB;AACjBxD,MAAAA,2BAA2B,CAACvjC,GAA5B,CAAgC5hB,EAAhC;;AACA,UAAImlD,2BAA2B,CAACzrC,IAA5B,KAAqC,CAAzC,EAA4C;AAC1C;AACA85B,QAAAA,kBAAkB,CAACiV,gCAAD,CAAlB;AACD;AACF,KAND,MAMO;AACLtD,MAAAA,2BAA2B,CAAC7uC,MAA5B,CAAmCtW,EAAnC;;AACA,UAAImlD,2BAA2B,CAACzrC,IAA5B,KAAqC,CAAzC,EAA4C;AAC1C;AACA85B,QAAAA,kBAAkB,CAACgV,6BAAD,CAAlB;AACD;AACF;;AACD,QAAM9b,KAAK,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAAd;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB+G,MAAAA,cAAc,CAAC/G,KAAD,CAAd;AACD;AACF,GAtkHkB,CAwkHnB;AACA;;;AACA,MAAI4T,WAAoC,GAAG,IAA3C;AACA,MAAIrD,qBAAmC,GAAG,IAA1C;AACA,MAAI2L,qBAAqB,GAAG,CAAC,CAA7B;AACA,MAAIrI,oBAAoB,GAAG,KAA3B;;AAEA,WAASrD,cAAT,CAAwBhiB,IAAxB,EAAuD;AACrD,QAAIA,IAAI,KAAK,IAAb,EAAmB;AACjB+hB,MAAAA,qBAAqB,GAAG,IAAxB;AACA2L,MAAAA,qBAAqB,GAAG,CAAC,CAAzB;AACArI,MAAAA,oBAAoB,GAAG,KAAvB;AACD;;AACDD,IAAAA,WAAW,GAAGplB,IAAd;AACD,GAtlHkB,CAwlHnB;AACA;AACA;;;AACA,WAASsiB,iCAAT,CAA2C9Q,KAA3C,EAAkE;AAChE,QAAI4T,WAAW,KAAK,IAAhB,IAAwB,CAACC,oBAA7B,EAAmD;AACjD;AACA,aAAO,KAAP;AACD;;AACD,QAAMsI,WAAW,GAAGnc,KAAK,CAAC/qC,MAA1B;AACA,QAAMmnD,eAAe,GAAGD,WAAW,KAAK,IAAhB,GAAuBA,WAAW,CAACpb,SAAnC,GAA+C,IAAvE,CANgE,CAOhE;AACA;AACA;;AACA,QACEwP,qBAAqB,KAAK4L,WAA1B,IACC5L,qBAAqB,KAAK6L,eAA1B,IAA6CA,eAAe,KAAK,IAFpE,EAGE;AACA;AACA,UAAMC,WAAW,GAAGC,YAAY,CAACtc,KAAD,CAAhC,CAFA,CAGA;;AACA,UAAMuc,aAAa,GAAG3I,WAAW,CAACsI,qBAAqB,GAAG,CAAzB,CAAjC;;AACA,UAAIK,aAAa,KAAKt8C,SAAtB,EAAiC;AAC/B,cAAM,IAAI9O,KAAJ,CAAU,4CAAV,CAAN;AACD;;AACD,UACEkrD,WAAW,CAAC/lC,KAAZ,KAAsBimC,aAAa,CAACjmC,KAApC,IACA+lC,WAAW,CAACtjD,GAAZ,KAAoBwjD,aAAa,CAACxjD,GADlC,IAEAsjD,WAAW,CAACn5B,WAAZ,KAA4Bq5B,aAAa,CAACr5B,WAH5C,EAIE;AACA;AACAqtB,QAAAA,qBAAqB,GAAGvQ,KAAxB;AACAkc,QAAAA,qBAAqB,GAHrB,CAIA;AACA;;AACA,YAAIA,qBAAqB,KAAKtI,WAAW,CAACnjD,MAAZ,GAAqB,CAAnD,EAAsD;AACpD;AACA;AACAojD,UAAAA,oBAAoB,GAAG,KAAvB;AACD,SAJD,MAIO;AACL;AACAA,UAAAA,oBAAoB,GAAG,IAAvB;AACD,SAbD,CAcA;AACA;;;AACA,eAAO,KAAP;AACD;AACF,KA3C+D,CA4ChE;AACA;;;AACAA,IAAAA,oBAAoB,GAAG,KAAvB,CA9CgE,CA+ChE;;AACA,WAAO,IAAP;AACD;;AAED,WAASvC,gCAAT,CACET,4BADF,EAEE;AACA;AACA;AACAgD,IAAAA,oBAAoB,GAAGhD,4BAAvB;AACD,GAppHkB,CAspHnB;AACA;AACA;AACA;;;AACA,MAAM2L,cAAmC,GAAG,IAAIltD,GAAJ,EAA5C;AACA,MAAMu6C,sBAA2C,GAAG,IAAIv6C,GAAJ,EAApD;;AAEA,WAASw6C,gBAAT,CAA0Bx2C,EAA1B,EAAsC0sC,KAAtC,EAAoD;AAClD,QAAMhuC,IAAI,GAAGg+C,qBAAqB,CAAChQ,KAAD,CAAlC;AACA,QAAMyc,OAAO,GAAG5S,sBAAsB,CAAC/3C,GAAvB,CAA2BE,IAA3B,KAAoC,CAApD;AACA63C,IAAAA,sBAAsB,CAACl5C,GAAvB,CAA2BqB,IAA3B,EAAiCyqD,OAAO,GAAG,CAA3C;AACA,QAAMC,SAAS,aAAM1qD,IAAN,cAAcyqD,OAAd,CAAf;AACAD,IAAAA,cAAc,CAAC7rD,GAAf,CAAmB2C,EAAnB,EAAuBopD,SAAvB;AACD;;AAED,WAAS/H,mBAAT,CAA6BrhD,EAA7B,EAAyC;AACvC,QAAMopD,SAAS,GAAGF,cAAc,CAAC1qD,GAAf,CAAmBwB,EAAnB,CAAlB;;AACA,QAAIopD,SAAS,KAAKz8C,SAAlB,EAA6B;AAC3B,YAAM,IAAI9O,KAAJ,CAAU,uCAAV,CAAN;AACD;;AACD,QAAMa,IAAI,GAAG0qD,SAAS,CAACtpD,KAAV,CAAgB,CAAhB,EAAmBspD,SAAS,CAACjqD,WAAV,CAAsB,GAAtB,CAAnB,CAAb;AACA,QAAMgqD,OAAO,GAAG5S,sBAAsB,CAAC/3C,GAAvB,CAA2BE,IAA3B,CAAhB;;AACA,QAAIyqD,OAAO,KAAKx8C,SAAhB,EAA2B;AACzB,YAAM,IAAI9O,KAAJ,CAAU,+BAAV,CAAN;AACD;;AACD,QAAIsrD,OAAO,GAAG,CAAd,EAAiB;AACf5S,MAAAA,sBAAsB,CAACl5C,GAAvB,CAA2BqB,IAA3B,EAAiCyqD,OAAO,GAAG,CAA3C;AACD,KAFD,MAEO;AACL5S,MAAAA,sBAAsB,CAACjgC,MAAvB,CAA8B5X,IAA9B;AACD;;AACDwqD,IAAAA,cAAc,CAAC5yC,MAAf,CAAsBtW,EAAtB;AACD;;AAED,WAAS08C,qBAAT,CAA+BhQ,KAA/B,EAAqD;AACnD,QAAI2c,oBAAoB,GAAG,IAA3B;AACA,QAAIC,mBAAmB,GAAG,IAA1B;AACA,QAAIrQ,KAAK,GAAGvM,KAAK,CAACuM,KAAlB,CAHmD,CAInD;AACA;;AACA,SAAK,IAAIhrC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;AAC1B,UAAIgrC,KAAK,KAAK,IAAd,EAAoB;AAClB;AACD;;AACD,UAAMrpB,WAAW,GAAGsa,sBAAsB,CAAC+O,KAAD,CAA1C;;AACA,UAAIrpB,WAAW,KAAK,IAApB,EAA0B;AACxB;AACA;AACA,YAAI,OAAOqpB,KAAK,CAAC53C,IAAb,KAAsB,UAA1B,EAAsC;AACpC;AACA;AACAgoD,UAAAA,oBAAoB,GAAGz5B,WAAvB;AACD,SAJD,MAIO,IAAI05B,mBAAmB,KAAK,IAA5B,EAAkC;AACvCA,UAAAA,mBAAmB,GAAG15B,WAAtB;AACD;AACF;;AACD,UAAIy5B,oBAAoB,KAAK,IAA7B,EAAmC;AACjC;AACD;;AACDpQ,MAAAA,KAAK,GAAGA,KAAK,CAACA,KAAd;AACD;;AACD,WAAOoQ,oBAAoB,IAAIC,mBAAxB,IAA+C,WAAtD;AACD;;AAED,WAASN,YAAT,CAAsBtc,KAAtB,EAA+C;AAAA,QACtCjnC,GADsC,GAC/BinC,KAD+B,CACtCjnC,GADsC;AAE7C,QAAImqB,WAAW,GAAGsa,sBAAsB,CAACwC,KAAD,CAAxC;AACA,QAAM1pB,KAAK,GAAG0pB,KAAK,CAAC1pB,KAApB;;AACA,YAAQ0pB,KAAK,CAACtrC,GAAd;AACE,WAAKkwC,QAAL;AACE;AACA;AACA,YAAMtxC,EAAE,GAAGo3C,gBAAgB,CAAC1K,KAAD,CAA3B;AACA,YAAM0c,SAAS,GAAGF,cAAc,CAAC1qD,GAAf,CAAmBwB,EAAnB,CAAlB;;AACA,YAAIopD,SAAS,KAAKz8C,SAAlB,EAA6B;AAC3B,gBAAM,IAAI9O,KAAJ,CAAU,iDAAV,CAAN;AACD;;AACD+xB,QAAAA,WAAW,GAAGw5B,SAAd;AACA;;AACF,WAAKxgB,aAAL;AACEhZ,QAAAA,WAAW,GAAG8c,KAAK,CAACrrC,IAApB;AACA;;AACF;AACE;AAfJ;;AAiBA,WAAO;AACLuuB,MAAAA,WAAW,EAAXA,WADK;AAELnqB,MAAAA,GAAG,EAAHA,GAFK;AAGLud,MAAAA,KAAK,EAALA;AAHK,KAAP;AAKD,GA/uHkB,CAivHnB;AACA;AACA;AACA;;;AACA,WAASumC,iBAAT,CAA2BvpD,EAA3B,EAAgE;AAC9D,QAAI0sC,KAAa,GAAGiG,qBAAqB,CAACn0C,GAAtB,CAA0BwB,EAA1B,CAApB;;AACA,QAAI0sC,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAO,IAAP;AACD;;AACD,QAAM8c,OAAO,GAAG,EAAhB;;AACA,WAAO9c,KAAK,KAAK,IAAjB,EAAuB;AACrB;AACA8c,MAAAA,OAAO,CAACzrD,IAAR,CAAairD,YAAY,CAACtc,KAAD,CAAzB,EAFqB,CAGrB;;AACAA,MAAAA,KAAK,GAAGA,KAAK,CAAC/qC,MAAd;AACD;;AACD6nD,IAAAA,OAAO,CAAC7mC,OAAR;AACA,WAAO6mC,OAAP;AACD;;AAED,WAASC,0BAAT,GAAwD;AACtD,QAAInJ,WAAW,KAAK,IAApB,EAA0B;AACxB;AACA,aAAO,IAAP;AACD;;AACD,QAAIrD,qBAAqB,KAAK,IAA9B,EAAoC;AAClC;AACA,aAAO,IAAP;AACD,KARqD,CAStD;;;AACA,QAAIvQ,KAAmB,GAAGuQ,qBAA1B;;AACA,WAAOvQ,KAAK,KAAK,IAAV,IAAkBiK,iBAAiB,CAACjK,KAAD,CAA1C,EAAmD;AACjDA,MAAAA,KAAK,GAAGA,KAAK,CAAC/qC,MAAd;AACD;;AACD,QAAI+qC,KAAK,KAAK,IAAd,EAAoB;AAClB,aAAO,IAAP;AACD;;AACD,WAAO;AACL1sC,MAAAA,EAAE,EAAEo3C,gBAAgB,CAAC1K,KAAD,CADf;AAEL;AACAgd,MAAAA,WAAW,EAAEd,qBAAqB,KAAKtI,WAAW,CAACnjD,MAAZ,GAAqB;AAHvD,KAAP;AAKD;;AAED,MAAM+jD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACR,aAAD,EAA4B;AACtD,QAAIA,aAAa,IAAI,IAArB,EAA2B;AACzB,aAAO,SAAP;AACD;;AAED,YAAQA,aAAR;AACE,WAAKjQ,iBAAL;AACE,eAAO,WAAP;;AACF,WAAKC,oBAAL;AACE,eAAO,eAAP;;AACF,WAAKC,cAAL;AACE,eAAO,QAAP;;AACF,WAAKC,WAAL;AACE,eAAO,KAAP;;AACF,WAAKC,YAAL;AACE,eAAO,MAAP;;AACF,WAAKC,UAAL;AACA;AACE,eAAO,SAAP;AAbJ;AAeD,GApBD;;AAsBA,WAAS6Y,sBAAT,CAAgCz2B,SAAhC,EAA0D;AACxD0iB,IAAAA,mBAAmB,GAAG1iB,SAAtB;AACD;;AAED,WAAS/C,cAAT,CAAwBnwB,EAAxB,EAA6C;AAC3C,WAAO2yC,qBAAqB,CAACjxC,GAAtB,CAA0B1B,EAA1B,CAAP;AACD;;AAED,SAAO;AACLigD,IAAAA,OAAO,EAAPA,OADK;AAEL/L,IAAAA,sBAAsB,EAAtBA,sBAFK;AAGLO,IAAAA,qBAAqB,EAArBA,qBAHK;AAILC,IAAAA,uBAAuB,EAAvBA,uBAJK;AAKLqR,IAAAA,+BAA+B,EAA/BA,+BALK;AAMLc,IAAAA,UAAU,EAAVA,UANK;AAOLz2B,IAAAA,yBAAyB,EAAzBA,yBAPK;AAQLgwB,IAAAA,sBAAsB,EAAtBA,sBARK;AASLqJ,IAAAA,0BAA0B,EAA1BA,0BATK;AAULv8B,IAAAA,wBAAwB,EAAxBA,wBAVK;AAWLy0B,IAAAA,iBAAiB,EAAjBA,iBAXK;AAYL30B,IAAAA,mBAAmB,EAAnBA,mBAZK;AAaLg2B,IAAAA,mBAAmB,EAAnBA,mBAbK;AAcLF,IAAAA,aAAa,EAAbA,aAdK;AAeLyG,IAAAA,iBAAiB,EAAjBA,iBAfK;AAgBLnC,IAAAA,gBAAgB,EAAhBA,gBAhBK;AAiBLnG,IAAAA,qBAAqB,EAArBA,qBAjBK;AAkBLF,IAAAA,wBAAwB,EAAxBA,wBAlBK;AAmBLC,IAAAA,yBAAyB,EAAzBA,yBAnBK;AAoBL7wB,IAAAA,cAAc,EAAdA,cApBK;AAqBL81B,IAAAA,cAAc,EAAdA,cArBK;AAsBLM,IAAAA,mBAAmB,EAAnBA,mBAtBK;AAuBLtW,IAAAA,yBAAyB,EAAzBA,kBAvBK;AAwBLwS,IAAAA,0BAA0B,EAA1BA,0BAxBK;AAyBLG,IAAAA,wBAAwB,EAAxBA,wBAzBK;AA0BL0F,IAAAA,aAAa,EAAbA,aA1BK;AA2BLI,IAAAA,gBAAgB,EAAhBA,gBA3BK;AA4BLzB,IAAAA,mBAAmB,EAAnBA,mBA5BK;AA6BLD,IAAAA,UAAU,EAAVA,UA7BK;AA8BLh3B,IAAAA,QAAQ,EAARA,QA9BK;AA+BL25B,IAAAA,sBAAsB,EAAtBA,sBA/BK;AAgCLzM,IAAAA,cAAc,EAAdA,cAhCK;AAiCL+K,IAAAA,cAAc,EAAdA,cAjCK;AAkCLE,IAAAA,aAAa,EAAbA,aAlCK;AAmCLrC,IAAAA,aAAa,EAAbA,aAnCK;AAoCL3V,IAAAA,2BAA2B,EAA3BA,oBApCK;AAqCL+F,IAAAA,sBAAsB,EAAtBA;AArCK,GAAP;AAuCD;;;;;;;;;;;;;;;;ACr5ID;;;;;;;;AAgBA;AAEA;AACA;AACA;AACA;AAEA,IAAM0T,wBAAwB,GAAG,CAAC,OAAD,EAAU,OAAV,EAAmB,MAAnB,CAAjC;AACA,IAAMC,yBAAyB,GAAG,kBAAlC,EAEA;AACA;;AACA,IAAMC,YAAY,GAAG,mBAArB,EACA;AACA;;AACA,IAAMC,uBAAuB,GAAG,gBAAhC;AAEO,SAASC,sBAAT,CAAgCC,IAAhC,EAAuD;AAC5D,SAAOH,YAAY,CAACx3C,IAAb,CAAkB23C,IAAlB,KAA2BF,uBAAuB,CAACz3C,IAAxB,CAA6B23C,IAA7B,CAAlC;AACD;AAED,IAAMC,qBAAqB,GAAG,KAA9B,EAEA;AACA;AACA;AACA;;AACA,SAASC,oBAAT,CAA8B37C,IAA9B,EAAmDy1C,MAAnD,EAA4E;AAC1E,SACEz1C,IAAI,CAACrR,MAAL,IAAe,CAAf,IACA+sD,qBAAqB,CAAC53C,IAAtB,CAA2B9D,IAAI,CAAC,CAAD,CAA/B,CADA,IAEAA,IAAI,CAAC,CAAD,CAAJ,sBAAsB47C,eAAe,CAACnG,MAAD,CAAf,IAA2B,EAAjD,CAHF;AAKD;;AAED,SAASmG,eAAT,CAAyBnG,MAAzB,EAAkD;AAChD,UAAQA,MAAR;AACE,SAAK,MAAL;AACE,aAAOoG,kBAAkB,CAACC,YAAnB,KAAoC,OAApC,GACHxoD,0BADG,GAEHA,yBAFJ;;AAGF,SAAK,OAAL;AACE,aAAOuoD,kBAAkB,CAACC,YAAnB,KAAoC,OAApC,GACHxoD,2BADG,GAEHA,0BAFJ;;AAGF,SAAK,KAAL;AACA;AACE,aAAOuoD,kBAAkB,CAACC,YAAnB,KAAoC,OAApC,GACHxoD,2BADG,GAEHA,0BAFJ;AAXJ;AAeD;;AAOD,IAAM+oD,iBAQL,GAAG,IAAI7uD,GAAJ,EARJ;AAUA,IAAI8uD,aAAqB,GAAGntC,OAA5B;AACA,IAAIotC,oBAA4C,GAAG,EAAnD;;AACA,KAAK,IAAM9G,MAAX,IAAqBtmC,OAArB,EAA8B;AAC5BotC,EAAAA,oBAAoB,CAAC9G,MAAD,CAApB,GAA+BtmC,OAAO,CAACsmC,MAAD,CAAtC;AACD;;AAED,IAAI+G,SAA8B,GAAG,IAArC;AAEA,IAAIC,MAAM,GAAG,KAAb;;AACA,IAAI;AACFA,EAAAA,MAAM,GAAG,SAAI,KAAK97C,MAAlB;AACD,CAFD,CAEE,OAAOtD,KAAP,EAAc,CAAE,EAElB;;;AACO,SAASq/C,oCAAT,CACLC,uBADK,EAEC;AACNL,EAAAA,aAAa,GAAGK,uBAAhB;AAEAJ,EAAAA,oBAAoB,GAAI,EAAxB;;AACA,OAAK,IAAM9G,OAAX,IAAqB6G,aAArB,EAAoC;AAClCC,IAAAA,oBAAoB,CAAC9G,OAAD,CAApB,GAA+BtmC,OAAO,CAACsmC,OAAD,CAAtC;AACD;AACF,EAED;AACA;AACA;;AACO,SAASnU,gBAAT,CACL9f,QADK,EAEL6kB,gBAFK,EAGC;AAAA,MAEJtN,oBAFI,GAMFvX,QANE,CAEJuX,oBAFI;AAAA,MAGJ6jB,eAHI,GAMFp7B,QANE,CAGJo7B,eAHI;AAAA,MAIJvJ,uBAJI,GAMF7xB,QANE,CAIJ6xB,uBAJI;AAAA,MAKJ32C,OALI,GAMF8kB,QANE,CAKJ9kB,OALI,EAQN;;AACA,MAAI,OAAO22C,uBAAP,KAAmC,UAAvC,EAAmD;AACjD;AACD,GAXK,CAaN;AACA;;;AACA,MAAIta,oBAAoB,IAAI,IAAxB,IAAgC,OAAO6jB,eAAP,KAA2B,UAA/D,EAA2E;AAAA,gCAC/C7a,yBAAyB,CAACrlC,OAAD,CADsB;AAAA,QAClE8lC,eADkE,yBAClEA,eADkE;;AAGzE6Z,IAAAA,iBAAiB,CAACxtD,GAAlB,CAAsB2yB,QAAtB,EAAgC;AAC9BuX,MAAAA,oBAAoB,EAApBA,oBAD8B;AAE9B6jB,MAAAA,eAAe,EAAfA,eAF8B;AAG9B1iB,MAAAA,UAAU,EAAEsI,eAHkB;AAI9B6D,MAAAA,gBAAgB,EAAhBA;AAJ8B,KAAhC;AAMD;AACF;AAED,IAAMwV,kBAAwC,GAAG;AAC/CgB,EAAAA,oBAAoB,EAAE,KADyB;AAE/CC,EAAAA,oBAAoB,EAAE,KAFyB;AAG/CC,EAAAA,2BAA2B,EAAE,KAHkB;AAI/CC,EAAAA,2BAA2B,EAAE,KAJkB;AAK/ClB,EAAAA,YAAY,EAAE;AALiC,CAAjD,EAQA;AACA;;AACO,SAASmB,KAAT,OAMwB;AAAA,MAL7BJ,oBAK6B,QAL7BA,oBAK6B;AAAA,MAJ7BC,oBAI6B,QAJ7BA,oBAI6B;AAAA,MAH7BC,2BAG6B,QAH7BA,2BAG6B;AAAA,MAF7BC,2BAE6B,QAF7BA,2BAE6B;AAAA,MAD7BlB,YAC6B,QAD7BA,YAC6B;AAC7B;AACA;AACAD,EAAAA,kBAAkB,CAACgB,oBAAnB,GAA0CA,oBAA1C;AACAhB,EAAAA,kBAAkB,CAACiB,oBAAnB,GAA0CA,oBAA1C;AACAjB,EAAAA,kBAAkB,CAACkB,2BAAnB,GAAiDA,2BAAjD;AACAlB,EAAAA,kBAAkB,CAACmB,2BAAnB,GAAiDA,2BAAjD;AACAnB,EAAAA,kBAAkB,CAACC,YAAnB,GAAkCA,YAAlC;;AAEA,MACEe,oBAAoB,IACpBC,oBADA,IAEAC,2BAHF,EAIE;AACA,QAAIP,SAAS,KAAK,IAAlB,EAAwB;AACtB;AACA;AACD;;AAED,QAAMhH,sBAA8C,GAAG,EAAvD;;AAEAgH,IAAAA,SAAS,GAAG,qBAAM;AAChB,WAAK,IAAM/G,QAAX,IAAqBD,sBAArB,EAA6C;AAC3C,YAAI;AACF8G,UAAAA,aAAa,CAAC7G,QAAD,CAAb,GAAwBD,sBAAsB,CAACC,QAAD,CAA9C;AACD,SAFD,CAEE,OAAOp4C,KAAP,EAAc,CAAE;AACnB;AACF,KAND;;AAQA+9C,IAAAA,wBAAwB,CAAC5oD,OAAzB,CAAiC,UAAAijD,MAAM,EAAI;AACzC,UAAI;AACF,YAAMyH,cAAc,GAAI1H,sBAAsB,CAACC,MAAD,CAAtB,GAAiC6G,aAAa,CACpE7G,MADoE,CAAb,CAEvD0H,kCAFuD,GAGrDb,aAAa,CAAC7G,MAAD,CAAb,CAAsB0H,kCAH+B,GAIrDb,aAAa,CAAC7G,MAAD,CAJjB,CADE,CAOF;;AACA,YAAM2H,cAAc,GAAG,SAAjBA,cAAiB,GAAa;AAClC,cAAIC,wBAAwB,GAAG,KAA/B;;AADkC,4CAATr9C,IAAS;AAATA,YAAAA,IAAS;AAAA;;AAElC,cAAIy1C,MAAM,KAAK,KAAf,EAAsB;AACpB,gBAAIoG,kBAAkB,CAACgB,oBAAvB,EAA6C;AAC3C,kBAAMS,OAAO,GAAGt9C,IAAI,CAACrR,MAAL,GAAc,CAAd,GAAkBqR,IAAI,CAACA,IAAI,CAACrR,MAAL,GAAc,CAAf,CAAtB,GAA0C,IAA1D;AACA,kBAAM4uD,wBAAwB,GAC5B,OAAOD,OAAP,KAAmB,QAAnB,IAA+B9B,sBAAsB,CAAC8B,OAAD,CADvD,CAF2C,CAK3C;AACA;;AACAD,cAAAA,wBAAwB,GAAG,CAACE,wBAA5B;AACD;AACF;;AAED,cAAMC,iCAAiC,GACrC3B,kBAAkB,CAACkB,2BAAnB,KACCtH,MAAM,KAAK,OAAX,IAAsBA,MAAM,KAAK,MADlC,CADF,CAdkC,CAkBlC;AACA;AACA;;AApBkC,4DA0B7B4G,iBAAiB,CAAC51C,MAAlB,EA1B6B;AAAA;;AAAA;AAqBlC,gEAKiC;AAAA;AAAA,kBAJ/BsyB,oBAI+B,eAJ/BA,oBAI+B;AAAA,kBAH/B6jB,eAG+B,eAH/BA,eAG+B;AAAA,kBAF/BvW,gBAE+B,eAF/BA,gBAE+B;AAAA,kBAD/BnM,UAC+B,eAD/BA,UAC+B;AAC/B,kBAAMxqC,OAAe,GAAGktD,eAAe,EAAvC;;AACA,kBAAIltD,OAAO,IAAI,IAAf,EAAqB;AACnB,oBAAI;AACF,sBAAI8tD,iCAAJ,EAAuC;AACrC;AACA;AACA,wBAAI,OAAOnX,gBAAP,KAA4B,UAAhC,EAA4C;AAC1CA,sBAAAA,gBAAgB,CACd32C,OADc,EAEZ+lD,MAFY,EAGd;AACAz1C,sBAAAA,IAAI,CAAC1O,KAAL,EAJc,CAAhB;AAMD;AACF;;AAED,sBAAI+rD,wBAAJ,EAA8B;AAC5B,wBAAMlc,cAAc,GAAGrG,2BAA2B,CAChDZ,UADgD,EAEhDxqC,OAFgD,EAGhDqpC,oBAHgD,CAAlD;;AAKA,wBAAIoI,cAAc,KAAK,EAAvB,EAA2B;AACzB,0BAAIwa,oBAAoB,CAAC37C,IAAD,EAAOy1C,MAAP,CAAxB,EAAwC;AACtCz1C,wBAAAA,IAAI,CAAC,CAAD,CAAJ,aAAaA,IAAI,CAAC,CAAD,CAAjB;AACAA,wBAAAA,IAAI,CAACzQ,IAAL,CAAU4xC,cAAV;AACD,uBAHD,MAGO;AACLnhC,wBAAAA,IAAI,CAACzQ,IAAL,CAAU4xC,cAAV;AACD;AACF;AACF;AACF,iBA7BD,CA6BE,OAAO9jC,KAAP,EAAc;AACd;AACAuF,kBAAAA,UAAU,CAAC,YAAM;AACf,0BAAMvF,KAAN;AACD,mBAFS,EAEP,CAFO,CAAV;AAGD,iBAlCD,SAkCU;AACR;AACD;AACF;AACF;AAnEiC;AAAA;AAAA;AAAA;AAAA;;AAqElC,cAAIw+C,kBAAkB,CAACiB,oBAAvB,EAA6C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACD;;AAEDI,UAAAA,cAAc,MAAd,SAAkBl9C,IAAlB;AACD,SA/ED;;AAiFAo9C,QAAAA,cAAc,CAACD,kCAAf,GAAoDD,cAApD;AACAA,QAAAA,cAAc,CAACO,kCAAf,GAAoDL,cAApD;AAEAd,QAAAA,aAAa,CAAC7G,MAAD,CAAb,GAAwB2H,cAAxB;AACD,OA7FD,CA6FE,OAAO//C,KAAP,EAAc,CAAE;AACnB,KA/FD;AAgGD,GApHD,MAoHO;AACLqgD,IAAAA,OAAO;AACR;AACF,EAED;;AACO,SAASA,OAAT,GAAyB;AAC9B,MAAIlB,SAAS,KAAK,IAAlB,EAAwB;AACtBA,IAAAA,SAAS;AACTA,IAAAA,SAAS,GAAG,IAAZ;AACD;AACF;AAED,IAAImB,sBAA2C,GAAG,IAAlD,EAEA;;AACO,SAASnc,kBAAT,GAA8B;AACnC,MAAI9M,wCAAJ,EAA8C;AAC5C,QAAMkpB,sBAAsB,GAAG,CAC7B,OAD6B,EAE7B,OAF6B,EAG7B,gBAH6B,EAI7B,MAJ6B,EAK7B,KAL6B,EAM7B,OAN6B,EAO7B,MAP6B,CAA/B;;AAUA,QAAID,sBAAsB,KAAK,IAA/B,EAAqC;AACnC;AACA;AACD;;AAED,QAAMnI,sBAA8C,GAAG,EAAvD;;AAEAmI,IAAAA,sBAAsB,GAAG,kCAAM;AAC7B,WAAK,IAAMlI,QAAX,IAAqBD,sBAArB,EAA6C;AAC3C,YAAI;AACF8G,UAAAA,aAAa,CAAC7G,QAAD,CAAb,GAAwBD,sBAAsB,CAACC,QAAD,CAA9C;AACD,SAFD,CAEE,OAAOp4C,KAAP,EAAc,CAAE;AACnB;AACF,KAND;;AAQAugD,IAAAA,sBAAsB,CAACprD,OAAvB,CAA+B,UAAAijD,MAAM,EAAI;AACvC,UAAI;AACF,YAAMyH,cAAc,GAAI1H,sBAAsB,CAACC,MAAD,CAAtB,GAAiC6G,aAAa,CACpE7G,MADoE,CAAb,CAEvDoI,8CAFuD,GAGrDvB,aAAa,CAAC7G,MAAD,CAAb,CAAsBoI,8CAH+B,GAIrDvB,aAAa,CAAC7G,MAAD,CAJjB,CADE,CAOF;;AACA,YAAM2H,cAAc,GAAG,SAAjBA,cAAiB,GAAa;AAClC,cAAI,CAACvB,kBAAkB,CAACmB,2BAAxB,EAAqD;AAAA,+CAD5Bh9C,IAC4B;AAD5BA,cAAAA,IAC4B;AAAA;;AACnD;AACA;AACA,gBAAIy8C,MAAJ,EAAY;AACVS,cAAAA,cAAc,CAAC7B,yBAAD,EAA4BjtC,YAAA,SAAUpO,IAAV,CAA5B,CAAd;AACD,aAFD,MAEO;AACL,kBAAM2c,KAAK,GAAGi/B,eAAe,CAACnG,MAAD,CAA7B;;AACA,kBAAI94B,KAAJ,EAAW;AACTugC,gBAAAA,cAAc,MAAd,mCAAkBzrB,gBAAgB,CAACzxB,IAAD,mBAAiB2c,KAAjB,EAAlC;AACD,eAFD,MAEO;AACL,sBAAMttB,KAAK,CAAC,8BAAD,CAAX;AACD;AACF;AACF;AACF,SAfD;;AAiBA+tD,QAAAA,cAAc,CAACS,8CAAf,GACEX,cADF;AAEAA,QAAAA,cAAc,CAACY,8CAAf,GACEV,cADF;AAGAd,QAAAA,aAAa,CAAC7G,MAAD,CAAb,GAAwB2H,cAAxB;AACD,OA/BD,CA+BE,OAAO//C,KAAP,EAAc,CAAE;AACnB,KAjCD;AAkCD;AACF,EAED;;AACO,SAASqkC,oBAAT,GAAsC;AAC3C,MAAIhN,wCAAJ,EAA8C;AAC5C,QAAIipB,sBAAsB,KAAK,IAA/B,EAAqC;AACnCA,MAAAA,sBAAsB;AACtBA,MAAAA,sBAAsB,GAAG,IAAzB;AACD;AACF;AACF;AAEM,SAAStc,6BAAT,GAAyC;AAAA;;AAC9C,MAAMwb,oBAAoB,gBACxBlxB,QAAQ,CAAC5R,MAAM,CAACgkC,yCAAR,CADgB,iDACsC,IADhE;AAEA,MAAMjB,oBAAoB,iBACxBnxB,QAAQ,CAAC5R,MAAM,CAACikC,0CAAR,CADgB,mDACuC,KADjE;AAEA,MAAMjB,2BAA2B,iBAC/BpxB,QAAQ,CAAC5R,MAAM,CAACkkC,kDAAR,CADuB,mDACwC,IADzE;AAEA,MAAMjB,2BAA2B,iBAC/BrxB,QAAQ,CAAC5R,MAAM,CAACmkC,mDAAR,CADuB,mDAE/B,KAFF;AAGA,MAAMpC,YAAY,wBAChBlwB,gBAAgB,CAAC7R,MAAM,CAACokC,gCAAR,CADA,iEAC6C,MAD/D;AAGAlB,EAAAA,KAAK,CAAC;AACJJ,IAAAA,oBAAoB,EAApBA,oBADI;AAEJC,IAAAA,oBAAoB,EAApBA,oBAFI;AAGJC,IAAAA,2BAA2B,EAA3BA,2BAHI;AAIJC,IAAAA,2BAA2B,EAA3BA,2BAJI;AAKJlB,IAAAA,YAAY,EAAZA;AALI,GAAD,CAAL;AAOD,EAED;AACA;AACA;;AACO,SAASsC,iCAAT,CACLC,QADK,EAEC;AACNtkC,EAAAA,MAAM,CAACgkC,yCAAP,GACEM,QAAQ,CAACxB,oBADX;AAEA9iC,EAAAA,MAAM,CAACikC,0CAAP,GACEK,QAAQ,CAACvB,oBADX;AAEA/iC,EAAAA,MAAM,CAACkkC,kDAAP,GACEI,QAAQ,CAACtB,2BADX;AAEAhjC,EAAAA,MAAM,CAACmkC,mDAAP,GACEG,QAAQ,CAACrB,2BADX;AAEAjjC,EAAAA,MAAM,CAACokC,gCAAP,GAA0CE,QAAQ,CAACvC,YAAnD;AACD;AAEM,SAASwC,+BAAT,GAAiD;AACtDvkC,EAAAA,MAAM,CAACwkC,oCAAP,GAA8C;AAC5Cld,IAAAA,6BAA6B,EAA7BA,6BAD4C;AAE5CE,IAAAA,2BAA2B,EAAED;AAFe,GAA9C;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjaD;;;;;;;;AASA;AAYA,IAAMkd,cAAc,GAAG,GAAvB,EAEA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,eAAsC,GAAG,CACpD;AACA;AACA;AACA;AACE/hD,EAAAA,OAAO,EAAE,CADX;AAEEgiD,EAAAA,aAAa,EAAE,WAFjB;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CAJoD,EASpD;AACA;AACA;AACA;AACEjiD,EAAAA,OAAO,EAAE,CADX;AAEEgiD,EAAAA,aAAa,EAAE,QAFjB;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CAZoD,EAiBpD;AACA;AACEjiD,EAAAA,OAAO,EAAE,CADX;AAEEgiD,EAAAA,aAAa,EAAE,QAFjB;AAGEC,EAAAA,aAAa,EAAE;AAHjB,CAlBoD,CAA/C;AAyBA,IAAMC,qBAAqC,GAChDH,eAAe,CAACA,eAAe,CAAC9vD,MAAhB,GAAyB,CAA1B,CADV;;IAsMDkwD;;;;;AAaJ,kBAAYC,IAAZ,EAAwB;AAAA;;AAAA;;AACtB;;AADsB,wEAND,KAMC;;AAAA,0EALI,EAKJ;;AAAA,uEAJO,IAIP;;AAAA,0EAFS,IAET;;AAAA,mEA2FH,YAAM;AACzB;AACA;AACA;AAEA,UAAI,MAAKC,UAAL,KAAoB,IAAxB,EAA8B;AAC5B37C,QAAAA,YAAY,CAAC,MAAK27C,UAAN,CAAZ;AACA,cAAKA,UAAL,GAAkB,IAAlB;AACD;;AAED,UAAI,MAAKC,aAAL,CAAmBrwD,MAAvB,EAA+B;AAC7B,aAAK,IAAI8Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,MAAKu/C,aAAL,CAAmBrwD,MAAvC,EAA+C8Q,CAAC,IAAI,CAApD,EAAuD;AAAA;;AACrD,+BAAKw/C,KAAL,EAAWh9B,IAAX,qBAAgB,MAAK+8B,aAAL,CAAmBv/C,CAAnB,CAAhB,kCAA0C,MAAKu/C,aAAL,CAAmBv/C,CAAC,GAAG,CAAvB,CAA1C;AACD;;AACD,cAAKu/C,aAAL,CAAmBrwD,MAAnB,GAA4B,CAA5B,CAJ6B,CAM7B;AACA;AACA;;AACA,cAAKowD,UAAL,GAAkBn8C,UAAU,CAAC,MAAKs8C,MAAN,EAAcV,cAAd,CAA5B;AACD;AACF,KAhHuB;;AAAA,gFAoH2B,gBAMxB;AAAA,UALzBhtD,EAKyB,QALzBA,EAKyB;AAAA,UAJzBk7B,IAIyB,QAJzBA,IAIyB;AAAA,UAHzBpL,UAGyB,QAHzBA,UAGyB;AAAA,UAFzBzuB,IAEyB,QAFzBA,IAEyB;AAAA,UADzBrD,KACyB,QADzBA,KACyB;;AACzB,cAAQqD,IAAR;AACE,aAAK,SAAL;AACE,gBAAKovB,IAAL,CAAU,iBAAV,EAA6B;AAC3BzwB,YAAAA,EAAE,EAAFA,EAD2B;AAE3Bk7B,YAAAA,IAAI,EAAJA,IAF2B;AAG3BpL,YAAAA,UAAU,EAAVA,UAH2B;AAI3B69B,YAAAA,YAAY,EAAE,IAJa;AAK3B3vD,YAAAA,KAAK,EAALA;AAL2B,WAA7B;;AAOA;;AACF,aAAK,OAAL;AACE,gBAAKyyB,IAAL,CAAU,mBAAV,EAA+B;AAC7BzwB,YAAAA,EAAE,EAAFA,EAD6B;AAE7Bk7B,YAAAA,IAAI,EAAJA,IAF6B;AAG7BpL,YAAAA,UAAU,EAAVA,UAH6B;AAI7B69B,YAAAA,YAAY,EAAE,IAJe;AAK7B3vD,YAAAA,KAAK,EAALA;AAL6B,WAA/B;;AAOA;;AACF,aAAK,OAAL;AACE,gBAAKyyB,IAAL,CAAU,eAAV,EAA2B;AACzBzwB,YAAAA,EAAE,EAAFA,EADyB;AAEzBk7B,YAAAA,IAAI,EAAJA,IAFyB;AAGzBpL,YAAAA,UAAU,EAAVA,UAHyB;AAIzB69B,YAAAA,YAAY,EAAE,IAJW;AAKzB3vD,YAAAA,KAAK,EAALA;AALyB,WAA3B;;AAOA;;AACF,aAAK,OAAL;AACE,gBAAKyyB,IAAL,CAAU,eAAV,EAA2B;AACzBzwB,YAAAA,EAAE,EAAFA,EADyB;AAEzBk7B,YAAAA,IAAI,EAAJA,IAFyB;AAGzBpL,YAAAA,UAAU,EAAVA,UAHyB;AAIzB69B,YAAAA,YAAY,EAAE,IAJW;AAKzB3vD,YAAAA,KAAK,EAALA;AALyB,WAA3B;;AAOA;AApCJ;AAsCD,KAjKuB;;AAGtB,UAAKyvD,KAAL,GAAaH,IAAb;AAEA,UAAKM,aAAL,GACEN,IAAI,CAACO,MAAL,CAAY,UAACpgD,OAAD,EAAsB;AAChC,UAAIA,OAAO,IAAIA,OAAO,CAACoV,KAAvB,EAA8B;AAC5B,sCAAYtK,IAAZ,CAAiB9K,OAAO,CAACoV,KAAzB,EAAgCpV,OAAO,CAAC86B,OAAxC;AACD;AACF,KAJD,KAIM,IALR,CALsB,CAYtB;AACA;AACA;;AACA,UAAKrwB,WAAL,CAAiB,qBAAjB,EAAwC,MAAK+uC,mBAA7C;;AAfsB;AAgBvB,IAED;AACA;;;;;yBAMEpkC,OAEA;AACA,UAAI,KAAKirC,WAAT,EAAsB;AACpBnwC,QAAAA,OAAO,CAACuS,IAAR,iCAC0BrN,KAD1B;AAGA;AACD,OAND,CAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAfA,wCADG0lB,OACH;AADGA,QAAAA,OACH;AAAA;;AAgBA,WAAKilB,aAAL,CAAmBzvD,IAAnB,CAAwB8kB,KAAxB,EAA+B0lB,OAA/B;;AACA,UAAI,CAAC,KAAKglB,UAAV,EAAsB;AACpB,aAAKA,UAAL,GAAkBn8C,UAAU,CAAC,KAAKs8C,MAAN,EAAc,CAAd,CAA5B;AACD;AACF;;;+BAEU;AACT,UAAI,KAAKI,WAAT,EAAsB;AACpBnwC,QAAAA,OAAO,CAACuS,IAAR,CAAa,8BAAb;AACA;AACD,OAJQ,CAMT;;;AACA,WAAK3X,IAAL,CAAU,UAAV;AACA,WAAKkY,IAAL,CAAU,UAAV,EARS,CAUT;;AACA,WAAKq9B,WAAL,GAAmB,IAAnB,CAXS,CAaT;AACA;;AACA,WAAK51C,WAAL,GAAmB,YAAY,CAAE,CAAjC,CAfS,CAgBT;;;AACA,WAAKK,IAAL,GAAY,YAAY,CAAE,CAA1B,CAjBS,CAkBT;AAEA;;;AACA,WAAKD,kBAAL,GArBS,CAuBT;;AACA,UAAMy1C,YAAY,GAAG,KAAKH,aAA1B;;AACA,UAAIG,YAAJ,EAAkB;AAChBA,QAAAA,YAAY;AACb,OA3BQ,CA6BT;AACA;;;AACA,SAAG;AACD,aAAKL,MAAL;AACD,OAFD,QAES,KAAKF,aAAL,CAAmBrwD,MAF5B,EA/BS,CAmCT;;;AACA,UAAI,KAAKowD,UAAL,KAAoB,IAAxB,EAA8B;AAC5B37C,QAAAA,YAAY,CAAC,KAAK27C,UAAN,CAAZ;AACA,aAAKA,UAAL,GAAkB,IAAlB;AACD;AACF;;;wBArEgB;AACf,aAAO,KAAKE,KAAZ;AACD;;;;EAhCO7qC;;AAiLV,iDAAeyqC,MAAf;;;;;;;;;;;;;;;;;;;;;;;;;;AClcA;;;;;;;;AASA;AACA;AACA;AAMA;AAKA;AACA;AAIA;AACA;AAiBA;;AAEA,IAAMpY,KAAK,GAAG,SAARA,KAAQ,CAACiZ,UAAD,EAAgD;AAC5D,MAAI3qC,SAAJ,EAAe;AAAA;;AAAA,sCADqB/U,IACrB;AADqBA,MAAAA,IACrB;AAAA;;AACb,gBAAAmP,OAAO,EAAC+D,GAAR,sCACewsC,UADf,GAEE,mCAFF,EAGE,oBAHF,SAIK1/C,IAJL;AAMD;AACF,CATD;;IAmGqBggB;;;;;AAkBnB,iBAAYI,MAAZ,EAAmC;AAAA;;AAAA;;AACjC;;AADiC,6EAPX,KAOW;;AAAA,0FANE,KAMF;;AAAA,oFALgC,EAKhC;;AAAA,oFAJc,IAId;;AAAA,yFAHU,IAGV;;AAAA,qFAFH,KAEG;;AAAA,uFAiG0B,gBAEvD;AAAA,UADJkB,UACI,QADJA,UACI;AACJ,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC;AACD,OAFD,MAEO;AACLE,QAAAA,QAAQ,CAACkkB,sBAAT;AACD;AACF,KA1GkC;;AAAA,sFA4GmB,iBAAsB;AAAA,UAApBl0C,EAAoB,SAApBA,EAAoB;AAAA,UAAhB8vB,UAAgB,SAAhBA,UAAgB;AAC1E,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC;AACD,OAFD,MAEO;AACLE,QAAAA,QAAQ,CAACykB,qBAAT,CAA+Bz0C,EAA/B;AACD;AACF,KAnHkC;;AAAA,wFAqHqB,iBAGlD;AAAA,UAFJA,EAEI,SAFJA,EAEI;AAAA,UADJ8vB,UACI,SADJA,UACI;AACJ,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC;AACD,OAFD,MAEO;AACLE,QAAAA,QAAQ,CAAC0kB,uBAAT,CAAiC10C,EAAjC;AACD;AACF,KA/HkC;;AAAA,gFAiIU,iBAIpB;AAAA,UAHvBA,EAGuB,SAHvBA,EAGuB;AAAA,UAFvBk7B,IAEuB,SAFvBA,IAEuB;AAAA,UADvBpL,UACuB,SADvBA,UACuB;AACvB,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACL,YAAMhC,KAAK,GAAGgyB,QAAQ,CAAC+1B,+BAAT,CAAyC/lD,EAAzC,EAA6Ck7B,IAA7C,CAAd;;AAEA,YAAIl9B,KAAK,IAAI,IAAb,EAAmB;AACjB,gBAAKowD,OAAL,CAAa39B,IAAb,CAAkB,iBAAlB,EAAqCzyB,KAArC;AACD,SAFD,MAEO;AACL2f,UAAAA,OAAO,CAACuS,IAAR,2DAA+DlwB,EAA/D;AACD;AACF;AACF,KAlJkC;;AAAA,2EAoJI,iBAMf;AAAA,UALtB8mD,MAKsB,SALtBA,MAKsB;AAAA,UAJtB9mD,EAIsB,SAJtBA,EAIsB;AAAA,UAHtBk7B,IAGsB,SAHtBA,IAGsB;AAAA,UAFtBpL,UAEsB,SAFtBA,UAEsB;AAAA,UADtBzuB,IACsB,SADtBA,IACsB;AACtB,UAAM2uB,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAAC62B,UAAT,CAAoBxlD,IAApB,EAA0BrB,EAA1B,EAA8B8mD,MAA9B,EAAsC5rB,IAAtC;AACD;AACF,KAjKkC;;AAAA,kFAgNH,YAAM;AACpC,UAAMhwB,OAAO,GAAGpJ,kBAAhB;;AACA,UAAIoJ,OAAJ,EAAa;AACX,cAAKkjD,OAAL,CAAa39B,IAAb,CAAkB,gBAAlB,EAAoCvlB,OAApC;AACD;AACF,KArNkC;;AAAA,kFAuNH,YAAM;AACpC,YAAKkjD,OAAL,CAAa39B,IAAb,CAAkB,gBAAlB,EAAoC28B,qBAApC;AACD,KAzNkC;;AAAA,iFA2NoB,iBAAkB;AAAA,UAAhBt9B,UAAgB,SAAhBA,UAAgB;AACvE,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC;AACD;;AAED,YAAKs+B,OAAL,CAAa39B,IAAb,CAAkB,eAAlB,EAAmCT,QAAQ,CAACo3B,gBAAT,EAAnC;AACD,KAlOkC;;AAAA,mFAoOF,YAAM;AACrC,YAAKgH,OAAL,CAAa39B,IAAb,CAAkB,iBAAlB,EAAqC,MAAK69B,YAA1C;AACD,KAtOkC;;AAAA,8EAwOW,iBAAsB;AAAA,UAApBtuD,EAAoB,SAApBA,EAAoB;AAAA,UAAhB8vB,UAAgB,SAAhBA,UAAgB;AAClE,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACL,YAAM+iD,MAAM,GAAG/yB,QAAQ,CAAC8yB,aAAT,CAAuB9iD,EAAvB,CAAf;;AACA,cAAKouD,OAAL,CAAa39B,IAAb,CAAkB,YAAlB,EAAiC;AAACzwB,UAAAA,EAAE,EAAFA,EAAD;AAAK+iD,UAAAA,MAAM,EAANA;AAAL,SAAjC;AACD;AACF,KAhPkC;;AAAA,+EAkPY,iBAMzC;AAAA,UALJoD,aAKI,SALJA,aAKI;AAAA,UAJJnmD,EAII,SAJJA,EAII;AAAA,UAHJk7B,IAGI,SAHJA,IAGI;AAAA,UAFJpL,UAEI,SAFJA,UAEI;AAAA,UADJo2B,SACI,SADJA,SACI;AACJ,UAAMl2B,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACL,cAAKouD,OAAL,CAAa39B,IAAb,CACE,kBADF,EAEET,QAAQ,CAACi2B,cAAT,CAAwBC,SAAxB,EAAmClmD,EAAnC,EAAuCk7B,IAAvC,EAA6CirB,aAA7C,CAFF,EADK,CAML;AACA;;;AACA,YACE,MAAKoI,wBAAL,KAAkC,IAAlC,IACA,MAAKA,wBAAL,CAA8BvuD,EAA9B,KAAqCA,EAFvC,EAGE;AACA,gBAAKwuD,mBAAL,GAA2B,IAA3B;AACA,gBAAKD,wBAAL,GAAgC,IAAhC;AACAv+B,UAAAA,QAAQ,CAACktB,cAAT,CAAwB,IAAxB;;AACA,gBAAKuR,0BAAL,CAAgC3+B,UAAhC,EAA4C9vB,EAA5C;AACD,SAhBI,CAkBL;AACA;AACA;AACA;AACA;;AACD;AACF,KApRkC;;AAAA,oFAsRiB,iBAAsB;AAAA,UAApBA,EAAoB,SAApBA,EAAoB;AAAA,UAAhB8vB,UAAgB,SAAhBA,UAAgB;AACxE,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAACu2B,mBAAT,CAA6BvmD,EAA7B;AACD;AACF,KA7RkC;;AAAA,8EA+RU,kBAIvC;AAAA,UAHJA,EAGI,UAHJA,EAGI;AAAA,UAFJ8vB,UAEI,UAFJA,UAEI;AAAA,UADJy4B,UACI,UADJA,UACI;AACJ,UAAMv4B,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAACs4B,aAAT,CAAuBtoD,EAAvB,EAA2BuoD,UAA3B;AACD;AACF,KA1SkC;;AAAA,iFA4SgB,kBAI7C;AAAA,UAHJvoD,EAGI,UAHJA,EAGI;AAAA,UAFJ8vB,UAEI,UAFJA,UAEI;AAAA,UADJ64B,aACI,UADJA,aACI;AACJ,UAAM34B,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAAC04B,gBAAT,CAA0B1oD,EAA1B,EAA8B2oD,aAA9B;AACD;AACF,KAvTkC;;AAAA,oFAyTsB,kBAOnD;AAAA,UANJ7B,MAMI,UANJA,MAMI;AAAA,UALJ9mD,EAKI,UALJA,EAKI;AAAA,UAJJk7B,IAII,UAJJA,IAII;AAAA,UAHJpL,UAGI,UAHJA,UAGI;AAAA,UAFJzuB,IAEI,UAFJA,IAEI;AAAA,UADJrD,KACI,UADJA,KACI;AACJ,UAAMgyB,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAACi3B,mBAAT,CAA6B5lD,IAA7B,EAAmCrB,EAAnC,EAAuC8mD,MAAvC,EAA+C5rB,IAA/C,EAAqDl9B,KAArD;AACD;AACF,KAvUkC;;AAAA,gFA2UI,kBAMjC;AAAA,UALJgC,EAKI,UALJA,EAKI;AAAA,UAJJk7B,IAII,UAJJA,IAII;AAAA,UAHJpL,UAGI,UAHJA,UAGI;AAAA,UAFJ69B,YAEI,UAFJA,YAEI;AAAA,UADJ3vD,KACI,UADJA,KACI;;AACJ;AACA;AACA,UAAI,CAAC2vD,YAAL,EAAmB;AACjB,cAAK1G,mBAAL,CAAyB;AACvBjnD,UAAAA,EAAE,EAAFA,EADuB;AAEvBk7B,UAAAA,IAAI,EAAJA,IAFuB;AAGvBpL,UAAAA,UAAU,EAAVA,UAHuB;AAIvBzuB,UAAAA,IAAI,EAAE,SAJiB;AAKvBrD,UAAAA,KAAK,EAALA;AALuB,SAAzB;AAOD;AACF,KA7VkC;;AAAA,kFAiWa,kBAO1C;AAAA,UANJgC,EAMI,UANJA,EAMI;AAAA,UALJ8mD,MAKI,UALJA,MAKI;AAAA,UAJJ5rB,IAII,UAJJA,IAII;AAAA,UAHJpL,UAGI,UAHJA,UAGI;AAAA,UAFJ69B,YAEI,UAFJA,YAEI;AAAA,UADJ3vD,KACI,UADJA,KACI;;AACJ;AACA;AACA,UAAI,CAAC2vD,YAAL,EAAmB;AACjB,cAAK1G,mBAAL,CAAyB;AACvBjnD,UAAAA,EAAE,EAAFA,EADuB;AAEvBk7B,UAAAA,IAAI,EAAJA,IAFuB;AAGvBpL,UAAAA,UAAU,EAAVA,UAHuB;AAIvBzuB,UAAAA,IAAI,EAAE,OAJiB;AAKvBrD,UAAAA,KAAK,EAALA;AALuB,SAAzB;AAOD;AACF,KApXkC;;AAAA,8EAwXE,kBAM/B;AAAA,UALJgC,EAKI,UALJA,EAKI;AAAA,UAJJk7B,IAII,UAJJA,IAII;AAAA,UAHJpL,UAGI,UAHJA,UAGI;AAAA,UAFJ69B,YAEI,UAFJA,YAEI;AAAA,UADJ3vD,KACI,UADJA,KACI;;AACJ;AACA;AACA,UAAI,CAAC2vD,YAAL,EAAmB;AACjB,cAAK1G,mBAAL,CAAyB;AACvBjnD,UAAAA,EAAE,EAAFA,EADuB;AAEvBk7B,UAAAA,IAAI,EAAJA,IAFuB;AAGvBpL,UAAAA,UAAU,EAAVA,UAHuB;AAIvBzuB,UAAAA,IAAI,EAAE,OAJiB;AAKvBrD,UAAAA,KAAK,EAALA;AALuB,SAAzB;AAOD;AACF,KA1YkC;;AAAA,8EA8YE,kBAM/B;AAAA,UALJgC,EAKI,UALJA,EAKI;AAAA,UAJJk7B,IAII,UAJJA,IAII;AAAA,UAHJpL,UAGI,UAHJA,UAGI;AAAA,UAFJ69B,YAEI,UAFJA,YAEI;AAAA,UADJ3vD,KACI,UADJA,KACI;;AACJ;AACA;AACA,UAAI,CAAC2vD,YAAL,EAAmB;AACjB,cAAK1G,mBAAL,CAAyB;AACvBjnD,UAAAA,EAAE,EAAFA,EADuB;AAEvBk7B,UAAAA,IAAI,EAAJA,IAFuB;AAGvBpL,UAAAA,UAAU,EAAVA,UAHuB;AAIvBzuB,UAAAA,IAAI,EAAE,OAJiB;AAKvBrD,UAAAA,KAAK,EAALA;AALuB,SAAzB;AAOD;AACF,KAhakC;;AAAA,iFAmajC,UAAA0gD,wBAAwB,EAAI;AAC1B94B,MAAAA,qBAAqB,CAACnB,sCAAD,EAAyC,MAAzC,CAArB;AACAmB,MAAAA,qBAAqB,CACnBpB,8CADmB,EAEnBk6B,wBAAwB,GAAG,MAAH,GAAY,OAFjB,CAArB,CAF0B,CAO1B;AACA;AACA;;AACA,YAAK0P,OAAL,CAAa39B,IAAb,CAAkB,uBAAlB;AACD,KA9agC;;AAAA,2EAgbI,kBAOjC;AAAA,UANJq2B,MAMI,UANJA,MAMI;AAAA,UALJ9mD,EAKI,UALJA,EAKI;AAAA,UAJJ07B,OAII,UAJJA,OAII;AAAA,UAHJD,OAGI,UAHJA,OAGI;AAAA,UAFJ3L,UAEI,UAFJA,UAEI;AAAA,UADJzuB,IACI,UADJA,IACI;AACJ,UAAM2uB,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAACg3B,UAAT,CAAoB3lD,IAApB,EAA0BrB,EAA1B,EAA8B8mD,MAA9B,EAAsCrrB,OAAtC,EAA+CC,OAA/C;AACD;AACF,KA9bkC;;AAAA,uFA6djC,UAAAka,mBAAmB,EAAI;AACrB,YAAK8Y,oBAAL,GAA4B9Y,mBAA5B;AAEA+T,MAAAA,aAAsB,CAAC/T,mBAAD,CAAtB;;AAEA,WAAK,IAAM9lB,UAAX,IAAyB,MAAKq+B,mBAA9B,EAAmD;AACjD,YAAMn+B,QAAQ,GAAK,MAAKm+B,mBAAL,CAChBr+B,UADgB,CAAnB;AAGAE,QAAAA,QAAQ,CAAC25B,sBAAT,CAAgC/T,mBAAhC;AACD;AACF,KAxegC;;AAAA,qGA0egB,YAAM;AACvD,UAAM7kB,MAAM,GAAGxI,MAAM,CAACgI,8BAAP,CAAsCC,EAArD;;AACA,UAAIO,MAAM,IAAI,IAAd,EAAoB;AAClB;AACD;;AACD,YAAK49B,UAAL,CAAgB59B,MAAhB;AACD,KAhfkC;;AAAA,yEAkfZ,YAAM;AAC3B;AACA,YAAKxY,IAAL,CAAU,UAAV;AACD,KArfkC;;AAAA,+EAwfjC,UAAAmmC,wBAAwB,EAAI;AAC1B,YAAKkQ,yBAAL,GAAiClQ,wBAAjC;AACA,YAAK4P,YAAL,GAAoB,IAApB;;AACA,WAAK,IAAMx+B,UAAX,IAAyB,MAAKq+B,mBAA9B,EAAmD;AACjD,YAAMn+B,QAAQ,GAAK,MAAKm+B,mBAAL,CAChBr+B,UADgB,CAAnB;AAGAE,QAAAA,QAAQ,CAACi4B,cAAT,CAAwBvJ,wBAAxB;AACD;;AACD,YAAK0P,OAAL,CAAa39B,IAAb,CAAkB,iBAAlB,EAAqC,MAAK69B,YAA1C;AACD,KAlgBgC;;AAAA,8EAogBP,YAAM;AAChC,YAAKA,YAAL,GAAoB,KAApB;AACA,YAAKM,yBAAL,GAAiC,KAAjC;;AACA,WAAK,IAAM9+B,UAAX,IAAyB,MAAKq+B,mBAA9B,EAAmD;AACjD,YAAMn+B,QAAQ,GAAK,MAAKm+B,mBAAL,CAChBr+B,UADgB,CAAnB;AAGAE,QAAAA,QAAQ,CAACm4B,aAAT;AACD;;AACD,YAAKiG,OAAL,CAAa39B,IAAb,CAAkB,iBAAlB,EAAqC,MAAK69B,YAA1C;AACD,KA9gBkC;;AAAA,qFAghBiB,UAAAO,QAAQ,EAAI;AAC9D,YAAKT,OAAL,CAAa39B,IAAb,CAAkB,sBAAlB,EAA0Co+B,QAA1C;AACD,KAlhBkC;;AAAA,8EAohBU,kBAKvC;AAAA,UAJJxmD,KAII,UAJJA,KAII;AAAA,UAHJrI,EAGI,UAHJA,EAGI;AAAA,UAFJk7B,IAEI,UAFJA,IAEI;AAAA,UADJpL,UACI,UADJA,UACI;AACJ,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAAC81B,aAAT,CAAuB9lD,EAAvB,EAA2Bk7B,IAA3B,EAAiC7yB,KAAjC;AACD;AACF,KAhiBkC;;AAAA,2FAwiBtB,kBAMe;AAAA,UAL1BgjD,oBAK0B,UAL1BA,oBAK0B;AAAA,UAJ1BC,oBAI0B,UAJ1BA,oBAI0B;AAAA,UAH1BC,2BAG0B,UAH1BA,2BAG0B;AAAA,UAF1BC,2BAE0B,UAF1BA,2BAE0B;AAAA,UAD1BlB,YAC0B,UAD1BA,YAC0B;AAC1B;AACA;AACA;AACA;AACA2D,MAAAA,KAAY,CAAC;AACX5C,QAAAA,oBAAoB,EAApBA,oBADW;AAEXC,QAAAA,oBAAoB,EAApBA,oBAFW;AAGXC,QAAAA,2BAA2B,EAA3BA,2BAHW;AAIXC,QAAAA,2BAA2B,EAA3BA,2BAJW;AAKXlB,QAAAA,YAAY,EAAZA;AALW,OAAD,CAAZ;AAOD,KA1jBkC;;AAAA,uFA6jBjC,UAAArwB,gBAAgB,EAAI;AAClB,WAAK,IAAMnK,UAAX,IAAyB,MAAKq+B,mBAA9B,EAAmD;AACjD,YAAMn+B,QAAQ,GAAK,MAAKm+B,mBAAL,CAChBr+B,UADgB,CAAnB;AAGAE,QAAAA,QAAQ,CAACkmB,sBAAT,CAAgCjc,gBAAhC;AACD;AACF,KApkBgC;;AAAA,oFAskBc,kBAA4B;AAAA,UAA1Bj6B,EAA0B,UAA1BA,EAA0B;AAAA,UAAtBk7B,IAAsB,UAAtBA,IAAsB;AAAA,UAAhBpL,UAAgB,UAAhBA,UAAgB;AAC3E,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAACyyB,0BAAT,CAAoCziD,EAApC,EAAwCk7B,IAAxC;AACD;AACF,KA7kBkC;;AAAA,kFA+kBe,kBAAsB;AAAA,UAApBl7B,EAAoB,UAApBA,EAAoB;AAAA,UAAhB8vB,UAAgB,UAAhBA,UAAgB;AACtE,UAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC,8BAAiE9vB,EAAjE;AACD,OAFD,MAEO;AACLgwB,QAAAA,QAAQ,CAAC4yB,wBAAT,CAAkC5iD,EAAlC;AACD;AACF,KAtlBkC;;AAAA,+EAwlBgB,UAAAmsB,KAAK,EAAI;AAC1D,YAAK5T,IAAL,CAAU,cAAV,EAA0B4T,KAA1B;AACD,KA1lBkC;;AAAA,uFA4lBE,YAAM;AACzC,UAAI5I,SAAJ,EAAe;AACb0xB,QAAAA,KAAK,CAAC,wBAAD,CAAL;AACD;;AAED,YAAKmZ,OAAL,CAAa39B,IAAb,CAAkB,sBAAlB;AACD,KAlmBkC;;AAAA,iFAomBqB,UAAAmI,UAAU,EAAI;AACpE,UAAIrV,SAAJ,EAAe;AACb0xB,QAAAA,KAAK,CACH,kBADG,aAECrc,UAAU,CAACz7B,MAFZ,gBAEwBy7B,UAAU,CAACjyB,IAAX,CAAgB,IAAhB,CAFxB,OAAL;AAID,OANmE,CAQpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,YAAKynD,OAAL,CAAa39B,IAAb,CAAkB,YAAlB,EAAgCmI,UAAhC;;AAEA,UAAI,MAAK41B,mBAAL,KAA6B,IAAjC,EAAuC;AACrC,YAAM1+B,UAAU,GAAG8I,UAAU,CAAC,CAAD,CAA7B;;AACA,YAAI,MAAK41B,mBAAL,CAAyB1+B,UAAzB,KAAwCA,UAA5C,EAAwD;AACtD;AACA,cAAME,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,cAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,YAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC;AACD,WAFD,MAEO;AACL,gBAAMg/B,SAAS,GAAG,MAAKP,wBAAvB;AACA,gBAAMQ,SAAS,GAAG/+B,QAAQ,CAACy5B,0BAAT,EAAlB;AACA,kBAAK8E,wBAAL,GAAgCQ,SAAhC;AACA,gBAAMC,WAAW,GAAGF,SAAS,KAAK,IAAd,GAAqBA,SAAS,CAAC9uD,EAA/B,GAAoC,IAAxD;AACA,gBAAMivD,WAAW,GAAGF,SAAS,KAAK,IAAd,GAAqBA,SAAS,CAAC/uD,EAA/B,GAAoC,IAAxD;;AACA,gBAAIgvD,WAAW,KAAKC,WAApB,EAAiC;AAC/B,kBAAIA,WAAW,KAAK,IAApB,EAA0B;AACxB;AACA,sBAAKb,OAAL,CAAa39B,IAAb,CAAkB,aAAlB,EAAiCw+B,WAAjC;AACD;AACF;;AACD,gBAAIF,SAAS,KAAK,IAAd,IAAsBA,SAAS,CAACrF,WAApC,EAAiD;AAC/C;AACA;AACA,oBAAK8E,mBAAL,GAA2B,IAA3B;AACA,oBAAKD,wBAAL,GAAgC,IAAhC;AACAv+B,cAAAA,QAAQ,CAACktB,cAAT,CAAwB,IAAxB;AACD;AACF;AACF;AACF;AACF,KA/pBkC;;AAAA,2FAqqBDlrC,yBAAQ,CACxC,UAAC8d,UAAD,EAAqB9vB,EAArB,EAAoC;AAClC;AACA;AACA;AACA,UAAMgwB,QAAQ,GAAG,MAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;AACA,UAAMoL,IAAI,GAAGlL,QAAQ,IAAI,IAAZ,GAAmBA,QAAQ,CAACu5B,iBAAT,CAA2BvpD,EAA3B,CAAnB,GAAoD,IAAjE;;AACA,UAAIk7B,IAAI,KAAK,IAAb,EAAmB;AACjBtV,QAAAA,qBAAqB,CACnBxB,kCADmB,EAEnBrH,IAAI,CAACC,SAAL,CAAgB;AAAC8S,UAAAA,UAAU,EAAVA,UAAD;AAAaoL,UAAAA,IAAI,EAAJA;AAAb,SAAhB,CAFmB,CAArB;AAID,OALD,MAKO;AACLvV,QAAAA,wBAAwB,CAACvB,kCAAD,CAAxB;AACD;AACF,KAfuC,EAgBxC,IAhBwC,CArqBP;;AAGjC,QACEqB,qBAAqB,CAAChB,sCAAD,CAArB,KAAkE,MADpE,EAEE;AACA,YAAKmqC,yBAAL,GACEnpC,qBAAqB,CACnBjB,8CADmB,CAArB,KAEM,MAHR;AAIA,YAAK8pC,YAAL,GAAoB,IAApB;AAEA3oC,MAAAA,wBAAwB,CAACnB,8CAAD,CAAxB;AACAmB,MAAAA,wBAAwB,CAAClB,sCAAD,CAAxB;AACD;;AAED,QAAMyqC,wBAAwB,GAAGzpC,qBAAqB,CACpDrB,kCADoD,CAAtD;;AAGA,QAAI8qC,wBAAwB,IAAI,IAAhC,EAAsC;AACpC,YAAKV,mBAAL,GAA2BzxC,IAAI,CAACxf,KAAL,CAAW2xD,wBAAX,CAA3B;AACD;;AAED,UAAKd,OAAL,GAAex/B,MAAf;AAEAA,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,wBAAnB,EAA6C,MAAKg8B,sBAAlD;AACAtlB,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,uBAAnB,EAA4C,MAAKu8B,qBAAjD;AACA7lB,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,yBAAnB,EAA8C,MAAKw8B,uBAAnD;AACA9lB,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,iBAAnB,EAAsC,MAAKi3C,eAA3C;AACAvgC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,YAAnB,EAAiC,MAAK2uC,UAAtC;AACAj4B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,mBAAnB,EAAwC,MAAKk3C,iBAA7C;AACAxgC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,mBAAnB,EAAwC,MAAKm3C,iBAA7C;AACAzgC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,kBAAnB,EAAuC,MAAKkvC,gBAA5C;AACAx4B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,oBAAnB,EAAyC,MAAKo3C,kBAA9C;AACA1gC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,eAAnB,EAAoC,MAAK4qC,aAAzC;AACAl0B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,gBAAnB,EAAqC,MAAK+tC,cAA1C;AACAr3B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,qBAAnB,EAA0C,MAAKquC,mBAA/C;AACA33B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,eAAnB,EAAoC,MAAKowC,aAAzC;AACA15B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,kBAAnB,EAAuC,MAAKwwC,gBAA5C;AACA95B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,qBAAnB,EAA0C,MAAK+uC,mBAA/C;AACAr4B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,kBAAnB,EAAuC,MAAKq3C,gBAA5C;AACA3gC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,YAAnB,EAAiC,MAAK8uC,UAAtC;AACAp4B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,wBAAnB,EAA6C,MAAKyxC,sBAAlD;AACA/6B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,gBAAnB,EAAqC,MAAK+vC,cAA1C;AACAr5B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,eAAnB,EAAoC,MAAKiwC,aAAzC;AACAv5B,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,eAAnB,EAAoC,MAAK4tC,aAAzC;AACAl3B,IAAAA,MAAM,CAAC1W,WAAP,CACE,sCADF,EAEE,MAAKs3C,oCAFP;AAIA5gC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,UAAnB,EAA+B,MAAKu3C,QAApC;AACA7gC,IAAAA,MAAM,CAAC1W,WAAP,CACE,4BADF,EAEE,MAAKw3C,0BAFP;AAIA9gC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,wBAAnB,EAA6C,MAAKg+B,sBAAlD;AACAtnB,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,qBAAnB,EAA0C,MAAKy3C,mBAA/C;AACA/gC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,mBAAnB,EAAwC,MAAK03C,iBAA7C,EAzDiC,CA2DjC;AACA;AACA;;AACAhhC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,iBAAnB,EAAsC,MAAK23C,eAA3C;AACAjhC,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,mBAAnB,EAAwC,MAAK86B,iBAA7C;AACApkB,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,eAAnB,EAAoC,MAAKi7B,aAAzC;AACAvkB,IAAAA,MAAM,CAAC1W,WAAP,CAAmB,eAAnB,EAAoC,MAAK43C,aAAzC;;AAEA,QAAI,MAAKxB,YAAT,EAAuB;AACrB1/B,MAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ,EAA+B,IAA/B;AACD,KArEgC,CAuEjC;AACA;;;AACA,QAAMvlB,QAAO,GAAGpJ,kBAAhB;;AACA,QAAIoJ,QAAJ,EAAa;AACX,YAAKkjD,OAAL,CAAa39B,IAAb,CAAkB,gBAAlB,EAAoCvlB,QAApC;AACD;;AACD,UAAKkjD,OAAL,CAAa39B,IAAb,CAAkB,gBAAlB,EAAoC28B,qBAApC,EA7EiC,CA+EjC;AACA;;;AACA,QAAI2C,4BAA4B,GAAG,KAAnC;;AACA,QAAI;AACF5qC,MAAAA,YAAY,CAACC,OAAb,CAAqB,MAArB;AACA2qC,MAAAA,4BAA4B,GAAG,IAA/B;AACD,KAHD,CAGE,OAAOlkD,KAAP,EAAc,CAAE;;AAClB+iB,IAAAA,MAAM,CAAC6B,IAAP,CAAY,8BAAZ,EAA4Cs/B,4BAA5C;AACAnhC,IAAAA,MAAM,CAAC6B,IAAP,CAAY,2BAAZ,EAAyCoQ,yBAAyB,EAAlE;AAEAlS,IAAAA,gBAAgB,CAACC,MAAD,qCAAhB;AACAo/B,IAAAA,uBAAiB,CAAC,mCAAlB;AA1FiC;AA2FlC;;;;gDA2EiD;AAAA,UAFhDhuD,EAEgD,UAFhDA,EAEgD;AAAA,UADhD8vB,UACgD,UADhDA,UACgD;AAChD,UAAME,QAAQ,GAAG,KAAKm+B,mBAAL,CAAyBr+B,UAAzB,CAAjB;;AACA,UAAIE,QAAQ,IAAI,IAAhB,EAAsB;AACpBrS,QAAAA,OAAO,CAACuS,IAAR,iCAAqCJ,UAArC;AACA,eAAO,IAAP;AACD;;AACD,aAAOE,QAAQ,CAACgzB,mBAAT,CAA6BhjD,EAA7B,CAAP;AACD;;;qDAEgC6U,MAAwC;AACvE,UAAIm7C,SAAS,GAAG,IAAhB;;AACA,WAAK,IAAMlgC,UAAX,IAAyB,KAAKq+B,mBAA9B,EAAmD;AACjD,YAAMn+B,QAAQ,GAAK,KAAKm+B,mBAAL,CAChBr+B,UADgB,CAAnB;AAGA,YAAM4c,KAAK,GAAG1c,QAAQ,CAAC2xB,iBAAT,CAA2B9sC,IAA3B,CAAd;;AACA,YAAI63B,KAAK,KAAK,IAAd,EAAoB;AAClB;AACA,cAAIA,KAAK,CAAC3M,SAAN,KAAoBlrB,IAAxB,EAA8B;AAC5B,mBAAOmb,QAAP;AACD,WAFD,MAEO,IAAIggC,SAAS,KAAK,IAAlB,EAAwB;AAC7BA,YAAAA,SAAS,GAAGhgC,QAAZ;AACD;AACF;AACF,OAfsE,CAgBvE;;;AACA,aAAOggC,SAAP;AACD;;;iCAEYn7C,MAA6B;AACxC,UAAMiY,iBAAiB,GAAG,KAAKC,gCAAL,CAAsClY,IAAtC,CAA1B;;AACA,UAAIiY,iBAAiB,IAAI,IAAzB,EAA+B;AAC7B,YAAI;AACF,iBAAOA,iBAAiB,CAACE,mBAAlB,CAAsCnY,IAAtC,EAA4C,IAA5C,CAAP;AACD,SAFD,CAEE,OAAOhJ,KAAP,EAAc,CACd;AACA;AACD;AACF;;AACD,aAAO,IAAP;AACD;;;+BAkPUklB,QAAsB;AAC/B,UAAM/wB,EAAE,GAAG,KAAKkxB,YAAL,CAAkBH,MAAlB,CAAX;;AACA,UAAI/wB,EAAE,KAAK,IAAX,EAAiB;AACf,aAAKouD,OAAL,CAAa39B,IAAb,CAAkB,aAAlB,EAAiCzwB,EAAjC;AACD;AACF;;;yCAGC8vB,YACAhD,mBACA;AACA,WAAKqhC,mBAAL,CAAyBr+B,UAAzB,IAAuChD,iBAAvC;;AAEA,UAAI,KAAKwhC,YAAT,EAAuB;AACrBxhC,QAAAA,iBAAiB,CAACm7B,cAAlB,CAAiC,KAAK2G,yBAAtC;AACD;;AAED9hC,MAAAA,iBAAiB,CAAC68B,sBAAlB,CAAyC,KAAK+E,oBAA9C,EAPA,CASA;AACA;AACA;;AACA,UAAMuB,SAAS,GAAG,KAAKzB,mBAAvB;;AACA,UAAIyB,SAAS,KAAK,IAAd,IAAsBA,SAAS,CAACngC,UAAV,KAAyBA,UAAnD,EAA+D;AAC7DhD,QAAAA,iBAAiB,CAACowB,cAAlB,CAAiC+S,SAAS,CAAC/0B,IAA3C;AACD;AACF;;;0CAuMqBpL,YAAoB;AACxC,WAAKs+B,OAAL,CAAa39B,IAAb,CAAkB,4BAAlB,EAAgDX,UAAhD;AACD;;;wBAtkBqE;AACpE,aAAO,KAAKq+B,mBAAZ;AACD;;;;EAjHgCvrC;;;;;;;;;;;;;;;;;;AClJnC;;;;;;;;;AAsBO,SAASstC,WAAT,CAAqBn/B,MAArB,EAAuD;AAC5D,MAAIA,MAAM,CAACtyB,cAAP,CAAsB,gCAAtB,CAAJ,EAA6D;AAC3D,WAAO,IAAP;AACD;;AAED,MAAIqsD,aAAqB,GAAGntC,OAA5B;AACA,MAAIotC,oBAA4C,GAAG,EAAnD;;AACA,OAAK,IAAM9G,MAAX,IAAqBtmC,OAArB,EAA8B;AAC5BotC,IAAAA,oBAAoB,CAAC9G,MAAD,CAApB,GAA+BtmC,OAAO,CAACsmC,MAAD,CAAtC;AACD;;AAED,WAASiH,oCAAT,CACEC,uBADF,EAEQ;AACNL,IAAAA,aAAa,GAAGK,uBAAhB;AAEAJ,IAAAA,oBAAoB,GAAI,EAAxB;;AACA,SAAK,IAAM9G,OAAX,IAAqB6G,aAArB,EAAoC;AAClCC,MAAAA,oBAAoB,CAAC9G,OAAD,CAApB,GAA+BtmC,OAAO,CAACsmC,OAAD,CAAtC;AACD;AACF;;AAED,WAASkM,oBAAT,CAA8BngC,QAA9B,EAAuD;AACrD,QAAI;AACF,UAAI,OAAOA,QAAQ,CAAC9kB,OAAhB,KAA4B,QAAhC,EAA0C;AACxC;AACA,YAAI8kB,QAAQ,CAACogC,UAAT,GAAsB,CAA1B,EAA6B;AAC3B;AACA;AACA;AACA,iBAAO,aAAP;AACD,SAPuC,CASxC;AACA;;;AACA,eAAO,YAAP,CAXwC,CAYxC;AACA;AACA;AACA;AACA;AACD,OAlBC,CAoBF;;;AACA,UAAM9pD,SAAQ,GAAGgJ,QAAQ,CAACtK,SAAT,CAAmBsB,QAApC;;AACA,UAAI0pB,QAAQ,CAACqgC,KAAT,IAAkBrgC,QAAQ,CAACqgC,KAAT,CAAeC,uBAArC,EAA8D;AAC5D;AACA,YAAMC,cAAc,GAAGjqD,SAAQ,CAACT,IAAT,CACrBmqB,QAAQ,CAACqgC,KAAT,CAAeC,uBADM,CAAvB,CAF4D,CAK5D;;;AACA,YAAIC,cAAc,CAAChkD,OAAf,CAAuB,UAAvB,MAAuC,CAA3C,EAA8C;AAC5C;AACA,iBAAO,YAAP;AACD,SAT2D,CAU5D;AACA;AACA;;;AACA,YAAIgkD,cAAc,CAAChkD,OAAf,CAAuB,eAAvB,MAA4C,CAAC,CAAjD,EAAoD;AAClD,iBAAO,aAAP;AACD,SAf2D,CAgB5D;AACA;AACA;AACA;;;AACA,YAAIgkD,cAAc,CAAChkD,OAAf,CAAuB,2BAAvB,MAAwD,CAAC,CAA7D,EAAgE;AAC9D;AACA;AACA;AACA,cAAIgkD,cAAc,CAAChkD,OAAf,CAAuB,UAAvB,MAAuC,CAAC,CAA5C,EAA+C;AAC7C,mBAAO,aAAP;AACD,WAN6D,CAO9D;AACA;;;AACA,cAAIgkD,cAAc,CAAChkD,OAAf,CAAuB,aAAvB,MAA0C,CAAC,CAA/C,EAAkD;AAChD,mBAAO,aAAP;AACD,WAX6D,CAY9D;AACA;AACA;AACA;;;AACA,cAAIgkD,cAAc,CAAChkD,OAAf,CAAuB,MAAvB,MAAmC,CAAC,CAAxC,EAA2C;AACzC,mBAAO,aAAP;AACD,WAlB6D,CAmB9D;AACA;AACA;AACA;;;AACA,eACE;AACAgkD,UAAAA,cAAc,CAAChkD,OAAf,CAAuB,aAAvB,MAA0C,CAAC,CAA3C,IACA;AACAgkD,UAAAA,cAAc,CAAChkD,OAAf,CAAuB,eAAvB,MAA4C,CAAC,CAJ/C,EAKE;AACA;AACA;AACA,mBAAO,YAAP;AACD,WATD,MASO;AACL;AACA,mBAAO,aAAP;AACD;AACF,SAxD2D,CAyD5D;AACA;AACA;;;AACA,aACE;AACAgkD,QAAAA,cAAc,CAAChkD,OAAf,CAAuB,aAAvB,MAA0C,CAAC,CAA3C,IACA;AACAgkD,QAAAA,cAAc,CAAChkD,OAAf,CAAuB,eAAvB,MAA4C,CAAC,CAJ/C,EAKE;AACA,iBAAO,YAAP;AACD,SAnE2D,CAoE5D;AACA;;;AACA,eAAO,UAAP;AACD;AACF,KA9FD,CA8FE,OAAOm1C,GAAP,EAAY,CACZ;AACA;AACA;AACA;AACD;;AACD,WAAO,YAAP;AACD;;AAED,WAAS8O,QAAT,CAAkBj8C,EAAlB,EAAgC;AAC9B;AACA;AACA,QAAI;AACF;AACA,UAAMjO,UAAQ,GAAGgJ,QAAQ,CAACtK,SAAT,CAAmBsB,QAApC;;AACA,UAAMmqD,IAAI,GAAGnqD,UAAQ,CAACT,IAAT,CAAc0O,EAAd,CAAb,CAHE,CAKF;AACA;AACA;;;AACA,UAAIk8C,IAAI,CAAClkD,OAAL,CAAa,KAAb,IAAsB,CAAC,CAA3B,EAA8B;AAC5B;AACAmkD,QAAAA,iBAAiB,GAAG,IAApB,CAF4B,CAI5B;AACA;;AACAt/C,QAAAA,UAAU,CAAC,YAAY;AACrB,gBAAM,IAAIvT,KAAJ,CACJ,wDACE,0DADF,GAEE,kCAFF,GAGE,oDAJE,CAAN;AAMD,SAPS,CAAV;AAQD;AACF,KAvBD,CAuBE,OAAO6jD,GAAP,EAAY,CAAE;AACjB,GAzJ2D,CA2J5D;;;AACA,WAASzhB,gBAAT,CACEC,SADF,EAEEjhB,KAFF,EAGuB;AACrB,QACEihB,SAAS,KAAKvzB,SAAd,IACAuzB,SAAS,KAAK,IADd,IAEAA,SAAS,CAAC/iC,MAAV,KAAqB,CAFrB,IAGA;AACC,WAAO+iC,SAAS,CAAC,CAAD,CAAhB,KAAwB,QAAxB,IACCA,SAAS,CAAC,CAAD,CAAT,CAAaj0B,KAAb,CAAmB,eAAnB,CALF,IAMAgT,KAAK,KAAKtS,SAPZ,EAQE;AACA,aAAOuzB,SAAP;AACD,KAXoB,CAarB;;;AACA,QAAMC,MAAM,GAAG,+BAAf;;AACA,QAAI,OAAOD,SAAS,CAAC,CAAD,CAAhB,KAAwB,QAAxB,IAAoCA,SAAS,CAAC,CAAD,CAAT,CAAaj0B,KAAb,CAAmBk0B,MAAnB,CAAxC,EAAoE;AAClE,0BAAaD,SAAS,CAAC,CAAD,CAAtB,GAA6BjhB,KAA7B,gCAAuCihB,SAAS,CAACpgC,KAAV,CAAgB,CAAhB,CAAvC;AACD,KAFD,MAEO;AACL,UAAMsgC,QAAQ,GAAGF,SAAS,CAACtf,MAAV,CAAiB,UAACyf,SAAD,EAAYC,IAAZ,EAAkBryB,CAAlB,EAAwB;AACxD,YAAIA,CAAC,GAAG,CAAR,EAAW;AACToyB,UAAAA,SAAS,IAAI,GAAb;AACD;;AACD,4BAAeC,IAAf;AACE,eAAK,QAAL;AACA,eAAK,SAAL;AACA,eAAK,QAAL;AACE,mBAAQD,SAAS,IAAI,IAArB;;AACF,eAAK,QAAL;AACE,gBAAME,UAAU,GAAGvkB,MAAM,CAACwkB,SAAP,CAAiBF,IAAjB,IAAyB,IAAzB,GAAgC,IAAnD;AACA,mBAAQD,SAAS,IAAIE,UAArB;;AACF;AACE,mBAAQF,SAAS,IAAI,IAArB;AATJ;AAWD,OAfgB,EAed,IAfc,CAAjB;AAgBA,cAAQD,QAAR,EAAkBnhB,KAAlB,gCAA4BihB,SAA5B;AACD;AACF;;AAED,MAAI8qB,SAAS,GAAG,IAAhB,CArM4D,CAuM5D;AACA;AACA;AACA;AACA;AACA;;AACA,WAAS2F,wCAAT,OAMG;AAAA,QALDnF,2BAKC,QALDA,2BAKC;AAAA,QAJDlB,YAIC,QAJDA,YAIC;AACD,QAAM8B,sBAAsB,GAAG,CAC7B,OAD6B,EAE7B,OAF6B,EAG7B,gBAH6B,EAI7B,MAJ6B,EAK7B,KAL6B,EAM7B,OAN6B,EAO7B,MAP6B,CAA/B;;AAUA,QAAIpB,SAAS,KAAK,IAAlB,EAAwB;AACtB;AACA;AACD;;AAED,QAAMhH,sBAA8C,GAAG,EAAvD;;AAEAgH,IAAAA,SAAS,GAAG,qBAAM;AAChB,WAAK,IAAM/G,QAAX,IAAqBD,sBAArB,EAA6C;AAC3C,YAAI;AACF8G,UAAAA,aAAa,CAAC7G,QAAD,CAAb,GAAwBD,sBAAsB,CAACC,QAAD,CAA9C;AACD,SAFD,CAEE,OAAOp4C,KAAP,EAAc,CAAE;AACnB;AACF,KAND;;AAQAugD,IAAAA,sBAAsB,CAACprD,OAAvB,CAA+B,UAAAijD,MAAM,EAAI;AACvC,UAAI;AACF,YAAMyH,cAAc,GAAI1H,sBAAsB,CAACC,MAAD,CAAtB,GAAiC6G,aAAa,CACpE7G,MADoE,CAAb,CAEvDoI,8CAFuD,GAGrDvB,aAAa,CAAC7G,MAAD,CAAb,CAAsBoI,8CAH+B,GAIrDvB,aAAa,CAAC7G,MAAD,CAJjB;;AAMA,YAAM2H,cAAc,GAAG,SAAjBA,cAAiB,GAAkC;AACvD,cAAI,CAACJ,2BAAL,EAAkC;AAChC;AACA;AACA,gBAAIrgC,KAAJ;;AACA,oBAAQ84B,MAAR;AACE,mBAAK,MAAL;AACE94B,gBAAAA,KAAK,GACHm/B,YAAY,KAAK,OAAjB,GACIxoD,0BADJ,GAEIA,yBAHN;AAIA;;AACF,mBAAK,OAAL;AACEqpB,gBAAAA,KAAK,GACHm/B,YAAY,KAAK,OAAjB,GACIxoD,2BADJ,GAEIA,0BAHN;AAIA;;AACF,mBAAK,KAAL;AACA;AACEqpB,gBAAAA,KAAK,GACHm/B,YAAY,KAAK,OAAjB,GACIxoD,2BADJ,GAEIA,0BAHN;AAIA;AAnBJ;;AAsBA,gBAAIqpB,KAAJ,EAAW;AAAA,gDA3BY3c,IA2BZ;AA3BYA,gBAAAA,IA2BZ;AAAA;;AACTk9C,cAAAA,cAAc,MAAd,gCAAkBzrB,gBAAgB,CAACzxB,IAAD,mBAAiB2c,KAAjB,EAAlC;AACD,aAFD,MAEO;AACL,oBAAMttB,KAAK,CAAC,8BAAD,CAAX;AACD;AACF;AACF,SAjCD;;AAmCA+tD,QAAAA,cAAc,CAACS,8CAAf,GACEX,cADF;AAEAA,QAAAA,cAAc,CAACY,8CAAf,GACEV,cADF;AAGAd,QAAAA,aAAa,CAAC7G,MAAD,CAAb,GAAwB2H,cAAxB;AACD,OAhDD,CAgDE,OAAO//C,KAAP,EAAc,CAAE;AACnB,KAlDD;AAmDD,GAhS2D,CAkS5D;;;AACA,WAAS+kD,0CAAT,GAAsD;AACpD,QAAI5F,SAAS,KAAK,IAAlB,EAAwB;AACtBA,MAAAA,SAAS;AACTA,MAAAA,SAAS,GAAG,IAAZ;AACD;AACF;;AAED,MAAInzB,UAAU,GAAG,CAAjB;;AAEA,WAASg5B,MAAT,CAAgB7gC,QAAhB,EAAiD;AAC/C,QAAMhwB,EAAE,GAAG,EAAE63B,UAAb;AACAi5B,IAAAA,SAAS,CAACzzD,GAAV,CAAc2C,EAAd,EAAkBgwB,QAAlB;AAEA,QAAM+gC,cAAc,GAAGL,iBAAiB,GACpC,UADoC,GAEpCP,oBAAoB,CAACngC,QAAD,CAFxB,CAJ+C,CAQ/C;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAIe,MAAM,CAACtyB,cAAP,CAAsB,sCAAtB,CAAJ,EAAmE;AAAA,kCAE/DsyB,MAAM,CAACg8B,oCAFwD;AAAA,UAC1Dhd,2BAD0D,yBAC1DA,2BAD0D;AAAA,UAC7BF,6BAD6B,yBAC7BA,6BAD6B;;AAGjE,UACE,OAAOE,2BAAP,KAAuC,UAAvC,IACA,OAAOF,6BAAP,KAAyC,UAF3C,EAGE;AACAE,QAAAA,2BAA2B,CAAC/f,QAAD,CAA3B;AACA6f,QAAAA,6BAA6B;AAC9B;AACF,KAzB8C,CA2B/C;AACA;;;AACA,QAAM+C,MAAM,GAAG7hB,MAAM,CAACigC,yBAAtB;;AACA,QAAI,OAAOpe,MAAP,KAAkB,UAAtB,EAAkC;AAChC,UAAM9lB,iBAAiB,GAAG8lB,MAAM,CAACC,IAAD,EAAO7yC,EAAP,EAAWgwB,QAAX,EAAqBe,MAArB,CAAhC;AACA8hB,MAAAA,IAAI,CAAC5iB,kBAAL,CAAwB5yB,GAAxB,CAA4B2C,EAA5B,EAAgC8sB,iBAAhC;AACD;;AAED+lB,IAAAA,IAAI,CAACt6B,IAAL,CAAU,UAAV,EAAsB;AACpBvY,MAAAA,EAAE,EAAFA,EADoB;AAEpBgwB,MAAAA,QAAQ,EAARA,QAFoB;AAGpB+gC,MAAAA,cAAc,EAAdA;AAHoB,KAAtB;AAMA,WAAO/wD,EAAP;AACD;;AAED,MAAI0wD,iBAAiB,GAAG,KAAxB;;AAEA,WAASO,GAAT,CAAapuC,KAAb,EAA4BtO,EAA5B,EAAyC;AACvCs+B,IAAAA,IAAI,CAAC56B,EAAL,CAAQ4K,KAAR,EAAetO,EAAf;AACA,WAAO;AAAA,aAAMs+B,IAAI,CAACz6B,GAAL,CAASyK,KAAT,EAAgBtO,EAAhB,CAAN;AAAA,KAAP;AACD;;AAED,WAAS0D,EAAT,CAAY4K,KAAZ,EAA2BtO,EAA3B,EAAwC;AACtC,QAAI,CAACmE,SAAS,CAACmK,KAAD,CAAd,EAAuB;AACrBnK,MAAAA,SAAS,CAACmK,KAAD,CAAT,GAAmB,EAAnB;AACD;;AACDnK,IAAAA,SAAS,CAACmK,KAAD,CAAT,CAAiB9kB,IAAjB,CAAsBwW,EAAtB;AACD;;AAED,WAAS6D,GAAT,CAAayK,KAAb,EAA4BtO,EAA5B,EAAyC;AACvC,QAAI,CAACmE,SAAS,CAACmK,KAAD,CAAd,EAAuB;AACrB;AACD;;AACD,QAAMG,KAAK,GAAGtK,SAAS,CAACmK,KAAD,CAAT,CAAiBtW,OAAjB,CAAyBgI,EAAzB,CAAd;;AACA,QAAIyO,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBtK,MAAAA,SAAS,CAACmK,KAAD,CAAT,CAAiBriB,MAAjB,CAAwBwiB,KAAxB,EAA+B,CAA/B;AACD;;AACD,QAAI,CAACtK,SAAS,CAACmK,KAAD,CAAT,CAAiB1lB,MAAtB,EAA8B;AAC5B,aAAOub,SAAS,CAACmK,KAAD,CAAhB;AACD;AACF;;AAED,WAAStK,IAAT,CAAcsK,KAAd,EAA6BlJ,IAA7B,EAAwC;AACtC,QAAIjB,SAAS,CAACmK,KAAD,CAAb,EAAsB;AACpBnK,MAAAA,SAAS,CAACmK,KAAD,CAAT,CAAiBpiB,GAAjB,CAAqB,UAAA8T,EAAE;AAAA,eAAIA,EAAE,CAACoF,IAAD,CAAN;AAAA,OAAvB;AACD;AACF;;AAED,WAASw8B,aAAT,CAAuBrmB,UAAvB,EAA+C;AAC7C,QAAMohC,KAAK,GAAGC,UAAd;;AACA,QAAI,CAACD,KAAK,CAACphC,UAAD,CAAV,EAAwB;AACtBohC,MAAAA,KAAK,CAACphC,UAAD,CAAL,GAAoB,IAAIpB,GAAJ,EAApB;AACD;;AACD,WAAOwiC,KAAK,CAACphC,UAAD,CAAZ;AACD;;AAED,WAASshC,oBAAT,CAA8BthC,UAA9B,EAAsD4c,KAAtD,EAAkE;AAChE,QAAM5f,iBAAiB,GAAGmD,kBAAkB,CAACzxB,GAAnB,CAAuBsxB,UAAvB,CAA1B;;AACA,QAAIhD,iBAAiB,IAAI,IAAzB,EAA+B;AAC7BA,MAAAA,iBAAiB,CAACi0B,wBAAlB,CAA2CrU,KAA3C;AACD;AACF;;AAED,WAAS2kB,iBAAT,CACEvhC,UADF,EAEE3kB,IAFF,EAGEu1C,aAHF,EAIE;AACA,QAAM4Q,YAAY,GAAGze,IAAI,CAACsD,aAAL,CAAmBrmB,UAAnB,CAArB;AACA,QAAM5xB,OAAO,GAAGiN,IAAI,CAACjN,OAArB;AACA,QAAMqzD,WAAW,GAAGD,YAAY,CAAC5vD,GAAb,CAAiByJ,IAAjB,CAApB;AACA,QAAMqmD,YAAY,GAChBtzD,OAAO,CAACD,aAAR,IAAyB,IAAzB,IAAiCC,OAAO,CAACD,aAAR,CAAsByuB,OAAtB,IAAiC,IADpE,CAJA,CAOA;;AACA,QAAI,CAAC6kC,WAAD,IAAgB,CAACC,YAArB,EAAmC;AACjCF,MAAAA,YAAY,CAAC1vC,GAAb,CAAiBzW,IAAjB;AACD,KAFD,MAEO,IAAIomD,WAAW,IAAIC,YAAnB,EAAiC;AACtCF,MAAAA,YAAY,CAACh7C,MAAb,CAAoBnL,IAApB;AACD;;AACD,QAAM2hB,iBAAiB,GAAGmD,kBAAkB,CAACzxB,GAAnB,CAAuBsxB,UAAvB,CAA1B;;AACA,QAAIhD,iBAAiB,IAAI,IAAzB,EAA+B;AAC7BA,MAAAA,iBAAiB,CAACm0B,qBAAlB,CAAwC91C,IAAxC,EAA8Cu1C,aAA9C;AACD;AACF;;AAED,WAAS+Q,qBAAT,CAA+B3hC,UAA/B,EAAuD3kB,IAAvD,EAAkE;AAChE,QAAM2hB,iBAAiB,GAAGmD,kBAAkB,CAACzxB,GAAnB,CAAuBsxB,UAAvB,CAA1B;;AACA,QAAIhD,iBAAiB,IAAI,IAAzB,EAA+B;AAC7BA,MAAAA,iBAAiB,CAACk0B,yBAAlB,CAA4C71C,IAA5C;AACD;AACF;;AAED,WAASumD,aAAT,CAAuB5hC,UAAvB,EAA+ClsB,YAA/C,EAAkE;AAChE,QAAMkpB,iBAAiB,GAAGmD,kBAAkB,CAACzxB,GAAnB,CAAuBsxB,UAAvB,CAA1B;;AACA,QAAIhD,iBAAiB,IAAI,IAAzB,EAA+B;AAC7B,UAAIlpB,YAAJ,EAAkB;AAChBkpB,QAAAA,iBAAiB,CAACmjB,yBAAlB;AACD,OAFD,MAEO;AACLnjB,QAAAA,iBAAiB,CAACqjB,2BAAlB;AACD;AACF,KAND,MAMO;AACL;AACA;AACA,UAAIvsC,YAAJ,EAAkB;AAChB,YAAM4nD,2BAA2B,GAC/BjjC,MAAM,CAACmkC,mDAAP,KAA+D,IADjE;AAEA,YAAMpC,YAAY,GAAG/hC,MAAM,CAACokC,gCAA5B;AAEAgE,QAAAA,wCAAwC,CAAC;AACvCnF,UAAAA,2BAA2B,EAA3BA,2BADuC;AAEvClB,UAAAA,YAAY,EAAZA;AAFuC,SAAD,CAAxC;AAID,OATD,MASO;AACLsG,QAAAA,0CAA0C;AAC3C;AACF;AACF;;AAID,MAAMe,qBAA8C,GAAG,EAAvD;AACA,MAAMC,YAAyD,GAAG,EAAlE;;AAEA,WAASC,sBAAT,CAAgChmD,KAAhC,EAAuE;AACrE,QAAMimD,MAAM,GAAGjmD,KAAK,CAACG,KAAN,CAAYc,KAAZ,CAAkB,IAAlB,CAAf;AACA,QAAM2iB,KAAK,GAAGqiC,MAAM,CAAC30D,MAAP,GAAgB,CAAhB,GAAoB20D,MAAM,CAAC,CAAD,CAA1B,GAAgC,IAA9C;AACA,WAAOriC,KAAP;AACD;;AAED,WAASub,uBAAT,GAEE;AACA,WAAO4mB,YAAP;AACD;;AAED,WAASG,2BAAT,CAAqClmD,KAArC,EAAmD;AACjD,QAAM8/B,eAAe,GAAGkmB,sBAAsB,CAAChmD,KAAD,CAA9C;;AACA,QAAI8/B,eAAe,KAAK,IAAxB,EAA8B;AAC5BgmB,MAAAA,qBAAqB,CAAC5zD,IAAtB,CAA2B4tC,eAA3B;AACD;AACF;;AAED,WAASqmB,0BAAT,CAAoCnmD,KAApC,EAAkD;AAChD,QAAI8lD,qBAAqB,CAACx0D,MAAtB,GAA+B,CAAnC,EAAsC;AACpC,UAAMwuC,eAAe,GAAGgmB,qBAAqB,CAAC5xD,GAAtB,EAAxB;AACA,UAAM6rC,cAAc,GAAGimB,sBAAsB,CAAChmD,KAAD,CAA7C;;AACA,UAAI+/B,cAAc,KAAK,IAAvB,EAA6B;AAC3BgmB,QAAAA,YAAY,CAAC7zD,IAAb,CAAkB,CAAC4tC,eAAD,EAAkBC,cAAlB,CAAlB;AACD;AACF;AACF,GAhe2D,CAke5D;;;AACA,MAAMulB,UAAsC,GAAG,EAA/C;AACA,MAAMlhC,kBAAkB,GAAG,IAAIj0B,GAAJ,EAA3B;AACA,MAAM0c,SAAqC,GAAG,EAA9C;AACA,MAAMo4C,SAAS,GAAG,IAAI90D,GAAJ,EAAlB;AACA,MAAMi2D,QAAQ,GAAG,IAAIj2D,GAAJ,EAAjB;AAEA,MAAM62C,IAAkB,GAAG;AACzB5iB,IAAAA,kBAAkB,EAAlBA,kBADyB;AAEzBvX,IAAAA,SAAS,EAATA,SAFyB;AAIzBu5C,IAAAA,QAAQ,EAARA,QAJyB;AAMzB;AACAnB,IAAAA,SAAS,EAATA,SAPyB;AASzBv4C,IAAAA,IAAI,EAAJA,IATyB;AAUzB49B,IAAAA,aAAa,EAAbA,aAVyB;AAWzB0a,IAAAA,MAAM,EAANA,MAXyB;AAYzB54C,IAAAA,EAAE,EAAFA,EAZyB;AAazBG,IAAAA,GAAG,EAAHA,GAbyB;AAczB64C,IAAAA,GAAG,EAAHA,GAdyB;AAgBzB;AACA;AACAiB,IAAAA,aAAa,EAAE,IAlBU;AAoBzB;AACA1B,IAAAA,QAAQ,EAARA,QArByB;AAsBzBY,IAAAA,oBAAoB,EAApBA,oBAtByB;AAuBzBC,IAAAA,iBAAiB,EAAjBA,iBAvByB;AAwBzBI,IAAAA,qBAAqB,EAArBA,qBAxByB;AAyBzBC,IAAAA,aAAa,EAAbA,aAzByB;AA2BzB;AACA;AACA;AACA1mB,IAAAA,uBAAuB,EAAvBA,uBA9ByB;AA+BzB+mB,IAAAA,2BAA2B,EAA3BA,2BA/ByB;AAgCzBC,IAAAA,0BAA0B,EAA1BA;AAhCyB,GAA3B;;AAmCA,MAAIG,KAAJ,EAAc,EAGb;;AAED32D,EAAAA,MAAM,CAACsY,cAAP,CACEid,MADF,EAEE,gCAFF,EAGG;AACC;AACA;AACAlX,IAAAA,YAAY,EAAEstB,KAHf;AAIClzB,IAAAA,UAAU,EAAE,KAJb;AAKCzV,IAAAA,GALD,iBAKO;AACJ,aAAOq0C,IAAP;AACD;AAPF,GAHH;AAcA,SAAOA,IAAP;AACD;;ACtjBD;;;;;;;;AAWO,SAASuf,QAAT,CAAkBn3B,MAAlB,EAAkCG,IAAlC,EAAgD7mB,EAAhD,EAAwE;AAC7E,MAAM89C,GAAG,GAAGp3B,MAAM,CAACG,IAAD,CAAlB,CAD6E,CAE7E;;AACAH,EAAAA,MAAM,CAACG,IAAD,CAAN,GAAe,UAAUwd,QAAV,EAAsC;AACnD,WAAOrkC,EAAE,CAAC1O,IAAH,CAAQ,IAAR,EAAcwsD,GAAd,EAAmBxxD,SAAnB,CAAP;AACD,GAFD;;AAGA,SAAOwxD,GAAP;AACD;AAEM,SAASC,YAAT,CACLvzD,MADK,EAELwzD,GAFK,EAGG;AACR,MAAMC,IAA4B,GAAG,EAArC;;AACA,OAAK,IAAM9zD,IAAX,IAAmB6zD,GAAnB,EAAwB;AACtBC,IAAAA,IAAI,CAAC9zD,IAAD,CAAJ,GAAa0zD,QAAQ,CAACrzD,MAAD,EAASL,IAAT,EAAe6zD,GAAG,CAAC7zD,IAAD,CAAlB,CAArB;AACD;;AACD,SAAO8zD,IAAP;AACD;AAEM,SAASC,WAAT,CAAqB1zD,MAArB,EAAqCyzD,IAArC,EAAyD;AAC9D,OAAK,IAAM9zD,IAAX,IAAmB8zD,IAAnB,EAAyB;AACvBzzD,IAAAA,MAAM,CAACL,IAAD,CAAN,GAAe8zD,IAAI,CAAC9zD,IAAD,CAAnB;AACD;AACF,EAED;;AACO,SAASyG,WAAT,CAAqByzC,QAArB,EAAuD;AAC5D,MAAI,OAAOA,QAAQ,CAACzzC,WAAhB,KAAgC,UAApC,EAAgD;AAC9CyzC,IAAAA,QAAQ,CAACzzC,WAAT;AACD,GAFD,MAEO,IACLyzC,QAAQ,CAAC7zC,OAAT,IAAoB,IAApB,IACA,OAAO6zC,QAAQ,CAAC7zC,OAAT,CAAiBN,kBAAxB,KAA+C,UAF1C,EAGL;AACAm0C,IAAAA,QAAQ,CAAC7zC,OAAT,CAAiBN,kBAAjB,CAAoC,IAApC,EAA0C,YAAM,CAAE,CAAlD,EAAoD,aAApD;AACD;AACF;;;;;;;;;;AC/CD;;;;;;;;AASA;AAOA;AACA;AAOA;AAOA;AAMA;;AAqBA,SAASiuD,OAAT,CAAiBC,gBAAjB,EAAqD;AACnD,MAAI/iC,WAAW,GAAG,IAAlB;AACA,MAAInqB,GAAG,GAAG,IAAV,CAFmD,CAInD;;AACA,MAAIktD,gBAAgB,CAACC,eAAjB,IAAoC,IAAxC,EAA8C;AAC5C,QAAID,gBAAgB,CAACC,eAAjB,CAAiCntD,GAArC,EAA0C;AACxCA,MAAAA,GAAG,GAAGgB,MAAM,CAACksD,gBAAgB,CAACC,eAAjB,CAAiCntD,GAAlC,CAAZ;AACD;;AAED,QAAMlE,WAAW,GAAGoxD,gBAAgB,CAACC,eAAjB,CAAiCvxD,IAArD;;AACA,QAAI,OAAOE,WAAP,KAAuB,QAA3B,EAAqC;AACnCquB,MAAAA,WAAW,GAAGruB,WAAd;AACD,KAFD,MAEO,IAAI,OAAOA,WAAP,KAAuB,UAA3B,EAAuC;AAC5CquB,MAAAA,WAAW,GAAG+H,cAAc,CAACp2B,WAAD,CAA5B;AACD;AACF;;AAED,SAAO;AACLquB,IAAAA,WAAW,EAAXA,WADK;AAELnqB,IAAAA,GAAG,EAAHA;AAFK,GAAP;AAID;;AAED,SAASotD,cAAT,CAAwBF,gBAAxB,EAAyE;AACvE;AACA,MAAIA,gBAAgB,CAACC,eAAjB,IAAoC,IAAxC,EAA8C;AAC5C,QAAMrxD,WAAW,GAAGoxD,gBAAgB,CAACC,eAAjB,CAAiCvxD,IAArD;;AACA,QAAI,OAAOE,WAAP,KAAuB,UAA3B,EAAuC;AACrC,UAAMuxD,cAAc,GAAGH,gBAAgB,CAACI,iBAAjB,EAAvB;;AACA,UAAID,cAAc,KAAK,IAAvB,EAA6B;AAC3B,eAAOp9B,sBAAP;AACD,OAFD,MAEO;AACL,eAAOE,yBAAP;AACD;AACF,KAPD,MAOO,IAAI,OAAOr0B,WAAP,KAAuB,QAA3B,EAAqC;AAC1C,aAAOu0B,wBAAP;AACD;AACF;;AACD,SAAOE,yBAAP;AACD;;AAED,SAASg9B,WAAT,CAAqBL,gBAArB,EAA2D;AACzD,MAAM7sD,QAAQ,GAAG,EAAjB,CADyD,CAGzD;AACA;AACA;;AACA,MAAI,uBAAO6sD,gBAAP,MAA4B,QAAhC,EAA0C,CACxC;AACD,GAFD,MAEO,IACLA,gBAAgB,CAACC,eAAjB,KAAqC,IAArC,IACAD,gBAAgB,CAACC,eAAjB,KAAqC,KAFhC,EAGL,CACA;AACD,GALM,MAKA,IAAID,gBAAgB,CAACM,kBAArB,EAAyC;AAC9C,QAAMha,KAAK,GAAG0Z,gBAAgB,CAACM,kBAA/B;;AACA,QAAIJ,cAAc,CAAC5Z,KAAD,CAAd,KAA0BjjB,yBAA9B,EAAyD;AACvDlwB,MAAAA,QAAQ,CAAC/H,IAAT,CAAck7C,KAAd;AACD;AACF,GALM,MAKA,IAAI0Z,gBAAgB,CAACO,iBAArB,EAAwC;AAC7C,QAAMC,gBAAgB,GAAGR,gBAAgB,CAACO,iBAA1C;;AACA,SAAK,IAAMx0D,IAAX,IAAmBy0D,gBAAnB,EAAqC;AACnC,UAAMla,MAAK,GAAGka,gBAAgB,CAACz0D,IAAD,CAA9B;;AACA,UAAIm0D,cAAc,CAAC5Z,MAAD,CAAd,KAA0BjjB,yBAA9B,EAAyD;AACvDlwB,QAAAA,QAAQ,CAAC/H,IAAT,CAAck7C,MAAd;AACD;AACF;AACF,GA1BwD,CA2BzD;AACA;;;AACA,SAAOnzC,QAAP;AACD;;AAEM,SAAS8sC,eAAT,CACLC,IADK,EAEL/iB,UAFK,EAGLE,QAHK,EAIL7gB,MAJK,EAKc;AACnB,MAAMikD,uBAAsD,GAAG,IAAIp3D,GAAJ,EAA/D;AACA,MAAMq3D,uBAA0D,GAC9D,IAAIjsD,OAAJ,EADF;AAEA,MAAMksD,2BAA8D,GAClE,IAAIlsD,OAAJ,EADF;AAGA,MAAImsD,sBAA2C,GAC3C,IADJ;AAEA,MAAIC,2BAAJ;;AACA,MAAI7R,iBAAiB,GAAG,2BAAC9sC,IAAD,EAAsB;AAC5C;AACA,WAAO,IAAP;AACD,GAHD;;AAKA,MAAImb,QAAQ,CAACyjC,aAAb,EAA4B;AAC1BF,IAAAA,sBAAsB,GAAG,gCAAC1+C,IAAD,EAAOitC,6BAAP,EAAyC;AAChE,UAAM6Q,gBAAgB,GACpB3iC,QAAQ,CAACyjC,aAAT,CAAuBC,0BAAvB,CAAkD7+C,IAAlD,CADF;AAEA,aAAOw+C,uBAAuB,CAAC70D,GAAxB,CAA4Bm0D,gBAA5B,KAAiD,IAAxD;AACD,KAJD;;AAKAa,IAAAA,2BAA2B,GAAG,qCAACxzD,EAAD,EAAgB;AAC5C,UAAM2yD,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;AACA,aAAOgwB,QAAQ,CAACyjC,aAAT,CAAuBE,mBAAvB,CAA2ChB,gBAA3C,CAAP;AACD,KAHD;;AAIAhR,IAAAA,iBAAiB,GAAG,2BAAC9sC,IAAD,EAAsB;AACxC,aAAOmb,QAAQ,CAACyjC,aAAT,CAAuBC,0BAAvB,CAAkD7+C,IAAlD,CAAP;AACD,KAFD;AAGD,GAbD,MAaO,IAAImb,QAAQ,CAACqgC,KAAT,CAAeuD,KAAf,IAAwB5jC,QAAQ,CAACqgC,KAAT,CAAewD,OAA3C,EAAoD;AACzDN,IAAAA,sBAAsB,GAAG,gCAAC1+C,IAAD,EAAOitC,6BAAP,EAAyC;AAChE;AACA,aAAO,IAAP;AACD,KAHD;;AAIA0R,IAAAA,2BAA2B,GAAG,qCAACxzD,EAAD,EAAgB;AAC5C;AACA,aAAO,IAAP;AACD,KAHD;AAID;;AAED,WAASktB,wBAAT,CAAkCltB,EAAlC,EAA6D;AAC3D,QAAM2yD,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;AACA,WAAO2yD,gBAAgB,GAAGD,OAAO,CAACC,gBAAD,CAAP,CAA0B/iC,WAA7B,GAA2C,IAAlE;AACD;;AAED,WAASgkC,KAAT,CAAejB,gBAAf,EAA2D;AACzD,QAAI,uBAAOA,gBAAP,MAA4B,QAA5B,IAAwCA,gBAAgB,KAAK,IAAjE,EAAuE;AACrE,YAAM,IAAI90D,KAAJ,CAAU,gCAAgC80D,gBAA1C,CAAN;AACD;;AACD,QAAI,CAACU,uBAAuB,CAAC3xD,GAAxB,CAA4BixD,gBAA5B,CAAL,EAAoD;AAClD,UAAM3yD,GAAE,GAAG83B,MAAM,EAAjB;;AACAu7B,MAAAA,uBAAuB,CAACh2D,GAAxB,CAA4Bs1D,gBAA5B,EAA8C3yD,GAA9C;AACAozD,MAAAA,uBAAuB,CAAC/1D,GAAxB,CAA4B2C,GAA5B,EAAgC2yD,gBAAhC;AACD;;AACD,WAASU,uBAAuB,CAAC70D,GAAxB,CAA4Bm0D,gBAA5B,CAAT;AACD;;AAED,WAASmB,cAAT,CAAwB/3D,CAAxB,EAAuCkB,CAAvC,EAAsD;AACpD,QAAIlB,CAAC,CAACoB,MAAF,KAAaF,CAAC,CAACE,MAAnB,EAA2B;AACzB,aAAO,KAAP;AACD;;AACD,SAAK,IAAI8Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlS,CAAC,CAACoB,MAAtB,EAA8B8Q,CAAC,EAA/B,EAAmC;AACjC,UAAIlS,CAAC,CAACkS,CAAD,CAAD,KAAShR,CAAC,CAACgR,CAAD,CAAd,EAAmB;AACjB,eAAO,KAAP;AACD;AACF;;AACD,WAAO,IAAP;AACD,GAlEkB,CAoEnB;;;AACA,MAAI8lD,aAAa,GAAG,EAApB;AAEA,MAAIC,oBAAoB,GAAG,IAA3B;;AACA,MAAIhkC,QAAQ,CAACikC,UAAb,EAAyB;AACvB;AACAD,IAAAA,oBAAoB,GAAG1B,YAAY,CAACtiC,QAAQ,CAACikC,UAAV,EAAsB;AACvDC,MAAAA,cADuD,0BACxC3/C,EADwC,EACpC/F,IADoC,EAC9B;AACvB,YAAMmkD,gBAAgB,GAAGnkD,IAAI,CAAC,CAAD,CAA7B;AACA,YAAM2lD,iBAAiB,GAAG3lD,IAAI,CAAC,CAAD,CAA9B;;AACA,YAAIqkD,cAAc,CAACF,gBAAD,CAAd,KAAqC38B,yBAAzC,EAAoE;AAClE;AACA,iBAAOzhB,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAP;AACD;;AACD,YAAI2lD,iBAAiB,CAACC,gBAAlB,KAAuCznD,SAA3C,EAAsD;AACpD;AACA;AACA,iBAAO4H,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAP;AACD;;AAED,YAAMxO,EAAE,GAAG4zD,KAAK,CAACjB,gBAAD,CAAhB,CAbuB,CAcvB;;AACA,YAAMt5B,QAAQ,GACZ06B,aAAa,CAAC52D,MAAd,GAAuB,CAAvB,GACI42D,aAAa,CAACA,aAAa,CAAC52D,MAAd,GAAuB,CAAxB,CADjB,GAEI,CAHN;AAIAi/C,QAAAA,WAAW,CAACuW,gBAAD,EAAmB3yD,EAAnB,EAAuBq5B,QAAvB,CAAX;AACA06B,QAAAA,aAAa,CAACh2D,IAAd,CAAmBiC,EAAnB,EApBuB,CAsBvB;;AACAszD,QAAAA,2BAA2B,CAACj2D,GAA5B,CACEs1D,gBADF,EAEEiB,KAAK,CAACO,iBAAiB,CAACC,gBAAnB,CAFP;;AAKA,YAAI;AACF;AACA,cAAMpmD,MAAM,GAAGuG,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAf;AACAulD,UAAAA,aAAa,CAACh0D,GAAd;AACA,iBAAOiO,MAAP;AACD,SALD,CAKE,OAAO0zC,GAAP,EAAY;AACZqS,UAAAA,aAAa,GAAG,EAAhB;AACA,gBAAMrS,GAAN;AACD,SARD,SAQU;AACR,cAAIqS,aAAa,CAAC52D,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,gBAAM07B,MAAM,GAAGy6B,2BAA2B,CAAC90D,GAA5B,CAAgCm0D,gBAAhC,CAAf;;AACA,gBAAI95B,MAAM,KAAKlsB,SAAf,EAA0B;AACxB,oBAAM,IAAI9O,KAAJ,CAAU,2BAAV,CAAN;AACD;;AACDu2C,YAAAA,kBAAkB,CAACvb,MAAD,CAAlB;AACD;AACF;AACF,OA9CsD;AA+CvDw7B,MAAAA,wBA/CuD,oCA+C9B9/C,EA/C8B,EA+C1B/F,IA/C0B,EA+CpB;AACjC,YAAMmkD,gBAAgB,GAAGnkD,IAAI,CAAC,CAAD,CAA7B;;AACA,YAAIqkD,cAAc,CAACF,gBAAD,CAAd,KAAqC38B,yBAAzC,EAAoE;AAClE;AACA,iBAAOzhB,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAP;AACD;;AAED,YAAMxO,EAAE,GAAG4zD,KAAK,CAACjB,gBAAD,CAAhB;AACAoB,QAAAA,aAAa,CAACh2D,IAAd,CAAmBiC,EAAnB;AAEA,YAAMs0D,YAAY,GAAGtB,WAAW,CAACL,gBAAD,CAAhC;;AACA,YAAI;AACF;AACA,cAAM3kD,MAAM,GAAGuG,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAf;AAEA,cAAMuwC,YAAY,GAAGiU,WAAW,CAACL,gBAAD,CAAhC;;AACA,cAAI,CAACmB,cAAc,CAACQ,YAAD,EAAevV,YAAf,CAAnB,EAAiD;AAC/C;AACAwV,YAAAA,aAAa,CAAC5B,gBAAD,EAAmB3yD,EAAnB,EAAuB++C,YAAvB,CAAb;AACD;;AAEDgV,UAAAA,aAAa,CAACh0D,GAAd;AACA,iBAAOiO,MAAP;AACD,SAZD,CAYE,OAAO0zC,GAAP,EAAY;AACZqS,UAAAA,aAAa,GAAG,EAAhB;AACA,gBAAMrS,GAAN;AACD,SAfD,SAeU;AACR,cAAIqS,aAAa,CAAC52D,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,gBAAM07B,MAAM,GAAGy6B,2BAA2B,CAAC90D,GAA5B,CAAgCm0D,gBAAhC,CAAf;;AACA,gBAAI95B,MAAM,KAAKlsB,SAAf,EAA0B;AACxB,oBAAM,IAAI9O,KAAJ,CAAU,2BAAV,CAAN;AACD;;AACDu2C,YAAAA,kBAAkB,CAACvb,MAAD,CAAlB;AACD;AACF;AACF,OAlFsD;AAmFvD27B,MAAAA,gBAnFuD,4BAmFtCjgD,EAnFsC,EAmFlC/F,IAnFkC,EAmF5B;AACzB,YAAMmkD,gBAAgB,GAAGnkD,IAAI,CAAC,CAAD,CAA7B;;AACA,YAAIqkD,cAAc,CAACF,gBAAD,CAAd,KAAqC38B,yBAAzC,EAAoE;AAClE;AACA,iBAAOzhB,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAP;AACD;;AAED,YAAMxO,EAAE,GAAG4zD,KAAK,CAACjB,gBAAD,CAAhB;AACAoB,QAAAA,aAAa,CAACh2D,IAAd,CAAmBiC,EAAnB;AAEA,YAAMs0D,YAAY,GAAGtB,WAAW,CAACL,gBAAD,CAAhC;;AACA,YAAI;AACF;AACA,cAAM3kD,MAAM,GAAGuG,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAf;AAEA,cAAMuwC,YAAY,GAAGiU,WAAW,CAACL,gBAAD,CAAhC;;AACA,cAAI,CAACmB,cAAc,CAACQ,YAAD,EAAevV,YAAf,CAAnB,EAAiD;AAC/C;AACAwV,YAAAA,aAAa,CAAC5B,gBAAD,EAAmB3yD,EAAnB,EAAuB++C,YAAvB,CAAb;AACD;;AAEDgV,UAAAA,aAAa,CAACh0D,GAAd;AACA,iBAAOiO,MAAP;AACD,SAZD,CAYE,OAAO0zC,GAAP,EAAY;AACZqS,UAAAA,aAAa,GAAG,EAAhB;AACA,gBAAMrS,GAAN;AACD,SAfD,SAeU;AACR,cAAIqS,aAAa,CAAC52D,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,gBAAM07B,MAAM,GAAGy6B,2BAA2B,CAAC90D,GAA5B,CAAgCm0D,gBAAhC,CAAf;;AACA,gBAAI95B,MAAM,KAAKlsB,SAAf,EAA0B;AACxB,oBAAM,IAAI9O,KAAJ,CAAU,2BAAV,CAAN;AACD;;AACDu2C,YAAAA,kBAAkB,CAACvb,MAAD,CAAlB;AACD;AACF;AACF,OAtHsD;AAuHvD47B,MAAAA,gBAvHuD,4BAuHtClgD,EAvHsC,EAuHlC/F,IAvHkC,EAuH5B;AACzB,YAAMmkD,gBAAgB,GAAGnkD,IAAI,CAAC,CAAD,CAA7B;;AACA,YAAIqkD,cAAc,CAACF,gBAAD,CAAd,KAAqC38B,yBAAzC,EAAoE;AAClE;AACA,iBAAOzhB,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAP;AACD;;AAED,YAAMxO,EAAE,GAAG4zD,KAAK,CAACjB,gBAAD,CAAhB;AACAoB,QAAAA,aAAa,CAACh2D,IAAd,CAAmBiC,EAAnB;;AACA,YAAI;AACF;AACA,cAAMgO,MAAM,GAAGuG,EAAE,CAACnM,KAAH,CAAS,IAAT,EAAeoG,IAAf,CAAf;AACAulD,UAAAA,aAAa,CAACh0D,GAAd,GAHE,CAKF;;AACAg9C,UAAAA,aAAa,CAAC4V,gBAAD,EAAmB3yD,EAAnB,CAAb;AAEA,iBAAOgO,MAAP;AACD,SATD,CASE,OAAO0zC,GAAP,EAAY;AACZqS,UAAAA,aAAa,GAAG,EAAhB;AACA,gBAAMrS,GAAN;AACD,SAZD,SAYU;AACR,cAAIqS,aAAa,CAAC52D,MAAd,KAAyB,CAA7B,EAAgC;AAC9B,gBAAM07B,MAAM,GAAGy6B,2BAA2B,CAAC90D,GAA5B,CAAgCm0D,gBAAhC,CAAf;;AACA,gBAAI95B,MAAM,KAAKlsB,SAAf,EAA0B;AACxB,oBAAM,IAAI9O,KAAJ,CAAU,2BAAV,CAAN;AACD;;AACDu2C,YAAAA,kBAAkB,CAACvb,MAAD,CAAlB;AACD;AACF;AACF;AArJsD,KAAtB,CAAnC;AAuJD;;AAED,WAASonB,OAAT,GAAmB;AACjB,QAAI+T,oBAAoB,KAAK,IAA7B,EAAmC;AACjC,UAAIhkC,QAAQ,CAACxnB,SAAb,EAAwB;AACtBiqD,QAAAA,WAAW,CAACziC,QAAQ,CAACxnB,SAAT,CAAmBksD,KAApB,EAA2BV,oBAA3B,CAAX;AACD,OAFD,MAEO;AACLvB,QAAAA,WAAW,CAACziC,QAAQ,CAACikC,UAAV,EAAsBD,oBAAtB,CAAX;AACD;AACF;;AACDA,IAAAA,oBAAoB,GAAG,IAAvB;AACD;;AAED,WAAS5X,WAAT,CACEuW,gBADF,EAEE3yD,EAFF,EAGEq5B,QAHF,EAIE;AACA,QAAMgjB,MAAM,GAAGhjB,QAAQ,KAAK,CAA5B;;AAEA,QAAI9V,SAAJ,EAAe;AACb5F,MAAAA,OAAO,CAAC+D,GAAR,CACE,iBADF,EAEE,kCAFF,EAGE1hB,EAHF,EAIE0yD,OAAO,CAACC,gBAAD,CAAP,CAA0B/iC,WAJ5B;AAMD;;AAED,QAAIysB,MAAJ,EAAY;AACV;AACA,UAAMC,gBAAgB,GACpBqW,gBAAgB,CAACC,eAAjB,IAAoC,IAApC,IACAD,gBAAgB,CAACC,eAAjB,CAAiC7sD,MAAjC,IAA2C,IAF7C;AAIAuwC,MAAAA,aAAa,CAAC7yB,kBAAD,CAAb;AACA6yB,MAAAA,aAAa,CAACt2C,EAAD,CAAb;AACAs2C,MAAAA,aAAa,CAACpgB,eAAD,CAAb;AACAogB,MAAAA,aAAa,CAAC,CAAD,CAAb,CATU,CASQ;;AAClBA,MAAAA,aAAa,CAAC,CAAD,CAAb,CAVU,CAUQ;;AAClBA,MAAAA,aAAa,CAAC,CAAD,CAAb,CAXU,CAWQ;;AAClBA,MAAAA,aAAa,CAACgG,gBAAgB,GAAG,CAAH,GAAO,CAAxB,CAAb;AACD,KAbD,MAaO;AACL,UAAMj7C,IAAI,GAAGwxD,cAAc,CAACF,gBAAD,CAA3B;;AADK,qBAEsBD,OAAO,CAACC,gBAAD,CAF7B;AAAA,UAEE/iC,WAFF,YAEEA,WAFF;AAAA,UAEenqB,GAFf,YAEeA,GAFf;;AAIL,UAAMk3C,OAAO,GACXgW,gBAAgB,CAACC,eAAjB,IAAoC,IAApC,IACAD,gBAAgB,CAACC,eAAjB,CAAiC7sD,MAAjC,IAA2C,IAD3C,GAEI6tD,KAAK,CAACjB,gBAAgB,CAACC,eAAjB,CAAiC7sD,MAAlC,CAFT,GAGI,CAJN;AAMA,UAAMuzB,mBAAmB,GAAG4iB,WAAW,CAACtsB,WAAD,CAAvC;AACA,UAAMitB,WAAW,GAAGX,WAAW,CAACz2C,GAAD,CAA/B;AACA6wC,MAAAA,aAAa,CAAC7yB,kBAAD,CAAb;AACA6yB,MAAAA,aAAa,CAACt2C,EAAD,CAAb;AACAs2C,MAAAA,aAAa,CAACj1C,IAAD,CAAb;AACAi1C,MAAAA,aAAa,CAACjd,QAAD,CAAb;AACAid,MAAAA,aAAa,CAACqG,OAAD,CAAb;AACArG,MAAAA,aAAa,CAAChd,mBAAD,CAAb;AACAgd,MAAAA,aAAa,CAACuG,WAAD,CAAb;AACD;AACF;;AAED,WAAS0X,aAAT,CACE5B,gBADF,EAEE3yD,EAFF,EAGE++C,YAHF,EAIE;AACAzI,IAAAA,aAAa,CAAC3yB,+BAAD,CAAb;AACA2yB,IAAAA,aAAa,CAACt2C,EAAD,CAAb;AACA,QAAM20D,YAAY,GAAG5V,YAAY,CAACt+C,GAAb,CAAiBmzD,KAAjB,CAArB;AACAtd,IAAAA,aAAa,CAACqe,YAAY,CAACx3D,MAAd,CAAb;;AACA,SAAK,IAAI8Q,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0mD,YAAY,CAACx3D,MAAjC,EAAyC8Q,CAAC,EAA1C,EAA8C;AAC5CqoC,MAAAA,aAAa,CAACqe,YAAY,CAAC1mD,CAAD,CAAb,CAAb;AACD;AACF;;AAED,WAAS8uC,aAAT,CAAuB4V,gBAAvB,EAA2D3yD,EAA3D,EAAuE;AACrE40D,IAAAA,mBAAmB,CAAC72D,IAApB,CAAyBiC,EAAzB;AACAozD,IAAAA,uBAAuB,CAAC98C,MAAxB,CAA+BtW,EAA/B;AACD;;AAED,WAAS60D,2BAAT,CACE70D,EADF,EAEEq5B,QAFF,EAGER,MAHF,EAIE;AACA,QAAItV,SAAJ,EAAe;AACb5F,MAAAA,OAAO,CAAC+oB,KAAR,CAAc,mCAAd,EAAmD1mC,EAAnD;AACD;;AAED,QAAM2yD,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5BW,MAAAA,2BAA2B,CAACj2D,GAA5B,CAAgCs1D,gBAAhC,EAAkD95B,MAAlD;AACAujB,MAAAA,WAAW,CAACuW,gBAAD,EAAmB3yD,EAAnB,EAAuBq5B,QAAvB,CAAX;AACA25B,MAAAA,WAAW,CAACL,gBAAD,CAAX,CAA8B3xD,OAA9B,CAAsC,UAAAi4C,KAAK;AAAA,eACzC4b,2BAA2B,CAACjB,KAAK,CAAC3a,KAAD,CAAN,EAAej5C,EAAf,EAAmB64B,MAAnB,CADc;AAAA,OAA3C;AAGD;;AAED,QAAItV,SAAJ,EAAe;AACb5F,MAAAA,OAAO,CAACipB,QAAR;AACD;AACF;;AAED,WAASwZ,sBAAT,GAAkC;AAChC;AAEA,QAAM8Q,KAAK,GACTlhC,QAAQ,CAACqgC,KAAT,CAAeyE,uBAAf,IACA9kC,QAAQ,CAACqgC,KAAT,CAAe0E,uBAFjB;;AAIA,SAAK,IAAMtvD,GAAX,IAAkByrD,KAAlB,EAAyB;AACvB,UAAMyB,gBAAgB,GAAGzB,KAAK,CAACzrD,GAAD,CAA9B;;AACA,UAAMzF,IAAE,GAAG4zD,KAAK,CAACjB,gBAAD,CAAhB;;AACAkC,MAAAA,2BAA2B,CAAC70D,IAAD,EAAK,CAAL,EAAQA,IAAR,CAA3B;AACAo0C,MAAAA,kBAAkB,CAACp0C,IAAD,CAAlB;AACD;AACF;;AAED,MAAMs6C,iBAAgC,GAAG,EAAzC;AACA,MAAMI,kBAAuC,GAAG,IAAI1+C,GAAJ,EAAhD;AACA,MAAI44D,mBAAkC,GAAG,EAAzC;AACA,MAAIja,wBAAgC,GAAG,CAAvC;AACA,MAAIC,sBAAqC,GAAG,IAA5C;;AAEA,WAASxG,kBAAT,CAA4Bvb,MAA5B,EAA4C;AAC1C,QACEyhB,iBAAiB,CAACn9C,MAAlB,KAA6B,CAA7B,IACAy3D,mBAAmB,CAACz3D,MAApB,KAA+B,CAD/B,IAEAy9C,sBAAsB,KAAK,IAH7B,EAIE;AACA;AACD;;AAED,QAAMmB,aAAa,GACjB6Y,mBAAmB,CAACz3D,MAApB,IAA8By9C,sBAAsB,KAAK,IAA3B,GAAkC,CAAlC,GAAsC,CAApE,CADF;AAGA,QAAMhiB,UAAU,GAAG,IAAItzB,KAAJ,EACjB;AACA,QAAI;AACF;AACA,KAFF,GAEM;AACJ;AACAq1C,IAAAA,wBAJF,KAKE;AACA;AACCoB,IAAAA,aAAa,GAAG,CAAhB,GAAoB,IAAIA,aAAxB,GAAwC,CAP3C,IAQE;AACAzB,IAAAA,iBAAiB,CAACn9C,MAXH,CAAnB,CAZ0C,CA0B1C;AACA;AACA;;AACA,QAAI8Q,CAAC,GAAG,CAAR;AACA2qB,IAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB6hB,UAAlB;AACA8I,IAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB4qB,MAAlB,CA/B0C,CAiC1C;AACA;;AACAD,IAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB0sC,wBAAlB;AACAD,IAAAA,kBAAkB,CAAC15C,OAAnB,CAA2B,UAAChD,KAAD,EAAQyH,GAAR,EAAgB;AACzCmzB,MAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkBxI,GAAG,CAACtI,MAAtB;AACA,UAAM63D,UAAU,GAAG18B,eAAe,CAAC7yB,GAAD,CAAlC;;AACA,WAAK,IAAIsW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi5C,UAAU,CAAC73D,MAA/B,EAAuC4e,CAAC,EAAxC,EAA4C;AAC1C6c,QAAAA,UAAU,CAAC3qB,CAAC,GAAG8N,CAAL,CAAV,GAAoBi5C,UAAU,CAACj5C,CAAD,CAA9B;AACD;;AACD9N,MAAAA,CAAC,IAAIxI,GAAG,CAACtI,MAAT;AACD,KAPD;;AASA,QAAI4+C,aAAa,GAAG,CAApB,EAAuB;AACrB;AACAnjB,MAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkByV,qBAAlB,CAFqB,CAGrB;;AACAkV,MAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB8tC,aAAlB,CAJqB,CAKrB;;AACA,WAAK,IAAIhgC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG64C,mBAAmB,CAACz3D,MAAxC,EAAgD4e,CAAC,EAAjD,EAAqD;AACnD6c,QAAAA,UAAU,CAAC3qB,CAAC,EAAF,CAAV,GAAkB2mD,mBAAmB,CAAC74C,CAAD,CAArC;AACD,OARoB,CASrB;;;AACA,UAAI6+B,sBAAsB,KAAK,IAA/B,EAAqC;AACnChiB,QAAAA,UAAU,CAAC3qB,CAAD,CAAV,GAAgB2sC,sBAAhB;AACA3sC,QAAAA,CAAC;AACF;AACF,KA3DyC,CA6D1C;;;AACA,SAAK,IAAI8N,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGu+B,iBAAiB,CAACn9C,MAAtC,EAA8C4e,EAAC,EAA/C,EAAmD;AACjD6c,MAAAA,UAAU,CAAC3qB,CAAC,GAAG8N,EAAL,CAAV,GAAoBu+B,iBAAiB,CAACv+B,EAAD,CAArC;AACD;;AACD9N,IAAAA,CAAC,IAAIqsC,iBAAiB,CAACn9C,MAAvB;;AAEA,QAAIomB,SAAJ,EAAe;AACboV,MAAAA,oBAAoB,CAACC,UAAD,CAApB;AACD,KArEyC,CAuE1C;;;AACAia,IAAAA,IAAI,CAACt6B,IAAL,CAAU,YAAV,EAAwBqgB,UAAxB;AAEA0hB,IAAAA,iBAAiB,CAACn9C,MAAlB,GAA2B,CAA3B;AACAy3D,IAAAA,mBAAmB,GAAG,EAAtB;AACAha,IAAAA,sBAAsB,GAAG,IAAzB;AACAF,IAAAA,kBAAkB,CAACthC,KAAnB;AACAuhC,IAAAA,wBAAwB,GAAG,CAA3B;AACD;;AAED,WAASrE,aAAT,CAAuBuE,EAAvB,EAAyC;AACvC,QAAI1T,KAAJ,EAAa,EAOZ;;AACDmT,IAAAA,iBAAiB,CAACv8C,IAAlB,CAAuB88C,EAAvB;AACD;;AAED,WAASqB,WAAT,CAAqB5mC,GAArB,EAAiD;AAC/C,QAAIA,GAAG,KAAK,IAAZ,EAAkB;AAChB,aAAO,CAAP;AACD;;AACD,QAAM2/C,UAAU,GAAGva,kBAAkB,CAACl8C,GAAnB,CAAuB8W,GAAvB,CAAnB;;AACA,QAAI2/C,UAAU,KAAKtoD,SAAnB,EAA8B;AAC5B,aAAOsoD,UAAP;AACD;;AACD,QAAMC,QAAQ,GAAGxa,kBAAkB,CAAChhC,IAAnB,GAA0B,CAA3C;AACAghC,IAAAA,kBAAkB,CAACr9C,GAAnB,CAAuBiY,GAAvB,EAA4B4/C,QAA5B,EAT+C,CAU/C;AACA;AACA;;AACAva,IAAAA,wBAAwB,IAAIrlC,GAAG,CAACnY,MAAJ,GAAa,CAAzC;AACA,WAAO+3D,QAAP;AACD;;AAED,MAAIC,2BAA0C,GAAG,IAAjD;AACA,MAAI7P,uBAA+B,GAAG,EAAtC,CA/cmB,CAidnB;AACA;;AACA,WAASE,mBAAT,CAA6BtqB,IAA7B,EAA2D;AACzD,QAAIh9B,OAAO,GAAGonD,uBAAd;AACApqB,IAAAA,IAAI,CAACl6B,OAAL,CAAa,UAAAyE,GAAG,EAAI;AAClB,UAAI,CAACvH,OAAO,CAACuH,GAAD,CAAZ,EAAmB;AACjBvH,QAAAA,OAAO,CAACuH,GAAD,CAAP,GAAe,EAAf;AACD;;AACDvH,MAAAA,OAAO,GAAGA,OAAO,CAACuH,GAAD,CAAjB;AACD,KALD;AAMD;;AAED,WAASggD,mBAAT,CAA6BhgD,GAA7B,EAA0C;AACxC;AACA;AACA,WAAO,SAASo4B,aAAT,CAAuB3C,IAAvB,EAA8D;AACnE,UAAIh9B,OAAO,GAAGonD,uBAAuB,CAAC7/C,GAAD,CAArC;;AACA,UAAI,CAACvH,OAAL,EAAc;AACZ,eAAO,KAAP;AACD;;AACD,WAAK,IAAI+P,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGitB,IAAI,CAAC/9B,MAAzB,EAAiC8Q,CAAC,EAAlC,EAAsC;AACpC/P,QAAAA,OAAO,GAAGA,OAAO,CAACg9B,IAAI,CAACjtB,CAAD,CAAL,CAAjB;;AACA,YAAI,CAAC/P,OAAL,EAAc;AACZ,iBAAO,KAAP;AACD;AACF;;AACD,aAAO,IAAP;AACD,KAZD;AAaD,GA7ekB,CA+enB;;;AACA,WAAS8kD,mBAAT,CAA6BhjD,EAA7B,EAA2D;AACzD,QAAI44C,QAAQ,GAAG,IAAf;AACA,QAAI35B,KAAK,GAAG,IAAZ;AAEA,QAAM0zC,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B/Z,MAAAA,QAAQ,GAAG+Z,gBAAgB,CAACyC,SAAjB,IAA8B,IAAzC;AAEA,UAAM1oC,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;;AACA,UAAIlmC,OAAO,IAAI,IAAX,IAAmBA,OAAO,CAAC9nB,KAAR,IAAiB,IAAxC,EAA8C;AAC5Cqa,QAAAA,KAAK,GAAGyN,OAAO,CAAC9nB,KAAR,CAAcqa,KAAd,IAAuB,IAA/B;AACD;AACF;;AAED,WAAO;AACL25B,MAAAA,QAAQ,EAARA,QADK;AAEL35B,MAAAA,KAAK,EAALA;AAFK,KAAP;AAID;;AAED,WAAS0mC,qBAAT,CAA+B3lD,EAA/B,EAAiD;AAC/C,QAAM2yD,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5Bh1C,MAAAA,OAAO,CAACuS,IAAR,6CAAiDlwB,EAAjD;AACA;AACD;;AAED,YAAQ6yD,cAAc,CAACF,gBAAD,CAAtB;AACE,WAAKj9B,sBAAL;AACEvmB,QAAAA,MAAM,CAAC02C,EAAP,GAAY8M,gBAAgB,CAACyC,SAA7B;AACA;;AACF,WAAKx/B,yBAAL;AACE,YAAMlJ,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;;AACA,YAAIlmC,OAAO,IAAI,IAAf,EAAqB;AACnB/O,UAAAA,OAAO,CAACuS,IAAR,4CAAgDlwB,EAAhD;AACA;AACD;;AAEDmP,QAAAA,MAAM,CAAC02C,EAAP,GAAY;AACVjhD,UAAAA,KAAK,EAAE8nB,OAAO,CAAC9nB,KADL;AAEVvD,UAAAA,IAAI,EAAEqrB,OAAO,CAACrrB;AAFJ,SAAZ;AAIA;;AACF;AACE8N,QAAAA,MAAM,CAAC02C,EAAP,GAAY,IAAZ;AACA;AAlBJ;AAoBD;;AAED,WAASC,aAAT,CACE9lD,EADF,EAEEk7B,IAFF,EAGE7yB,KAHF,EAIQ;AACN,QAAMu9C,gBAAgB,GAAGvC,iBAAiB,CAACrjD,EAAD,CAA1C;;AACA,QAAI4lD,gBAAgB,KAAK,IAAzB,EAA+B;AAC7B,UAAM5nD,KAAK,GAAGg9B,iBAAW,CAAC4qB,gBAAD,EAAmB1qB,IAAnB,CAAzB;AACA,UAAMz1B,GAAG,uBAAgB4C,KAAhB,CAAT;AAEAkgB,MAAAA,MAAM,CAAC9iB,GAAD,CAAN,GAAczH,KAAd;AAEA2f,MAAAA,OAAO,CAAC+D,GAAR,CAAYjc,GAAZ;AACAkY,MAAAA,OAAO,CAAC+D,GAAR,CAAY1jB,KAAZ;AACD;AACF;;AAED,WAAS+nD,+BAAT,CACE/lD,EADF,EAEEk7B,IAFF,EAGW;AACT,QAAM0qB,gBAAgB,GAAGvC,iBAAiB,CAACrjD,EAAD,CAA1C;;AACA,QAAI4lD,gBAAgB,KAAK,IAAzB,EAA+B;AAC7B,UAAMI,WAAW,GAAGhrB,iBAAW,CAAC4qB,gBAAD,EAAmB1qB,IAAnB,CAA/B;AAEA,aAAO8E,iBAAiB,CAACgmB,WAAD,CAAxB;AACD;AACF;;AAED,WAASC,cAAT,CACEC,SADF,EAEElmD,EAFF,EAGEk7B,IAHF,EAIEirB,aAJF,EAK2B;AACzB,QAAIA,aAAa,IAAIgP,2BAA2B,KAAKn1D,EAArD,EAAyD;AACvDm1D,MAAAA,2BAA2B,GAAGn1D,EAA9B;AACAslD,MAAAA,uBAAuB,GAAG,EAA1B;AACD;;AAED,QAAMM,gBAAgB,GAAGvC,iBAAiB,CAACrjD,EAAD,CAA1C;;AACA,QAAI4lD,gBAAgB,KAAK,IAAzB,EAA+B;AAC7B,aAAO;AACL5lD,QAAAA,EAAE,EAAFA,EADK;AAELomD,QAAAA,UAAU,EAAEF,SAFP;AAGL7kD,QAAAA,IAAI,EAAE;AAHD,OAAP;AAKD;;AAED,QAAI65B,IAAI,KAAK,IAAb,EAAmB;AACjBsqB,MAAAA,mBAAmB,CAACtqB,IAAD,CAAnB;AACD,KAjBwB,CAmBzB;AACA;AACA;;;AACAyqB,IAAAA,qBAAqB,CAAC3lD,EAAD,CAArB;AAEA4lD,IAAAA,gBAAgB,CAAC/gD,OAAjB,GAA2Bo6B,cAAc,CACvC2mB,gBAAgB,CAAC/gD,OADsB,EAEvC4gD,mBAAmB,CAAC,SAAD,CAFoB,CAAzC;AAIAG,IAAAA,gBAAgB,CAAChhD,KAAjB,GAAyBq6B,cAAc,CACrC2mB,gBAAgB,CAAChhD,KADoB,EAErC6gD,mBAAmB,CAAC,OAAD,CAFkB,CAAvC;AAIAG,IAAAA,gBAAgB,CAAC7N,KAAjB,GAAyB9Y,cAAc,CACrC2mB,gBAAgB,CAAC7N,KADoB,EAErC0N,mBAAmB,CAAC,OAAD,CAFkB,CAAvC;AAKA,WAAO;AACLzlD,MAAAA,EAAE,EAAFA,EADK;AAELomD,MAAAA,UAAU,EAAEF,SAFP;AAGL7kD,MAAAA,IAAI,EAAE,WAHD;AAILrD,MAAAA,KAAK,EAAE4nD;AAJF,KAAP;AAMD;;AAED,WAASvC,iBAAT,CAA2BrjD,EAA3B,EAAgE;AAC9D,QAAM2yD,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AAEA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B,aAAO,IAAP;AACD;;AAL6D,oBAOnCD,OAAO,CAACC,gBAAD,CAP4B;AAAA,QAOvD/iC,WAPuD,aAOvDA,WAPuD;AAAA,QAO1CnqB,GAP0C,aAO1CA,GAP0C;;AAQ9D,QAAMpE,IAAI,GAAGwxD,cAAc,CAACF,gBAAD,CAA3B;AAEA,QAAI9tD,OAAO,GAAG,IAAd;AACA,QAAIk+C,MAAM,GAAG,IAAb;AACA,QAAIn+C,KAAK,GAAG,IAAZ;AACA,QAAImzC,KAAK,GAAG,IAAZ;AACA,QAAIh5C,MAAM,GAAG,IAAb;AAEA,QAAM2tB,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;;AACA,QAAIlmC,OAAO,KAAK,IAAhB,EAAsB;AACpB9nB,MAAAA,KAAK,GAAG8nB,OAAO,CAAC9nB,KAAhB;AACA7F,MAAAA,MAAM,GAAG2tB,OAAO,CAAC2oC,OAAR,IAAmB,IAAnB,GAA0B3oC,OAAO,CAAC2oC,OAAlC,GAA4C,IAArD;AAEA,UAAIjsB,KAAK,GAAG1c,OAAO,CAAC3mB,MAApB;;AACA,UAAIqjC,KAAJ,EAAW;AACT2Z,QAAAA,MAAM,GAAI,EAAV;;AACA,eAAO3Z,KAAK,IAAI,IAAhB,EAAsB;AACpB2Z,UAAAA,MAAM,CAAChlD,IAAP,CAAY;AACV6xB,YAAAA,WAAW,EAAE8iC,OAAO,CAACtpB,KAAD,CAAP,CAAexZ,WAAf,IAA8B,SADjC;AAEV5vB,YAAAA,EAAE,EAAE4zD,KAAK,CAACxqB,KAAD,CAFC;AAGV3jC,YAAAA,GAAG,EAAEinB,OAAO,CAACjnB,GAHH;AAIVpE,YAAAA,IAAI,EAAEwxD,cAAc,CAACzpB,KAAD;AAJV,WAAZ;;AAMA,cAAIA,KAAK,CAACwpB,eAAV,EAA2B;AACzBxpB,YAAAA,KAAK,GAAGA,KAAK,CAACwpB,eAAN,CAAsB7sD,MAA9B;AACD;AACF;AACF;AACF;;AAED,QAAM+sD,cAAc,GAAGH,gBAAgB,CAACyC,SAAxC;;AACA,QAAItC,cAAc,IAAI,IAAtB,EAA4B;AAC1BjuD,MAAAA,OAAO,GAAGiuD,cAAc,CAACjuD,OAAf,IAA0B,IAApC;AACAkzC,MAAAA,KAAK,GAAG+a,cAAc,CAAC/a,KAAf,IAAwB,IAAhC;AACD,KA1C6D,CA4C9D;;;AACA,QAAMoM,MAA+B,GAAG,EAAxC;AACA,QAAMC,QAAiC,GAAG,EAA1C;AAEA,WAAO;AACLpkD,MAAAA,EAAE,EAAFA,EADK;AAGL;AACA2kD,MAAAA,YAAY,EAAE,KAJT;AAKLC,MAAAA,oBAAoB,EAAE,KALjB;AAOL;AACAC,MAAAA,0BAA0B,EAAE,KARvB;AASLC,MAAAA,0BAA0B,EAAE,KATvB;AAULC,MAAAA,+BAA+B,EAAE,KAV5B;AAWLC,MAAAA,+BAA+B,EAAE,KAX5B;AAaL;AACAC,MAAAA,cAAc,EAAE,KAdX;AAeLZ,MAAAA,SAAS,EAAE,KAfN;AAgBLC,MAAAA,qBAAqB,EAAE,IAhBlB;AAkBL;AACAY,MAAAA,iBAAiB,EAAE,KAnBd;AAqBL;AACA1B,MAAAA,aAAa,EAAEniD,IAAI,KAAKq0B,sBAAT,IAA6Br0B,IAAI,KAAKu0B,yBAtBhD;AAwBL;AACAmuB,MAAAA,gBAAgB,EAAE,IAzBb;AA2BLn0B,MAAAA,WAAW,EAAEA,WA3BR;AA6BLvuB,MAAAA,IAAI,EAAEA,IA7BD;AA+BLoE,MAAAA,GAAG,EAAEA,GAAG,IAAI,IAAP,GAAcA,GAAd,GAAoB,IA/BpB;AAiCL;AACAZ,MAAAA,OAAO,EAAPA,OAlCK;AAmCLuzC,MAAAA,KAAK,EAAE,IAnCF;AAoCLxzC,MAAAA,KAAK,EAALA,KApCK;AAqCLmzC,MAAAA,KAAK,EAALA,KArCK;AAsCLoM,MAAAA,MAAM,EAANA,MAtCK;AAuCLC,MAAAA,QAAQ,EAARA,QAvCK;AAyCL;AACArB,MAAAA,MAAM,EAANA,MA1CK;AA4CL;AACAhkD,MAAAA,MAAM,EAANA,MA7CK;AA+CLmlD,MAAAA,QAAQ,EAAE,IA/CL;AAgDLkB,MAAAA,mBAAmB,EAAE,IAhDhB;AAiDLC,MAAAA,eAAe,EAAE,IAjDZ;AAmDLb,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE;AADD;AAnDJ,KAAP;AAuDD;;AAED,WAAS8B,mBAAT,CAA6BvmD,EAA7B,EAA+C;AAC7C,QAAMgO,MAAM,GAAGq1C,iBAAiB,CAACrjD,EAAD,CAAhC;;AACA,QAAIgO,MAAM,KAAK,IAAf,EAAqB;AACnB2P,MAAAA,OAAO,CAACuS,IAAR,4CAAgDlwB,EAAhD;AACA;AACD;;AAED,QAAMwmD,aAAa,GAAG,OAAO7oC,OAAO,CAACgpB,cAAf,KAAkC,UAAxD;;AACA,QAAI6f,aAAJ,EAAmB;AACjB7oC,MAAAA,OAAO,CAACgpB,cAAR,gCAC0B34B,MAAM,CAAC4hB,WAAP,IAAsB,WADhD,UAEE;AACA,8DAHF;AAKD;;AACD,QAAI5hB,MAAM,CAACpJ,KAAP,KAAiB,IAArB,EAA2B;AACzB+Y,MAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB1T,MAAM,CAACpJ,KAA7B;AACD;;AACD,QAAIoJ,MAAM,CAAC+pC,KAAP,KAAiB,IAArB,EAA2B;AACzBp6B,MAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB1T,MAAM,CAAC+pC,KAA7B;AACD;;AACD,QAAI/pC,MAAM,CAACnJ,OAAP,KAAmB,IAAvB,EAA6B;AAC3B8Y,MAAAA,OAAO,CAAC+D,GAAR,CAAY,UAAZ,EAAwB1T,MAAM,CAACnJ,OAA/B;AACD;;AACD,QAAMywD,UAAU,GAAG9B,2BAA2B,CAACxzD,EAAD,CAA9C;;AACA,QAAIs1D,UAAU,KAAK,IAAnB,EAAyB;AACvB33C,MAAAA,OAAO,CAAC+D,GAAR,CAAY,OAAZ,EAAqB4zC,UAArB;AACD;;AACD,QAAI/sC,MAAM,CAACm+B,MAAP,IAAiB,WAAWp0C,IAAX,CAAgBq0C,SAAS,CAACC,SAA1B,CAArB,EAA2D;AACzDjpC,MAAAA,OAAO,CAAC+D,GAAR,CACE,+EADF;AAGD;;AACD,QAAI8kC,aAAJ,EAAmB;AACjB7oC,MAAAA,OAAO,CAACipB,QAAR;AACD;AACF;;AAED,WAAS6b,0BAAT,CACEziD,EADF,EAEEk7B,IAFF,EAGQ;AACN,QAAM0qB,gBAAgB,GAAGvC,iBAAiB,CAACrjD,EAAD,CAA1C;;AACA,QAAI4lD,gBAAgB,KAAK,IAAzB,EAA+B;AAC7Br9B,MAAAA,MAAM,CAACo6B,UAAP,GAAoB3nB,iBAAW,CAAC4qB,gBAAD,EAAmB1qB,IAAnB,CAA/B;AACD;AACF;;AAED,WAAS0nB,wBAAT,CAAkC5iD,EAAlC,EAAoD;AAClD,QAAM2yD,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5Bh1C,MAAAA,OAAO,CAACuS,IAAR,6CAAiDlwB,EAAjD;AACA;AACD;;AAED,QAAM0sB,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;;AACA,QAAIlmC,OAAO,IAAI,IAAf,EAAqB;AACnB/O,MAAAA,OAAO,CAACuS,IAAR,4CAAgDlwB,EAAhD;AACA;AACD;;AAEDmP,IAAAA,MAAM,CAAC0zC,KAAP,GAAen2B,OAAO,CAACrrB,IAAvB;AACD;;AAED,WAASwlD,UAAT,CACExlD,IADF,EAEErB,EAFF,EAGE8mD,MAHF,EAIE5rB,IAJF,EAKQ;AACN,QAAMy3B,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B,UAAMG,cAAc,GAAGH,gBAAgB,CAACyC,SAAxC;;AACA,UAAItC,cAAc,IAAI,IAAtB,EAA4B;AAC1B,gBAAQzxD,IAAR;AACE,eAAK,SAAL;AACEg6B,YAAAA,kBAAkB,CAACy3B,cAAc,CAACjuD,OAAhB,EAAyBq2B,IAAzB,CAAlB;AACA/1B,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;;AACF,eAAK,OAAL;AACE,kBAAM,IAAIj1D,KAAJ,CAAU,sCAAV,CAAN;;AACF,eAAK,OAAL;AACE,gBAAM6uB,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;AACAD,YAAAA,gBAAgB,CAACC,eAAjB,iEACKlmC,OADL;AAEE9nB,cAAAA,KAAK,EAAEy6B,cAAc,CAAC3S,OAAO,CAAC9nB,KAAT,EAAgBs2B,IAAhB;AAFvB;AAIA/1B,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;;AACF,eAAK,OAAL;AACEz3B,YAAAA,kBAAkB,CAACy3B,cAAc,CAAC/a,KAAhB,EAAuB7c,IAAvB,CAAlB;AACA/1B,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;AAlBJ;AAoBD;AACF;AACF;;AAED,WAAS9L,UAAT,CACE3lD,IADF,EAEErB,EAFF,EAGE8mD,MAHF,EAIErrB,OAJF,EAKEC,OALF,EAMQ;AACN,QAAMi3B,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B,UAAMG,cAAc,GAAGH,gBAAgB,CAACyC,SAAxC;;AACA,UAAItC,cAAc,IAAI,IAAtB,EAA4B;AAC1B,gBAAQzxD,IAAR;AACE,eAAK,SAAL;AACEm6B,YAAAA,kBAAkB,CAACs3B,cAAc,CAACjuD,OAAhB,EAAyB42B,OAAzB,EAAkCC,OAAlC,CAAlB;AACAv2B,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;;AACF,eAAK,OAAL;AACE,kBAAM,IAAIj1D,KAAJ,CAAU,sCAAV,CAAN;;AACF,eAAK,OAAL;AACE,gBAAM6uB,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;AACAD,YAAAA,gBAAgB,CAACC,eAAjB,iEACKlmC,OADL;AAEE9nB,cAAAA,KAAK,EAAE26B,cAAc,CAAC7S,OAAO,CAAC9nB,KAAT,EAAgB62B,OAAhB,EAAyBC,OAAzB;AAFvB;AAIAv2B,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;;AACF,eAAK,OAAL;AACEt3B,YAAAA,kBAAkB,CAACs3B,cAAc,CAAC/a,KAAhB,EAAuBtc,OAAvB,EAAgCC,OAAhC,CAAlB;AACAv2B,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;AAlBJ;AAoBD;AACF;AACF;;AAED,WAAS7L,mBAAT,CACE5lD,IADF,EAEErB,EAFF,EAGE8mD,MAHF,EAIE5rB,IAJF,EAKEl9B,KALF,EAMQ;AACN,QAAM20D,gBAAgB,GAAGS,uBAAuB,CAAC50D,GAAxB,CAA4BwB,EAA5B,CAAzB;;AACA,QAAI2yD,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B,UAAMG,cAAc,GAAGH,gBAAgB,CAACyC,SAAxC;;AACA,UAAItC,cAAc,IAAI,IAAtB,EAA4B;AAC1B,gBAAQzxD,IAAR;AACE,eAAK,SAAL;AACEw6B,YAAAA,iBAAW,CAACi3B,cAAc,CAACjuD,OAAhB,EAAyBq2B,IAAzB,EAA+Bl9B,KAA/B,CAAX;AACAmH,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;;AACF,eAAK,OAAL;AACE,kBAAM,IAAIj1D,KAAJ,CAAU,sCAAV,CAAN;;AACF,eAAK,OAAL;AACE,gBAAM6uB,OAAO,GAAGimC,gBAAgB,CAACC,eAAjC;AACAD,YAAAA,gBAAgB,CAACC,eAAjB,iEACKlmC,OADL;AAEE9nB,cAAAA,KAAK,EAAE86B,WAAW,CAAChT,OAAO,CAAC9nB,KAAT,EAAgBs2B,IAAhB,EAAsBl9B,KAAtB;AAFpB;AAIAmH,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;;AACF,eAAK,OAAL;AACEj3B,YAAAA,iBAAW,CAACi3B,cAAc,CAAC/a,KAAhB,EAAuB7c,IAAvB,EAA6Bl9B,KAA7B,CAAX;AACAmH,YAAAA,WAAW,CAAC2tD,cAAD,CAAX;AACA;AAlBJ;AAoBD;AACF;AACF,GA/3BkB,CAi4BnB;;;AACA,MAAM1L,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,UAAM,IAAIvpD,KAAJ,CAAU,iDAAV,CAAN;AACD,GAFD;;AAGA,MAAMojD,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AAClC,UAAM,IAAIpjD,KAAJ,CAAU,sDAAV,CAAN;AACD,GAFD;;AAGA,MAAMkjD,wBAAwB,GAAG,SAA3BA,wBAA2B,GAAM;AACrC,UAAM,IAAIljD,KAAJ,CAAU,yDAAV,CAAN;AACD,GAFD;;AAGA,MAAMmjD,yBAAyB,GAAG,SAA5BA,yBAA4B,GAAM;AACtC,UAAM,IAAInjD,KAAJ,CAAU,0DAAV,CAAN;AACD,GAFD;;AAGA,MAAMyqD,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B,UAAM,IAAIzqD,KAAJ,CAAU,8CAAV,CAAN;AACD,GAFD;;AAGA,MAAM6qD,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,UAAM,IAAI7qD,KAAJ,CAAU,iDAAV,CAAN;AACD,GAFD;;AAGA,MAAMoqD,cAAc,GAAG,SAAjBA,cAAiB,GAAM,CAC3B;AACD,GAFD;;AAGA,MAAME,aAAa,GAAG,SAAhBA,aAAgB,GAAM,CAC1B;AACD,GAFD;;AAIA,WAASsB,0BAAT,GAAwD;AACtD;AACA,WAAO,IAAP;AACD;;AAED,WAASF,iBAAT,CAA2BvpD,EAA3B,EAAgE;AAC9D;AACA,WAAO,IAAP;AACD;;AAED,WAASk2C,sBAAT,CAAgCjc,gBAAhC,EAA0E,CACxE;AACD;;AAED,WAAS0vB,sBAAT,CAAgC4L,OAAhC,EAAkD,CAChD;AACD;;AAED,WAASrY,cAAT,CAAwBhiB,IAAxB,EAAuD,CACrD;AACD;;AAED,WAAS4nB,aAAT,CAAuB9iD,EAAvB,EAAoE;AAClE;AACA,WAAO,IAAP;AACD;;AAED,WAASk0C,sBAAT,GAAkC,CAChC;AACD;;AAED,WAASO,qBAAT,CAA+Bz0C,EAA/B,EAA2C,CACzC;AACD;;AAED,WAAS00C,uBAAT,CAAiC10C,EAAjC,EAA6C,CAC3C;AACD;;AAED,WAASiwC,yBAAT,GAAqC,CAAE;;AAEvC,WAASE,2BAAT,GAAuC,CAAE;;AAEzC,WAAShgB,cAAT,CAAwBnwB,EAAxB,EAA6C;AAC3C,WAAOozD,uBAAuB,CAAC1xD,GAAxB,CAA4B1B,EAA5B,CAAP;AACD;;AAED,SAAO;AACLk0C,IAAAA,sBAAsB,EAAtBA,sBADK;AAELO,IAAAA,qBAAqB,EAArBA,qBAFK;AAGLC,IAAAA,uBAAuB,EAAvBA,uBAHK;AAILuL,IAAAA,OAAO,EAAPA,OAJK;AAKL8F,IAAAA,+BAA+B,EAA/BA,+BALK;AAMLc,IAAAA,UAAU,EAAVA,UANK;AAOLzG,IAAAA,sBAAsB,EAAtBA,sBAPK;AAQLqJ,IAAAA,0BAA0B,EAA1BA,0BARK;AASLv8B,IAAAA,wBAAwB,EAAxBA,wBATK;AAULy0B,IAAAA,iBAAiB,EAAjBA,iBAVK;AAWL30B,IAAAA,mBAAmB,EAAEumC,sBAXhB;AAYLvQ,IAAAA,mBAAmB,EAAnBA,mBAZK;AAaL5yB,IAAAA,yBAAyB,EAAE,mCAACpwB,EAAD,EAAgB;AACzC,UAAMs1D,UAAU,GAAG9B,2BAA2B,CAACxzD,EAAD,CAA9C;AACA,aAAOs1D,UAAU,IAAI,IAAd,GAAqB,IAArB,GAA4B,CAACA,UAAD,CAAnC;AACD,KAhBI;AAiBLxS,IAAAA,aAAa,EAAbA,aAjBK;AAkBLyG,IAAAA,iBAAiB,EAAjBA,iBAlBK;AAmBLnC,IAAAA,gBAAgB,EAAhBA,gBAnBK;AAoBLnG,IAAAA,qBAAqB,EAArBA,qBApBK;AAqBLF,IAAAA,wBAAwB,EAAxBA,wBArBK;AAsBLC,IAAAA,yBAAyB,EAAzBA,yBAtBK;AAuBL7wB,IAAAA,cAAc,EAAdA,cAvBK;AAwBL81B,IAAAA,cAAc,EAAdA,cAxBK;AAyBLM,IAAAA,mBAAmB,EAAnBA,mBAzBK;AA0BL+B,IAAAA,aAAa,EAAbA,aA1BK;AA2BLI,IAAAA,gBAAgB,EAAhBA,gBA3BK;AA4BLzB,IAAAA,mBAAmB,EAAnBA,mBA5BK;AA6BLD,IAAAA,UAAU,EAAVA,UA7BK;AA8BL/W,IAAAA,yBAAyB,EAAzBA,yBA9BK;AA+BLwS,IAAAA,0BAA0B,EAA1BA,0BA/BK;AAgCLG,IAAAA,wBAAwB,EAAxBA,wBAhCK;AAiCL5yB,IAAAA,QAAQ,EAARA,QAjCK;AAkCL25B,IAAAA,sBAAsB,EAAtBA,sBAlCK;AAmCLzM,IAAAA,cAAc,EAAdA,cAnCK;AAoCL+K,IAAAA,cAAc,EAAdA,cApCK;AAqCLE,IAAAA,aAAa,EAAbA,aArCK;AAsCLrC,IAAAA,aAAa,EAAbA,aAtCK;AAuCL3V,IAAAA,2BAA2B,EAA3BA,2BAvCK;AAwCL+F,IAAAA,sBAAsB,EAAtBA;AAxCK,GAAP;AA0CD;;AC7nCD;;;;;;;;AASA;AAEA;AACA;AACA;;AAIA;AACA,SAASuf,gBAAT,CAA0BvqD,OAA1B,EAAoD;AAClD,SAAO,CAAC6zB,kBAAkB,CAAC7zB,OAAD,CAA1B;AACD;;AAIM,SAASwqD,WAAT,CACL7iB,IADK,EAELjnB,KAFK,EAGLzc,MAHK,EAIO;AACZ,MAAI0jC,IAAI,IAAI,IAAZ,EAAkB;AAChB;AACA,WAAO,YAAM,CAAE,CAAf;AACD;;AAED,MAAM8iB,IAAI,GAAG,CACX9iB,IAAI,CAACoe,GAAL,CACE,mBADF,EAEE,gBASM;AAAA,QARJjxD,EAQI,QARJA,EAQI;AAAA,QAPJgwB,QAOI,QAPJA,QAOI;AAAA,QANJlD,iBAMI,QANJA,iBAMI;AACJlB,IAAAA,KAAK,CAACgqC,oBAAN,CAA2B51D,EAA3B,EAA+B8sB,iBAA/B,EADI,CAGJ;AACA;;AACAA,IAAAA,iBAAiB,CAACszB,sBAAlB;AACD,GAjBH,CADW,EAqBXvN,IAAI,CAACoe,GAAL,CAAS,8BAAT,EAAyC,UAACjxD,EAAD,EAAgB;AACvD4rB,IAAAA,KAAK,CAACiqC,qBAAN,CAA4B71D,EAA5B;AACD,GAFD,CArBW,EAyBX6yC,IAAI,CAACoe,GAAL,CAAS,sBAAT,EAAiCrlC,KAAK,CAACkqC,sBAAvC,CAzBW,EA0BXjjB,IAAI,CAACoe,GAAL,CAAS,YAAT,EAAuBrlC,KAAK,CAACmqC,gBAA7B,CA1BW,EA2BXljB,IAAI,CAACoe,GAAL,CAAS,cAAT,EAAyBrlC,KAAK,CAACoqC,cAA/B,CA3BW,CA6BX;AA7BW,GAAb;;AAgCA,MAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACj2D,EAAD,EAAagwB,QAAb,EAAyC;AAC9D;AACA,QAAI,CAACylC,gBAAgB,CAACzlC,QAAQ,CAAC8iB,iBAAT,IAA8B9iB,QAAQ,CAAC9kB,OAAxC,CAArB,EAAuE;AACrE;AACD;;AACD,QAAI4hB,iBAAiB,GAAG+lB,IAAI,CAAC5iB,kBAAL,CAAwBzxB,GAAxB,CAA4BwB,EAA5B,CAAxB,CAL8D,CAO9D;;AACA,QAAI8sB,iBAAiB,IAAI,IAAzB,EAA+B;AAC7B,UAAI,OAAOkD,QAAQ,CAAC6xB,uBAAhB,KAA4C,UAAhD,EAA4D;AAC1D;AACA/0B,QAAAA,iBAAiB,GAAG8lB,MAAM,CAACC,IAAD,EAAO7yC,EAAP,EAAWgwB,QAAX,EAAqB7gB,MAArB,CAA1B;AACD,OAHD,MAGO,IAAI6gB,QAAQ,CAACyjC,aAAb,EAA4B;AACjC;AACA3mC,QAAAA,iBAAiB,GAAG0oC,eAAY,CAAC3iB,IAAD,EAAO7yC,EAAP,EAAWgwB,QAAX,EAAqB7gB,MAArB,CAAhC;AACD,OAHM,MAGA,CACL;AACD;;AAED,UAAI2d,iBAAiB,IAAI,IAAzB,EAA+B;AAC7B+lB,QAAAA,IAAI,CAAC5iB,kBAAL,CAAwB5yB,GAAxB,CAA4B2C,EAA5B,EAAgC8sB,iBAAhC;AACD;AACF,KAtB6D,CAwB9D;AACA;;;AACA,QAAIA,iBAAiB,IAAI,IAAzB,EAA+B;AAC7B+lB,MAAAA,IAAI,CAACt6B,IAAL,CAAU,mBAAV,EAA+B;AAC7BvY,QAAAA,EAAE,EAAFA,EAD6B;AAE7BgwB,QAAAA,QAAQ,EAARA,QAF6B;AAG7BlD,QAAAA,iBAAiB,EAAjBA;AAH6B,OAA/B;AAKD,KAND,MAMO;AACL+lB,MAAAA,IAAI,CAACt6B,IAAL,CAAU,8BAAV,EAA0CvY,EAA1C;AACD;AACF,GAnCD,CAtCY,CA2EZ;;;AACA6yC,EAAAA,IAAI,CAACie,SAAL,CAAe9vD,OAAf,CAAuB,UAACgvB,QAAD,EAAWhwB,EAAX,EAAkB;AACvCi2D,IAAAA,cAAc,CAACj2D,EAAD,EAAKgwB,QAAL,CAAd;AACD,GAFD,EA5EY,CAgFZ;;AACA2lC,EAAAA,IAAI,CAAC53D,IAAL,CACE80C,IAAI,CAACoe,GAAL,CACE,UADF,EAEE,iBAAgE;AAAA,QAA9DjxD,EAA8D,SAA9DA,EAA8D;AAAA,QAA1DgwB,QAA0D,SAA1DA,QAA0D;AAC9DimC,IAAAA,cAAc,CAACj2D,EAAD,EAAKgwB,QAAL,CAAd;AACD,GAJH,CADF;AASA6iB,EAAAA,IAAI,CAACt6B,IAAL,CAAU,gBAAV,EAA4BqT,KAA5B;AACAinB,EAAAA,IAAI,CAACqjB,kBAAL,GAA0BtqC,KAA1B;;AACA,MAAMuqC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5BR,IAAAA,IAAI,CAAC30D,OAAL,CAAa,UAAAuT,EAAE;AAAA,aAAIA,EAAE,EAAN;AAAA,KAAf;AACAs+B,IAAAA,IAAI,CAAC5iB,kBAAL,CAAwBjvB,OAAxB,CAAgC,UAAA8rB,iBAAiB,EAAI;AACnDA,MAAAA,iBAAiB,CAACmzB,OAAlB;AACD,KAFD;AAGApN,IAAAA,IAAI,CAACqjB,kBAAL,GAA0B,IAA1B;AACD,GAND;;AAOAtqC,EAAAA,KAAK,CAAC1T,WAAN,CAAkB,UAAlB,EAA8Bi+C,eAA9B;AACAR,EAAAA,IAAI,CAAC53D,IAAL,CAAU,YAAM;AACd6tB,IAAAA,KAAK,CAACvT,cAAN,CAAqB,UAArB,EAAiC89C,eAAjC;AACD,GAFD;AAIA,SAAO,YAAM;AACXR,IAAAA,IAAI,CAAC30D,OAAL,CAAa,UAAAuT,EAAE;AAAA,aAAIA,EAAE,EAAN;AAAA,KAAf;AACD,GAFD;AAGD;;ACvID;;;;;;;;;AAWA;;;;;;;;AAQe,SAAS6hD,eAAT,CACbtvB,MADa,EAEb7nB,KAFa,EAGI;AACjB,MAAIo3C,QAAQ,GAAG,KAAf;AACA,MAAMroD,MAAM,GAAG;AACbuZ,IAAAA,MAAM,EAAE,CADK;AAEbF,IAAAA,IAAI,EAAE,CAFO;AAGbI,IAAAA,KAAK,EAAE,CAHM;AAIbN,IAAAA,GAAG,EAAE;AAJQ,GAAf;AAOA,MAAMmvC,WAAW,GAAGr3C,KAAK,CAAC6nB,MAAD,CAAzB;;AACA,MAAIwvB,WAAW,IAAI,IAAnB,EAAyB;AACvB;AACA,oCAAkB96D,MAAM,CAACkL,IAAP,CAAYsH,MAAZ,CAAlB,kCAAuC;AAAlC,UAAMvI,GAAG,mBAAT;AACHuI,MAAAA,MAAM,CAACvI,GAAD,CAAN,GAAc6wD,WAAd;AACD;;AACDD,IAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,MAAME,kBAAkB,GAAGt3C,KAAK,CAAC6nB,MAAM,GAAG,YAAV,CAAhC;;AACA,MAAIyvB,kBAAkB,IAAI,IAA1B,EAAgC;AAC9BvoD,IAAAA,MAAM,CAACqZ,IAAP,GAAckvC,kBAAd;AACAvoD,IAAAA,MAAM,CAACyZ,KAAP,GAAe8uC,kBAAf;AACAF,IAAAA,QAAQ,GAAG,IAAX;AACD,GAJD,MAIO;AACL,QAAMG,YAAY,GAAGv3C,KAAK,CAAC6nB,MAAM,GAAG,MAAV,CAA1B;;AACA,QAAI0vB,YAAY,IAAI,IAApB,EAA0B;AACxBxoD,MAAAA,MAAM,CAACqZ,IAAP,GAAcmvC,YAAd;AACAH,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,QAAMI,aAAa,GAAGx3C,KAAK,CAAC6nB,MAAM,GAAG,OAAV,CAA3B;;AACA,QAAI2vB,aAAa,IAAI,IAArB,EAA2B;AACzBzoD,MAAAA,MAAM,CAACyZ,KAAP,GAAegvC,aAAf;AACAJ,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,QAAMK,WAAW,GAAGz3C,KAAK,CAAC6nB,MAAM,GAAG,KAAV,CAAzB;;AACA,QAAI4vB,WAAW,IAAI,IAAnB,EAAyB;AACvB;AACA1oD,MAAAA,MAAM,CAACyZ,KAAP,GAAeivC,WAAf;AACAL,MAAAA,QAAQ,GAAG,IAAX;AACD;;AACD,QAAMM,aAAa,GAAG13C,KAAK,CAAC6nB,MAAM,GAAG,OAAV,CAA3B;;AACA,QAAI6vB,aAAa,IAAI,IAArB,EAA2B;AACzB;AACA3oD,MAAAA,MAAM,CAACqZ,IAAP,GAAcsvC,aAAd;AACAN,MAAAA,QAAQ,GAAG,IAAX;AACD;AACF;;AAED,MAAMO,gBAAgB,GAAG33C,KAAK,CAAC6nB,MAAM,GAAG,UAAV,CAA9B;;AACA,MAAI8vB,gBAAgB,IAAI,IAAxB,EAA8B;AAC5B5oD,IAAAA,MAAM,CAACuZ,MAAP,GAAgBqvC,gBAAhB;AACA5oD,IAAAA,MAAM,CAACmZ,GAAP,GAAayvC,gBAAb;AACAP,IAAAA,QAAQ,GAAG,IAAX;AACD,GAJD,MAIO;AACL,QAAMQ,cAAc,GAAG53C,KAAK,CAAC6nB,MAAM,GAAG,QAAV,CAA5B;;AACA,QAAI+vB,cAAc,IAAI,IAAtB,EAA4B;AAC1B7oD,MAAAA,MAAM,CAACuZ,MAAP,GAAgBsvC,cAAhB;AACAR,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,QAAMS,WAAW,GAAG73C,KAAK,CAAC6nB,MAAM,GAAG,KAAV,CAAzB;;AACA,QAAIgwB,WAAW,IAAI,IAAnB,EAAyB;AACvB9oD,MAAAA,MAAM,CAACmZ,GAAP,GAAa2vC,WAAb;AACAT,MAAAA,QAAQ,GAAG,IAAX;AACD;AACF;;AAED,SAAOA,QAAQ,GAAGroD,MAAH,GAAY,IAA3B;AACD;;;;;;AC5FD;;;;;;;;AASA;AACA;AACA;AASe,SAAS+oD,sBAAT,CACbnoC,MADa,EAEbhD,KAFa,EAGborC,kBAHa,EAIbC,eAJa,EAKb;AACAroC,EAAAA,MAAM,CAAC1W,WAAP,CACE,2BADF,EAEE,gBAA4D;AAAA,QAA1DlY,EAA0D,QAA1DA,EAA0D;AAAA,QAAtD8vB,UAAsD,QAAtDA,UAAsD;AAC1DonC,IAAAA,YAAY,CAACtrC,KAAD,EAAQgD,MAAR,EAAgBooC,kBAAhB,EAAoCh3D,EAApC,EAAwC8vB,UAAxC,CAAZ;AACD,GAJH;AAOAlB,EAAAA,MAAM,CAAC1W,WAAP,CACE,mCADF,EAEE,iBAYM;AAAA,QAXJlY,EAWI,SAXJA,EAWI;AAAA,QAVJ8vB,UAUI,SAVJA,UAUI;AAAA,QATJqnC,OASI,SATJA,OASI;AAAA,QARJC,OAQI,SARJA,OAQI;AAAA,QAPJp5D,KAOI,SAPJA,KAOI;AACJq5D,IAAAA,WAAW,CAACzrC,KAAD,EAAQ5rB,EAAR,EAAY8vB,UAAZ,EAAwBqnC,OAAxB,EAAiCC,OAAjC,EAA0Cp5D,KAA1C,CAAX;AACAoT,IAAAA,UAAU,CAAC;AAAA,aACT8lD,YAAY,CAACtrC,KAAD,EAAQgD,MAAR,EAAgBooC,kBAAhB,EAAoCh3D,EAApC,EAAwC8vB,UAAxC,CADH;AAAA,KAAD,CAAV;AAGD,GAnBH;AAsBAlB,EAAAA,MAAM,CAAC1W,WAAP,CACE,4BADF,EAEE,iBAUM;AAAA,QATJlY,EASI,SATJA,EASI;AAAA,QARJ8vB,UAQI,SARJA,UAQI;AAAA,QAPJpxB,IAOI,SAPJA,IAOI;AAAA,QANJV,KAMI,SANJA,KAMI;AACJs5D,IAAAA,QAAQ,CAAC1rC,KAAD,EAAQ5rB,EAAR,EAAY8vB,UAAZ,EAAwBpxB,IAAxB,EAA8BV,KAA9B,CAAR;AACAoT,IAAAA,UAAU,CAAC;AAAA,aACT8lD,YAAY,CAACtrC,KAAD,EAAQgD,MAAR,EAAgBooC,kBAAhB,EAAoCh3D,EAApC,EAAwC8vB,UAAxC,CADH;AAAA,KAAD,CAAV;AAGD,GAjBH;AAoBAlB,EAAAA,MAAM,CAAC6B,IAAP,CAAY,8BAAZ,EAA4C;AAC1C8mC,IAAAA,WAAW,EAAE,IAD6B;AAE1CN,IAAAA,eAAe,EAAfA;AAF0C,GAA5C;AAID;AAED,IAAMO,eAAe,GAAG;AACtBrwC,EAAAA,GAAG,EAAE,CADiB;AAEtBE,EAAAA,IAAI,EAAE,CAFgB;AAGtBI,EAAAA,KAAK,EAAE,CAHe;AAItBF,EAAAA,MAAM,EAAE;AAJc,CAAxB;AAOA,IAAMkwC,2BAAgD,GAAG,IAAIz7D,GAAJ,EAAzD;;AAEA,SAASk7D,YAAT,CACEtrC,KADF,EAEEgD,MAFF,EAGEooC,kBAHF,EAIEh3D,EAJF,EAKE8vB,UALF,EAME;AACA,MAAMnW,IAAI,GAAGiS,KAAK,CAACo3B,mBAAN,CAA0B;AAAChjD,IAAAA,EAAE,EAAFA,EAAD;AAAK8vB,IAAAA,UAAU,EAAVA;AAAL,GAA1B,CAAb;;AACA,MAAI,CAACnW,IAAD,IAAS,CAACA,IAAI,CAACsF,KAAnB,EAA0B;AACxB2P,IAAAA,MAAM,CAAC6B,IAAP,CACE,kCADF,EAEG;AACCzwB,MAAAA,EAAE,EAAFA,EADD;AAEC03D,MAAAA,MAAM,EAAE,IAFT;AAGCz4C,MAAAA,KAAK,EAAE;AAHR,KAFH;AAQA;AACD;;AAZD,MAcO25B,QAdP,GAc0Bj/B,IAd1B,CAcOi/B,QAdP;AAAA,MAciB35B,KAdjB,GAc0BtF,IAd1B,CAciBsF,KAdjB;AAgBA,MAAI04C,aAAa,GAAGX,kBAAkB,CAAC/3C,KAAD,CAAtC,CAhBA,CAkBA;;AACA,MAAM24C,cAAc,GAAGH,2BAA2B,CAACj5D,GAA5B,CAAgCwB,EAAhC,CAAvB;;AACA,MAAI43D,cAAc,IAAI,IAAtB,EAA4B;AAC1BD,IAAAA,aAAa,GAAGn8D,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBk8D,aAAlB,EAAiCC,cAAjC,CAAhB;AACD;;AAED,MAAI,CAAChf,QAAD,IAAa,OAAOA,QAAQ,CAACif,OAAhB,KAA4B,UAA7C,EAAyD;AACvDjpC,IAAAA,MAAM,CAAC6B,IAAP,CACE,kCADF,EAEG;AACCzwB,MAAAA,EAAE,EAAFA,EADD;AAEC03D,MAAAA,MAAM,EAAE,IAFT;AAGCz4C,MAAAA,KAAK,EAAE04C,aAAa,IAAI;AAHzB,KAFH;AAQA;AACD;;AAED/e,EAAAA,QAAQ,CAACif,OAAT,CAAiB,UAACj8D,CAAD,EAAIC,CAAJ,EAAO8rB,KAAP,EAAcC,MAAd,EAAsBP,IAAtB,EAA4BF,GAA5B,EAAoC;AACnD;AACA;AACA,QAAI,OAAOvrB,CAAP,KAAa,QAAjB,EAA2B;AACzBgzB,MAAAA,MAAM,CAAC6B,IAAP,CACE,kCADF,EAEG;AACCzwB,QAAAA,EAAE,EAAFA,EADD;AAEC03D,QAAAA,MAAM,EAAE,IAFT;AAGCz4C,QAAAA,KAAK,EAAE04C,aAAa,IAAI;AAHzB,OAFH;AAQA;AACD;;AACD,QAAM5tC,MAAM,GACT4tC,aAAa,IAAI,IAAjB,IAAyBvB,eAAe,CAAC,QAAD,EAAWuB,aAAX,CAAzC,IACAH,eAFF;AAGA,QAAM/tC,OAAO,GACVkuC,aAAa,IAAI,IAAjB,IAAyBvB,eAAe,CAAC,SAAD,EAAYuB,aAAZ,CAAzC,IACAH,eAFF;AAGA5oC,IAAAA,MAAM,CAAC6B,IAAP,CACE,kCADF,EAEG;AACCzwB,MAAAA,EAAE,EAAFA,EADD;AAEC03D,MAAAA,MAAM,EAAE;AACN97D,QAAAA,CAAC,EAADA,CADM;AAENC,QAAAA,CAAC,EAADA,CAFM;AAGN8rB,QAAAA,KAAK,EAALA,KAHM;AAINC,QAAAA,MAAM,EAANA,MAJM;AAKNP,QAAAA,IAAI,EAAJA,IALM;AAMNF,QAAAA,GAAG,EAAHA,GANM;AAON4C,QAAAA,MAAM,EAANA,MAPM;AAQNN,QAAAA,OAAO,EAAPA;AARM,OAFT;AAYCxK,MAAAA,KAAK,EAAE04C,aAAa,IAAI;AAZzB,KAFH;AAiBD,GArCD;AAsCD;;AAED,SAASG,YAAT,CAAsB78B,MAAtB,EAA8C;AAC5C,MAAM88B,MAA8B,GAAG,EAAvC;;AACA,OAAK,IAAMp4D,CAAX,IAAgBs7B,MAAhB,EAAwB;AACtB88B,IAAAA,MAAM,CAACp4D,CAAD,CAAN,GAAYs7B,MAAM,CAACt7B,CAAD,CAAlB;AACD;;AACD,SAAOo4D,MAAP;AACD;;AAED,SAASV,WAAT,CACEzrC,KADF,EAEE5rB,EAFF,EAGE8vB,UAHF,EAIEqnC,OAJF,EAKEC,OALF,EAMEp5D,KANF,EAOQ;AAAA;;AACN,MAAM2b,IAAI,GAAGiS,KAAK,CAACo3B,mBAAN,CAA0B;AAAChjD,IAAAA,EAAE,EAAFA,EAAD;AAAK8vB,IAAAA,UAAU,EAAVA;AAAL,GAA1B,CAAb;;AACA,MAAI,CAACnW,IAAD,IAAS,CAACA,IAAI,CAACsF,KAAnB,EAA0B;AACxB;AACD;;AAJK,MAMC25B,QAND,GAMoBj/B,IANpB,CAMCi/B,QAND;AAAA,MAMW35B,KANX,GAMoBtF,IANpB,CAMWsF,KANX;AAQN,MAAM+4C,QAAQ,GAAGZ,OAAO,6DAClBD,OADkB,EACRxqD,SADQ,gDACIyqD,OADJ,EACcp5D,KADd,sDAElBm5D,OAFkB,EAERxqD,SAFQ,CAAxB;AAIA,MAAIsrD,WAAJ,CAZM,CAcN;;AACA,MAAIrf,QAAQ,KAAK,IAAb,IAAqB,OAAOA,QAAQ,CAACsf,cAAhB,KAAmC,UAA5D,EAAwE;AACtE;AACA;AACA,QAAMN,cAAc,GAAGH,2BAA2B,CAACj5D,GAA5B,CAAgCwB,EAAhC,CAAvB;;AACA,QAAI,CAAC43D,cAAL,EAAqB;AACnBH,MAAAA,2BAA2B,CAACp6D,GAA5B,CAAgC2C,EAAhC,EAAoCg4D,QAApC;AACD,KAFD,MAEO;AACLx8D,MAAAA,MAAM,CAACC,MAAP,CAAcm8D,cAAd,EAA8BI,QAA9B;AACD,KARqE,CAStE;;;AACApf,IAAAA,QAAQ,CAACsf,cAAT,CAAwB;AAACj5C,MAAAA,KAAK,EAAE+4C;AAAR,KAAxB;AACD,GAXD,MAWO,IAAIzyD,WAAO,CAAC0Z,KAAD,CAAX,EAAoB;AACzB,QAAMk5C,SAAS,GAAGl5C,KAAK,CAAC9hB,MAAN,GAAe,CAAjC;;AACA,QAAI,8BAAO8hB,KAAK,CAACk5C,SAAD,CAAZ,MAA4B,QAA5B,IAAwC,CAAC5yD,WAAO,CAAC0Z,KAAK,CAACk5C,SAAD,CAAN,CAApD,EAAwE;AACtEF,MAAAA,WAAW,GAAGH,YAAY,CAAC74C,KAAK,CAACk5C,SAAD,CAAN,CAA1B;AACA,aAAOF,WAAW,CAACd,OAAD,CAAlB;;AACA,UAAIC,OAAJ,EAAa;AACXa,QAAAA,WAAW,CAACb,OAAD,CAAX,GAAuBp5D,KAAvB;AACD,OAFD,MAEO;AACLi6D,QAAAA,WAAW,CAACd,OAAD,CAAX,GAAuBxqD,SAAvB;AACD;;AAEDif,MAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,QAAAA,IAAI,EAAE,OADkB;AAExBrB,QAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,QAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,QAAAA,IAAI,EAAE,CAAC,OAAD,EAAUi9B,SAAV,CAJkB;AAKxBn6D,QAAAA,KAAK,EAAEi6D;AALiB,OAA1B;AAOD,KAhBD,MAgBO;AACLrsC,MAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,QAAAA,IAAI,EAAE,OADkB;AAExBrB,QAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,QAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,QAAAA,IAAI,EAAE,CAAC,OAAD,CAJkB;AAKxBl9B,QAAAA,KAAK,EAAEihB,KAAK,CAAC5H,MAAN,CAAa,CAAC2gD,QAAD,CAAb;AALiB,OAA1B;AAOD;AACF,GA3BM,MA2BA,IAAI,8BAAO/4C,KAAP,MAAiB,QAArB,EAA+B;AACpCg5C,IAAAA,WAAW,GAAGH,YAAY,CAAC74C,KAAD,CAA1B;AACA,WAAOg5C,WAAW,CAACd,OAAD,CAAlB;;AACA,QAAIC,OAAJ,EAAa;AACXa,MAAAA,WAAW,CAACb,OAAD,CAAX,GAAuBp5D,KAAvB;AACD,KAFD,MAEO;AACLi6D,MAAAA,WAAW,CAACd,OAAD,CAAX,GAAuBxqD,SAAvB;AACD;;AAEDif,IAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,MAAAA,IAAI,EAAE,OADkB;AAExBrB,MAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,MAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,MAAAA,IAAI,EAAE,CAAC,OAAD,CAJkB;AAKxBl9B,MAAAA,KAAK,EAAEi6D;AALiB,KAA1B;AAOD,GAhBM,MAgBA;AACLrsC,IAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,MAAAA,IAAI,EAAE,OADkB;AAExBrB,MAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,MAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,MAAAA,IAAI,EAAE,CAAC,OAAD,CAJkB;AAKxBl9B,MAAAA,KAAK,EAAE,CAACihB,KAAD,EAAQ+4C,QAAR;AALiB,KAA1B;AAOD;;AAEDpsC,EAAAA,KAAK,CAACrT,IAAN,CAAW,qBAAX;AACD;;AAED,SAAS++C,QAAT,CACE1rC,KADF,EAEE5rB,EAFF,EAGE8vB,UAHF,EAIEpxB,IAJF,EAKEV,KALF,EAME;AACA,MAAM2b,IAAI,GAAGiS,KAAK,CAACo3B,mBAAN,CAA0B;AAAChjD,IAAAA,EAAE,EAAFA,EAAD;AAAK8vB,IAAAA,UAAU,EAAVA;AAAL,GAA1B,CAAb;;AACA,MAAI,CAACnW,IAAD,IAAS,CAACA,IAAI,CAACsF,KAAnB,EAA0B;AACxB;AACD;;AAJD,MAMO25B,QANP,GAM0Bj/B,IAN1B,CAMOi/B,QANP;AAAA,MAMiB35B,KANjB,GAM0BtF,IAN1B,CAMiBsF,KANjB;;AAOA,MAAM+4C,QAAQ,GAAG,0CAAEt5D,IAAL,EAAYV,KAAZ,CAAd,CAPA,CASA;;;AACA,MAAI46C,QAAQ,KAAK,IAAb,IAAqB,OAAOA,QAAQ,CAACsf,cAAhB,KAAmC,UAA5D,EAAwE;AACtE;AACA;AACA,QAAMN,cAAc,GAAGH,2BAA2B,CAACj5D,GAA5B,CAAgCwB,EAAhC,CAAvB;;AACA,QAAI,CAAC43D,cAAL,EAAqB;AACnBH,MAAAA,2BAA2B,CAACp6D,GAA5B,CAAgC2C,EAAhC,EAAoCg4D,QAApC;AACD,KAFD,MAEO;AACLx8D,MAAAA,MAAM,CAACC,MAAP,CAAcm8D,cAAd,EAA8BI,QAA9B;AACD,KARqE,CAStE;;;AACApf,IAAAA,QAAQ,CAACsf,cAAT,CAAwB;AAACj5C,MAAAA,KAAK,EAAE+4C;AAAR,KAAxB;AACD,GAXD,MAWO,IAAIzyD,WAAO,CAAC0Z,KAAD,CAAX,EAAoB;AACzB,QAAMm5C,UAAU,GAAGn5C,KAAK,CAAC9hB,MAAN,GAAe,CAAlC;;AACA,QAAI,8BAAO8hB,KAAK,CAACm5C,UAAD,CAAZ,MAA6B,QAA7B,IAAyC,CAAC7yD,WAAO,CAAC0Z,KAAK,CAACm5C,UAAD,CAAN,CAArD,EAA0E;AACxExsC,MAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,QAAAA,IAAI,EAAE,OADkB;AAExBrB,QAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,QAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,QAAAA,IAAI,EAAE,CAAC,OAAD,EAAUk9B,UAAV,EAAsB15D,IAAtB,CAJkB;AAKxBV,QAAAA,KAAK,EAALA;AALwB,OAA1B;AAOD,KARD,MAQO;AACL4tB,MAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,QAAAA,IAAI,EAAE,OADkB;AAExBrB,QAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,QAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,QAAAA,IAAI,EAAE,CAAC,OAAD,CAJkB;AAKxBl9B,QAAAA,KAAK,EAAEihB,KAAK,CAAC5H,MAAN,CAAa,CAAC2gD,QAAD,CAAb;AALiB,OAA1B;AAOD;AACF,GAnBM,MAmBA;AACLpsC,IAAAA,KAAK,CAACq7B,mBAAN,CAA0B;AACxB5lD,MAAAA,IAAI,EAAE,OADkB;AAExBrB,MAAAA,EAAE,EAAFA,EAFwB;AAGxB8vB,MAAAA,UAAU,EAAVA,UAHwB;AAIxBoL,MAAAA,IAAI,EAAE,CAAC,OAAD,CAJkB;AAKxBl9B,MAAAA,KAAK,EAAE,CAACihB,KAAD,EAAQ+4C,QAAR;AALiB,KAA1B;AAOD;;AAEDpsC,EAAAA,KAAK,CAACrT,IAAN,CAAW,qBAAX;AACD;;ACtUD;;;;;;;;AAUA;CAGA;AACA;AACA;;AAMO,SAAS8/C,6BAAT,CACLC,uBADK,EAEL;AACAC,EAAAA,8BAA8B,CAACD,uBAAD,CAA9B;AACD;;AAED,SAASC,8BAAT,CACED,uBADF,EAEE;AACA,MAAIA,uBAAuB,CAACE,uBAAxB,IAAmD,IAAvD,EAA6D;AAC3D;AACD;;AACD,MAAMC,0BAA0B,GAC9BH,uBAAuB,CAACE,uBAAxB,EADF;;AAEA,MAAIC,0BAA0B,IAAI,IAAlC,EAAwC;AACtC;AACD;;AACD,MAAMC,0BAA0B,GAAGC,yBAAyB,CAC1DF,0BAD0D,CAA5D;;AAGA,MAAIC,0BAA0B,IAAI,IAAlC,EAAwC;AACtC;AACD;;AACD9L,EAAAA,iCAAiC,CAAC8L,0BAAD,CAAjC;AACD;;AAED,SAASC,yBAAT,CACEF,0BADF,EAEyB;AAAA;;AACvB,MAAMG,WAAW,GAAG77C,IAAI,CAACxf,KAAL,CAAWk7D,0BAAX,aAAWA,0BAAX,cAAWA,0BAAX,GAAyC,IAAzC,CAApB;AADuB,MAGrBpN,oBAHqB,GAQnBuN,WARmB,CAGrBvN,oBAHqB;AAAA,MAIrBC,oBAJqB,GAQnBsN,WARmB,CAIrBtN,oBAJqB;AAAA,MAKrBC,2BALqB,GAQnBqN,WARmB,CAKrBrN,2BALqB;AAAA,MAMrBC,2BANqB,GAQnBoN,WARmB,CAMrBpN,2BANqB;AAAA,MAOrBlB,YAPqB,GAQnBsO,WARmB,CAOrBtO,YAPqB;AASvB,SAAO;AACLe,IAAAA,oBAAoB,eAAElxB,QAAQ,CAACkxB,oBAAD,CAAV,iDAAoC,IADnD;AAELC,IAAAA,oBAAoB,gBAAEnxB,QAAQ,CAACmxB,oBAAD,CAAV,mDAAoC,KAFnD;AAGLC,IAAAA,2BAA2B,gBAAEpxB,QAAQ,CAACoxB,2BAAD,CAAV,mDAA2C,IAHjE;AAILC,IAAAA,2BAA2B,gBAAErxB,QAAQ,CAACqxB,2BAAD,CAAV,mDAA2C,KAJjE;AAKLlB,IAAAA,YAAY,uBAAElwB,gBAAgB,CAACkwB,YAAD,CAAlB,iEAAoC;AAL3C,GAAP;AAOD;;AAEM,SAASuO,yBAAT,CACLP,uBADK,EAELt6D,KAFK,EAGC;AACN,MAAIs6D,uBAAuB,CAACQ,uBAAxB,IAAmD,IAAvD,EAA6D;AAC3D;AACD;;AACDR,EAAAA,uBAAuB,CAACQ,uBAAxB,CAAgD/7C,IAAI,CAACC,SAAL,CAAehf,KAAf,CAAhD;AACD;;AC3ED;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwBA;AACA;AACA8uD,+BAA+B;AAC/BoD,WAAW,CAAC3nC,MAAD,CAAX;AAEA,IAAMsqB,IAAmB,GAAGtqB,MAAM,CAACgI,8BAAnC;AAEA,IAAIwoC,qBAA6C,GAC/Cl/B,0BAA0B,EAD5B;;AAGA,SAASob,aAAT,CAAeiZ,UAAf,EAA0D;AACxD,MAAI3qC,SAAJ,EAAe;AAAA;;AAAA,sCADqB/U,IACrB;AADqBA,MAAAA,IACrB;AAAA;;AACb,gBAAAmP,OAAO,EAAC+D,GAAR,+CACwBwsC,UADxB,GAEE,iCAFF,EAGE,oBAHF,SAIK1/C,IAJL;AAMD;AACF;;AAEM,SAASwqD,iBAAT,CAA2B7oD,OAA3B,EAAqD;AAC1D,MAAI0iC,IAAI,IAAI,IAAZ,EAAkB;AAChB;AACA;AACD;;AAJyD,aAetD1iC,OAAO,IAAI,EAf2C;AAAA,uBAMxD8oD,IANwD;AAAA,MAMxDA,IANwD,0BAMjD,WANiD;AAAA,MAOxDC,gCAPwD,QAOxDA,gCAPwD;AAAA,2BAQxDC,QARwD;AAAA,MAQxDA,QARwD,8BAQ7C,KAR6C;AAAA,uBASxDC,IATwD;AAAA,MASxDA,IATwD,0BASjD,IATiD;AAAA,MAUxDC,SAVwD,QAUxDA,SAVwD;AAAA,iCAWxDC,cAXwD;AAAA,MAWxDA,cAXwD,oCAWtC,IAXsC;AAAA,mCAYxDC,oBAZwD;AAAA,MAYxDA,oBAZwD,sCAYjC,IAZiC;AAAA,8BAaxDC,WAbwD;AAAA,MAaxDA,WAbwD,iCAa1C;AAAA,WAAM,IAAN;AAAA,GAb0C;AAAA,MAcxDlB,uBAdwD,QAcxDA,uBAdwD;;AAiB1D,MAAMmB,QAAQ,GAAGN,QAAQ,GAAG,KAAH,GAAW,IAApC;AACA,MAAIO,cAAgC,GAAG,IAAvC;;AAEA,WAASC,aAAT,GAAyB;AACvB,QAAID,cAAc,KAAK,IAAvB,EAA6B;AAC3B;AACAA,MAAAA,cAAc,GAAGtoD,UAAU,CACzB;AAAA,eAAM4nD,iBAAiB,CAAC7oD,OAAD,CAAvB;AAAA,OADyB,EAEzBopD,oBAFyB,CAA3B;AAID;AACF;;AAED,MAAIjB,uBAAuB,IAAI,IAA/B,EAAqC;AACnC,QAAI;AACFD,MAAAA,6BAA6B,CAACC,uBAAD,CAA7B;AACD,KAFD,CAEE,OAAOp7D,CAAP,EAAU;AACV;AACA;AACAygB,MAAAA,OAAO,CAAC9R,KAAR,CAAc3O,CAAd;AACD;AACF;;AAED,MAAI,CAACs8D,WAAW,EAAhB,EAAoB;AAClB;AACA;AACAG,IAAAA,aAAa;AACb;AACD;;AAED,MAAI/qC,MAA4B,GAAG,IAAnC;AAEA,MAAMgrC,gBAAgB,GAAG,EAAzB;AACA,MAAMC,GAAG,GAAGJ,QAAQ,GAAG,KAAX,GAAmBR,IAAnB,GAA0B,GAA1B,GAAgCG,IAA5C,CAlD0D,CAoD1D;AACA;AACA;;AACA,MAAMU,EAAE,GAAGT,SAAS,GAAGA,SAAH,GAAe,IAAI9wC,MAAM,CAACwxC,SAAX,CAAqBF,GAArB,CAAnC;AACAC,EAAAA,EAAE,CAACE,OAAH,GAAaC,WAAb;AACAH,EAAAA,EAAE,CAACI,OAAH,GAAaC,YAAb;AACAL,EAAAA,EAAE,CAACM,SAAH,GAAeC,aAAf;;AACAP,EAAAA,EAAE,CAACQ,MAAH,GAAY,YAAY;AACtB1rC,IAAAA,MAAM,GAAG,IAAIy+B,UAAJ,CAAW;AAClBQ,MAAAA,MADkB,kBACXt5C,EADW,EACP;AACTqlD,QAAAA,gBAAgB,CAAC77D,IAAjB,CAAsBwW,EAAtB;AACA,eAAO,YAAM;AACX,cAAMyO,KAAK,GAAG42C,gBAAgB,CAACrtD,OAAjB,CAAyBgI,EAAzB,CAAd;;AACA,cAAIyO,KAAK,IAAI,CAAb,EAAgB;AACd42C,YAAAA,gBAAgB,CAACp5D,MAAjB,CAAwBwiB,KAAxB,EAA+B,CAA/B;AACD;AACF,SALD;AAMD,OATiB;AAUlByN,MAAAA,IAVkB,gBAUb5N,KAVa,EAUE0lB,OAVF,EAUgBgyB,YAVhB,EAU2C;AAC3D,YAAIT,EAAE,CAACU,UAAH,KAAkBV,EAAE,CAACW,IAAzB,EAA+B;AAC7B,cAAIl3C,SAAJ,EAAe;AACb0xB,YAAAA,aAAK,CAAC,aAAD,EAAgBpyB,KAAhB,EAAuB0lB,OAAvB,CAAL;AACD;;AAEDuxB,UAAAA,EAAE,CAACrpC,IAAH,CAAQ1T,IAAI,CAACC,SAAL,CAAe;AAAC6F,YAAAA,KAAK,EAALA,KAAD;AAAQ0lB,YAAAA,OAAO,EAAPA;AAAR,WAAf,CAAR;AACD,SAND,MAMO;AACL,cAAIhlB,SAAJ,EAAe;AACb0xB,YAAAA,aAAK,CACH,aADG,EAEH,6DAFG,CAAL;AAID;;AAED,cAAIrmB,MAAM,KAAK,IAAf,EAAqB;AACnBA,YAAAA,MAAM,CAAC6gC,QAAP;AACD;;AAEDkK,UAAAA,aAAa;AACd;AACF;AA/BiB,KAAX,CAAT;AAiCA/qC,IAAAA,MAAM,CAAC1W,WAAP,CACE,wBADF,EAEE,UAAC+hB,gBAAD,EAA8C;AAC5C;AACA;AACA;AACA8+B,MAAAA,qBAAqB,GAAG9+B,gBAAxB;AACD,KAPH;;AAUA,QAAIq+B,uBAAuB,IAAI,IAA3B,IAAmC1pC,MAAM,IAAI,IAAjD,EAAuD;AACrDA,MAAAA,MAAM,CAAC1W,WAAP,CAAmB,4BAAnB,EAAiD,UAAAwiD,oBAAoB;AAAA,eACnE7B,yBAAyB,CACvBP,uBADuB,EAEvBoC,oBAFuB,CAD0C;AAAA,OAArE;AAMD,KAnDqB,CAqDtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,QAAInyC,MAAM,CAAC0tB,oCAAP,IAA+C,IAAnD,EAAyD;AACvD;AACArnB,MAAAA,MAAM,CAAC6B,IAAP,CAAY,0BAAZ,EAAwCsoC,qBAAxC;AACD,KAhEqB,CAkEtB;AACA;;;AACA,QAAMntC,KAAK,GAAG,IAAI4C,KAAJ,CAAUI,MAAV,CAAd;AACAhD,IAAAA,KAAK,CAAC1T,WAAN,CAAkB,UAAlB,EAA8B,YAAM;AAClC;AACA;AACA26B,MAAAA,IAAI,CAACt6B,IAAL,CAAU,UAAV;AACD,KAJD;AAMAm9C,IAAAA,WAAW,CAAC7iB,IAAD,EAAOjnB,KAAP,EAAcrD,MAAd,CAAX,CA3EsB,CA6EtB;;AACA,QAAI+wC,cAAc,IAAI,IAAlB,IAA0BzmB,IAAI,CAACymB,cAAL,IAAuB,IAArD,EAA2D;AACzDvC,MAAAA,sBAAsB,EACpB;AACAnoC,MAAAA,MAFoB,EAGpBhD,KAHoB,EAIlB0tC,cAAc,IAAIzmB,IAAI,CAACymB,cAJL,EAKpBJ,gCAAgC,IAC9BrmB,IAAI,CAACqmB,gCADP,IAEE,IAPkB,CAAtB;AASD,KAVD,MAUO;AACL;AACA;AACA;AACA,UAAIyB,kBAAJ;AACA,UAAIC,oCAAJ;;AAEA,UAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B,YAAIjsC,MAAM,KAAK,IAAf,EAAqB;AACnBmoC,UAAAA,sBAAsB,CACpBnoC,MADoB,EAEpBhD,KAFoB,EAGpB+uC,kBAHoB,EAIpBC,oCAJoB,CAAtB;AAMD;AACF,OATD;;AAWA,UAAI,CAAC/nB,IAAI,CAACp0C,cAAL,CAAoB,gBAApB,CAAL,EAA4C;AAC1CjD,QAAAA,MAAM,CAACsY,cAAP,CACE++B,IADF,EAEE,gBAFF,EAGG;AACC5+B,UAAAA,UAAU,EAAE,KADb;AAECzV,UAAAA,GAFD,iBAEO;AACJ,mBAAOm8D,kBAAP;AACD,WAJF;AAKCt9D,UAAAA,GALD,eAKKW,KALL,EAKwB;AACrB28D,YAAAA,kBAAkB,GAAG38D,KAArB;AACA68D,YAAAA,aAAa;AACd;AARF,SAHH;AAcD;;AACD,UAAI,CAAChoB,IAAI,CAACp0C,cAAL,CAAoB,kCAApB,CAAL,EAA8D;AAC5DjD,QAAAA,MAAM,CAACsY,cAAP,CACE++B,IADF,EAEE,kCAFF,EAGG;AACC5+B,UAAAA,UAAU,EAAE,KADb;AAECzV,UAAAA,GAFD,iBAEO;AACJ,mBAAOo8D,oCAAP;AACD,WAJF;AAKCv9D,UAAAA,GALD,eAKKW,KALL,EAKwB;AACrB48D,YAAAA,oCAAoC,GAAG58D,KAAvC;AACA68D,YAAAA,aAAa;AACd;AARF,SAHH;AAcD;AACF;AACF,GA3ID;;AA6IA,WAASZ,WAAT,GAAuB;AACrB,QAAI12C,SAAJ,EAAe;AACb0xB,MAAAA,aAAK,CAAC,mBAAD,CAAL;AACD;;AAED,QAAIrmB,MAAM,KAAK,IAAf,EAAqB;AACnBA,MAAAA,MAAM,CAACrW,IAAP,CAAY,UAAZ;AACD;;AAEDohD,IAAAA,aAAa;AACd;;AAED,WAASQ,YAAT,GAAwB;AACtB,QAAI52C,SAAJ,EAAe;AACb0xB,MAAAA,aAAK,CAAC,mBAAD,CAAL;AACD;;AAED0kB,IAAAA,aAAa;AACd;;AAED,WAASU,aAAT,CAAuBx3C,KAAvB,EAA4C;AAC1C,QAAIlJ,IAAJ;;AACA,QAAI;AACF,UAAI,OAAOkJ,KAAK,CAAClJ,IAAb,KAAsB,QAA1B,EAAoC;AAClCA,QAAAA,IAAI,GAAGoD,IAAI,CAACxf,KAAL,CAAWslB,KAAK,CAAClJ,IAAjB,CAAP;;AACA,YAAI4J,SAAJ,EAAe;AACb0xB,UAAAA,aAAK,CAAC,qBAAD,EAAwBt7B,IAAxB,CAAL;AACD;AACF,OALD,MAKO;AACL,cAAM9b,KAAK,EAAX;AACD;AACF,KATD,CASE,OAAOX,CAAP,EAAU;AACVygB,MAAAA,OAAO,CAAC9R,KAAR,CACE,4CAA6CgX,KAAK,CAAClJ,IADrD;AAGA;AACD;;AACDigD,IAAAA,gBAAgB,CAAC54D,OAAjB,CAAyB,UAAAuT,EAAE,EAAI;AAC7B,UAAI;AACFA,QAAAA,EAAE,CAACoF,IAAD,CAAF;AACD,OAFD,CAEE,OAAO9N,KAAP,EAAc;AACd;AACA;AACA;AACA8R,QAAAA,OAAO,CAAC+D,GAAR,CAAY,yCAAZ,EAAuD/H,IAAvD;AACAgE,QAAAA,OAAO,CAAC+D,GAAR,CAAY,QAAZ,EAAsB7V,KAAtB;AACA,cAAMA,KAAN;AACD;AACF,KAXD;AAYD;AACF,C","sources":["webpack://ReactDevToolsBackend/webpack/universalModuleDefinition","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-debug-tools/cjs/react-debug-tools.production.min.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-debug-tools/index.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-is/cjs/react-is.production.min.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-is/index.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react/cjs/react.production.min.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react/index.js","webpack://ReactDevToolsBackend/../../node_modules/error-stack-parser/error-stack-parser.js","webpack://ReactDevToolsBackend/../../node_modules/lodash.throttle/index.js","webpack://ReactDevToolsBackend/../../node_modules/lru-cache/index.js","webpack://ReactDevToolsBackend/../../node_modules/process/browser.js","webpack://ReactDevToolsBackend/../../node_modules/pseudomap/map.js","webpack://ReactDevToolsBackend/../../node_modules/pseudomap/pseudomap.js","webpack://ReactDevToolsBackend/../../node_modules/stackframe/stackframe.js","webpack://ReactDevToolsBackend/../../node_modules/util/node_modules/inherits/inherits_browser.js","webpack://ReactDevToolsBackend/../../node_modules/util/support/isBufferBrowser.js","webpack://ReactDevToolsBackend/../../node_modules/util/util.js","webpack://ReactDevToolsBackend/../../node_modules/yallist/yallist.js","webpack://ReactDevToolsBackend/webpack/bootstrap","webpack://ReactDevToolsBackend/webpack/runtime/compat get default export","webpack://ReactDevToolsBackend/webpack/runtime/define property getters","webpack://ReactDevToolsBackend/webpack/runtime/hasOwnProperty shorthand","webpack://ReactDevToolsBackend/webpack/runtime/make namespace object","webpack://ReactDevToolsBackend/../react-devtools-shared/src/events.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/constants.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/storage.js","webpack://ReactDevToolsBackend/../../node_modules/memoize-one/esm/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/Highlighter/Overlay.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/Highlighter/Highlighter.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/Highlighter/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/TraceUpdates/canvas.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/TraceUpdates/index.js","webpack://ReactDevToolsBackend/../../src/index.ts","webpack://ReactDevToolsBackend/../shared/ReactSymbols.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/frontend/types.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/isArray.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/hydration.js","webpack://ReactDevToolsBackend/../shared/isArray.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/ReactSymbols.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js","webpack://ReactDevToolsBackend/../shared/objectIs.js","webpack://ReactDevToolsBackend/../shared/hasOwnProperty.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/StyleX/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/devtools/constants.js","webpack://ReactDevToolsBackend/../react-devtools-timeline/src/constants.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/DevToolsConsolePatching.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/DevToolsComponentStackFrame.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/DevToolsFiberComponentStack.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/profilingHooks.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/renderer.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/console.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/bridge.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/agent.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/hook.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/legacy/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/legacy/renderer.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/NativeStyleEditor/resolveBoxStyle.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js","webpack://ReactDevToolsBackend/./src/cachedSettings.js","webpack://ReactDevToolsBackend/./src/backend.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([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDevToolsBackend\"] = factory();\n\telse\n\t\troot[\"ReactDevToolsBackend\"] = factory();\n})(self, () => {\nreturn ","/**\n * @license React\n * react-debug-tools.production.min.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"error-stack-parser\"),p=require(\"react\"),q=Object.assign,w=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=[],y=null;\nfunction z(){if(null===y){var a=new Map;try{A.useContext({_currentValue:null}),A.useState(null),A.useReducer(function(c){return c},null),A.useRef(null),\"function\"===typeof A.useCacheRefresh&&A.useCacheRefresh(),A.useLayoutEffect(function(){}),A.useInsertionEffect(function(){}),A.useEffect(function(){}),A.useImperativeHandle(void 0,function(){return null}),A.useDebugValue(null),A.useCallback(function(){}),A.useMemo(function(){return null}),\"function\"===typeof A.useMemoCache&&A.useMemoCache(0)}finally{var b=\nx;x=[]}for(var e=0;ef;f++)if(n=G(m,d,f),-1!==n){F=f;d=n;break b}d=-1}}b:{m=l;n=z().get(u.primitive);if(void 0!==n)for(f=0;fd-m?null:l.slice(m,\nd-1);if(null!==l){d=0;if(null!==c){for(;dd;c--)h=t.pop()}for(c=l.length-d-1;1<=c;c--)d=[],m=l[c],(n=l[c-1].functionName)?(f=n.lastIndexOf(\".\"),-1===f&&(f=0),\"use\"===n.slice(f,f+3)&&(f+=3),n=n.slice(f)):n=\"\",n={id:null,isStateEditable:!1,name:n,value:void 0,subHooks:d},e&&(n.hookSource={lineNumber:m.lineNumber,columnNumber:m.columnNumber,functionName:m.functionName,fileName:m.fileName}),h.push(n),t.push(h),\nh=d;c=l}d=u.primitive;u={id:\"Context\"===d||\"DebugValue\"===d?null:r++,isStateEditable:\"Reducer\"===d||\"State\"===d,name:d,value:u.value,subHooks:[]};e&&(d={lineNumber:null,functionName:null,fileName:null,columnNumber:null},l&&1<=l.length&&(l=l[0],d.lineNumber=l.lineNumber,d.functionName=l.functionName,d.fileName=l.fileName,d.columnNumber=l.columnNumber),u.hookSource=d);h.push(u)}J(g,null);return g}\nfunction J(a,b){for(var e=[],g=0;g -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","'use strict'\n\nmodule.exports = LRUCache\n\n// This will be a proper iterable 'Map' in engines that support it,\n// or a fakey-fake PseudoMap in older versions.\nvar Map = require('pseudomap')\nvar util = require('util')\n\n// A linked list to keep track of recently-used-ness\nvar Yallist = require('yallist')\n\n// use symbols if possible, otherwise just _props\nvar hasSymbol = typeof Symbol === 'function' && process.env._nodeLRUCacheForceNoSymbol !== '1'\nvar makeSymbol\nif (hasSymbol) {\n makeSymbol = function (key) {\n return Symbol(key)\n }\n} else {\n makeSymbol = function (key) {\n return '_' + key\n }\n}\n\nvar MAX = makeSymbol('max')\nvar LENGTH = makeSymbol('length')\nvar LENGTH_CALCULATOR = makeSymbol('lengthCalculator')\nvar ALLOW_STALE = makeSymbol('allowStale')\nvar MAX_AGE = makeSymbol('maxAge')\nvar DISPOSE = makeSymbol('dispose')\nvar NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet')\nvar LRU_LIST = makeSymbol('lruList')\nvar CACHE = makeSymbol('cache')\n\nfunction naiveLength () { return 1 }\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nfunction LRUCache (options) {\n if (!(this instanceof LRUCache)) {\n return new LRUCache(options)\n }\n\n if (typeof options === 'number') {\n options = { max: options }\n }\n\n if (!options) {\n options = {}\n }\n\n var max = this[MAX] = options.max\n // Kind of weird to have a default max of Infinity, but oh well.\n if (!max ||\n !(typeof max === 'number') ||\n max <= 0) {\n this[MAX] = Infinity\n }\n\n var lc = options.length || naiveLength\n if (typeof lc !== 'function') {\n lc = naiveLength\n }\n this[LENGTH_CALCULATOR] = lc\n\n this[ALLOW_STALE] = options.stale || false\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this.reset()\n}\n\n// resize the cache when the max changes.\nObject.defineProperty(LRUCache.prototype, 'max', {\n set: function (mL) {\n if (!mL || !(typeof mL === 'number') || mL <= 0) {\n mL = Infinity\n }\n this[MAX] = mL\n trim(this)\n },\n get: function () {\n return this[MAX]\n },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'allowStale', {\n set: function (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n },\n get: function () {\n return this[ALLOW_STALE]\n },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'maxAge', {\n set: function (mA) {\n if (!mA || !(typeof mA === 'number') || mA < 0) {\n mA = 0\n }\n this[MAX_AGE] = mA\n trim(this)\n },\n get: function () {\n return this[MAX_AGE]\n },\n enumerable: true\n})\n\n// resize the cache when the lengthCalculator changes.\nObject.defineProperty(LRUCache.prototype, 'lengthCalculator', {\n set: function (lC) {\n if (typeof lC !== 'function') {\n lC = naiveLength\n }\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(function (hit) {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n }, this)\n }\n trim(this)\n },\n get: function () { return this[LENGTH_CALCULATOR] },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'length', {\n get: function () { return this[LENGTH] },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'itemCount', {\n get: function () { return this[LRU_LIST].length },\n enumerable: true\n})\n\nLRUCache.prototype.rforEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this[LRU_LIST].tail; walker !== null;) {\n var prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n}\n\nfunction forEachStep (self, fn, node, thisp) {\n var hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE]) {\n hit = undefined\n }\n }\n if (hit) {\n fn.call(thisp, hit.value, hit.key, self)\n }\n}\n\nLRUCache.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this[LRU_LIST].head; walker !== null;) {\n var next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n}\n\nLRUCache.prototype.keys = function () {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.key\n }, this)\n}\n\nLRUCache.prototype.values = function () {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.value\n }, this)\n}\n\nLRUCache.prototype.reset = function () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(function (hit) {\n this[DISPOSE](hit.key, hit.value)\n }, this)\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n}\n\nLRUCache.prototype.dump = function () {\n return this[LRU_LIST].map(function (hit) {\n if (!isStale(this, hit)) {\n return {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }\n }\n }, this).toArray().filter(function (h) {\n return h\n })\n}\n\nLRUCache.prototype.dumpLru = function () {\n return this[LRU_LIST]\n}\n\n/* istanbul ignore next */\nLRUCache.prototype.inspect = function (n, opts) {\n var str = 'LRUCache {'\n var extras = false\n\n var as = this[ALLOW_STALE]\n if (as) {\n str += '\\n allowStale: true'\n extras = true\n }\n\n var max = this[MAX]\n if (max && max !== Infinity) {\n if (extras) {\n str += ','\n }\n str += '\\n max: ' + util.inspect(max, opts)\n extras = true\n }\n\n var maxAge = this[MAX_AGE]\n if (maxAge) {\n if (extras) {\n str += ','\n }\n str += '\\n maxAge: ' + util.inspect(maxAge, opts)\n extras = true\n }\n\n var lc = this[LENGTH_CALCULATOR]\n if (lc && lc !== naiveLength) {\n if (extras) {\n str += ','\n }\n str += '\\n length: ' + util.inspect(this[LENGTH], opts)\n extras = true\n }\n\n var didFirst = false\n this[LRU_LIST].forEach(function (item) {\n if (didFirst) {\n str += ',\\n '\n } else {\n if (extras) {\n str += ',\\n'\n }\n didFirst = true\n str += '\\n '\n }\n var key = util.inspect(item.key).split('\\n').join('\\n ')\n var val = { value: item.value }\n if (item.maxAge !== maxAge) {\n val.maxAge = item.maxAge\n }\n if (lc !== naiveLength) {\n val.length = item.length\n }\n if (isStale(this, item)) {\n val.stale = true\n }\n\n val = util.inspect(val, opts).split('\\n').join('\\n ')\n str += key + ' => ' + val\n })\n\n if (didFirst || extras) {\n str += '\\n'\n }\n str += '}'\n\n return str\n}\n\nLRUCache.prototype.set = function (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n var now = maxAge ? Date.now() : 0\n var len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n var node = this[CACHE].get(key)\n var item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET]) {\n this[DISPOSE](key, item.value)\n }\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n var hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE]) {\n this[DISPOSE](key, value)\n }\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n}\n\nLRUCache.prototype.has = function (key) {\n if (!this[CACHE].has(key)) return false\n var hit = this[CACHE].get(key).value\n if (isStale(this, hit)) {\n return false\n }\n return true\n}\n\nLRUCache.prototype.get = function (key) {\n return get(this, key, true)\n}\n\nLRUCache.prototype.peek = function (key) {\n return get(this, key, false)\n}\n\nLRUCache.prototype.pop = function () {\n var node = this[LRU_LIST].tail\n if (!node) return null\n del(this, node)\n return node.value\n}\n\nLRUCache.prototype.del = function (key) {\n del(this, this[CACHE].get(key))\n}\n\nLRUCache.prototype.load = function (arr) {\n // reset the cache\n this.reset()\n\n var now = Date.now()\n // A previous serialized cache has the most recent items first\n for (var l = arr.length - 1; l >= 0; l--) {\n var hit = arr[l]\n var expiresAt = hit.e || 0\n if (expiresAt === 0) {\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n } else {\n var maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n}\n\nLRUCache.prototype.prune = function () {\n var self = this\n this[CACHE].forEach(function (value, key) {\n get(self, key, false)\n })\n}\n\nfunction get (self, key, doUse) {\n var node = self[CACHE].get(key)\n if (node) {\n var hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE]) hit = undefined\n } else {\n if (doUse) {\n self[LRU_LIST].unshiftNode(node)\n }\n }\n if (hit) hit = hit.value\n }\n return hit\n}\n\nfunction isStale (self, hit) {\n if (!hit || (!hit.maxAge && !self[MAX_AGE])) {\n return false\n }\n var stale = false\n var diff = Date.now() - hit.now\n if (hit.maxAge) {\n stale = diff > hit.maxAge\n } else {\n stale = self[MAX_AGE] && (diff > self[MAX_AGE])\n }\n return stale\n}\n\nfunction trim (self) {\n if (self[LENGTH] > self[MAX]) {\n for (var walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n var prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nfunction del (self, node) {\n if (node) {\n var hit = node.value\n if (self[DISPOSE]) {\n self[DISPOSE](hit.key, hit.value)\n }\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\n// classy, since V8 prefers predictable objects.\nfunction Entry (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","if (process.env.npm_package_name === 'pseudomap' &&\n process.env.npm_lifecycle_script === 'test')\n process.env.TEST_PSEUDOMAP = 'true'\n\nif (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) {\n module.exports = Map\n} else {\n module.exports = require('./pseudomap')\n}\n","var hasOwnProperty = Object.prototype.hasOwnProperty\n\nmodule.exports = PseudoMap\n\nfunction PseudoMap (set) {\n if (!(this instanceof PseudoMap)) // whyyyyyyy\n throw new TypeError(\"Constructor PseudoMap requires 'new'\")\n\n this.clear()\n\n if (set) {\n if ((set instanceof PseudoMap) ||\n (typeof Map === 'function' && set instanceof Map))\n set.forEach(function (value, key) {\n this.set(key, value)\n }, this)\n else if (Array.isArray(set))\n set.forEach(function (kv) {\n this.set(kv[0], kv[1])\n }, this)\n else\n throw new TypeError('invalid argument')\n }\n}\n\nPseudoMap.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n Object.keys(this._data).forEach(function (k) {\n if (k !== 'size')\n fn.call(thisp, this._data[k].value, this._data[k].key)\n }, this)\n}\n\nPseudoMap.prototype.has = function (k) {\n return !!find(this._data, k)\n}\n\nPseudoMap.prototype.get = function (k) {\n var res = find(this._data, k)\n return res && res.value\n}\n\nPseudoMap.prototype.set = function (k, v) {\n set(this._data, k, v)\n}\n\nPseudoMap.prototype.delete = function (k) {\n var res = find(this._data, k)\n if (res) {\n delete this._data[res._index]\n this._data.size--\n }\n}\n\nPseudoMap.prototype.clear = function () {\n var data = Object.create(null)\n data.size = 0\n\n Object.defineProperty(this, '_data', {\n value: data,\n enumerable: false,\n configurable: true,\n writable: false\n })\n}\n\nObject.defineProperty(PseudoMap.prototype, 'size', {\n get: function () {\n return this._data.size\n },\n set: function (n) {},\n enumerable: true,\n configurable: true\n})\n\nPseudoMap.prototype.values =\nPseudoMap.prototype.keys =\nPseudoMap.prototype.entries = function () {\n throw new Error('iterators are not implemented in this version')\n}\n\n// Either identical, or both NaN\nfunction same (a, b) {\n return a === b || a !== a && b !== b\n}\n\nfunction Entry (k, v, i) {\n this.key = k\n this.value = v\n this._index = i\n}\n\nfunction find (data, k) {\n for (var i = 0, s = '_' + k, key = s;\n hasOwnProperty.call(data, key);\n key = s + i++) {\n if (same(data[key].key, k))\n return data[key]\n }\n}\n\nfunction set (data, k, v) {\n for (var i = 0, s = '_' + k, key = s;\n hasOwnProperty.call(data, key);\n key = s + i++) {\n if (same(data[key].key, k)) {\n data[key].value = v\n return\n }\n }\n data.size++\n data[key] = new Entry(k, v, key)\n}\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","module.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_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].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport default class EventEmitter {\n listenersMap: Map> = new Map();\n\n addListener>(\n event: Event,\n listener: (...$ElementType) => any,\n ): void {\n const listeners = this.listenersMap.get(event);\n if (listeners === undefined) {\n this.listenersMap.set(event, [listener]);\n } else {\n const index = listeners.indexOf(listener);\n if (index < 0) {\n listeners.push(listener);\n }\n }\n }\n\n emit>(\n event: Event,\n ...args: $ElementType\n ): void {\n const listeners = this.listenersMap.get(event);\n if (listeners !== undefined) {\n if (listeners.length === 1) {\n // No need to clone or try/catch\n const listener = listeners[0];\n listener.apply(null, args);\n } else {\n let didThrow = false;\n let caughtError = null;\n\n const clonedListeners = Array.from(listeners);\n for (let i = 0; i < clonedListeners.length; i++) {\n const listener = clonedListeners[i];\n try {\n listener.apply(null, args);\n } catch (error) {\n if (caughtError === null) {\n didThrow = true;\n caughtError = error;\n }\n }\n }\n\n if (didThrow) {\n throw caughtError;\n }\n }\n }\n }\n\n removeAllListeners(): void {\n this.listenersMap.clear();\n }\n\n removeListener(event: $Keys, listener: Function): void {\n const listeners = this.listenersMap.get(event);\n if (listeners !== undefined) {\n const index = listeners.indexOf(listener);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport const CHROME_WEBSTORE_EXTENSION_ID = 'fmkadmapgofadopljbjfkapdkoienihi';\nexport const INTERNAL_EXTENSION_ID = 'dnjnjgbfilfphmojnmhliehogmojhclc';\nexport const LOCAL_EXTENSION_ID = 'ikiahnapldjmdmpkmfhjdjilojjhgcbf';\n\n// Flip this flag to true to enable verbose console debug logging.\nexport const __DEBUG__ = false;\n\n// Flip this flag to true to enable performance.mark() and performance.measure() timings.\nexport const __PERFORMANCE_PROFILE__ = false;\n\nexport const TREE_OPERATION_ADD = 1;\nexport const TREE_OPERATION_REMOVE = 2;\nexport const TREE_OPERATION_REORDER_CHILDREN = 3;\nexport const TREE_OPERATION_UPDATE_TREE_BASE_DURATION = 4;\nexport const TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS = 5;\nexport const TREE_OPERATION_REMOVE_ROOT = 6;\nexport const TREE_OPERATION_SET_SUBTREE_MODE = 7;\n\nexport const PROFILING_FLAG_BASIC_SUPPORT = 0b01;\nexport const PROFILING_FLAG_TIMELINE_SUPPORT = 0b10;\n\nexport const LOCAL_STORAGE_DEFAULT_TAB_KEY = 'React::DevTools::defaultTab';\n\nexport const LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY =\n 'React::DevTools::componentFilters';\n\nexport const SESSION_STORAGE_LAST_SELECTION_KEY =\n 'React::DevTools::lastSelection';\n\nexport const LOCAL_STORAGE_OPEN_IN_EDITOR_URL =\n 'React::DevTools::openInEditorUrl';\n\nexport const LOCAL_STORAGE_OPEN_IN_EDITOR_URL_PRESET =\n 'React::DevTools::openInEditorUrlPreset';\n\nexport const LOCAL_STORAGE_PARSE_HOOK_NAMES_KEY =\n 'React::DevTools::parseHookNames';\n\nexport const SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY =\n 'React::DevTools::recordChangeDescriptions';\n\nexport const SESSION_STORAGE_RELOAD_AND_PROFILE_KEY =\n 'React::DevTools::reloadAndProfile';\n\nexport const LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS =\n 'React::DevTools::breakOnConsoleErrors';\n\nexport const LOCAL_STORAGE_BROWSER_THEME = 'React::DevTools::theme';\n\nexport const LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY =\n 'React::DevTools::appendComponentStack';\n\nexport const LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY =\n 'React::DevTools::showInlineWarningsAndErrors';\n\nexport const LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY =\n 'React::DevTools::traceUpdatesEnabled';\n\nexport const LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE =\n 'React::DevTools::hideConsoleLogsInStrictMode';\n\nexport const LOCAL_STORAGE_SUPPORTS_PROFILING_KEY =\n 'React::DevTools::supportsProfiling';\n\nexport const PROFILER_EXPORT_VERSION = 5;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport function localStorageGetItem(key: string): any {\n try {\n return localStorage.getItem(key);\n } catch (error) {\n return null;\n }\n}\n\nexport function localStorageRemoveItem(key: string): void {\n try {\n localStorage.removeItem(key);\n } catch (error) {}\n}\n\nexport function localStorageSetItem(key: string, value: any): void {\n try {\n return localStorage.setItem(key, value);\n } catch (error) {}\n}\n\nexport function sessionStorageGetItem(key: string): any {\n try {\n return sessionStorage.getItem(key);\n } catch (error) {\n return null;\n }\n}\n\nexport function sessionStorageRemoveItem(key: string): void {\n try {\n sessionStorage.removeItem(key);\n } catch (error) {}\n}\n\nexport function sessionStorageSetItem(key: string, value: any): void {\n try {\n return sessionStorage.setItem(key, value);\n } catch (error) {}\n}\n","\n\nvar simpleIsEqual = function simpleIsEqual(a, b) {\n return a === b;\n};\n\nexport default function (resultFn) {\n var isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : simpleIsEqual;\n\n var lastThis = void 0;\n var lastArgs = [];\n var lastResult = void 0;\n var calledOnce = false;\n\n var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n return isEqual(newArg, lastArgs[index]);\n };\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n return lastResult;\n }\n\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n lastResult = resultFn.apply(this, newArgs);\n return lastResult;\n };\n\n return result;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport interface Rect {\n bottom: number;\n height: number;\n left: number;\n right: number;\n top: number;\n width: number;\n}\n\n// Get the window object for the document that a node belongs to,\n// or return null if it cannot be found (node not attached to DOM,\n// etc).\nexport function getOwnerWindow(node: HTMLElement): typeof window | null {\n if (!node.ownerDocument) {\n return null;\n }\n return node.ownerDocument.defaultView;\n}\n\n// Get the iframe containing a node, or return null if it cannot\n// be found (node not within iframe, etc).\nexport function getOwnerIframe(node: HTMLElement): HTMLElement | null {\n const nodeWindow = getOwnerWindow(node);\n if (nodeWindow) {\n return nodeWindow.frameElement;\n }\n return null;\n}\n\n// Get a bounding client rect for a node, with an\n// offset added to compensate for its border.\nexport function getBoundingClientRectWithBorderOffset(node: HTMLElement): Rect {\n const dimensions = getElementDimensions(node);\n return mergeRectOffsets([\n node.getBoundingClientRect(),\n {\n top: dimensions.borderTop,\n left: dimensions.borderLeft,\n bottom: dimensions.borderBottom,\n right: dimensions.borderRight,\n // This width and height won't get used by mergeRectOffsets (since this\n // is not the first rect in the array), but we set them so that this\n // object type checks as a ClientRect.\n width: 0,\n height: 0,\n },\n ]);\n}\n\n// Add together the top, left, bottom, and right properties of\n// each ClientRect, but keep the width and height of the first one.\nexport function mergeRectOffsets(rects: Array): Rect {\n return rects.reduce((previousRect, rect) => {\n if (previousRect == null) {\n return rect;\n }\n\n return {\n top: previousRect.top + rect.top,\n left: previousRect.left + rect.left,\n width: previousRect.width,\n height: previousRect.height,\n bottom: previousRect.bottom + rect.bottom,\n right: previousRect.right + rect.right,\n };\n });\n}\n\n// Calculate a boundingClientRect for a node relative to boundaryWindow,\n// taking into account any offsets caused by intermediate iframes.\nexport function getNestedBoundingClientRect(\n node: HTMLElement,\n boundaryWindow: typeof window,\n): Rect {\n const ownerIframe = getOwnerIframe(node);\n if (ownerIframe && ownerIframe !== boundaryWindow) {\n const rects: Array = [node.getBoundingClientRect()];\n let currentIframe: null | HTMLElement = ownerIframe;\n let onlyOneMore = false;\n while (currentIframe) {\n const rect = getBoundingClientRectWithBorderOffset(currentIframe);\n rects.push(rect);\n currentIframe = getOwnerIframe(currentIframe);\n\n if (onlyOneMore) {\n break;\n }\n // We don't want to calculate iframe offsets upwards beyond\n // the iframe containing the boundaryWindow, but we\n // need to calculate the offset relative to the boundaryWindow.\n if (currentIframe && getOwnerWindow(currentIframe) === boundaryWindow) {\n onlyOneMore = true;\n }\n }\n\n return mergeRectOffsets(rects);\n } else {\n return node.getBoundingClientRect();\n }\n}\n\nexport function getElementDimensions(domElement: Element): {\n borderBottom: number,\n borderLeft: number,\n borderRight: number,\n borderTop: number,\n marginBottom: number,\n marginLeft: number,\n marginRight: number,\n marginTop: number,\n paddingBottom: number,\n paddingLeft: number,\n paddingRight: number,\n paddingTop: number,\n} {\n const calculatedStyle = window.getComputedStyle(domElement);\n return {\n borderLeft: parseInt(calculatedStyle.borderLeftWidth, 10),\n borderRight: parseInt(calculatedStyle.borderRightWidth, 10),\n borderTop: parseInt(calculatedStyle.borderTopWidth, 10),\n borderBottom: parseInt(calculatedStyle.borderBottomWidth, 10),\n marginLeft: parseInt(calculatedStyle.marginLeft, 10),\n marginRight: parseInt(calculatedStyle.marginRight, 10),\n marginTop: parseInt(calculatedStyle.marginTop, 10),\n marginBottom: parseInt(calculatedStyle.marginBottom, 10),\n paddingLeft: parseInt(calculatedStyle.paddingLeft, 10),\n paddingRight: parseInt(calculatedStyle.paddingRight, 10),\n paddingTop: parseInt(calculatedStyle.paddingTop, 10),\n paddingBottom: parseInt(calculatedStyle.paddingBottom, 10),\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {getElementDimensions, getNestedBoundingClientRect} from '../utils';\n\nimport type {Rect} from '../utils';\nimport type Agent from 'react-devtools-shared/src/backend/agent';\n\ntype Box = {top: number, left: number, width: number, height: number};\n\nconst assign = Object.assign;\n\n// Note that the Overlay components are not affected by the active Theme,\n// because they highlight elements in the main Chrome window (outside of devtools).\n// The colors below were chosen to roughly match those used by Chrome devtools.\n\nclass OverlayRect {\n node: HTMLElement;\n border: HTMLElement;\n padding: HTMLElement;\n content: HTMLElement;\n\n constructor(doc: Document, container: HTMLElement) {\n this.node = doc.createElement('div');\n this.border = doc.createElement('div');\n this.padding = doc.createElement('div');\n this.content = doc.createElement('div');\n\n this.border.style.borderColor = overlayStyles.border;\n this.padding.style.borderColor = overlayStyles.padding;\n this.content.style.backgroundColor = overlayStyles.background;\n\n assign(this.node.style, {\n borderColor: overlayStyles.margin,\n pointerEvents: 'none',\n position: 'fixed',\n });\n\n this.node.style.zIndex = '10000000';\n\n this.node.appendChild(this.border);\n this.border.appendChild(this.padding);\n this.padding.appendChild(this.content);\n container.appendChild(this.node);\n }\n\n remove() {\n if (this.node.parentNode) {\n this.node.parentNode.removeChild(this.node);\n }\n }\n\n update(box: Rect, dims: any) {\n boxWrap(dims, 'margin', this.node);\n boxWrap(dims, 'border', this.border);\n boxWrap(dims, 'padding', this.padding);\n\n assign(this.content.style, {\n height:\n box.height -\n dims.borderTop -\n dims.borderBottom -\n dims.paddingTop -\n dims.paddingBottom +\n 'px',\n width:\n box.width -\n dims.borderLeft -\n dims.borderRight -\n dims.paddingLeft -\n dims.paddingRight +\n 'px',\n });\n\n assign(this.node.style, {\n top: box.top - dims.marginTop + 'px',\n left: box.left - dims.marginLeft + 'px',\n });\n }\n}\n\nclass OverlayTip {\n tip: HTMLElement;\n nameSpan: HTMLElement;\n dimSpan: HTMLElement;\n\n constructor(doc: Document, container: HTMLElement) {\n this.tip = doc.createElement('div');\n assign(this.tip.style, {\n display: 'flex',\n flexFlow: 'row nowrap',\n backgroundColor: '#333740',\n borderRadius: '2px',\n fontFamily:\n '\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace',\n fontWeight: 'bold',\n padding: '3px 5px',\n pointerEvents: 'none',\n position: 'fixed',\n fontSize: '12px',\n whiteSpace: 'nowrap',\n });\n\n this.nameSpan = doc.createElement('span');\n this.tip.appendChild(this.nameSpan);\n assign(this.nameSpan.style, {\n color: '#ee78e6',\n borderRight: '1px solid #aaaaaa',\n paddingRight: '0.5rem',\n marginRight: '0.5rem',\n });\n this.dimSpan = doc.createElement('span');\n this.tip.appendChild(this.dimSpan);\n assign(this.dimSpan.style, {\n color: '#d7d7d7',\n });\n\n this.tip.style.zIndex = '10000000';\n container.appendChild(this.tip);\n }\n\n remove() {\n if (this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip);\n }\n }\n\n updateText(name: string, width: number, height: number) {\n this.nameSpan.textContent = name;\n this.dimSpan.textContent =\n Math.round(width) + 'px × ' + Math.round(height) + 'px';\n }\n\n updatePosition(dims: Box, bounds: Box) {\n const tipRect = this.tip.getBoundingClientRect();\n const tipPos = findTipPos(dims, bounds, {\n width: tipRect.width,\n height: tipRect.height,\n });\n assign(this.tip.style, tipPos.style);\n }\n}\n\nexport default class Overlay {\n window: any;\n tipBoundsWindow: any;\n container: HTMLElement;\n tip: OverlayTip;\n rects: Array;\n agent: Agent;\n\n constructor(agent: Agent) {\n // Find the root window, because overlays are positioned relative to it.\n const currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n this.window = currentWindow;\n\n // When opened in shells/dev, the tooltip should be bound by the app iframe, not by the topmost window.\n const tipBoundsWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n this.tipBoundsWindow = tipBoundsWindow;\n\n const doc = currentWindow.document;\n this.container = doc.createElement('div');\n this.container.style.zIndex = '10000000';\n\n this.tip = new OverlayTip(doc, this.container);\n this.rects = [];\n\n this.agent = agent;\n\n doc.body.appendChild(this.container);\n }\n\n remove() {\n this.tip.remove();\n this.rects.forEach(rect => {\n rect.remove();\n });\n this.rects.length = 0;\n if (this.container.parentNode) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n\n inspect(nodes: Array, name?: ?string) {\n // We can't get the size of text nodes or comment nodes. React as of v15\n // heavily uses comment nodes to delimit text.\n const elements = nodes.filter(node => node.nodeType === Node.ELEMENT_NODE);\n\n while (this.rects.length > elements.length) {\n const rect = this.rects.pop();\n rect.remove();\n }\n if (elements.length === 0) {\n return;\n }\n\n while (this.rects.length < elements.length) {\n this.rects.push(new OverlayRect(this.window.document, this.container));\n }\n\n const outerBox = {\n top: Number.POSITIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n left: Number.POSITIVE_INFINITY,\n };\n elements.forEach((element, index) => {\n const box = getNestedBoundingClientRect(element, this.window);\n const dims = getElementDimensions(element);\n\n outerBox.top = Math.min(outerBox.top, box.top - dims.marginTop);\n outerBox.right = Math.max(\n outerBox.right,\n box.left + box.width + dims.marginRight,\n );\n outerBox.bottom = Math.max(\n outerBox.bottom,\n box.top + box.height + dims.marginBottom,\n );\n outerBox.left = Math.min(outerBox.left, box.left - dims.marginLeft);\n\n const rect = this.rects[index];\n rect.update(box, dims);\n });\n\n if (!name) {\n name = elements[0].nodeName.toLowerCase();\n\n const node = elements[0];\n const rendererInterface =\n this.agent.getBestMatchingRendererInterface(node);\n if (rendererInterface) {\n const id = rendererInterface.getFiberIDForNative(node, true);\n if (id) {\n const ownerName = rendererInterface.getDisplayNameForFiberID(\n id,\n true,\n );\n if (ownerName) {\n name += ' (in ' + ownerName + ')';\n }\n }\n }\n }\n\n this.tip.updateText(\n name,\n outerBox.right - outerBox.left,\n outerBox.bottom - outerBox.top,\n );\n const tipBounds = getNestedBoundingClientRect(\n this.tipBoundsWindow.document.documentElement,\n this.window,\n );\n\n this.tip.updatePosition(\n {\n top: outerBox.top,\n left: outerBox.left,\n height: outerBox.bottom - outerBox.top,\n width: outerBox.right - outerBox.left,\n },\n {\n top: tipBounds.top + this.tipBoundsWindow.scrollY,\n left: tipBounds.left + this.tipBoundsWindow.scrollX,\n height: this.tipBoundsWindow.innerHeight,\n width: this.tipBoundsWindow.innerWidth,\n },\n );\n }\n}\n\nfunction findTipPos(\n dims: Box,\n bounds: Box,\n tipSize: {height: number, width: number},\n) {\n const tipHeight = Math.max(tipSize.height, 20);\n const tipWidth = Math.max(tipSize.width, 60);\n const margin = 5;\n\n let top: number | string;\n if (dims.top + dims.height + tipHeight <= bounds.top + bounds.height) {\n if (dims.top + dims.height < bounds.top + 0) {\n top = bounds.top + margin;\n } else {\n top = dims.top + dims.height + margin;\n }\n } else if (dims.top - tipHeight <= bounds.top + bounds.height) {\n if (dims.top - tipHeight - margin < bounds.top + margin) {\n top = bounds.top + margin;\n } else {\n top = dims.top - tipHeight - margin;\n }\n } else {\n top = bounds.top + bounds.height - tipHeight - margin;\n }\n\n let left: number | string = dims.left + margin;\n if (dims.left < bounds.left) {\n left = bounds.left + margin;\n }\n if (dims.left + tipWidth > bounds.left + bounds.width) {\n left = bounds.left + bounds.width - tipWidth - margin;\n }\n\n top += 'px';\n left += 'px';\n return {\n style: {top, left},\n };\n}\n\nfunction boxWrap(dims: any, what: string, node: HTMLElement) {\n assign(node.style, {\n borderTopWidth: dims[what + 'Top'] + 'px',\n borderLeftWidth: dims[what + 'Left'] + 'px',\n borderRightWidth: dims[what + 'Right'] + 'px',\n borderBottomWidth: dims[what + 'Bottom'] + 'px',\n borderStyle: 'solid',\n });\n}\n\nconst overlayStyles = {\n background: 'rgba(120, 170, 210, 0.7)',\n padding: 'rgba(77, 200, 0, 0.3)',\n margin: 'rgba(255, 155, 0, 0.3)',\n border: 'rgba(255, 200, 50, 0.3)',\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type Agent from 'react-devtools-shared/src/backend/agent';\n\nimport Overlay from './Overlay';\n\nconst SHOW_DURATION = 2000;\n\nlet timeoutID: TimeoutID | null = null;\nlet overlay: Overlay | null = null;\n\nexport function hideOverlay(agent: Agent) {\n if (window.document == null) {\n agent.emit('hideNativeHighlight');\n return;\n }\n timeoutID = null;\n\n if (overlay !== null) {\n overlay.remove();\n overlay = null;\n }\n}\n\nexport function showOverlay(\n elements: Array | null,\n componentName: string | null,\n agent: Agent,\n hideAfterTimeout: boolean,\n) {\n if (window.document == null) {\n if (elements != null && elements[0] != null) {\n agent.emit('showNativeHighlight', elements[0]);\n }\n return;\n }\n\n if (timeoutID !== null) {\n clearTimeout(timeoutID);\n }\n\n if (elements == null) {\n return;\n }\n\n if (overlay === null) {\n overlay = new Overlay(agent);\n }\n\n overlay.inspect(elements, componentName);\n\n if (hideAfterTimeout) {\n timeoutID = setTimeout(() => hideOverlay(agent), SHOW_DURATION);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport {hideOverlay, showOverlay} from './Highlighter';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\n\n// This plug-in provides in-page highlighting of the selected element.\n// It is used by the browser extension and the standalone DevTools shell (when connected to a browser).\n// It is not currently the mechanism used to highlight React Native views.\n// That is done by the React Native Inspector component.\n\nlet iframesListeningTo: Set = new Set();\n\nexport default function setupHighlighter(\n bridge: BackendBridge,\n agent: Agent,\n): void {\n bridge.addListener(\n 'clearNativeElementHighlight',\n clearNativeElementHighlight,\n );\n bridge.addListener('highlightNativeElement', highlightNativeElement);\n bridge.addListener('shutdown', stopInspectingNative);\n bridge.addListener('startInspectingNative', startInspectingNative);\n bridge.addListener('stopInspectingNative', stopInspectingNative);\n\n function startInspectingNative() {\n registerListenersOnWindow(window);\n }\n\n function registerListenersOnWindow(window: any) {\n // This plug-in may run in non-DOM environments (e.g. React Native).\n if (window && typeof window.addEventListener === 'function') {\n window.addEventListener('click', onClick, true);\n window.addEventListener('mousedown', onMouseEvent, true);\n window.addEventListener('mouseover', onMouseEvent, true);\n window.addEventListener('mouseup', onMouseEvent, true);\n window.addEventListener('pointerdown', onPointerDown, true);\n window.addEventListener('pointermove', onPointerMove, true);\n window.addEventListener('pointerup', onPointerUp, true);\n } else {\n agent.emit('startInspectingNative');\n }\n }\n\n function stopInspectingNative() {\n hideOverlay(agent);\n removeListenersOnWindow(window);\n iframesListeningTo.forEach(function (frame) {\n try {\n removeListenersOnWindow(frame.contentWindow);\n } catch (error) {\n // This can error when the iframe is on a cross-origin.\n }\n });\n iframesListeningTo = new Set();\n }\n\n function removeListenersOnWindow(window: any) {\n // This plug-in may run in non-DOM environments (e.g. React Native).\n if (window && typeof window.removeEventListener === 'function') {\n window.removeEventListener('click', onClick, true);\n window.removeEventListener('mousedown', onMouseEvent, true);\n window.removeEventListener('mouseover', onMouseEvent, true);\n window.removeEventListener('mouseup', onMouseEvent, true);\n window.removeEventListener('pointerdown', onPointerDown, true);\n window.removeEventListener('pointermove', onPointerMove, true);\n window.removeEventListener('pointerup', onPointerUp, true);\n } else {\n agent.emit('stopInspectingNative');\n }\n }\n\n function clearNativeElementHighlight() {\n hideOverlay(agent);\n }\n\n function highlightNativeElement({\n displayName,\n hideAfterTimeout,\n id,\n openNativeElementsPanel,\n rendererID,\n scrollIntoView,\n }: {\n displayName: string | null,\n hideAfterTimeout: boolean,\n id: number,\n openNativeElementsPanel: boolean,\n rendererID: number,\n scrollIntoView: boolean,\n ...\n }) {\n const renderer = agent.rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n\n hideOverlay(agent);\n return;\n }\n\n // In some cases fiber may already be unmounted\n if (!renderer.hasFiberWithId(id)) {\n hideOverlay(agent);\n return;\n }\n\n const nodes: ?Array = (renderer.findNativeNodesForFiberID(\n id,\n ): any);\n\n if (nodes != null && nodes[0] != null) {\n const node = nodes[0];\n // $FlowFixMe[method-unbinding]\n if (scrollIntoView && typeof node.scrollIntoView === 'function') {\n // If the node isn't visible show it before highlighting it.\n // We may want to reconsider this; it might be a little disruptive.\n node.scrollIntoView({block: 'nearest', inline: 'nearest'});\n }\n\n showOverlay(nodes, displayName, agent, hideAfterTimeout);\n\n if (openNativeElementsPanel) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0 = node;\n bridge.send('syncSelectionToNativeElementsPanel');\n }\n } else {\n hideOverlay(agent);\n }\n }\n\n function onClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n stopInspectingNative();\n\n bridge.send('stopInspectingNative', true);\n }\n\n function onMouseEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n function onPointerDown(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n selectFiberForNode(getEventTarget(event));\n }\n\n let lastHoveredNode: HTMLElement | null = null;\n function onPointerMove(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const target: HTMLElement = getEventTarget(event);\n if (lastHoveredNode === target) return;\n lastHoveredNode = target;\n\n if (target.tagName === 'IFRAME') {\n const iframe: HTMLIFrameElement = (target: any);\n try {\n if (!iframesListeningTo.has(iframe)) {\n const window = iframe.contentWindow;\n registerListenersOnWindow(window);\n iframesListeningTo.add(iframe);\n }\n } catch (error) {\n // This can error when the iframe is on a cross-origin.\n }\n }\n\n // Don't pass the name explicitly.\n // It will be inferred from DOM tag and Fiber owner.\n showOverlay([target], null, agent, false);\n\n selectFiberForNode(target);\n }\n\n function onPointerUp(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n const selectFiberForNode = throttle(\n memoize((node: HTMLElement) => {\n const id = agent.getIDForNode(node);\n if (id !== null) {\n bridge.send('selectFiber', id);\n }\n }),\n 200,\n // Don't change the selection in the very first 200ms\n // because those are usually unintentional as you lift the cursor.\n {leading: false},\n );\n\n function getEventTarget(event: MouseEvent): HTMLElement {\n if (event.composed) {\n return (event.composedPath()[0]: any);\n }\n\n return (event.target: any);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {Data} from './index';\nimport type {Rect} from '../utils';\nimport type {NativeType} from '../../types';\nimport type Agent from '../../agent';\n\nconst OUTLINE_COLOR = '#f0f0f0';\n\n// Note these colors are in sync with DevTools Profiler chart colors.\nconst COLORS = [\n '#37afa9',\n '#63b19e',\n '#80b393',\n '#97b488',\n '#abb67d',\n '#beb771',\n '#cfb965',\n '#dfba57',\n '#efbb49',\n '#febc38',\n];\n\nlet canvas: HTMLCanvasElement | null = null;\n\nexport function draw(nodeToData: Map, agent: Agent): void {\n if (window.document == null) {\n const nodesToDraw = [];\n iterateNodes(nodeToData, (_, color, node) => {\n nodesToDraw.push({node, color});\n });\n\n agent.emit('drawTraceUpdates', nodesToDraw);\n return;\n }\n\n if (canvas === null) {\n initialize();\n }\n\n const canvasFlow: HTMLCanvasElement = ((canvas: any): HTMLCanvasElement);\n canvasFlow.width = window.innerWidth;\n canvasFlow.height = window.innerHeight;\n\n const context = canvasFlow.getContext('2d');\n context.clearRect(0, 0, canvasFlow.width, canvasFlow.height);\n iterateNodes(nodeToData, (rect, color) => {\n if (rect !== null) {\n drawBorder(context, rect, color);\n }\n });\n}\n\nfunction iterateNodes(\n nodeToData: Map,\n execute: (rect: Rect | null, color: string, node: NativeType) => void,\n) {\n nodeToData.forEach(({count, rect}, node) => {\n const colorIndex = Math.min(COLORS.length - 1, count - 1);\n const color = COLORS[colorIndex];\n execute(rect, color, node);\n });\n}\n\nfunction drawBorder(\n context: CanvasRenderingContext2D,\n rect: Rect,\n color: string,\n): void {\n const {height, left, top, width} = rect;\n\n // outline\n context.lineWidth = 1;\n context.strokeStyle = OUTLINE_COLOR;\n\n context.strokeRect(left - 1, top - 1, width + 2, height + 2);\n\n // inset\n context.lineWidth = 1;\n context.strokeStyle = OUTLINE_COLOR;\n context.strokeRect(left + 1, top + 1, width - 1, height - 1);\n context.strokeStyle = color;\n\n context.setLineDash([0]);\n\n // border\n context.lineWidth = 1;\n context.strokeRect(left, top, width - 1, height - 1);\n\n context.setLineDash([0]);\n}\n\nexport function destroy(agent: Agent): void {\n if (window.document == null) {\n agent.emit('disableTraceUpdates');\n return;\n }\n\n if (canvas !== null) {\n if (canvas.parentNode != null) {\n canvas.parentNode.removeChild(canvas);\n }\n canvas = null;\n }\n}\n\nfunction initialize(): void {\n canvas = window.document.createElement('canvas');\n canvas.style.cssText = `\n xx-background-color: red;\n xx-opacity: 0.5;\n bottom: 0;\n left: 0;\n pointer-events: none;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 1000000000;\n `;\n\n const root = window.document.documentElement;\n root.insertBefore(canvas, root.firstChild);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport {destroy as destroyCanvas, draw} from './canvas';\nimport {getNestedBoundingClientRect} from '../utils';\n\nimport type {NativeType} from '../../types';\nimport type {Rect} from '../utils';\n\n// How long the rect should be shown for?\nconst DISPLAY_DURATION = 250;\n\n// What's the longest we are willing to show the overlay for?\n// This can be important if we're getting a flurry of events (e.g. scroll update).\nconst MAX_DISPLAY_DURATION = 3000;\n\n// How long should a rect be considered valid for?\nconst REMEASUREMENT_AFTER_DURATION = 250;\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n // $FlowFixMe[method-unbinding]\n typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\nexport type Data = {\n count: number,\n expirationTime: number,\n lastMeasuredAt: number,\n rect: Rect | null,\n};\n\nconst nodeToData: Map = new Map();\n\nlet agent: Agent = ((null: any): Agent);\nlet drawAnimationFrameID: AnimationFrameID | null = null;\nlet isEnabled: boolean = false;\nlet redrawTimeoutID: TimeoutID | null = null;\n\nexport function initialize(injectedAgent: Agent): void {\n agent = injectedAgent;\n agent.addListener('traceUpdates', traceUpdates);\n}\n\nexport function toggleEnabled(value: boolean): void {\n isEnabled = value;\n\n if (!isEnabled) {\n nodeToData.clear();\n\n if (drawAnimationFrameID !== null) {\n cancelAnimationFrame(drawAnimationFrameID);\n drawAnimationFrameID = null;\n }\n\n if (redrawTimeoutID !== null) {\n clearTimeout(redrawTimeoutID);\n redrawTimeoutID = null;\n }\n\n destroyCanvas(agent);\n }\n}\n\nfunction traceUpdates(nodes: Set): void {\n if (!isEnabled) {\n return;\n }\n\n nodes.forEach(node => {\n const data = nodeToData.get(node);\n const now = getCurrentTime();\n\n let lastMeasuredAt = data != null ? data.lastMeasuredAt : 0;\n let rect = data != null ? data.rect : null;\n if (rect === null || lastMeasuredAt + REMEASUREMENT_AFTER_DURATION < now) {\n lastMeasuredAt = now;\n rect = measureNode(node);\n }\n\n nodeToData.set(node, {\n count: data != null ? data.count + 1 : 1,\n expirationTime:\n data != null\n ? Math.min(\n now + MAX_DISPLAY_DURATION,\n data.expirationTime + DISPLAY_DURATION,\n )\n : now + DISPLAY_DURATION,\n lastMeasuredAt,\n rect,\n });\n });\n\n if (redrawTimeoutID !== null) {\n clearTimeout(redrawTimeoutID);\n redrawTimeoutID = null;\n }\n\n if (drawAnimationFrameID === null) {\n drawAnimationFrameID = requestAnimationFrame(prepareToDraw);\n }\n}\n\nfunction prepareToDraw(): void {\n drawAnimationFrameID = null;\n redrawTimeoutID = null;\n\n const now = getCurrentTime();\n let earliestExpiration = Number.MAX_VALUE;\n\n // Remove any items that have already expired.\n nodeToData.forEach((data, node) => {\n if (data.expirationTime < now) {\n nodeToData.delete(node);\n } else {\n earliestExpiration = Math.min(earliestExpiration, data.expirationTime);\n }\n });\n\n draw(nodeToData, agent);\n\n if (earliestExpiration !== Number.MAX_VALUE) {\n redrawTimeoutID = setTimeout(prepareToDraw, earliestExpiration - now);\n }\n}\n\nfunction measureNode(node: Object): Rect | null {\n if (!node || typeof node.getBoundingClientRect !== 'function') {\n return null;\n }\n\n const currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n\n return getNestedBoundingClientRect(node, currentWindow);\n}\n","/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\nconst semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nconst validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n\n// The Symbol used to tag the ReactElement-like types.\nexport const REACT_ELEMENT_TYPE: symbol = Symbol.for('react.element');\nexport const REACT_PORTAL_TYPE: symbol = Symbol.for('react.portal');\nexport const REACT_FRAGMENT_TYPE: symbol = Symbol.for('react.fragment');\nexport const REACT_STRICT_MODE_TYPE: symbol = Symbol.for('react.strict_mode');\nexport const REACT_PROFILER_TYPE: symbol = Symbol.for('react.profiler');\nexport const REACT_PROVIDER_TYPE: symbol = Symbol.for('react.provider');\nexport const REACT_CONTEXT_TYPE: symbol = Symbol.for('react.context');\nexport const REACT_SERVER_CONTEXT_TYPE: symbol = Symbol.for(\n 'react.server_context',\n);\nexport const REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref');\nexport const REACT_SUSPENSE_TYPE: symbol = Symbol.for('react.suspense');\nexport const REACT_SUSPENSE_LIST_TYPE: symbol = Symbol.for(\n 'react.suspense_list',\n);\nexport const REACT_MEMO_TYPE: symbol = Symbol.for('react.memo');\nexport const REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy');\nexport const REACT_SCOPE_TYPE: symbol = Symbol.for('react.scope');\nexport const REACT_DEBUG_TRACING_MODE_TYPE: symbol = Symbol.for(\n 'react.debug_trace_mode',\n);\nexport const REACT_OFFSCREEN_TYPE: symbol = Symbol.for('react.offscreen');\nexport const REACT_LEGACY_HIDDEN_TYPE: symbol = Symbol.for(\n 'react.legacy_hidden',\n);\nexport const REACT_CACHE_TYPE: symbol = Symbol.for('react.cache');\nexport const REACT_TRACING_MARKER_TYPE: symbol = Symbol.for(\n 'react.tracing_marker',\n);\nexport const REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED: symbol = Symbol.for(\n 'react.default_value',\n);\n\nexport const REACT_MEMO_CACHE_SENTINEL: symbol = Symbol.for(\n 'react.memo_cache_sentinel',\n);\n\nexport const REACT_POSTPONE_TYPE: symbol = Symbol.for('react.postpone');\n\nconst MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nconst FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nexport function getIteratorFn(maybeIterable: ?any): ?() => ?Iterator {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n const maybeIterator =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n return null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/**\n * WARNING:\n * This file contains types that are designed for React DevTools UI and how it interacts with the backend.\n * They might be used in different versions of DevTools backends.\n * Be mindful of backwards compatibility when making changes.\n */\n\nimport type {Source} from 'shared/ReactElementType';\nimport type {\n Dehydrated,\n Unserializable,\n} from 'react-devtools-shared/src/hydration';\n\nexport type BrowserTheme = 'dark' | 'light';\n\nexport type Wall = {\n // `listen` returns the \"unlisten\" function.\n listen: (fn: Function) => Function,\n send: (event: string, payload: any, transferable?: Array) => void,\n};\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new element types are added, use new numbers rather than re-ordering existing ones.\n//\n// Changing these types is also a backwards breaking change for the standalone shell,\n// since the frontend and backend must share the same values-\n// and the backend is embedded in certain environments (like React Native).\nexport const ElementTypeClass = 1;\nexport const ElementTypeContext = 2;\nexport const ElementTypeFunction = 5;\nexport const ElementTypeForwardRef = 6;\nexport const ElementTypeHostComponent = 7;\nexport const ElementTypeMemo = 8;\nexport const ElementTypeOtherOrUnknown = 9;\nexport const ElementTypeProfiler = 10;\nexport const ElementTypeRoot = 11;\nexport const ElementTypeSuspense = 12;\nexport const ElementTypeSuspenseList = 13;\nexport const ElementTypeTracingMarker = 14;\n\n// Different types of elements displayed in the Elements tree.\n// These types may be used to visually distinguish types,\n// or to enable/disable certain functionality.\nexport type ElementType = 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new filter types are added, use new numbers rather than re-ordering existing ones.\nexport const ComponentFilterElementType = 1;\nexport const ComponentFilterDisplayName = 2;\nexport const ComponentFilterLocation = 3;\nexport const ComponentFilterHOC = 4;\n\nexport type ComponentFilterType = 1 | 2 | 3 | 4;\n\n// Hide all elements of types in this Set.\n// We hide host components only by default.\nexport type ElementTypeComponentFilter = {\n isEnabled: boolean,\n type: 1,\n value: ElementType,\n};\n\n// Hide all elements with displayNames or paths matching one or more of the RegExps in this Set.\n// Path filters are only used when elements include debug source location.\nexport type RegExpComponentFilter = {\n isEnabled: boolean,\n isValid: boolean,\n type: 2 | 3,\n value: string,\n};\n\nexport type BooleanComponentFilter = {\n isEnabled: boolean,\n isValid: boolean,\n type: 4,\n};\n\nexport type ComponentFilter =\n | BooleanComponentFilter\n | ElementTypeComponentFilter\n | RegExpComponentFilter;\n\nexport type HookName = string | null;\n// Map of hook source (\"::\") to name.\n// Hook source is used instead of the hook itself because the latter is not stable between element inspections.\n// We use a Map rather than an Array because of nested hooks and traversal ordering.\nexport type HookSourceLocationKey = string;\nexport type HookNames = Map;\n\nexport type LRUCache = {\n del: (key: K) => void,\n get: (key: K) => V,\n has: (key: K) => boolean,\n reset: () => void,\n set: (key: K, value: V) => void,\n};\n\nexport type StyleXPlugin = {\n sources: Array,\n resolvedStyles: Object,\n};\n\nexport type Plugins = {\n stylex: StyleXPlugin | null,\n};\n\nexport const StrictMode = 1;\n\n// Each element on the frontend corresponds to a Fiber on the backend.\n// Some of its information (e.g. id, type, displayName) come from the backend.\n// Other bits (e.g. weight and depth) are computed on the frontend for windowing and display purposes.\n// Elements are updated on a push basis– meaning the backend pushes updates to the frontend when needed.\nexport type Element = {\n id: number,\n parentID: number,\n children: Array,\n type: ElementType,\n displayName: string | null,\n key: number | string | null,\n\n hocDisplayNames: null | Array,\n\n // Should the elements children be visible in the tree?\n isCollapsed: boolean,\n\n // Owner (if available)\n ownerID: number,\n\n // How many levels deep within the tree is this element?\n // This determines how much indentation (left padding) should be used in the Elements tree.\n depth: number,\n\n // How many nodes (including itself) are below this Element within the tree.\n // This property is used to quickly determine the total number of Elements,\n // and the Element at any given index (for windowing purposes).\n weight: number,\n\n // This element is not in a StrictMode compliant subtree.\n // Only true for React versions supporting StrictMode.\n isStrictModeNonCompliant: boolean,\n};\n\nexport type SerializedElement = {\n displayName: string | null,\n id: number,\n key: number | string | null,\n hocDisplayNames: Array | null,\n type: ElementType,\n};\n\nexport type OwnersList = {\n id: number,\n owners: Array | null,\n};\n\nexport type InspectedElementResponseType =\n | 'error'\n | 'full-data'\n | 'hydrated-path'\n | 'no-change'\n | 'not-found';\n\nexport type InspectedElementPath = Array;\n\nexport type InspectedElement = {\n id: number,\n\n // Does the current renderer support editable hooks and function props?\n canEditHooks: boolean,\n canEditFunctionProps: boolean,\n\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths: boolean,\n canEditHooksAndRenamePaths: boolean,\n canEditFunctionPropsDeletePaths: boolean,\n canEditFunctionPropsRenamePaths: boolean,\n\n // Is this Error, and can its value be overridden now?\n isErrored: boolean,\n canToggleError: boolean,\n targetErrorBoundaryID: ?number,\n\n // Is this Suspense, and can its value be overridden now?\n canToggleSuspense: boolean,\n\n // Can view component source location.\n canViewSource: boolean,\n\n // Does the component have legacy context attached to it.\n hasLegacyContext: boolean,\n\n // Inspectable properties.\n context: Object | null,\n hooks: Object | null,\n props: Object | null,\n state: Object | null,\n key: number | string | null,\n errors: Array<[string, number]>,\n warnings: Array<[string, number]>,\n\n // List of owners\n owners: Array | null,\n\n // Location of component in source code.\n source: Source | null,\n\n type: ElementType,\n\n // Meta information about the root this element belongs to.\n rootType: string | null,\n\n // Meta information about the renderer that created this element.\n rendererPackageName: string | null,\n rendererVersion: string | null,\n\n // UI plugins/visualizations for the inspected element.\n plugins: Plugins,\n};\n\n// TODO: Add profiling type\n\ntype Data =\n | string\n | Dehydrated\n | Unserializable\n | Array\n | Array\n | {[string]: Data};\n\nexport type DehydratedData = {\n cleaned: Array>,\n data: Data,\n unserializable: Array>,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nconst isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport LRU from 'lru-cache';\nimport {\n isElement,\n typeOf,\n ContextConsumer,\n ContextProvider,\n ForwardRef,\n Fragment,\n Lazy,\n Memo,\n Portal,\n Profiler,\n StrictMode,\n Suspense,\n} from 'react-is';\nimport {\n REACT_SUSPENSE_LIST_TYPE as SuspenseList,\n REACT_TRACING_MARKER_TYPE as TracingMarker,\n} from 'shared/ReactSymbols';\nimport {\n TREE_OPERATION_ADD,\n TREE_OPERATION_REMOVE,\n TREE_OPERATION_REMOVE_ROOT,\n TREE_OPERATION_REORDER_CHILDREN,\n TREE_OPERATION_SET_SUBTREE_MODE,\n TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS,\n TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n LOCAL_STORAGE_OPEN_IN_EDITOR_URL,\n LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS,\n LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY,\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE,\n} from './constants';\nimport {\n ComponentFilterElementType,\n ElementTypeHostComponent,\n} from './frontend/types';\nimport {\n ElementTypeRoot,\n ElementTypeClass,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeMemo,\n} from 'react-devtools-shared/src/frontend/types';\nimport {localStorageGetItem, localStorageSetItem} from './storage';\nimport {meta} from './hydration';\nimport isArray from './isArray';\n\nimport type {\n ComponentFilter,\n ElementType,\n BrowserTheme,\n} from './frontend/types';\nimport type {LRUCache} from 'react-devtools-shared/src/frontend/types';\n\n// $FlowFixMe[method-unbinding]\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nconst cachedDisplayNames: WeakMap = new WeakMap();\n\n// On large trees, encoding takes significant time.\n// Try to reuse the already encoded strings.\nconst encodedStringCache: LRUCache> = new LRU({\n max: 1000,\n});\n\nexport function alphaSortKeys(\n a: string | number | symbol,\n b: string | number | symbol,\n): number {\n if (a.toString() > b.toString()) {\n return 1;\n } else if (b.toString() > a.toString()) {\n return -1;\n } else {\n return 0;\n }\n}\n\nexport function getAllEnumerableKeys(\n obj: Object,\n): Set {\n const keys = new Set();\n let current = obj;\n while (current != null) {\n const currentKeys = [\n ...Object.keys(current),\n ...Object.getOwnPropertySymbols(current),\n ];\n const descriptors = Object.getOwnPropertyDescriptors(current);\n currentKeys.forEach(key => {\n // $FlowFixMe[incompatible-type]: key can be a Symbol https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor\n if (descriptors[key].enumerable) {\n keys.add(key);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n return keys;\n}\n\n// Mirror https://github.com/facebook/react/blob/7c21bf72ace77094fd1910cc350a548287ef8350/packages/shared/getComponentName.js#L27-L37\nexport function getWrappedDisplayName(\n outerType: mixed,\n innerType: any,\n wrapperName: string,\n fallbackName?: string,\n): string {\n const displayName = (outerType: any).displayName;\n return (\n displayName || `${wrapperName}(${getDisplayName(innerType, fallbackName)})`\n );\n}\n\nexport function getDisplayName(\n type: Function,\n fallbackName: string = 'Anonymous',\n): string {\n const nameFromCache = cachedDisplayNames.get(type);\n if (nameFromCache != null) {\n return nameFromCache;\n }\n\n let displayName = fallbackName;\n\n // The displayName property is not guaranteed to be a string.\n // It's only safe to use for our purposes if it's a string.\n // github.com/facebook/react-devtools/issues/803\n if (typeof type.displayName === 'string') {\n displayName = type.displayName;\n } else if (typeof type.name === 'string' && type.name !== '') {\n displayName = type.name;\n }\n\n cachedDisplayNames.set(type, displayName);\n return displayName;\n}\n\nlet uidCounter: number = 0;\n\nexport function getUID(): number {\n return ++uidCounter;\n}\n\nexport function utfDecodeString(array: Array): string {\n // Avoid spreading the array (e.g. String.fromCodePoint(...array))\n // Functions arguments are first placed on the stack before the function is called\n // which throws a RangeError for large arrays.\n // See github.com/facebook/react/issues/22293\n let string = '';\n for (let i = 0; i < array.length; i++) {\n const char = array[i];\n string += String.fromCodePoint(char);\n }\n return string;\n}\n\nfunction surrogatePairToCodePoint(\n charCode1: number,\n charCode2: number,\n): number {\n return ((charCode1 & 0x3ff) << 10) + (charCode2 & 0x3ff) + 0x10000;\n}\n\n// Credit for this encoding approach goes to Tim Down:\n// https://stackoverflow.com/questions/4877326/how-can-i-tell-if-a-string-contains-multibyte-characters-in-javascript\nexport function utfEncodeString(string: string): Array {\n const cached = encodedStringCache.get(string);\n if (cached !== undefined) {\n return cached;\n }\n\n const encoded = [];\n let i = 0;\n let charCode;\n while (i < string.length) {\n charCode = string.charCodeAt(i);\n // Handle multibyte unicode characters (like emoji).\n if ((charCode & 0xf800) === 0xd800) {\n encoded.push(surrogatePairToCodePoint(charCode, string.charCodeAt(++i)));\n } else {\n encoded.push(charCode);\n }\n ++i;\n }\n\n encodedStringCache.set(string, encoded);\n\n return encoded;\n}\n\nexport function printOperationsArray(operations: Array) {\n // The first two values are always rendererID and rootID\n const rendererID = operations[0];\n const rootID = operations[1];\n\n const logs = [`operations for renderer:${rendererID} and root:${rootID}`];\n\n let i = 2;\n\n // Reassemble the string table.\n const stringTable: Array = [\n null, // ID = 0 corresponds to the null string.\n ];\n const stringTableSize = operations[i++];\n const stringTableEnd = i + stringTableSize;\n while (i < stringTableEnd) {\n const nextLength = operations[i++];\n const nextString = utfDecodeString(\n (operations.slice(i, i + nextLength): any),\n );\n stringTable.push(nextString);\n i += nextLength;\n }\n\n while (i < operations.length) {\n const operation = operations[i];\n\n switch (operation) {\n case TREE_OPERATION_ADD: {\n const id = ((operations[i + 1]: any): number);\n const type = ((operations[i + 2]: any): ElementType);\n\n i += 3;\n\n if (type === ElementTypeRoot) {\n logs.push(`Add new root node ${id}`);\n\n i++; // isStrictModeCompliant\n i++; // supportsProfiling\n i++; // supportsStrictMode\n i++; // hasOwnerMetadata\n } else {\n const parentID = ((operations[i]: any): number);\n i++;\n\n i++; // ownerID\n\n const displayNameStringID = operations[i];\n const displayName = stringTable[displayNameStringID];\n i++;\n\n i++; // key\n\n logs.push(\n `Add node ${id} (${displayName || 'null'}) as child of ${parentID}`,\n );\n }\n break;\n }\n case TREE_OPERATION_REMOVE: {\n const removeLength = ((operations[i + 1]: any): number);\n i += 2;\n\n for (let removeIndex = 0; removeIndex < removeLength; removeIndex++) {\n const id = ((operations[i]: any): number);\n i += 1;\n\n logs.push(`Remove node ${id}`);\n }\n break;\n }\n case TREE_OPERATION_REMOVE_ROOT: {\n i += 1;\n\n logs.push(`Remove root ${rootID}`);\n break;\n }\n case TREE_OPERATION_SET_SUBTREE_MODE: {\n const id = operations[i + 1];\n const mode = operations[i + 1];\n\n i += 3;\n\n logs.push(`Mode ${mode} set for subtree with root ${id}`);\n break;\n }\n case TREE_OPERATION_REORDER_CHILDREN: {\n const id = ((operations[i + 1]: any): number);\n const numChildren = ((operations[i + 2]: any): number);\n i += 3;\n const children = operations.slice(i, i + numChildren);\n i += numChildren;\n\n logs.push(`Re-order node ${id} children ${children.join(',')}`);\n break;\n }\n case TREE_OPERATION_UPDATE_TREE_BASE_DURATION:\n // Base duration updates are only sent while profiling is in progress.\n // We can ignore them at this point.\n // The profiler UI uses them lazily in order to generate the tree.\n i += 3;\n break;\n case TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS:\n const id = operations[i + 1];\n const numErrors = operations[i + 2];\n const numWarnings = operations[i + 3];\n\n i += 4;\n\n logs.push(\n `Node ${id} has ${numErrors} errors and ${numWarnings} warnings`,\n );\n break;\n default:\n throw Error(`Unsupported Bridge operation \"${operation}\"`);\n }\n }\n\n console.log(logs.join('\\n '));\n}\n\nexport function getDefaultComponentFilters(): Array {\n return [\n {\n type: ComponentFilterElementType,\n value: ElementTypeHostComponent,\n isEnabled: true,\n },\n ];\n}\n\nexport function getSavedComponentFilters(): Array {\n try {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n );\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return getDefaultComponentFilters();\n}\n\nexport function setSavedComponentFilters(\n componentFilters: Array,\n): void {\n localStorageSetItem(\n LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n JSON.stringify(componentFilters),\n );\n}\n\nfunction parseBool(s: ?string): ?boolean {\n if (s === 'true') {\n return true;\n }\n if (s === 'false') {\n return false;\n }\n}\n\nexport function castBool(v: any): ?boolean {\n if (v === true || v === false) {\n return v;\n }\n}\n\nexport function castBrowserTheme(v: any): ?BrowserTheme {\n if (v === 'light' || v === 'dark' || v === 'auto') {\n return v;\n }\n}\n\nexport function getAppendComponentStack(): boolean {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY,\n );\n return parseBool(raw) ?? true;\n}\n\nexport function getBreakOnConsoleErrors(): boolean {\n const raw = localStorageGetItem(LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS);\n return parseBool(raw) ?? false;\n}\n\nexport function getHideConsoleLogsInStrictMode(): boolean {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE,\n );\n return parseBool(raw) ?? false;\n}\n\nexport function getShowInlineWarningsAndErrors(): boolean {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n );\n return parseBool(raw) ?? true;\n}\n\nexport function getDefaultOpenInEditorURL(): string {\n return typeof process.env.EDITOR_URL === 'string'\n ? process.env.EDITOR_URL\n : '';\n}\n\nexport function getOpenInEditorURL(): string {\n try {\n const raw = localStorageGetItem(LOCAL_STORAGE_OPEN_IN_EDITOR_URL);\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return getDefaultOpenInEditorURL();\n}\n\nexport function separateDisplayNameAndHOCs(\n displayName: string | null,\n type: ElementType,\n): [string | null, Array | null] {\n if (displayName === null) {\n return [null, null];\n }\n\n let hocDisplayNames = null;\n\n switch (type) {\n case ElementTypeClass:\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n if (displayName.indexOf('(') >= 0) {\n const matches = displayName.match(/[^()]+/g);\n if (matches != null) {\n displayName = matches.pop();\n hocDisplayNames = matches;\n }\n }\n break;\n default:\n break;\n }\n\n return [displayName, hocDisplayNames];\n}\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nexport function shallowDiffers(prev: Object, next: Object): boolean {\n for (const attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n for (const attribute in next) {\n if (prev[attribute] !== next[attribute]) {\n return true;\n }\n }\n return false;\n}\n\nexport function getInObject(object: Object, path: Array): any {\n return path.reduce((reduced: Object, attr: any): any => {\n if (reduced) {\n if (hasOwnProperty.call(reduced, attr)) {\n return reduced[attr];\n }\n if (typeof reduced[Symbol.iterator] === 'function') {\n // Convert iterable to array and return array[index]\n //\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n return Array.from(reduced)[attr];\n }\n }\n\n return null;\n }, object);\n}\n\nexport function deletePathInObject(\n object: Object,\n path: Array,\n) {\n const length = path.length;\n const last = path[length - 1];\n if (object != null) {\n const parent = getInObject(object, path.slice(0, length - 1));\n if (parent) {\n if (isArray(parent)) {\n parent.splice(((last: any): number), 1);\n } else {\n delete parent[last];\n }\n }\n }\n}\n\nexport function renamePathInObject(\n object: Object,\n oldPath: Array,\n newPath: Array,\n) {\n const length = oldPath.length;\n if (object != null) {\n const parent = getInObject(object, oldPath.slice(0, length - 1));\n if (parent) {\n const lastOld = oldPath[length - 1];\n const lastNew = newPath[length - 1];\n parent[lastNew] = parent[lastOld];\n if (isArray(parent)) {\n parent.splice(((lastOld: any): number), 1);\n } else {\n delete parent[lastOld];\n }\n }\n }\n}\n\nexport function setInObject(\n object: Object,\n path: Array,\n value: any,\n) {\n const length = path.length;\n const last = path[length - 1];\n if (object != null) {\n const parent = getInObject(object, path.slice(0, length - 1));\n if (parent) {\n parent[last] = value;\n }\n }\n}\n\nexport type DataType =\n | 'array'\n | 'array_buffer'\n | 'bigint'\n | 'boolean'\n | 'class_instance'\n | 'data_view'\n | 'date'\n | 'function'\n | 'html_all_collection'\n | 'html_element'\n | 'infinity'\n | 'iterator'\n | 'opaque_iterator'\n | 'nan'\n | 'null'\n | 'number'\n | 'object'\n | 'react_element'\n | 'regexp'\n | 'string'\n | 'symbol'\n | 'typed_array'\n | 'undefined'\n | 'unknown';\n\n/**\n * Get a enhanced/artificial type string based on the object instance\n */\nexport function getDataType(data: Object): DataType {\n if (data === null) {\n return 'null';\n } else if (data === undefined) {\n return 'undefined';\n }\n\n if (isElement(data)) {\n return 'react_element';\n }\n\n if (typeof HTMLElement !== 'undefined' && data instanceof HTMLElement) {\n return 'html_element';\n }\n\n const type = typeof data;\n switch (type) {\n case 'bigint':\n return 'bigint';\n case 'boolean':\n return 'boolean';\n case 'function':\n return 'function';\n case 'number':\n if (Number.isNaN(data)) {\n return 'nan';\n } else if (!Number.isFinite(data)) {\n return 'infinity';\n } else {\n return 'number';\n }\n case 'object':\n if (isArray(data)) {\n return 'array';\n } else if (ArrayBuffer.isView(data)) {\n return hasOwnProperty.call(data.constructor, 'BYTES_PER_ELEMENT')\n ? 'typed_array'\n : 'data_view';\n } else if (data.constructor && data.constructor.name === 'ArrayBuffer') {\n // HACK This ArrayBuffer check is gross; is there a better way?\n // We could try to create a new DataView with the value.\n // If it doesn't error, we know it's an ArrayBuffer,\n // but this seems kind of awkward and expensive.\n return 'array_buffer';\n } else if (typeof data[Symbol.iterator] === 'function') {\n const iterator = data[Symbol.iterator]();\n if (!iterator) {\n // Proxies might break assumptoins about iterators.\n // See github.com/facebook/react/issues/21654\n } else {\n return iterator === data ? 'opaque_iterator' : 'iterator';\n }\n } else if (data.constructor && data.constructor.name === 'RegExp') {\n return 'regexp';\n } else {\n // $FlowFixMe[method-unbinding]\n const toStringValue = Object.prototype.toString.call(data);\n if (toStringValue === '[object Date]') {\n return 'date';\n } else if (toStringValue === '[object HTMLAllCollection]') {\n return 'html_all_collection';\n }\n }\n\n if (!isPlainObject(data)) {\n return 'class_instance';\n }\n\n return 'object';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n if (\n // $FlowFixMe[method-unbinding]\n Object.prototype.toString.call(data) === '[object HTMLAllCollection]'\n ) {\n return 'html_all_collection';\n }\n return 'undefined';\n default:\n return 'unknown';\n }\n}\n\nexport function getDisplayNameForReactElement(\n element: React$Element,\n): string | null {\n const elementType = typeOf(element);\n switch (elementType) {\n case ContextConsumer:\n return 'ContextConsumer';\n case ContextProvider:\n return 'ContextProvider';\n case ForwardRef:\n return 'ForwardRef';\n case Fragment:\n return 'Fragment';\n case Lazy:\n return 'Lazy';\n case Memo:\n return 'Memo';\n case Portal:\n return 'Portal';\n case Profiler:\n return 'Profiler';\n case StrictMode:\n return 'StrictMode';\n case Suspense:\n return 'Suspense';\n case SuspenseList:\n return 'SuspenseList';\n case TracingMarker:\n return 'TracingMarker';\n default:\n const {type} = element;\n if (typeof type === 'string') {\n return type;\n } else if (typeof type === 'function') {\n return getDisplayName(type, 'Anonymous');\n } else if (type != null) {\n return 'NotImplementedInDevtools';\n } else {\n return 'Element';\n }\n }\n}\n\nconst MAX_PREVIEW_STRING_LENGTH = 50;\n\nfunction truncateForDisplay(\n string: string,\n length: number = MAX_PREVIEW_STRING_LENGTH,\n) {\n if (string.length > length) {\n return string.slice(0, length) + '…';\n } else {\n return string;\n }\n}\n\n// Attempts to mimic Chrome's inline preview for values.\n// For example, the following value...\n// {\n// foo: 123,\n// bar: \"abc\",\n// baz: [true, false],\n// qux: { ab: 1, cd: 2 }\n// };\n//\n// Would show a preview of...\n// {foo: 123, bar: \"abc\", baz: Array(2), qux: {…}}\n//\n// And the following value...\n// [\n// 123,\n// \"abc\",\n// [true, false],\n// { foo: 123, bar: \"abc\" }\n// ];\n//\n// Would show a preview of...\n// [123, \"abc\", Array(2), {…}]\nexport function formatDataForPreview(\n data: any,\n showFormattedValue: boolean,\n): string {\n if (data != null && hasOwnProperty.call(data, meta.type)) {\n return showFormattedValue\n ? data[meta.preview_long]\n : data[meta.preview_short];\n }\n\n const type = getDataType(data);\n\n switch (type) {\n case 'html_element':\n return `<${truncateForDisplay(data.tagName.toLowerCase())} />`;\n case 'function':\n return truncateForDisplay(\n `ƒ ${typeof data.name === 'function' ? '' : data.name}() {}`,\n );\n case 'string':\n return `\"${data}\"`;\n case 'bigint':\n return truncateForDisplay(data.toString() + 'n');\n case 'regexp':\n return truncateForDisplay(data.toString());\n case 'symbol':\n return truncateForDisplay(data.toString());\n case 'react_element':\n return `<${truncateForDisplay(\n getDisplayNameForReactElement(data) || 'Unknown',\n )} />`;\n case 'array_buffer':\n return `ArrayBuffer(${data.byteLength})`;\n case 'data_view':\n return `DataView(${data.buffer.byteLength})`;\n case 'array':\n if (showFormattedValue) {\n let formatted = '';\n for (let i = 0; i < data.length; i++) {\n if (i > 0) {\n formatted += ', ';\n }\n formatted += formatDataForPreview(data[i], false);\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n return `[${truncateForDisplay(formatted)}]`;\n } else {\n const length = hasOwnProperty.call(data, meta.size)\n ? data[meta.size]\n : data.length;\n return `Array(${length})`;\n }\n case 'typed_array':\n const shortName = `${data.constructor.name}(${data.length})`;\n if (showFormattedValue) {\n let formatted = '';\n for (let i = 0; i < data.length; i++) {\n if (i > 0) {\n formatted += ', ';\n }\n formatted += data[i];\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n return `${shortName} [${truncateForDisplay(formatted)}]`;\n } else {\n return shortName;\n }\n case 'iterator':\n const name = data.constructor.name;\n\n if (showFormattedValue) {\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n const array = Array.from(data);\n\n let formatted = '';\n for (let i = 0; i < array.length; i++) {\n const entryOrEntries = array[i];\n\n if (i > 0) {\n formatted += ', ';\n }\n\n // TRICKY\n // Browsers display Maps and Sets differently.\n // To mimic their behavior, detect if we've been given an entries tuple.\n // Map(2) {\"abc\" => 123, \"def\" => 123}\n // Set(2) {\"abc\", 123}\n if (isArray(entryOrEntries)) {\n const key = formatDataForPreview(entryOrEntries[0], true);\n const value = formatDataForPreview(entryOrEntries[1], false);\n formatted += `${key} => ${value}`;\n } else {\n formatted += formatDataForPreview(entryOrEntries, false);\n }\n\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n\n return `${name}(${data.size}) {${truncateForDisplay(formatted)}}`;\n } else {\n return `${name}(${data.size})`;\n }\n case 'opaque_iterator': {\n return data[Symbol.toStringTag];\n }\n case 'date':\n return data.toString();\n case 'class_instance':\n return data.constructor.name;\n case 'object':\n if (showFormattedValue) {\n const keys = Array.from(getAllEnumerableKeys(data)).sort(alphaSortKeys);\n\n let formatted = '';\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (i > 0) {\n formatted += ', ';\n }\n formatted += `${key.toString()}: ${formatDataForPreview(\n data[key],\n false,\n )}`;\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n return `{${truncateForDisplay(formatted)}}`;\n } else {\n return '{…}';\n }\n case 'boolean':\n case 'number':\n case 'infinity':\n case 'nan':\n case 'null':\n case 'undefined':\n return data;\n default:\n try {\n return truncateForDisplay(String(data));\n } catch (error) {\n return 'unserializable';\n }\n }\n}\n\n// Basically checking that the object only has Object in its prototype chain\nexport const isPlainObject = (object: Object): boolean => {\n const objectPrototype = Object.getPrototypeOf(object);\n if (!objectPrototype) return true;\n\n const objectParentPrototype = Object.getPrototypeOf(objectPrototype);\n return !objectParentPrototype;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n getDataType,\n getDisplayNameForReactElement,\n getAllEnumerableKeys,\n getInObject,\n formatDataForPreview,\n setInObject,\n} from 'react-devtools-shared/src/utils';\n\nimport type {\n DehydratedData,\n InspectedElementPath,\n} from 'react-devtools-shared/src/frontend/types';\n\nexport const meta = {\n inspectable: (Symbol('inspectable'): symbol),\n inspected: (Symbol('inspected'): symbol),\n name: (Symbol('name'): symbol),\n preview_long: (Symbol('preview_long'): symbol),\n preview_short: (Symbol('preview_short'): symbol),\n readonly: (Symbol('readonly'): symbol),\n size: (Symbol('size'): symbol),\n type: (Symbol('type'): symbol),\n unserializable: (Symbol('unserializable'): symbol),\n};\n\nexport type Dehydrated = {\n inspectable: boolean,\n name: string | null,\n preview_long: string | null,\n preview_short: string | null,\n readonly?: boolean,\n size?: number,\n type: string,\n};\n\n// Typed arrays and other complex iteratable objects (e.g. Map, Set, ImmutableJS) need special handling.\n// These objects can't be serialized without losing type information,\n// so a \"Unserializable\" type wrapper is used (with meta-data keys) to send nested values-\n// while preserving the original type and name.\nexport type Unserializable = {\n name: string | null,\n preview_long: string | null,\n preview_short: string | null,\n readonly?: boolean,\n size?: number,\n type: string,\n unserializable: boolean,\n [string | number]: any,\n};\n\n// This threshold determines the depth at which the bridge \"dehydrates\" nested data.\n// Dehydration means that we don't serialize the data for e.g. postMessage or stringify,\n// unless the frontend explicitly requests it (e.g. a user clicks to expand a props object).\n//\n// Reducing this threshold will improve the speed of initial component inspection,\n// but may decrease the responsiveness of expanding objects/arrays to inspect further.\nconst LEVEL_THRESHOLD = 2;\n\n/**\n * Generate the dehydrated metadata for complex object instances\n */\nfunction createDehydrated(\n type: string,\n inspectable: boolean,\n data: Object,\n cleaned: Array>,\n path: Array,\n): Dehydrated {\n cleaned.push(path);\n\n const dehydrated: Dehydrated = {\n inspectable,\n type,\n preview_long: formatDataForPreview(data, true),\n preview_short: formatDataForPreview(data, false),\n name:\n !data.constructor || data.constructor.name === 'Object'\n ? ''\n : data.constructor.name,\n };\n\n if (type === 'array' || type === 'typed_array') {\n dehydrated.size = data.length;\n } else if (type === 'object') {\n dehydrated.size = Object.keys(data).length;\n }\n\n if (type === 'iterator' || type === 'typed_array') {\n dehydrated.readonly = true;\n }\n\n return dehydrated;\n}\n\n/**\n * Strip out complex data (instances, functions, and data nested > LEVEL_THRESHOLD levels deep).\n * The paths of the stripped out objects are appended to the `cleaned` list.\n * On the other side of the barrier, the cleaned list is used to \"re-hydrate\" the cleaned representation into\n * an object with symbols as attributes, so that a sanitized object can be distinguished from a normal object.\n *\n * Input: {\"some\": {\"attr\": fn()}, \"other\": AnInstance}\n * Output: {\n * \"some\": {\n * \"attr\": {\"name\": the fn.name, type: \"function\"}\n * },\n * \"other\": {\n * \"name\": \"AnInstance\",\n * \"type\": \"object\",\n * },\n * }\n * and cleaned = [[\"some\", \"attr\"], [\"other\"]]\n */\nexport function dehydrate(\n data: Object,\n cleaned: Array>,\n unserializable: Array>,\n path: Array,\n isPathAllowed: (path: Array) => boolean,\n level: number = 0,\n): $PropertyType {\n const type = getDataType(data);\n\n let isPathAllowedCheck;\n\n switch (type) {\n case 'html_element':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.tagName,\n type,\n };\n\n case 'function':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name:\n typeof data.name === 'function' || !data.name\n ? 'function'\n : data.name,\n type,\n };\n\n case 'string':\n isPathAllowedCheck = isPathAllowed(path);\n if (isPathAllowedCheck) {\n return data;\n } else {\n return data.length <= 500 ? data : data.slice(0, 500) + '...';\n }\n\n case 'bigint':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n case 'symbol':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n // React Elements aren't very inspector-friendly,\n // and often contain private fields or circular references.\n case 'react_element':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: getDisplayNameForReactElement(data) || 'Unknown',\n type,\n };\n\n // ArrayBuffers error if you try to inspect them.\n case 'array_buffer':\n case 'data_view':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: type === 'data_view' ? 'DataView' : 'ArrayBuffer',\n size: data.byteLength,\n type,\n };\n\n case 'array':\n isPathAllowedCheck = isPathAllowed(path);\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n }\n return data.map((item, i) =>\n dehydrate(\n item,\n cleaned,\n unserializable,\n path.concat([i]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n ),\n );\n\n case 'html_all_collection':\n case 'typed_array':\n case 'iterator':\n isPathAllowedCheck = isPathAllowed(path);\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n const unserializableValue: Unserializable = {\n unserializable: true,\n type: type,\n readonly: true,\n size: type === 'typed_array' ? data.length : undefined,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name:\n !data.constructor || data.constructor.name === 'Object'\n ? ''\n : data.constructor.name,\n };\n\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n Array.from(data).forEach(\n (item, i) =>\n (unserializableValue[i] = dehydrate(\n item,\n cleaned,\n unserializable,\n path.concat([i]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n )),\n );\n\n unserializable.push(path);\n\n return unserializableValue;\n }\n\n case 'opaque_iterator':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data[Symbol.toStringTag],\n type,\n };\n\n case 'date':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n case 'regexp':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n case 'object':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n const object: {\n [string]: $PropertyType,\n } = {};\n getAllEnumerableKeys(data).forEach(key => {\n const name = key.toString();\n object[name] = dehydrate(\n data[key],\n cleaned,\n unserializable,\n path.concat([name]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n );\n });\n return object;\n }\n\n case 'class_instance':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n }\n\n const value: Unserializable = {\n unserializable: true,\n type,\n readonly: true,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.constructor.name,\n };\n\n getAllEnumerableKeys(data).forEach(key => {\n const keyAsString = key.toString();\n\n value[keyAsString] = dehydrate(\n data[key],\n cleaned,\n unserializable,\n path.concat([keyAsString]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n );\n });\n\n unserializable.push(path);\n\n return value;\n\n case 'infinity':\n case 'nan':\n case 'undefined':\n // Some values are lossy when sent through a WebSocket.\n // We dehydrate+rehydrate them to preserve their type.\n cleaned.push(path);\n return {type};\n\n default:\n return data;\n }\n}\n\nexport function fillInPath(\n object: Object,\n data: DehydratedData,\n path: InspectedElementPath,\n value: any,\n) {\n const target = getInObject(object, path);\n if (target != null) {\n if (!target[meta.unserializable]) {\n delete target[meta.inspectable];\n delete target[meta.inspected];\n delete target[meta.name];\n delete target[meta.preview_long];\n delete target[meta.preview_short];\n delete target[meta.readonly];\n delete target[meta.size];\n delete target[meta.type];\n }\n }\n\n if (value !== null && data.unserializable.length > 0) {\n const unserializablePath = data.unserializable[0];\n let isMatch = unserializablePath.length === path.length;\n for (let i = 0; i < path.length; i++) {\n if (path[i] !== unserializablePath[i]) {\n isMatch = false;\n break;\n }\n }\n if (isMatch) {\n upgradeUnserializable(value, value);\n }\n }\n\n setInObject(object, path, value);\n}\n\nexport function hydrate(\n object: any,\n cleaned: Array>,\n unserializable: Array>,\n): Object {\n cleaned.forEach((path: Array) => {\n const length = path.length;\n const last = path[length - 1];\n const parent = getInObject(object, path.slice(0, length - 1));\n if (!parent || !parent.hasOwnProperty(last)) {\n return;\n }\n\n const value = parent[last];\n\n if (!value) {\n return;\n } else if (value.type === 'infinity') {\n parent[last] = Infinity;\n } else if (value.type === 'nan') {\n parent[last] = NaN;\n } else if (value.type === 'undefined') {\n parent[last] = undefined;\n } else {\n // Replace the string keys with Symbols so they're non-enumerable.\n const replaced: {[key: symbol]: boolean | string, ...} = {};\n replaced[meta.inspectable] = !!value.inspectable;\n replaced[meta.inspected] = false;\n replaced[meta.name] = value.name;\n replaced[meta.preview_long] = value.preview_long;\n replaced[meta.preview_short] = value.preview_short;\n replaced[meta.size] = value.size;\n replaced[meta.readonly] = !!value.readonly;\n replaced[meta.type] = value.type;\n\n parent[last] = replaced;\n }\n });\n unserializable.forEach((path: Array) => {\n const length = path.length;\n const last = path[length - 1];\n const parent = getInObject(object, path.slice(0, length - 1));\n if (!parent || !parent.hasOwnProperty(last)) {\n return;\n }\n\n const node = parent[last];\n\n const replacement = {\n ...node,\n };\n\n upgradeUnserializable(replacement, node);\n\n parent[last] = replacement;\n });\n return object;\n}\n\nfunction upgradeUnserializable(destination: Object, source: Object) {\n Object.defineProperties(destination, {\n // $FlowFixMe[invalid-computed-prop]\n [meta.inspected]: {\n configurable: true,\n enumerable: false,\n value: !!source.inspected,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.name]: {\n configurable: true,\n enumerable: false,\n value: source.name,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.preview_long]: {\n configurable: true,\n enumerable: false,\n value: source.preview_long,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.preview_short]: {\n configurable: true,\n enumerable: false,\n value: source.preview_short,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.size]: {\n configurable: true,\n enumerable: false,\n value: source.size,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.readonly]: {\n configurable: true,\n enumerable: false,\n value: !!source.readonly,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.type]: {\n configurable: true,\n enumerable: false,\n value: source.type,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.unserializable]: {\n configurable: true,\n enumerable: false,\n value: !!source.unserializable,\n },\n });\n\n delete destination.inspected;\n delete destination.name;\n delete destination.preview_long;\n delete destination.preview_short;\n delete destination.size;\n delete destination.readonly;\n delete destination.type;\n delete destination.unserializable;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\ndeclare function isArray(a: mixed): boolean %checks(Array.isArray(a));\n\nconst isArrayImpl = Array.isArray;\n\n// eslint-disable-next-line no-redeclare\nfunction isArray(a: mixed): boolean {\n return isArrayImpl(a);\n}\n\nexport default isArray;\n","/**\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {compareVersions} from 'compare-versions';\nimport {dehydrate} from '../hydration';\nimport isArray from 'shared/isArray';\n\nimport type {DehydratedData} from 'react-devtools-shared/src/frontend/types';\n\n// TODO: update this to the first React version that has a corresponding DevTools backend\nconst FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER = '999.9.9';\nexport function hasAssignedBackend(version?: string): boolean {\n if (version == null || version === '') {\n return false;\n }\n return gte(version, FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER);\n}\n\nexport function cleanForBridge(\n data: Object | null,\n isPathAllowed: (path: Array) => boolean,\n path: Array = [],\n): DehydratedData | null {\n if (data !== null) {\n const cleanedPaths: Array> = [];\n const unserializablePaths: Array> = [];\n const cleanedData = dehydrate(\n data,\n cleanedPaths,\n unserializablePaths,\n path,\n isPathAllowed,\n );\n\n return {\n data: cleanedData,\n cleaned: cleanedPaths,\n unserializable: unserializablePaths,\n };\n } else {\n return null;\n }\n}\n\nexport function copyWithDelete(\n obj: Object | Array,\n path: Array,\n index: number = 0,\n): Object | Array {\n const key = path[index];\n const updated = isArray(obj) ? obj.slice() : {...obj};\n if (index + 1 === path.length) {\n if (isArray(updated)) {\n updated.splice(((key: any): number), 1);\n } else {\n delete updated[key];\n }\n } else {\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[key] = copyWithDelete(obj[key], path, index + 1);\n }\n return updated;\n}\n\n// This function expects paths to be the same except for the final value.\n// e.g. ['path', 'to', 'foo'] and ['path', 'to', 'bar']\nexport function copyWithRename(\n obj: Object | Array,\n oldPath: Array,\n newPath: Array,\n index: number = 0,\n): Object | Array {\n const oldKey = oldPath[index];\n const updated = isArray(obj) ? obj.slice() : {...obj};\n if (index + 1 === oldPath.length) {\n const newKey = newPath[index];\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[newKey] = updated[oldKey];\n if (isArray(updated)) {\n updated.splice(((oldKey: any): number), 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[oldKey] = copyWithRename(obj[oldKey], oldPath, newPath, index + 1);\n }\n return updated;\n}\n\nexport function copyWithSet(\n obj: Object | Array,\n path: Array,\n value: any,\n index: number = 0,\n): Object | Array {\n if (index >= path.length) {\n return value;\n }\n const key = path[index];\n const updated = isArray(obj) ? obj.slice() : {...obj};\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[key] = copyWithSet(obj[key], path, value, index + 1);\n return updated;\n}\n\nexport function getEffectDurations(root: Object): {\n effectDuration: any | null,\n passiveEffectDuration: any | null,\n} {\n // Profiling durations are only available for certain builds.\n // If available, they'll be stored on the HostRoot.\n let effectDuration = null;\n let passiveEffectDuration = null;\n const hostRoot = root.current;\n if (hostRoot != null) {\n const stateNode = hostRoot.stateNode;\n if (stateNode != null) {\n effectDuration =\n stateNode.effectDuration != null ? stateNode.effectDuration : null;\n passiveEffectDuration =\n stateNode.passiveEffectDuration != null\n ? stateNode.passiveEffectDuration\n : null;\n }\n }\n return {effectDuration, passiveEffectDuration};\n}\n\nexport function serializeToString(data: any): string {\n if (data === undefined) {\n return 'undefined';\n }\n\n const cache = new Set();\n // Use a custom replacer function to protect against circular references.\n return JSON.stringify(\n data,\n (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (cache.has(value)) {\n return;\n }\n cache.add(value);\n }\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n },\n 2,\n );\n}\n\n// Formats an array of args with a style for console methods, using\n// the following algorithm:\n// 1. The first param is a string that contains %c\n// - Bail out and return the args without modifying the styles.\n// We don't want to affect styles that the developer deliberately set.\n// 2. The first param is a string that doesn't contain %c but contains\n// string formatting\n// - [`%c${args[0]}`, style, ...args.slice(1)]\n// - Note: we assume that the string formatting that the developer uses\n// is correct.\n// 3. The first param is a string that doesn't contain string formatting\n// OR is not a string\n// - Create a formatting string where:\n// boolean, string, symbol -> %s\n// number -> %f OR %i depending on if it's an int or float\n// default -> %o\nexport function formatWithStyles(\n inputArgs: $ReadOnlyArray,\n style?: string,\n): $ReadOnlyArray {\n if (\n inputArgs === undefined ||\n inputArgs === null ||\n inputArgs.length === 0 ||\n // Matches any of %c but not %%c\n (typeof inputArgs[0] === 'string' && inputArgs[0].match(/([^%]|^)(%c)/g)) ||\n style === undefined\n ) {\n return inputArgs;\n }\n\n // Matches any of %(o|O|d|i|s|f), but not %%(o|O|d|i|s|f)\n const REGEXP = /([^%]|^)((%%)*)(%([oOdisf]))/g;\n if (typeof inputArgs[0] === 'string' && inputArgs[0].match(REGEXP)) {\n return [`%c${inputArgs[0]}`, style, ...inputArgs.slice(1)];\n } else {\n const firstArg = inputArgs.reduce((formatStr, elem, i) => {\n if (i > 0) {\n formatStr += ' ';\n }\n switch (typeof elem) {\n case 'string':\n case 'boolean':\n case 'symbol':\n return (formatStr += '%s');\n case 'number':\n const formatting = Number.isInteger(elem) ? '%i' : '%f';\n return (formatStr += formatting);\n default:\n return (formatStr += '%o');\n }\n }, '%c');\n return [firstArg, style, ...inputArgs];\n }\n}\n\n// based on https://github.com/tmpfs/format-util/blob/0e62d430efb0a1c51448709abd3e2406c14d8401/format.js#L1\n// based on https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions\n// Implements s, d, i and f placeholders\n// NOTE: KEEP IN SYNC with src/hook.js\nexport function format(\n maybeMessage: any,\n ...inputArgs: $ReadOnlyArray\n): string {\n const args = inputArgs.slice();\n\n let formatted: string = String(maybeMessage);\n\n // If the first argument is a string, check for substitutions.\n if (typeof maybeMessage === 'string') {\n if (args.length) {\n const REGEXP = /(%?)(%([jds]))/g;\n\n formatted = formatted.replace(REGEXP, (match, escaped, ptn, flag) => {\n let arg = args.shift();\n switch (flag) {\n case 's':\n arg += '';\n break;\n case 'd':\n case 'i':\n arg = parseInt(arg, 10).toString();\n break;\n case 'f':\n arg = parseFloat(arg).toString();\n break;\n }\n if (!escaped) {\n return arg;\n }\n args.unshift(arg);\n return match;\n });\n }\n }\n\n // Arguments that remain after formatting.\n if (args.length) {\n for (let i = 0; i < args.length; i++) {\n formatted += ' ' + String(args[i]);\n }\n }\n\n // Update escaped %% values.\n formatted = formatted.replace(/%{2,2}/g, '%');\n\n return String(formatted);\n}\n\nexport function isSynchronousXHRSupported(): boolean {\n return !!(\n window.document &&\n window.document.featurePolicy &&\n window.document.featurePolicy.allowsFeature('sync-xhr')\n );\n}\n\nexport function gt(a: string = '', b: string = ''): boolean {\n return compareVersions(a, b) === 1;\n}\n\nexport function gte(a: string = '', b: string = ''): boolean {\n return compareVersions(a, b) > -1;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This list should be kept updated to reflect additions to 'shared/ReactSymbols'.\n// DevTools can't import symbols from 'shared/ReactSymbols' directly for two reasons:\n// 1. DevTools requires symbols which may have been deleted in more recent versions (e.g. concurrent mode)\n// 2. DevTools must support both Symbol and numeric forms of each symbol;\n// Since e.g. standalone DevTools runs in a separate process, it can't rely on its own ES capabilities.\n\nexport const CONCURRENT_MODE_NUMBER = 0xeacf;\nexport const CONCURRENT_MODE_SYMBOL_STRING = 'Symbol(react.concurrent_mode)';\n\nexport const CONTEXT_NUMBER = 0xeace;\nexport const CONTEXT_SYMBOL_STRING = 'Symbol(react.context)';\n\nexport const SERVER_CONTEXT_SYMBOL_STRING = 'Symbol(react.server_context)';\n\nexport const DEPRECATED_ASYNC_MODE_SYMBOL_STRING = 'Symbol(react.async_mode)';\n\nexport const ELEMENT_NUMBER = 0xeac7;\nexport const ELEMENT_SYMBOL_STRING = 'Symbol(react.element)';\n\nexport const DEBUG_TRACING_MODE_NUMBER = 0xeae1;\nexport const DEBUG_TRACING_MODE_SYMBOL_STRING =\n 'Symbol(react.debug_trace_mode)';\n\nexport const FORWARD_REF_NUMBER = 0xead0;\nexport const FORWARD_REF_SYMBOL_STRING = 'Symbol(react.forward_ref)';\n\nexport const FRAGMENT_NUMBER = 0xeacb;\nexport const FRAGMENT_SYMBOL_STRING = 'Symbol(react.fragment)';\n\nexport const LAZY_NUMBER = 0xead4;\nexport const LAZY_SYMBOL_STRING = 'Symbol(react.lazy)';\n\nexport const MEMO_NUMBER = 0xead3;\nexport const MEMO_SYMBOL_STRING = 'Symbol(react.memo)';\n\nexport const PORTAL_NUMBER = 0xeaca;\nexport const PORTAL_SYMBOL_STRING = 'Symbol(react.portal)';\n\nexport const PROFILER_NUMBER = 0xead2;\nexport const PROFILER_SYMBOL_STRING = 'Symbol(react.profiler)';\n\nexport const PROVIDER_NUMBER = 0xeacd;\nexport const PROVIDER_SYMBOL_STRING = 'Symbol(react.provider)';\n\nexport const SCOPE_NUMBER = 0xead7;\nexport const SCOPE_SYMBOL_STRING = 'Symbol(react.scope)';\n\nexport const STRICT_MODE_NUMBER = 0xeacc;\nexport const STRICT_MODE_SYMBOL_STRING = 'Symbol(react.strict_mode)';\n\nexport const SUSPENSE_NUMBER = 0xead1;\nexport const SUSPENSE_SYMBOL_STRING = 'Symbol(react.suspense)';\n\nexport const SUSPENSE_LIST_NUMBER = 0xead8;\nexport const SUSPENSE_LIST_SYMBOL_STRING = 'Symbol(react.suspense_list)';\n\nexport const SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED_SYMBOL_STRING =\n 'Symbol(react.server_context.defaultValue)';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/************************************************************************\n * This file is forked between different DevTools implementations.\n * It should never be imported directly!\n * It should always be imported from \"react-devtools-feature-flags\".\n ************************************************************************/\n\nexport const consoleManagedByDevToolsDuringStrictMode = false;\nexport const enableLogger = false;\nexport const enableStyleXFeatures = false;\nexport const isInternalFacebookBuild = false;\n\n/************************************************************************\n * Do not edit the code below.\n * It ensures this fork exports the same types as the default flags file.\n ************************************************************************/\n\nimport typeof * as FeatureFlagsType from './DevToolsFeatureFlags.default';\nimport typeof * as ExportsType from './DevToolsFeatureFlags.core-oss';\n\n// Flow magic to verify the exports of this file match the original version.\n((((null: any): ExportsType): FeatureFlagsType): ExportsType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst objectIs: (x: any, y: any) => boolean =\n // $FlowFixMe[method-unbinding]\n typeof Object.is === 'function' ? Object.is : is;\n\nexport default objectIs;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// $FlowFixMe[method-unbinding]\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport default hasOwnProperty;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {StyleXPlugin} from 'react-devtools-shared/src/frontend/types';\nimport isArray from 'react-devtools-shared/src/isArray';\n\nconst cachedStyleNameToValueMap: Map = new Map();\n\nexport function getStyleXData(data: any): StyleXPlugin {\n const sources = new Set();\n const resolvedStyles = {};\n\n crawlData(data, sources, resolvedStyles);\n\n return {\n sources: Array.from(sources).sort(),\n resolvedStyles,\n };\n}\n\nexport function crawlData(\n data: any,\n sources: Set,\n resolvedStyles: Object,\n): void {\n if (data == null) {\n return;\n }\n\n if (isArray(data)) {\n data.forEach(entry => {\n if (entry == null) {\n return;\n }\n\n if (isArray(entry)) {\n crawlData(entry, sources, resolvedStyles);\n } else {\n crawlObjectProperties(entry, sources, resolvedStyles);\n }\n });\n } else {\n crawlObjectProperties(data, sources, resolvedStyles);\n }\n\n resolvedStyles = Object.fromEntries(\n Object.entries(resolvedStyles).sort(),\n );\n}\n\nfunction crawlObjectProperties(\n entry: Object,\n sources: Set,\n resolvedStyles: Object,\n): void {\n const keys = Object.keys(entry);\n keys.forEach(key => {\n const value = entry[key];\n if (typeof value === 'string') {\n if (key === value) {\n // Special case; this key is the name of the style's source/file/module.\n sources.add(key);\n } else {\n const propertyValue = getPropertyValueForStyleName(value);\n if (propertyValue != null) {\n resolvedStyles[key] = propertyValue;\n }\n }\n } else {\n const nestedStyle = {};\n resolvedStyles[key] = nestedStyle;\n crawlData([value], sources, nestedStyle);\n }\n });\n}\n\nfunction getPropertyValueForStyleName(styleName: string): string | null {\n if (cachedStyleNameToValueMap.has(styleName)) {\n return ((cachedStyleNameToValueMap.get(styleName): any): string);\n }\n\n for (\n let styleSheetIndex = 0;\n styleSheetIndex < document.styleSheets.length;\n styleSheetIndex++\n ) {\n const styleSheet = ((document.styleSheets[\n styleSheetIndex\n ]: any): CSSStyleSheet);\n let rules: CSSRuleList | null = null;\n // this might throw if CORS rules are enforced https://www.w3.org/TR/cssom-1/#the-cssstylesheet-interface\n try {\n rules = styleSheet.cssRules;\n } catch (_e) {\n continue;\n }\n\n for (let ruleIndex = 0; ruleIndex < rules.length; ruleIndex++) {\n if (!(rules[ruleIndex] instanceof CSSStyleRule)) {\n continue;\n }\n const rule = ((rules[ruleIndex]: any): CSSStyleRule);\n const {cssText, selectorText, style} = rule;\n\n if (selectorText != null) {\n if (selectorText.startsWith(`.${styleName}`)) {\n const match = cssText.match(/{ *([a-z\\-]+):/);\n if (match !== null) {\n const property = match[1];\n const value = style.getPropertyValue(property);\n\n cachedStyleNameToValueMap.set(styleName, value);\n\n return value;\n } else {\n return null;\n }\n }\n }\n }\n }\n\n return null;\n}\n","export const CHANGE_LOG_URL =\n 'https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md';\n\nexport const UNSUPPORTED_VERSION_URL =\n 'https://reactjs.org/blog/2019/08/15/new-react-devtools.html#how-do-i-get-the-old-version-back';\n\nexport const REACT_DEVTOOLS_WORKPLACE_URL =\n 'https://fburl.com/react-devtools-workplace-group';\n\nimport type {\n Theme,\n DisplayDensity,\n} from './devtools/views/Settings/SettingsContext';\n\nexport const THEME_STYLES: {[style: Theme | DisplayDensity]: any, ...} = {\n light: {\n '--color-attribute-name': '#ef6632',\n '--color-attribute-name-not-editable': '#23272f',\n '--color-attribute-name-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-attribute-value': '#1a1aa6',\n '--color-attribute-value-inverted': '#ffffff',\n '--color-attribute-editable-value': '#1a1aa6',\n '--color-background': '#ffffff',\n '--color-background-hover': 'rgba(0, 136, 250, 0.1)',\n '--color-background-inactive': '#e5e5e5',\n '--color-background-invalid': '#fff0f0',\n '--color-background-selected': '#0088fa',\n '--color-button-background': '#ffffff',\n '--color-button-background-focus': '#ededed',\n '--color-button': '#5f6673',\n '--color-button-disabled': '#cfd1d5',\n '--color-button-active': '#0088fa',\n '--color-button-focus': '#23272f',\n '--color-button-hover': '#23272f',\n '--color-border': '#eeeeee',\n '--color-commit-did-not-render-fill': '#cfd1d5',\n '--color-commit-did-not-render-fill-text': '#000000',\n '--color-commit-did-not-render-pattern': '#cfd1d5',\n '--color-commit-did-not-render-pattern-text': '#333333',\n '--color-commit-gradient-0': '#37afa9',\n '--color-commit-gradient-1': '#63b19e',\n '--color-commit-gradient-2': '#80b393',\n '--color-commit-gradient-3': '#97b488',\n '--color-commit-gradient-4': '#abb67d',\n '--color-commit-gradient-5': '#beb771',\n '--color-commit-gradient-6': '#cfb965',\n '--color-commit-gradient-7': '#dfba57',\n '--color-commit-gradient-8': '#efbb49',\n '--color-commit-gradient-9': '#febc38',\n '--color-commit-gradient-text': '#000000',\n '--color-component-name': '#6a51b2',\n '--color-component-name-inverted': '#ffffff',\n '--color-component-badge-background': 'rgba(0, 0, 0, 0.1)',\n '--color-component-badge-background-inverted': 'rgba(255, 255, 255, 0.25)',\n '--color-component-badge-count': '#777d88',\n '--color-component-badge-count-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-console-error-badge-text': '#ffffff',\n '--color-console-error-background': '#fff0f0',\n '--color-console-error-border': '#ffd6d6',\n '--color-console-error-icon': '#eb3941',\n '--color-console-error-text': '#fe2e31',\n '--color-console-warning-badge-text': '#000000',\n '--color-console-warning-background': '#fffbe5',\n '--color-console-warning-border': '#fff5c1',\n '--color-console-warning-icon': '#f4bd00',\n '--color-console-warning-text': '#64460c',\n '--color-context-background': 'rgba(0,0,0,.9)',\n '--color-context-background-hover': 'rgba(255, 255, 255, 0.1)',\n '--color-context-background-selected': '#178fb9',\n '--color-context-border': '#3d424a',\n '--color-context-text': '#ffffff',\n '--color-context-text-selected': '#ffffff',\n '--color-dim': '#777d88',\n '--color-dimmer': '#cfd1d5',\n '--color-dimmest': '#eff0f1',\n '--color-error-background': 'hsl(0, 100%, 97%)',\n '--color-error-border': 'hsl(0, 100%, 92%)',\n '--color-error-text': '#ff0000',\n '--color-expand-collapse-toggle': '#777d88',\n '--color-link': '#0000ff',\n '--color-modal-background': 'rgba(255, 255, 255, 0.75)',\n '--color-bridge-version-npm-background': '#eff0f1',\n '--color-bridge-version-npm-text': '#000000',\n '--color-bridge-version-number': '#0088fa',\n '--color-primitive-hook-badge-background': '#e5e5e5',\n '--color-primitive-hook-badge-text': '#5f6673',\n '--color-record-active': '#fc3a4b',\n '--color-record-hover': '#3578e5',\n '--color-record-inactive': '#0088fa',\n '--color-resize-bar': '#eeeeee',\n '--color-resize-bar-active': '#dcdcdc',\n '--color-resize-bar-border': '#d1d1d1',\n '--color-resize-bar-dot': '#333333',\n '--color-timeline-internal-module': '#d1d1d1',\n '--color-timeline-internal-module-hover': '#c9c9c9',\n '--color-timeline-internal-module-text': '#444',\n '--color-timeline-native-event': '#ccc',\n '--color-timeline-native-event-hover': '#aaa',\n '--color-timeline-network-primary': '#fcf3dc',\n '--color-timeline-network-primary-hover': '#f0e7d1',\n '--color-timeline-network-secondary': '#efc457',\n '--color-timeline-network-secondary-hover': '#e3ba52',\n '--color-timeline-priority-background': '#f6f6f6',\n '--color-timeline-priority-border': '#eeeeee',\n '--color-timeline-user-timing': '#c9cacd',\n '--color-timeline-user-timing-hover': '#93959a',\n '--color-timeline-react-idle': '#d3e5f6',\n '--color-timeline-react-idle-hover': '#c3d9ef',\n '--color-timeline-react-render': '#9fc3f3',\n '--color-timeline-react-render-hover': '#83afe9',\n '--color-timeline-react-render-text': '#11365e',\n '--color-timeline-react-commit': '#c88ff0',\n '--color-timeline-react-commit-hover': '#b281d6',\n '--color-timeline-react-commit-text': '#3e2c4a',\n '--color-timeline-react-layout-effects': '#b281d6',\n '--color-timeline-react-layout-effects-hover': '#9d71bd',\n '--color-timeline-react-layout-effects-text': '#3e2c4a',\n '--color-timeline-react-passive-effects': '#b281d6',\n '--color-timeline-react-passive-effects-hover': '#9d71bd',\n '--color-timeline-react-passive-effects-text': '#3e2c4a',\n '--color-timeline-react-schedule': '#9fc3f3',\n '--color-timeline-react-schedule-hover': '#2683E2',\n '--color-timeline-react-suspense-rejected': '#f1cc14',\n '--color-timeline-react-suspense-rejected-hover': '#ffdf37',\n '--color-timeline-react-suspense-resolved': '#a6e59f',\n '--color-timeline-react-suspense-resolved-hover': '#89d281',\n '--color-timeline-react-suspense-unresolved': '#c9cacd',\n '--color-timeline-react-suspense-unresolved-hover': '#93959a',\n '--color-timeline-thrown-error': '#ee1638',\n '--color-timeline-thrown-error-hover': '#da1030',\n '--color-timeline-text-color': '#000000',\n '--color-timeline-text-dim-color': '#ccc',\n '--color-timeline-react-work-border': '#eeeeee',\n '--color-search-match': 'yellow',\n '--color-search-match-current': '#f7923b',\n '--color-selected-tree-highlight-active': 'rgba(0, 136, 250, 0.1)',\n '--color-selected-tree-highlight-inactive': 'rgba(0, 0, 0, 0.05)',\n '--color-scroll-caret': 'rgba(150, 150, 150, 0.5)',\n '--color-tab-selected-border': '#0088fa',\n '--color-text': '#000000',\n '--color-text-invalid': '#ff0000',\n '--color-text-selected': '#ffffff',\n '--color-toggle-background-invalid': '#fc3a4b',\n '--color-toggle-background-on': '#0088fa',\n '--color-toggle-background-off': '#cfd1d5',\n '--color-toggle-text': '#ffffff',\n '--color-warning-background': '#fb3655',\n '--color-warning-background-hover': '#f82042',\n '--color-warning-text-color': '#ffffff',\n '--color-warning-text-color-inverted': '#fd4d69',\n\n // The styles below should be kept in sync with 'root.css'\n // They are repeated there because they're used by e.g. tooltips or context menus\n // which get rendered outside of the DOM subtree (where normal theme/styles are written).\n '--color-scroll-thumb': '#c2c2c2',\n '--color-scroll-track': '#fafafa',\n '--color-tooltip-background': 'rgba(0, 0, 0, 0.9)',\n '--color-tooltip-text': '#ffffff',\n },\n dark: {\n '--color-attribute-name': '#9d87d2',\n '--color-attribute-name-not-editable': '#ededed',\n '--color-attribute-name-inverted': '#282828',\n '--color-attribute-value': '#cedae0',\n '--color-attribute-value-inverted': '#ffffff',\n '--color-attribute-editable-value': 'yellow',\n '--color-background': '#282c34',\n '--color-background-hover': 'rgba(255, 255, 255, 0.1)',\n '--color-background-inactive': '#3d424a',\n '--color-background-invalid': '#5c0000',\n '--color-background-selected': '#178fb9',\n '--color-button-background': '#282c34',\n '--color-button-background-focus': '#3d424a',\n '--color-button': '#afb3b9',\n '--color-button-active': '#61dafb',\n '--color-button-disabled': '#4f5766',\n '--color-button-focus': '#a2e9fc',\n '--color-button-hover': '#ededed',\n '--color-border': '#3d424a',\n '--color-commit-did-not-render-fill': '#777d88',\n '--color-commit-did-not-render-fill-text': '#000000',\n '--color-commit-did-not-render-pattern': '#666c77',\n '--color-commit-did-not-render-pattern-text': '#ffffff',\n '--color-commit-gradient-0': '#37afa9',\n '--color-commit-gradient-1': '#63b19e',\n '--color-commit-gradient-2': '#80b393',\n '--color-commit-gradient-3': '#97b488',\n '--color-commit-gradient-4': '#abb67d',\n '--color-commit-gradient-5': '#beb771',\n '--color-commit-gradient-6': '#cfb965',\n '--color-commit-gradient-7': '#dfba57',\n '--color-commit-gradient-8': '#efbb49',\n '--color-commit-gradient-9': '#febc38',\n '--color-commit-gradient-text': '#000000',\n '--color-component-name': '#61dafb',\n '--color-component-name-inverted': '#282828',\n '--color-component-badge-background': 'rgba(255, 255, 255, 0.25)',\n '--color-component-badge-background-inverted': 'rgba(0, 0, 0, 0.25)',\n '--color-component-badge-count': '#8f949d',\n '--color-component-badge-count-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-console-error-badge-text': '#000000',\n '--color-console-error-background': '#290000',\n '--color-console-error-border': '#5c0000',\n '--color-console-error-icon': '#eb3941',\n '--color-console-error-text': '#fc7f7f',\n '--color-console-warning-badge-text': '#000000',\n '--color-console-warning-background': '#332b00',\n '--color-console-warning-border': '#665500',\n '--color-console-warning-icon': '#f4bd00',\n '--color-console-warning-text': '#f5f2ed',\n '--color-context-background': 'rgba(255,255,255,.95)',\n '--color-context-background-hover': 'rgba(0, 136, 250, 0.1)',\n '--color-context-background-selected': '#0088fa',\n '--color-context-border': '#eeeeee',\n '--color-context-text': '#000000',\n '--color-context-text-selected': '#ffffff',\n '--color-dim': '#8f949d',\n '--color-dimmer': '#777d88',\n '--color-dimmest': '#4f5766',\n '--color-error-background': '#200',\n '--color-error-border': '#900',\n '--color-error-text': '#f55',\n '--color-expand-collapse-toggle': '#8f949d',\n '--color-link': '#61dafb',\n '--color-modal-background': 'rgba(0, 0, 0, 0.75)',\n '--color-bridge-version-npm-background': 'rgba(0, 0, 0, 0.25)',\n '--color-bridge-version-npm-text': '#ffffff',\n '--color-bridge-version-number': 'yellow',\n '--color-primitive-hook-badge-background': 'rgba(0, 0, 0, 0.25)',\n '--color-primitive-hook-badge-text': 'rgba(255, 255, 255, 0.7)',\n '--color-record-active': '#fc3a4b',\n '--color-record-hover': '#a2e9fc',\n '--color-record-inactive': '#61dafb',\n '--color-resize-bar': '#282c34',\n '--color-resize-bar-active': '#31363f',\n '--color-resize-bar-border': '#3d424a',\n '--color-resize-bar-dot': '#cfd1d5',\n '--color-timeline-internal-module': '#303542',\n '--color-timeline-internal-module-hover': '#363b4a',\n '--color-timeline-internal-module-text': '#7f8899',\n '--color-timeline-native-event': '#b2b2b2',\n '--color-timeline-native-event-hover': '#949494',\n '--color-timeline-network-primary': '#fcf3dc',\n '--color-timeline-network-primary-hover': '#e3dbc5',\n '--color-timeline-network-secondary': '#efc457',\n '--color-timeline-network-secondary-hover': '#d6af4d',\n '--color-timeline-priority-background': '#1d2129',\n '--color-timeline-priority-border': '#282c34',\n '--color-timeline-user-timing': '#c9cacd',\n '--color-timeline-user-timing-hover': '#93959a',\n '--color-timeline-react-idle': '#3d485b',\n '--color-timeline-react-idle-hover': '#465269',\n '--color-timeline-react-render': '#2683E2',\n '--color-timeline-react-render-hover': '#1a76d4',\n '--color-timeline-react-render-text': '#11365e',\n '--color-timeline-react-commit': '#731fad',\n '--color-timeline-react-commit-hover': '#611b94',\n '--color-timeline-react-commit-text': '#e5c1ff',\n '--color-timeline-react-layout-effects': '#611b94',\n '--color-timeline-react-layout-effects-hover': '#51167a',\n '--color-timeline-react-layout-effects-text': '#e5c1ff',\n '--color-timeline-react-passive-effects': '#611b94',\n '--color-timeline-react-passive-effects-hover': '#51167a',\n '--color-timeline-react-passive-effects-text': '#e5c1ff',\n '--color-timeline-react-schedule': '#2683E2',\n '--color-timeline-react-schedule-hover': '#1a76d4',\n '--color-timeline-react-suspense-rejected': '#f1cc14',\n '--color-timeline-react-suspense-rejected-hover': '#e4c00f',\n '--color-timeline-react-suspense-resolved': '#a6e59f',\n '--color-timeline-react-suspense-resolved-hover': '#89d281',\n '--color-timeline-react-suspense-unresolved': '#c9cacd',\n '--color-timeline-react-suspense-unresolved-hover': '#93959a',\n '--color-timeline-thrown-error': '#fb3655',\n '--color-timeline-thrown-error-hover': '#f82042',\n '--color-timeline-text-color': '#282c34',\n '--color-timeline-text-dim-color': '#555b66',\n '--color-timeline-react-work-border': '#3d424a',\n '--color-search-match': 'yellow',\n '--color-search-match-current': '#f7923b',\n '--color-selected-tree-highlight-active': 'rgba(23, 143, 185, 0.15)',\n '--color-selected-tree-highlight-inactive': 'rgba(255, 255, 255, 0.05)',\n '--color-scroll-caret': '#4f5766',\n '--color-shadow': 'rgba(0, 0, 0, 0.5)',\n '--color-tab-selected-border': '#178fb9',\n '--color-text': '#ffffff',\n '--color-text-invalid': '#ff8080',\n '--color-text-selected': '#ffffff',\n '--color-toggle-background-invalid': '#fc3a4b',\n '--color-toggle-background-on': '#178fb9',\n '--color-toggle-background-off': '#777d88',\n '--color-toggle-text': '#ffffff',\n '--color-warning-background': '#ee1638',\n '--color-warning-background-hover': '#da1030',\n '--color-warning-text-color': '#ffffff',\n '--color-warning-text-color-inverted': '#ee1638',\n\n // The styles below should be kept in sync with 'root.css'\n // They are repeated there because they're used by e.g. tooltips or context menus\n // which get rendered outside of the DOM subtree (where normal theme/styles are written).\n '--color-scroll-thumb': '#afb3b9',\n '--color-scroll-track': '#313640',\n '--color-tooltip-background': 'rgba(255, 255, 255, 0.95)',\n '--color-tooltip-text': '#000000',\n },\n compact: {\n '--font-size-monospace-small': '9px',\n '--font-size-monospace-normal': '11px',\n '--font-size-monospace-large': '15px',\n '--font-size-sans-small': '10px',\n '--font-size-sans-normal': '12px',\n '--font-size-sans-large': '14px',\n '--line-height-data': '18px',\n },\n comfortable: {\n '--font-size-monospace-small': '10px',\n '--font-size-monospace-normal': '13px',\n '--font-size-monospace-large': '17px',\n '--font-size-sans-small': '12px',\n '--font-size-sans-normal': '14px',\n '--font-size-sans-large': '16px',\n '--line-height-data': '22px',\n },\n};\n\n// HACK\n//\n// Sometimes the inline target is rendered before root styles are applied,\n// which would result in e.g. NaN itemSize being passed to react-window list.\nconst COMFORTABLE_LINE_HEIGHT: number = parseInt(\n THEME_STYLES.comfortable['--line-height-data'],\n 10,\n);\nconst COMPACT_LINE_HEIGHT: number = parseInt(\n THEME_STYLES.compact['--line-height-data'],\n 10,\n);\n\nexport {COMFORTABLE_LINE_HEIGHT, COMPACT_LINE_HEIGHT};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport {\n COMFORTABLE_LINE_HEIGHT,\n COMPACT_LINE_HEIGHT,\n} from 'react-devtools-shared/src/devtools/constants.js';\n\nexport const REACT_TOTAL_NUM_LANES = 31;\n\n// Increment this number any time a backwards breaking change is made to the profiler metadata.\nexport const SCHEDULING_PROFILER_VERSION = 1;\n\nexport const SNAPSHOT_MAX_HEIGHT = 60;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of shared/ConsolePatchingDev.\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\n\nlet disabledDepth = 0;\nlet prevLog;\nlet prevInfo;\nlet prevWarn;\nlet prevError;\nlet prevGroup;\nlet prevGroupCollapsed;\nlet prevGroupEnd;\n\nfunction disabledLog() {}\ndisabledLog.__reactDisabledLog = true;\n\nexport function disableLogs(): void {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n // https://github.com/facebook/react/issues/19099\n const props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true,\n };\n // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props,\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n disabledDepth++;\n}\n\nexport function reenableLogs(): void {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n const props = {\n configurable: true,\n enumerable: true,\n writable: true,\n };\n // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: {...props, value: prevLog},\n info: {...props, value: prevInfo},\n warn: {...props, value: prevWarn},\n error: {...props, value: prevError},\n group: {...props, value: prevGroup},\n groupCollapsed: {...props, value: prevGroupCollapsed},\n groupEnd: {...props, value: prevGroupEnd},\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n if (disabledDepth < 0) {\n console.error(\n 'disabledDepth fell below zero. ' +\n 'This is a bug in React. Please file an issue.',\n );\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of ReactComponentStackFrame.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\nimport type {LazyComponent} from 'react/src/ReactLazy';\nimport type {CurrentDispatcherRef} from './types';\n\nimport {\n FORWARD_REF_NUMBER,\n FORWARD_REF_SYMBOL_STRING,\n LAZY_NUMBER,\n LAZY_SYMBOL_STRING,\n MEMO_NUMBER,\n MEMO_SYMBOL_STRING,\n SUSPENSE_NUMBER,\n SUSPENSE_SYMBOL_STRING,\n SUSPENSE_LIST_NUMBER,\n SUSPENSE_LIST_SYMBOL_STRING,\n} from './ReactSymbols';\n\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\nimport {disableLogs, reenableLogs} from './DevToolsConsolePatching';\n\nlet prefix;\nexport function describeBuiltInComponentFrame(\n name: string,\n ownerFn: void | null | Function,\n): string {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n const match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || '';\n }\n }\n // We use the prefix to ensure our stacks line up with native stack frames.\n return '\\n' + prefix + name;\n}\n\nlet reentry = false;\nlet componentFrameCache;\nif (__DEV__) {\n const PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap<$FlowFixMe, string>();\n}\n\nexport function describeNativeComponentFrame(\n fn: Function,\n construct: boolean,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n if (__DEV__) {\n const frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n\n let control;\n\n const previousPrepareStackTrace = Error.prepareStackTrace;\n // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n\n reentry = true;\n\n // Override the dispatcher so effects scheduled by this shallow render are thrown away.\n //\n // Note that unlike the code this was forked from (in ReactComponentStackFrame)\n // DevTools should override the dispatcher even when DevTools is compiled in production mode,\n // because the app itself may be in development mode and log errors/warnings.\n const previousDispatcher = currentDispatcherRef.current;\n currentDispatcherRef.current = null;\n disableLogs();\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n const Fake = function () {\n throw Error();\n };\n // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n },\n });\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n const sampleLines = sample.stack.split('\\n');\n const controlLines = control.stack.split('\\n');\n let s = sampleLines.length - 1;\n let c = controlLines.length - 1;\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--;\n // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n const frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n if (__DEV__) {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, frame);\n }\n }\n // Return the line we found.\n return frame;\n }\n } while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n\n currentDispatcherRef.current = previousDispatcher;\n reenableLogs();\n }\n // Fallback to just using the name if we couldn't make it throw.\n const name = fn ? fn.displayName || fn.name : '';\n const syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n if (__DEV__) {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n}\n\nexport function describeClassComponentFrame(\n ctor: Function,\n ownerFn: void | null | Function,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n return describeNativeComponentFrame(ctor, true, currentDispatcherRef);\n}\n\nexport function describeFunctionComponentFrame(\n fn: Function,\n ownerFn: void | null | Function,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n return describeNativeComponentFrame(fn, false, currentDispatcherRef);\n}\n\nfunction shouldConstruct(Component: Function) {\n const prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nexport function describeUnknownElementTypeFrameInDEV(\n type: any,\n ownerFn: void | null | Function,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n if (!__DEV__) {\n return '';\n }\n if (type == null) {\n return '';\n }\n if (typeof type === 'function') {\n return describeNativeComponentFrame(\n type,\n shouldConstruct(type),\n currentDispatcherRef,\n );\n }\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type, ownerFn);\n }\n switch (type) {\n case SUSPENSE_NUMBER:\n case SUSPENSE_SYMBOL_STRING:\n return describeBuiltInComponentFrame('Suspense', ownerFn);\n case SUSPENSE_LIST_NUMBER:\n case SUSPENSE_LIST_SYMBOL_STRING:\n return describeBuiltInComponentFrame('SuspenseList', ownerFn);\n }\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case FORWARD_REF_NUMBER:\n case FORWARD_REF_SYMBOL_STRING:\n return describeFunctionComponentFrame(\n type.render,\n ownerFn,\n currentDispatcherRef,\n );\n case MEMO_NUMBER:\n case MEMO_SYMBOL_STRING:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(\n type.type,\n ownerFn,\n currentDispatcherRef,\n );\n case LAZY_NUMBER:\n case LAZY_SYMBOL_STRING: {\n const lazyComponent: LazyComponent = (type: any);\n const payload = lazyComponent._payload;\n const init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(\n init(payload),\n ownerFn,\n currentDispatcherRef,\n );\n } catch (x) {}\n }\n }\n }\n return '';\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of ReactFiberComponentStack.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {CurrentDispatcherRef, WorkTagMap} from './types';\n\nimport {\n describeBuiltInComponentFrame,\n describeFunctionComponentFrame,\n describeClassComponentFrame,\n} from './DevToolsComponentStackFrame';\n\nexport function describeFiber(\n workTagMap: WorkTagMap,\n workInProgress: Fiber,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n const {\n HostComponent,\n LazyComponent,\n SuspenseComponent,\n SuspenseListComponent,\n FunctionComponent,\n IndeterminateComponent,\n SimpleMemoComponent,\n ForwardRef,\n ClassComponent,\n } = workTagMap;\n\n const owner: null | Function = __DEV__\n ? workInProgress._debugOwner\n ? workInProgress._debugOwner.type\n : null\n : null;\n switch (workInProgress.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(workInProgress.type, owner);\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy', owner);\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense', owner);\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList', owner);\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(\n workInProgress.type,\n owner,\n currentDispatcherRef,\n );\n case ForwardRef:\n return describeFunctionComponentFrame(\n workInProgress.type.render,\n owner,\n currentDispatcherRef,\n );\n case ClassComponent:\n return describeClassComponentFrame(\n workInProgress.type,\n owner,\n currentDispatcherRef,\n );\n default:\n return '';\n }\n}\n\nexport function getStackByFiberInDevAndProd(\n workTagMap: WorkTagMap,\n workInProgress: Fiber,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n try {\n let info = '';\n let node: Fiber = workInProgress;\n do {\n info += describeFiber(workTagMap, node, currentDispatcherRef);\n // $FlowFixMe[incompatible-type] we bail out when we get a null\n node = node.return;\n } while (node);\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {\n Lane,\n Lanes,\n DevToolsProfilingHooks,\n WorkTagMap,\n CurrentDispatcherRef,\n} from 'react-devtools-shared/src/backend/types';\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {Wakeable} from 'shared/ReactTypes';\nimport type {\n BatchUID,\n InternalModuleSourceToRanges,\n LaneToLabelMap,\n ReactComponentMeasure,\n ReactLane,\n ReactMeasure,\n ReactMeasureType,\n ReactScheduleStateUpdateEvent,\n SchedulingEvent,\n SuspenseEvent,\n TimelineData,\n} from 'react-devtools-timeline/src/types';\n\nimport isArray from 'shared/isArray';\nimport {\n REACT_TOTAL_NUM_LANES,\n SCHEDULING_PROFILER_VERSION,\n} from 'react-devtools-timeline/src/constants';\nimport {describeFiber} from './DevToolsFiberComponentStack';\n\n// Add padding to the start/stop time of the profile.\n// This makes the UI nicer to use.\nconst TIME_OFFSET = 10;\n\nlet performanceTarget: Performance | null = null;\n\n// If performance exists and supports the subset of the User Timing API that we require.\nlet supportsUserTiming =\n typeof performance !== 'undefined' &&\n // $FlowFixMe[method-unbinding]\n typeof performance.mark === 'function' &&\n // $FlowFixMe[method-unbinding]\n typeof performance.clearMarks === 'function';\n\nlet supportsUserTimingV3 = false;\nif (supportsUserTiming) {\n const CHECK_V3_MARK = '__v3';\n const markOptions: {\n detail?: mixed,\n startTime?: number,\n } = {};\n Object.defineProperty(markOptions, 'startTime', {\n get: function () {\n supportsUserTimingV3 = true;\n return 0;\n },\n set: function () {},\n });\n\n try {\n performance.mark(CHECK_V3_MARK, markOptions);\n } catch (error) {\n // Ignore\n } finally {\n performance.clearMarks(CHECK_V3_MARK);\n }\n}\n\nif (supportsUserTimingV3) {\n performanceTarget = performance;\n}\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n // $FlowFixMe[method-unbinding]\n typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\n// Mocking the Performance Object (and User Timing APIs) for testing is fragile.\n// This API allows tests to directly override the User Timing APIs.\nexport function setPerformanceMock_ONLY_FOR_TESTING(\n performanceMock: Performance | null,\n) {\n performanceTarget = performanceMock;\n supportsUserTiming = performanceMock !== null;\n supportsUserTimingV3 = performanceMock !== null;\n}\n\nexport type GetTimelineData = () => TimelineData | null;\nexport type ToggleProfilingStatus = (value: boolean) => void;\n\ntype Response = {\n getTimelineData: GetTimelineData,\n profilingHooks: DevToolsProfilingHooks,\n toggleProfilingStatus: ToggleProfilingStatus,\n};\n\nexport function createProfilingHooks({\n getDisplayNameForFiber,\n getIsProfiling,\n getLaneLabelMap,\n workTagMap,\n currentDispatcherRef,\n reactVersion,\n}: {\n getDisplayNameForFiber: (fiber: Fiber) => string | null,\n getIsProfiling: () => boolean,\n getLaneLabelMap?: () => Map | null,\n currentDispatcherRef?: CurrentDispatcherRef,\n workTagMap: WorkTagMap,\n reactVersion: string,\n}): Response {\n let currentBatchUID: BatchUID = 0;\n let currentReactComponentMeasure: ReactComponentMeasure | null = null;\n let currentReactMeasuresStack: Array = [];\n let currentTimelineData: TimelineData | null = null;\n let currentFiberStacks: Map> = new Map();\n let isProfiling: boolean = false;\n let nextRenderShouldStartNewBatch: boolean = false;\n\n function getRelativeTime() {\n const currentTime = getCurrentTime();\n\n if (currentTimelineData) {\n if (currentTimelineData.startTime === 0) {\n currentTimelineData.startTime = currentTime - TIME_OFFSET;\n }\n\n return currentTime - currentTimelineData.startTime;\n }\n\n return 0;\n }\n\n function getInternalModuleRanges() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges ===\n 'function'\n ) {\n // Ask the DevTools hook for module ranges that may have been reported by the current renderer(s).\n // Don't do this eagerly like the laneToLabelMap,\n // because some modules might not yet have registered their boundaries when the renderer is injected.\n const ranges = __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges();\n\n // This check would not be required,\n // except that it's possible for things to override __REACT_DEVTOOLS_GLOBAL_HOOK__.\n if (isArray(ranges)) {\n return ranges;\n }\n }\n\n return null;\n }\n\n function getTimelineData(): TimelineData | null {\n return currentTimelineData;\n }\n\n function laneToLanesArray(lanes: Lane) {\n const lanesArray = [];\n\n let lane = 1;\n for (let index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n if (lane & lanes) {\n lanesArray.push(lane);\n }\n lane *= 2;\n }\n\n return lanesArray;\n }\n\n const laneToLabelMap: LaneToLabelMap | null =\n typeof getLaneLabelMap === 'function' ? getLaneLabelMap() : null;\n\n function markMetadata() {\n markAndClear(`--react-version-${reactVersion}`);\n markAndClear(`--profiler-version-${SCHEDULING_PROFILER_VERSION}`);\n\n const ranges = getInternalModuleRanges();\n if (ranges) {\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (isArray(range) && range.length === 2) {\n const [startStackFrame, stopStackFrame] = ranges[i];\n\n markAndClear(`--react-internal-module-start-${startStackFrame}`);\n markAndClear(`--react-internal-module-stop-${stopStackFrame}`);\n }\n }\n }\n\n if (laneToLabelMap != null) {\n const labels = Array.from(laneToLabelMap.values()).join(',');\n markAndClear(`--react-lane-labels-${labels}`);\n }\n }\n\n function markAndClear(markName: string) {\n // This method won't be called unless these functions are defined, so we can skip the extra typeof check.\n ((performanceTarget: any): Performance).mark(markName);\n ((performanceTarget: any): Performance).clearMarks(markName);\n }\n\n function recordReactMeasureStarted(\n type: ReactMeasureType,\n lanes: Lanes,\n ): void {\n // Decide what depth thi work should be rendered at, based on what's on the top of the stack.\n // It's okay to render over top of \"idle\" work but everything else should be on its own row.\n let depth = 0;\n if (currentReactMeasuresStack.length > 0) {\n const top =\n currentReactMeasuresStack[currentReactMeasuresStack.length - 1];\n depth = top.type === 'render-idle' ? top.depth : top.depth + 1;\n }\n\n const lanesArray = laneToLanesArray(lanes);\n\n const reactMeasure: ReactMeasure = {\n type,\n batchUID: currentBatchUID,\n depth,\n lanes: lanesArray,\n timestamp: getRelativeTime(),\n duration: 0,\n };\n\n currentReactMeasuresStack.push(reactMeasure);\n\n if (currentTimelineData) {\n const {batchUIDToMeasuresMap, laneToReactMeasureMap} =\n currentTimelineData;\n\n let reactMeasures = batchUIDToMeasuresMap.get(currentBatchUID);\n if (reactMeasures != null) {\n reactMeasures.push(reactMeasure);\n } else {\n batchUIDToMeasuresMap.set(currentBatchUID, [reactMeasure]);\n }\n\n lanesArray.forEach(lane => {\n reactMeasures = laneToReactMeasureMap.get(lane);\n if (reactMeasures) {\n reactMeasures.push(reactMeasure);\n }\n });\n }\n }\n\n function recordReactMeasureCompleted(type: ReactMeasureType): void {\n const currentTime = getRelativeTime();\n\n if (currentReactMeasuresStack.length === 0) {\n console.error(\n 'Unexpected type \"%s\" completed at %sms while currentReactMeasuresStack is empty.',\n type,\n currentTime,\n );\n // Ignore work \"completion\" user timing mark that doesn't complete anything\n return;\n }\n\n const top = currentReactMeasuresStack.pop();\n if (top.type !== type) {\n console.error(\n 'Unexpected type \"%s\" completed at %sms before \"%s\" completed.',\n type,\n currentTime,\n top.type,\n );\n }\n\n // $FlowFixMe[cannot-write] This property should not be writable outside of this function.\n top.duration = currentTime - top.timestamp;\n\n if (currentTimelineData) {\n currentTimelineData.duration = getRelativeTime() + TIME_OFFSET;\n }\n }\n\n function markCommitStarted(lanes: Lanes): void {\n if (isProfiling) {\n recordReactMeasureStarted('commit', lanes);\n\n // TODO (timeline) Re-think this approach to \"batching\"; I don't think it works for Suspense or pre-rendering.\n // This issue applies to the User Timing data also.\n nextRenderShouldStartNewBatch = true;\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--commit-start-${lanes}`);\n\n // Some metadata only needs to be logged once per session,\n // but if profiling information is being recorded via the Performance tab,\n // DevTools has no way of knowing when the recording starts.\n // Because of that, we log thie type of data periodically (once per commit).\n markMetadata();\n }\n }\n\n function markCommitStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('commit');\n recordReactMeasureCompleted('render-idle');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--commit-stop');\n }\n }\n\n function markComponentRenderStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'render',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--component-render-start-${componentName}`);\n }\n }\n }\n\n function markComponentRenderStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-render-stop');\n }\n }\n\n function markComponentLayoutEffectMountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'layout-effect-mount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--component-layout-effect-mount-start-${componentName}`);\n }\n }\n }\n\n function markComponentLayoutEffectMountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-layout-effect-mount-stop');\n }\n }\n\n function markComponentLayoutEffectUnmountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'layout-effect-unmount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\n `--component-layout-effect-unmount-start-${componentName}`,\n );\n }\n }\n }\n\n function markComponentLayoutEffectUnmountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-layout-effect-unmount-stop');\n }\n }\n\n function markComponentPassiveEffectMountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'passive-effect-mount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--component-passive-effect-mount-start-${componentName}`);\n }\n }\n }\n\n function markComponentPassiveEffectMountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-passive-effect-mount-stop');\n }\n }\n\n function markComponentPassiveEffectUnmountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'passive-effect-unmount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\n `--component-passive-effect-unmount-start-${componentName}`,\n );\n }\n }\n }\n\n function markComponentPassiveEffectUnmountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-passive-effect-unmount-stop');\n }\n }\n\n function markComponentErrored(\n fiber: Fiber,\n thrownValue: mixed,\n lanes: Lanes,\n ): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n const phase = fiber.alternate === null ? 'mount' : 'update';\n\n let message = '';\n if (\n thrownValue !== null &&\n typeof thrownValue === 'object' &&\n typeof thrownValue.message === 'string'\n ) {\n message = thrownValue.message;\n } else if (typeof thrownValue === 'string') {\n message = thrownValue;\n }\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n currentTimelineData.thrownErrors.push({\n componentName,\n message,\n phase,\n timestamp: getRelativeTime(),\n type: 'thrown-error',\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--error-${componentName}-${phase}-${message}`);\n }\n }\n }\n\n const PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n\n // $FlowFixMe[incompatible-type]: Flow cannot handle polymorphic WeakMaps\n const wakeableIDs: WeakMap = new PossiblyWeakMap();\n let wakeableID: number = 0;\n function getWakeableID(wakeable: Wakeable): number {\n if (!wakeableIDs.has(wakeable)) {\n wakeableIDs.set(wakeable, wakeableID++);\n }\n return ((wakeableIDs.get(wakeable): any): number);\n }\n\n function markComponentSuspended(\n fiber: Fiber,\n wakeable: Wakeable,\n lanes: Lanes,\n ): void {\n if (isProfiling || supportsUserTimingV3) {\n const eventType = wakeableIDs.has(wakeable) ? 'resuspend' : 'suspend';\n const id = getWakeableID(wakeable);\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n const phase = fiber.alternate === null ? 'mount' : 'update';\n\n // Following the non-standard fn.displayName convention,\n // frameworks like Relay may also annotate Promises with a displayName,\n // describing what operation/data the thrown Promise is related to.\n // When this is available we should pass it along to the Timeline.\n const displayName = (wakeable: any).displayName || '';\n\n let suspenseEvent: SuspenseEvent | null = null;\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n suspenseEvent = {\n componentName,\n depth: 0,\n duration: 0,\n id: `${id}`,\n phase,\n promiseName: displayName,\n resolution: 'unresolved',\n timestamp: getRelativeTime(),\n type: 'suspense',\n warning: null,\n };\n\n if (currentTimelineData) {\n currentTimelineData.suspenseEvents.push(suspenseEvent);\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\n `--suspense-${eventType}-${id}-${componentName}-${phase}-${lanes}-${displayName}`,\n );\n }\n\n wakeable.then(\n () => {\n if (suspenseEvent) {\n suspenseEvent.duration =\n getRelativeTime() - suspenseEvent.timestamp;\n suspenseEvent.resolution = 'resolved';\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--suspense-resolved-${id}-${componentName}`);\n }\n },\n () => {\n if (suspenseEvent) {\n suspenseEvent.duration =\n getRelativeTime() - suspenseEvent.timestamp;\n suspenseEvent.resolution = 'rejected';\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--suspense-rejected-${id}-${componentName}`);\n }\n },\n );\n }\n }\n\n function markLayoutEffectsStarted(lanes: Lanes): void {\n if (isProfiling) {\n recordReactMeasureStarted('layout-effects', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--layout-effects-start-${lanes}`);\n }\n }\n\n function markLayoutEffectsStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('layout-effects');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--layout-effects-stop');\n }\n }\n\n function markPassiveEffectsStarted(lanes: Lanes): void {\n if (isProfiling) {\n recordReactMeasureStarted('passive-effects', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--passive-effects-start-${lanes}`);\n }\n }\n\n function markPassiveEffectsStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('passive-effects');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--passive-effects-stop');\n }\n }\n\n function markRenderStarted(lanes: Lanes): void {\n if (isProfiling) {\n if (nextRenderShouldStartNewBatch) {\n nextRenderShouldStartNewBatch = false;\n currentBatchUID++;\n }\n\n // If this is a new batch of work, wrap an \"idle\" measure around it.\n // Log it before the \"render\" measure to preserve the stack ordering.\n if (\n currentReactMeasuresStack.length === 0 ||\n currentReactMeasuresStack[currentReactMeasuresStack.length - 1].type !==\n 'render-idle'\n ) {\n recordReactMeasureStarted('render-idle', lanes);\n }\n\n recordReactMeasureStarted('render', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--render-start-${lanes}`);\n }\n }\n\n function markRenderYielded(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('render');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--render-yield');\n }\n }\n\n function markRenderStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('render');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--render-stop');\n }\n }\n\n function markRenderScheduled(lane: Lane): void {\n if (isProfiling) {\n if (currentTimelineData) {\n currentTimelineData.schedulingEvents.push({\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-render',\n warning: null,\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--schedule-render-${lane}`);\n }\n }\n\n function markForceUpdateScheduled(fiber: Fiber, lane: Lane): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n currentTimelineData.schedulingEvents.push({\n componentName,\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-force-update',\n warning: null,\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--schedule-forced-update-${lane}-${componentName}`);\n }\n }\n }\n\n function getParentFibers(fiber: Fiber): Array {\n const parents = [];\n let parent: null | Fiber = fiber;\n while (parent !== null) {\n parents.push(parent);\n parent = parent.return;\n }\n return parents;\n }\n\n function markStateUpdateScheduled(fiber: Fiber, lane: Lane): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n const event: ReactScheduleStateUpdateEvent = {\n componentName,\n // Store the parent fibers so we can post process\n // them after we finish profiling\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-state-update',\n warning: null,\n };\n currentFiberStacks.set(event, getParentFibers(fiber));\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentTimelineData.schedulingEvents.push(event);\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--schedule-state-update-${lane}-${componentName}`);\n }\n }\n }\n\n function toggleProfilingStatus(value: boolean) {\n if (isProfiling !== value) {\n isProfiling = value;\n\n if (isProfiling) {\n const internalModuleSourceToRanges: InternalModuleSourceToRanges =\n new Map();\n\n if (supportsUserTimingV3) {\n const ranges = getInternalModuleRanges();\n if (ranges) {\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (isArray(range) && range.length === 2) {\n const [startStackFrame, stopStackFrame] = ranges[i];\n\n markAndClear(\n `--react-internal-module-start-${startStackFrame}`,\n );\n markAndClear(`--react-internal-module-stop-${stopStackFrame}`);\n }\n }\n }\n }\n\n const laneToReactMeasureMap = new Map();\n let lane = 1;\n for (let index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n laneToReactMeasureMap.set(lane, []);\n lane *= 2;\n }\n\n currentBatchUID = 0;\n currentReactComponentMeasure = null;\n currentReactMeasuresStack = [];\n currentFiberStacks = new Map();\n currentTimelineData = {\n // Session wide metadata; only collected once.\n internalModuleSourceToRanges,\n laneToLabelMap: laneToLabelMap || new Map(),\n reactVersion,\n\n // Data logged by React during profiling session.\n componentMeasures: [],\n schedulingEvents: [],\n suspenseEvents: [],\n thrownErrors: [],\n\n // Data inferred based on what React logs.\n batchUIDToMeasuresMap: new Map(),\n duration: 0,\n laneToReactMeasureMap,\n startTime: 0,\n\n // Data only available in Chrome profiles.\n flamechart: [],\n nativeEvents: [],\n networkMeasures: [],\n otherUserTimingMarks: [],\n snapshots: [],\n snapshotHeight: 0,\n };\n nextRenderShouldStartNewBatch = true;\n } else {\n // Postprocess Profile data\n if (currentTimelineData !== null) {\n currentTimelineData.schedulingEvents.forEach(event => {\n if (event.type === 'schedule-state-update') {\n // TODO(luna): We can optimize this by creating a map of\n // fiber to component stack instead of generating the stack\n // for every fiber every time\n const fiberStack = currentFiberStacks.get(event);\n if (fiberStack && currentDispatcherRef != null) {\n event.componentStack = fiberStack.reduce((trace, fiber) => {\n return (\n trace +\n describeFiber(workTagMap, fiber, currentDispatcherRef)\n );\n }, '');\n }\n }\n });\n }\n\n // Clear the current fiber stacks so we don't hold onto the fibers\n // in memory after profiling finishes\n currentFiberStacks.clear();\n }\n }\n }\n\n return {\n getTimelineData,\n profilingHooks: {\n markCommitStarted,\n markCommitStopped,\n markComponentRenderStarted,\n markComponentRenderStopped,\n markComponentPassiveEffectMountStarted,\n markComponentPassiveEffectMountStopped,\n markComponentPassiveEffectUnmountStarted,\n markComponentPassiveEffectUnmountStopped,\n markComponentLayoutEffectMountStarted,\n markComponentLayoutEffectMountStopped,\n markComponentLayoutEffectUnmountStarted,\n markComponentLayoutEffectUnmountStopped,\n markComponentErrored,\n markComponentSuspended,\n markLayoutEffectsStarted,\n markLayoutEffectsStopped,\n markPassiveEffectsStarted,\n markPassiveEffectsStopped,\n markRenderStarted,\n markRenderYielded,\n markRenderStopped,\n markRenderScheduled,\n markForceUpdateScheduled,\n markStateUpdateScheduled,\n },\n toggleProfilingStatus,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n ComponentFilterDisplayName,\n ComponentFilterElementType,\n ComponentFilterHOC,\n ComponentFilterLocation,\n ElementTypeClass,\n ElementTypeContext,\n ElementTypeFunction,\n ElementTypeForwardRef,\n ElementTypeHostComponent,\n ElementTypeMemo,\n ElementTypeOtherOrUnknown,\n ElementTypeProfiler,\n ElementTypeRoot,\n ElementTypeSuspense,\n ElementTypeSuspenseList,\n ElementTypeTracingMarker,\n StrictMode,\n} from 'react-devtools-shared/src/frontend/types';\nimport {\n deletePathInObject,\n getDisplayName,\n getWrappedDisplayName,\n getDefaultComponentFilters,\n getInObject,\n getUID,\n renamePathInObject,\n setInObject,\n utfEncodeString,\n} from 'react-devtools-shared/src/utils';\nimport {sessionStorageGetItem} from 'react-devtools-shared/src/storage';\nimport {\n gt,\n gte,\n serializeToString,\n} from 'react-devtools-shared/src/backend/utils';\nimport {\n cleanForBridge,\n copyWithDelete,\n copyWithRename,\n copyWithSet,\n getEffectDurations,\n} from './utils';\nimport {\n __DEBUG__,\n PROFILING_FLAG_BASIC_SUPPORT,\n PROFILING_FLAG_TIMELINE_SUPPORT,\n SESSION_STORAGE_RELOAD_AND_PROFILE_KEY,\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n TREE_OPERATION_ADD,\n TREE_OPERATION_REMOVE,\n TREE_OPERATION_REMOVE_ROOT,\n TREE_OPERATION_REORDER_CHILDREN,\n TREE_OPERATION_SET_SUBTREE_MODE,\n TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS,\n TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n} from '../constants';\nimport {inspectHooksOfFiber} from 'react-debug-tools';\nimport {\n patchConsoleUsingWindowValues,\n registerRenderer as registerRendererWithConsole,\n patchForStrictMode as patchConsoleForStrictMode,\n unpatchForStrictMode as unpatchConsoleForStrictMode,\n} from './console';\nimport {\n CONCURRENT_MODE_NUMBER,\n CONCURRENT_MODE_SYMBOL_STRING,\n DEPRECATED_ASYNC_MODE_SYMBOL_STRING,\n PROVIDER_NUMBER,\n PROVIDER_SYMBOL_STRING,\n CONTEXT_NUMBER,\n CONTEXT_SYMBOL_STRING,\n STRICT_MODE_NUMBER,\n STRICT_MODE_SYMBOL_STRING,\n PROFILER_NUMBER,\n PROFILER_SYMBOL_STRING,\n SCOPE_NUMBER,\n SCOPE_SYMBOL_STRING,\n FORWARD_REF_NUMBER,\n FORWARD_REF_SYMBOL_STRING,\n MEMO_NUMBER,\n MEMO_SYMBOL_STRING,\n SERVER_CONTEXT_SYMBOL_STRING,\n} from './ReactSymbols';\nimport {format} from './utils';\nimport {enableStyleXFeatures} from 'react-devtools-feature-flags';\nimport is from 'shared/objectIs';\nimport hasOwnProperty from 'shared/hasOwnProperty';\nimport {getStyleXData} from './StyleX/utils';\nimport {createProfilingHooks} from './profilingHooks';\n\nimport type {GetTimelineData, ToggleProfilingStatus} from './profilingHooks';\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {\n ChangeDescription,\n CommitDataBackend,\n DevToolsHook,\n InspectedElement,\n InspectedElementPayload,\n InstanceAndStyle,\n NativeType,\n PathFrame,\n PathMatch,\n ProfilingDataBackend,\n ProfilingDataForRootBackend,\n ReactRenderer,\n RendererInterface,\n SerializedElement,\n WorkTagMap,\n} from './types';\nimport type {\n ComponentFilter,\n ElementType,\n Plugins,\n} from 'react-devtools-shared/src/frontend/types';\n\ntype getDisplayNameForFiberType = (fiber: Fiber) => string | null;\ntype getTypeSymbolType = (type: any) => symbol | number;\n\ntype ReactPriorityLevelsType = {\n ImmediatePriority: number,\n UserBlockingPriority: number,\n NormalPriority: number,\n LowPriority: number,\n IdlePriority: number,\n NoPriority: number,\n};\n\nfunction getFiberFlags(fiber: Fiber): number {\n // The name of this field changed from \"effectTag\" to \"flags\"\n return fiber.flags !== undefined ? fiber.flags : (fiber: any).effectTag;\n}\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n // $FlowFixMe[method-unbinding]\n typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\nexport function getInternalReactConstants(version: string): {\n getDisplayNameForFiber: getDisplayNameForFiberType,\n getTypeSymbol: getTypeSymbolType,\n ReactPriorityLevels: ReactPriorityLevelsType,\n ReactTypeOfWork: WorkTagMap,\n StrictModeBits: number,\n} {\n // **********************************************************\n // The section below is copied from files in React repo.\n // Keep it in sync, and add version guards if it changes.\n //\n // Technically these priority levels are invalid for versions before 16.9,\n // but 16.9 is the first version to report priority level to DevTools,\n // so we can avoid checking for earlier versions and support pre-16.9 canary releases in the process.\n let ReactPriorityLevels: ReactPriorityLevelsType = {\n ImmediatePriority: 99,\n UserBlockingPriority: 98,\n NormalPriority: 97,\n LowPriority: 96,\n IdlePriority: 95,\n NoPriority: 90,\n };\n\n if (gt(version, '17.0.2')) {\n ReactPriorityLevels = {\n ImmediatePriority: 1,\n UserBlockingPriority: 2,\n NormalPriority: 3,\n LowPriority: 4,\n IdlePriority: 5,\n NoPriority: 0,\n };\n }\n\n let StrictModeBits = 0;\n if (gte(version, '18.0.0-alpha')) {\n // 18+\n StrictModeBits = 0b011000;\n } else if (gte(version, '16.9.0')) {\n // 16.9 - 17\n StrictModeBits = 0b1;\n } else if (gte(version, '16.3.0')) {\n // 16.3 - 16.8\n StrictModeBits = 0b10;\n }\n\n let ReactTypeOfWork: WorkTagMap = ((null: any): WorkTagMap);\n\n // **********************************************************\n // The section below is copied from files in React repo.\n // Keep it in sync, and add version guards if it changes.\n //\n // TODO Update the gt() check below to be gte() whichever the next version number is.\n // Currently the version in Git is 17.0.2 (but that version has not been/may not end up being released).\n if (gt(version, '17.0.1')) {\n ReactTypeOfWork = {\n CacheComponent: 24, // Experimental\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: 18, // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: 26, // In reality, 18.2+. But doesn't hurt to include it here\n HostSingleton: 27, // Same as above\n HostText: 6,\n IncompleteClassComponent: 17,\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: 23,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: 22, // Experimental\n Profiler: 12,\n ScopeComponent: 21, // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19, // Experimental\n TracingMarkerComponent: 25, // Experimental - This is technically in 18 but we don't\n // want to fork again so we're adding it here instead\n YieldComponent: -1, // Removed\n };\n } else if (gte(version, '17.0.0-alpha')) {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: 18, // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: 17,\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: 24,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: 23, // Experimental\n Profiler: 12,\n ScopeComponent: 21, // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19, // Experimental\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: -1, // Removed\n };\n } else if (gte(version, '16.6.0-beta.0')) {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: 18, // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: 17,\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: -1,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: -1, // Experimental\n Profiler: 12,\n ScopeComponent: -1, // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19, // Experimental\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: -1, // Removed\n };\n } else if (gte(version, '16.4.3-alpha')) {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 2,\n ContextConsumer: 11,\n ContextProvider: 12,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: -1, // Doesn't exist yet\n ForwardRef: 13,\n Fragment: 9,\n FunctionComponent: 0,\n HostComponent: 7,\n HostPortal: 6,\n HostRoot: 5,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 8,\n IncompleteClassComponent: -1, // Doesn't exist yet\n IndeterminateComponent: 4,\n LazyComponent: -1, // Doesn't exist yet\n LegacyHiddenComponent: -1,\n MemoComponent: -1, // Doesn't exist yet\n Mode: 10,\n OffscreenComponent: -1, // Experimental\n Profiler: 15,\n ScopeComponent: -1, // Experimental\n SimpleMemoComponent: -1, // Doesn't exist yet\n SuspenseComponent: 16,\n SuspenseListComponent: -1, // Doesn't exist yet\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: -1, // Removed\n };\n } else {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 2,\n ContextConsumer: 12,\n ContextProvider: 13,\n CoroutineComponent: 7,\n CoroutineHandlerPhase: 8,\n DehydratedSuspenseComponent: -1, // Doesn't exist yet\n ForwardRef: 14,\n Fragment: 10,\n FunctionComponent: 1,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: -1, // Doesn't exist yet\n IndeterminateComponent: 0,\n LazyComponent: -1, // Doesn't exist yet\n LegacyHiddenComponent: -1,\n MemoComponent: -1, // Doesn't exist yet\n Mode: 11,\n OffscreenComponent: -1, // Experimental\n Profiler: 15,\n ScopeComponent: -1, // Experimental\n SimpleMemoComponent: -1, // Doesn't exist yet\n SuspenseComponent: 16,\n SuspenseListComponent: -1, // Doesn't exist yet\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: 9,\n };\n }\n // **********************************************************\n // End of copied code.\n // **********************************************************\n\n function getTypeSymbol(type: any): symbol | number {\n const symbolOrNumber =\n typeof type === 'object' && type !== null ? type.$$typeof : type;\n\n return typeof symbolOrNumber === 'symbol'\n ? // $FlowFixMe[incompatible-return] `toString()` doesn't match the type signature?\n symbolOrNumber.toString()\n : symbolOrNumber;\n }\n\n const {\n CacheComponent,\n ClassComponent,\n IncompleteClassComponent,\n FunctionComponent,\n IndeterminateComponent,\n ForwardRef,\n HostRoot,\n HostHoistable,\n HostSingleton,\n HostComponent,\n HostPortal,\n HostText,\n Fragment,\n LazyComponent,\n LegacyHiddenComponent,\n MemoComponent,\n OffscreenComponent,\n Profiler,\n ScopeComponent,\n SimpleMemoComponent,\n SuspenseComponent,\n SuspenseListComponent,\n TracingMarkerComponent,\n } = ReactTypeOfWork;\n\n function resolveFiberType(type: any): $FlowFixMe {\n const typeSymbol = getTypeSymbol(type);\n switch (typeSymbol) {\n case MEMO_NUMBER:\n case MEMO_SYMBOL_STRING:\n // recursively resolving memo type in case of memo(forwardRef(Component))\n return resolveFiberType(type.type);\n case FORWARD_REF_NUMBER:\n case FORWARD_REF_SYMBOL_STRING:\n return type.render;\n default:\n return type;\n }\n }\n\n // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n function getDisplayNameForFiber(fiber: Fiber): string | null {\n const {elementType, type, tag} = fiber;\n\n let resolvedType = type;\n if (typeof type === 'object' && type !== null) {\n resolvedType = resolveFiberType(type);\n }\n\n let resolvedContext: any = null;\n\n switch (tag) {\n case CacheComponent:\n return 'Cache';\n case ClassComponent:\n case IncompleteClassComponent:\n return getDisplayName(resolvedType);\n case FunctionComponent:\n case IndeterminateComponent:\n return getDisplayName(resolvedType);\n case ForwardRef:\n return getWrappedDisplayName(\n elementType,\n resolvedType,\n 'ForwardRef',\n 'Anonymous',\n );\n case HostRoot:\n const fiberRoot = fiber.stateNode;\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n return fiberRoot._debugRootType;\n }\n return null;\n case HostComponent:\n case HostSingleton:\n case HostHoistable:\n return type;\n case HostPortal:\n case HostText:\n return null;\n case Fragment:\n return 'Fragment';\n case LazyComponent:\n // This display name will not be user visible.\n // Once a Lazy component loads its inner component, React replaces the tag and type.\n // This display name will only show up in console logs when DevTools DEBUG mode is on.\n return 'Lazy';\n case MemoComponent:\n case SimpleMemoComponent:\n // Display name in React does not use `Memo` as a wrapper but fallback name.\n return getWrappedDisplayName(\n elementType,\n resolvedType,\n 'Memo',\n 'Anonymous',\n );\n case SuspenseComponent:\n return 'Suspense';\n case LegacyHiddenComponent:\n return 'LegacyHidden';\n case OffscreenComponent:\n return 'Offscreen';\n case ScopeComponent:\n return 'Scope';\n case SuspenseListComponent:\n return 'SuspenseList';\n case Profiler:\n return 'Profiler';\n case TracingMarkerComponent:\n return 'TracingMarker';\n default:\n const typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n return null;\n case PROVIDER_NUMBER:\n case PROVIDER_SYMBOL_STRING:\n // 16.3.0 exposed the context object as \"context\"\n // PR #12501 changed it to \"_context\" for 16.3.1+\n // NOTE Keep in sync with inspectElementRaw()\n resolvedContext = fiber.type._context || fiber.type.context;\n return `${resolvedContext.displayName || 'Context'}.Provider`;\n case CONTEXT_NUMBER:\n case CONTEXT_SYMBOL_STRING:\n case SERVER_CONTEXT_SYMBOL_STRING:\n // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n // NOTE Keep in sync with inspectElementRaw()\n resolvedContext = fiber.type._context || fiber.type;\n\n // NOTE: TraceUpdatesBackendManager depends on the name ending in '.Consumer'\n // If you change the name, figure out a more resilient way to detect it.\n return `${resolvedContext.displayName || 'Context'}.Consumer`;\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return null;\n case PROFILER_NUMBER:\n case PROFILER_SYMBOL_STRING:\n return `Profiler(${fiber.memoizedProps.id})`;\n case SCOPE_NUMBER:\n case SCOPE_SYMBOL_STRING:\n return 'Scope';\n default:\n // Unknown element type.\n // This may mean a new element type that has not yet been added to DevTools.\n return null;\n }\n }\n }\n\n return {\n getDisplayNameForFiber,\n getTypeSymbol,\n ReactPriorityLevels,\n ReactTypeOfWork,\n StrictModeBits,\n };\n}\n\n// Map of one or more Fibers in a pair to their unique id number.\n// We track both Fibers to support Fast Refresh,\n// which may forcefully replace one of the pair as part of hot reloading.\n// In that case it's still important to be able to locate the previous ID during subsequent renders.\nconst fiberToIDMap: Map = new Map();\n\n// Map of id to one (arbitrary) Fiber in a pair.\n// This Map is used to e.g. get the display name for a Fiber or schedule an update,\n// operations that should be the same whether the current and work-in-progress Fiber is used.\nconst idToArbitraryFiberMap: Map = new Map();\n\nexport function attach(\n hook: DevToolsHook,\n rendererID: number,\n renderer: ReactRenderer,\n global: Object,\n): RendererInterface {\n // Newer versions of the reconciler package also specific reconciler version.\n // If that version number is present, use it.\n // Third party renderer versions may not match the reconciler version,\n // and the latter is what's important in terms of tags and symbols.\n const version = renderer.reconcilerVersion || renderer.version;\n\n const {\n getDisplayNameForFiber,\n getTypeSymbol,\n ReactPriorityLevels,\n ReactTypeOfWork,\n StrictModeBits,\n } = getInternalReactConstants(version);\n const {\n CacheComponent,\n ClassComponent,\n ContextConsumer,\n DehydratedSuspenseComponent,\n ForwardRef,\n Fragment,\n FunctionComponent,\n HostRoot,\n HostHoistable,\n HostSingleton,\n HostPortal,\n HostComponent,\n HostText,\n IncompleteClassComponent,\n IndeterminateComponent,\n LegacyHiddenComponent,\n MemoComponent,\n OffscreenComponent,\n SimpleMemoComponent,\n SuspenseComponent,\n SuspenseListComponent,\n TracingMarkerComponent,\n } = ReactTypeOfWork;\n const {\n ImmediatePriority,\n UserBlockingPriority,\n NormalPriority,\n LowPriority,\n IdlePriority,\n NoPriority,\n } = ReactPriorityLevels;\n\n const {\n getLaneLabelMap,\n injectProfilingHooks,\n overrideHookState,\n overrideHookStateDeletePath,\n overrideHookStateRenamePath,\n overrideProps,\n overridePropsDeletePath,\n overridePropsRenamePath,\n scheduleRefresh,\n setErrorHandler,\n setSuspenseHandler,\n scheduleUpdate,\n } = renderer;\n const supportsTogglingError =\n typeof setErrorHandler === 'function' &&\n typeof scheduleUpdate === 'function';\n const supportsTogglingSuspense =\n typeof setSuspenseHandler === 'function' &&\n typeof scheduleUpdate === 'function';\n\n if (typeof scheduleRefresh === 'function') {\n // When Fast Refresh updates a component, the frontend may need to purge cached information.\n // For example, ASTs cached for the component (for named hooks) may no longer be valid.\n // Send a signal to the frontend to purge this cached information.\n // The \"fastRefreshScheduled\" dispatched is global (not Fiber or even Renderer specific).\n // This is less effecient since it means the front-end will need to purge the entire cache,\n // but this is probably an okay trade off in order to reduce coupling between the DevTools and Fast Refresh.\n renderer.scheduleRefresh = (...args) => {\n try {\n hook.emit('fastRefreshScheduled');\n } finally {\n return scheduleRefresh(...args);\n }\n };\n }\n\n let getTimelineData: null | GetTimelineData = null;\n let toggleProfilingStatus: null | ToggleProfilingStatus = null;\n if (typeof injectProfilingHooks === 'function') {\n const response = createProfilingHooks({\n getDisplayNameForFiber,\n getIsProfiling: () => isProfiling,\n getLaneLabelMap,\n currentDispatcherRef: renderer.currentDispatcherRef,\n workTagMap: ReactTypeOfWork,\n reactVersion: version,\n });\n\n // Pass the Profiling hooks to the reconciler for it to call during render.\n injectProfilingHooks(response.profilingHooks);\n\n // Hang onto this toggle so we can notify the external methods of profiling status changes.\n getTimelineData = response.getTimelineData;\n toggleProfilingStatus = response.toggleProfilingStatus;\n }\n\n // Tracks Fibers with recently changed number of error/warning messages.\n // These collections store the Fiber rather than the ID,\n // in order to avoid generating an ID for Fibers that never get mounted\n // (due to e.g. Suspense or error boundaries).\n // onErrorOrWarning() adds Fibers and recordPendingErrorsAndWarnings() later clears them.\n const fibersWithChangedErrorOrWarningCounts: Set = new Set();\n const pendingFiberToErrorsMap: Map> = new Map();\n const pendingFiberToWarningsMap: Map> = new Map();\n\n // Mapping of fiber IDs to error/warning messages and counts.\n const fiberIDToErrorsMap: Map> = new Map();\n const fiberIDToWarningsMap: Map> = new Map();\n\n function clearErrorsAndWarnings() {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const id of fiberIDToErrorsMap.keys()) {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n updateMostRecentlyInspectedElementIfNecessary(id);\n }\n }\n\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const id of fiberIDToWarningsMap.keys()) {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n updateMostRecentlyInspectedElementIfNecessary(id);\n }\n }\n\n fiberIDToErrorsMap.clear();\n fiberIDToWarningsMap.clear();\n\n flushPendingEvents();\n }\n\n function clearMessageCountHelper(\n fiberID: number,\n pendingFiberToMessageCountMap: Map>,\n fiberIDToMessageCountMap: Map>,\n ) {\n const fiber = idToArbitraryFiberMap.get(fiberID);\n if (fiber != null) {\n // Throw out any pending changes.\n pendingFiberToErrorsMap.delete(fiber);\n\n if (fiberIDToMessageCountMap.has(fiberID)) {\n fiberIDToMessageCountMap.delete(fiberID);\n\n // If previous flushed counts have changed, schedule an update too.\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n flushPendingEvents();\n\n updateMostRecentlyInspectedElementIfNecessary(fiberID);\n } else {\n fibersWithChangedErrorOrWarningCounts.delete(fiber);\n }\n }\n }\n\n function clearErrorsForFiberID(fiberID: number) {\n clearMessageCountHelper(\n fiberID,\n pendingFiberToErrorsMap,\n fiberIDToErrorsMap,\n );\n }\n\n function clearWarningsForFiberID(fiberID: number) {\n clearMessageCountHelper(\n fiberID,\n pendingFiberToWarningsMap,\n fiberIDToWarningsMap,\n );\n }\n\n function updateMostRecentlyInspectedElementIfNecessary(\n fiberID: number,\n ): void {\n if (\n mostRecentlyInspectedElement !== null &&\n mostRecentlyInspectedElement.id === fiberID\n ) {\n hasElementUpdatedSinceLastInspected = true;\n }\n }\n\n // Called when an error or warning is logged during render, commit, or passive (including unmount functions).\n function onErrorOrWarning(\n fiber: Fiber,\n type: 'error' | 'warn',\n args: $ReadOnlyArray,\n ): void {\n if (type === 'error') {\n const maybeID = getFiberIDUnsafe(fiber);\n // if this is an error simulated by us to trigger error boundary, ignore\n if (maybeID != null && forceErrorForFiberIDs.get(maybeID) === true) {\n return;\n }\n }\n const message = format(...args);\n if (__DEBUG__) {\n debug('onErrorOrWarning', fiber, null, `${type}: \"${message}\"`);\n }\n\n // Mark this Fiber as needed its warning/error count updated during the next flush.\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n\n // Track the warning/error for later.\n const fiberMap =\n type === 'error' ? pendingFiberToErrorsMap : pendingFiberToWarningsMap;\n const messageMap = fiberMap.get(fiber);\n if (messageMap != null) {\n const count = messageMap.get(message) || 0;\n messageMap.set(message, count + 1);\n } else {\n fiberMap.set(fiber, new Map([[message, 1]]));\n }\n\n // Passive effects may trigger errors or warnings too;\n // In this case, we should wait until the rest of the passive effects have run,\n // but we shouldn't wait until the next commit because that might be a long time.\n // This would also cause \"tearing\" between an inspected Component and the tree view.\n // Then again we don't want to flush too soon because this could be an error during async rendering.\n // Use a debounce technique to ensure that we'll eventually flush.\n flushPendingErrorsAndWarningsAfterDelay();\n }\n\n // Patching the console enables DevTools to do a few useful things:\n // * Append component stacks to warnings and error messages\n // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n registerRendererWithConsole(renderer, onErrorOrWarning);\n\n // The renderer interface can't read these preferences directly,\n // because it is stored in localStorage within the context of the extension.\n // It relies on the extension to pass the preference through via the global.\n patchConsoleUsingWindowValues();\n\n const debug = (\n name: string,\n fiber: Fiber,\n parentFiber: ?Fiber,\n extraString: string = '',\n ): void => {\n if (__DEBUG__) {\n const displayName =\n fiber.tag + ':' + (getDisplayNameForFiber(fiber) || 'null');\n\n const maybeID = getFiberIDUnsafe(fiber) || '';\n const parentDisplayName = parentFiber\n ? parentFiber.tag +\n ':' +\n (getDisplayNameForFiber(parentFiber) || 'null')\n : '';\n const maybeParentID = parentFiber\n ? getFiberIDUnsafe(parentFiber) || ''\n : '';\n\n console.groupCollapsed(\n `[renderer] %c${name} %c${displayName} (${maybeID}) %c${\n parentFiber ? `${parentDisplayName} (${maybeParentID})` : ''\n } %c${extraString}`,\n 'color: red; font-weight: bold;',\n 'color: blue;',\n 'color: purple;',\n 'color: black;',\n );\n console.log(new Error().stack.split('\\n').slice(1).join('\\n'));\n console.groupEnd();\n }\n };\n\n // Configurable Components tree filters.\n const hideElementsWithDisplayNames: Set = new Set();\n const hideElementsWithPaths: Set = new Set();\n const hideElementsWithTypes: Set = new Set();\n\n // Highlight updates\n let traceUpdatesEnabled: boolean = false;\n const traceUpdatesForNodes: Set = new Set();\n\n function applyComponentFilters(componentFilters: Array) {\n hideElementsWithTypes.clear();\n hideElementsWithDisplayNames.clear();\n hideElementsWithPaths.clear();\n\n componentFilters.forEach(componentFilter => {\n if (!componentFilter.isEnabled) {\n return;\n }\n\n switch (componentFilter.type) {\n case ComponentFilterDisplayName:\n if (componentFilter.isValid && componentFilter.value !== '') {\n hideElementsWithDisplayNames.add(\n new RegExp(componentFilter.value, 'i'),\n );\n }\n break;\n case ComponentFilterElementType:\n hideElementsWithTypes.add(componentFilter.value);\n break;\n case ComponentFilterLocation:\n if (componentFilter.isValid && componentFilter.value !== '') {\n hideElementsWithPaths.add(new RegExp(componentFilter.value, 'i'));\n }\n break;\n case ComponentFilterHOC:\n hideElementsWithDisplayNames.add(new RegExp('\\\\('));\n break;\n default:\n console.warn(\n `Invalid component filter type \"${componentFilter.type}\"`,\n );\n break;\n }\n });\n }\n\n // The renderer interface can't read saved component filters directly,\n // because they are stored in localStorage within the context of the extension.\n // Instead it relies on the extension to pass filters through.\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ != null) {\n applyComponentFilters(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__);\n } else {\n // Unfortunately this feature is not expected to work for React Native for now.\n // It would be annoying for us to spam YellowBox warnings with unactionable stuff,\n // so for now just skip this message...\n //console.warn('⚛️ DevTools: Could not locate saved component filters');\n\n // Fallback to assuming the default filters in this case.\n applyComponentFilters(getDefaultComponentFilters());\n }\n\n // If necessary, we can revisit optimizing this operation.\n // For example, we could add a new recursive unmount tree operation.\n // The unmount operations are already significantly smaller than mount operations though.\n // This is something to keep in mind for later.\n function updateComponentFilters(componentFilters: Array) {\n if (isProfiling) {\n // Re-mounting a tree while profiling is in progress might break a lot of assumptions.\n // If necessary, we could support this- but it doesn't seem like a necessary use case.\n throw Error('Cannot modify filter preferences while profiling');\n }\n\n // Recursively unmount all roots.\n hook.getFiberRoots(rendererID).forEach(root => {\n currentRootID = getOrGenerateFiberID(root.current);\n // The TREE_OPERATION_REMOVE_ROOT operation serves two purposes:\n // 1. It avoids sending unnecessary bridge traffic to clear a root.\n // 2. It preserves Fiber IDs when remounting (below) which in turn ID to error/warning mapping.\n pushOperation(TREE_OPERATION_REMOVE_ROOT);\n flushPendingEvents(root);\n currentRootID = -1;\n });\n\n applyComponentFilters(componentFilters);\n\n // Reset pseudo counters so that new path selections will be persisted.\n rootDisplayNameCounter.clear();\n\n // Recursively re-mount all roots with new filter criteria applied.\n hook.getFiberRoots(rendererID).forEach(root => {\n currentRootID = getOrGenerateFiberID(root.current);\n setRootPseudoKey(currentRootID, root.current);\n mountFiberRecursively(root.current, null, false, false);\n flushPendingEvents(root);\n currentRootID = -1;\n });\n\n // Also re-evaluate all error and warning counts given the new filters.\n reevaluateErrorsAndWarnings();\n flushPendingEvents();\n }\n\n // NOTICE Keep in sync with get*ForFiber methods\n function shouldFilterFiber(fiber: Fiber): boolean {\n const {_debugSource, tag, type, key} = fiber;\n\n switch (tag) {\n case DehydratedSuspenseComponent:\n // TODO: ideally we would show dehydrated Suspense immediately.\n // However, it has some special behavior (like disconnecting\n // an alternate and turning into real Suspense) which breaks DevTools.\n // For now, ignore it, and only show it once it gets hydrated.\n // https://github.com/bvaughn/react-devtools-experimental/issues/197\n return true;\n case HostPortal:\n case HostText:\n case LegacyHiddenComponent:\n case OffscreenComponent:\n return true;\n case HostRoot:\n // It is never valid to filter the root element.\n return false;\n case Fragment:\n return key === null;\n default:\n const typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return true;\n default:\n break;\n }\n }\n\n const elementType = getElementTypeForFiber(fiber);\n if (hideElementsWithTypes.has(elementType)) {\n return true;\n }\n\n if (hideElementsWithDisplayNames.size > 0) {\n const displayName = getDisplayNameForFiber(fiber);\n if (displayName != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const displayNameRegExp of hideElementsWithDisplayNames) {\n if (displayNameRegExp.test(displayName)) {\n return true;\n }\n }\n }\n }\n\n if (_debugSource != null && hideElementsWithPaths.size > 0) {\n const {fileName} = _debugSource;\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const pathRegExp of hideElementsWithPaths) {\n if (pathRegExp.test(fileName)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n function getElementTypeForFiber(fiber: Fiber): ElementType {\n const {type, tag} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n return ElementTypeClass;\n case FunctionComponent:\n case IndeterminateComponent:\n return ElementTypeFunction;\n case ForwardRef:\n return ElementTypeForwardRef;\n case HostRoot:\n return ElementTypeRoot;\n case HostComponent:\n case HostHoistable:\n case HostSingleton:\n return ElementTypeHostComponent;\n case HostPortal:\n case HostText:\n case Fragment:\n return ElementTypeOtherOrUnknown;\n case MemoComponent:\n case SimpleMemoComponent:\n return ElementTypeMemo;\n case SuspenseComponent:\n return ElementTypeSuspense;\n case SuspenseListComponent:\n return ElementTypeSuspenseList;\n case TracingMarkerComponent:\n return ElementTypeTracingMarker;\n default:\n const typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n return ElementTypeOtherOrUnknown;\n case PROVIDER_NUMBER:\n case PROVIDER_SYMBOL_STRING:\n return ElementTypeContext;\n case CONTEXT_NUMBER:\n case CONTEXT_SYMBOL_STRING:\n return ElementTypeContext;\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return ElementTypeOtherOrUnknown;\n case PROFILER_NUMBER:\n case PROFILER_SYMBOL_STRING:\n return ElementTypeProfiler;\n default:\n return ElementTypeOtherOrUnknown;\n }\n }\n }\n\n // When profiling is supported, we store the latest tree base durations for each Fiber.\n // This is so that we can quickly capture a snapshot of those values if profiling starts.\n // If we didn't store these values, we'd have to crawl the tree when profiling started,\n // and use a slow path to find each of the current Fibers.\n const idToTreeBaseDurationMap: Map = new Map();\n\n // When profiling is supported, we store the latest tree base durations for each Fiber.\n // This map enables us to filter these times by root when sending them to the frontend.\n const idToRootMap: Map = new Map();\n\n // When a mount or update is in progress, this value tracks the root that is being operated on.\n let currentRootID: number = -1;\n\n // Returns the unique ID for a Fiber or generates and caches a new one if the Fiber hasn't been seen before.\n // Once this method has been called for a Fiber, untrackFiberID() should always be called later to avoid leaking.\n function getOrGenerateFiberID(fiber: Fiber): number {\n let id = null;\n if (fiberToIDMap.has(fiber)) {\n id = fiberToIDMap.get(fiber);\n } else {\n const {alternate} = fiber;\n if (alternate !== null && fiberToIDMap.has(alternate)) {\n id = fiberToIDMap.get(alternate);\n }\n }\n\n let didGenerateID = false;\n if (id === null) {\n didGenerateID = true;\n id = getUID();\n }\n\n // This refinement is for Flow purposes only.\n const refinedID = ((id: any): number);\n\n // Make sure we're tracking this Fiber\n // e.g. if it just mounted or an error was logged during initial render.\n if (!fiberToIDMap.has(fiber)) {\n fiberToIDMap.set(fiber, refinedID);\n idToArbitraryFiberMap.set(refinedID, fiber);\n }\n\n // Also make sure we're tracking its alternate,\n // e.g. in case this is the first update after mount.\n const {alternate} = fiber;\n if (alternate !== null) {\n if (!fiberToIDMap.has(alternate)) {\n fiberToIDMap.set(alternate, refinedID);\n }\n }\n\n if (__DEBUG__) {\n if (didGenerateID) {\n debug(\n 'getOrGenerateFiberID()',\n fiber,\n fiber.return,\n 'Generated a new UID',\n );\n }\n }\n\n return refinedID;\n }\n\n // Returns an ID if one has already been generated for the Fiber or throws.\n function getFiberIDThrows(fiber: Fiber): number {\n const maybeID = getFiberIDUnsafe(fiber);\n if (maybeID !== null) {\n return maybeID;\n }\n throw Error(\n `Could not find ID for Fiber \"${getDisplayNameForFiber(fiber) || ''}\"`,\n );\n }\n\n // Returns an ID if one has already been generated for the Fiber or null if one has not been generated.\n // Use this method while e.g. logging to avoid over-retaining Fibers.\n function getFiberIDUnsafe(fiber: Fiber): number | null {\n if (fiberToIDMap.has(fiber)) {\n return ((fiberToIDMap.get(fiber): any): number);\n } else {\n const {alternate} = fiber;\n if (alternate !== null && fiberToIDMap.has(alternate)) {\n return ((fiberToIDMap.get(alternate): any): number);\n }\n }\n return null;\n }\n\n // Removes a Fiber (and its alternate) from the Maps used to track their id.\n // This method should always be called when a Fiber is unmounting.\n function untrackFiberID(fiber: Fiber) {\n if (__DEBUG__) {\n debug('untrackFiberID()', fiber, fiber.return, 'schedule after delay');\n }\n\n // Untrack Fibers after a slight delay in order to support a Fast Refresh edge case:\n // 1. Component type is updated and Fast Refresh schedules an update+remount.\n // 2. flushPendingErrorsAndWarningsAfterDelay() runs, sees the old Fiber is no longer mounted\n // (it's been disconnected by Fast Refresh), and calls untrackFiberID() to clear it from the Map.\n // 3. React flushes pending passive effects before it runs the next render,\n // which logs an error or warning, which causes a new ID to be generated for this Fiber.\n // 4. DevTools now tries to unmount the old Component with the new ID.\n //\n // The underlying problem here is the premature clearing of the Fiber ID,\n // but DevTools has no way to detect that a given Fiber has been scheduled for Fast Refresh.\n // (The \"_debugNeedsRemount\" flag won't necessarily be set.)\n //\n // The best we can do is to delay untracking by a small amount,\n // and give React time to process the Fast Refresh delay.\n\n untrackFibersSet.add(fiber);\n\n // React may detach alternate pointers during unmount;\n // Since our untracking code is async, we should explicily track the pending alternate here as well.\n const alternate = fiber.alternate;\n if (alternate !== null) {\n untrackFibersSet.add(alternate);\n }\n\n if (untrackFibersTimeoutID === null) {\n untrackFibersTimeoutID = setTimeout(untrackFibers, 1000);\n }\n }\n\n const untrackFibersSet: Set = new Set();\n let untrackFibersTimeoutID: TimeoutID | null = null;\n\n function untrackFibers() {\n if (untrackFibersTimeoutID !== null) {\n clearTimeout(untrackFibersTimeoutID);\n untrackFibersTimeoutID = null;\n }\n\n untrackFibersSet.forEach(fiber => {\n const fiberID = getFiberIDUnsafe(fiber);\n if (fiberID !== null) {\n idToArbitraryFiberMap.delete(fiberID);\n\n // Also clear any errors/warnings associated with this fiber.\n clearErrorsForFiberID(fiberID);\n clearWarningsForFiberID(fiberID);\n }\n\n fiberToIDMap.delete(fiber);\n\n const {alternate} = fiber;\n if (alternate !== null) {\n fiberToIDMap.delete(alternate);\n }\n\n if (forceErrorForFiberIDs.has(fiberID)) {\n forceErrorForFiberIDs.delete(fiberID);\n if (forceErrorForFiberIDs.size === 0 && setErrorHandler != null) {\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n }\n });\n untrackFibersSet.clear();\n }\n\n function getChangeDescription(\n prevFiber: Fiber | null,\n nextFiber: Fiber,\n ): ChangeDescription | null {\n switch (getElementTypeForFiber(nextFiber)) {\n case ElementTypeClass:\n case ElementTypeFunction:\n case ElementTypeMemo:\n case ElementTypeForwardRef:\n if (prevFiber === null) {\n return {\n context: null,\n didHooksChange: false,\n isFirstMount: true,\n props: null,\n state: null,\n };\n } else {\n const data: ChangeDescription = {\n context: getContextChangedKeys(nextFiber),\n didHooksChange: false,\n isFirstMount: false,\n props: getChangedKeys(\n prevFiber.memoizedProps,\n nextFiber.memoizedProps,\n ),\n state: getChangedKeys(\n prevFiber.memoizedState,\n nextFiber.memoizedState,\n ),\n };\n\n // Only traverse the hooks list once, depending on what info we're returning.\n const indices = getChangedHooksIndices(\n prevFiber.memoizedState,\n nextFiber.memoizedState,\n );\n data.hooks = indices;\n data.didHooksChange = indices !== null && indices.length > 0;\n\n return data;\n }\n default:\n return null;\n }\n }\n\n function updateContextsForFiber(fiber: Fiber) {\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeClass:\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n if (idToContextsMap !== null) {\n const id = getFiberIDThrows(fiber);\n const contexts = getContextsForFiber(fiber);\n if (contexts !== null) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n idToContextsMap.set(id, contexts);\n }\n }\n break;\n default:\n break;\n }\n }\n\n // Differentiates between a null context value and no context.\n const NO_CONTEXT = {};\n\n function getContextsForFiber(fiber: Fiber): [Object, any] | null {\n let legacyContext = NO_CONTEXT;\n let modernContext = NO_CONTEXT;\n\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeClass:\n const instance = fiber.stateNode;\n if (instance != null) {\n if (\n instance.constructor &&\n instance.constructor.contextType != null\n ) {\n modernContext = instance.context;\n } else {\n legacyContext = instance.context;\n if (legacyContext && Object.keys(legacyContext).length === 0) {\n legacyContext = NO_CONTEXT;\n }\n }\n }\n return [legacyContext, modernContext];\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n const dependencies = fiber.dependencies;\n if (dependencies && dependencies.firstContext) {\n modernContext = dependencies.firstContext;\n }\n\n return [legacyContext, modernContext];\n default:\n return null;\n }\n }\n\n // Record all contexts at the time profiling is started.\n // Fibers only store the current context value,\n // so we need to track them separately in order to determine changed keys.\n function crawlToInitializeContextsMap(fiber: Fiber) {\n const id = getFiberIDUnsafe(fiber);\n\n // Not all Fibers in the subtree have mounted yet.\n // For example, Offscreen (hidden) or Suspense (suspended) subtrees won't yet be tracked.\n // We can safely skip these subtrees.\n if (id !== null) {\n updateContextsForFiber(fiber);\n\n let current = fiber.child;\n while (current !== null) {\n crawlToInitializeContextsMap(current);\n current = current.sibling;\n }\n }\n }\n\n function getContextChangedKeys(fiber: Fiber): null | boolean | Array {\n if (idToContextsMap !== null) {\n const id = getFiberIDThrows(fiber);\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n const prevContexts = idToContextsMap.has(id)\n ? // $FlowFixMe[incompatible-use] found when upgrading Flow\n idToContextsMap.get(id)\n : null;\n const nextContexts = getContextsForFiber(fiber);\n\n if (prevContexts == null || nextContexts == null) {\n return null;\n }\n\n const [prevLegacyContext, prevModernContext] = prevContexts;\n const [nextLegacyContext, nextModernContext] = nextContexts;\n\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeClass:\n if (prevContexts && nextContexts) {\n if (nextLegacyContext !== NO_CONTEXT) {\n return getChangedKeys(prevLegacyContext, nextLegacyContext);\n } else if (nextModernContext !== NO_CONTEXT) {\n return prevModernContext !== nextModernContext;\n }\n }\n break;\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n if (nextModernContext !== NO_CONTEXT) {\n let prevContext = prevModernContext;\n let nextContext = nextModernContext;\n\n while (prevContext && nextContext) {\n // Note this only works for versions of React that support this key (e.v. 18+)\n // For older versions, there's no good way to read the current context value after render has completed.\n // This is because React maintains a stack of context values during render,\n // but by the time DevTools is called, render has finished and the stack is empty.\n if (!is(prevContext.memoizedValue, nextContext.memoizedValue)) {\n return true;\n }\n\n prevContext = prevContext.next;\n nextContext = nextContext.next;\n }\n\n return false;\n }\n break;\n default:\n break;\n }\n }\n return null;\n }\n\n function isHookThatCanScheduleUpdate(hookObject: any) {\n const queue = hookObject.queue;\n if (!queue) {\n return false;\n }\n\n const boundHasOwnProperty = hasOwnProperty.bind(queue);\n\n // Detect the shape of useState() / useReducer() / useTransition()\n // using the attributes that are unique to these hooks\n // but also stable (e.g. not tied to current Lanes implementation)\n // We don't check for dispatch property, because useTransition doesn't have it\n if (boundHasOwnProperty('pending')) {\n return true;\n }\n\n // Detect useSyncExternalStore()\n return (\n boundHasOwnProperty('value') &&\n boundHasOwnProperty('getSnapshot') &&\n typeof queue.getSnapshot === 'function'\n );\n }\n\n function didStatefulHookChange(prev: any, next: any): boolean {\n const prevMemoizedState = prev.memoizedState;\n const nextMemoizedState = next.memoizedState;\n\n if (isHookThatCanScheduleUpdate(prev)) {\n return prevMemoizedState !== nextMemoizedState;\n }\n\n return false;\n }\n\n function getChangedHooksIndices(prev: any, next: any): null | Array {\n if (prev == null || next == null) {\n return null;\n }\n\n const indices = [];\n let index = 0;\n if (\n next.hasOwnProperty('baseState') &&\n next.hasOwnProperty('memoizedState') &&\n next.hasOwnProperty('next') &&\n next.hasOwnProperty('queue')\n ) {\n while (next !== null) {\n if (didStatefulHookChange(prev, next)) {\n indices.push(index);\n }\n next = next.next;\n prev = prev.next;\n index++;\n }\n }\n\n return indices;\n }\n\n function getChangedKeys(prev: any, next: any): null | Array {\n if (prev == null || next == null) {\n return null;\n }\n\n // We can't report anything meaningful for hooks changes.\n if (\n next.hasOwnProperty('baseState') &&\n next.hasOwnProperty('memoizedState') &&\n next.hasOwnProperty('next') &&\n next.hasOwnProperty('queue')\n ) {\n return null;\n }\n\n const keys = new Set([...Object.keys(prev), ...Object.keys(next)]);\n const changedKeys = [];\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const key of keys) {\n if (prev[key] !== next[key]) {\n changedKeys.push(key);\n }\n }\n\n return changedKeys;\n }\n\n // eslint-disable-next-line no-unused-vars\n function didFiberRender(prevFiber: Fiber, nextFiber: Fiber): boolean {\n switch (nextFiber.tag) {\n case ClassComponent:\n case FunctionComponent:\n case ContextConsumer:\n case MemoComponent:\n case SimpleMemoComponent:\n case ForwardRef:\n // For types that execute user code, we check PerformedWork effect.\n // We don't reflect bailouts (either referential or sCU) in DevTools.\n // TODO: This flag is a leaked implementation detail. Once we start\n // releasing DevTools in lockstep with React, we should import a\n // function from the reconciler instead.\n const PerformedWork = 0b000000000000000000000000001;\n return (getFiberFlags(nextFiber) & PerformedWork) === PerformedWork;\n // Note: ContextConsumer only gets PerformedWork effect in 16.3.3+\n // so it won't get highlighted with React 16.3.0 to 16.3.2.\n default:\n // For host components and other types, we compare inputs\n // to determine whether something is an update.\n return (\n prevFiber.memoizedProps !== nextFiber.memoizedProps ||\n prevFiber.memoizedState !== nextFiber.memoizedState ||\n prevFiber.ref !== nextFiber.ref\n );\n }\n }\n\n type OperationsArray = Array;\n\n type StringTableEntry = {\n encodedString: Array,\n id: number,\n };\n\n const pendingOperations: OperationsArray = [];\n const pendingRealUnmountedIDs: Array = [];\n const pendingSimulatedUnmountedIDs: Array = [];\n let pendingOperationsQueue: Array | null = [];\n const pendingStringTable: Map = new Map();\n let pendingStringTableLength: number = 0;\n let pendingUnmountedRootID: number | null = null;\n\n function pushOperation(op: number): void {\n if (__DEV__) {\n if (!Number.isInteger(op)) {\n console.error(\n 'pushOperation() was called but the value is not an integer.',\n op,\n );\n }\n }\n pendingOperations.push(op);\n }\n\n function shouldBailoutWithPendingOperations() {\n if (isProfiling) {\n if (\n currentCommitProfilingMetadata != null &&\n currentCommitProfilingMetadata.durations.length > 0\n ) {\n return false;\n }\n }\n\n return (\n pendingOperations.length === 0 &&\n pendingRealUnmountedIDs.length === 0 &&\n pendingSimulatedUnmountedIDs.length === 0 &&\n pendingUnmountedRootID === null\n );\n }\n\n function flushOrQueueOperations(operations: OperationsArray): void {\n if (shouldBailoutWithPendingOperations()) {\n return;\n }\n\n if (pendingOperationsQueue !== null) {\n pendingOperationsQueue.push(operations);\n } else {\n hook.emit('operations', operations);\n }\n }\n\n let flushPendingErrorsAndWarningsAfterDelayTimeoutID: null | TimeoutID = null;\n\n function clearPendingErrorsAndWarningsAfterDelay() {\n if (flushPendingErrorsAndWarningsAfterDelayTimeoutID !== null) {\n clearTimeout(flushPendingErrorsAndWarningsAfterDelayTimeoutID);\n flushPendingErrorsAndWarningsAfterDelayTimeoutID = null;\n }\n }\n\n function flushPendingErrorsAndWarningsAfterDelay() {\n clearPendingErrorsAndWarningsAfterDelay();\n\n flushPendingErrorsAndWarningsAfterDelayTimeoutID = setTimeout(() => {\n flushPendingErrorsAndWarningsAfterDelayTimeoutID = null;\n\n if (pendingOperations.length > 0) {\n // On the off chance that something else has pushed pending operations,\n // we should bail on warnings; it's probably not safe to push midway.\n return;\n }\n\n recordPendingErrorsAndWarnings();\n\n if (shouldBailoutWithPendingOperations()) {\n // No warnings or errors to flush; we can bail out early here too.\n return;\n }\n\n // We can create a smaller operations array than flushPendingEvents()\n // because we only need to flush warning and error counts.\n // Only a few pieces of fixed information are required up front.\n const operations: OperationsArray = new Array(\n 3 + pendingOperations.length,\n );\n operations[0] = rendererID;\n operations[1] = currentRootID;\n operations[2] = 0; // String table size\n for (let j = 0; j < pendingOperations.length; j++) {\n operations[3 + j] = pendingOperations[j];\n }\n\n flushOrQueueOperations(operations);\n\n pendingOperations.length = 0;\n }, 1000);\n }\n\n function reevaluateErrorsAndWarnings() {\n fibersWithChangedErrorOrWarningCounts.clear();\n fiberIDToErrorsMap.forEach((countMap, fiberID) => {\n const fiber = idToArbitraryFiberMap.get(fiberID);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n }\n });\n fiberIDToWarningsMap.forEach((countMap, fiberID) => {\n const fiber = idToArbitraryFiberMap.get(fiberID);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n }\n });\n recordPendingErrorsAndWarnings();\n }\n\n function mergeMapsAndGetCountHelper(\n fiber: Fiber,\n fiberID: number,\n pendingFiberToMessageCountMap: Map>,\n fiberIDToMessageCountMap: Map>,\n ): number {\n let newCount = 0;\n\n let messageCountMap = fiberIDToMessageCountMap.get(fiberID);\n\n const pendingMessageCountMap = pendingFiberToMessageCountMap.get(fiber);\n if (pendingMessageCountMap != null) {\n if (messageCountMap == null) {\n messageCountMap = pendingMessageCountMap;\n\n fiberIDToMessageCountMap.set(fiberID, pendingMessageCountMap);\n } else {\n // This Flow refinement should not be necessary and yet...\n const refinedMessageCountMap = ((messageCountMap: any): Map<\n string,\n number,\n >);\n\n pendingMessageCountMap.forEach((pendingCount, message) => {\n const previousCount = refinedMessageCountMap.get(message) || 0;\n refinedMessageCountMap.set(message, previousCount + pendingCount);\n });\n }\n }\n\n if (!shouldFilterFiber(fiber)) {\n if (messageCountMap != null) {\n messageCountMap.forEach(count => {\n newCount += count;\n });\n }\n }\n\n pendingFiberToMessageCountMap.delete(fiber);\n\n return newCount;\n }\n\n function recordPendingErrorsAndWarnings() {\n clearPendingErrorsAndWarningsAfterDelay();\n\n fibersWithChangedErrorOrWarningCounts.forEach(fiber => {\n const fiberID = getFiberIDUnsafe(fiber);\n if (fiberID === null) {\n // Don't send updates for Fibers that didn't mount due to e.g. Suspense or an error boundary.\n } else {\n const errorCount = mergeMapsAndGetCountHelper(\n fiber,\n fiberID,\n pendingFiberToErrorsMap,\n fiberIDToErrorsMap,\n );\n const warningCount = mergeMapsAndGetCountHelper(\n fiber,\n fiberID,\n pendingFiberToWarningsMap,\n fiberIDToWarningsMap,\n );\n\n pushOperation(TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS);\n pushOperation(fiberID);\n pushOperation(errorCount);\n pushOperation(warningCount);\n }\n\n // Always clean up so that we don't leak.\n pendingFiberToErrorsMap.delete(fiber);\n pendingFiberToWarningsMap.delete(fiber);\n });\n fibersWithChangedErrorOrWarningCounts.clear();\n }\n\n function flushPendingEvents(root: Object): void {\n // Add any pending errors and warnings to the operations array.\n // We do this just before flushing, so we can ignore errors for no-longer-mounted Fibers.\n recordPendingErrorsAndWarnings();\n\n if (shouldBailoutWithPendingOperations()) {\n // If we aren't profiling, we can just bail out here.\n // No use sending an empty update over the bridge.\n //\n // The Profiler stores metadata for each commit and reconstructs the app tree per commit using:\n // (1) an initial tree snapshot and\n // (2) the operations array for each commit\n // Because of this, it's important that the operations and metadata arrays align,\n // So it's important not to omit even empty operations while profiling is active.\n return;\n }\n\n const numUnmountIDs =\n pendingRealUnmountedIDs.length +\n pendingSimulatedUnmountedIDs.length +\n (pendingUnmountedRootID === null ? 0 : 1);\n\n const operations = new Array(\n // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength +\n // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n // Regular operations\n pendingOperations.length,\n );\n\n // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber props, states, and hooks to be inspected.\n let i = 0;\n operations[i++] = rendererID;\n operations[i++] = currentRootID;\n\n // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach((entry, stringKey) => {\n const encodedString = entry.encodedString;\n\n // Don't use the string length.\n // It won't work for multibyte characters (like emoji).\n const length = encodedString.length;\n\n operations[i++] = length;\n for (let j = 0; j < length; j++) {\n operations[i + j] = encodedString[j];\n }\n\n i += length;\n });\n\n if (numUnmountIDs > 0) {\n // All unmounts except roots are batched in a single message.\n operations[i++] = TREE_OPERATION_REMOVE;\n // The first number is how many unmounted IDs we're gonna send.\n operations[i++] = numUnmountIDs;\n // Fill in the real unmounts in the reverse order.\n // They were inserted parents-first by React, but we want children-first.\n // So we traverse our array backwards.\n for (let j = pendingRealUnmountedIDs.length - 1; j >= 0; j--) {\n operations[i++] = pendingRealUnmountedIDs[j];\n }\n // Fill in the simulated unmounts (hidden Suspense subtrees) in their order.\n // (We want children to go before parents.)\n // They go *after* the real unmounts because we know for sure they won't be\n // children of already pushed \"real\" IDs. If they were, we wouldn't be able\n // to discover them during the traversal, as they would have been deleted.\n for (let j = 0; j < pendingSimulatedUnmountedIDs.length; j++) {\n operations[i + j] = pendingSimulatedUnmountedIDs[j];\n }\n i += pendingSimulatedUnmountedIDs.length;\n // The root ID should always be unmounted last.\n if (pendingUnmountedRootID !== null) {\n operations[i] = pendingUnmountedRootID;\n i++;\n }\n }\n // Fill in the rest of the operations.\n for (let j = 0; j < pendingOperations.length; j++) {\n operations[i + j] = pendingOperations[j];\n }\n i += pendingOperations.length;\n\n // Let the frontend know about tree operations.\n flushOrQueueOperations(operations);\n\n // Reset all of the pending state now that we've told the frontend about it.\n pendingOperations.length = 0;\n pendingRealUnmountedIDs.length = 0;\n pendingSimulatedUnmountedIDs.length = 0;\n pendingUnmountedRootID = null;\n pendingStringTable.clear();\n pendingStringTableLength = 0;\n }\n\n function getStringID(string: string | null): number {\n if (string === null) {\n return 0;\n }\n const existingEntry = pendingStringTable.get(string);\n if (existingEntry !== undefined) {\n return existingEntry.id;\n }\n\n const id = pendingStringTable.size + 1;\n const encodedString = utfEncodeString(string);\n\n pendingStringTable.set(string, {\n encodedString,\n id,\n });\n\n // The string table total length needs to account both for the string length,\n // and for the array item that contains the length itself.\n //\n // Don't use string length for this table.\n // It won't work for multibyte characters (like emoji).\n pendingStringTableLength += encodedString.length + 1;\n\n return id;\n }\n\n function recordMount(fiber: Fiber, parentFiber: Fiber | null) {\n const isRoot = fiber.tag === HostRoot;\n const id = getOrGenerateFiberID(fiber);\n\n if (__DEBUG__) {\n debug('recordMount()', fiber, parentFiber);\n }\n\n const hasOwnerMetadata = fiber.hasOwnProperty('_debugOwner');\n const isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n\n // Adding a new field here would require a bridge protocol version bump (a backwads breaking change).\n // Instead let's re-purpose a pre-existing field to carry more information.\n let profilingFlags = 0;\n if (isProfilingSupported) {\n profilingFlags = PROFILING_FLAG_BASIC_SUPPORT;\n if (typeof injectProfilingHooks === 'function') {\n profilingFlags |= PROFILING_FLAG_TIMELINE_SUPPORT;\n }\n }\n\n if (isRoot) {\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation((fiber.mode & StrictModeBits) !== 0 ? 1 : 0);\n pushOperation(profilingFlags);\n pushOperation(StrictModeBits !== 0 ? 1 : 0);\n pushOperation(hasOwnerMetadata ? 1 : 0);\n\n if (isProfiling) {\n if (displayNamesByRootID !== null) {\n displayNamesByRootID.set(id, getDisplayNameForRoot(fiber));\n }\n }\n } else {\n const {key} = fiber;\n const displayName = getDisplayNameForFiber(fiber);\n const elementType = getElementTypeForFiber(fiber);\n const {_debugOwner} = fiber;\n\n // Ideally we should call getFiberIDThrows() for _debugOwner,\n // since owners are almost always higher in the tree (and so have already been processed),\n // but in some (rare) instances reported in open source, a descendant mounts before an owner.\n // Since this is a DEV only field it's probably okay to also just lazily generate and ID here if needed.\n // See https://github.com/facebook/react/issues/21445\n const ownerID =\n _debugOwner != null ? getOrGenerateFiberID(_debugOwner) : 0;\n const parentID = parentFiber ? getFiberIDThrows(parentFiber) : 0;\n\n const displayNameStringID = getStringID(displayName);\n\n // This check is a guard to handle a React element that has been modified\n // in such a way as to bypass the default stringification of the \"key\" property.\n const keyString = key === null ? null : String(key);\n const keyStringID = getStringID(keyString);\n\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(elementType);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID);\n\n // If this subtree has a new mode, let the frontend know.\n if (\n (fiber.mode & StrictModeBits) !== 0 &&\n (((parentFiber: any): Fiber).mode & StrictModeBits) === 0\n ) {\n pushOperation(TREE_OPERATION_SET_SUBTREE_MODE);\n pushOperation(id);\n pushOperation(StrictMode);\n }\n }\n\n if (isProfilingSupported) {\n idToRootMap.set(id, currentRootID);\n\n recordProfilingDurations(fiber);\n }\n }\n\n function recordUnmount(fiber: Fiber, isSimulated: boolean) {\n if (__DEBUG__) {\n debug(\n 'recordUnmount()',\n fiber,\n null,\n isSimulated ? 'unmount is simulated' : '',\n );\n }\n\n if (trackedPathMatchFiber !== null) {\n // We're in the process of trying to restore previous selection.\n // If this fiber matched but is being unmounted, there's no use trying.\n // Reset the state so we don't keep holding onto it.\n if (\n fiber === trackedPathMatchFiber ||\n fiber === trackedPathMatchFiber.alternate\n ) {\n setTrackedPath(null);\n }\n }\n\n const unsafeID = getFiberIDUnsafe(fiber);\n if (unsafeID === null) {\n // If we've never seen this Fiber, it might be inside of a legacy render Suspense fragment (so the store is not even aware of it).\n // In that case we can just ignore it or it will cause errors later on.\n // One example of this is a Lazy component that never resolves before being unmounted.\n //\n // This also might indicate a Fast Refresh force-remount scenario.\n //\n // TODO: This is fragile and can obscure actual bugs.\n return;\n }\n\n // Flow refinement.\n const id = ((unsafeID: any): number);\n const isRoot = fiber.tag === HostRoot;\n if (isRoot) {\n // Roots must be removed only after all children (pending and simulated) have been removed.\n // So we track it separately.\n pendingUnmountedRootID = id;\n } else if (!shouldFilterFiber(fiber)) {\n // To maintain child-first ordering,\n // we'll push it into one of these queues,\n // and later arrange them in the correct order.\n if (isSimulated) {\n pendingSimulatedUnmountedIDs.push(id);\n } else {\n pendingRealUnmountedIDs.push(id);\n }\n }\n\n if (!fiber._debugNeedsRemount) {\n untrackFiberID(fiber);\n\n const isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n if (isProfilingSupported) {\n idToRootMap.delete(id);\n idToTreeBaseDurationMap.delete(id);\n }\n }\n }\n\n function mountFiberRecursively(\n firstChild: Fiber,\n parentFiber: Fiber | null,\n traverseSiblings: boolean,\n traceNearestHostComponentUpdate: boolean,\n ) {\n // Iterate over siblings rather than recursing.\n // This reduces the chance of stack overflow for wide trees (e.g. lists with many items).\n let fiber: Fiber | null = firstChild;\n while (fiber !== null) {\n // Generate an ID even for filtered Fibers, in case it's needed later (e.g. for Profiling).\n getOrGenerateFiberID(fiber);\n\n if (__DEBUG__) {\n debug('mountFiberRecursively()', fiber, parentFiber);\n }\n\n // If we have the tree selection from previous reload, try to match this Fiber.\n // Also remember whether to do the same for siblings.\n const mightSiblingsBeOnTrackedPath =\n updateTrackedPathStateBeforeMount(fiber);\n\n const shouldIncludeInTree = !shouldFilterFiber(fiber);\n if (shouldIncludeInTree) {\n recordMount(fiber, parentFiber);\n }\n\n if (traceUpdatesEnabled) {\n if (traceNearestHostComponentUpdate) {\n const elementType = getElementTypeForFiber(fiber);\n // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n if (elementType === ElementTypeHostComponent) {\n traceUpdatesForNodes.add(fiber.stateNode);\n traceNearestHostComponentUpdate = false;\n }\n }\n\n // We intentionally do not re-enable the traceNearestHostComponentUpdate flag in this branch,\n // because we don't want to highlight every host node inside of a newly mounted subtree.\n }\n\n const isSuspense = fiber.tag === ReactTypeOfWork.SuspenseComponent;\n if (isSuspense) {\n const isTimedOut = fiber.memoizedState !== null;\n if (isTimedOut) {\n // Special case: if Suspense mounts in a timed-out state,\n // get the fallback child from the inner fragment and mount\n // it as if it was our own child. Updates handle this too.\n const primaryChildFragment = fiber.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n const fallbackChild = fallbackChildFragment\n ? fallbackChildFragment.child\n : null;\n if (fallbackChild !== null) {\n mountFiberRecursively(\n fallbackChild,\n shouldIncludeInTree ? fiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n } else {\n let primaryChild: Fiber | null = null;\n const areSuspenseChildrenConditionallyWrapped =\n OffscreenComponent === -1;\n if (areSuspenseChildrenConditionallyWrapped) {\n primaryChild = fiber.child;\n } else if (fiber.child !== null) {\n primaryChild = fiber.child.child;\n }\n if (primaryChild !== null) {\n mountFiberRecursively(\n primaryChild,\n shouldIncludeInTree ? fiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n }\n } else {\n if (fiber.child !== null) {\n mountFiberRecursively(\n fiber.child,\n shouldIncludeInTree ? fiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n }\n\n // We're exiting this Fiber now, and entering its siblings.\n // If we have selection to restore, we might need to re-activate tracking.\n updateTrackedPathStateAfterMount(mightSiblingsBeOnTrackedPath);\n\n fiber = traverseSiblings ? fiber.sibling : null;\n }\n }\n\n // We use this to simulate unmounting for Suspense trees\n // when we switch from primary to fallback.\n function unmountFiberChildrenRecursively(fiber: Fiber) {\n if (__DEBUG__) {\n debug('unmountFiberChildrenRecursively()', fiber);\n }\n\n // We might meet a nested Suspense on our way.\n const isTimedOutSuspense =\n fiber.tag === ReactTypeOfWork.SuspenseComponent &&\n fiber.memoizedState !== null;\n\n let child = fiber.child;\n if (isTimedOutSuspense) {\n // If it's showing fallback tree, let's traverse it instead.\n const primaryChildFragment = fiber.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n // Skip over to the real Fiber child.\n child = fallbackChildFragment ? fallbackChildFragment.child : null;\n }\n\n while (child !== null) {\n // Record simulated unmounts children-first.\n // We skip nodes without return because those are real unmounts.\n if (child.return !== null) {\n unmountFiberChildrenRecursively(child);\n recordUnmount(child, true);\n }\n child = child.sibling;\n }\n }\n\n function recordProfilingDurations(fiber: Fiber) {\n const id = getFiberIDThrows(fiber);\n const {actualDuration, treeBaseDuration} = fiber;\n\n idToTreeBaseDurationMap.set(id, treeBaseDuration || 0);\n\n if (isProfiling) {\n const {alternate} = fiber;\n\n // It's important to update treeBaseDuration even if the current Fiber did not render,\n // because it's possible that one of its descendants did.\n if (\n alternate == null ||\n treeBaseDuration !== alternate.treeBaseDuration\n ) {\n // Tree base duration updates are included in the operations typed array.\n // So we have to convert them from milliseconds to microseconds so we can send them as ints.\n const convertedTreeBaseDuration = Math.floor(\n (treeBaseDuration || 0) * 1000,\n );\n pushOperation(TREE_OPERATION_UPDATE_TREE_BASE_DURATION);\n pushOperation(id);\n pushOperation(convertedTreeBaseDuration);\n }\n\n if (alternate == null || didFiberRender(alternate, fiber)) {\n if (actualDuration != null) {\n // The actual duration reported by React includes time spent working on children.\n // This is useful information, but it's also useful to be able to exclude child durations.\n // The frontend can't compute this, since the immediate children may have been filtered out.\n // So we need to do this on the backend.\n // Note that this calculated self duration is not the same thing as the base duration.\n // The two are calculated differently (tree duration does not accumulate).\n let selfDuration = actualDuration;\n let child = fiber.child;\n while (child !== null) {\n selfDuration -= child.actualDuration || 0;\n child = child.sibling;\n }\n\n // If profiling is active, store durations for elements that were rendered during the commit.\n // Note that we should do this for any fiber we performed work on, regardless of its actualDuration value.\n // In some cases actualDuration might be 0 for fibers we worked on (particularly if we're using Date.now)\n // In other cases (e.g. Memo) actualDuration might be greater than 0 even if we \"bailed out\".\n const metadata =\n ((currentCommitProfilingMetadata: any): CommitProfilingData);\n metadata.durations.push(id, actualDuration, selfDuration);\n metadata.maxActualDuration = Math.max(\n metadata.maxActualDuration,\n actualDuration,\n );\n\n if (recordChangeDescriptions) {\n const changeDescription = getChangeDescription(alternate, fiber);\n if (changeDescription !== null) {\n if (metadata.changeDescriptions !== null) {\n metadata.changeDescriptions.set(id, changeDescription);\n }\n }\n\n updateContextsForFiber(fiber);\n }\n }\n }\n }\n }\n\n function recordResetChildren(fiber: Fiber, childSet: Fiber) {\n if (__DEBUG__) {\n debug('recordResetChildren()', childSet, fiber);\n }\n // The frontend only really cares about the displayName, key, and children.\n // The first two don't really change, so we are only concerned with the order of children here.\n // This is trickier than a simple comparison though, since certain types of fibers are filtered.\n const nextChildren: Array = [];\n\n // This is a naive implementation that shallowly recourses children.\n // We might want to revisit this if it proves to be too inefficient.\n let child: null | Fiber = childSet;\n while (child !== null) {\n findReorderedChildrenRecursively(child, nextChildren);\n child = child.sibling;\n }\n\n const numChildren = nextChildren.length;\n if (numChildren < 2) {\n // No need to reorder.\n return;\n }\n pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n pushOperation(getFiberIDThrows(fiber));\n pushOperation(numChildren);\n for (let i = 0; i < nextChildren.length; i++) {\n pushOperation(nextChildren[i]);\n }\n }\n\n function findReorderedChildrenRecursively(\n fiber: Fiber,\n nextChildren: Array,\n ) {\n if (!shouldFilterFiber(fiber)) {\n nextChildren.push(getFiberIDThrows(fiber));\n } else {\n let child = fiber.child;\n const isTimedOutSuspense =\n fiber.tag === SuspenseComponent && fiber.memoizedState !== null;\n if (isTimedOutSuspense) {\n // Special case: if Suspense mounts in a timed-out state,\n // get the fallback child from the inner fragment,\n // and skip over the primary child.\n const primaryChildFragment = fiber.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n const fallbackChild = fallbackChildFragment\n ? fallbackChildFragment.child\n : null;\n if (fallbackChild !== null) {\n child = fallbackChild;\n }\n }\n while (child !== null) {\n findReorderedChildrenRecursively(child, nextChildren);\n child = child.sibling;\n }\n }\n }\n\n // Returns whether closest unfiltered fiber parent needs to reset its child list.\n function updateFiberRecursively(\n nextFiber: Fiber,\n prevFiber: Fiber,\n parentFiber: Fiber | null,\n traceNearestHostComponentUpdate: boolean,\n ): boolean {\n const id = getOrGenerateFiberID(nextFiber);\n\n if (__DEBUG__) {\n debug('updateFiberRecursively()', nextFiber, parentFiber);\n }\n\n if (traceUpdatesEnabled) {\n const elementType = getElementTypeForFiber(nextFiber);\n if (traceNearestHostComponentUpdate) {\n // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n if (elementType === ElementTypeHostComponent) {\n traceUpdatesForNodes.add(nextFiber.stateNode);\n traceNearestHostComponentUpdate = false;\n }\n } else {\n if (\n elementType === ElementTypeFunction ||\n elementType === ElementTypeClass ||\n elementType === ElementTypeContext ||\n elementType === ElementTypeMemo ||\n elementType === ElementTypeForwardRef\n ) {\n // Otherwise if this is a traced ancestor, flag for the nearest host descendant(s).\n traceNearestHostComponentUpdate = didFiberRender(\n prevFiber,\n nextFiber,\n );\n }\n }\n }\n\n if (\n mostRecentlyInspectedElement !== null &&\n mostRecentlyInspectedElement.id === id &&\n didFiberRender(prevFiber, nextFiber)\n ) {\n // If this Fiber has updated, clear cached inspected data.\n // If it is inspected again, it may need to be re-run to obtain updated hooks values.\n hasElementUpdatedSinceLastInspected = true;\n }\n\n const shouldIncludeInTree = !shouldFilterFiber(nextFiber);\n const isSuspense = nextFiber.tag === SuspenseComponent;\n let shouldResetChildren = false;\n // The behavior of timed-out Suspense trees is unique.\n // Rather than unmount the timed out content (and possibly lose important state),\n // React re-parents this content within a hidden Fragment while the fallback is showing.\n // This behavior doesn't need to be observable in the DevTools though.\n // It might even result in a bad user experience for e.g. node selection in the Elements panel.\n // The easiest fix is to strip out the intermediate Fragment fibers,\n // so the Elements panel and Profiler don't need to special case them.\n // Suspense components only have a non-null memoizedState if they're timed-out.\n const prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;\n const nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null;\n // The logic below is inspired by the code paths in updateSuspenseComponent()\n // inside ReactFiberBeginWork in the React source code.\n if (prevDidTimeout && nextDidTimeOut) {\n // Fallback -> Fallback:\n // 1. Reconcile fallback set.\n const nextFiberChild = nextFiber.child;\n const nextFallbackChildSet = nextFiberChild\n ? nextFiberChild.sibling\n : null;\n // Note: We can't use nextFiber.child.sibling.alternate\n // because the set is special and alternate may not exist.\n const prevFiberChild = prevFiber.child;\n const prevFallbackChildSet = prevFiberChild\n ? prevFiberChild.sibling\n : null;\n\n if (prevFallbackChildSet == null && nextFallbackChildSet != null) {\n mountFiberRecursively(\n nextFallbackChildSet,\n shouldIncludeInTree ? nextFiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n\n shouldResetChildren = true;\n }\n\n if (\n nextFallbackChildSet != null &&\n prevFallbackChildSet != null &&\n updateFiberRecursively(\n nextFallbackChildSet,\n prevFallbackChildSet,\n nextFiber,\n traceNearestHostComponentUpdate,\n )\n ) {\n shouldResetChildren = true;\n }\n } else if (prevDidTimeout && !nextDidTimeOut) {\n // Fallback -> Primary:\n // 1. Unmount fallback set\n // Note: don't emulate fallback unmount because React actually did it.\n // 2. Mount primary set\n const nextPrimaryChildSet = nextFiber.child;\n if (nextPrimaryChildSet !== null) {\n mountFiberRecursively(\n nextPrimaryChildSet,\n shouldIncludeInTree ? nextFiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n shouldResetChildren = true;\n } else if (!prevDidTimeout && nextDidTimeOut) {\n // Primary -> Fallback:\n // 1. Hide primary set\n // This is not a real unmount, so it won't get reported by React.\n // We need to manually walk the previous tree and record unmounts.\n unmountFiberChildrenRecursively(prevFiber);\n // 2. Mount fallback set\n const nextFiberChild = nextFiber.child;\n const nextFallbackChildSet = nextFiberChild\n ? nextFiberChild.sibling\n : null;\n if (nextFallbackChildSet != null) {\n mountFiberRecursively(\n nextFallbackChildSet,\n shouldIncludeInTree ? nextFiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n shouldResetChildren = true;\n }\n } else {\n // Common case: Primary -> Primary.\n // This is the same code path as for non-Suspense fibers.\n if (nextFiber.child !== prevFiber.child) {\n // If the first child is different, we need to traverse them.\n // Each next child will be either a new child (mount) or an alternate (update).\n let nextChild = nextFiber.child;\n let prevChildAtSameIndex = prevFiber.child;\n while (nextChild) {\n // We already know children will be referentially different because\n // they are either new mounts or alternates of previous children.\n // Schedule updates and mounts depending on whether alternates exist.\n // We don't track deletions here because they are reported separately.\n if (nextChild.alternate) {\n const prevChild = nextChild.alternate;\n if (\n updateFiberRecursively(\n nextChild,\n prevChild,\n shouldIncludeInTree ? nextFiber : parentFiber,\n traceNearestHostComponentUpdate,\n )\n ) {\n // If a nested tree child order changed but it can't handle its own\n // child order invalidation (e.g. because it's filtered out like host nodes),\n // propagate the need to reset child order upwards to this Fiber.\n shouldResetChildren = true;\n }\n // However we also keep track if the order of the children matches\n // the previous order. They are always different referentially, but\n // if the instances line up conceptually we'll want to know that.\n if (prevChild !== prevChildAtSameIndex) {\n shouldResetChildren = true;\n }\n } else {\n mountFiberRecursively(\n nextChild,\n shouldIncludeInTree ? nextFiber : parentFiber,\n false,\n traceNearestHostComponentUpdate,\n );\n shouldResetChildren = true;\n }\n // Try the next child.\n nextChild = nextChild.sibling;\n // Advance the pointer in the previous list so that we can\n // keep comparing if they line up.\n if (!shouldResetChildren && prevChildAtSameIndex !== null) {\n prevChildAtSameIndex = prevChildAtSameIndex.sibling;\n }\n }\n // If we have no more children, but used to, they don't line up.\n if (prevChildAtSameIndex !== null) {\n shouldResetChildren = true;\n }\n } else {\n if (traceUpdatesEnabled) {\n // If we're tracing updates and we've bailed out before reaching a host node,\n // we should fall back to recursively marking the nearest host descendants for highlight.\n if (traceNearestHostComponentUpdate) {\n const hostFibers = findAllCurrentHostFibers(\n getFiberIDThrows(nextFiber),\n );\n hostFibers.forEach(hostFiber => {\n traceUpdatesForNodes.add(hostFiber.stateNode);\n });\n }\n }\n }\n }\n\n if (shouldIncludeInTree) {\n const isProfilingSupported = nextFiber.hasOwnProperty('treeBaseDuration');\n if (isProfilingSupported) {\n recordProfilingDurations(nextFiber);\n }\n }\n if (shouldResetChildren) {\n // We need to crawl the subtree for closest non-filtered Fibers\n // so that we can display them in a flat children set.\n if (shouldIncludeInTree) {\n // Normally, search for children from the rendered child.\n let nextChildSet = nextFiber.child;\n if (nextDidTimeOut) {\n // Special case: timed-out Suspense renders the fallback set.\n const nextFiberChild = nextFiber.child;\n nextChildSet = nextFiberChild ? nextFiberChild.sibling : null;\n }\n if (nextChildSet != null) {\n recordResetChildren(nextFiber, nextChildSet);\n }\n // We've handled the child order change for this Fiber.\n // Since it's included, there's no need to invalidate parent child order.\n return false;\n } else {\n // Let the closest unfiltered parent Fiber reset its child order instead.\n return true;\n }\n } else {\n return false;\n }\n }\n\n function cleanup() {\n // We don't patch any methods so there is no cleanup.\n }\n\n function rootSupportsProfiling(root: any) {\n if (root.memoizedInteractions != null) {\n // v16 builds include this field for the scheduler/tracing API.\n return true;\n } else if (\n root.current != null &&\n root.current.hasOwnProperty('treeBaseDuration')\n ) {\n // The scheduler/tracing API was removed in v17 though\n // so we need to check a non-root Fiber.\n return true;\n } else {\n return false;\n }\n }\n\n function flushInitialOperations() {\n const localPendingOperationsQueue = pendingOperationsQueue;\n\n pendingOperationsQueue = null;\n\n if (\n localPendingOperationsQueue !== null &&\n localPendingOperationsQueue.length > 0\n ) {\n // We may have already queued up some operations before the frontend connected\n // If so, let the frontend know about them.\n localPendingOperationsQueue.forEach(operations => {\n hook.emit('operations', operations);\n });\n } else {\n // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n }\n // If we have not been profiling, then we can just walk the tree and build up its current state as-is.\n hook.getFiberRoots(rendererID).forEach(root => {\n currentRootID = getOrGenerateFiberID(root.current);\n setRootPseudoKey(currentRootID, root.current);\n\n // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n if (isProfiling && rootSupportsProfiling(root)) {\n // If profiling is active, store commit time and duration.\n // The frontend may request this information after profiling has stopped.\n currentCommitProfilingMetadata = {\n changeDescriptions: recordChangeDescriptions ? new Map() : null,\n durations: [],\n commitTime: getCurrentTime() - profilingStartTime,\n maxActualDuration: 0,\n priorityLevel: null,\n updaters: getUpdatersList(root),\n effectDuration: null,\n passiveEffectDuration: null,\n };\n }\n\n mountFiberRecursively(root.current, null, false, false);\n flushPendingEvents(root);\n currentRootID = -1;\n });\n }\n }\n\n function getUpdatersList(root: any): Array | null {\n return root.memoizedUpdaters != null\n ? Array.from(root.memoizedUpdaters)\n .filter(fiber => getFiberIDUnsafe(fiber) !== null)\n .map(fiberToSerializedElement)\n : null;\n }\n\n function handleCommitFiberUnmount(fiber: any) {\n // If the untrackFiberSet already has the unmounted Fiber, this means we've already\n // recordedUnmount, so we don't need to do it again. If we don't do this, we might\n // end up double-deleting Fibers in some cases (like Legacy Suspense).\n if (!untrackFibersSet.has(fiber)) {\n // This is not recursive.\n // We can't traverse fibers after unmounting so instead\n // we rely on React telling us about each unmount.\n recordUnmount(fiber, false);\n }\n }\n\n function handlePostCommitFiberRoot(root: any) {\n if (isProfiling && rootSupportsProfiling(root)) {\n if (currentCommitProfilingMetadata !== null) {\n const {effectDuration, passiveEffectDuration} =\n getEffectDurations(root);\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentCommitProfilingMetadata.effectDuration = effectDuration;\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentCommitProfilingMetadata.passiveEffectDuration =\n passiveEffectDuration;\n }\n }\n }\n\n function handleCommitFiberRoot(root: any, priorityLevel: void | number) {\n const current = root.current;\n const alternate = current.alternate;\n\n // Flush any pending Fibers that we are untracking before processing the new commit.\n // If we don't do this, we might end up double-deleting Fibers in some cases (like Legacy Suspense).\n untrackFibers();\n\n currentRootID = getOrGenerateFiberID(current);\n\n // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n }\n\n if (traceUpdatesEnabled) {\n traceUpdatesForNodes.clear();\n }\n\n // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n const isProfilingSupported = rootSupportsProfiling(root);\n\n if (isProfiling && isProfilingSupported) {\n // If profiling is active, store commit time and duration.\n // The frontend may request this information after profiling has stopped.\n currentCommitProfilingMetadata = {\n changeDescriptions: recordChangeDescriptions ? new Map() : null,\n durations: [],\n commitTime: getCurrentTime() - profilingStartTime,\n maxActualDuration: 0,\n priorityLevel:\n priorityLevel == null ? null : formatPriorityLevel(priorityLevel),\n\n updaters: getUpdatersList(root),\n\n // Initialize to null; if new enough React version is running,\n // these values will be read during separate handlePostCommitFiberRoot() call.\n effectDuration: null,\n passiveEffectDuration: null,\n };\n }\n\n if (alternate) {\n // TODO: relying on this seems a bit fishy.\n const wasMounted =\n alternate.memoizedState != null &&\n alternate.memoizedState.element != null &&\n // A dehydrated root is not considered mounted\n alternate.memoizedState.isDehydrated !== true;\n const isMounted =\n current.memoizedState != null &&\n current.memoizedState.element != null &&\n // A dehydrated root is not considered mounted\n current.memoizedState.isDehydrated !== true;\n if (!wasMounted && isMounted) {\n // Mount a new root.\n setRootPseudoKey(currentRootID, current);\n mountFiberRecursively(current, null, false, false);\n } else if (wasMounted && isMounted) {\n // Update an existing root.\n updateFiberRecursively(current, alternate, null, false);\n } else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n removeRootPseudoKey(currentRootID);\n recordUnmount(current, false);\n }\n } else {\n // Mount a new root.\n setRootPseudoKey(currentRootID, current);\n mountFiberRecursively(current, null, false, false);\n }\n\n if (isProfiling && isProfilingSupported) {\n if (!shouldBailoutWithPendingOperations()) {\n const commitProfilingMetadata =\n ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).get(\n currentRootID,\n );\n\n if (commitProfilingMetadata != null) {\n commitProfilingMetadata.push(\n ((currentCommitProfilingMetadata: any): CommitProfilingData),\n );\n } else {\n ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).set(\n currentRootID,\n [((currentCommitProfilingMetadata: any): CommitProfilingData)],\n );\n }\n }\n }\n\n // We're done here.\n flushPendingEvents(root);\n\n if (traceUpdatesEnabled) {\n hook.emit('traceUpdates', traceUpdatesForNodes);\n }\n\n currentRootID = -1;\n }\n\n function findAllCurrentHostFibers(id: number): $ReadOnlyArray {\n const fibers = [];\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (!fiber) {\n return fibers;\n }\n\n // Next we'll drill down this component to find all HostComponent/Text.\n let node: Fiber = fiber;\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n fibers.push(node);\n } else if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === fiber) {\n return fibers;\n }\n while (!node.sibling) {\n if (!node.return || node.return === fiber) {\n return fibers;\n }\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n // Flow needs the return here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n return fibers;\n }\n\n function findNativeNodesForFiberID(id: number) {\n try {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber === null) {\n return null;\n }\n\n const hostFibers = findAllCurrentHostFibers(id);\n return hostFibers.map(hostFiber => hostFiber.stateNode).filter(Boolean);\n } catch (err) {\n // The fiber might have unmounted by now.\n return null;\n }\n }\n\n function getDisplayNameForFiberID(id: number): null | string {\n const fiber = idToArbitraryFiberMap.get(id);\n return fiber != null ? getDisplayNameForFiber(fiber) : null;\n }\n\n function getFiberForNative(hostInstance: NativeType) {\n return renderer.findFiberByHostInstance(hostInstance);\n }\n\n function getFiberIDForNative(\n hostInstance: NativeType,\n findNearestUnfilteredAncestor: boolean = false,\n ) {\n let fiber = renderer.findFiberByHostInstance(hostInstance);\n if (fiber != null) {\n if (findNearestUnfilteredAncestor) {\n while (fiber !== null && shouldFilterFiber(fiber)) {\n fiber = fiber.return;\n }\n }\n return getFiberIDThrows(((fiber: any): Fiber));\n }\n return null;\n }\n\n // This function is copied from React and should be kept in sync:\n // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n function assertIsMounted(fiber: Fiber) {\n if (getNearestMountedFiber(fiber) !== fiber) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n }\n\n // This function is copied from React and should be kept in sync:\n // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n function getNearestMountedFiber(fiber: Fiber): null | Fiber {\n let node = fiber;\n let nearestMounted: null | Fiber = fiber;\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n let nextNode: Fiber = node;\n do {\n node = nextNode;\n // TODO: This function, and these flags, are a leaked implementation\n // detail. Once we start releasing DevTools in lockstep with React, we\n // should import a function from the reconciler instead.\n const Placement = 0b000000000000000000000000010;\n const Hydrating = 0b000000000000001000000000000;\n if ((node.flags & (Placement | Hydrating)) !== 0) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n // $FlowFixMe[incompatible-type] we bail out when we get a null\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n }\n // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n return null;\n }\n\n // This function is copied from React and should be kept in sync:\n // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n // It would be nice if we updated React to inject this function directly (vs just indirectly via findDOMNode).\n // BEGIN copied code\n function findCurrentFiberUsingSlowPathById(id: number): Fiber | null {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return null;\n }\n\n const alternate = fiber.alternate;\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n const nearestMounted = getNearestMountedFiber(fiber);\n\n if (nearestMounted === null) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n return fiber;\n }\n // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n let a: Fiber = fiber;\n let b: Fiber = alternate;\n while (true) {\n const parentA = a.return;\n if (parentA === null) {\n // We're at the root.\n break;\n }\n const parentB = parentA.alternate;\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n const nextParent = parentA.return;\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n }\n // If there's no parent, we're at the root.\n break;\n }\n\n // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n if (parentA.child === parentB.child) {\n let child = parentA.child;\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n child = child.sibling;\n }\n\n // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n let didFindChild = false;\n let child = parentA.child;\n while (child) {\n if (child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n if (child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n child = child.sibling;\n }\n if (!didFindChild) {\n // Search parent B's child set\n child = parentB.child;\n while (child) {\n if (child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n if (child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n child = child.sibling;\n }\n\n if (!didFindChild) {\n throw new Error(\n 'Child was not found in either parent set. This indicates a bug ' +\n 'in React related to the return pointer. Please file an issue.',\n );\n }\n }\n }\n\n if (a.alternate !== b) {\n throw new Error(\n \"Return fibers should always be each others' alternates. \" +\n 'This error is likely caused by a bug in React. Please file an issue.',\n );\n }\n }\n\n // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n if (a.tag !== HostRoot) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n }\n // Otherwise B has to be current branch.\n return alternate;\n }\n\n // END copied code\n\n function prepareViewAttributeSource(\n id: number,\n path: Array,\n ): void {\n if (isMostRecentlyInspectedElement(id)) {\n window.$attribute = getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n );\n }\n }\n\n function prepareViewElementSource(id: number): void {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return;\n }\n\n const {elementType, tag, type} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IndeterminateComponent:\n case FunctionComponent:\n global.$type = type;\n break;\n case ForwardRef:\n global.$type = type.render;\n break;\n case MemoComponent:\n case SimpleMemoComponent:\n global.$type =\n elementType != null && elementType.type != null\n ? elementType.type\n : type;\n break;\n default:\n global.$type = null;\n break;\n }\n }\n\n function fiberToSerializedElement(fiber: Fiber): SerializedElement {\n return {\n displayName: getDisplayNameForFiber(fiber) || 'Anonymous',\n id: getFiberIDThrows(fiber),\n key: fiber.key,\n type: getElementTypeForFiber(fiber),\n };\n }\n\n function getOwnersList(id: number): Array | null {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber == null) {\n return null;\n }\n\n const {_debugOwner} = fiber;\n\n const owners: Array = [fiberToSerializedElement(fiber)];\n\n if (_debugOwner) {\n let owner: null | Fiber = _debugOwner;\n while (owner !== null) {\n owners.unshift(fiberToSerializedElement(owner));\n owner = owner._debugOwner || null;\n }\n }\n\n return owners;\n }\n\n // Fast path props lookup for React Native style editor.\n // Could use inspectElementRaw() but that would require shallow rendering hooks components,\n // and could also mess with memoization.\n function getInstanceAndStyle(id: number): InstanceAndStyle {\n let instance = null;\n let style = null;\n\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n instance = fiber.stateNode;\n\n if (fiber.memoizedProps !== null) {\n style = fiber.memoizedProps.style;\n }\n }\n\n return {instance, style};\n }\n\n function isErrorBoundary(fiber: Fiber): boolean {\n const {tag, type} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n const instance = fiber.stateNode;\n return (\n typeof type.getDerivedStateFromError === 'function' ||\n (instance !== null &&\n typeof instance.componentDidCatch === 'function')\n );\n default:\n return false;\n }\n }\n\n function getNearestErrorBoundaryID(fiber: Fiber): number | null {\n let parent = fiber.return;\n while (parent !== null) {\n if (isErrorBoundary(parent)) {\n return getFiberIDUnsafe(parent);\n }\n parent = parent.return;\n }\n return null;\n }\n\n function inspectElementRaw(id: number): InspectedElement | null {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber == null) {\n return null;\n }\n\n const {\n _debugOwner,\n _debugSource,\n stateNode,\n key,\n memoizedProps,\n memoizedState,\n dependencies,\n tag,\n type,\n } = fiber;\n\n const elementType = getElementTypeForFiber(fiber);\n\n const usesHooks =\n (tag === FunctionComponent ||\n tag === SimpleMemoComponent ||\n tag === ForwardRef) &&\n (!!memoizedState || !!dependencies);\n\n // TODO Show custom UI for Cache like we do for Suspense\n // For now, just hide state data entirely since it's not meant to be inspected.\n const showState = !usesHooks && tag !== CacheComponent;\n\n const typeSymbol = getTypeSymbol(type);\n\n let canViewSource = false;\n let context = null;\n if (\n tag === ClassComponent ||\n tag === FunctionComponent ||\n tag === IncompleteClassComponent ||\n tag === IndeterminateComponent ||\n tag === MemoComponent ||\n tag === ForwardRef ||\n tag === SimpleMemoComponent\n ) {\n canViewSource = true;\n if (stateNode && stateNode.context != null) {\n // Don't show an empty context object for class components that don't use the context API.\n const shouldHideContext =\n elementType === ElementTypeClass &&\n !(type.contextTypes || type.contextType);\n\n if (!shouldHideContext) {\n context = stateNode.context;\n }\n }\n } else if (\n typeSymbol === CONTEXT_NUMBER ||\n typeSymbol === CONTEXT_SYMBOL_STRING\n ) {\n // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n // NOTE Keep in sync with getDisplayNameForFiber()\n const consumerResolvedContext = type._context || type;\n\n // Global context value.\n context = consumerResolvedContext._currentValue || null;\n\n // Look for overridden value.\n let current = ((fiber: any): Fiber).return;\n while (current !== null) {\n const currentType = current.type;\n const currentTypeSymbol = getTypeSymbol(currentType);\n if (\n currentTypeSymbol === PROVIDER_NUMBER ||\n currentTypeSymbol === PROVIDER_SYMBOL_STRING\n ) {\n // 16.3.0 exposed the context object as \"context\"\n // PR #12501 changed it to \"_context\" for 16.3.1+\n // NOTE Keep in sync with getDisplayNameForFiber()\n const providerResolvedContext =\n currentType._context || currentType.context;\n if (providerResolvedContext === consumerResolvedContext) {\n context = current.memoizedProps.value;\n break;\n }\n }\n\n current = current.return;\n }\n }\n\n let hasLegacyContext = false;\n if (context !== null) {\n hasLegacyContext = !!type.contextTypes;\n\n // To simplify hydration and display logic for context, wrap in a value object.\n // Otherwise simple values (e.g. strings, booleans) become harder to handle.\n context = {value: context};\n }\n\n let owners = null;\n if (_debugOwner) {\n owners = ([]: Array);\n let owner: null | Fiber = _debugOwner;\n while (owner !== null) {\n owners.push(fiberToSerializedElement(owner));\n owner = owner._debugOwner || null;\n }\n }\n\n const isTimedOutSuspense =\n tag === SuspenseComponent && memoizedState !== null;\n\n let hooks = null;\n if (usesHooks) {\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n // Temporarily disable all console logging before re-running the hook.\n for (const method in console) {\n try {\n originalConsoleMethods[method] = console[method];\n // $FlowFixMe[prop-missing]\n console[method] = () => {};\n } catch (error) {}\n }\n\n try {\n hooks = inspectHooksOfFiber(\n fiber,\n (renderer.currentDispatcherRef: any),\n true, // Include source location info for hooks\n );\n } finally {\n // Restore original console functionality.\n for (const method in originalConsoleMethods) {\n try {\n // $FlowFixMe[prop-missing]\n console[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n }\n }\n\n let rootType = null;\n let current = fiber;\n while (current.return !== null) {\n current = current.return;\n }\n const fiberRoot = current.stateNode;\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n rootType = fiberRoot._debugRootType;\n }\n\n const errors = fiberIDToErrorsMap.get(id) || new Map();\n const warnings = fiberIDToWarningsMap.get(id) || new Map();\n\n let isErrored = false;\n let targetErrorBoundaryID;\n if (isErrorBoundary(fiber)) {\n // if the current inspected element is an error boundary,\n // either that we want to use it to toggle off error state\n // or that we allow to force error state on it if it's within another\n // error boundary\n //\n // TODO: This flag is a leaked implementation detail. Once we start\n // releasing DevTools in lockstep with React, we should import a function\n // from the reconciler instead.\n const DidCapture = 0b000000000000000000010000000;\n isErrored =\n (fiber.flags & DidCapture) !== 0 ||\n forceErrorForFiberIDs.get(id) === true;\n targetErrorBoundaryID = isErrored ? id : getNearestErrorBoundaryID(fiber);\n } else {\n targetErrorBoundaryID = getNearestErrorBoundaryID(fiber);\n }\n\n const plugins: Plugins = {\n stylex: null,\n };\n\n if (enableStyleXFeatures) {\n if (memoizedProps != null && memoizedProps.hasOwnProperty('xstyle')) {\n plugins.stylex = getStyleXData(memoizedProps.xstyle);\n }\n }\n\n return {\n id,\n\n // Does the current renderer support editable hooks and function props?\n canEditHooks: typeof overrideHookState === 'function',\n canEditFunctionProps: typeof overrideProps === 'function',\n\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths:\n typeof overrideHookStateDeletePath === 'function',\n canEditHooksAndRenamePaths:\n typeof overrideHookStateRenamePath === 'function',\n canEditFunctionPropsDeletePaths:\n typeof overridePropsDeletePath === 'function',\n canEditFunctionPropsRenamePaths:\n typeof overridePropsRenamePath === 'function',\n\n canToggleError: supportsTogglingError && targetErrorBoundaryID != null,\n // Is this error boundary in error state.\n isErrored,\n targetErrorBoundaryID,\n\n canToggleSuspense:\n supportsTogglingSuspense &&\n // If it's showing the real content, we can always flip fallback.\n (!isTimedOutSuspense ||\n // If it's showing fallback because we previously forced it to,\n // allow toggling it back to remove the fallback override.\n forceFallbackForSuspenseIDs.has(id)),\n\n // Can view component source location.\n canViewSource,\n\n // Does the component have legacy context attached to it.\n hasLegacyContext,\n\n key: key != null ? key : null,\n\n displayName: getDisplayNameForFiber(fiber),\n type: elementType,\n\n // Inspectable properties.\n // TODO Review sanitization approach for the below inspectable values.\n context,\n hooks,\n props: memoizedProps,\n state: showState ? memoizedState : null,\n errors: Array.from(errors.entries()),\n warnings: Array.from(warnings.entries()),\n\n // List of owners\n owners,\n\n // Location of component in source code.\n source: _debugSource || null,\n\n rootType,\n rendererPackageName: renderer.rendererPackageName,\n rendererVersion: renderer.version,\n\n plugins,\n };\n }\n\n let mostRecentlyInspectedElement: InspectedElement | null = null;\n let hasElementUpdatedSinceLastInspected: boolean = false;\n let currentlyInspectedPaths: Object = {};\n\n function isMostRecentlyInspectedElement(id: number): boolean {\n return (\n mostRecentlyInspectedElement !== null &&\n mostRecentlyInspectedElement.id === id\n );\n }\n\n function isMostRecentlyInspectedElementCurrent(id: number): boolean {\n return (\n isMostRecentlyInspectedElement(id) && !hasElementUpdatedSinceLastInspected\n );\n }\n\n // Track the intersection of currently inspected paths,\n // so that we can send their data along if the element is re-rendered.\n function mergeInspectedPaths(path: Array) {\n let current = currentlyInspectedPaths;\n path.forEach(key => {\n if (!current[key]) {\n current[key] = {};\n }\n current = current[key];\n });\n }\n\n function createIsPathAllowed(\n key: string | null,\n secondaryCategory: 'hooks' | null,\n ) {\n // This function helps prevent previously-inspected paths from being dehydrated in updates.\n // This is important to avoid a bad user experience where expanded toggles collapse on update.\n return function isPathAllowed(path: Array): boolean {\n switch (secondaryCategory) {\n case 'hooks':\n if (path.length === 1) {\n // Never dehydrate the \"hooks\" object at the top levels.\n return true;\n }\n\n if (\n path[path.length - 2] === 'hookSource' &&\n path[path.length - 1] === 'fileName'\n ) {\n // It's important to preserve the full file name (URL) for hook sources\n // in case the user has enabled the named hooks feature.\n // Otherwise the frontend may end up with a partial URL which it can't load.\n return true;\n }\n\n if (\n path[path.length - 1] === 'subHooks' ||\n path[path.length - 2] === 'subHooks'\n ) {\n // Dehydrating the 'subHooks' property makes the HooksTree UI a lot more complicated,\n // so it's easiest for now if we just don't break on this boundary.\n // We can always dehydrate a level deeper (in the value object).\n return true;\n }\n break;\n default:\n break;\n }\n\n let current =\n key === null ? currentlyInspectedPaths : currentlyInspectedPaths[key];\n if (!current) {\n return false;\n }\n for (let i = 0; i < path.length; i++) {\n current = current[path[i]];\n if (!current) {\n return false;\n }\n }\n return true;\n };\n }\n\n function updateSelectedElement(inspectedElement: InspectedElement): void {\n const {hooks, id, props} = inspectedElement;\n\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return;\n }\n\n const {elementType, stateNode, tag, type} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IndeterminateComponent:\n global.$r = stateNode;\n break;\n case FunctionComponent:\n global.$r = {\n hooks,\n props,\n type,\n };\n break;\n case ForwardRef:\n global.$r = {\n hooks,\n props,\n type: type.render,\n };\n break;\n case MemoComponent:\n case SimpleMemoComponent:\n global.$r = {\n hooks,\n props,\n type:\n elementType != null && elementType.type != null\n ? elementType.type\n : type,\n };\n break;\n default:\n global.$r = null;\n break;\n }\n }\n\n function storeAsGlobal(\n id: number,\n path: Array,\n count: number,\n ): void {\n if (isMostRecentlyInspectedElement(id)) {\n const value = getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n );\n const key = `$reactTemp${count}`;\n\n window[key] = value;\n\n console.log(key);\n console.log(value);\n }\n }\n\n function getSerializedElementValueByPath(\n id: number,\n path: Array,\n ): ?string {\n if (isMostRecentlyInspectedElement(id)) {\n const valueToCopy = getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n );\n\n return serializeToString(valueToCopy);\n }\n }\n\n function inspectElement(\n requestID: number,\n id: number,\n path: Array | null,\n forceFullData: boolean,\n ): InspectedElementPayload {\n if (path !== null) {\n mergeInspectedPaths(path);\n }\n\n if (isMostRecentlyInspectedElement(id) && !forceFullData) {\n if (!hasElementUpdatedSinceLastInspected) {\n if (path !== null) {\n let secondaryCategory = null;\n if (path[0] === 'hooks') {\n secondaryCategory = 'hooks';\n }\n\n // If this element has not been updated since it was last inspected,\n // we can just return the subset of data in the newly-inspected path.\n return {\n id,\n responseID: requestID,\n type: 'hydrated-path',\n path,\n value: cleanForBridge(\n getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n ),\n createIsPathAllowed(null, secondaryCategory),\n path,\n ),\n };\n } else {\n // If this element has not been updated since it was last inspected, we don't need to return it.\n // Instead we can just return the ID to indicate that it has not changed.\n return {\n id,\n responseID: requestID,\n type: 'no-change',\n };\n }\n }\n } else {\n currentlyInspectedPaths = {};\n }\n\n hasElementUpdatedSinceLastInspected = false;\n\n try {\n mostRecentlyInspectedElement = inspectElementRaw(id);\n } catch (error) {\n // the error name is synced with ReactDebugHooks\n if (error.name === 'ReactDebugToolsRenderError') {\n let message = 'Error rendering inspected element.';\n let stack;\n // Log error & cause for user to debug\n console.error(message + '\\n\\n', error);\n if (error.cause != null) {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n const componentName =\n fiber != null ? getDisplayNameForFiber(fiber) : null;\n console.error(\n 'React DevTools encountered an error while trying to inspect hooks. ' +\n 'This is most likely caused by an error in current inspected component' +\n (componentName != null ? `: \"${componentName}\".` : '.') +\n '\\nThe error thrown in the component is: \\n\\n',\n error.cause,\n );\n if (error.cause instanceof Error) {\n message = error.cause.message || message;\n stack = error.cause.stack;\n }\n }\n\n return {\n type: 'error',\n errorType: 'user',\n id,\n responseID: requestID,\n message,\n stack,\n };\n }\n\n // the error name is synced with ReactDebugHooks\n if (error.name === 'ReactDebugToolsUnsupportedHookError') {\n return {\n type: 'error',\n errorType: 'unknown-hook',\n id,\n responseID: requestID,\n message:\n 'Unsupported hook in the react-debug-tools package: ' +\n error.message,\n };\n }\n\n // Log Uncaught Error\n console.error('Error inspecting element.\\n\\n', error);\n\n return {\n type: 'error',\n errorType: 'uncaught',\n id,\n responseID: requestID,\n message: error.message,\n stack: error.stack,\n };\n }\n\n if (mostRecentlyInspectedElement === null) {\n return {\n id,\n responseID: requestID,\n type: 'not-found',\n };\n }\n\n // Any time an inspected element has an update,\n // we should update the selected $r value as wel.\n // Do this before dehydration (cleanForBridge).\n updateSelectedElement(mostRecentlyInspectedElement);\n\n // Clone before cleaning so that we preserve the full data.\n // This will enable us to send patches without re-inspecting if hydrated paths are requested.\n // (Reducing how often we shallow-render is a better DX for function components that use hooks.)\n const cleanedInspectedElement = {...mostRecentlyInspectedElement};\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.context = cleanForBridge(\n cleanedInspectedElement.context,\n createIsPathAllowed('context', null),\n );\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.hooks = cleanForBridge(\n cleanedInspectedElement.hooks,\n createIsPathAllowed('hooks', 'hooks'),\n );\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.props = cleanForBridge(\n cleanedInspectedElement.props,\n createIsPathAllowed('props', null),\n );\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.state = cleanForBridge(\n cleanedInspectedElement.state,\n createIsPathAllowed('state', null),\n );\n\n return {\n id,\n responseID: requestID,\n type: 'full-data',\n // $FlowFixMe[prop-missing] found when upgrading Flow\n value: cleanedInspectedElement,\n };\n }\n\n function logElementToConsole(id: number) {\n const result = isMostRecentlyInspectedElementCurrent(id)\n ? mostRecentlyInspectedElement\n : inspectElementRaw(id);\n if (result === null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return;\n }\n\n const supportsGroup = typeof console.groupCollapsed === 'function';\n if (supportsGroup) {\n console.groupCollapsed(\n `[Click to expand] %c<${result.displayName || 'Component'} />`,\n // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n 'color: var(--dom-tag-name-color); font-weight: normal;',\n );\n }\n if (result.props !== null) {\n console.log('Props:', result.props);\n }\n if (result.state !== null) {\n console.log('State:', result.state);\n }\n if (result.hooks !== null) {\n console.log('Hooks:', result.hooks);\n }\n const nativeNodes = findNativeNodesForFiberID(id);\n if (nativeNodes !== null) {\n console.log('Nodes:', nativeNodes);\n }\n if (result.source !== null) {\n console.log('Location:', result.source);\n }\n if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n console.log(\n 'Right-click any value to save it as a global variable for further inspection.',\n );\n }\n if (supportsGroup) {\n console.groupEnd();\n }\n }\n\n function deletePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n ): void {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n const instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n path = path.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (path.length === 0) {\n // Simple context value (noop)\n } else {\n deletePathInObject(instance.context, path);\n }\n instance.forceUpdate();\n break;\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n break;\n case 'hooks':\n if (typeof overrideHookStateDeletePath === 'function') {\n overrideHookStateDeletePath(fiber, ((hookID: any): number), path);\n }\n break;\n case 'props':\n if (instance === null) {\n if (typeof overridePropsDeletePath === 'function') {\n overridePropsDeletePath(fiber, path);\n }\n } else {\n fiber.pendingProps = copyWithDelete(instance.props, path);\n instance.forceUpdate();\n }\n break;\n case 'state':\n deletePathInObject(instance.state, path);\n instance.forceUpdate();\n break;\n }\n }\n }\n\n function renamePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n oldPath: Array,\n newPath: Array,\n ): void {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n const instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n oldPath = oldPath.slice(1);\n newPath = newPath.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (oldPath.length === 0) {\n // Simple context value (noop)\n } else {\n renamePathInObject(instance.context, oldPath, newPath);\n }\n instance.forceUpdate();\n break;\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n break;\n case 'hooks':\n if (typeof overrideHookStateRenamePath === 'function') {\n overrideHookStateRenamePath(\n fiber,\n ((hookID: any): number),\n oldPath,\n newPath,\n );\n }\n break;\n case 'props':\n if (instance === null) {\n if (typeof overridePropsRenamePath === 'function') {\n overridePropsRenamePath(fiber, oldPath, newPath);\n }\n } else {\n fiber.pendingProps = copyWithRename(\n instance.props,\n oldPath,\n newPath,\n );\n instance.forceUpdate();\n }\n break;\n case 'state':\n renamePathInObject(instance.state, oldPath, newPath);\n instance.forceUpdate();\n break;\n }\n }\n }\n\n function overrideValueAtPath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n value: any,\n ): void {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n const instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n path = path.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (path.length === 0) {\n // Simple context value\n instance.context = value;\n } else {\n setInObject(instance.context, path, value);\n }\n instance.forceUpdate();\n break;\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n break;\n case 'hooks':\n if (typeof overrideHookState === 'function') {\n overrideHookState(fiber, ((hookID: any): number), path, value);\n }\n break;\n case 'props':\n switch (fiber.tag) {\n case ClassComponent:\n fiber.pendingProps = copyWithSet(instance.props, path, value);\n instance.forceUpdate();\n break;\n default:\n if (typeof overrideProps === 'function') {\n overrideProps(fiber, path, value);\n }\n break;\n }\n break;\n case 'state':\n switch (fiber.tag) {\n case ClassComponent:\n setInObject(instance.state, path, value);\n instance.forceUpdate();\n break;\n }\n break;\n }\n }\n }\n\n type CommitProfilingData = {\n changeDescriptions: Map | null,\n commitTime: number,\n durations: Array,\n effectDuration: number | null,\n maxActualDuration: number,\n passiveEffectDuration: number | null,\n priorityLevel: string | null,\n updaters: Array | null,\n };\n\n type CommitProfilingMetadataMap = Map>;\n type DisplayNamesByRootID = Map;\n\n let currentCommitProfilingMetadata: CommitProfilingData | null = null;\n let displayNamesByRootID: DisplayNamesByRootID | null = null;\n let idToContextsMap: Map | null = null;\n let initialTreeBaseDurationsMap: Map | null = null;\n let initialIDToRootMap: Map | null = null;\n let isProfiling: boolean = false;\n let profilingStartTime: number = 0;\n let recordChangeDescriptions: boolean = false;\n let rootToCommitProfilingMetadataMap: CommitProfilingMetadataMap | null =\n null;\n\n function getProfilingData(): ProfilingDataBackend {\n const dataForRoots: Array = [];\n\n if (rootToCommitProfilingMetadataMap === null) {\n throw Error(\n 'getProfilingData() called before any profiling data was recorded',\n );\n }\n\n rootToCommitProfilingMetadataMap.forEach(\n (commitProfilingMetadata, rootID) => {\n const commitData: Array = [];\n const initialTreeBaseDurations: Array<[number, number]> = [];\n\n const displayName =\n (displayNamesByRootID !== null && displayNamesByRootID.get(rootID)) ||\n 'Unknown';\n\n if (initialTreeBaseDurationsMap != null) {\n initialTreeBaseDurationsMap.forEach((treeBaseDuration, id) => {\n if (\n initialIDToRootMap != null &&\n initialIDToRootMap.get(id) === rootID\n ) {\n // We don't need to convert milliseconds to microseconds in this case,\n // because the profiling summary is JSON serialized.\n initialTreeBaseDurations.push([id, treeBaseDuration]);\n }\n });\n }\n\n commitProfilingMetadata.forEach((commitProfilingData, commitIndex) => {\n const {\n changeDescriptions,\n durations,\n effectDuration,\n maxActualDuration,\n passiveEffectDuration,\n priorityLevel,\n commitTime,\n updaters,\n } = commitProfilingData;\n\n const fiberActualDurations: Array<[number, number]> = [];\n const fiberSelfDurations: Array<[number, number]> = [];\n for (let i = 0; i < durations.length; i += 3) {\n const fiberID = durations[i];\n fiberActualDurations.push([fiberID, durations[i + 1]]);\n fiberSelfDurations.push([fiberID, durations[i + 2]]);\n }\n\n commitData.push({\n changeDescriptions:\n changeDescriptions !== null\n ? Array.from(changeDescriptions.entries())\n : null,\n duration: maxActualDuration,\n effectDuration,\n fiberActualDurations,\n fiberSelfDurations,\n passiveEffectDuration,\n priorityLevel,\n timestamp: commitTime,\n updaters,\n });\n });\n\n dataForRoots.push({\n commitData,\n displayName,\n initialTreeBaseDurations,\n rootID,\n });\n },\n );\n\n let timelineData = null;\n if (typeof getTimelineData === 'function') {\n const currentTimelineData = getTimelineData();\n if (currentTimelineData) {\n const {\n batchUIDToMeasuresMap,\n internalModuleSourceToRanges,\n laneToLabelMap,\n laneToReactMeasureMap,\n ...rest\n } = currentTimelineData;\n\n timelineData = {\n ...rest,\n\n // Most of the data is safe to parse as-is,\n // but we need to convert the nested Arrays back to Maps.\n // Most of the data is safe to serialize as-is,\n // but we need to convert the Maps to nested Arrays.\n batchUIDToMeasuresKeyValueArray: Array.from(\n batchUIDToMeasuresMap.entries(),\n ),\n internalModuleSourceToRanges: Array.from(\n internalModuleSourceToRanges.entries(),\n ),\n laneToLabelKeyValueArray: Array.from(laneToLabelMap.entries()),\n laneToReactMeasureKeyValueArray: Array.from(\n laneToReactMeasureMap.entries(),\n ),\n };\n }\n }\n\n return {\n dataForRoots,\n rendererID,\n timelineData,\n };\n }\n\n function startProfiling(shouldRecordChangeDescriptions: boolean) {\n if (isProfiling) {\n return;\n }\n\n recordChangeDescriptions = shouldRecordChangeDescriptions;\n\n // Capture initial values as of the time profiling starts.\n // It's important we snapshot both the durations and the id-to-root map,\n // since either of these may change during the profiling session\n // (e.g. when a fiber is re-rendered or when a fiber gets removed).\n displayNamesByRootID = new Map();\n initialTreeBaseDurationsMap = new Map(idToTreeBaseDurationMap);\n initialIDToRootMap = new Map(idToRootMap);\n idToContextsMap = new Map();\n\n hook.getFiberRoots(rendererID).forEach(root => {\n const rootID = getFiberIDThrows(root.current);\n ((displayNamesByRootID: any): DisplayNamesByRootID).set(\n rootID,\n getDisplayNameForRoot(root.current),\n );\n\n if (shouldRecordChangeDescriptions) {\n // Record all contexts at the time profiling is started.\n // Fibers only store the current context value,\n // so we need to track them separately in order to determine changed keys.\n crawlToInitializeContextsMap(root.current);\n }\n });\n\n isProfiling = true;\n profilingStartTime = getCurrentTime();\n rootToCommitProfilingMetadataMap = new Map();\n\n if (toggleProfilingStatus !== null) {\n toggleProfilingStatus(true);\n }\n }\n\n function stopProfiling() {\n isProfiling = false;\n recordChangeDescriptions = false;\n\n if (toggleProfilingStatus !== null) {\n toggleProfilingStatus(false);\n }\n }\n\n // Automatically start profiling so that we don't miss timing info from initial \"mount\".\n if (\n sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n ) {\n startProfiling(\n sessionStorageGetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY) ===\n 'true',\n );\n }\n\n // React will switch between these implementations depending on whether\n // we have any manually suspended/errored-out Fibers or not.\n function shouldErrorFiberAlwaysNull() {\n return null;\n }\n\n // Map of id and its force error status: true (error), false (toggled off),\n // null (do nothing)\n const forceErrorForFiberIDs = new Map();\n\n function shouldErrorFiberAccordingToMap(fiber: any) {\n if (typeof setErrorHandler !== 'function') {\n throw new Error(\n 'Expected overrideError() to not get called for earlier React versions.',\n );\n }\n\n const id = getFiberIDUnsafe(fiber);\n if (id === null) {\n return null;\n }\n\n let status = null;\n if (forceErrorForFiberIDs.has(id)) {\n status = forceErrorForFiberIDs.get(id);\n if (status === false) {\n // TRICKY overrideError adds entries to this Map,\n // so ideally it would be the method that clears them too,\n // but that would break the functionality of the feature,\n // since DevTools needs to tell React to act differently than it normally would\n // (don't just re-render the failed boundary, but reset its errored state too).\n // So we can only clear it after telling React to reset the state.\n // Technically this is premature and we should schedule it for later,\n // since the render could always fail without committing the updated error boundary,\n // but since this is a DEV-only feature, the simplicity is worth the trade off.\n forceErrorForFiberIDs.delete(id);\n\n if (forceErrorForFiberIDs.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n }\n }\n return status;\n }\n\n function overrideError(id: number, forceError: boolean) {\n if (\n typeof setErrorHandler !== 'function' ||\n typeof scheduleUpdate !== 'function'\n ) {\n throw new Error(\n 'Expected overrideError() to not get called for earlier React versions.',\n );\n }\n\n forceErrorForFiberIDs.set(id, forceError);\n\n if (forceErrorForFiberIDs.size === 1) {\n // First override is added. Switch React to slower path.\n setErrorHandler(shouldErrorFiberAccordingToMap);\n }\n\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n scheduleUpdate(fiber);\n }\n }\n\n function shouldSuspendFiberAlwaysFalse() {\n return false;\n }\n\n const forceFallbackForSuspenseIDs = new Set();\n\n function shouldSuspendFiberAccordingToSet(fiber: any) {\n const maybeID = getFiberIDUnsafe(((fiber: any): Fiber));\n return maybeID !== null && forceFallbackForSuspenseIDs.has(maybeID);\n }\n\n function overrideSuspense(id: number, forceFallback: boolean) {\n if (\n typeof setSuspenseHandler !== 'function' ||\n typeof scheduleUpdate !== 'function'\n ) {\n throw new Error(\n 'Expected overrideSuspense() to not get called for earlier React versions.',\n );\n }\n if (forceFallback) {\n forceFallbackForSuspenseIDs.add(id);\n if (forceFallbackForSuspenseIDs.size === 1) {\n // First override is added. Switch React to slower path.\n setSuspenseHandler(shouldSuspendFiberAccordingToSet);\n }\n } else {\n forceFallbackForSuspenseIDs.delete(id);\n if (forceFallbackForSuspenseIDs.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setSuspenseHandler(shouldSuspendFiberAlwaysFalse);\n }\n }\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n scheduleUpdate(fiber);\n }\n }\n\n // Remember if we're trying to restore the selection after reload.\n // In that case, we'll do some extra checks for matching mounts.\n let trackedPath: Array | null = null;\n let trackedPathMatchFiber: Fiber | null = null;\n let trackedPathMatchDepth = -1;\n let mightBeOnTrackedPath = false;\n\n function setTrackedPath(path: Array | null) {\n if (path === null) {\n trackedPathMatchFiber = null;\n trackedPathMatchDepth = -1;\n mightBeOnTrackedPath = false;\n }\n trackedPath = path;\n }\n\n // We call this before traversing a new mount.\n // It remembers whether this Fiber is the next best match for tracked path.\n // The return value signals whether we should keep matching siblings or not.\n function updateTrackedPathStateBeforeMount(fiber: Fiber): boolean {\n if (trackedPath === null || !mightBeOnTrackedPath) {\n // Fast path: there's nothing to track so do nothing and ignore siblings.\n return false;\n }\n const returnFiber = fiber.return;\n const returnAlternate = returnFiber !== null ? returnFiber.alternate : null;\n // By now we know there's some selection to restore, and this is a new Fiber.\n // Is this newly mounted Fiber a direct child of the current best match?\n // (This will also be true for new roots if we haven't matched anything yet.)\n if (\n trackedPathMatchFiber === returnFiber ||\n (trackedPathMatchFiber === returnAlternate && returnAlternate !== null)\n ) {\n // Is this the next Fiber we should select? Let's compare the frames.\n const actualFrame = getPathFrame(fiber);\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n const expectedFrame = trackedPath[trackedPathMatchDepth + 1];\n if (expectedFrame === undefined) {\n throw new Error('Expected to see a frame at the next depth.');\n }\n if (\n actualFrame.index === expectedFrame.index &&\n actualFrame.key === expectedFrame.key &&\n actualFrame.displayName === expectedFrame.displayName\n ) {\n // We have our next match.\n trackedPathMatchFiber = fiber;\n trackedPathMatchDepth++;\n // Are we out of frames to match?\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n if (trackedPathMatchDepth === trackedPath.length - 1) {\n // There's nothing that can possibly match afterwards.\n // Don't check the children.\n mightBeOnTrackedPath = false;\n } else {\n // Check the children, as they might reveal the next match.\n mightBeOnTrackedPath = true;\n }\n // In either case, since we have a match, we don't need\n // to check the siblings. They'll never match.\n return false;\n }\n }\n // This Fiber's parent is on the path, but this Fiber itself isn't.\n // There's no need to check its children--they won't be on the path either.\n mightBeOnTrackedPath = false;\n // However, one of its siblings may be on the path so keep searching.\n return true;\n }\n\n function updateTrackedPathStateAfterMount(\n mightSiblingsBeOnTrackedPath: boolean,\n ) {\n // updateTrackedPathStateBeforeMount() told us whether to match siblings.\n // Now that we're entering siblings, let's use that information.\n mightBeOnTrackedPath = mightSiblingsBeOnTrackedPath;\n }\n\n // Roots don't have a real persistent identity.\n // A root's \"pseudo key\" is \"childDisplayName:indexWithThatName\".\n // For example, \"App:0\" or, in case of similar roots, \"Story:0\", \"Story:1\", etc.\n // We will use this to try to disambiguate roots when restoring selection between reloads.\n const rootPseudoKeys: Map = new Map();\n const rootDisplayNameCounter: Map = new Map();\n\n function setRootPseudoKey(id: number, fiber: Fiber) {\n const name = getDisplayNameForRoot(fiber);\n const counter = rootDisplayNameCounter.get(name) || 0;\n rootDisplayNameCounter.set(name, counter + 1);\n const pseudoKey = `${name}:${counter}`;\n rootPseudoKeys.set(id, pseudoKey);\n }\n\n function removeRootPseudoKey(id: number) {\n const pseudoKey = rootPseudoKeys.get(id);\n if (pseudoKey === undefined) {\n throw new Error('Expected root pseudo key to be known.');\n }\n const name = pseudoKey.slice(0, pseudoKey.lastIndexOf(':'));\n const counter = rootDisplayNameCounter.get(name);\n if (counter === undefined) {\n throw new Error('Expected counter to be known.');\n }\n if (counter > 1) {\n rootDisplayNameCounter.set(name, counter - 1);\n } else {\n rootDisplayNameCounter.delete(name);\n }\n rootPseudoKeys.delete(id);\n }\n\n function getDisplayNameForRoot(fiber: Fiber): string {\n let preferredDisplayName = null;\n let fallbackDisplayName = null;\n let child = fiber.child;\n // Go at most three levels deep into direct children\n // while searching for a child that has a displayName.\n for (let i = 0; i < 3; i++) {\n if (child === null) {\n break;\n }\n const displayName = getDisplayNameForFiber(child);\n if (displayName !== null) {\n // Prefer display names that we get from user-defined components.\n // We want to avoid using e.g. 'Suspense' unless we find nothing else.\n if (typeof child.type === 'function') {\n // There's a few user-defined tags, but we'll prefer the ones\n // that are usually explicitly named (function or class components).\n preferredDisplayName = displayName;\n } else if (fallbackDisplayName === null) {\n fallbackDisplayName = displayName;\n }\n }\n if (preferredDisplayName !== null) {\n break;\n }\n child = child.child;\n }\n return preferredDisplayName || fallbackDisplayName || 'Anonymous';\n }\n\n function getPathFrame(fiber: Fiber): PathFrame {\n const {key} = fiber;\n let displayName = getDisplayNameForFiber(fiber);\n const index = fiber.index;\n switch (fiber.tag) {\n case HostRoot:\n // Roots don't have a real displayName, index, or key.\n // Instead, we'll use the pseudo key (childDisplayName:indexWithThatName).\n const id = getFiberIDThrows(fiber);\n const pseudoKey = rootPseudoKeys.get(id);\n if (pseudoKey === undefined) {\n throw new Error('Expected mounted root to have known pseudo key.');\n }\n displayName = pseudoKey;\n break;\n case HostComponent:\n displayName = fiber.type;\n break;\n default:\n break;\n }\n return {\n displayName,\n key,\n index,\n };\n }\n\n // Produces a serializable representation that does a best effort\n // of identifying a particular Fiber between page reloads.\n // The return path will contain Fibers that are \"invisible\" to the store\n // because their keys and indexes are important to restoring the selection.\n function getPathForElement(id: number): Array | null {\n let fiber: ?Fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n return null;\n }\n const keyPath = [];\n while (fiber !== null) {\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n keyPath.push(getPathFrame(fiber));\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n fiber = fiber.return;\n }\n keyPath.reverse();\n return keyPath;\n }\n\n function getBestMatchForTrackedPath(): PathMatch | null {\n if (trackedPath === null) {\n // Nothing to match.\n return null;\n }\n if (trackedPathMatchFiber === null) {\n // We didn't find anything.\n return null;\n }\n // Find the closest Fiber store is aware of.\n let fiber: null | Fiber = trackedPathMatchFiber;\n while (fiber !== null && shouldFilterFiber(fiber)) {\n fiber = fiber.return;\n }\n if (fiber === null) {\n return null;\n }\n return {\n id: getFiberIDThrows(fiber),\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n isFullMatch: trackedPathMatchDepth === trackedPath.length - 1,\n };\n }\n\n const formatPriorityLevel = (priorityLevel: ?number) => {\n if (priorityLevel == null) {\n return 'Unknown';\n }\n\n switch (priorityLevel) {\n case ImmediatePriority:\n return 'Immediate';\n case UserBlockingPriority:\n return 'User-Blocking';\n case NormalPriority:\n return 'Normal';\n case LowPriority:\n return 'Low';\n case IdlePriority:\n return 'Idle';\n case NoPriority:\n default:\n return 'Unknown';\n }\n };\n\n function setTraceUpdatesEnabled(isEnabled: boolean): void {\n traceUpdatesEnabled = isEnabled;\n }\n\n function hasFiberWithId(id: number): boolean {\n return idToArbitraryFiberMap.has(id);\n }\n\n return {\n cleanup,\n clearErrorsAndWarnings,\n clearErrorsForFiberID,\n clearWarningsForFiberID,\n getSerializedElementValueByPath,\n deletePath,\n findNativeNodesForFiberID,\n flushInitialOperations,\n getBestMatchForTrackedPath,\n getDisplayNameForFiberID,\n getFiberForNative,\n getFiberIDForNative,\n getInstanceAndStyle,\n getOwnersList,\n getPathForElement,\n getProfilingData,\n handleCommitFiberRoot,\n handleCommitFiberUnmount,\n handlePostCommitFiberRoot,\n hasFiberWithId,\n inspectElement,\n logElementToConsole,\n patchConsoleForStrictMode,\n prepareViewAttributeSource,\n prepareViewElementSource,\n overrideError,\n overrideSuspense,\n overrideValueAtPath,\n renamePath,\n renderer,\n setTraceUpdatesEnabled,\n setTrackedPath,\n startProfiling,\n stopProfiling,\n storeAsGlobal,\n unpatchConsoleForStrictMode,\n updateComponentFilters,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {\n CurrentDispatcherRef,\n ReactRenderer,\n WorkTagMap,\n ConsolePatchSettings,\n} from './types';\nimport {format, formatWithStyles} from './utils';\n\nimport {getInternalReactConstants} from './renderer';\nimport {getStackByFiberInDevAndProd} from './DevToolsFiberComponentStack';\nimport {consoleManagedByDevToolsDuringStrictMode} from 'react-devtools-feature-flags';\nimport {castBool, castBrowserTheme} from '../utils';\n\nconst OVERRIDE_CONSOLE_METHODS = ['error', 'trace', 'warn'];\nconst DIMMED_NODE_CONSOLE_COLOR = '\\x1b[2m%s\\x1b[0m';\n\n// React's custom built component stack strings match \"\\s{4}in\"\n// Chrome's prefix matches \"\\s{4}at\"\nconst PREFIX_REGEX = /\\s{4}(in|at)\\s{1}/;\n// Firefox and Safari have no prefix (\"\")\n// but we can fallback to looking for location info (e.g. \"foo.js:12:345\")\nconst ROW_COLUMN_NUMBER_REGEX = /:\\d+:\\d+(\\n|$)/;\n\nexport function isStringComponentStack(text: string): boolean {\n return PREFIX_REGEX.test(text) || ROW_COLUMN_NUMBER_REGEX.test(text);\n}\n\nconst STYLE_DIRECTIVE_REGEX = /^%c/;\n\n// This function tells whether or not the arguments for a console\n// method has been overridden by the patchForStrictMode function.\n// If it has we'll need to do some special formatting of the arguments\n// so the console color stays consistent\nfunction isStrictModeOverride(args: Array, method: string): boolean {\n return (\n args.length >= 2 &&\n STYLE_DIRECTIVE_REGEX.test(args[0]) &&\n args[1] === `color: ${getConsoleColor(method) || ''}`\n );\n}\n\nfunction getConsoleColor(method: string): ?string {\n switch (method) {\n case 'warn':\n return consoleSettingsRef.browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_WARNING_COLOR\n : process.env.DARK_MODE_DIMMED_WARNING_COLOR;\n case 'error':\n return consoleSettingsRef.browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_ERROR_COLOR\n : process.env.DARK_MODE_DIMMED_ERROR_COLOR;\n case 'log':\n default:\n return consoleSettingsRef.browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_LOG_COLOR\n : process.env.DARK_MODE_DIMMED_LOG_COLOR;\n }\n}\ntype OnErrorOrWarning = (\n fiber: Fiber,\n type: 'error' | 'warn',\n args: Array,\n) => void;\n\nconst injectedRenderers: Map<\n ReactRenderer,\n {\n currentDispatcherRef: CurrentDispatcherRef,\n getCurrentFiber: () => Fiber | null,\n onErrorOrWarning: ?OnErrorOrWarning,\n workTagMap: WorkTagMap,\n },\n> = new Map();\n\nlet targetConsole: Object = console;\nlet targetConsoleMethods: {[string]: $FlowFixMe} = {};\nfor (const method in console) {\n targetConsoleMethods[method] = console[method];\n}\n\nlet unpatchFn: null | (() => void) = null;\n\nlet isNode = false;\ntry {\n isNode = this === global;\n} catch (error) {}\n\n// Enables e.g. Jest tests to inject a mock console object.\nexport function dangerous_setTargetConsoleForTesting(\n targetConsoleForTesting: Object,\n): void {\n targetConsole = targetConsoleForTesting;\n\n targetConsoleMethods = ({}: {[string]: $FlowFixMe});\n for (const method in targetConsole) {\n targetConsoleMethods[method] = console[method];\n }\n}\n\n// v16 renderers should use this method to inject internals necessary to generate a component stack.\n// These internals will be used if the console is patched.\n// Injecting them separately allows the console to easily be patched or un-patched later (at runtime).\nexport function registerRenderer(\n renderer: ReactRenderer,\n onErrorOrWarning?: OnErrorOrWarning,\n): void {\n const {\n currentDispatcherRef,\n getCurrentFiber,\n findFiberByHostInstance,\n version,\n } = renderer;\n\n // Ignore React v15 and older because they don't expose a component stack anyway.\n if (typeof findFiberByHostInstance !== 'function') {\n return;\n }\n\n // currentDispatcherRef gets injected for v16.8+ to support hooks inspection.\n // getCurrentFiber gets injected for v16.9+.\n if (currentDispatcherRef != null && typeof getCurrentFiber === 'function') {\n const {ReactTypeOfWork} = getInternalReactConstants(version);\n\n injectedRenderers.set(renderer, {\n currentDispatcherRef,\n getCurrentFiber,\n workTagMap: ReactTypeOfWork,\n onErrorOrWarning,\n });\n }\n}\n\nconst consoleSettingsRef: ConsolePatchSettings = {\n appendComponentStack: false,\n breakOnConsoleErrors: false,\n showInlineWarningsAndErrors: false,\n hideConsoleLogsInStrictMode: false,\n browserTheme: 'dark',\n};\n\n// Patches console methods to append component stack for the current fiber.\n// Call unpatch() to remove the injected behavior.\nexport function patch({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n}: ConsolePatchSettings): void {\n // Settings may change after we've patched the console.\n // Using a shared ref allows the patch function to read the latest values.\n consoleSettingsRef.appendComponentStack = appendComponentStack;\n consoleSettingsRef.breakOnConsoleErrors = breakOnConsoleErrors;\n consoleSettingsRef.showInlineWarningsAndErrors = showInlineWarningsAndErrors;\n consoleSettingsRef.hideConsoleLogsInStrictMode = hideConsoleLogsInStrictMode;\n consoleSettingsRef.browserTheme = browserTheme;\n\n if (\n appendComponentStack ||\n breakOnConsoleErrors ||\n showInlineWarningsAndErrors\n ) {\n if (unpatchFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n unpatchFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n OVERRIDE_CONSOLE_METHODS.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] = targetConsole[\n method\n ].__REACT_DEVTOOLS_ORIGINAL_METHOD__\n ? targetConsole[method].__REACT_DEVTOOLS_ORIGINAL_METHOD__\n : targetConsole[method]);\n\n // $FlowFixMe[missing-local-annot]\n const overrideMethod = (...args) => {\n let shouldAppendWarningStack = false;\n if (method !== 'log') {\n if (consoleSettingsRef.appendComponentStack) {\n const lastArg = args.length > 0 ? args[args.length - 1] : null;\n const alreadyHasComponentStack =\n typeof lastArg === 'string' && isStringComponentStack(lastArg);\n\n // If we are ever called with a string that already has a component stack,\n // e.g. a React error/warning, don't append a second stack.\n shouldAppendWarningStack = !alreadyHasComponentStack;\n }\n }\n\n const shouldShowInlineWarningsAndErrors =\n consoleSettingsRef.showInlineWarningsAndErrors &&\n (method === 'error' || method === 'warn');\n\n // Search for the first renderer that has a current Fiber.\n // We don't handle the edge case of stacks for more than one (e.g. interleaved renderers?)\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const {\n currentDispatcherRef,\n getCurrentFiber,\n onErrorOrWarning,\n workTagMap,\n } of injectedRenderers.values()) {\n const current: ?Fiber = getCurrentFiber();\n if (current != null) {\n try {\n if (shouldShowInlineWarningsAndErrors) {\n // patch() is called by two places: (1) the hook and (2) the renderer backend.\n // The backend is what implements a message queue, so it's the only one that injects onErrorOrWarning.\n if (typeof onErrorOrWarning === 'function') {\n onErrorOrWarning(\n current,\n ((method: any): 'error' | 'warn'),\n // Copy args before we mutate them (e.g. adding the component stack)\n args.slice(),\n );\n }\n }\n\n if (shouldAppendWarningStack) {\n const componentStack = getStackByFiberInDevAndProd(\n workTagMap,\n current,\n currentDispatcherRef,\n );\n if (componentStack !== '') {\n if (isStrictModeOverride(args, method)) {\n args[0] = `${args[0]} %s`;\n args.push(componentStack);\n } else {\n args.push(componentStack);\n }\n }\n }\n } catch (error) {\n // Don't let a DevTools or React internal error interfere with logging.\n setTimeout(() => {\n throw error;\n }, 0);\n } finally {\n break;\n }\n }\n }\n\n if (consoleSettingsRef.breakOnConsoleErrors) {\n // --- Welcome to debugging with React DevTools ---\n // This debugger statement means that you've enabled the \"break on warnings\" feature.\n // Use the browser's Call Stack panel to step out of this override function-\n // to where the original warning or error was logged.\n // eslint-disable-next-line no-debugger\n debugger;\n }\n\n originalMethod(...args);\n };\n\n overrideMethod.__REACT_DEVTOOLS_ORIGINAL_METHOD__ = originalMethod;\n originalMethod.__REACT_DEVTOOLS_OVERRIDE_METHOD__ = overrideMethod;\n\n targetConsole[method] = overrideMethod;\n } catch (error) {}\n });\n } else {\n unpatch();\n }\n}\n\n// Removed component stack patch from console methods.\nexport function unpatch(): void {\n if (unpatchFn !== null) {\n unpatchFn();\n unpatchFn = null;\n }\n}\n\nlet unpatchForStrictModeFn: null | (() => void) = null;\n\n// NOTE: KEEP IN SYNC with src/hook.js:patchConsoleForInitialRenderInStrictMode\nexport function patchForStrictMode() {\n if (consoleManagedByDevToolsDuringStrictMode) {\n const overrideConsoleMethods = [\n 'error',\n 'group',\n 'groupCollapsed',\n 'info',\n 'log',\n 'trace',\n 'warn',\n ];\n\n if (unpatchForStrictModeFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n unpatchForStrictModeFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n overrideConsoleMethods.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] = targetConsole[\n method\n ].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n ? targetConsole[method].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n : targetConsole[method]);\n\n // $FlowFixMe[missing-local-annot]\n const overrideMethod = (...args) => {\n if (!consoleSettingsRef.hideConsoleLogsInStrictMode) {\n // Dim the text color of the double logs if we're not\n // hiding them.\n if (isNode) {\n originalMethod(DIMMED_NODE_CONSOLE_COLOR, format(...args));\n } else {\n const color = getConsoleColor(method);\n if (color) {\n originalMethod(...formatWithStyles(args, `color: ${color}`));\n } else {\n throw Error('Console color is not defined');\n }\n }\n }\n };\n\n overrideMethod.__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__ =\n originalMethod;\n originalMethod.__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__ =\n overrideMethod;\n\n targetConsole[method] = overrideMethod;\n } catch (error) {}\n });\n }\n}\n\n// NOTE: KEEP IN SYNC with src/hook.js:unpatchConsoleForInitialRenderInStrictMode\nexport function unpatchForStrictMode(): void {\n if (consoleManagedByDevToolsDuringStrictMode) {\n if (unpatchForStrictModeFn !== null) {\n unpatchForStrictModeFn();\n unpatchForStrictModeFn = null;\n }\n }\n}\n\nexport function patchConsoleUsingWindowValues() {\n const appendComponentStack =\n castBool(window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__) ?? true;\n const breakOnConsoleErrors =\n castBool(window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__) ?? false;\n const showInlineWarningsAndErrors =\n castBool(window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__) ?? true;\n const hideConsoleLogsInStrictMode =\n castBool(window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__) ??\n false;\n const browserTheme =\n castBrowserTheme(window.__REACT_DEVTOOLS_BROWSER_THEME__) ?? 'dark';\n\n patch({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n });\n}\n\n// After receiving cached console patch settings from React Native, we set them on window.\n// When the console is initially patched (in renderer.js and hook.js), these values are read.\n// The browser extension (etc.) sets these values on window, but through another method.\nexport function writeConsolePatchSettingsToWindow(\n settings: ConsolePatchSettings,\n): void {\n window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__ =\n settings.appendComponentStack;\n window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__ =\n settings.breakOnConsoleErrors;\n window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__ =\n settings.showInlineWarningsAndErrors;\n window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__ =\n settings.hideConsoleLogsInStrictMode;\n window.__REACT_DEVTOOLS_BROWSER_THEME__ = settings.browserTheme;\n}\n\nexport function installConsoleFunctionsToWindow(): void {\n window.__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__ = {\n patchConsoleUsingWindowValues,\n registerRendererWithConsole: registerRenderer,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport EventEmitter from './events';\n\nimport type {ComponentFilter, Wall} from './frontend/types';\nimport type {\n InspectedElementPayload,\n OwnersList,\n ProfilingDataBackend,\n RendererID,\n ConsolePatchSettings,\n} from 'react-devtools-shared/src/backend/types';\nimport type {StyleAndLayout as StyleAndLayoutPayload} from 'react-devtools-shared/src/backend/NativeStyleEditor/types';\n\nconst BATCH_DURATION = 100;\n\n// This message specifies the version of the DevTools protocol currently supported by the backend,\n// as well as the earliest NPM version (e.g. \"4.13.0\") that protocol is supported by on the frontend.\n// This enables an older frontend to display an upgrade message to users for a newer, unsupported backend.\nexport type BridgeProtocol = {\n // Version supported by the current frontend/backend.\n version: number,\n\n // NPM version range that also supports this version.\n // Note that 'maxNpmVersion' is only set when the version is bumped.\n minNpmVersion: string,\n maxNpmVersion: string | null,\n};\n\n// Bump protocol version whenever a backwards breaking change is made\n// in the messages sent between BackendBridge and FrontendBridge.\n// This mapping is embedded in both frontend and backend builds.\n//\n// The backend protocol will always be the latest entry in the BRIDGE_PROTOCOL array.\n//\n// When an older frontend connects to a newer backend,\n// the backend can send the minNpmVersion and the frontend can display an NPM upgrade prompt.\n//\n// When a newer frontend connects with an older protocol version,\n// the frontend can use the embedded minNpmVersion/maxNpmVersion values to display a downgrade prompt.\nexport const BRIDGE_PROTOCOL: Array = [\n // This version technically never existed,\n // but a backwards breaking change was added in 4.11,\n // so the safest guess to downgrade the frontend would be to version 4.10.\n {\n version: 0,\n minNpmVersion: '\"<4.11.0\"',\n maxNpmVersion: '\"<4.11.0\"',\n },\n // Versions 4.11.x – 4.12.x contained the backwards breaking change,\n // but we didn't add the \"fix\" of checking the protocol version until 4.13,\n // so we don't recommend downgrading to 4.11 or 4.12.\n {\n version: 1,\n minNpmVersion: '4.13.0',\n maxNpmVersion: '4.21.0',\n },\n // Version 2 adds a StrictMode-enabled and supports-StrictMode bits to add-root operation.\n {\n version: 2,\n minNpmVersion: '4.22.0',\n maxNpmVersion: null,\n },\n];\n\nexport const currentBridgeProtocol: BridgeProtocol =\n BRIDGE_PROTOCOL[BRIDGE_PROTOCOL.length - 1];\n\ntype ElementAndRendererID = {id: number, rendererID: RendererID};\n\ntype Message = {\n event: string,\n payload: any,\n};\n\ntype HighlightElementInDOM = {\n ...ElementAndRendererID,\n displayName: string | null,\n hideAfterTimeout: boolean,\n openNativeElementsPanel: boolean,\n scrollIntoView: boolean,\n};\n\ntype OverrideValue = {\n ...ElementAndRendererID,\n path: Array,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype OverrideHookState = {\n ...OverrideValue,\n hookID: number,\n};\n\ntype PathType = 'props' | 'hooks' | 'state' | 'context';\n\ntype DeletePath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n path: Array,\n};\n\ntype RenamePath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n oldPath: Array,\n newPath: Array,\n};\n\ntype OverrideValueAtPath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n path: Array,\n value: any,\n};\n\ntype OverrideError = {\n ...ElementAndRendererID,\n forceError: boolean,\n};\n\ntype OverrideSuspense = {\n ...ElementAndRendererID,\n forceFallback: boolean,\n};\n\ntype CopyElementPathParams = {\n ...ElementAndRendererID,\n path: Array,\n};\n\ntype ViewAttributeSourceParams = {\n ...ElementAndRendererID,\n path: Array,\n};\n\ntype InspectElementParams = {\n ...ElementAndRendererID,\n forceFullData: boolean,\n path: Array | null,\n requestID: number,\n};\n\ntype StoreAsGlobalParams = {\n ...ElementAndRendererID,\n count: number,\n path: Array,\n};\n\ntype NativeStyleEditor_RenameAttributeParams = {\n ...ElementAndRendererID,\n oldName: string,\n newName: string,\n value: string,\n};\n\ntype NativeStyleEditor_SetValueParams = {\n ...ElementAndRendererID,\n name: string,\n value: string,\n};\n\ntype SavedPreferencesParams = {\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n componentFilters: Array,\n showInlineWarningsAndErrors: boolean,\n hideConsoleLogsInStrictMode: boolean,\n};\n\nexport type BackendEvents = {\n backendVersion: [string],\n bridgeProtocol: [BridgeProtocol],\n extensionBackendInitialized: [],\n fastRefreshScheduled: [],\n getSavedPreferences: [],\n inspectedElement: [InspectedElementPayload],\n isBackendStorageAPISupported: [boolean],\n isSynchronousXHRSupported: [boolean],\n operations: [Array],\n ownersList: [OwnersList],\n overrideComponentFilters: [Array],\n profilingData: [ProfilingDataBackend],\n profilingStatus: [boolean],\n reloadAppForProfiling: [],\n saveToClipboard: [string],\n selectFiber: [number],\n shutdown: [],\n stopInspectingNative: [boolean],\n syncSelectionFromNativeElementsPanel: [],\n syncSelectionToNativeElementsPanel: [],\n unsupportedRendererVersion: [RendererID],\n\n // React Native style editor plug-in.\n isNativeStyleEditorSupported: [\n {isSupported: boolean, validAttributes: ?$ReadOnlyArray},\n ],\n NativeStyleEditor_styleAndLayout: [StyleAndLayoutPayload],\n};\n\ntype FrontendEvents = {\n clearErrorsAndWarnings: [{rendererID: RendererID}],\n clearErrorsForFiberID: [ElementAndRendererID],\n clearNativeElementHighlight: [],\n clearWarningsForFiberID: [ElementAndRendererID],\n copyElementPath: [CopyElementPathParams],\n deletePath: [DeletePath],\n getBackendVersion: [],\n getBridgeProtocol: [],\n getOwnersList: [ElementAndRendererID],\n getProfilingData: [{rendererID: RendererID}],\n getProfilingStatus: [],\n highlightNativeElement: [HighlightElementInDOM],\n inspectElement: [InspectElementParams],\n logElementToConsole: [ElementAndRendererID],\n overrideError: [OverrideError],\n overrideSuspense: [OverrideSuspense],\n overrideValueAtPath: [OverrideValueAtPath],\n profilingData: [ProfilingDataBackend],\n reloadAndProfile: [boolean],\n renamePath: [RenamePath],\n savedPreferences: [SavedPreferencesParams],\n selectFiber: [number],\n setTraceUpdatesEnabled: [boolean],\n shutdown: [],\n startInspectingNative: [],\n startProfiling: [boolean],\n stopInspectingNative: [boolean],\n stopProfiling: [],\n storeAsGlobal: [StoreAsGlobalParams],\n updateComponentFilters: [Array],\n updateConsolePatchSettings: [ConsolePatchSettings],\n viewAttributeSource: [ViewAttributeSourceParams],\n viewElementSource: [ElementAndRendererID],\n\n // React Native style editor plug-in.\n NativeStyleEditor_measure: [ElementAndRendererID],\n NativeStyleEditor_renameAttribute: [NativeStyleEditor_RenameAttributeParams],\n NativeStyleEditor_setValue: [NativeStyleEditor_SetValueParams],\n\n // Temporarily support newer standalone front-ends sending commands to older embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n //\n // Note that nothing in the newer backend actually listens to these events,\n // but the new frontend still dispatches them (in case older backends are listening to them instead).\n //\n // Note that this approach does no support the combination of a newer backend with an older frontend.\n // It would be more work to support both approaches (and not run handlers twice)\n // so I chose to support the more likely/common scenario (and the one more difficult for an end user to \"fix\").\n overrideContext: [OverrideValue],\n overrideHookState: [OverrideHookState],\n overrideProps: [OverrideValue],\n overrideState: [OverrideValue],\n\n resumeElementPolling: [],\n pauseElementPolling: [],\n};\n\nclass Bridge<\n OutgoingEvents: Object,\n IncomingEvents: Object,\n> extends EventEmitter<{\n ...IncomingEvents,\n ...OutgoingEvents,\n}> {\n _isShutdown: boolean = false;\n _messageQueue: Array = [];\n _timeoutID: TimeoutID | null = null;\n _wall: Wall;\n _wallUnlisten: Function | null = null;\n\n constructor(wall: Wall) {\n super();\n\n this._wall = wall;\n\n this._wallUnlisten =\n wall.listen((message: Message) => {\n if (message && message.event) {\n (this: any).emit(message.event, message.payload);\n }\n }) || null;\n\n // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n this.addListener('overrideValueAtPath', this.overrideValueAtPath);\n }\n\n // Listening directly to the wall isn't advised.\n // It can be used to listen for legacy (v3) messages (since they use a different format).\n get wall(): Wall {\n return this._wall;\n }\n\n send>(\n event: EventName,\n ...payload: $ElementType\n ) {\n if (this._isShutdown) {\n console.warn(\n `Cannot send message \"${event}\" through a Bridge that has been shutdown.`,\n );\n return;\n }\n\n // When we receive a message:\n // - we add it to our queue of messages to be sent\n // - if there hasn't been a message recently, we set a timer for 0 ms in\n // the future, allowing all messages created in the same tick to be sent\n // together\n // - if there *has* been a message flushed in the last BATCH_DURATION ms\n // (or we're waiting for our setTimeout-0 to fire), then _timeoutID will\n // be set, and we'll simply add to the queue and wait for that\n this._messageQueue.push(event, payload);\n if (!this._timeoutID) {\n this._timeoutID = setTimeout(this._flush, 0);\n }\n }\n\n shutdown() {\n if (this._isShutdown) {\n console.warn('Bridge was already shutdown.');\n return;\n }\n\n // Queue the shutdown outgoing message for subscribers.\n this.emit('shutdown');\n this.send('shutdown');\n\n // Mark this bridge as destroyed, i.e. disable its public API.\n this._isShutdown = true;\n\n // Disable the API inherited from EventEmitter that can add more listeners and send more messages.\n // $FlowFixMe[cannot-write] This property is not writable.\n this.addListener = function () {};\n // $FlowFixMe[cannot-write] This property is not writable.\n this.emit = function () {};\n // NOTE: There's also EventEmitter API like `on` and `prependListener` that we didn't add to our Flow type of EventEmitter.\n\n // Unsubscribe this bridge incoming message listeners to be sure, and so they don't have to do that.\n this.removeAllListeners();\n\n // Stop accepting and emitting incoming messages from the wall.\n const wallUnlisten = this._wallUnlisten;\n if (wallUnlisten) {\n wallUnlisten();\n }\n\n // Synchronously flush all queued outgoing messages.\n // At this step the subscribers' code may run in this call stack.\n do {\n this._flush();\n } while (this._messageQueue.length);\n\n // Make sure once again that there is no dangling timer.\n if (this._timeoutID !== null) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n }\n\n _flush: () => void = () => {\n // This method is used after the bridge is marked as destroyed in shutdown sequence,\n // so we do not bail out if the bridge marked as destroyed.\n // It is a private method that the bridge ensures is only called at the right times.\n\n if (this._timeoutID !== null) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n\n if (this._messageQueue.length) {\n for (let i = 0; i < this._messageQueue.length; i += 2) {\n this._wall.send(this._messageQueue[i], ...this._messageQueue[i + 1]);\n }\n this._messageQueue.length = 0;\n\n // Check again for queued messages in BATCH_DURATION ms. This will keep\n // flushing in a loop as long as messages continue to be added. Once no\n // more are, the timer expires.\n this._timeoutID = setTimeout(this._flush, BATCH_DURATION);\n }\n };\n\n // Temporarily support older standalone backends by forwarding \"overrideValueAtPath\" commands\n // to the older message types they may be listening to.\n overrideValueAtPath: OverrideValueAtPath => void = ({\n id,\n path,\n rendererID,\n type,\n value,\n }: OverrideValueAtPath) => {\n switch (type) {\n case 'context':\n this.send('overrideContext', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n case 'hooks':\n this.send('overrideHookState', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n case 'props':\n this.send('overrideProps', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n case 'state':\n this.send('overrideState', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n }\n };\n}\n\nexport type BackendBridge = Bridge;\nexport type FrontendBridge = Bridge;\n\nexport default Bridge;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport EventEmitter from '../events';\nimport throttle from 'lodash.throttle';\nimport {\n SESSION_STORAGE_LAST_SELECTION_KEY,\n SESSION_STORAGE_RELOAD_AND_PROFILE_KEY,\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n __DEBUG__,\n} from '../constants';\nimport {\n sessionStorageGetItem,\n sessionStorageRemoveItem,\n sessionStorageSetItem,\n} from 'react-devtools-shared/src/storage';\nimport setupHighlighter from './views/Highlighter';\nimport {\n initialize as setupTraceUpdates,\n toggleEnabled as setTraceUpdatesEnabled,\n} from './views/TraceUpdates';\nimport {patch as patchConsole} from './console';\nimport {currentBridgeProtocol} from 'react-devtools-shared/src/bridge';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {\n InstanceAndStyle,\n NativeType,\n OwnersList,\n PathFrame,\n PathMatch,\n RendererID,\n RendererInterface,\n ConsolePatchSettings,\n} from './types';\nimport type {\n ComponentFilter,\n BrowserTheme,\n} from 'react-devtools-shared/src/frontend/types';\nimport {isSynchronousXHRSupported} from './utils';\n\nconst debug = (methodName: string, ...args: Array) => {\n if (__DEBUG__) {\n console.log(\n `%cAgent %c${methodName}`,\n 'color: purple; font-weight: bold;',\n 'font-weight: bold;',\n ...args,\n );\n }\n};\n\ntype ElementAndRendererID = {\n id: number,\n rendererID: number,\n};\n\ntype StoreAsGlobalParams = {\n count: number,\n id: number,\n path: Array,\n rendererID: number,\n};\n\ntype CopyElementParams = {\n id: number,\n path: Array,\n rendererID: number,\n};\n\ntype InspectElementParams = {\n forceFullData: boolean,\n id: number,\n path: Array | null,\n rendererID: number,\n requestID: number,\n};\n\ntype OverrideHookParams = {\n id: number,\n hookID: number,\n path: Array,\n rendererID: number,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype SetInParams = {\n id: number,\n path: Array,\n rendererID: number,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype PathType = 'props' | 'hooks' | 'state' | 'context';\n\ntype DeletePathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n path: Array,\n rendererID: number,\n};\n\ntype RenamePathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n oldPath: Array,\n newPath: Array,\n rendererID: number,\n};\n\ntype OverrideValueAtPathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n path: Array,\n rendererID: number,\n value: any,\n};\n\ntype OverrideErrorParams = {\n id: number,\n rendererID: number,\n forceError: boolean,\n};\n\ntype OverrideSuspenseParams = {\n id: number,\n rendererID: number,\n forceFallback: boolean,\n};\n\ntype PersistedSelection = {\n rendererID: number,\n path: Array,\n};\n\nexport default class Agent extends EventEmitter<{\n hideNativeHighlight: [],\n showNativeHighlight: [NativeType],\n startInspectingNative: [],\n stopInspectingNative: [],\n shutdown: [],\n traceUpdates: [Set],\n drawTraceUpdates: [Array],\n disableTraceUpdates: [],\n}> {\n _bridge: BackendBridge;\n _isProfiling: boolean = false;\n _recordChangeDescriptions: boolean = false;\n _rendererInterfaces: {[key: RendererID]: RendererInterface, ...} = {};\n _persistedSelection: PersistedSelection | null = null;\n _persistedSelectionMatch: PathMatch | null = null;\n _traceUpdatesEnabled: boolean = false;\n\n constructor(bridge: BackendBridge) {\n super();\n\n if (\n sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n ) {\n this._recordChangeDescriptions =\n sessionStorageGetItem(\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n ) === 'true';\n this._isProfiling = true;\n\n sessionStorageRemoveItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY);\n sessionStorageRemoveItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY);\n }\n\n const persistedSelectionString = sessionStorageGetItem(\n SESSION_STORAGE_LAST_SELECTION_KEY,\n );\n if (persistedSelectionString != null) {\n this._persistedSelection = JSON.parse(persistedSelectionString);\n }\n\n this._bridge = bridge;\n\n bridge.addListener('clearErrorsAndWarnings', this.clearErrorsAndWarnings);\n bridge.addListener('clearErrorsForFiberID', this.clearErrorsForFiberID);\n bridge.addListener('clearWarningsForFiberID', this.clearWarningsForFiberID);\n bridge.addListener('copyElementPath', this.copyElementPath);\n bridge.addListener('deletePath', this.deletePath);\n bridge.addListener('getBackendVersion', this.getBackendVersion);\n bridge.addListener('getBridgeProtocol', this.getBridgeProtocol);\n bridge.addListener('getProfilingData', this.getProfilingData);\n bridge.addListener('getProfilingStatus', this.getProfilingStatus);\n bridge.addListener('getOwnersList', this.getOwnersList);\n bridge.addListener('inspectElement', this.inspectElement);\n bridge.addListener('logElementToConsole', this.logElementToConsole);\n bridge.addListener('overrideError', this.overrideError);\n bridge.addListener('overrideSuspense', this.overrideSuspense);\n bridge.addListener('overrideValueAtPath', this.overrideValueAtPath);\n bridge.addListener('reloadAndProfile', this.reloadAndProfile);\n bridge.addListener('renamePath', this.renamePath);\n bridge.addListener('setTraceUpdatesEnabled', this.setTraceUpdatesEnabled);\n bridge.addListener('startProfiling', this.startProfiling);\n bridge.addListener('stopProfiling', this.stopProfiling);\n bridge.addListener('storeAsGlobal', this.storeAsGlobal);\n bridge.addListener(\n 'syncSelectionFromNativeElementsPanel',\n this.syncSelectionFromNativeElementsPanel,\n );\n bridge.addListener('shutdown', this.shutdown);\n bridge.addListener(\n 'updateConsolePatchSettings',\n this.updateConsolePatchSettings,\n );\n bridge.addListener('updateComponentFilters', this.updateComponentFilters);\n bridge.addListener('viewAttributeSource', this.viewAttributeSource);\n bridge.addListener('viewElementSource', this.viewElementSource);\n\n // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n bridge.addListener('overrideContext', this.overrideContext);\n bridge.addListener('overrideHookState', this.overrideHookState);\n bridge.addListener('overrideProps', this.overrideProps);\n bridge.addListener('overrideState', this.overrideState);\n\n if (this._isProfiling) {\n bridge.send('profilingStatus', true);\n }\n\n // Send the Bridge protocol and backend versions, after initialization, in case the frontend has already requested it.\n // The Store may be instantiated beore the agent.\n const version = process.env.DEVTOOLS_VERSION;\n if (version) {\n this._bridge.send('backendVersion', version);\n }\n this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n\n // Notify the frontend if the backend supports the Storage API (e.g. localStorage).\n // If not, features like reload-and-profile will not work correctly and must be disabled.\n let isBackendStorageAPISupported = false;\n try {\n localStorage.getItem('test');\n isBackendStorageAPISupported = true;\n } catch (error) {}\n bridge.send('isBackendStorageAPISupported', isBackendStorageAPISupported);\n bridge.send('isSynchronousXHRSupported', isSynchronousXHRSupported());\n\n setupHighlighter(bridge, this);\n setupTraceUpdates(this);\n }\n\n get rendererInterfaces(): {[key: RendererID]: RendererInterface, ...} {\n return this._rendererInterfaces;\n }\n\n clearErrorsAndWarnings: ({rendererID: RendererID}) => void = ({\n rendererID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n renderer.clearErrorsAndWarnings();\n }\n };\n\n clearErrorsForFiberID: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n renderer.clearErrorsForFiberID(id);\n }\n };\n\n clearWarningsForFiberID: ElementAndRendererID => void = ({\n id,\n rendererID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n renderer.clearWarningsForFiberID(id);\n }\n };\n\n copyElementPath: CopyElementParams => void = ({\n id,\n path,\n rendererID,\n }: CopyElementParams) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n const value = renderer.getSerializedElementValueByPath(id, path);\n\n if (value != null) {\n this._bridge.send('saveToClipboard', value);\n } else {\n console.warn(`Unable to obtain serialized value for element \"${id}\"`);\n }\n }\n };\n\n deletePath: DeletePathParams => void = ({\n hookID,\n id,\n path,\n rendererID,\n type,\n }: DeletePathParams) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.deletePath(type, id, hookID, path);\n }\n };\n\n getInstanceAndStyle({\n id,\n rendererID,\n }: ElementAndRendererID): InstanceAndStyle | null {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n return null;\n }\n return renderer.getInstanceAndStyle(id);\n }\n\n getBestMatchingRendererInterface(node: Object): RendererInterface | null {\n let bestMatch = null;\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n const fiber = renderer.getFiberForNative(node);\n if (fiber !== null) {\n // check if fiber.stateNode is matching the original hostInstance\n if (fiber.stateNode === node) {\n return renderer;\n } else if (bestMatch === null) {\n bestMatch = renderer;\n }\n }\n }\n // if an exact match is not found, return the first valid renderer as fallback\n return bestMatch;\n }\n\n getIDForNode(node: Object): number | null {\n const rendererInterface = this.getBestMatchingRendererInterface(node);\n if (rendererInterface != null) {\n try {\n return rendererInterface.getFiberIDForNative(node, true);\n } catch (error) {\n // Some old React versions might throw if they can't find a match.\n // If so we should ignore it...\n }\n }\n return null;\n }\n\n getBackendVersion: () => void = () => {\n const version = process.env.DEVTOOLS_VERSION;\n if (version) {\n this._bridge.send('backendVersion', version);\n }\n };\n\n getBridgeProtocol: () => void = () => {\n this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n };\n\n getProfilingData: ({rendererID: RendererID}) => void = ({rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n }\n\n this._bridge.send('profilingData', renderer.getProfilingData());\n };\n\n getProfilingStatus: () => void = () => {\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n getOwnersList: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n const owners = renderer.getOwnersList(id);\n this._bridge.send('ownersList', ({id, owners}: OwnersList));\n }\n };\n\n inspectElement: InspectElementParams => void = ({\n forceFullData,\n id,\n path,\n rendererID,\n requestID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n this._bridge.send(\n 'inspectedElement',\n renderer.inspectElement(requestID, id, path, forceFullData),\n );\n\n // When user selects an element, stop trying to restore the selection,\n // and instead remember the current selection for the next reload.\n if (\n this._persistedSelectionMatch === null ||\n this._persistedSelectionMatch.id !== id\n ) {\n this._persistedSelection = null;\n this._persistedSelectionMatch = null;\n renderer.setTrackedPath(null);\n this._throttledPersistSelection(rendererID, id);\n }\n\n // TODO: If there was a way to change the selected DOM element\n // in native Elements tab without forcing a switch to it, we'd do it here.\n // For now, it doesn't seem like there is a way to do that:\n // https://github.com/bvaughn/react-devtools-experimental/issues/102\n // (Setting $0 doesn't work, and calling inspect() switches the tab.)\n }\n };\n\n logElementToConsole: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.logElementToConsole(id);\n }\n };\n\n overrideError: OverrideErrorParams => void = ({\n id,\n rendererID,\n forceError,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.overrideError(id, forceError);\n }\n };\n\n overrideSuspense: OverrideSuspenseParams => void = ({\n id,\n rendererID,\n forceFallback,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.overrideSuspense(id, forceFallback);\n }\n };\n\n overrideValueAtPath: OverrideValueAtPathParams => void = ({\n hookID,\n id,\n path,\n rendererID,\n type,\n value,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.overrideValueAtPath(type, id, hookID, path, value);\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideContext: SetInParams => void = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'context',\n value,\n });\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideHookState: OverrideHookParams => void = ({\n id,\n hookID,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'hooks',\n value,\n });\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideProps: SetInParams => void = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'props',\n value,\n });\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideState: SetInParams => void = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'state',\n value,\n });\n }\n };\n\n reloadAndProfile: (recordChangeDescriptions: boolean) => void =\n recordChangeDescriptions => {\n sessionStorageSetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY, 'true');\n sessionStorageSetItem(\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n recordChangeDescriptions ? 'true' : 'false',\n );\n\n // This code path should only be hit if the shell has explicitly told the Store that it supports profiling.\n // In that case, the shell must also listen for this specific message to know when it needs to reload the app.\n // The agent can't do this in a way that is renderer agnostic.\n this._bridge.send('reloadAppForProfiling');\n };\n\n renamePath: RenamePathParams => void = ({\n hookID,\n id,\n newPath,\n oldPath,\n rendererID,\n type,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.renamePath(type, id, hookID, oldPath, newPath);\n }\n };\n\n selectNode(target: Object): void {\n const id = this.getIDForNode(target);\n if (id !== null) {\n this._bridge.send('selectFiber', id);\n }\n }\n\n setRendererInterface(\n rendererID: RendererID,\n rendererInterface: RendererInterface,\n ) {\n this._rendererInterfaces[rendererID] = rendererInterface;\n\n if (this._isProfiling) {\n rendererInterface.startProfiling(this._recordChangeDescriptions);\n }\n\n rendererInterface.setTraceUpdatesEnabled(this._traceUpdatesEnabled);\n\n // When the renderer is attached, we need to tell it whether\n // we remember the previous selection that we'd like to restore.\n // It'll start tracking mounts for matches to the last selection path.\n const selection = this._persistedSelection;\n if (selection !== null && selection.rendererID === rendererID) {\n rendererInterface.setTrackedPath(selection.path);\n }\n }\n\n setTraceUpdatesEnabled: (traceUpdatesEnabled: boolean) => void =\n traceUpdatesEnabled => {\n this._traceUpdatesEnabled = traceUpdatesEnabled;\n\n setTraceUpdatesEnabled(traceUpdatesEnabled);\n\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.setTraceUpdatesEnabled(traceUpdatesEnabled);\n }\n };\n\n syncSelectionFromNativeElementsPanel: () => void = () => {\n const target = window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0;\n if (target == null) {\n return;\n }\n this.selectNode(target);\n };\n\n shutdown: () => void = () => {\n // Clean up the overlay if visible, and associated events.\n this.emit('shutdown');\n };\n\n startProfiling: (recordChangeDescriptions: boolean) => void =\n recordChangeDescriptions => {\n this._recordChangeDescriptions = recordChangeDescriptions;\n this._isProfiling = true;\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.startProfiling(recordChangeDescriptions);\n }\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n stopProfiling: () => void = () => {\n this._isProfiling = false;\n this._recordChangeDescriptions = false;\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.stopProfiling();\n }\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n stopInspectingNative: (selected: boolean) => void = selected => {\n this._bridge.send('stopInspectingNative', selected);\n };\n\n storeAsGlobal: StoreAsGlobalParams => void = ({\n count,\n id,\n path,\n rendererID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.storeAsGlobal(id, path, count);\n }\n };\n\n updateConsolePatchSettings: ({\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n browserTheme: BrowserTheme,\n hideConsoleLogsInStrictMode: boolean,\n showInlineWarningsAndErrors: boolean,\n }) => void = ({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n }: ConsolePatchSettings) => {\n // If the frontend preferences have changed,\n // or in the case of React Native- if the backend is just finding out the preferences-\n // then reinstall the console overrides.\n // It's safe to call `patchConsole` multiple times.\n patchConsole({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n });\n };\n\n updateComponentFilters: (componentFilters: Array) => void =\n componentFilters => {\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.updateComponentFilters(componentFilters);\n }\n };\n\n viewAttributeSource: CopyElementParams => void = ({id, path, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.prepareViewAttributeSource(id, path);\n }\n };\n\n viewElementSource: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.prepareViewElementSource(id);\n }\n };\n\n onTraceUpdates: (nodes: Set) => void = nodes => {\n this.emit('traceUpdates', nodes);\n };\n\n onFastRefreshScheduled: () => void = () => {\n if (__DEBUG__) {\n debug('onFastRefreshScheduled');\n }\n\n this._bridge.send('fastRefreshScheduled');\n };\n\n onHookOperations: (operations: Array) => void = operations => {\n if (__DEBUG__) {\n debug(\n 'onHookOperations',\n `(${operations.length}) [${operations.join(', ')}]`,\n );\n }\n\n // TODO:\n // The chrome.runtime does not currently support transferables; it forces JSON serialization.\n // See bug https://bugs.chromium.org/p/chromium/issues/detail?id=927134\n //\n // Regarding transferables, the postMessage doc states:\n // If the ownership of an object is transferred, it becomes unusable (neutered)\n // in the context it was sent from and becomes available only to the worker it was sent to.\n //\n // Even though Chrome is eventually JSON serializing the array buffer,\n // using the transferable approach also sometimes causes it to throw:\n // DOMException: Failed to execute 'postMessage' on 'Window': ArrayBuffer at index 0 is already neutered.\n //\n // See bug https://github.com/bvaughn/react-devtools-experimental/issues/25\n //\n // The Store has a fallback in place that parses the message as JSON if the type isn't an array.\n // For now the simplest fix seems to be to not transfer the array.\n // This will negatively impact performance on Firefox so it's unfortunate,\n // but until we're able to fix the Chrome error mentioned above, it seems necessary.\n //\n // this._bridge.send('operations', operations, [operations.buffer]);\n this._bridge.send('operations', operations);\n\n if (this._persistedSelection !== null) {\n const rendererID = operations[0];\n if (this._persistedSelection.rendererID === rendererID) {\n // Check if we can select a deeper match for the persisted selection.\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n const prevMatch = this._persistedSelectionMatch;\n const nextMatch = renderer.getBestMatchForTrackedPath();\n this._persistedSelectionMatch = nextMatch;\n const prevMatchID = prevMatch !== null ? prevMatch.id : null;\n const nextMatchID = nextMatch !== null ? nextMatch.id : null;\n if (prevMatchID !== nextMatchID) {\n if (nextMatchID !== null) {\n // We moved forward, unlocking a deeper node.\n this._bridge.send('selectFiber', nextMatchID);\n }\n }\n if (nextMatch !== null && nextMatch.isFullMatch) {\n // We've just unlocked the innermost selected node.\n // There's no point tracking it further.\n this._persistedSelection = null;\n this._persistedSelectionMatch = null;\n renderer.setTrackedPath(null);\n }\n }\n }\n }\n };\n\n onUnsupportedRenderer(rendererID: number) {\n this._bridge.send('unsupportedRendererVersion', rendererID);\n }\n\n _throttledPersistSelection: any = throttle(\n (rendererID: number, id: number) => {\n // This is throttled, so both renderer and selected ID\n // might not be available by the time we read them.\n // This is why we need the defensive checks here.\n const renderer = this._rendererInterfaces[rendererID];\n const path = renderer != null ? renderer.getPathForElement(id) : null;\n if (path !== null) {\n sessionStorageSetItem(\n SESSION_STORAGE_LAST_SELECTION_KEY,\n JSON.stringify(({rendererID, path}: PersistedSelection)),\n );\n } else {\n sessionStorageRemoveItem(SESSION_STORAGE_LAST_SELECTION_KEY);\n }\n },\n 1000,\n );\n}\n","/**\n * Install the hook on window, which is an event emitter.\n * Note: this global hook __REACT_DEVTOOLS_GLOBAL_HOOK__ is a de facto public API.\n * It's especially important to avoid creating direct dependency on the DevTools Backend.\n * That's why we still inline the whole event emitter implementation,\n * the string format implementation, and part of the console implementation here.\n *\n * @flow\n */\n\nimport type {BrowserTheme} from './frontend/types';\nimport type {\n DevToolsHook,\n Handler,\n ReactRenderer,\n RendererID,\n RendererInterface,\n DevToolsBackend,\n} from './backend/types';\n\ndeclare var window: any;\n\nexport function installHook(target: any): DevToolsHook | null {\n if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) {\n return null;\n }\n\n let targetConsole: Object = console;\n let targetConsoleMethods: {[string]: $FlowFixMe} = {};\n for (const method in console) {\n targetConsoleMethods[method] = console[method];\n }\n\n function dangerous_setTargetConsoleForTesting(\n targetConsoleForTesting: Object,\n ): void {\n targetConsole = targetConsoleForTesting;\n\n targetConsoleMethods = ({}: {[string]: $FlowFixMe});\n for (const method in targetConsole) {\n targetConsoleMethods[method] = console[method];\n }\n }\n\n function detectReactBuildType(renderer: ReactRenderer) {\n try {\n if (typeof renderer.version === 'string') {\n // React DOM Fiber (16+)\n if (renderer.bundleType > 0) {\n // This is not a production build.\n // We are currently only using 0 (PROD) and 1 (DEV)\n // but might add 2 (PROFILE) in the future.\n return 'development';\n }\n\n // React 16 uses flat bundles. If we report the bundle as production\n // version, it means we also minified and envified it ourselves.\n return 'production';\n // Note: There is still a risk that the CommonJS entry point has not\n // been envified or uglified. In this case the user would have *both*\n // development and production bundle, but only the prod one would run.\n // This would be really bad. We have a separate check for this because\n // it happens *outside* of the renderer injection. See `checkDCE` below.\n }\n\n // $FlowFixMe[method-unbinding]\n const toString = Function.prototype.toString;\n if (renderer.Mount && renderer.Mount._renderNewRootComponent) {\n // React DOM Stack\n const renderRootCode = toString.call(\n renderer.Mount._renderNewRootComponent,\n );\n // Filter out bad results (if that is even possible):\n if (renderRootCode.indexOf('function') !== 0) {\n // Hope for the best if we're not sure.\n return 'production';\n }\n // Check for React DOM Stack < 15.1.0 in development.\n // If it contains \"storedMeasure\" call, it's wrapped in ReactPerf (DEV only).\n // This would be true even if it's minified, as method name still matches.\n if (renderRootCode.indexOf('storedMeasure') !== -1) {\n return 'development';\n }\n // For other versions (and configurations) it's not so easy.\n // Let's quickly exclude proper production builds.\n // If it contains a warning message, it's either a DEV build,\n // or an PROD build without proper dead code elimination.\n if (renderRootCode.indexOf('should be a pure function') !== -1) {\n // Now how do we tell a DEV build from a bad PROD build?\n // If we see NODE_ENV, we're going to assume this is a dev build\n // because most likely it is referring to an empty shim.\n if (renderRootCode.indexOf('NODE_ENV') !== -1) {\n return 'development';\n }\n // If we see \"development\", we're dealing with an envified DEV build\n // (such as the official React DEV UMD).\n if (renderRootCode.indexOf('development') !== -1) {\n return 'development';\n }\n // I've seen process.env.NODE_ENV !== 'production' being smartly\n // replaced by `true` in DEV by Webpack. I don't know how that\n // works but we can safely guard against it because `true` was\n // never used in the function source since it was written.\n if (renderRootCode.indexOf('true') !== -1) {\n return 'development';\n }\n // By now either it is a production build that has not been minified,\n // or (worse) this is a minified development build using non-standard\n // environment (e.g. \"staging\"). We're going to look at whether\n // the function argument name is mangled:\n if (\n // 0.13 to 15\n renderRootCode.indexOf('nextElement') !== -1 ||\n // 0.12\n renderRootCode.indexOf('nextComponent') !== -1\n ) {\n // We can't be certain whether this is a development build or not,\n // but it is definitely unminified.\n return 'unminified';\n } else {\n // This is likely a minified development build.\n return 'development';\n }\n }\n // By now we know that it's envified and dead code elimination worked,\n // but what if it's still not minified? (Is this even possible?)\n // Let's check matches for the first argument name.\n if (\n // 0.13 to 15\n renderRootCode.indexOf('nextElement') !== -1 ||\n // 0.12\n renderRootCode.indexOf('nextComponent') !== -1\n ) {\n return 'unminified';\n }\n // Seems like we're using the production version.\n // However, the branch above is Stack-only so this is 15 or earlier.\n return 'outdated';\n }\n } catch (err) {\n // Weird environments may exist.\n // This code needs a higher fault tolerance\n // because it runs even with closed DevTools.\n // TODO: should we catch errors in all injected code, and not just this part?\n }\n return 'production';\n }\n\n function checkDCE(fn: Function) {\n // This runs for production versions of React.\n // Needs to be super safe.\n try {\n // $FlowFixMe[method-unbinding]\n const toString = Function.prototype.toString;\n const code = toString.call(fn);\n\n // This is a string embedded in the passed function under DEV-only\n // condition. However the function executes only in PROD. Therefore,\n // if we see it, dead code elimination did not work.\n if (code.indexOf('^_^') > -1) {\n // Remember to report during next injection.\n hasDetectedBadDCE = true;\n\n // Bonus: throw an exception hoping that it gets picked up by a reporting system.\n // Not synchronously so that it doesn't break the calling code.\n setTimeout(function () {\n throw new Error(\n 'React is running in production mode, but dead code ' +\n 'elimination has not been applied. Read how to correctly ' +\n 'configure React for production: ' +\n 'https://reactjs.org/link/perf-use-production-build',\n );\n });\n }\n } catch (err) {}\n }\n\n // NOTE: KEEP IN SYNC with src/backend/utils.js\n function formatWithStyles(\n inputArgs: $ReadOnlyArray,\n style?: string,\n ): $ReadOnlyArray {\n if (\n inputArgs === undefined ||\n inputArgs === null ||\n inputArgs.length === 0 ||\n // Matches any of %c but not %%c\n (typeof inputArgs[0] === 'string' &&\n inputArgs[0].match(/([^%]|^)(%c)/g)) ||\n style === undefined\n ) {\n return inputArgs;\n }\n\n // Matches any of %(o|O|d|i|s|f), but not %%(o|O|d|i|s|f)\n const REGEXP = /([^%]|^)((%%)*)(%([oOdisf]))/g;\n if (typeof inputArgs[0] === 'string' && inputArgs[0].match(REGEXP)) {\n return [`%c${inputArgs[0]}`, style, ...inputArgs.slice(1)];\n } else {\n const firstArg = inputArgs.reduce((formatStr, elem, i) => {\n if (i > 0) {\n formatStr += ' ';\n }\n switch (typeof elem) {\n case 'string':\n case 'boolean':\n case 'symbol':\n return (formatStr += '%s');\n case 'number':\n const formatting = Number.isInteger(elem) ? '%i' : '%f';\n return (formatStr += formatting);\n default:\n return (formatStr += '%o');\n }\n }, '%c');\n return [firstArg, style, ...inputArgs];\n }\n }\n\n let unpatchFn = null;\n\n // NOTE: KEEP IN SYNC with src/backend/console.js:patchForStrictMode\n // This function hides or dims console logs during the initial double renderer\n // in Strict Mode. We need this function because during initial render,\n // React and DevTools are connecting and the renderer interface isn't avaiable\n // and we want to be able to have consistent logging behavior for double logs\n // during the initial renderer.\n function patchConsoleForInitialRenderInStrictMode({\n hideConsoleLogsInStrictMode,\n browserTheme,\n }: {\n hideConsoleLogsInStrictMode: boolean,\n browserTheme: BrowserTheme,\n }) {\n const overrideConsoleMethods = [\n 'error',\n 'group',\n 'groupCollapsed',\n 'info',\n 'log',\n 'trace',\n 'warn',\n ];\n\n if (unpatchFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n unpatchFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n overrideConsoleMethods.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] = targetConsole[\n method\n ].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n ? targetConsole[method].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n : targetConsole[method]);\n\n const overrideMethod = (...args: $ReadOnlyArray) => {\n if (!hideConsoleLogsInStrictMode) {\n // Dim the text color of the double logs if we're not\n // hiding them.\n let color;\n switch (method) {\n case 'warn':\n color =\n browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_WARNING_COLOR\n : process.env.DARK_MODE_DIMMED_WARNING_COLOR;\n break;\n case 'error':\n color =\n browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_ERROR_COLOR\n : process.env.DARK_MODE_DIMMED_ERROR_COLOR;\n break;\n case 'log':\n default:\n color =\n browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_LOG_COLOR\n : process.env.DARK_MODE_DIMMED_LOG_COLOR;\n break;\n }\n\n if (color) {\n originalMethod(...formatWithStyles(args, `color: ${color}`));\n } else {\n throw Error('Console color is not defined');\n }\n }\n };\n\n overrideMethod.__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__ =\n originalMethod;\n originalMethod.__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__ =\n overrideMethod;\n\n targetConsole[method] = overrideMethod;\n } catch (error) {}\n });\n }\n\n // NOTE: KEEP IN SYNC with src/backend/console.js:unpatchForStrictMode\n function unpatchConsoleForInitialRenderInStrictMode() {\n if (unpatchFn !== null) {\n unpatchFn();\n unpatchFn = null;\n }\n }\n\n let uidCounter = 0;\n\n function inject(renderer: ReactRenderer): number {\n const id = ++uidCounter;\n renderers.set(id, renderer);\n\n const reactBuildType = hasDetectedBadDCE\n ? 'deadcode'\n : detectReactBuildType(renderer);\n\n // Patching the console enables DevTools to do a few useful things:\n // * Append component stacks to warnings and error messages\n // * Disabling or marking logs during a double render in Strict Mode\n // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n //\n // Allow patching console early (during injection) to\n // provide developers with components stacks even if they don't run DevTools.\n if (target.hasOwnProperty('__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__')) {\n const {registerRendererWithConsole, patchConsoleUsingWindowValues} =\n target.__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__;\n if (\n typeof registerRendererWithConsole === 'function' &&\n typeof patchConsoleUsingWindowValues === 'function'\n ) {\n registerRendererWithConsole(renderer);\n patchConsoleUsingWindowValues();\n }\n }\n\n // If we have just reloaded to profile, we need to inject the renderer interface before the app loads.\n // Otherwise the renderer won't yet exist and we can skip this step.\n const attach = target.__REACT_DEVTOOLS_ATTACH__;\n if (typeof attach === 'function') {\n const rendererInterface = attach(hook, id, renderer, target);\n hook.rendererInterfaces.set(id, rendererInterface);\n }\n\n hook.emit('renderer', {\n id,\n renderer,\n reactBuildType,\n });\n\n return id;\n }\n\n let hasDetectedBadDCE = false;\n\n function sub(event: string, fn: Handler) {\n hook.on(event, fn);\n return () => hook.off(event, fn);\n }\n\n function on(event: string, fn: Handler) {\n if (!listeners[event]) {\n listeners[event] = [];\n }\n listeners[event].push(fn);\n }\n\n function off(event: string, fn: Handler) {\n if (!listeners[event]) {\n return;\n }\n const index = listeners[event].indexOf(fn);\n if (index !== -1) {\n listeners[event].splice(index, 1);\n }\n if (!listeners[event].length) {\n delete listeners[event];\n }\n }\n\n function emit(event: string, data: any) {\n if (listeners[event]) {\n listeners[event].map(fn => fn(data));\n }\n }\n\n function getFiberRoots(rendererID: RendererID) {\n const roots = fiberRoots;\n if (!roots[rendererID]) {\n roots[rendererID] = new Set();\n }\n return roots[rendererID];\n }\n\n function onCommitFiberUnmount(rendererID: RendererID, fiber: any) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberUnmount(fiber);\n }\n }\n\n function onCommitFiberRoot(\n rendererID: RendererID,\n root: any,\n priorityLevel: void | number,\n ) {\n const mountedRoots = hook.getFiberRoots(rendererID);\n const current = root.current;\n const isKnownRoot = mountedRoots.has(root);\n const isUnmounting =\n current.memoizedState == null || current.memoizedState.element == null;\n\n // Keep track of mounted roots so we can hydrate when DevTools connect.\n if (!isKnownRoot && !isUnmounting) {\n mountedRoots.add(root);\n } else if (isKnownRoot && isUnmounting) {\n mountedRoots.delete(root);\n }\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberRoot(root, priorityLevel);\n }\n }\n\n function onPostCommitFiberRoot(rendererID: RendererID, root: any) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handlePostCommitFiberRoot(root);\n }\n }\n\n function setStrictMode(rendererID: RendererID, isStrictMode: any) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n if (isStrictMode) {\n rendererInterface.patchConsoleForStrictMode();\n } else {\n rendererInterface.unpatchConsoleForStrictMode();\n }\n } else {\n // This should only happen during initial render in the extension before DevTools\n // finishes its handshake with the injected renderer\n if (isStrictMode) {\n const hideConsoleLogsInStrictMode =\n window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__ === true;\n const browserTheme = window.__REACT_DEVTOOLS_BROWSER_THEME__;\n\n patchConsoleForInitialRenderInStrictMode({\n hideConsoleLogsInStrictMode,\n browserTheme,\n });\n } else {\n unpatchConsoleForInitialRenderInStrictMode();\n }\n }\n }\n\n type StackFrameString = string;\n\n const openModuleRangesStack: Array = [];\n const moduleRanges: Array<[StackFrameString, StackFrameString]> = [];\n\n function getTopStackFrameString(error: Error): StackFrameString | null {\n const frames = error.stack.split('\\n');\n const frame = frames.length > 1 ? frames[1] : null;\n return frame;\n }\n\n function getInternalModuleRanges(): Array<\n [StackFrameString, StackFrameString],\n > {\n return moduleRanges;\n }\n\n function registerInternalModuleStart(error: Error) {\n const startStackFrame = getTopStackFrameString(error);\n if (startStackFrame !== null) {\n openModuleRangesStack.push(startStackFrame);\n }\n }\n\n function registerInternalModuleStop(error: Error) {\n if (openModuleRangesStack.length > 0) {\n const startStackFrame = openModuleRangesStack.pop();\n const stopStackFrame = getTopStackFrameString(error);\n if (stopStackFrame !== null) {\n moduleRanges.push([startStackFrame, stopStackFrame]);\n }\n }\n }\n\n // TODO: More meaningful names for \"rendererInterfaces\" and \"renderers\".\n const fiberRoots: {[RendererID]: Set} = {};\n const rendererInterfaces = new Map();\n const listeners: {[string]: Array} = {};\n const renderers = new Map();\n const backends = new Map();\n\n const hook: DevToolsHook = {\n rendererInterfaces,\n listeners,\n\n backends,\n\n // Fast Refresh for web relies on this.\n renderers,\n\n emit,\n getFiberRoots,\n inject,\n on,\n off,\n sub,\n\n // This is a legacy flag.\n // React v16 checks the hook for this to ensure DevTools is new enough.\n supportsFiber: true,\n\n // React calls these methods.\n checkDCE,\n onCommitFiberUnmount,\n onCommitFiberRoot,\n onPostCommitFiberRoot,\n setStrictMode,\n\n // Schedule Profiler runtime helpers.\n // These internal React modules to report their own boundaries\n // which in turn enables the profiler to dim or filter internal frames.\n getInternalModuleRanges,\n registerInternalModuleStart,\n registerInternalModuleStop,\n };\n\n if (__TEST__) {\n hook.dangerous_setTargetConsoleForTesting =\n dangerous_setTargetConsoleForTesting;\n }\n\n Object.defineProperty(\n target,\n '__REACT_DEVTOOLS_GLOBAL_HOOK__',\n ({\n // This property needs to be configurable for the test environment,\n // else we won't be able to delete and recreate it between tests.\n configurable: __DEV__,\n enumerable: false,\n get() {\n return hook;\n },\n }: Object),\n );\n\n return hook;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {InternalInstance} from './renderer';\n\nexport function decorate(object: Object, attr: string, fn: Function): Function {\n const old = object[attr];\n // $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\n object[attr] = function (instance: InternalInstance) {\n return fn.call(this, old, arguments);\n };\n return old;\n}\n\nexport function decorateMany(\n source: Object,\n fns: {[attr: string]: Function, ...},\n): Object {\n const olds: {[string]: $FlowFixMe} = {};\n for (const name in fns) {\n olds[name] = decorate(source, name, fns[name]);\n }\n return olds;\n}\n\nexport function restoreMany(source: Object, olds: Object): void {\n for (const name in olds) {\n source[name] = olds[name];\n }\n}\n\n// $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\nexport function forceUpdate(instance: InternalInstance): void {\n if (typeof instance.forceUpdate === 'function') {\n instance.forceUpdate();\n } else if (\n instance.updater != null &&\n typeof instance.updater.enqueueForceUpdate === 'function'\n ) {\n instance.updater.enqueueForceUpdate(this, () => {}, 'forceUpdate');\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n ElementTypeClass,\n ElementTypeFunction,\n ElementTypeRoot,\n ElementTypeHostComponent,\n ElementTypeOtherOrUnknown,\n} from 'react-devtools-shared/src/frontend/types';\nimport {getUID, utfEncodeString, printOperationsArray} from '../../utils';\nimport {\n cleanForBridge,\n copyWithDelete,\n copyWithRename,\n copyWithSet,\n serializeToString,\n} from '../utils';\nimport {\n deletePathInObject,\n getDisplayName,\n getInObject,\n renamePathInObject,\n setInObject,\n} from 'react-devtools-shared/src/utils';\nimport {\n __DEBUG__,\n TREE_OPERATION_ADD,\n TREE_OPERATION_REMOVE,\n TREE_OPERATION_REORDER_CHILDREN,\n} from '../../constants';\nimport {decorateMany, forceUpdate, restoreMany} from './utils';\n\nimport type {\n DevToolsHook,\n GetFiberIDForNative,\n InspectedElementPayload,\n InstanceAndStyle,\n NativeType,\n PathFrame,\n PathMatch,\n RendererInterface,\n} from '../types';\nimport type {\n ComponentFilter,\n ElementType,\n} from 'react-devtools-shared/src/frontend/types';\nimport type {InspectedElement, SerializedElement} from '../types';\n\nexport type InternalInstance = Object;\ntype LegacyRenderer = Object;\n\nfunction getData(internalInstance: InternalInstance) {\n let displayName = null;\n let key = null;\n\n // != used deliberately here to catch undefined and null\n if (internalInstance._currentElement != null) {\n if (internalInstance._currentElement.key) {\n key = String(internalInstance._currentElement.key);\n }\n\n const elementType = internalInstance._currentElement.type;\n if (typeof elementType === 'string') {\n displayName = elementType;\n } else if (typeof elementType === 'function') {\n displayName = getDisplayName(elementType);\n }\n }\n\n return {\n displayName,\n key,\n };\n}\n\nfunction getElementType(internalInstance: InternalInstance): ElementType {\n // != used deliberately here to catch undefined and null\n if (internalInstance._currentElement != null) {\n const elementType = internalInstance._currentElement.type;\n if (typeof elementType === 'function') {\n const publicInstance = internalInstance.getPublicInstance();\n if (publicInstance !== null) {\n return ElementTypeClass;\n } else {\n return ElementTypeFunction;\n }\n } else if (typeof elementType === 'string') {\n return ElementTypeHostComponent;\n }\n }\n return ElementTypeOtherOrUnknown;\n}\n\nfunction getChildren(internalInstance: Object): Array {\n const children = [];\n\n // If the parent is a native node without rendered children, but with\n // multiple string children, then the `element` that gets passed in here is\n // a plain value -- a string or number.\n if (typeof internalInstance !== 'object') {\n // No children\n } else if (\n internalInstance._currentElement === null ||\n internalInstance._currentElement === false\n ) {\n // No children\n } else if (internalInstance._renderedComponent) {\n const child = internalInstance._renderedComponent;\n if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n children.push(child);\n }\n } else if (internalInstance._renderedChildren) {\n const renderedChildren = internalInstance._renderedChildren;\n for (const name in renderedChildren) {\n const child = renderedChildren[name];\n if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n children.push(child);\n }\n }\n }\n // Note: we skip the case where children are just strings or numbers\n // because the new DevTools skips over host text nodes anyway.\n return children;\n}\n\nexport function attach(\n hook: DevToolsHook,\n rendererID: number,\n renderer: LegacyRenderer,\n global: Object,\n): RendererInterface {\n const idToInternalInstanceMap: Map = new Map();\n const internalInstanceToIDMap: WeakMap =\n new WeakMap();\n const internalInstanceToRootIDMap: WeakMap =\n new WeakMap();\n\n let getInternalIDForNative: GetFiberIDForNative =\n ((null: any): GetFiberIDForNative);\n let findNativeNodeForInternalID: (id: number) => ?NativeType;\n let getFiberForNative = (node: NativeType) => {\n // Not implemented.\n return null;\n };\n\n if (renderer.ComponentTree) {\n getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n const internalInstance =\n renderer.ComponentTree.getClosestInstanceFromNode(node);\n return internalInstanceToIDMap.get(internalInstance) || null;\n };\n findNativeNodeForInternalID = (id: number) => {\n const internalInstance = idToInternalInstanceMap.get(id);\n return renderer.ComponentTree.getNodeFromInstance(internalInstance);\n };\n getFiberForNative = (node: NativeType) => {\n return renderer.ComponentTree.getClosestInstanceFromNode(node);\n };\n } else if (renderer.Mount.getID && renderer.Mount.getNode) {\n getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n // Not implemented.\n return null;\n };\n findNativeNodeForInternalID = (id: number) => {\n // Not implemented.\n return null;\n };\n }\n\n function getDisplayNameForFiberID(id: number): string | null {\n const internalInstance = idToInternalInstanceMap.get(id);\n return internalInstance ? getData(internalInstance).displayName : null;\n }\n\n function getID(internalInstance: InternalInstance): number {\n if (typeof internalInstance !== 'object' || internalInstance === null) {\n throw new Error('Invalid internal instance: ' + internalInstance);\n }\n if (!internalInstanceToIDMap.has(internalInstance)) {\n const id = getUID();\n internalInstanceToIDMap.set(internalInstance, id);\n idToInternalInstanceMap.set(id, internalInstance);\n }\n return ((internalInstanceToIDMap.get(internalInstance): any): number);\n }\n\n function areEqualArrays(a: Array, b: Array) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n\n // This is shared mutable state that lets us keep track of where we are.\n let parentIDStack = [];\n\n let oldReconcilerMethods = null;\n if (renderer.Reconciler) {\n // React 15\n oldReconcilerMethods = decorateMany(renderer.Reconciler, {\n mountComponent(fn, args) {\n const internalInstance = args[0];\n const hostContainerInfo = args[3];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n if (hostContainerInfo._topLevelWrapper === undefined) {\n // SSR\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n // Push the operation.\n const parentID =\n parentIDStack.length > 0\n ? parentIDStack[parentIDStack.length - 1]\n : 0;\n recordMount(internalInstance, id, parentID);\n parentIDStack.push(id);\n\n // Remember the root.\n internalInstanceToRootIDMap.set(\n internalInstance,\n getID(hostContainerInfo._topLevelWrapper),\n );\n\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n performUpdateIfNecessary(fn, args) {\n const internalInstance = args[0];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n\n const prevChildren = getChildren(internalInstance);\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n\n const nextChildren = getChildren(internalInstance);\n if (!areEqualArrays(prevChildren, nextChildren)) {\n // Push the operation\n recordReorder(internalInstance, id, nextChildren);\n }\n\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n receiveComponent(fn, args) {\n const internalInstance = args[0];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n\n const prevChildren = getChildren(internalInstance);\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n\n const nextChildren = getChildren(internalInstance);\n if (!areEqualArrays(prevChildren, nextChildren)) {\n // Push the operation\n recordReorder(internalInstance, id, nextChildren);\n }\n\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n unmountComponent(fn, args) {\n const internalInstance = args[0];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n parentIDStack.pop();\n\n // Push the operation.\n recordUnmount(internalInstance, id);\n\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n });\n }\n\n function cleanup() {\n if (oldReconcilerMethods !== null) {\n if (renderer.Component) {\n restoreMany(renderer.Component.Mixin, oldReconcilerMethods);\n } else {\n restoreMany(renderer.Reconciler, oldReconcilerMethods);\n }\n }\n oldReconcilerMethods = null;\n }\n\n function recordMount(\n internalInstance: InternalInstance,\n id: number,\n parentID: number,\n ) {\n const isRoot = parentID === 0;\n\n if (__DEBUG__) {\n console.log(\n '%crecordMount()',\n 'color: green; font-weight: bold;',\n id,\n getData(internalInstance).displayName,\n );\n }\n\n if (isRoot) {\n // TODO Is this right? For all versions?\n const hasOwnerMetadata =\n internalInstance._currentElement != null &&\n internalInstance._currentElement._owner != null;\n\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation(0); // StrictMode compliant?\n pushOperation(0); // Profiling flag\n pushOperation(0); // StrictMode supported?\n pushOperation(hasOwnerMetadata ? 1 : 0);\n } else {\n const type = getElementType(internalInstance);\n const {displayName, key} = getData(internalInstance);\n\n const ownerID =\n internalInstance._currentElement != null &&\n internalInstance._currentElement._owner != null\n ? getID(internalInstance._currentElement._owner)\n : 0;\n\n const displayNameStringID = getStringID(displayName);\n const keyStringID = getStringID(key);\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(type);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID);\n }\n }\n\n function recordReorder(\n internalInstance: InternalInstance,\n id: number,\n nextChildren: Array,\n ) {\n pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n pushOperation(id);\n const nextChildIDs = nextChildren.map(getID);\n pushOperation(nextChildIDs.length);\n for (let i = 0; i < nextChildIDs.length; i++) {\n pushOperation(nextChildIDs[i]);\n }\n }\n\n function recordUnmount(internalInstance: InternalInstance, id: number) {\n pendingUnmountedIDs.push(id);\n idToInternalInstanceMap.delete(id);\n }\n\n function crawlAndRecordInitialMounts(\n id: number,\n parentID: number,\n rootID: number,\n ) {\n if (__DEBUG__) {\n console.group('crawlAndRecordInitialMounts() id:', id);\n }\n\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n internalInstanceToRootIDMap.set(internalInstance, rootID);\n recordMount(internalInstance, id, parentID);\n getChildren(internalInstance).forEach(child =>\n crawlAndRecordInitialMounts(getID(child), id, rootID),\n );\n }\n\n if (__DEBUG__) {\n console.groupEnd();\n }\n }\n\n function flushInitialOperations() {\n // Crawl roots though and register any nodes that mounted before we were injected.\n\n const roots =\n renderer.Mount._instancesByReactRootID ||\n renderer.Mount._instancesByContainerID;\n\n for (const key in roots) {\n const internalInstance = roots[key];\n const id = getID(internalInstance);\n crawlAndRecordInitialMounts(id, 0, id);\n flushPendingEvents(id);\n }\n }\n\n const pendingOperations: Array = [];\n const pendingStringTable: Map = new Map();\n let pendingUnmountedIDs: Array = [];\n let pendingStringTableLength: number = 0;\n let pendingUnmountedRootID: number | null = null;\n\n function flushPendingEvents(rootID: number) {\n if (\n pendingOperations.length === 0 &&\n pendingUnmountedIDs.length === 0 &&\n pendingUnmountedRootID === null\n ) {\n return;\n }\n\n const numUnmountIDs =\n pendingUnmountedIDs.length + (pendingUnmountedRootID === null ? 0 : 1);\n\n const operations = new Array(\n // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength +\n // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n // Mount operations\n pendingOperations.length,\n );\n\n // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber properations, states, and hooks to be inspected.\n let i = 0;\n operations[i++] = rendererID;\n operations[i++] = rootID;\n\n // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach((value, key) => {\n operations[i++] = key.length;\n const encodedKey = utfEncodeString(key);\n for (let j = 0; j < encodedKey.length; j++) {\n operations[i + j] = encodedKey[j];\n }\n i += key.length;\n });\n\n if (numUnmountIDs > 0) {\n // All unmounts except roots are batched in a single message.\n operations[i++] = TREE_OPERATION_REMOVE;\n // The first number is how many unmounted IDs we're gonna send.\n operations[i++] = numUnmountIDs;\n // Fill in the unmounts\n for (let j = 0; j < pendingUnmountedIDs.length; j++) {\n operations[i++] = pendingUnmountedIDs[j];\n }\n // The root ID should always be unmounted last.\n if (pendingUnmountedRootID !== null) {\n operations[i] = pendingUnmountedRootID;\n i++;\n }\n }\n\n // Fill in the rest of the operations.\n for (let j = 0; j < pendingOperations.length; j++) {\n operations[i + j] = pendingOperations[j];\n }\n i += pendingOperations.length;\n\n if (__DEBUG__) {\n printOperationsArray(operations);\n }\n\n // If we've already connected to the frontend, just pass the operations through.\n hook.emit('operations', operations);\n\n pendingOperations.length = 0;\n pendingUnmountedIDs = [];\n pendingUnmountedRootID = null;\n pendingStringTable.clear();\n pendingStringTableLength = 0;\n }\n\n function pushOperation(op: number): void {\n if (__DEV__) {\n if (!Number.isInteger(op)) {\n console.error(\n 'pushOperation() was called but the value is not an integer.',\n op,\n );\n }\n }\n pendingOperations.push(op);\n }\n\n function getStringID(str: string | null): number {\n if (str === null) {\n return 0;\n }\n const existingID = pendingStringTable.get(str);\n if (existingID !== undefined) {\n return existingID;\n }\n const stringID = pendingStringTable.size + 1;\n pendingStringTable.set(str, stringID);\n // The string table total length needs to account\n // both for the string length, and for the array item\n // that contains the length itself. Hence + 1.\n pendingStringTableLength += str.length + 1;\n return stringID;\n }\n\n let currentlyInspectedElementID: number | null = null;\n let currentlyInspectedPaths: Object = {};\n\n // Track the intersection of currently inspected paths,\n // so that we can send their data along if the element is re-rendered.\n function mergeInspectedPaths(path: Array) {\n let current = currentlyInspectedPaths;\n path.forEach(key => {\n if (!current[key]) {\n current[key] = {};\n }\n current = current[key];\n });\n }\n\n function createIsPathAllowed(key: string) {\n // This function helps prevent previously-inspected paths from being dehydrated in updates.\n // This is important to avoid a bad user experience where expanded toggles collapse on update.\n return function isPathAllowed(path: Array): boolean {\n let current = currentlyInspectedPaths[key];\n if (!current) {\n return false;\n }\n for (let i = 0; i < path.length; i++) {\n current = current[path[i]];\n if (!current) {\n return false;\n }\n }\n return true;\n };\n }\n\n // Fast path props lookup for React Native style editor.\n function getInstanceAndStyle(id: number): InstanceAndStyle {\n let instance = null;\n let style = null;\n\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n instance = internalInstance._instance || null;\n\n const element = internalInstance._currentElement;\n if (element != null && element.props != null) {\n style = element.props.style || null;\n }\n }\n\n return {\n instance,\n style,\n };\n }\n\n function updateSelectedElement(id: number): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance == null) {\n console.warn(`Could not find instance with id \"${id}\"`);\n return;\n }\n\n switch (getElementType(internalInstance)) {\n case ElementTypeClass:\n global.$r = internalInstance._instance;\n break;\n case ElementTypeFunction:\n const element = internalInstance._currentElement;\n if (element == null) {\n console.warn(`Could not find element with id \"${id}\"`);\n return;\n }\n\n global.$r = {\n props: element.props,\n type: element.type,\n };\n break;\n default:\n global.$r = null;\n break;\n }\n }\n\n function storeAsGlobal(\n id: number,\n path: Array,\n count: number,\n ): void {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n const value = getInObject(inspectedElement, path);\n const key = `$reactTemp${count}`;\n\n window[key] = value;\n\n console.log(key);\n console.log(value);\n }\n }\n\n function getSerializedElementValueByPath(\n id: number,\n path: Array,\n ): ?string {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n const valueToCopy = getInObject(inspectedElement, path);\n\n return serializeToString(valueToCopy);\n }\n }\n\n function inspectElement(\n requestID: number,\n id: number,\n path: Array | null,\n forceFullData: boolean,\n ): InspectedElementPayload {\n if (forceFullData || currentlyInspectedElementID !== id) {\n currentlyInspectedElementID = id;\n currentlyInspectedPaths = {};\n }\n\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement === null) {\n return {\n id,\n responseID: requestID,\n type: 'not-found',\n };\n }\n\n if (path !== null) {\n mergeInspectedPaths(path);\n }\n\n // Any time an inspected element has an update,\n // we should update the selected $r value as wel.\n // Do this before dehydration (cleanForBridge).\n updateSelectedElement(id);\n\n inspectedElement.context = cleanForBridge(\n inspectedElement.context,\n createIsPathAllowed('context'),\n );\n inspectedElement.props = cleanForBridge(\n inspectedElement.props,\n createIsPathAllowed('props'),\n );\n inspectedElement.state = cleanForBridge(\n inspectedElement.state,\n createIsPathAllowed('state'),\n );\n\n return {\n id,\n responseID: requestID,\n type: 'full-data',\n value: inspectedElement,\n };\n }\n\n function inspectElementRaw(id: number): InspectedElement | null {\n const internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance == null) {\n return null;\n }\n\n const {displayName, key} = getData(internalInstance);\n const type = getElementType(internalInstance);\n\n let context = null;\n let owners = null;\n let props = null;\n let state = null;\n let source = null;\n\n const element = internalInstance._currentElement;\n if (element !== null) {\n props = element.props;\n source = element._source != null ? element._source : null;\n\n let owner = element._owner;\n if (owner) {\n owners = ([]: Array);\n while (owner != null) {\n owners.push({\n displayName: getData(owner).displayName || 'Unknown',\n id: getID(owner),\n key: element.key,\n type: getElementType(owner),\n });\n if (owner._currentElement) {\n owner = owner._currentElement._owner;\n }\n }\n }\n }\n\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n context = publicInstance.context || null;\n state = publicInstance.state || null;\n }\n\n // Not implemented\n const errors: Array<[string, number]> = [];\n const warnings: Array<[string, number]> = [];\n\n return {\n id,\n\n // Does the current renderer support editable hooks and function props?\n canEditHooks: false,\n canEditFunctionProps: false,\n\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths: false,\n canEditHooksAndRenamePaths: false,\n canEditFunctionPropsDeletePaths: false,\n canEditFunctionPropsRenamePaths: false,\n\n // Toggle error boundary did not exist in legacy versions\n canToggleError: false,\n isErrored: false,\n targetErrorBoundaryID: null,\n\n // Suspense did not exist in legacy versions\n canToggleSuspense: false,\n\n // Can view component source location.\n canViewSource: type === ElementTypeClass || type === ElementTypeFunction,\n\n // Only legacy context exists in legacy versions.\n hasLegacyContext: true,\n\n displayName: displayName,\n\n type: type,\n\n key: key != null ? key : null,\n\n // Inspectable properties.\n context,\n hooks: null,\n props,\n state,\n errors,\n warnings,\n\n // List of owners\n owners,\n\n // Location of component in source code.\n source,\n\n rootType: null,\n rendererPackageName: null,\n rendererVersion: null,\n\n plugins: {\n stylex: null,\n },\n };\n }\n\n function logElementToConsole(id: number): void {\n const result = inspectElementRaw(id);\n if (result === null) {\n console.warn(`Could not find element with id \"${id}\"`);\n return;\n }\n\n const supportsGroup = typeof console.groupCollapsed === 'function';\n if (supportsGroup) {\n console.groupCollapsed(\n `[Click to expand] %c<${result.displayName || 'Component'} />`,\n // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n 'color: var(--dom-tag-name-color); font-weight: normal;',\n );\n }\n if (result.props !== null) {\n console.log('Props:', result.props);\n }\n if (result.state !== null) {\n console.log('State:', result.state);\n }\n if (result.context !== null) {\n console.log('Context:', result.context);\n }\n const nativeNode = findNativeNodeForInternalID(id);\n if (nativeNode !== null) {\n console.log('Node:', nativeNode);\n }\n if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n console.log(\n 'Right-click any value to save it as a global variable for further inspection.',\n );\n }\n if (supportsGroup) {\n console.groupEnd();\n }\n }\n\n function prepareViewAttributeSource(\n id: number,\n path: Array,\n ): void {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n window.$attribute = getInObject(inspectedElement, path);\n }\n }\n\n function prepareViewElementSource(id: number): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance == null) {\n console.warn(`Could not find instance with id \"${id}\"`);\n return;\n }\n\n const element = internalInstance._currentElement;\n if (element == null) {\n console.warn(`Could not find element with id \"${id}\"`);\n return;\n }\n\n global.$type = element.type;\n }\n\n function deletePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n ): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n deletePathInObject(publicInstance.context, path);\n forceUpdate(publicInstance);\n break;\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n case 'props':\n const element = internalInstance._currentElement;\n internalInstance._currentElement = {\n ...element,\n props: copyWithDelete(element.props, path),\n };\n forceUpdate(publicInstance);\n break;\n case 'state':\n deletePathInObject(publicInstance.state, path);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n function renamePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n oldPath: Array,\n newPath: Array,\n ): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n renamePathInObject(publicInstance.context, oldPath, newPath);\n forceUpdate(publicInstance);\n break;\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n case 'props':\n const element = internalInstance._currentElement;\n internalInstance._currentElement = {\n ...element,\n props: copyWithRename(element.props, oldPath, newPath),\n };\n forceUpdate(publicInstance);\n break;\n case 'state':\n renamePathInObject(publicInstance.state, oldPath, newPath);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n function overrideValueAtPath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n value: any,\n ): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n setInObject(publicInstance.context, path, value);\n forceUpdate(publicInstance);\n break;\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n case 'props':\n const element = internalInstance._currentElement;\n internalInstance._currentElement = {\n ...element,\n props: copyWithSet(element.props, path, value),\n };\n forceUpdate(publicInstance);\n break;\n case 'state':\n setInObject(publicInstance.state, path, value);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n // v16+ only features\n const getProfilingData = () => {\n throw new Error('getProfilingData not supported by this renderer');\n };\n const handleCommitFiberRoot = () => {\n throw new Error('handleCommitFiberRoot not supported by this renderer');\n };\n const handleCommitFiberUnmount = () => {\n throw new Error('handleCommitFiberUnmount not supported by this renderer');\n };\n const handlePostCommitFiberRoot = () => {\n throw new Error('handlePostCommitFiberRoot not supported by this renderer');\n };\n const overrideError = () => {\n throw new Error('overrideError not supported by this renderer');\n };\n const overrideSuspense = () => {\n throw new Error('overrideSuspense not supported by this renderer');\n };\n const startProfiling = () => {\n // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n };\n const stopProfiling = () => {\n // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n };\n\n function getBestMatchForTrackedPath(): PathMatch | null {\n // Not implemented.\n return null;\n }\n\n function getPathForElement(id: number): Array | null {\n // Not implemented.\n return null;\n }\n\n function updateComponentFilters(componentFilters: Array) {\n // Not implemented.\n }\n\n function setTraceUpdatesEnabled(enabled: boolean) {\n // Not implemented.\n }\n\n function setTrackedPath(path: Array | null) {\n // Not implemented.\n }\n\n function getOwnersList(id: number): Array | null {\n // Not implemented.\n return null;\n }\n\n function clearErrorsAndWarnings() {\n // Not implemented\n }\n\n function clearErrorsForFiberID(id: number) {\n // Not implemented\n }\n\n function clearWarningsForFiberID(id: number) {\n // Not implemented\n }\n\n function patchConsoleForStrictMode() {}\n\n function unpatchConsoleForStrictMode() {}\n\n function hasFiberWithId(id: number): boolean {\n return idToInternalInstanceMap.has(id);\n }\n\n return {\n clearErrorsAndWarnings,\n clearErrorsForFiberID,\n clearWarningsForFiberID,\n cleanup,\n getSerializedElementValueByPath,\n deletePath,\n flushInitialOperations,\n getBestMatchForTrackedPath,\n getDisplayNameForFiberID,\n getFiberForNative,\n getFiberIDForNative: getInternalIDForNative,\n getInstanceAndStyle,\n findNativeNodesForFiberID: (id: number) => {\n const nativeNode = findNativeNodeForInternalID(id);\n return nativeNode == null ? null : [nativeNode];\n },\n getOwnersList,\n getPathForElement,\n getProfilingData,\n handleCommitFiberRoot,\n handleCommitFiberUnmount,\n handlePostCommitFiberRoot,\n hasFiberWithId,\n inspectElement,\n logElementToConsole,\n overrideError,\n overrideSuspense,\n overrideValueAtPath,\n renamePath,\n patchConsoleForStrictMode,\n prepareViewAttributeSource,\n prepareViewElementSource,\n renderer,\n setTraceUpdatesEnabled,\n setTrackedPath,\n startProfiling,\n stopProfiling,\n storeAsGlobal,\n unpatchConsoleForStrictMode,\n updateComponentFilters,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from './agent';\n\nimport {attach} from './renderer';\nimport {attach as attachLegacy} from './legacy/renderer';\nimport {hasAssignedBackend} from './utils';\n\nimport type {DevToolsHook, ReactRenderer, RendererInterface} from './types';\n\n// this is the backend that is compatible with all older React versions\nfunction isMatchingRender(version: string): boolean {\n return !hasAssignedBackend(version);\n}\n\nexport type InitBackend = typeof initBackend;\n\nexport function initBackend(\n hook: DevToolsHook,\n agent: Agent,\n global: Object,\n): () => void {\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return () => {};\n }\n\n const subs = [\n hook.sub(\n 'renderer-attached',\n ({\n id,\n renderer,\n rendererInterface,\n }: {\n id: number,\n renderer: ReactRenderer,\n rendererInterface: RendererInterface,\n ...\n }) => {\n agent.setRendererInterface(id, rendererInterface);\n\n // Now that the Store and the renderer interface are connected,\n // it's time to flush the pending operation codes to the frontend.\n rendererInterface.flushInitialOperations();\n },\n ),\n\n hook.sub('unsupported-renderer-version', (id: number) => {\n agent.onUnsupportedRenderer(id);\n }),\n\n hook.sub('fastRefreshScheduled', agent.onFastRefreshScheduled),\n hook.sub('operations', agent.onHookOperations),\n hook.sub('traceUpdates', agent.onTraceUpdates),\n\n // TODO Add additional subscriptions required for profiling mode\n ];\n\n const attachRenderer = (id: number, renderer: ReactRenderer) => {\n // only attach if the renderer is compatible with the current version of the backend\n if (!isMatchingRender(renderer.reconcilerVersion || renderer.version)) {\n return;\n }\n let rendererInterface = hook.rendererInterfaces.get(id);\n\n // Inject any not-yet-injected renderers (if we didn't reload-and-profile)\n if (rendererInterface == null) {\n if (typeof renderer.findFiberByHostInstance === 'function') {\n // react-reconciler v16+\n rendererInterface = attach(hook, id, renderer, global);\n } else if (renderer.ComponentTree) {\n // react-dom v15\n rendererInterface = attachLegacy(hook, id, renderer, global);\n } else {\n // Older react-dom or other unsupported renderer version\n }\n\n if (rendererInterface != null) {\n hook.rendererInterfaces.set(id, rendererInterface);\n }\n }\n\n // Notify the DevTools frontend about new renderers.\n // This includes any that were attached early (via __REACT_DEVTOOLS_ATTACH__).\n if (rendererInterface != null) {\n hook.emit('renderer-attached', {\n id,\n renderer,\n rendererInterface,\n });\n } else {\n hook.emit('unsupported-renderer-version', id);\n }\n };\n\n // Connect renderers that have already injected themselves.\n hook.renderers.forEach((renderer, id) => {\n attachRenderer(id, renderer);\n });\n\n // Connect any new renderers that injected themselves.\n subs.push(\n hook.sub(\n 'renderer',\n ({id, renderer}: {id: number, renderer: ReactRenderer, ...}) => {\n attachRenderer(id, renderer);\n },\n ),\n );\n\n hook.emit('react-devtools', agent);\n hook.reactDevtoolsAgent = agent;\n const onAgentShutdown = () => {\n subs.forEach(fn => fn());\n hook.rendererInterfaces.forEach(rendererInterface => {\n rendererInterface.cleanup();\n });\n hook.reactDevtoolsAgent = null;\n };\n agent.addListener('shutdown', onAgentShutdown);\n subs.push(() => {\n agent.removeListener('shutdown', onAgentShutdown);\n });\n\n return () => {\n subs.forEach(fn => fn());\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {BoxStyle} from './types';\n\n/**\n * This mirrors react-native/Libraries/Inspector/resolveBoxStyle.js (but without RTL support).\n *\n * Resolve a style property into it's component parts, e.g.\n *\n * resolveBoxStyle('margin', {margin: 5, marginBottom: 10})\n * -> {top: 5, left: 5, right: 5, bottom: 10}\n */\nexport default function resolveBoxStyle(\n prefix: string,\n style: Object,\n): BoxStyle | null {\n let hasParts = false;\n const result = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n\n const styleForAll = style[prefix];\n if (styleForAll != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const key of Object.keys(result)) {\n result[key] = styleForAll;\n }\n hasParts = true;\n }\n\n const styleForHorizontal = style[prefix + 'Horizontal'];\n if (styleForHorizontal != null) {\n result.left = styleForHorizontal;\n result.right = styleForHorizontal;\n hasParts = true;\n } else {\n const styleForLeft = style[prefix + 'Left'];\n if (styleForLeft != null) {\n result.left = styleForLeft;\n hasParts = true;\n }\n\n const styleForRight = style[prefix + 'Right'];\n if (styleForRight != null) {\n result.right = styleForRight;\n hasParts = true;\n }\n\n const styleForEnd = style[prefix + 'End'];\n if (styleForEnd != null) {\n // TODO RTL support\n result.right = styleForEnd;\n hasParts = true;\n }\n const styleForStart = style[prefix + 'Start'];\n if (styleForStart != null) {\n // TODO RTL support\n result.left = styleForStart;\n hasParts = true;\n }\n }\n\n const styleForVertical = style[prefix + 'Vertical'];\n if (styleForVertical != null) {\n result.bottom = styleForVertical;\n result.top = styleForVertical;\n hasParts = true;\n } else {\n const styleForBottom = style[prefix + 'Bottom'];\n if (styleForBottom != null) {\n result.bottom = styleForBottom;\n hasParts = true;\n }\n\n const styleForTop = style[prefix + 'Top'];\n if (styleForTop != null) {\n result.top = styleForTop;\n hasParts = true;\n }\n }\n\n return hasParts ? result : null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport resolveBoxStyle from './resolveBoxStyle';\nimport isArray from 'react-devtools-shared/src/isArray';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {RendererID} from '../types';\nimport type {StyleAndLayout} from './types';\n\nexport type ResolveNativeStyle = (stylesheetID: any) => ?Object;\nexport type SetupNativeStyleEditor = typeof setupNativeStyleEditor;\n\nexport default function setupNativeStyleEditor(\n bridge: BackendBridge,\n agent: Agent,\n resolveNativeStyle: ResolveNativeStyle,\n validAttributes?: $ReadOnlyArray | null,\n) {\n bridge.addListener(\n 'NativeStyleEditor_measure',\n ({id, rendererID}: {id: number, rendererID: RendererID}) => {\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID);\n },\n );\n\n bridge.addListener(\n 'NativeStyleEditor_renameAttribute',\n ({\n id,\n rendererID,\n oldName,\n newName,\n value,\n }: {\n id: number,\n rendererID: RendererID,\n oldName: string,\n newName: string,\n value: string,\n }) => {\n renameStyle(agent, id, rendererID, oldName, newName, value);\n setTimeout(() =>\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID),\n );\n },\n );\n\n bridge.addListener(\n 'NativeStyleEditor_setValue',\n ({\n id,\n rendererID,\n name,\n value,\n }: {\n id: number,\n rendererID: number,\n name: string,\n value: string,\n }) => {\n setStyle(agent, id, rendererID, name, value);\n setTimeout(() =>\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID),\n );\n },\n );\n\n bridge.send('isNativeStyleEditorSupported', {\n isSupported: true,\n validAttributes,\n });\n}\n\nconst EMPTY_BOX_STYLE = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n};\n\nconst componentIDToStyleOverrides: Map = new Map();\n\nfunction measureStyle(\n agent: Agent,\n bridge: BackendBridge,\n resolveNativeStyle: ResolveNativeStyle,\n id: number,\n rendererID: RendererID,\n) {\n const data = agent.getInstanceAndStyle({id, rendererID});\n if (!data || !data.style) {\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: null,\n style: null,\n }: StyleAndLayout),\n );\n return;\n }\n\n const {instance, style} = data;\n\n let resolvedStyle = resolveNativeStyle(style);\n\n // If it's a host component we edited before, amend styles.\n const styleOverrides = componentIDToStyleOverrides.get(id);\n if (styleOverrides != null) {\n resolvedStyle = Object.assign({}, resolvedStyle, styleOverrides);\n }\n\n if (!instance || typeof instance.measure !== 'function') {\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: null,\n style: resolvedStyle || null,\n }: StyleAndLayout),\n );\n return;\n }\n\n instance.measure((x, y, width, height, left, top) => {\n // RN Android sometimes returns undefined here. Don't send measurements in this case.\n // https://github.com/jhen0409/react-native-debugger/issues/84#issuecomment-304611817\n if (typeof x !== 'number') {\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: null,\n style: resolvedStyle || null,\n }: StyleAndLayout),\n );\n return;\n }\n const margin =\n (resolvedStyle != null && resolveBoxStyle('margin', resolvedStyle)) ||\n EMPTY_BOX_STYLE;\n const padding =\n (resolvedStyle != null && resolveBoxStyle('padding', resolvedStyle)) ||\n EMPTY_BOX_STYLE;\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: {\n x,\n y,\n width,\n height,\n left,\n top,\n margin,\n padding,\n },\n style: resolvedStyle || null,\n }: StyleAndLayout),\n );\n });\n}\n\nfunction shallowClone(object: Object): Object {\n const cloned: {[string]: $FlowFixMe} = {};\n for (const n in object) {\n cloned[n] = object[n];\n }\n return cloned;\n}\n\nfunction renameStyle(\n agent: Agent,\n id: number,\n rendererID: RendererID,\n oldName: string,\n newName: string,\n value: string,\n): void {\n const data = agent.getInstanceAndStyle({id, rendererID});\n if (!data || !data.style) {\n return;\n }\n\n const {instance, style} = data;\n\n const newStyle = newName\n ? {[oldName]: undefined, [newName]: value}\n : {[oldName]: undefined};\n\n let customStyle;\n\n // TODO It would be nice if the renderer interface abstracted this away somehow.\n if (instance !== null && typeof instance.setNativeProps === 'function') {\n // In the case of a host component, we need to use setNativeProps().\n // Remember to \"correct\" resolved styles when we read them next time.\n const styleOverrides = componentIDToStyleOverrides.get(id);\n if (!styleOverrides) {\n componentIDToStyleOverrides.set(id, newStyle);\n } else {\n Object.assign(styleOverrides, newStyle);\n }\n // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n instance.setNativeProps({style: newStyle});\n } else if (isArray(style)) {\n const lastIndex = style.length - 1;\n if (typeof style[lastIndex] === 'object' && !isArray(style[lastIndex])) {\n customStyle = shallowClone(style[lastIndex]);\n delete customStyle[oldName];\n if (newName) {\n customStyle[newName] = value;\n } else {\n customStyle[oldName] = undefined;\n }\n\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style', lastIndex],\n value: customStyle,\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: style.concat([newStyle]),\n });\n }\n } else if (typeof style === 'object') {\n customStyle = shallowClone(style);\n delete customStyle[oldName];\n if (newName) {\n customStyle[newName] = value;\n } else {\n customStyle[oldName] = undefined;\n }\n\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: customStyle,\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: [style, newStyle],\n });\n }\n\n agent.emit('hideNativeHighlight');\n}\n\nfunction setStyle(\n agent: Agent,\n id: number,\n rendererID: RendererID,\n name: string,\n value: string,\n) {\n const data = agent.getInstanceAndStyle({id, rendererID});\n if (!data || !data.style) {\n return;\n }\n\n const {instance, style} = data;\n const newStyle = {[name]: value};\n\n // TODO It would be nice if the renderer interface abstracted this away somehow.\n if (instance !== null && typeof instance.setNativeProps === 'function') {\n // In the case of a host component, we need to use setNativeProps().\n // Remember to \"correct\" resolved styles when we read them next time.\n const styleOverrides = componentIDToStyleOverrides.get(id);\n if (!styleOverrides) {\n componentIDToStyleOverrides.set(id, newStyle);\n } else {\n Object.assign(styleOverrides, newStyle);\n }\n // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n instance.setNativeProps({style: newStyle});\n } else if (isArray(style)) {\n const lastLength = style.length - 1;\n if (typeof style[lastLength] === 'object' && !isArray(style[lastLength])) {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style', lastLength, name],\n value,\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: style.concat([newStyle]),\n });\n }\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: [style, newStyle],\n });\n }\n\n agent.emit('hideNativeHighlight');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {ConsolePatchSettings} from 'react-devtools-shared/src/backend/types';\nimport {writeConsolePatchSettingsToWindow} from 'react-devtools-shared/src/backend/console';\nimport {castBool, castBrowserTheme} from 'react-devtools-shared/src/utils';\n\n// Note: all keys should be optional in this type, because users can use newer\n// versions of React DevTools with older versions of React Native, and the object\n// provided by React Native may not include all of this type's fields.\nexport type DevToolsSettingsManager = {\n getConsolePatchSettings: ?() => string,\n setConsolePatchSettings: ?(key: string) => void,\n};\n\nexport function initializeUsingCachedSettings(\n devToolsSettingsManager: DevToolsSettingsManager,\n) {\n initializeConsolePatchSettings(devToolsSettingsManager);\n}\n\nfunction initializeConsolePatchSettings(\n devToolsSettingsManager: DevToolsSettingsManager,\n) {\n if (devToolsSettingsManager.getConsolePatchSettings == null) {\n return;\n }\n const consolePatchSettingsString =\n devToolsSettingsManager.getConsolePatchSettings();\n if (consolePatchSettingsString == null) {\n return;\n }\n const parsedConsolePatchSettings = parseConsolePatchSettings(\n consolePatchSettingsString,\n );\n if (parsedConsolePatchSettings == null) {\n return;\n }\n writeConsolePatchSettingsToWindow(parsedConsolePatchSettings);\n}\n\nfunction parseConsolePatchSettings(\n consolePatchSettingsString: string,\n): ?ConsolePatchSettings {\n const parsedValue = JSON.parse(consolePatchSettingsString ?? '{}');\n const {\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n } = parsedValue;\n return {\n appendComponentStack: castBool(appendComponentStack) ?? true,\n breakOnConsoleErrors: castBool(breakOnConsoleErrors) ?? false,\n showInlineWarningsAndErrors: castBool(showInlineWarningsAndErrors) ?? true,\n hideConsoleLogsInStrictMode: castBool(hideConsoleLogsInStrictMode) ?? false,\n browserTheme: castBrowserTheme(browserTheme) ?? 'dark',\n };\n}\n\nexport function cacheConsolePatchSettings(\n devToolsSettingsManager: DevToolsSettingsManager,\n value: ConsolePatchSettings,\n): void {\n if (devToolsSettingsManager.setConsolePatchSettings == null) {\n return;\n }\n devToolsSettingsManager.setConsolePatchSettings(JSON.stringify(value));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport Bridge from 'react-devtools-shared/src/bridge';\nimport {installHook} from 'react-devtools-shared/src/hook';\nimport {initBackend} from 'react-devtools-shared/src/backend';\nimport {installConsoleFunctionsToWindow} from 'react-devtools-shared/src/backend/console';\nimport {__DEBUG__} from 'react-devtools-shared/src/constants';\nimport setupNativeStyleEditor from 'react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor';\nimport {getDefaultComponentFilters} from 'react-devtools-shared/src/utils';\nimport {\n initializeUsingCachedSettings,\n cacheConsolePatchSettings,\n type DevToolsSettingsManager,\n} from './cachedSettings';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {ComponentFilter} from 'react-devtools-shared/src/frontend/types';\nimport type {DevToolsHook} from 'react-devtools-shared/src/backend/types';\nimport type {ResolveNativeStyle} from 'react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor';\n\ntype ConnectOptions = {\n host?: string,\n nativeStyleEditorValidAttributes?: $ReadOnlyArray,\n port?: number,\n useHttps?: boolean,\n resolveRNStyle?: ResolveNativeStyle,\n retryConnectionDelay?: number,\n isAppActive?: () => boolean,\n websocket?: ?WebSocket,\n devToolsSettingsManager: ?DevToolsSettingsManager,\n ...\n};\n\n// Install a global variable to allow patching console early (during injection).\n// This provides React Native developers with components stacks even if they don't run DevTools.\ninstallConsoleFunctionsToWindow();\ninstallHook(window);\n\nconst hook: ?DevToolsHook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\nlet savedComponentFilters: Array =\n getDefaultComponentFilters();\n\nfunction debug(methodName: string, ...args: Array) {\n if (__DEBUG__) {\n console.log(\n `%c[core/backend] %c${methodName}`,\n 'color: teal; font-weight: bold;',\n 'font-weight: bold;',\n ...args,\n );\n }\n}\n\nexport function connectToDevTools(options: ?ConnectOptions) {\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return;\n }\n const {\n host = 'localhost',\n nativeStyleEditorValidAttributes,\n useHttps = false,\n port = 8097,\n websocket,\n resolveRNStyle = (null: $FlowFixMe),\n retryConnectionDelay = 2000,\n isAppActive = () => true,\n devToolsSettingsManager,\n } = options || {};\n\n const protocol = useHttps ? 'wss' : 'ws';\n let retryTimeoutID: TimeoutID | null = null;\n\n function scheduleRetry() {\n if (retryTimeoutID === null) {\n // Two seconds because RN had issues with quick retries.\n retryTimeoutID = setTimeout(\n () => connectToDevTools(options),\n retryConnectionDelay,\n );\n }\n }\n\n if (devToolsSettingsManager != null) {\n try {\n initializeUsingCachedSettings(devToolsSettingsManager);\n } catch (e) {\n // If we call a method on devToolsSettingsManager that throws, or if\n // is invalid data read out, don't throw and don't interrupt initialization\n console.error(e);\n }\n }\n\n if (!isAppActive()) {\n // If the app is in background, maybe retry later.\n // Don't actually attempt to connect until we're in foreground.\n scheduleRetry();\n return;\n }\n\n let bridge: BackendBridge | null = null;\n\n const messageListeners = [];\n const uri = protocol + '://' + host + ':' + port;\n\n // If existing websocket is passed, use it.\n // This is necessary to support our custom integrations.\n // See D6251744.\n const ws = websocket ? websocket : new window.WebSocket(uri);\n ws.onclose = handleClose;\n ws.onerror = handleFailed;\n ws.onmessage = handleMessage;\n ws.onopen = function () {\n bridge = new Bridge({\n listen(fn) {\n messageListeners.push(fn);\n return () => {\n const index = messageListeners.indexOf(fn);\n if (index >= 0) {\n messageListeners.splice(index, 1);\n }\n };\n },\n send(event: string, payload: any, transferable?: Array) {\n if (ws.readyState === ws.OPEN) {\n if (__DEBUG__) {\n debug('wall.send()', event, payload);\n }\n\n ws.send(JSON.stringify({event, payload}));\n } else {\n if (__DEBUG__) {\n debug(\n 'wall.send()',\n 'Shutting down bridge because of closed WebSocket connection',\n );\n }\n\n if (bridge !== null) {\n bridge.shutdown();\n }\n\n scheduleRetry();\n }\n },\n });\n bridge.addListener(\n 'updateComponentFilters',\n (componentFilters: Array) => {\n // Save filter changes in memory, in case DevTools is reloaded.\n // In that case, the renderer will already be using the updated values.\n // We'll lose these in between backend reloads but that can't be helped.\n savedComponentFilters = componentFilters;\n },\n );\n\n if (devToolsSettingsManager != null && bridge != null) {\n bridge.addListener('updateConsolePatchSettings', consolePatchSettings =>\n cacheConsolePatchSettings(\n devToolsSettingsManager,\n consolePatchSettings,\n ),\n );\n }\n\n // The renderer interface doesn't read saved component filters directly,\n // because they are generally stored in localStorage within the context of the extension.\n // Because of this it relies on the extension to pass filters.\n // In the case of the standalone DevTools being used with a website,\n // saved filters are injected along with the backend script tag so we shouldn't override them here.\n // This injection strategy doesn't work for React Native though.\n // Ideally the backend would save the filters itself, but RN doesn't provide a sync storage solution.\n // So for now we just fall back to using the default filters...\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ == null) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n bridge.send('overrideComponentFilters', savedComponentFilters);\n }\n\n // TODO (npm-packages) Warn if \"isBackendStorageAPISupported\"\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n const agent = new Agent(bridge);\n agent.addListener('shutdown', () => {\n // If we received 'shutdown' from `agent`, we assume the `bridge` is already shutting down,\n // and that caused the 'shutdown' event on the `agent`, so we don't need to call `bridge.shutdown()` here.\n hook.emit('shutdown');\n });\n\n initBackend(hook, agent, window);\n\n // Setup React Native style editor if the environment supports it.\n if (resolveRNStyle != null || hook.resolveRNStyle != null) {\n setupNativeStyleEditor(\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n bridge,\n agent,\n ((resolveRNStyle || hook.resolveRNStyle: any): ResolveNativeStyle),\n nativeStyleEditorValidAttributes ||\n hook.nativeStyleEditorValidAttributes ||\n null,\n );\n } else {\n // Otherwise listen to detect if the environment later supports it.\n // For example, Flipper does not eagerly inject these values.\n // Instead it relies on the React Native Inspector to lazily inject them.\n let lazyResolveRNStyle;\n let lazyNativeStyleEditorValidAttributes;\n\n const initAfterTick = () => {\n if (bridge !== null) {\n setupNativeStyleEditor(\n bridge,\n agent,\n lazyResolveRNStyle,\n lazyNativeStyleEditorValidAttributes,\n );\n }\n };\n\n if (!hook.hasOwnProperty('resolveRNStyle')) {\n Object.defineProperty(\n hook,\n 'resolveRNStyle',\n ({\n enumerable: false,\n get() {\n return lazyResolveRNStyle;\n },\n set(value: $FlowFixMe) {\n lazyResolveRNStyle = value;\n initAfterTick();\n },\n }: Object),\n );\n }\n if (!hook.hasOwnProperty('nativeStyleEditorValidAttributes')) {\n Object.defineProperty(\n hook,\n 'nativeStyleEditorValidAttributes',\n ({\n enumerable: false,\n get() {\n return lazyNativeStyleEditorValidAttributes;\n },\n set(value: $FlowFixMe) {\n lazyNativeStyleEditorValidAttributes = value;\n initAfterTick();\n },\n }: Object),\n );\n }\n }\n };\n\n function handleClose() {\n if (__DEBUG__) {\n debug('WebSocket.onclose');\n }\n\n if (bridge !== null) {\n bridge.emit('shutdown');\n }\n\n scheduleRetry();\n }\n\n function handleFailed() {\n if (__DEBUG__) {\n debug('WebSocket.onerror');\n }\n\n scheduleRetry();\n }\n\n function handleMessage(event: MessageEvent) {\n let data;\n try {\n if (typeof event.data === 'string') {\n data = JSON.parse(event.data);\n if (__DEBUG__) {\n debug('WebSocket.onmessage', data);\n }\n } else {\n throw Error();\n }\n } catch (e) {\n console.error(\n '[React DevTools] Failed to parse JSON: ' + (event.data: any),\n );\n return;\n }\n messageListeners.forEach(fn => {\n try {\n fn(data);\n } catch (error) {\n // jsc doesn't play so well with tracebacks that go into eval'd code,\n // so the stack trace here will stop at the `eval()` call. Getting the\n // message that caused the error is the best we can do for now.\n console.log('[React DevTools] Error calling listener', data);\n console.log('error:', error);\n throw error;\n }\n });\n }\n}\n"],"names":["k","require","p","q","Object","assign","w","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","x","y","z","a","Map","A","useContext","_currentValue","useState","useReducer","c","useRef","useCacheRefresh","useLayoutEffect","useInsertionEffect","useEffect","useImperativeHandle","useDebugValue","useCallback","useMemo","useMemoCache","b","e","length","g","set","primitive","parse","stackError","B","C","next","use","Error","readContext","push","value","memoizedState","current","useTransition","useSyncExternalStore","useDeferredValue","useId","D","get","hasOwnProperty","name","E","Proxy","F","G","source","h","r","H","lastIndexOf","I","t","v","u","d","l","m","n","f","functionName","slice","pop","id","isStateEditable","subHooks","hookSource","lineNumber","columnNumber","fileName","J","splice","map","K","cause","L","arguments","ReactCurrentDispatcher","M","forEach","exports","inspectHooks","inspectHooksOfFiber","tag","type","memoizedProps","elementType","defaultProps","_context","has","return","render","ref","process","env","NODE_ENV","module","Symbol","for","$$typeof","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","aa","ba","ca","da","iterator","ea","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","props","context","refs","updater","prototype","isReactComponent","setState","forceUpdate","constructor","isPureReactComponent","Array","isArray","N","key","__self","__source","O","call","children","_owner","fa","P","escape","replace","Q","R","toString","S","done","String","keys","join","T","ha","_status","_result","then","default","U","ia","WeakMap","V","s","o","W","X","useOptimistic","Y","transition","Z","ja","ReactCurrentCache","ReactCurrentBatchConfig","ReactCurrentOwner","ContextRegistry","Children","apply","count","toArray","only","Component","PureComponent","cache","getCacheForType","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createElement","createFactory","bind","createRef","createServerContext","experimental_useEffectEvent","useEffectEvent","experimental_useOptimistic","forwardRef","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_Cache","unstable_DebugTracingMode","unstable_Offscreen","unstable_SuspenseList","unstable_act","unstable_getCacheForType","unstable_getCacheSignal","getCacheSignal","AbortController","abort","signal","unstable_postpone","unstable_useCacheRefresh","unstable_useMemoCache","version","root","factory","define","amd","ErrorStackParser","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser$$parse","error","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","extractLocation","ErrorStackParser$$extractLocation","urlLike","indexOf","regExp","parts","exec","undefined","ErrorStackParser$$parseV8OrIE","filtered","split","filter","line","sanitizedLine","location","tokens","locationParts","ErrorStackParser$$parseFFOrSafari","functionNameRegex","matches","ErrorStackParser$$parseOpera","message","parseOpera9","parseOpera10","parseOpera11","ErrorStackParser$$parseOpera9","lineRE","lines","result","i","len","ErrorStackParser$$parseOpera10","ErrorStackParser$$parseOpera11","functionCall","shift","argsRaw","args","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","Function","objectProto","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","thisArg","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","throttle","isObjectLike","isSymbol","other","valueOf","isBinary","test","LRUCache","util","Yallist","hasSymbol","_nodeLRUCacheForceNoSymbol","makeSymbol","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","naiveLength","Infinity","lc","stale","maxAge","dispose","noDisposeOnSet","reset","defineProperty","mL","trim","enumerable","allowStale","mA","lC","hit","rforEach","fn","thisp","walker","tail","prev","forEachStep","node","isStale","del","head","values","dump","dumpLru","inspect","opts","str","extras","as","didFirst","item","val","Entry","unshift","peek","load","arr","expiresAt","prune","doUse","unshiftNode","diff","delete","removeNode","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","nextTick","Item","array","title","browser","argv","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","npm_package_name","npm_lifecycle_script","TEST_PSEUDOMAP","PseudoMap","clear","kv","_data","find","res","_index","size","data","create","configurable","writable","entries","same","_isNumber","isNaN","parseFloat","isFinite","_capitalize","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","arrayProps","obj","getArgs","setArgs","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","StackFrame$$fromString","argsStartIndex","argsEndIndex","locationString","Boolean","j","Number","inherits","ctor","superCtor","super_","TempCtor","isBuffer","arg","copy","fill","readUInt8","formatRegExp","format","isString","objects","JSON","stringify","_","isNull","deprecate","msg","isUndefined","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugs","debugEnviron","debuglog","NODE_DEBUG","RegExp","pid","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","idx","recurseTimes","isFunction","ret","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","output","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","getOwnPropertyDescriptor","substr","numLinesEst","reduce","cur","ar","isNullOrUndefined","re","isPrimitive","pad","months","timestamp","getHours","getMinutes","getSeconds","getDate","getMonth","log","origin","add","prop","Node","list","pushNode","forEachReverse","getReverse","mapReverse","initial","acc","reduceReverse","toArrayReverse","from","to","sliceReverse","reverse","EventEmitter","event","listener","listenersMap","index","didThrow","caughtError","clonedListeners","CHROME_WEBSTORE_EXTENSION_ID","INTERNAL_EXTENSION_ID","LOCAL_EXTENSION_ID","__DEBUG__","__PERFORMANCE_PROFILE__","TREE_OPERATION_ADD","TREE_OPERATION_REMOVE","TREE_OPERATION_REORDER_CHILDREN","TREE_OPERATION_UPDATE_TREE_BASE_DURATION","TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS","TREE_OPERATION_REMOVE_ROOT","TREE_OPERATION_SET_SUBTREE_MODE","PROFILING_FLAG_BASIC_SUPPORT","PROFILING_FLAG_TIMELINE_SUPPORT","LOCAL_STORAGE_DEFAULT_TAB_KEY","LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY","SESSION_STORAGE_LAST_SELECTION_KEY","LOCAL_STORAGE_OPEN_IN_EDITOR_URL","LOCAL_STORAGE_OPEN_IN_EDITOR_URL_PRESET","LOCAL_STORAGE_PARSE_HOOK_NAMES_KEY","SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY","SESSION_STORAGE_RELOAD_AND_PROFILE_KEY","LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS","LOCAL_STORAGE_BROWSER_THEME","LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY","LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY","LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY","LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE","LOCAL_STORAGE_SUPPORTS_PROFILING_KEY","PROFILER_EXPORT_VERSION","localStorageGetItem","localStorage","getItem","localStorageRemoveItem","removeItem","localStorageSetItem","setItem","sessionStorageGetItem","sessionStorage","sessionStorageRemoveItem","sessionStorageSetItem","simpleIsEqual","resultFn","isEqual","lastResult","calledOnce","isNewArgEqualToLast","newArg","_len","newArgs","_key","every","getOwnerWindow","ownerDocument","defaultView","getOwnerIframe","nodeWindow","frameElement","getBoundingClientRectWithBorderOffset","dimensions","getElementDimensions","mergeRectOffsets","getBoundingClientRect","top","borderTop","left","borderLeft","bottom","borderBottom","right","borderRight","width","height","rects","previousRect","rect","getNestedBoundingClientRect","boundaryWindow","ownerIframe","currentIframe","onlyOneMore","domElement","calculatedStyle","window","getComputedStyle","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","OverlayRect","doc","container","border","padding","content","borderColor","overlayStyles","backgroundColor","background","margin","pointerEvents","position","zIndex","appendChild","parentNode","removeChild","box","dims","boxWrap","OverlayTip","tip","display","flexFlow","borderRadius","fontFamily","fontWeight","fontSize","whiteSpace","nameSpan","color","dimSpan","textContent","round","bounds","tipRect","tipPos","findTipPos","Overlay","agent","currentWindow","__REACT_DEVTOOLS_TARGET_WINDOW__","tipBoundsWindow","document","body","remove","nodes","elements","nodeType","ELEMENT_NODE","outerBox","POSITIVE_INFINITY","NEGATIVE_INFINITY","element","update","nodeName","toLowerCase","rendererInterface","getBestMatchingRendererInterface","getFiberIDForNative","ownerName","getDisplayNameForFiberID","updateText","tipBounds","documentElement","updatePosition","scrollY","scrollX","innerHeight","innerWidth","tipSize","tipHeight","tipWidth","what","borderStyle","SHOW_DURATION","timeoutID","overlay","hideOverlay","showOverlay","componentName","hideAfterTimeout","memoize","Agent","iframesListeningTo","Set","setupHighlighter","bridge","clearNativeElementHighlight","highlightNativeElement","stopInspectingNative","startInspectingNative","registerListenersOnWindow","addEventListener","onClick","onMouseEvent","onPointerDown","onPointerMove","onPointerUp","removeListenersOnWindow","frame","contentWindow","removeEventListener","displayName","openNativeElementsPanel","rendererID","scrollIntoView","renderer","rendererInterfaces","warn","hasFiberWithId","findNativeNodesForFiberID","block","inline","__REACT_DEVTOOLS_GLOBAL_HOOK__","$0","send","preventDefault","stopPropagation","selectFiberForNode","getEventTarget","lastHoveredNode","target","tagName","iframe","getIDForNode","composed","composedPath","OUTLINE_COLOR","COLORS","canvas","draw","nodeToData","nodesToDraw","iterateNodes","initialize","canvasFlow","getContext","clearRect","drawBorder","execute","colorIndex","lineWidth","strokeStyle","strokeRect","setLineDash","destroy","cssText","insertBefore","firstChild","destroyCanvas","DISPLAY_DURATION","MAX_DISPLAY_DURATION","REMEASUREMENT_AFTER_DURATION","getCurrentTime","performance","drawAnimationFrameID","isEnabled","redrawTimeoutID","injectedAgent","traceUpdates","toggleEnabled","cancelAnimationFrame","lastMeasuredAt","measureNode","expirationTime","requestAnimationFrame","prepareToDraw","earliestExpiration","MAX_VALUE","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_SERVER_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_SCOPE_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_OFFSCREEN_TYPE","REACT_LEGACY_HIDDEN_TYPE","REACT_CACHE_TYPE","REACT_TRACING_MARKER_TYPE","REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED","REACT_MEMO_CACHE_SENTINEL","REACT_POSTPONE_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ElementTypeClass","ElementTypeContext","ElementTypeFunction","ElementTypeForwardRef","ElementTypeHostComponent","ElementTypeMemo","ElementTypeOtherOrUnknown","ElementTypeProfiler","ElementTypeRoot","ElementTypeSuspense","ElementTypeSuspenseList","ElementTypeTracingMarker","ComponentFilterElementType","ComponentFilterDisplayName","ComponentFilterLocation","ComponentFilterHOC","LRU","TracingMarker","meta","cachedDisplayNames","encodedStringCache","alphaSortKeys","getAllEnumerableKeys","currentKeys","getOwnPropertySymbols","descriptors","getOwnPropertyDescriptors","getPrototypeOf","getWrappedDisplayName","outerType","innerType","wrapperName","fallbackName","getDisplayName","nameFromCache","uidCounter","getUID","utfDecodeString","string","char","fromCodePoint","surrogatePairToCodePoint","charCode1","charCode2","utfEncodeString","cached","encoded","charCode","charCodeAt","printOperationsArray","operations","rootID","logs","stringTable","stringTableSize","stringTableEnd","nextLength","nextString","operation","parentID","displayNameStringID","removeLength","removeIndex","mode","numChildren","numErrors","numWarnings","getDefaultComponentFilters","getSavedComponentFilters","raw","setSavedComponentFilters","componentFilters","parseBool","castBool","castBrowserTheme","getAppendComponentStack","getBreakOnConsoleErrors","getHideConsoleLogsInStrictMode","getShowInlineWarningsAndErrors","getDefaultOpenInEditorURL","EDITOR_URL","getOpenInEditorURL","separateDisplayNameAndHOCs","hocDisplayNames","shallowDiffers","attribute","getInObject","object","path","reduced","attr","deletePathInObject","last","parent","renamePathInObject","oldPath","newPath","lastOld","lastNew","setInObject","getDataType","HTMLElement","ArrayBuffer","isView","toStringValue","isPlainObject","getDisplayNameForReactElement","MAX_PREVIEW_STRING_LENGTH","truncateForDisplay","formatDataForPreview","showFormattedValue","preview_long","preview_short","byteLength","buffer","formatted","shortName","entryOrEntries","toStringTag","sort","objectPrototype","objectParentPrototype","inspectable","inspected","readonly","unserializable","LEVEL_THRESHOLD","createDehydrated","cleaned","dehydrated","dehydrate","isPathAllowed","level","isPathAllowedCheck","unserializableValue","keyAsString","fillInPath","unserializablePath","isMatch","upgradeUnserializable","hydrate","NaN","replaced","replacement","destination","defineProperties","isArrayImpl","compareVersions","FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER","hasAssignedBackend","gte","cleanForBridge","cleanedPaths","unserializablePaths","cleanedData","copyWithDelete","updated","copyWithRename","oldKey","newKey","copyWithSet","getEffectDurations","effectDuration","passiveEffectDuration","hostRoot","stateNode","serializeToString","formatWithStyles","inputArgs","REGEXP","firstArg","formatStr","elem","formatting","isInteger","maybeMessage","escaped","ptn","flag","isSynchronousXHRSupported","featurePolicy","allowsFeature","gt","CONCURRENT_MODE_NUMBER","CONCURRENT_MODE_SYMBOL_STRING","CONTEXT_NUMBER","CONTEXT_SYMBOL_STRING","SERVER_CONTEXT_SYMBOL_STRING","DEPRECATED_ASYNC_MODE_SYMBOL_STRING","ELEMENT_NUMBER","ELEMENT_SYMBOL_STRING","DEBUG_TRACING_MODE_NUMBER","DEBUG_TRACING_MODE_SYMBOL_STRING","FORWARD_REF_NUMBER","FORWARD_REF_SYMBOL_STRING","FRAGMENT_NUMBER","FRAGMENT_SYMBOL_STRING","LAZY_NUMBER","LAZY_SYMBOL_STRING","MEMO_NUMBER","MEMO_SYMBOL_STRING","PORTAL_NUMBER","PORTAL_SYMBOL_STRING","PROFILER_NUMBER","PROFILER_SYMBOL_STRING","PROVIDER_NUMBER","PROVIDER_SYMBOL_STRING","SCOPE_NUMBER","SCOPE_SYMBOL_STRING","STRICT_MODE_NUMBER","STRICT_MODE_SYMBOL_STRING","SUSPENSE_NUMBER","SUSPENSE_SYMBOL_STRING","SUSPENSE_LIST_NUMBER","SUSPENSE_LIST_SYMBOL_STRING","SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED_SYMBOL_STRING","consoleManagedByDevToolsDuringStrictMode","enableLogger","enableStyleXFeatures","isInternalFacebookBuild","is","objectIs","cachedStyleNameToValueMap","getStyleXData","sources","resolvedStyles","crawlData","entry","crawlObjectProperties","fromEntries","propertyValue","getPropertyValueForStyleName","nestedStyle","styleName","styleSheetIndex","styleSheets","styleSheet","rules","cssRules","_e","ruleIndex","CSSStyleRule","rule","selectorText","startsWith","property","getPropertyValue","CHANGE_LOG_URL","UNSUPPORTED_VERSION_URL","REACT_DEVTOOLS_WORKPLACE_URL","THEME_STYLES","light","dark","compact","comfortable","COMFORTABLE_LINE_HEIGHT","COMPACT_LINE_HEIGHT","REACT_TOTAL_NUM_LANES","SCHEDULING_PROFILER_VERSION","SNAPSHOT_MAX_HEIGHT","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","__reactDisabledLog","disableLogs","info","group","groupCollapsed","groupEnd","reenableLogs","prefix","describeBuiltInComponentFrame","ownerFn","reentry","componentFrameCache","__DEV__","PossiblyWeakMap","describeNativeComponentFrame","construct","currentDispatcherRef","control","previousPrepareStackTrace","prepareStackTrace","previousDispatcher","Fake","Reflect","sample","sampleLines","controlLines","syntheticFrame","describeClassComponentFrame","describeFunctionComponentFrame","shouldConstruct","describeUnknownElementTypeFrameInDEV","lazyComponent","payload","init","describeFiber","workTagMap","workInProgress","HostComponent","LazyComponent","SuspenseComponent","SuspenseListComponent","FunctionComponent","IndeterminateComponent","SimpleMemoComponent","ClassComponent","owner","_debugOwner","getStackByFiberInDevAndProd","TIME_OFFSET","performanceTarget","supportsUserTiming","mark","clearMarks","supportsUserTimingV3","CHECK_V3_MARK","markOptions","setPerformanceMock_ONLY_FOR_TESTING","performanceMock","createProfilingHooks","getDisplayNameForFiber","getIsProfiling","getLaneLabelMap","reactVersion","currentBatchUID","currentReactComponentMeasure","currentReactMeasuresStack","currentTimelineData","currentFiberStacks","isProfiling","nextRenderShouldStartNewBatch","getRelativeTime","currentTime","startTime","getInternalModuleRanges","ranges","getTimelineData","laneToLanesArray","lanes","lanesArray","lane","laneToLabelMap","markMetadata","markAndClear","range","startStackFrame","stopStackFrame","labels","markName","recordReactMeasureStarted","reactMeasure","batchUID","duration","batchUIDToMeasuresMap","laneToReactMeasureMap","reactMeasures","recordReactMeasureCompleted","markCommitStarted","markCommitStopped","markComponentRenderStarted","fiber","warning","markComponentRenderStopped","componentMeasures","markComponentLayoutEffectMountStarted","markComponentLayoutEffectMountStopped","markComponentLayoutEffectUnmountStarted","markComponentLayoutEffectUnmountStopped","markComponentPassiveEffectMountStarted","markComponentPassiveEffectMountStopped","markComponentPassiveEffectUnmountStarted","markComponentPassiveEffectUnmountStopped","markComponentErrored","thrownValue","phase","alternate","thrownErrors","wakeableIDs","wakeableID","getWakeableID","wakeable","markComponentSuspended","eventType","suspenseEvent","promiseName","resolution","suspenseEvents","markLayoutEffectsStarted","markLayoutEffectsStopped","markPassiveEffectsStarted","markPassiveEffectsStopped","markRenderStarted","markRenderYielded","markRenderStopped","markRenderScheduled","schedulingEvents","markForceUpdateScheduled","getParentFibers","parents","markStateUpdateScheduled","toggleProfilingStatus","internalModuleSourceToRanges","flamechart","nativeEvents","networkMeasures","otherUserTimingMarks","snapshots","snapshotHeight","fiberStack","componentStack","profilingHooks","patchConsoleUsingWindowValues","registerRenderer","registerRendererWithConsole","patchForStrictMode","patchConsoleForStrictMode","unpatchForStrictMode","unpatchConsoleForStrictMode","getFiberFlags","flags","effectTag","getInternalReactConstants","ReactPriorityLevels","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","NoPriority","StrictModeBits","ReactTypeOfWork","CacheComponent","CoroutineComponent","CoroutineHandlerPhase","DehydratedSuspenseComponent","HostPortal","HostRoot","HostHoistable","HostSingleton","HostText","IncompleteClassComponent","LegacyHiddenComponent","MemoComponent","Mode","OffscreenComponent","ScopeComponent","TracingMarkerComponent","YieldComponent","getTypeSymbol","symbolOrNumber","resolveFiberType","typeSymbol","resolvedType","resolvedContext","fiberRoot","_debugRootType","fiberToIDMap","idToArbitraryFiberMap","attach","hook","reconcilerVersion","injectProfilingHooks","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","scheduleRefresh","setErrorHandler","setSuspenseHandler","scheduleUpdate","supportsTogglingError","supportsTogglingSuspense","response","fibersWithChangedErrorOrWarningCounts","pendingFiberToErrorsMap","pendingFiberToWarningsMap","fiberIDToErrorsMap","fiberIDToWarningsMap","clearErrorsAndWarnings","updateMostRecentlyInspectedElementIfNecessary","flushPendingEvents","clearMessageCountHelper","fiberID","pendingFiberToMessageCountMap","fiberIDToMessageCountMap","clearErrorsForFiberID","clearWarningsForFiberID","mostRecentlyInspectedElement","hasElementUpdatedSinceLastInspected","onErrorOrWarning","maybeID","getFiberIDUnsafe","forceErrorForFiberIDs","debug","fiberMap","messageMap","flushPendingErrorsAndWarningsAfterDelay","parentFiber","extraString","parentDisplayName","maybeParentID","hideElementsWithDisplayNames","hideElementsWithPaths","hideElementsWithTypes","traceUpdatesEnabled","traceUpdatesForNodes","applyComponentFilters","componentFilter","isValid","__REACT_DEVTOOLS_COMPONENT_FILTERS__","updateComponentFilters","getFiberRoots","currentRootID","getOrGenerateFiberID","pushOperation","rootDisplayNameCounter","setRootPseudoKey","mountFiberRecursively","reevaluateErrorsAndWarnings","shouldFilterFiber","_debugSource","getElementTypeForFiber","displayNameRegExp","pathRegExp","idToTreeBaseDurationMap","idToRootMap","didGenerateID","refinedID","getFiberIDThrows","untrackFiberID","untrackFibersSet","untrackFibersTimeoutID","untrackFibers","shouldErrorFiberAlwaysNull","getChangeDescription","prevFiber","nextFiber","didHooksChange","isFirstMount","state","getContextChangedKeys","getChangedKeys","indices","getChangedHooksIndices","hooks","updateContextsForFiber","idToContextsMap","contexts","getContextsForFiber","NO_CONTEXT","legacyContext","modernContext","instance","contextType","dependencies","firstContext","crawlToInitializeContextsMap","child","sibling","prevContexts","nextContexts","prevLegacyContext","prevModernContext","nextLegacyContext","nextModernContext","prevContext","nextContext","memoizedValue","isHookThatCanScheduleUpdate","hookObject","boundHasOwnProperty","getSnapshot","didStatefulHookChange","prevMemoizedState","nextMemoizedState","changedKeys","didFiberRender","PerformedWork","pendingOperations","pendingRealUnmountedIDs","pendingSimulatedUnmountedIDs","pendingOperationsQueue","pendingStringTable","pendingStringTableLength","pendingUnmountedRootID","op","shouldBailoutWithPendingOperations","currentCommitProfilingMetadata","durations","flushOrQueueOperations","flushPendingErrorsAndWarningsAfterDelayTimeoutID","clearPendingErrorsAndWarningsAfterDelay","recordPendingErrorsAndWarnings","countMap","mergeMapsAndGetCountHelper","newCount","messageCountMap","pendingMessageCountMap","refinedMessageCountMap","pendingCount","previousCount","errorCount","warningCount","numUnmountIDs","stringKey","encodedString","getStringID","existingEntry","recordMount","isRoot","hasOwnerMetadata","isProfilingSupported","profilingFlags","displayNamesByRootID","getDisplayNameForRoot","ownerID","keyString","keyStringID","recordProfilingDurations","recordUnmount","isSimulated","trackedPathMatchFiber","setTrackedPath","unsafeID","_debugNeedsRemount","traverseSiblings","traceNearestHostComponentUpdate","mightSiblingsBeOnTrackedPath","updateTrackedPathStateBeforeMount","shouldIncludeInTree","isTimedOut","primaryChildFragment","fallbackChildFragment","fallbackChild","primaryChild","areSuspenseChildrenConditionallyWrapped","updateTrackedPathStateAfterMount","unmountFiberChildrenRecursively","isTimedOutSuspense","actualDuration","treeBaseDuration","convertedTreeBaseDuration","floor","selfDuration","metadata","maxActualDuration","recordChangeDescriptions","changeDescription","changeDescriptions","recordResetChildren","childSet","nextChildren","findReorderedChildrenRecursively","updateFiberRecursively","shouldResetChildren","prevDidTimeout","nextDidTimeOut","nextFiberChild","nextFallbackChildSet","prevFiberChild","prevFallbackChildSet","nextPrimaryChildSet","nextChild","prevChildAtSameIndex","prevChild","hostFibers","findAllCurrentHostFibers","hostFiber","nextChildSet","cleanup","rootSupportsProfiling","memoizedInteractions","flushInitialOperations","localPendingOperationsQueue","trackedPath","mightBeOnTrackedPath","commitTime","profilingStartTime","priorityLevel","updaters","getUpdatersList","memoizedUpdaters","fiberToSerializedElement","handleCommitFiberUnmount","handlePostCommitFiberRoot","handleCommitFiberRoot","formatPriorityLevel","wasMounted","isDehydrated","removeRootPseudoKey","commitProfilingMetadata","rootToCommitProfilingMetadataMap","fibers","findCurrentFiberUsingSlowPathById","err","getFiberForNative","hostInstance","findFiberByHostInstance","findNearestUnfilteredAncestor","assertIsMounted","getNearestMountedFiber","nearestMounted","nextNode","Placement","Hydrating","parentA","parentB","nextParent","didFindChild","prepareViewAttributeSource","isMostRecentlyInspectedElement","$attribute","prepareViewElementSource","$type","getOwnersList","owners","getInstanceAndStyle","isErrorBoundary","getDerivedStateFromError","componentDidCatch","getNearestErrorBoundaryID","inspectElementRaw","usesHooks","showState","canViewSource","shouldHideContext","contextTypes","consumerResolvedContext","currentType","currentTypeSymbol","providerResolvedContext","hasLegacyContext","originalConsoleMethods","method","rootType","errors","warnings","isErrored","targetErrorBoundaryID","DidCapture","plugins","stylex","xstyle","canEditHooks","canEditFunctionProps","canEditHooksAndDeletePaths","canEditHooksAndRenamePaths","canEditFunctionPropsDeletePaths","canEditFunctionPropsRenamePaths","canToggleError","canToggleSuspense","forceFallbackForSuspenseIDs","rendererPackageName","rendererVersion","currentlyInspectedPaths","isMostRecentlyInspectedElementCurrent","mergeInspectedPaths","createIsPathAllowed","secondaryCategory","updateSelectedElement","inspectedElement","$r","storeAsGlobal","getSerializedElementValueByPath","valueToCopy","inspectElement","requestID","forceFullData","responseID","errorType","cleanedInspectedElement","logElementToConsole","supportsGroup","nativeNodes","chrome","navigator","userAgent","deletePath","hookID","pendingProps","renamePath","overrideValueAtPath","initialTreeBaseDurationsMap","initialIDToRootMap","getProfilingData","dataForRoots","commitData","initialTreeBaseDurations","commitProfilingData","commitIndex","fiberActualDurations","fiberSelfDurations","timelineData","rest","batchUIDToMeasuresKeyValueArray","laneToLabelKeyValueArray","laneToReactMeasureKeyValueArray","startProfiling","shouldRecordChangeDescriptions","stopProfiling","shouldErrorFiberAccordingToMap","status","overrideError","forceError","shouldSuspendFiberAlwaysFalse","shouldSuspendFiberAccordingToSet","overrideSuspense","forceFallback","trackedPathMatchDepth","returnFiber","returnAlternate","actualFrame","getPathFrame","expectedFrame","rootPseudoKeys","counter","pseudoKey","preferredDisplayName","fallbackDisplayName","getPathForElement","keyPath","getBestMatchForTrackedPath","isFullMatch","setTraceUpdatesEnabled","OVERRIDE_CONSOLE_METHODS","DIMMED_NODE_CONSOLE_COLOR","PREFIX_REGEX","ROW_COLUMN_NUMBER_REGEX","isStringComponentStack","text","STYLE_DIRECTIVE_REGEX","isStrictModeOverride","getConsoleColor","consoleSettingsRef","browserTheme","LIGHT_MODE_DIMMED_WARNING_COLOR","DARK_MODE_DIMMED_WARNING_COLOR","LIGHT_MODE_DIMMED_ERROR_COLOR","DARK_MODE_DIMMED_ERROR_COLOR","LIGHT_MODE_DIMMED_LOG_COLOR","DARK_MODE_DIMMED_LOG_COLOR","injectedRenderers","targetConsole","targetConsoleMethods","unpatchFn","isNode","dangerous_setTargetConsoleForTesting","targetConsoleForTesting","getCurrentFiber","appendComponentStack","breakOnConsoleErrors","showInlineWarningsAndErrors","hideConsoleLogsInStrictMode","patch","originalMethod","__REACT_DEVTOOLS_ORIGINAL_METHOD__","overrideMethod","shouldAppendWarningStack","lastArg","alreadyHasComponentStack","shouldShowInlineWarningsAndErrors","__REACT_DEVTOOLS_OVERRIDE_METHOD__","unpatch","unpatchForStrictModeFn","overrideConsoleMethods","__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__","__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__","__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__","__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__","__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__","__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__","__REACT_DEVTOOLS_BROWSER_THEME__","writeConsolePatchSettingsToWindow","settings","installConsoleFunctionsToWindow","__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__","BATCH_DURATION","BRIDGE_PROTOCOL","minNpmVersion","maxNpmVersion","currentBridgeProtocol","Bridge","wall","_timeoutID","_messageQueue","_wall","_flush","wasForwarded","_wallUnlisten","listen","_isShutdown","wallUnlisten","setupTraceUpdates","patchConsole","methodName","_rendererInterfaces","_bridge","DEVTOOLS_VERSION","_isProfiling","_persistedSelectionMatch","_persistedSelection","_throttledPersistSelection","_traceUpdatesEnabled","selectNode","_recordChangeDescriptions","selected","prevMatch","nextMatch","prevMatchID","nextMatchID","persistedSelectionString","copyElementPath","getBackendVersion","getBridgeProtocol","getProfilingStatus","reloadAndProfile","syncSelectionFromNativeElementsPanel","shutdown","updateConsolePatchSettings","viewAttributeSource","viewElementSource","overrideContext","overrideState","isBackendStorageAPISupported","bestMatch","selection","installHook","detectReactBuildType","bundleType","Mount","_renderNewRootComponent","renderRootCode","checkDCE","code","hasDetectedBadDCE","patchConsoleForInitialRenderInStrictMode","unpatchConsoleForInitialRenderInStrictMode","inject","renderers","reactBuildType","__REACT_DEVTOOLS_ATTACH__","sub","roots","fiberRoots","onCommitFiberUnmount","onCommitFiberRoot","mountedRoots","isKnownRoot","isUnmounting","onPostCommitFiberRoot","setStrictMode","openModuleRangesStack","moduleRanges","getTopStackFrameString","frames","registerInternalModuleStart","registerInternalModuleStop","backends","supportsFiber","__TEST__","decorate","old","decorateMany","fns","olds","restoreMany","getData","internalInstance","_currentElement","getElementType","publicInstance","getPublicInstance","getChildren","_renderedComponent","_renderedChildren","renderedChildren","idToInternalInstanceMap","internalInstanceToIDMap","internalInstanceToRootIDMap","getInternalIDForNative","findNativeNodeForInternalID","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","getID","getNode","areEqualArrays","parentIDStack","oldReconcilerMethods","Reconciler","mountComponent","hostContainerInfo","_topLevelWrapper","performUpdateIfNecessary","prevChildren","recordReorder","receiveComponent","unmountComponent","Mixin","nextChildIDs","pendingUnmountedIDs","crawlAndRecordInitialMounts","_instancesByReactRootID","_instancesByContainerID","encodedKey","existingID","stringID","currentlyInspectedElementID","_instance","_source","nativeNode","enabled","attachLegacy","isMatchingRender","initBackend","subs","setRendererInterface","onUnsupportedRenderer","onFastRefreshScheduled","onHookOperations","onTraceUpdates","attachRenderer","reactDevtoolsAgent","onAgentShutdown","resolveBoxStyle","hasParts","styleForAll","styleForHorizontal","styleForLeft","styleForRight","styleForEnd","styleForStart","styleForVertical","styleForBottom","styleForTop","setupNativeStyleEditor","resolveNativeStyle","validAttributes","measureStyle","oldName","newName","renameStyle","setStyle","isSupported","EMPTY_BOX_STYLE","componentIDToStyleOverrides","layout","resolvedStyle","styleOverrides","measure","shallowClone","cloned","newStyle","customStyle","setNativeProps","lastIndex","lastLength","initializeUsingCachedSettings","devToolsSettingsManager","initializeConsolePatchSettings","getConsolePatchSettings","consolePatchSettingsString","parsedConsolePatchSettings","parseConsolePatchSettings","parsedValue","cacheConsolePatchSettings","setConsolePatchSettings","savedComponentFilters","connectToDevTools","host","nativeStyleEditorValidAttributes","useHttps","port","websocket","resolveRNStyle","retryConnectionDelay","isAppActive","protocol","retryTimeoutID","scheduleRetry","messageListeners","uri","ws","WebSocket","onclose","handleClose","onerror","handleFailed","onmessage","handleMessage","onopen","transferable","readyState","OPEN","consolePatchSettings","lazyResolveRNStyle","lazyNativeStyleEditorValidAttributes","initAfterTick"],"sourceRoot":""}